From 2dc83a51656cfa3e349351e5b0f9b2098d22ecde Mon Sep 17 00:00:00 2001 From: Alexandr Evstigneev Date: Sat, 18 Feb 2023 12:09:29 +0400 Subject: [PATCH] IDEA-313615 Migration to jflex 1.9.0 [regen] The only lexer not updated is ObjectiveC, because it is using hacky manual patching, see CPP-27237 IJ-CR-103186 GitOrigin-RevId: baf62050f2c4f3f7345c5553cb6b60bca3935ab8 --- .../org/intellij/lang/regexp/_RegExLexer.java | 2220 +++++----- .../com/intellij/spi/parsing/_SPILexer.java | 493 ++- .../lang/java/lexer/_JavaDocLexer.java | 822 ++-- .../intellij/lang/java/lexer/_JavaLexer.java | 2129 +++++----- json/gen/com/intellij/json/_JsonLexer.java | 746 ++-- .../com/intellij/json/json5/_Json5Lexer.java | 787 ++-- .../template/impl/_MacroLexer.java | 592 ++- .../template/impl/_TemplateTextLexer.java | 187 +- .../impl/_FileTemplateTextLexer.java | 202 +- .../scope/packageSet/lexer/_ScopesLexer.java | 689 ++-- .../lang/groovydoc/lexer/_GroovyDocLexer.java | 581 +-- .../groovy/lang/lexer/_GroovyLexer.java | 3566 +++++++++-------- .../properties/parsing/_PropertiesLexer.java | 269 +- .../intellij/tasks/jira/jql/_JqlLexer.java | 759 ++-- .../org/intellij/lang/xpath/_XPathLexer.java | 2229 ++++++----- .../org/jetbrains/yaml/lexer/_YAMLLexer.java | 1244 +++--- .../commandLine/_CommandLineLexer.java | 598 +-- .../jetbrains/python/lexer/_PythonLexer.java | 2457 ++++++------ .../python/psi/types/_PyTypeLexer.java | 266 +- .../jetbrains/rest/lexer/_RestFlexLexer.java | 3163 +++++++-------- .../gen/com/intellij/lexer/_DtdLexer.java | 1434 +++---- .../gen/com/intellij/lexer/_HtmlLexer.java | 892 +++-- .../gen/com/intellij/lexer/__XmlLexer.java | 960 +++-- 23 files changed, 14735 insertions(+), 12550 deletions(-) diff --git a/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java index 437973813bb7..b1a2e9b123a9 100644 --- a/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java +++ b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: regexp-lexer.flex /* This is automatically generated code. Do not modify it. */ package org.intellij.lang.regexp; @@ -14,11 +15,6 @@ import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.intellij.lang.regexp.RegExpCapability.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file regexp-lexer.flex - */ class _RegExLexer implements FlexLexer { /** This character denotes the end of file */ @@ -58,142 +54,261 @@ class _RegExLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14272 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\1\1\10\1\11\1\12\1\13\1\12\1\13\34\12\1"+ - "\14\1\15\1\16\10\1\1\17\1\20\1\12\1\21\4\12\1\22\10\12\1\23\12\12\1\24\1\12"+ - "\1\25\1\24\1\12\1\26\4\1\1\12\1\27\1\30\2\1\2\12\1\27\1\1\1\31\1\24\5\12\1"+ - "\32\1\33\1\34\1\1\1\35\1\12\1\1\1\36\5\12\1\37\1\40\1\41\1\12\1\27\1\42\1"+ - "\12\1\43\1\44\1\1\1\12\1\45\4\1\1\12\1\46\4\1\1\47\2\12\1\50\1\1\1\51\1\52"+ - "\1\24\1\53\1\54\1\55\1\56\1\57\1\60\1\52\1\15\1\61\1\54\1\55\1\62\1\1\1\63"+ - "\1\64\1\65\1\66\1\21\1\55\1\67\1\1\1\70\1\52\1\71\1\72\1\54\1\55\1\67\1\1"+ - "\1\60\1\52\1\40\1\73\1\74\1\75\1\76\1\1\1\70\1\64\1\1\1\77\1\35\1\55\1\50"+ - "\1\1\1\100\1\52\1\1\1\101\1\35\1\55\1\102\1\1\1\57\1\52\1\103\1\77\1\35\1"+ - "\12\1\104\1\57\1\105\1\52\1\106\1\107\1\110\1\12\1\111\1\112\1\1\1\64\1\1"+ - "\1\24\2\12\1\113\1\112\1\114\2\1\1\115\1\116\1\117\1\120\1\121\1\122\2\1\1"+ - "\70\1\1\1\114\1\1\1\123\1\12\1\124\1\1\1\125\7\1\2\12\1\27\1\126\1\114\1\127"+ - "\1\130\1\131\1\132\1\114\2\12\1\133\2\12\1\134\24\12\1\135\1\136\2\12\1\135"+ - "\2\12\1\137\1\140\1\13\3\12\1\140\3\12\1\27\2\1\1\12\1\1\5\12\1\141\1\24\45"+ - "\12\1\142\1\12\1\24\1\27\4\12\1\27\1\143\1\144\1\15\1\12\1\15\1\12\1\15\1"+ - "\144\1\70\3\12\1\145\1\1\1\146\1\114\2\1\1\114\5\12\1\26\1\147\1\12\1\150"+ - "\4\12\1\37\1\12\1\151\2\1\1\64\1\12\1\152\1\153\2\12\1\154\1\12\1\76\1\114"+ - "\2\1\1\12\1\112\3\12\1\153\2\1\2\114\1\155\5\1\1\107\2\12\1\145\1\156\1\114"+ - "\2\1\1\157\1\12\1\160\1\41\2\12\1\37\1\1\2\12\1\145\1\1\1\161\1\41\1\12\1"+ - "\152\1\45\5\1\1\162\1\163\14\12\4\1\21\12\1\141\2\12\1\141\1\164\1\12\1\152"+ - "\3\12\1\165\1\166\1\167\1\124\1\166\7\1\1\170\1\1\1\124\6\1\1\171\1\172\1"+ - "\173\1\174\1\175\3\1\1\176\147\1\2\12\1\151\2\12\1\151\10\12\1\177\1\200\2"+ - "\12\1\133\3\12\1\201\1\1\1\12\1\112\4\202\4\1\1\126\35\1\1\203\2\1\1\204\1"+ - "\24\4\12\1\205\1\24\4\12\1\134\1\107\1\12\1\152\1\24\4\12\1\151\1\1\1\12\1"+ - "\27\3\1\1\12\40\1\133\12\1\37\4\1\135\12\1\37\2\1\10\12\1\124\4\1\2\12\1\152"+ - "\20\12\1\124\1\12\1\206\1\1\2\12\1\151\1\126\1\12\1\152\4\12\1\37\2\1\1\207"+ - "\1\210\5\12\1\211\1\12\1\151\1\26\3\1\1\207\1\212\1\12\1\30\1\1\3\12\1\145"+ - "\1\210\2\12\1\145\1\1\1\114\1\1\1\213\1\41\1\12\1\37\1\12\1\112\1\1\1\12\1"+ - "\124\1\47\2\12\1\30\1\126\1\114\1\214\1\215\2\12\1\45\1\1\1\216\1\114\1\12"+ - "\1\217\3\12\1\220\1\221\1\222\1\27\1\65\1\223\1\224\1\202\2\12\1\134\1\37"+ - "\7\12\1\30\1\114\72\12\1\145\1\12\1\225\2\12\1\154\20\1\26\12\1\152\6\12\1"+ - "\76\2\1\1\112\1\226\1\55\1\227\1\230\6\12\1\15\1\1\1\157\25\12\1\152\1\1\4"+ - "\12\1\210\2\12\1\26\2\1\1\154\7\1\1\214\7\12\1\124\1\1\1\114\1\24\1\27\1\24"+ - "\1\27\1\231\4\12\1\151\1\232\1\233\2\1\1\234\1\12\1\13\1\235\2\152\2\1\7\12"+ - "\1\27\30\1\1\12\1\124\3\12\1\70\2\1\2\12\1\1\1\12\1\236\2\12\1\37\1\12\1\152"+ - "\2\12\1\237\3\1\11\12\1\152\1\114\2\12\1\237\1\12\1\154\2\12\1\26\3\12\1\145"+ - "\11\1\23\12\1\112\1\12\1\37\1\26\11\1\1\240\2\12\1\241\1\12\1\37\1\12\1\112"+ - "\1\12\1\151\4\1\1\12\1\242\1\12\1\37\1\12\1\76\4\1\3\12\1\243\4\1\1\70\1\244"+ - "\1\12\1\145\2\1\1\12\1\124\1\12\1\124\2\1\1\123\1\12\1\153\1\1\3\12\1\37\1"+ - "\12\1\37\1\12\1\30\1\12\1\15\6\1\4\12\1\45\3\1\3\12\1\30\3\12\1\30\60\1\1"+ - "\157\2\12\1\26\2\1\1\64\1\1\1\157\2\12\2\1\1\12\1\45\1\114\1\157\1\12\1\112"+ - "\1\64\1\1\2\12\1\245\1\157\2\12\1\30\1\246\1\247\2\1\1\12\1\21\1\154\5\1\1"+ - "\250\1\251\1\45\2\12\1\151\1\1\1\114\1\72\1\54\1\55\1\67\1\1\1\252\1\15\11"+ - "\1\3\12\1\153\1\253\1\114\2\1\3\12\1\1\1\254\1\114\12\1\2\12\1\151\2\1\1\255"+ - "\2\1\3\12\1\1\1\256\1\114\2\1\2\12\1\27\1\1\1\114\3\1\1\12\1\76\1\1\1\114"+ - "\26\1\4\12\1\114\1\126\34\1\3\12\1\45\20\1\1\55\1\12\1\151\1\1\1\70\1\114"+ - "\1\1\1\210\1\12\67\1\71\12\1\76\16\1\14\12\1\145\53\1\2\12\1\151\75\1\44\12"+ - "\1\112\33\1\43\12\1\45\1\12\1\151\1\114\6\1\1\12\1\152\1\1\3\12\1\1\1\145"+ - "\1\114\1\157\1\257\1\12\67\1\4\12\1\153\1\70\3\1\1\157\4\1\1\70\1\1\76\12"+ - "\1\124\1\1\57\12\1\30\20\1\1\15\77\1\6\12\1\27\1\124\1\45\1\76\66\1\5\12\1"+ - "\214\3\12\1\144\1\260\1\261\1\262\3\12\1\263\1\264\1\12\1\265\1\266\1\35\24"+ - "\12\1\267\1\12\1\35\1\134\1\12\1\134\1\12\1\214\1\12\1\214\1\151\1\12\1\151"+ - "\1\12\1\55\1\12\1\55\1\12\1\270\3\271\14\12\1\153\3\1\4\12\1\145\1\114\112"+ - "\1\1\262\1\12\1\272\1\273\1\274\1\275\1\276\1\277\1\300\1\154\1\301\1\154"+ - "\24\1\55\12\1\112\2\1\103\12\1\153\15\12\1\152\150\12\1\15\25\1\41\12\1\152"+ - "\36\1"); - /* The ZZ_CMAP_A table has 3104 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\10\0\2\70\1\102\1\0\1\70\1\102\22\0\1\14\1\101\1\0\1\77\1\16\1\0\1\76\1\73"+ - "\1\2\1\3\1\20\1\21\1\66\1\13\1\1\1\0\1\52\3\65\4\64\2\60\1\75\1\0\1\72\1\57"+ - "\1\56\1\17\1\0\2\30\1\41\1\36\1\50\1\51\1\31\1\67\1\43\1\100\1\31\1\47\1\74"+ - "\1\53\1\55\1\45\1\61\1\54\1\34\1\100\1\46\1\37\2\33\1\100\1\32\1\6\1\10\1"+ - "\7\1\23\1\12\1\0\1\25\1\26\1\40\1\35\2\25\1\27\1\67\1\42\1\100\1\71\1\46\1"+ - "\100\1\24\1\100\1\44\1\100\1\24\1\33\1\24\1\63\2\33\1\62\1\100\1\31\1\4\1"+ - "\22\1\5\14\0\1\11\12\0\1\11\4\0\1\11\5\0\27\11\1\0\12\11\4\0\14\11\16\0\5"+ - "\11\7\0\1\11\1\0\1\11\1\0\5\11\1\0\2\11\2\0\4\11\1\0\1\11\6\0\1\11\1\0\3\11"+ - "\1\0\1\11\1\0\4\11\1\0\23\11\1\0\13\11\10\0\6\11\1\0\26\11\2\0\1\11\6\0\10"+ - "\11\10\0\13\11\5\0\3\11\15\0\12\15\4\0\6\11\1\0\1\11\17\0\2\11\7\0\2\11\12"+ - "\15\3\11\2\0\2\11\1\0\16\11\15\0\11\11\13\0\1\11\16\0\12\15\6\11\4\0\2\11"+ - "\4\0\1\11\5\0\6\11\4\0\1\11\11\0\1\11\3\0\1\11\7\0\11\11\7\0\5\11\1\0\10\11"+ - "\6\0\26\11\3\0\1\11\2\0\1\11\7\0\12\11\4\0\12\15\1\11\4\0\10\11\2\0\2\11\2"+ - "\0\26\11\1\0\7\11\1\0\1\11\3\0\4\11\3\0\1\11\20\0\1\11\15\0\2\11\1\0\1\11"+ - "\5\0\6\11\4\0\2\11\1\0\2\11\1\0\2\11\1\0\2\11\17\0\4\11\1\0\1\11\7\0\12\15"+ - "\2\0\3\11\20\0\11\11\1\0\2\11\1\0\2\11\1\0\5\11\3\0\1\11\2\0\1\11\30\0\1\11"+ - "\13\0\10\11\2\0\1\11\3\0\1\11\1\0\6\11\3\0\3\11\1\0\4\11\3\0\2\11\1\0\1\11"+ - "\1\0\2\11\3\0\2\11\3\0\3\11\3\0\14\11\13\0\10\11\1\0\2\11\10\0\3\11\5\0\1"+ - "\11\4\0\10\11\1\0\6\11\1\0\5\11\3\0\1\11\3\0\2\11\15\0\13\11\2\0\1\11\6\0"+ - "\3\11\10\0\1\11\12\0\6\11\5\0\22\11\3\0\10\11\1\0\11\11\1\0\1\11\2\0\7\11"+ - "\11\0\1\11\1\0\2\11\14\0\12\15\7\0\2\11\1\0\1\11\2\0\2\11\1\0\1\11\2\0\1\11"+ - "\6\0\4\11\1\0\7\11\1\0\3\11\1\0\1\11\1\0\1\11\2\0\2\11\1\0\4\11\1\0\2\11\11"+ - "\0\1\11\2\0\5\11\1\0\1\11\11\0\12\15\2\0\14\11\1\0\24\11\13\0\5\11\22\0\7"+ - "\11\4\0\4\11\3\0\1\11\3\0\2\11\7\0\3\11\4\0\15\11\14\0\1\11\1\0\6\11\1\0\1"+ - "\11\5\0\1\11\2\0\13\11\1\0\15\11\1\0\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0\1"+ - "\11\1\0\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0\16\11\2\0\6\11\2\0\15\11\2\0\1"+ - "\11\1\0\10\11\7\0\15\11\1\0\6\11\23\0\1\11\4\0\1\11\3\0\5\11\2\0\22\11\1\0"+ - "\1\11\5\0\17\11\1\0\16\11\2\0\5\11\13\0\14\11\13\0\1\11\15\0\7\11\7\0\16\11"+ - "\15\0\2\11\12\15\3\0\3\11\11\0\4\11\1\0\4\11\3\0\2\11\11\0\10\11\1\0\1\11"+ - "\1\0\1\11\1\0\1\11\1\0\6\11\1\0\7\11\1\0\1\11\3\0\3\11\1\0\7\11\3\0\4\11\2"+ - "\0\6\11\5\0\1\11\15\0\1\11\2\0\1\11\4\0\1\11\2\0\12\11\1\0\1\11\3\0\5\11\6"+ - "\0\1\11\1\0\1\11\1\0\1\11\1\0\4\11\1\0\13\11\2\0\4\11\5\0\5\11\4\0\1\11\4"+ - "\0\2\11\13\0\5\11\6\0\4\11\3\0\2\11\14\0\10\11\7\0\10\11\1\0\7\11\6\0\2\11"+ - "\12\0\5\11\5\0\2\11\3\0\7\11\6\0\3\11\12\15\2\11\13\0\11\11\2\0\27\11\2\0"+ - "\7\11\1\0\3\11\1\0\4\11\1\0\4\11\2\0\6\11\3\0\1\11\1\0\1\11\2\0\5\11\1\0\12"+ - "\11\12\15\5\11\1\0\3\11\1\0\10\11\4\0\7\11\3\0\1\11\3\0\2\11\1\0\1\11\3\0"+ - "\2\11\2\0\5\11\2\0\1\11\1\0\1\11\30\0\3\11\3\0\6\11\2\0\6\11\2\0\6\11\11\0"+ - "\7\11\4\0\5\11\3\0\5\11\5\0\1\11\1\0\10\11\1\0\5\11\1\0\1\11\1\0\2\11\1\0"+ - "\2\11\1\0\12\11\6\0\12\11\2\0\6\11\2\0\6\11\2\0\6\11\2\0\3\11\3\0\14\11\1"+ - "\0\16\11\1\0\2\11\1\0\2\11\1\0\10\11\6\0\4\11\4\0\16\11\2\0\1\11\1\0\14\11"+ - "\1\0\2\11\3\0\1\11\2\0\4\11\1\0\2\11\12\0\10\11\6\0\6\11\1\0\3\11\1\0\12\11"+ - "\3\0\1\11\12\0\4\11\13\0\12\15\1\11\1\0\1\11\3\0\7\11\1\0\1\11\1\0\4\11\1"+ - "\0\17\11\1\0\2\11\14\0\3\11\7\0\4\11\11\0\2\11\1\0\1\11\20\0\4\11\10\0\1\11"+ - "\13\0\10\11\5\0\3\11\2\0\1\11\2\0\2\11\2\0\4\11\1\0\14\11\1\0\1\11\1\0\7\11"+ - "\1\0\21\11\1\0\4\11\2\0\10\11\1\0\7\11\1\0\14\11\1\0\4\11\1\0\5\11\1\0\1\11"+ - "\3\0\14\11\2\0\13\11\1\0\10\11\2\0\22\15\1\0\2\11\1\0\1\11\2\0\1\11\1\0\12"+ - "\11\1\0\4\11\1\0\1\11\1\0\1\11\6\0\1\11\4\0\1\11\1\0\1\11\1\0\1\11\1\0\3\11"+ - "\1\0\2\11\1\0\1\11\2\0\1\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0\2\11\1"+ - "\0\1\11\2\0\4\11\1\0\7\11\1\0\4\11\1\0\4\11\1\0\1\11\1\0\12\11\1\0\5\11\1"+ - "\0\3\11\1\0\5\11\1\0\5\11"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\10\0\2\1\1\2\1\0\1\1\1\2\22\0\1\3"+ + "\1\4\1\0\1\5\1\6\1\0\1\7\1\10\1\11"+ + "\1\12\1\13\1\14\1\15\1\16\1\17\1\0\1\20"+ + "\3\21\4\22\2\23\1\24\1\0\1\25\1\26\1\27"+ + "\1\30\1\0\2\31\1\32\1\33\1\34\1\35\1\36"+ + "\1\37\1\40\1\41\1\36\1\42\1\43\1\44\1\45"+ + "\1\46\1\47\1\50\1\51\1\41\1\52\1\53\2\54"+ + "\1\41\1\55\1\56\1\57\1\60\1\61\1\62\1\0"+ + "\1\63\1\64\1\65\1\66\2\63\1\67\1\37\1\70"+ + "\1\41\1\71\1\52\1\41\1\72\1\41\1\73\1\41"+ + "\1\72\1\54\1\72\1\74\2\54\1\75\1\41\1\36"+ + "\1\76\1\77\1\100\54\0\1\101\12\0\1\101\4\0"+ + "\1\101\5\0\27\101\1\0\37\101\1\0\u01ca\101\4\0"+ + "\14\101\16\0\5\101\7\0\1\101\1\0\1\101\201\0"+ + "\5\101\1\0\2\101\2\0\4\101\1\0\1\101\6\0"+ + "\1\101\1\0\3\101\1\0\1\101\1\0\24\101\1\0"+ + "\123\101\1\0\213\101\10\0\246\101\1\0\46\101\2\0"+ + "\1\101\6\0\51\101\107\0\33\101\4\0\4\101\55\0"+ + "\53\101\25\0\12\102\4\0\2\101\1\0\143\101\1\0"+ + "\1\101\17\0\2\101\7\0\2\101\12\102\3\101\2\0"+ + "\1\101\20\0\1\101\1\0\36\101\35\0\131\101\13\0"+ + "\1\101\16\0\12\102\41\101\11\0\2\101\4\0\1\101"+ + "\5\0\26\101\4\0\1\101\11\0\1\101\3\0\1\101"+ + "\27\0\31\101\7\0\13\101\65\0\25\101\1\0\10\101"+ + "\106\0\66\101\3\0\1\101\22\0\1\101\7\0\12\101"+ + "\4\0\12\102\1\0\20\101\4\0\10\101\2\0\2\101"+ + "\2\0\26\101\1\0\7\101\1\0\1\101\3\0\4\101"+ + "\3\0\1\101\20\0\1\101\15\0\2\101\1\0\3\101"+ + "\4\0\12\102\2\101\12\0\1\101\10\0\6\101\4\0"+ + "\2\101\2\0\26\101\1\0\7\101\1\0\2\101\1\0"+ + "\2\101\1\0\2\101\37\0\4\101\1\0\1\101\7\0"+ + "\12\102\2\0\3\101\20\0\11\101\1\0\3\101\1\0"+ + "\26\101\1\0\7\101\1\0\2\101\1\0\5\101\3\0"+ + "\1\101\22\0\1\101\17\0\2\101\4\0\12\102\11\0"+ + "\1\101\13\0\10\101\2\0\2\101\2\0\26\101\1\0"+ + "\7\101\1\0\2\101\1\0\5\101\3\0\1\101\36\0"+ + "\2\101\1\0\3\101\4\0\12\102\1\0\1\101\21\0"+ + "\1\101\1\0\6\101\3\0\3\101\1\0\4\101\3\0"+ + "\2\101\1\0\1\101\1\0\2\101\3\0\2\101\3\0"+ + "\3\101\3\0\14\101\26\0\1\101\25\0\12\102\25\0"+ + "\10\101\1\0\3\101\1\0\27\101\1\0\20\101\3\0"+ + "\1\101\32\0\3\101\5\0\2\101\4\0\12\102\20\0"+ + "\1\101\4\0\10\101\1\0\3\101\1\0\27\101\1\0"+ + "\12\101\1\0\5\101\3\0\1\101\40\0\1\101\1\0"+ + "\2\101\4\0\12\102\1\0\2\101\22\0\10\101\1\0"+ + "\3\101\1\0\51\101\2\0\1\101\20\0\1\101\5\0"+ + "\3\101\10\0\3\101\4\0\12\102\12\0\6\101\5\0"+ + "\22\101\3\0\30\101\1\0\11\101\1\0\1\101\2\0"+ + "\7\101\37\0\12\102\21\0\60\101\1\0\2\101\14\0"+ + "\7\101\11\0\12\102\47\0\2\101\1\0\1\101\1\0"+ + "\5\101\1\0\30\101\1\0\1\101\1\0\12\101\1\0"+ + "\2\101\11\0\1\101\2\0\5\101\1\0\1\101\11\0"+ + "\12\102\2\0\4\101\40\0\1\101\37\0\12\102\26\0"+ + "\10\101\1\0\44\101\33\0\5\101\163\0\53\101\24\0"+ + "\1\101\12\102\6\0\6\101\4\0\4\101\3\0\1\101"+ + "\3\0\2\101\7\0\3\101\4\0\15\101\14\0\1\101"+ + "\1\0\12\102\6\0\46\101\1\0\1\101\5\0\1\101"+ + "\2\0\53\101\1\0\115\101\1\0\4\101\2\0\7\101"+ + "\1\0\1\101\1\0\4\101\2\0\51\101\1\0\4\101"+ + "\2\0\41\101\1\0\4\101\2\0\7\101\1\0\1\101"+ + "\1\0\4\101\2\0\17\101\1\0\71\101\1\0\4\101"+ + "\2\0\103\101\45\0\20\101\20\0\126\101\2\0\6\101"+ + "\3\0\u016c\101\2\0\21\101\1\0\32\101\5\0\113\101"+ + "\6\0\10\101\7\0\15\101\1\0\4\101\16\0\22\101"+ + "\16\0\22\101\16\0\15\101\1\0\3\101\17\0\64\101"+ + "\43\0\1\101\4\0\1\101\3\0\12\102\46\0\12\102"+ + "\6\0\131\101\7\0\5\101\2\0\42\101\1\0\1\101"+ + "\5\0\106\101\12\0\37\101\47\0\12\102\36\101\2\0"+ + "\5\101\13\0\54\101\4\0\32\101\6\0\12\102\46\0"+ + "\27\101\11\0\65\101\53\0\12\102\6\0\12\102\15\0"+ + "\1\101\135\0\57\101\21\0\7\101\4\0\12\102\51\0"+ + "\36\101\15\0\2\101\12\102\54\101\32\0\44\101\34\0"+ + "\12\102\3\0\3\101\12\102\44\101\2\0\11\101\7\0"+ + "\53\101\2\0\3\101\51\0\4\101\1\0\6\101\1\0"+ + "\2\101\3\0\1\101\5\0\300\101\100\0\26\101\2\0"+ + "\6\101\2\0\46\101\2\0\6\101\2\0\10\101\1\0"+ + "\1\101\1\0\1\101\1\0\1\101\1\0\37\101\2\0"+ + "\65\101\1\0\7\101\1\0\1\101\3\0\3\101\1\0"+ + "\7\101\3\0\4\101\2\0\6\101\4\0\15\101\5\0"+ + "\3\101\1\0\7\101\164\0\1\101\15\0\1\101\20\0"+ + "\15\101\145\0\1\101\4\0\1\101\2\0\12\101\1\0"+ + "\1\101\3\0\5\101\6\0\1\101\1\0\1\101\1\0"+ + "\1\101\1\0\4\101\1\0\13\101\2\0\4\101\5\0"+ + "\5\101\4\0\1\101\64\0\2\101\u017b\0\57\101\1\0"+ + "\57\101\1\0\205\101\6\0\4\101\3\0\2\101\14\0"+ + "\46\101\1\0\1\101\5\0\1\101\2\0\70\101\7\0"+ + "\1\101\20\0\27\101\11\0\7\101\1\0\7\101\1\0"+ + "\7\101\1\0\7\101\1\0\7\101\1\0\7\101\1\0"+ + "\7\101\1\0\7\101\120\0\1\101\325\0\2\101\52\0"+ + "\5\101\5\0\2\101\4\0\126\101\6\0\3\101\1\0"+ + "\132\101\1\0\4\101\5\0\53\101\1\0\136\101\21\0"+ + "\33\101\65\0\306\101\112\0\360\101\20\0\215\101\103\0"+ + "\56\101\2\0\15\101\3\0\20\101\12\102\2\101\24\0"+ + "\57\101\20\0\37\101\2\0\106\101\61\0\11\101\2\0"+ + "\147\101\2\0\65\101\2\0\5\101\60\0\13\101\1\0"+ + "\3\101\1\0\4\101\1\0\27\101\35\0\64\101\16\0"+ + "\62\101\34\0\12\102\30\0\6\101\3\0\1\101\1\0"+ + "\2\101\1\0\12\102\34\101\12\0\27\101\31\0\35\101"+ + "\7\0\57\101\34\0\1\101\12\102\6\0\5\101\1\0"+ + "\12\101\12\102\5\101\1\0\51\101\27\0\3\101\1\0"+ + "\10\101\4\0\12\102\6\0\27\101\3\0\1\101\3\0"+ + "\62\101\1\0\1\101\3\0\2\101\2\0\5\101\2\0"+ + "\1\101\1\0\1\101\30\0\3\101\2\0\13\101\7\0"+ + "\3\101\14\0\6\101\2\0\6\101\2\0\6\101\11\0"+ + "\7\101\1\0\7\101\1\0\53\101\1\0\14\101\10\0"+ + "\163\101\15\0\12\102\6\0\244\101\14\0\27\101\4\0"+ + "\61\101\4\0\156\101\2\0\152\101\46\0\7\101\14\0"+ + "\5\101\5\0\1\101\1\0\12\101\1\0\15\101\1\0"+ + "\5\101\1\0\1\101\1\0\2\101\1\0\2\101\1\0"+ + "\154\101\41\0\153\101\22\0\100\101\2\0\66\101\50\0"+ + "\14\101\164\0\5\101\1\0\207\101\23\0\12\102\7\0"+ + "\32\101\6\0\32\101\13\0\131\101\3\0\6\101\2\0"+ + "\6\101\2\0\6\101\2\0\3\101\43\0\14\101\1\0"+ + "\32\101\1\0\23\101\1\0\2\101\1\0\17\101\2\0"+ + "\16\101\42\0\173\101\205\0\35\101\3\0\61\101\57\0"+ + "\40\101\15\0\24\101\1\0\10\101\6\0\46\101\12\0"+ + "\36\101\2\0\44\101\4\0\10\101\60\0\236\101\2\0"+ + "\12\102\6\0\44\101\4\0\44\101\4\0\50\101\10\0"+ + "\64\101\234\0\67\101\11\0\26\101\12\0\10\101\230\0"+ + "\6\101\2\0\1\101\1\0\54\101\1\0\2\101\3\0"+ + "\1\101\2\0\27\101\12\0\27\101\11\0\37\101\101\0"+ + "\23\101\1\0\2\101\12\0\26\101\12\0\32\101\106\0"+ + "\70\101\6\0\2\101\100\0\1\101\17\0\4\101\1\0"+ + "\3\101\1\0\35\101\52\0\35\101\3\0\35\101\43\0"+ + "\10\101\1\0\34\101\33\0\66\101\12\0\26\101\12\0"+ + "\23\101\15\0\22\101\156\0\111\101\67\0\63\101\15\0"+ + "\63\101\15\0\44\101\14\0\12\102\306\0\35\101\12\0"+ + "\1\101\10\0\26\101\232\0\27\101\14\0\65\101\56\0"+ + "\12\102\23\0\55\101\40\0\31\101\7\0\12\102\11\0"+ + "\44\101\17\0\12\102\4\0\1\101\13\0\43\101\3\0"+ + "\1\101\14\0\60\101\16\0\4\101\13\0\12\102\1\101"+ + "\1\0\1\101\43\0\22\101\1\0\31\101\124\0\7\101"+ + "\1\0\1\101\1\0\4\101\1\0\17\101\1\0\12\101"+ + "\7\0\57\101\21\0\12\102\13\0\10\101\2\0\2\101"+ + "\2\0\26\101\1\0\7\101\1\0\2\101\1\0\5\101"+ + "\3\0\1\101\22\0\1\101\14\0\5\101\236\0\65\101"+ + "\22\0\4\101\5\0\12\102\5\0\1\101\40\0\60\101"+ + "\24\0\2\101\1\0\1\101\10\0\12\102\246\0\57\101"+ + "\51\0\4\101\44\0\60\101\24\0\1\101\13\0\12\102"+ + "\46\0\53\101\15\0\1\101\7\0\12\102\66\0\33\101"+ + "\25\0\12\102\306\0\54\101\164\0\100\101\12\102\25\0"+ + "\1\101\240\0\10\101\2\0\47\101\20\0\1\101\1\0"+ + "\1\101\34\0\1\101\12\0\50\101\7\0\1\101\25\0"+ + "\1\101\13\0\56\101\23\0\1\101\42\0\71\101\7\0"+ + "\11\101\1\0\45\101\21\0\1\101\17\0\12\102\30\0"+ + "\36\101\160\0\7\101\1\0\2\101\1\0\46\101\25\0"+ + "\1\101\11\0\12\102\6\0\6\101\1\0\2\101\1\0"+ + "\40\101\16\0\1\101\7\0\12\102\u0136\0\23\101\15\0"+ + "\232\101\346\0\304\101\274\0\57\101\321\0\107\101\271\0"+ + "\71\101\7\0\37\101\1\0\12\102\146\0\36\101\22\0"+ + "\60\101\20\0\4\101\14\0\12\102\11\0\25\101\5\0"+ + "\23\101\260\0\100\101\200\0\113\101\5\0\1\101\102\0"+ + "\15\101\100\0\2\101\1\0\1\101\34\0\370\101\10\0"+ + "\363\101\15\0\37\101\61\0\3\101\21\0\4\101\10\0"+ + "\u018c\101\4\0\153\101\5\0\15\101\3\0\11\101\7\0"+ + "\12\101\146\0\125\101\1\0\107\101\1\0\2\101\2\0"+ + "\1\101\2\0\2\101\2\0\4\101\1\0\14\101\1\0"+ + "\1\101\1\0\7\101\1\0\101\101\1\0\4\101\2\0"+ + "\10\101\1\0\7\101\1\0\34\101\1\0\4\101\1\0"+ + "\5\101\1\0\1\101\3\0\7\101\1\0\u0154\101\2\0"+ + "\31\101\1\0\31\101\1\0\37\101\1\0\31\101\1\0"+ + "\37\101\1\0\31\101\1\0\37\101\1\0\31\101\1\0"+ + "\37\101\1\0\31\101\1\0\10\101\2\0\62\102\55\101"+ + "\12\0\7\101\2\0\12\102\4\0\1\101\u0171\0\54\101"+ + "\4\0\12\102\6\0\305\101\73\0\104\101\7\0\1\101"+ + "\4\0\12\102\246\0\4\101\1\0\33\101\1\0\2\101"+ + "\1\0\1\101\2\0\1\101\1\0\12\101\1\0\4\101"+ + "\1\0\1\101\1\0\1\101\6\0\1\101\4\0\1\101"+ + "\1\0\1\101\1\0\1\101\1\0\3\101\1\0\2\101"+ + "\1\0\1\101\2\0\1\101\1\0\1\101\1\0\1\101"+ + "\1\0\1\101\1\0\1\101\1\0\2\101\1\0\1\101"+ + "\2\0\4\101\1\0\7\101\1\0\4\101\1\0\4\101"+ + "\1\0\1\101\1\0\12\101\1\0\21\101\5\0\3\101"+ + "\1\0\5\101\1\0\21\101\104\0\327\101\51\0\65\101"+ + "\13\0\336\101\2\0\u0182\101\16\0\u0131\101\37\0\36\101"+ + "\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); @@ -204,29 +319,30 @@ class _RegExLexer implements FlexLexer { "\1\17\1\20\1\21\1\22\1\23\1\2\1\24\1\25"+ "\1\26\1\27\1\30\1\31\1\0\1\32\2\33\1\34"+ "\1\35\1\36\1\34\1\37\1\40\1\41\1\42\1\43"+ - "\1\44\1\26\1\45\1\46\1\47\1\50\3\47\1\26"+ - "\1\47\1\26\1\47\1\51\1\52\2\12\2\26\2\40"+ - "\1\53\1\54\1\12\1\55\1\56\1\57\1\2\1\60"+ - "\1\61\1\24\1\62\1\63\3\0\1\64\1\65\1\66"+ - "\1\67\1\70\1\71\1\72\1\73\1\74\1\12\1\74"+ - "\1\75\2\76\1\77\1\100\1\12\1\101\1\102\1\103"+ - "\1\104\1\105\1\106\1\107\1\12\1\110\1\111\1\112"+ + "\1\44\1\26\1\45\1\46\2\47\1\50\2\47\1\26"+ + "\2\47\1\26\1\51\1\52\1\16\2\40\2\26\1\16"+ + "\1\53\1\54\1\55\1\2\1\56\1\57\1\16\1\60"+ + "\1\61\1\24\1\62\1\63\1\64\1\65\1\66\1\67"+ + "\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+ + "\1\16\1\100\1\101\1\102\1\103\1\104\1\105\1\74"+ + "\1\75\2\16\1\106\1\107\1\110\3\0\1\111\1\112"+ "\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\0"+ - "\1\122\2\26\1\123\2\51\1\0\1\124\1\125\1\12"+ - "\1\66\1\65\1\71\1\73\2\12\1\75\2\76\1\77"+ - "\1\100\1\101\1\102\1\103\1\104\1\105\1\106\1\107"+ - "\2\26\1\126\1\127\1\130\1\131\1\132\1\133\1\134"+ - "\1\0\1\135\1\0\1\136\1\137\1\0\1\140\1\141"+ - "\1\142\1\143\1\0\1\144\1\145\1\146\2\0\1\147"+ - "\6\0\1\150\1\151\1\152\1\153\2\154\1\103\1\155"+ - "\1\156\1\157\1\160\1\161\1\162\1\163\1\164\1\165"+ - "\1\0\1\166\1\150\1\153\2\154\1\103\1\156\1\160"+ - "\2\26\1\167\1\170\1\171\1\0\1\172\1\173\1\0"+ - "\1\174\1\175\1\176\1\0\1\177\1\0\1\200\4\0"+ - "\1\150\2\154\1\103\1\201\1\160\1\202\1\203\1\150"+ - "\2\154\1\103\1\201\1\160\2\26\1\0\1\204\1\205"+ - "\1\206\1\150\1\0\1\207\1\160\1\150\1\207\1\160"+ - "\2\26\1\0\2\210\1\211\2\26\1\0\4\212"; + "\1\122\2\26\1\123\2\51\1\124\1\125\1\0\1\16"+ + "\1\126\1\127\2\26\1\65\1\71\1\72\1\73\1\16"+ + "\1\75\1\76\1\77\1\100\1\101\1\102\1\103\1\70"+ + "\1\105\1\75\1\16\1\106\1\107\1\130\1\131\1\132"+ + "\1\133\1\134\1\0\1\135\1\136\1\137\2\0\1\140"+ + "\1\141\1\142\1\143\1\0\1\144\2\145\1\73\1\0"+ + "\1\146\1\147\1\150\1\151\1\0\1\152\1\153\1\154"+ + "\1\155\1\156\1\157\4\0\1\160\2\0\1\161\1\162"+ + "\1\163\1\164\1\165\1\0\1\166\2\26\2\145\1\73"+ + "\1\146\1\150\1\154\1\156\1\0\1\167\1\0\1\170"+ + "\1\171\1\172\1\173\2\145\1\73\1\0\1\150\2\0"+ + "\1\154\1\174\1\0\1\175\1\0\1\176\1\0\1\177"+ + "\1\200\1\201\1\202\1\203\2\26\2\145\1\73\1\150"+ + "\1\154\1\174\1\204\1\0\1\205\1\150\1\0\1\154"+ + "\1\206\1\207\2\26\1\205\1\150\1\154\1\0\1\210"+ + "\1\211\1\26\1\210\1\26\1\212\1\0\3\212"; private static int [] zzUnpackAction() { int [] result = new int[278]; @@ -248,7 +364,7 @@ class _RegExLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -257,37 +373,37 @@ class _RegExLexer implements FlexLexer { "\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\u0324\0\u0367\0\u03aa\0\u03ed"+ "\0\u0430\0\u0473\0\u04b6\0\u04f9\0\u053c\0\u057f\0\u05c2\0\u0605"+ - "\0\u0605\0\u0648\0\u0605\0\u068b\0\u0605\0\u06ce\0\u0605\0\u0711"+ - "\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605"+ - "\0\u0605\0\u0754\0\u0605\0\u0605\0\u0797\0\u0605\0\u07da\0\u0605"+ - "\0\u081d\0\u0605\0\u0605\0\u0754\0\u0605\0\u0860\0\u0605\0\u08a3"+ - "\0\u0605\0\u0605\0\u0605\0\u08e6\0\u0929\0\u0605\0\u096c\0\u0605"+ - "\0\u0605\0\u0605\0\u0605\0\u09af\0\u09f2\0\u0a35\0\u0a78\0\u0abb"+ + "\0\u0605\0\u0605\0\u0605\0\u0605\0\u0648\0\u0605\0\u0605\0\u0605"+ + "\0\u0605\0\u0605\0\u068b\0\u06ce\0\u0605\0\u0605\0\u0711\0\u0605"+ + "\0\u0605\0\u0754\0\u0605\0\u0605\0\u0797\0\u0605\0\u0605\0\u07da"+ + "\0\u081d\0\u0605\0\u0605\0\u0754\0\u0605\0\u0605\0\u0860\0\u08a3"+ + "\0\u0605\0\u0605\0\u0605\0\u08e6\0\u0605\0\u0929\0\u096c\0\u0605"+ + "\0\u0605\0\u0605\0\u09af\0\u0605\0\u09f2\0\u0a35\0\u0a78\0\u0abb"+ "\0\u0afe\0\u0b41\0\u0b84\0\u0bc7\0\u0c0a\0\u0c4d\0\u0c90\0\u0cd3"+ - "\0\u0d16\0\u0d59\0\u0d9c\0\u0605\0\u0ddf\0\u0605\0\u0605\0\u0605"+ - "\0\u0e22\0\u0605\0\u0605\0\u0c0a\0\u0605\0\u0e65\0\u0ea8\0\u0eeb"+ - "\0\u0f2e\0\u0605\0\u0605\0\u0605\0\u0f71\0\u0605\0\u0605\0\u0605"+ - "\0\u0605\0\u0fb4\0\u0ff7\0\u0605\0\u0605\0\u103a\0\u0605\0\u0605"+ - "\0\u0605\0\u0605\0\u107d\0\u0605\0\u10c0\0\u0605\0\u1103\0\u1146"+ - "\0\u0605\0\u1189\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605"+ + "\0\u0d16\0\u0d59\0\u0605\0\u0605\0\u0605\0\u0d9c\0\u0605\0\u0ddf"+ + "\0\u0e22\0\u0605\0\u0605\0\u0c0a\0\u0605\0\u0e65\0\u0605\0\u0605"+ + "\0\u0605\0\u0605\0\u0605\0\u0605\0\u0ea8\0\u0eeb\0\u0605\0\u0605"+ + "\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605"+ + "\0\u0605\0\u0f2e\0\u0f71\0\u0fb4\0\u0ff7\0\u103a\0\u107d\0\u10c0"+ + "\0\u1103\0\u1146\0\u1189\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605"+ "\0\u0605\0\u0605\0\u0605\0\u0605\0\u11cc\0\u0605\0\u120f\0\u0605"+ - "\0\u0605\0\u0605\0\u1252\0\u1295\0\u0605\0\u0605\0\u12d8\0\u096c"+ - "\0\u096c\0\u096c\0\u096c\0\u096c\0\u131b\0\u096c\0\u135e\0\u096c"+ - "\0\u096c\0\u096c\0\u13a1\0\u096c\0\u13e4\0\u096c\0\u1427\0\u146a"+ - "\0\u096c\0\u14ad\0\u14f0\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605"+ - "\0\u0605\0\u0605\0\u1533\0\u0605\0\u1576\0\u0605\0\u0605\0\u15b9"+ - "\0\u15fc\0\u0605\0\u0605\0\u0605\0\u163f\0\u0605\0\u0605\0\u0605"+ - "\0\u1682\0\u16c5\0\u0605\0\u1708\0\u174b\0\u178e\0\u17d1\0\u1814"+ - "\0\u1857\0\u189a\0\u0605\0\u0605\0\u0605\0\u18dd\0\u1920\0\u1963"+ - "\0\u0605\0\u19a6\0\u0605\0\u19e9\0\u0605\0\u0605\0\u0605\0\u0605"+ - "\0\u0605\0\u1a2c\0\u0605\0\u1a6f\0\u096c\0\u1ab2\0\u1af5\0\u1b38"+ - "\0\u1b7b\0\u1bbe\0\u1c01\0\u1c44\0\u0605\0\u0605\0\u0605\0\u1c87"+ - "\0\u0605\0\u0605\0\u1cca\0\u0605\0\u0605\0\u0605\0\u1d0d\0\u0605"+ - "\0\u1d50\0\u0605\0\u1d93\0\u1dd6\0\u1e19\0\u1e5c\0\u1e9f\0\u1ee2"+ - "\0\u0605\0\u0605\0\u0605\0\u1f25\0\u0605\0\u0605\0\u1f68\0\u1fab"+ - "\0\u096c\0\u096c\0\u096c\0\u1fee\0\u2031\0\u2074\0\u20b7\0\u0605"+ - "\0\u0605\0\u0605\0\u0605\0\u20fa\0\u0605\0\u213d\0\u096c\0\u096c"+ - "\0\u2180\0\u21c3\0\u2206\0\u2249\0\u0605\0\u096c\0\u096c\0\u228c"+ + "\0\u0605\0\u1252\0\u0605\0\u0605\0\u0605\0\u1295\0\u12d8\0\u0605"+ + "\0\u0605\0\u131b\0\u135e\0\u096c\0\u096c\0\u13a1\0\u13e4\0\u096c"+ + "\0\u096c\0\u096c\0\u096c\0\u096c\0\u096c\0\u096c\0\u096c\0\u096c"+ + "\0\u096c\0\u1427\0\u146a\0\u14ad\0\u14f0\0\u0605\0\u0605\0\u0605"+ + "\0\u0605\0\u0605\0\u1533\0\u0605\0\u0605\0\u0605\0\u1576\0\u15b9"+ + "\0\u0605\0\u15fc\0\u0605\0\u0605\0\u163f\0\u0605\0\u1682\0\u16c5"+ + "\0\u1708\0\u174b\0\u0605\0\u0605\0\u178e\0\u0605\0\u17d1\0\u0605"+ + "\0\u0605\0\u1814\0\u0605\0\u1857\0\u0605\0\u189a\0\u18dd\0\u1920"+ + "\0\u1963\0\u0605\0\u19a6\0\u19e9\0\u0605\0\u0605\0\u0605\0\u0605"+ + "\0\u0605\0\u1a2c\0\u0605\0\u1a6f\0\u1ab2\0\u1af5\0\u1b38\0\u1b7b"+ + "\0\u096c\0\u1bbe\0\u1c01\0\u1c44\0\u1c87\0\u0605\0\u1cca\0\u0605"+ + "\0\u0605\0\u0605\0\u0605\0\u1d0d\0\u0605\0\u0605\0\u1d50\0\u1d93"+ + "\0\u1dd6\0\u1e19\0\u1e5c\0\u0605\0\u1e9f\0\u0605\0\u1ee2\0\u0605"+ + "\0\u1f25\0\u0605\0\u0605\0\u0605\0\u0605\0\u0605\0\u1f68\0\u1fab"+ + "\0\u1fee\0\u096c\0\u096c\0\u2031\0\u2074\0\u096c\0\u0605\0\u20b7"+ + "\0\u0605\0\u0605\0\u20fa\0\u213d\0\u0605\0\u0605\0\u2180\0\u21c3"+ + "\0\u096c\0\u096c\0\u2206\0\u2249\0\u0605\0\u096c\0\u228c\0\u096c"+ "\0\u22cf\0\u2312\0\u2355\0\u2398\0\u23db\0\u0605"; private static int [] zzUnpackRowMap() { @@ -300,7 +416,7 @@ class _RegExLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -308,224 +424,186 @@ class _RegExLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37"+ - "\1\40\3\30\1\41\1\30\1\42\1\43\1\44\1\45"+ - "\1\46\1\47\44\30\1\50\6\30\1\51\2\30\1\50"+ - "\10\30\1\52\72\30\5\53\1\54\3\53\1\55\11\53"+ - "\1\47\26\55\1\53\3\55\1\53\1\56\1\53\3\55"+ - "\3\53\1\55\1\53\1\55\2\53\1\55\3\53\1\55"+ - "\7\53\1\54\7\53\1\57\34\53\1\57\5\53\1\57"+ - "\3\53\2\57\1\60\14\53\10\0\1\61\4\0\1\30"+ - "\34\0\1\30\5\0\1\30\3\0\3\30\37\0\1\62"+ - "\57\0\10\63\1\64\72\63\6\65\1\66\1\67\1\70"+ - "\3\65\1\71\53\65\1\71\11\65\1\71\3\72\1\73"+ - "\5\72\1\74\1\72\1\75\10\72\26\74\1\72\3\74"+ - "\3\72\3\74\3\72\1\74\1\72\1\74\2\72\1\74"+ - "\1\76\2\72\1\74\2\72\102\12\1\0\10\72\3\77"+ - "\3\72\1\77\5\72\26\77\1\72\3\77\1\100\2\72"+ - "\3\77\3\72\1\77\1\72\1\77\2\72\1\77\3\72"+ - "\1\77\12\72\3\77\3\72\1\77\5\72\26\77\1\72"+ - "\3\77\3\72\3\77\3\72\1\77\1\72\1\77\1\72"+ - "\1\101\1\77\3\72\1\77\5\72\1\73\4\72\3\77"+ - "\3\72\1\77\5\72\26\77\1\72\3\77\3\72\3\77"+ - "\3\72\1\77\1\72\1\77\2\72\1\77\3\72\1\77"+ - "\17\72\1\57\34\72\1\57\5\72\1\57\3\72\2\57"+ - "\15\72\11\102\1\55\11\102\1\47\26\55\1\102\3\55"+ - "\1\103\2\102\3\55\3\102\1\55\1\102\1\55\1\103"+ - "\1\102\1\55\1\104\2\102\1\55\2\102\1\105\1\106"+ - "\7\105\1\107\12\105\26\107\1\105\3\107\3\105\3\107"+ - "\3\105\1\107\1\105\1\107\2\105\1\107\3\105\1\107"+ - "\2\105\11\110\1\111\12\110\26\111\1\110\3\111\1\110"+ - "\1\112\1\110\3\111\3\110\1\111\1\110\1\111\2\110"+ - "\1\111\3\110\1\111\2\110\4\0\1\113\76\0\2\30"+ - "\1\114\5\30\1\115\3\30\1\41\6\30\1\47\44\30"+ - "\1\50\6\30\1\51\2\30\1\50\3\72\1\73\4\72"+ - "\1\116\2\77\2\72\1\57\1\77\5\72\12\77\1\117"+ - "\1\120\12\77\1\57\3\77\1\121\1\72\1\57\3\77"+ - "\2\57\1\72\1\77\1\72\1\77\1\72\1\122\1\77"+ - "\3\72\1\77\2\72\6\30\1\123\1\124\1\125\2\30"+ - "\1\126\1\127\53\30\1\130\5\30\1\131\1\132\2\30"+ - "\1\130\4\53\1\133\3\53\1\134\21\53\1\135\1\53"+ - "\1\135\4\53\1\135\3\53\1\135\1\53\1\135\3\53"+ - "\1\135\20\53\1\135\12\53\1\133\3\53\1\134\72\53"+ - "\122\0\1\136\73\0\1\137\4\0\1\140\34\0\1\140"+ - "\5\0\1\140\3\0\2\140\1\141\37\0\1\142\57\0"+ - "\1\143\3\144\1\145\1\146\1\144\1\146\1\144\2\143"+ - "\1\147\1\150\1\143\6\144\2\151\1\152\1\153\3\154"+ - "\5\155\1\156\3\157\2\160\3\161\1\162\1\163\1\164"+ - "\1\155\1\162\2\143\1\165\1\166\1\167\1\170\2\165"+ - "\1\143\1\171\1\150\1\172\2\143\1\162\2\143\1\173"+ - "\1\162\1\143\1\150\50\0\1\174\34\0\2\55\5\0"+ - "\5\55\6\0\32\55\2\0\6\55\1\0\1\55\1\0"+ - "\1\55\2\0\1\55\3\0\1\55\17\0\1\57\34\0"+ - "\1\57\5\0\1\57\3\0\2\57\22\0\1\175\76\0"+ - "\1\176\21\0\1\177\33\0\1\176\15\0\1\200\14\0"+ - "\1\201\13\0\1\202\35\0\1\203\32\0\1\74\12\0"+ - "\26\74\1\0\3\74\3\0\3\74\3\0\1\74\1\0"+ - "\1\74\2\0\1\74\3\0\1\74\13\0\1\75\12\0"+ - "\26\75\1\0\3\75\3\0\3\75\3\0\1\75\1\0"+ - "\1\75\2\0\1\75\3\0\1\75\12\0\7\77\5\0"+ - "\32\77\2\0\6\77\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\11\0\1\204\74\0\1\205\102\0"+ - "\1\205\5\0\1\206\74\0\1\205\7\0\1\207\1\0"+ - "\1\207\1\0\1\210\6\0\26\207\1\210\3\207\2\0"+ - "\1\210\3\207\2\210\1\0\1\207\1\0\1\207\2\0"+ - "\1\207\3\0\1\207\61\0\1\205\25\0\2\55\5\0"+ - "\5\55\6\0\32\55\1\0\1\205\6\55\1\0\1\55"+ - "\1\0\1\55\2\0\1\55\3\0\1\55\11\0\1\211"+ - "\47\0\1\205\30\0\1\212\17\0\2\213\1\0\1\213"+ - "\4\0\2\213\1\0\2\213\6\0\3\213\5\0\1\213"+ - "\3\0\2\213\34\0\1\214\52\0\1\215\1\216\7\0"+ - "\6\143\1\144\1\143\1\144\2\143\1\147\10\143\2\151"+ - "\1\162\1\217\3\162\5\155\1\156\3\157\2\160\3\161"+ - "\1\162\1\163\1\164\2\162\2\143\1\165\1\166\1\167"+ - "\1\170\2\165\1\143\1\171\1\143\1\162\2\143\1\162"+ - "\2\143\1\173\1\162\10\143\1\144\1\143\1\220\2\221"+ - "\1\222\3\221\5\143\2\223\1\224\1\225\3\224\5\226"+ - "\1\227\3\230\2\231\3\232\1\224\1\233\1\234\2\224"+ - "\2\143\1\235\1\236\1\237\1\240\2\235\1\143\1\241"+ - "\1\143\1\224\2\143\1\224\2\143\1\173\1\224\2\143"+ - "\10\0\7\77\5\0\24\77\1\242\5\77\2\0\6\77"+ - "\1\0\1\77\1\0\1\77\2\0\1\77\3\0\1\77"+ - "\12\0\7\77\5\0\24\77\1\243\5\77\2\0\6\77"+ - "\1\0\1\77\1\0\1\77\2\0\1\77\3\0\1\77"+ - "\5\0\1\244\102\0\1\245\100\0\1\246\21\0\1\247"+ - "\33\0\1\246\15\0\1\246\5\0\6\143\3\144\2\143"+ - "\1\147\1\250\7\143\3\151\1\217\3\162\5\155\1\156"+ - "\3\157\2\160\3\161\1\162\1\163\1\164\2\162\2\143"+ - "\1\165\1\166\1\167\1\170\2\165\1\143\1\171\1\250"+ - "\1\162\2\143\1\162\2\143\1\173\1\162\1\143\1\250"+ - "\76\0\1\251\6\0\1\252\10\0\1\253\5\0\1\253"+ - "\1\254\22\0\1\255\10\0\1\256\1\257\1\260\3\0"+ - "\2\260\4\0\1\261\1\262\1\0\1\263\1\264\1\265"+ - "\1\0\1\266\6\0\1\267\102\0\1\270\2\0\1\271"+ - "\4\0\1\140\34\0\1\140\5\0\1\140\3\0\2\140"+ - "\1\272\21\0\1\273\2\0\1\274\4\0\1\275\34\0"+ - "\1\275\5\0\1\275\3\0\2\275\32\0\1\276\34\0"+ - "\1\276\5\0\1\276\3\0\2\276\1\277\20\0\1\300"+ - "\102\0\1\301\53\0\1\302\3\0\2\302\4\0\1\303"+ - "\1\304\7\0\103\305\52\0\1\306\11\0\1\307\1\306"+ - "\67\0\1\310\5\0\1\310\3\0\2\310\21\0\1\311"+ - "\20\0\2\312\1\0\1\312\4\0\2\312\1\0\2\312"+ - "\6\0\3\312\5\0\1\312\3\0\2\312\21\0\1\313"+ - "\20\0\2\314\1\0\1\314\4\0\2\314\1\0\2\314"+ - "\6\0\3\314\5\0\1\314\3\0\2\314\107\0\1\315"+ - "\1\316\16\0\1\317\104\0\1\207\1\0\1\207\1\0"+ - "\1\210\6\0\26\207\1\210\3\207\2\0\1\210\3\207"+ - "\2\210\1\0\1\207\1\0\1\207\2\0\1\207\3\0"+ - "\1\207\7\0\1\320\17\0\2\213\1\0\1\213\4\0"+ - "\2\213\1\0\2\213\6\0\3\213\5\0\1\213\3\0"+ - "\2\213\74\0\1\321\12\0\1\322\6\0\1\323\5\0"+ - "\1\301\53\0\1\302\3\0\2\302\21\0\1\301\3\0"+ - "\7\77\5\0\32\77\2\0\1\324\3\77\2\324\1\0"+ - "\1\77\1\0\1\77\2\0\1\77\3\0\1\77\2\0"+ - "\10\305\7\325\5\305\32\325\2\305\6\325\1\305\1\325"+ - "\1\305\1\325\2\305\1\325\3\305\1\325\2\305\10\0"+ - "\7\77\5\0\26\77\1\326\3\77\2\0\4\77\1\327"+ - "\1\326\1\0\1\77\1\0\1\77\2\0\1\77\3\0"+ - "\1\77\12\0\7\77\5\0\26\77\1\330\3\77\2\0"+ - "\1\330\3\77\2\330\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\6\0\1\311\3\0\7\77\5\0"+ - "\1\77\2\331\1\77\1\331\4\77\2\331\1\77\2\331"+ - "\6\77\3\331\3\77\2\0\1\331\3\77\2\331\1\0"+ - "\1\77\1\0\1\77\2\0\1\77\3\0\1\77\6\0"+ - "\1\313\3\0\7\77\5\0\1\77\2\332\1\77\1\332"+ - "\4\77\2\332\1\77\2\332\6\77\3\332\3\77\2\0"+ - "\1\332\3\77\2\332\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\12\0\7\77\5\0\25\77\1\333"+ - "\4\77\2\0\6\77\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\12\0\7\77\5\0\30\77\1\334"+ - "\1\77\2\0\6\77\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\62\0\1\260\3\0\2\260\73\0"+ - "\1\264\1\335\12\0\1\336\13\0\1\337\46\0\1\340"+ - "\5\0\1\340\3\0\2\340\74\0\1\341\21\0\1\342"+ - "\1\0\3\343\1\0\77\343\5\0\1\344\102\0\1\270"+ - "\2\0\1\271\4\0\1\272\34\0\1\272\5\0\1\272"+ - "\3\0\2\272\22\0\1\345\102\0\1\346\2\0\1\347"+ - "\4\0\1\275\34\0\1\275\5\0\1\275\3\0\2\275"+ - "\22\0\1\350\7\0\1\276\34\0\1\276\5\0\1\276"+ - "\3\0\2\276\1\351\21\0\1\352\7\0\1\353\34\0"+ - "\1\353\5\0\1\353\3\0\2\353\44\0\1\354\66\0"+ - "\1\355\44\0\1\356\3\0\2\356\67\0\1\357\5\0"+ - "\1\357\3\0\2\357\67\0\1\360\11\0\2\360\67\0"+ - "\1\361\11\0\2\361\67\0\1\362\5\0\1\362\3\0"+ - "\2\362\42\0\2\363\1\0\1\363\4\0\2\363\1\0"+ - "\2\363\6\0\3\363\5\0\1\363\3\0\2\363\42\0"+ - "\2\364\1\0\1\364\4\0\2\364\1\0\2\364\6\0"+ - "\3\364\5\0\1\364\3\0\2\364\74\0\1\365\21\0"+ - "\1\366\11\0\7\77\5\0\26\77\1\367\3\77\2\0"+ - "\1\367\3\77\2\367\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\12\0\7\77\5\0\26\77\1\370"+ - "\3\77\2\0\4\77\2\370\1\0\1\77\1\0\1\77"+ - "\2\0\1\77\3\0\1\77\12\0\7\77\5\0\26\77"+ - "\1\371\3\77\2\0\4\77\2\371\1\0\1\77\1\0"+ - "\1\77\2\0\1\77\3\0\1\77\12\0\7\77\5\0"+ - "\26\77\1\372\3\77\2\0\1\372\3\77\2\372\1\0"+ - "\1\77\1\0\1\77\2\0\1\77\3\0\1\77\12\0"+ - "\7\77\5\0\1\77\2\373\1\77\1\373\4\77\2\373"+ - "\1\77\2\373\6\77\3\373\3\77\2\0\1\373\3\77"+ - "\2\373\1\0\1\77\1\0\1\77\2\0\1\77\3\0"+ - "\1\77\12\0\7\77\5\0\1\77\2\374\1\77\1\374"+ - "\4\77\2\374\1\77\2\374\6\77\3\374\3\77\2\0"+ - "\1\374\3\77\2\374\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\12\0\7\77\5\0\17\77\1\375"+ - "\12\77\2\0\6\77\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\12\0\7\77\5\0\10\77\1\376"+ - "\21\77\2\0\6\77\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\5\0\1\337\46\0\1\377\5\0"+ - "\1\377\3\0\2\377\15\0\3\343\1\u0100\77\343\5\0"+ - "\1\u0101\102\0\1\350\7\0\1\351\34\0\1\351\5\0"+ - "\1\351\3\0\2\351\22\0\1\u0102\7\0\1\353\34\0"+ - "\1\353\5\0\1\353\3\0\2\353\22\0\1\154\155\0"+ - "\1\356\3\0\2\356\22\0\1\u0103\44\0\1\u0104\5\0"+ - "\1\u0104\3\0\2\u0104\67\0\1\u0103\5\0\1\u0103\3\0"+ - "\2\u0103\67\0\1\u0105\11\0\2\u0105\42\0\2\u0106\1\0"+ - "\1\u0106\4\0\2\u0106\1\0\2\u0106\6\0\3\u0106\5\0"+ - "\1\u0106\3\0\2\u0106\25\0\7\77\5\0\26\77\1\u0107"+ - "\3\77\2\0\1\u0107\3\77\2\u0107\1\0\1\77\1\0"+ - "\1\77\2\0\1\77\3\0\1\77\12\0\7\77\5\0"+ - "\26\77\1\u0108\3\77\2\0\4\77\2\u0108\1\0\1\77"+ - "\1\0\1\77\2\0\1\77\3\0\1\77\12\0\7\77"+ - "\5\0\1\77\2\u0109\1\77\1\u0109\4\77\2\u0109\1\77"+ - "\2\u0109\6\77\3\u0109\3\77\2\0\1\u0109\3\77\2\u0109"+ - "\1\0\1\77\1\0\1\77\2\0\1\77\3\0\1\77"+ - "\12\0\7\77\5\0\27\77\1\u010a\2\77\2\0\6\77"+ - "\1\0\1\77\1\0\1\77\2\0\1\77\3\0\1\77"+ - "\12\0\7\77\5\0\17\77\1\u010b\12\77\2\0\6\77"+ - "\1\0\1\77\1\0\1\77\2\0\1\77\3\0\1\77"+ - "\5\0\1\337\104\0\1\u0103\44\0\1\u010c\5\0\1\u010c"+ - "\3\0\2\u010c\42\0\2\u010d\1\0\1\u010d\4\0\2\u010d"+ - "\1\0\2\u010d\6\0\3\u010d\5\0\1\u010d\3\0\2\u010d"+ - "\25\0\7\77\5\0\1\77\2\u010e\1\77\1\u010e\4\77"+ - "\2\u010e\1\77\2\u010e\6\77\3\u010e\3\77\2\0\1\u010e"+ - "\3\77\2\u010e\1\0\1\77\1\0\1\77\2\0\1\77"+ - "\3\0\1\77\12\0\7\77\5\0\24\77\1\u010f\5\77"+ - "\2\0\6\77\1\0\1\77\1\0\1\77\2\0\1\77"+ - "\3\0\1\77\12\0\7\77\5\0\31\77\1\u0110\2\0"+ - "\6\77\1\0\1\77\1\0\1\77\2\0\1\77\3\0"+ - "\1\77\7\0\1\u0103\105\0\7\77\5\0\27\77\1\u0111"+ - "\2\77\2\0\6\77\1\0\1\77\1\0\1\77\2\0"+ - "\1\77\3\0\1\77\12\0\7\77\5\0\32\77\1\u0112"+ - "\1\u0113\6\77\1\0\1\77\1\0\1\77\2\0\1\77"+ - "\3\0\1\77\61\0\1\u0113\24\0\1\u0114\13\0\1\u0113"+ - "\34\0\1\u0113\5\0\1\u0113\3\0\2\u0113\32\0\1\u0115"+ - "\34\0\1\u0115\5\0\1\u0115\3\0\2\u0115\32\0\1\u0116"+ - "\34\0\1\u0116\5\0\1\u0116\3\0\2\u0116\15\0"; + "\1\30\2\31\1\32\1\30\1\33\1\34\2\30\1\35"+ + "\1\36\1\37\1\40\2\30\1\41\10\30\1\42\25\30"+ + "\1\43\1\44\1\45\1\46\14\30\1\47\1\50\1\51"+ + "\61\30\1\52\23\30\26\53\1\54\2\53\25\55\3\53"+ + "\1\46\1\53\13\55\2\53\1\56\1\55\16\53\1\57"+ + "\2\53\4\60\54\53\1\56\1\53\1\60\15\0\1\30"+ + "\2\0\4\30\33\0\1\61\22\0\1\30\61\0\1\62"+ + "\21\0\57\63\1\64\23\63\1\65\3\66\52\65\1\67"+ + "\1\70\1\71\22\65\12\72\1\73\3\72\1\74\5\72"+ + "\1\75\4\72\25\76\5\72\13\76\3\72\1\76\1\72"+ + "\2\12\1\0\100\12\6\72\1\77\20\72\1\100\1\72"+ + "\25\77\1\72\1\77\2\72\14\77\3\72\1\77\7\72"+ + "\1\77\1\72\1\101\20\72\25\77\1\72\1\77\2\72"+ + "\14\77\3\72\1\77\7\72\1\77\3\72\1\73\16\72"+ + "\25\77\1\72\1\77\2\72\14\77\3\72\1\77\21\72"+ + "\4\60\56\72\1\60\24\102\1\103\1\104\1\102\1\104"+ + "\1\102\25\55\3\102\1\46\1\102\13\55\3\102\1\55"+ + "\1\102\17\105\1\106\11\105\25\107\5\105\13\107\3\105"+ + "\1\107\1\105\26\110\1\111\2\110\25\112\5\110\13\112"+ + "\3\110\1\112\1\110\76\0\1\113\4\0\1\30\2\31"+ + "\1\32\1\30\1\33\3\30\1\114\45\30\1\115\1\30"+ + "\1\46\21\30\6\72\1\77\1\72\1\116\1\72\1\73"+ + "\5\72\4\60\3\72\1\117\1\72\2\77\1\120\17\77"+ + "\1\121\2\77\1\72\1\122\2\72\14\77\3\72\1\77"+ + "\1\60\1\30\2\123\1\124\1\30\1\125\1\30\1\126"+ + "\6\30\1\127\37\30\1\130\1\131\1\132\22\30\32\53"+ + "\1\133\7\53\3\133\1\53\1\133\2\53\1\133\3\53"+ + "\1\133\1\53\1\134\16\53\1\135\63\53\1\134\16\53"+ + "\1\135\4\53\133\0\1\136\133\0\1\137\21\0\1\140"+ + "\3\141\1\140\1\142\1\143\2\140\4\143\1\140\1\144"+ + "\1\143\1\145\3\146\4\140\1\143\1\147\1\150\1\151"+ + "\1\152\1\153\1\147\1\154\1\150\1\153\1\152\1\153"+ + "\1\155\1\153\1\156\1\157\2\151\1\152\2\151\1\147"+ + "\2\143\1\160\1\143\1\140\1\161\1\162\1\163\1\151"+ + "\1\164\1\150\1\165\1\161\1\156\1\166\1\167\1\170"+ + "\1\143\1\160\2\140\15\0\1\171\2\0\4\172\33\0"+ + "\1\173\22\0\1\172\34\0\1\174\51\0\1\55\5\0"+ + "\2\55\3\0\1\55\1\0\4\55\5\0\25\55\4\0"+ + "\14\55\3\0\2\55\20\0\4\60\56\0\1\60\100\0"+ + "\1\175\21\0\1\176\4\0\1\177\1\0\1\176\32\0"+ + "\1\200\70\0\1\201\10\0\1\202\1\203\52\0\25\74"+ + "\5\0\13\74\3\0\1\74\32\0\25\76\5\0\13\76"+ + "\3\0\1\76\4\0\1\77\2\0\1\77\7\0\1\77"+ + "\1\0\4\77\5\0\25\77\1\0\1\77\2\0\14\77"+ + "\3\0\2\77\60\0\1\204\41\0\1\205\102\0\1\205"+ + "\40\0\1\206\40\0\1\207\1\205\4\210\5\0\25\207"+ + "\5\0\13\207\3\0\1\207\1\210\26\0\1\205\102\0"+ + "\1\205\31\0\1\211\25\0\1\55\5\0\2\55\3\0"+ + "\1\55\1\0\4\55\2\0\1\205\2\0\25\55\4\0"+ + "\14\55\3\0\2\55\20\0\4\212\5\0\5\212\25\0"+ + "\4\212\11\0\1\213\12\0\1\214\14\0\1\215\2\0"+ + "\1\216\52\0\5\140\1\142\10\140\1\144\1\140\1\145"+ + "\3\146\5\140\1\153\1\150\1\151\1\152\2\153\1\154"+ + "\1\150\1\153\1\152\1\153\1\155\1\153\1\156\1\157"+ + "\1\153\1\151\1\152\2\151\1\153\2\143\3\140\1\161"+ + "\1\153\1\163\1\151\1\217\1\150\1\153\1\161\1\156"+ + "\1\166\1\167\5\140\12\0\1\220\102\0\1\221\73\0"+ + "\1\77\2\0\1\77\7\0\1\77\1\0\4\77\5\0"+ + "\3\77\1\222\21\77\1\0\1\77\2\0\14\77\3\0"+ + "\2\77\3\0\1\77\2\0\1\77\7\0\1\77\1\0"+ + "\4\77\5\0\3\77\1\223\21\77\1\0\1\77\2\0"+ + "\14\77\3\0\2\77\3\140\1\224\1\140\1\142\1\224"+ + "\7\140\1\225\1\140\1\226\3\227\5\140\1\230\1\231"+ + "\1\232\1\233\2\230\1\234\1\231\1\230\1\233\1\230"+ + "\1\235\1\230\1\236\1\237\1\230\1\232\1\233\2\232"+ + "\1\230\1\143\1\240\2\140\1\224\1\241\1\230\1\242"+ + "\1\232\1\243\1\231\1\230\1\241\1\236\1\244\1\245"+ + "\3\140\2\224\7\0\1\246\112\0\1\247\4\0\1\247"+ + "\1\0\1\247\32\0\1\250\21\0\1\140\3\251\1\140"+ + "\1\142\10\140\1\144\1\140\1\145\3\146\5\140\1\153"+ + "\1\150\1\151\1\152\2\153\1\154\1\150\1\153\1\152"+ + "\1\153\1\155\1\153\1\156\1\157\1\153\1\151\1\152"+ + "\2\151\1\153\3\143\2\140\2\161\1\163\1\151\1\217"+ + "\1\150\1\153\1\161\1\156\1\166\1\167\5\140\4\0"+ + "\1\252\1\253\1\0\1\254\1\255\1\256\2\0\1\257"+ + "\1\0\1\257\2\0\3\260\1\261\1\262\1\263\1\264"+ + "\16\0\1\265\30\0\1\266\23\0\2\267\1\270\100\0"+ + "\4\271\155\0\1\272\4\0\103\273\10\0\1\274\10\0"+ + "\3\275\1\0\1\276\50\0\1\277\14\0\1\300\14\0"+ + "\1\301\75\0\4\302\5\0\5\302\25\0\4\302\7\0"+ + "\1\303\24\0\4\304\5\0\5\304\25\0\4\304\7\0"+ + "\1\305\21\0\1\306\2\0\4\307\56\0\1\307\20\0"+ + "\4\310\33\0\1\311\20\0\1\312\1\0\1\310\15\0"+ + "\1\313\2\0\4\172\33\0\1\314\20\0\1\315\1\0"+ + "\1\172\100\0\1\316\62\0\1\317\40\0\1\207\1\0"+ + "\4\210\5\0\25\207\5\0\13\207\3\0\1\207\1\210"+ + "\20\0\4\212\5\0\5\212\25\0\4\212\11\0\1\320"+ + "\6\0\1\321\20\0\1\322\1\323\75\0\3\275\52\0"+ + "\1\277\7\0\1\77\2\0\1\77\7\0\1\77\1\0"+ + "\4\77\5\0\4\77\1\324\20\77\1\0\1\77\2\0"+ + "\14\77\3\0\2\77\3\0\1\77\2\0\1\77\7\0"+ + "\1\77\1\0\4\77\5\0\17\77\1\325\5\77\1\0"+ + "\1\77\2\0\14\77\3\0\2\77\3\0\1\77\2\0"+ + "\1\77\7\0\1\77\1\0\2\326\1\327\1\77\5\0"+ + "\25\77\1\0\1\77\2\0\14\77\3\0\2\77\3\0"+ + "\1\77\2\0\1\77\7\0\1\77\1\0\4\330\5\0"+ + "\25\77\1\0\1\77\2\0\14\77\3\0\2\77\3\273"+ + "\1\331\2\273\1\331\7\273\1\331\1\273\4\331\5\273"+ + "\25\331\1\273\1\331\2\273\14\331\3\273\2\331\3\0"+ + "\1\77\2\0\1\77\7\0\1\77\1\0\1\77\3\332"+ + "\5\0\25\77\1\0\1\77\2\0\14\77\1\277\2\0"+ + "\2\77\3\0\1\77\2\0\1\77\7\0\1\77\1\0"+ + "\4\333\5\0\5\333\20\77\1\0\1\77\2\0\1\77"+ + "\4\333\7\77\1\303\2\0\2\77\3\0\1\77\2\0"+ + "\1\77\7\0\1\77\1\0\4\334\5\0\5\334\20\77"+ + "\1\0\1\77\2\0\1\77\4\334\7\77\1\305\2\0"+ + "\2\77\12\335\1\0\70\335\21\0\3\260\71\0\1\336"+ + "\5\0\4\337\63\0\1\340\21\0\1\341\101\0\1\342"+ + "\1\343\1\254\73\0\3\344\100\0\3\345\100\0\4\346"+ + "\146\0\1\347\33\0\4\350\75\0\1\351\2\0\3\352"+ + "\77\0\4\353\5\0\5\353\25\0\4\353\34\0\4\354"+ + "\5\0\5\354\25\0\4\354\34\0\4\355\54\0\1\356"+ + "\1\0\1\355\15\0\1\357\2\0\4\307\54\0\1\360"+ + "\1\0\1\307\20\0\4\310\33\0\1\361\20\0\1\362"+ + "\1\0\1\310\100\0\1\363\22\0\4\313\33\0\1\314"+ + "\20\0\1\315\1\0\1\313\100\0\1\364\6\0\1\365"+ + "\21\0\1\366\57\0\1\77\2\0\1\77\7\0\1\77"+ + "\1\0\4\77\5\0\7\77\1\367\15\77\1\0\1\77"+ + "\2\0\14\77\3\0\2\77\3\0\1\77\2\0\1\77"+ + "\7\0\1\77\1\0\4\77\5\0\20\77\1\370\4\77"+ + "\1\0\1\77\2\0\14\77\3\0\2\77\3\0\1\77"+ + "\2\0\1\77\7\0\1\77\1\0\3\371\1\77\5\0"+ + "\25\77\1\0\1\77\2\0\14\77\3\0\2\77\3\0"+ + "\1\77\2\0\1\77\7\0\1\77\1\0\3\372\1\77"+ + "\5\0\25\77\1\0\1\77\2\0\14\77\3\0\2\77"+ + "\3\0\1\77\2\0\1\77\7\0\1\77\1\0\4\373"+ + "\5\0\25\77\1\0\1\77\2\0\14\77\3\0\2\77"+ + "\3\0\1\77\2\0\1\77\7\0\1\77\1\0\4\374"+ + "\5\0\25\77\1\0\1\77\2\0\14\77\3\0\2\77"+ + "\3\0\1\77\2\0\1\77\7\0\1\77\1\0\4\375"+ + "\5\0\5\375\20\77\1\0\1\77\2\0\1\77\4\375"+ + "\7\77\3\0\2\77\3\0\1\77\2\0\1\77\7\0"+ + "\1\77\1\0\4\376\5\0\5\376\20\77\1\0\1\77"+ + "\2\0\1\77\4\376\7\77\3\0\2\77\12\335\1\377"+ + "\70\335\12\0\1\336\5\0\4\u0100\77\0\3\u0101\160\0"+ + "\1\147\22\0\4\u0102\100\0\3\352\77\0\4\u0103\54\0"+ + "\1\u0102\22\0\4\u0104\5\0\5\u0104\25\0\4\u0104\34\0"+ + "\4\355\54\0\1\u0105\1\0\1\355\20\0\4\357\54\0"+ + "\1\360\1\0\1\357\100\0\1\u0106\5\0\1\77\2\0"+ + "\1\77\7\0\1\77\1\0\4\77\5\0\13\77\1\u0107"+ + "\11\77\1\0\1\77\2\0\14\77\3\0\2\77\3\0"+ + "\1\77\2\0\1\77\7\0\1\77\1\0\4\77\5\0"+ + "\7\77\1\u0108\15\77\1\0\1\77\2\0\14\77\3\0"+ + "\2\77\3\0\1\77\2\0\1\77\7\0\1\77\1\0"+ + "\3\u0109\1\77\5\0\25\77\1\0\1\77\2\0\14\77"+ + "\3\0\2\77\3\0\1\77\2\0\1\77\7\0\1\77"+ + "\1\0\4\u010a\5\0\25\77\1\0\1\77\2\0\14\77"+ + "\3\0\2\77\3\0\1\77\2\0\1\77\7\0\1\77"+ + "\1\0\4\u010b\5\0\5\u010b\20\77\1\0\1\77\2\0"+ + "\1\77\4\u010b\7\77\3\0\2\77\12\0\1\336\110\0"+ + "\4\u010c\54\0\1\u0102\22\0\4\u010d\5\0\5\u010d\25\0"+ + "\4\u010d\17\0\1\77\2\0\1\77\7\0\1\77\1\0"+ + "\4\77\5\0\3\77\1\u010e\21\77\1\0\1\77\2\0"+ + "\14\77\3\0\2\77\3\0\1\77\2\0\1\77\7\0"+ + "\1\77\1\0\4\77\5\0\14\77\1\u010f\10\77\1\0"+ + "\1\77\2\0\14\77\3\0\2\77\3\0\1\77\2\0"+ + "\1\77\7\0\1\77\1\0\4\u0110\5\0\5\u0110\20\77"+ + "\1\0\1\77\2\0\1\77\4\u0110\7\77\3\0\2\77"+ + "\100\0\1\u0102\5\0\1\77\2\0\1\77\7\0\1\77"+ + "\1\0\4\77\5\0\13\77\1\u0111\11\77\1\0\1\77"+ + "\2\0\14\77\3\0\2\77\3\0\1\77\2\0\1\77"+ + "\7\0\1\77\1\0\4\77\2\0\1\u0112\1\u0113\1\0"+ + "\25\77\1\0\1\77\2\0\14\77\3\0\2\77\17\0"+ + "\1\u0114\4\u0112\56\0\1\u0112\26\0\1\u0112\74\0\4\u0115"+ + "\56\0\1\u0115\20\0\4\u0116\56\0\1\u0116"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[9246]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -552,26 +630,25 @@ class _RegExLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\11\0\1\1\15\0\2\11\1\1\1\11\1\1\1\11"+ - "\1\1\1\11\1\1\11\11\1\1\2\11\1\1\1\11"+ + "\11\0\1\1\15\0\5\11\1\1\5\11\2\1\2\11"+ + "\1\1\2\11\1\1\2\11\1\1\2\11\1\1\1\0"+ + "\2\11\1\1\2\11\2\1\3\11\1\1\1\11\2\1"+ + "\3\11\1\1\1\11\16\1\3\11\1\1\1\11\2\1"+ + "\2\11\1\1\1\11\1\1\6\11\2\1\13\11\7\1"+ + "\3\0\11\11\1\0\1\11\1\1\2\11\1\1\3\11"+ + "\1\0\1\1\2\11\24\1\5\11\1\0\3\11\2\0"+ + "\1\11\1\1\2\11\1\0\1\11\3\1\1\0\2\11"+ "\1\1\1\11\1\0\2\11\1\1\1\11\1\1\1\11"+ - "\1\1\3\11\2\1\1\11\1\1\4\11\20\1\1\11"+ - "\1\1\3\11\1\1\2\11\1\1\1\11\1\1\3\0"+ - "\3\11\1\1\4\11\2\1\2\11\1\1\4\11\1\1"+ - "\1\11\1\1\1\11\2\1\1\11\1\1\12\11\1\0"+ - "\1\11\1\1\3\11\1\1\1\0\2\11\25\1\7\11"+ - "\1\0\1\11\1\0\2\11\1\0\1\1\3\11\1\0"+ - "\3\11\2\0\1\11\6\0\1\1\3\11\3\1\1\11"+ - "\1\1\1\11\1\1\5\11\1\0\1\11\11\1\3\11"+ - "\1\0\2\11\1\0\3\11\1\0\1\11\1\0\1\11"+ - "\4\0\2\1\3\11\1\1\2\11\10\1\1\0\4\11"+ - "\1\0\1\11\6\1\1\0\1\11\4\1\1\0\3\1"+ - "\1\11"; + "\4\0\1\11\2\0\5\11\1\0\1\11\11\1\1\0"+ + "\1\11\1\0\4\11\1\1\2\11\1\0\1\1\2\0"+ + "\1\1\1\11\1\0\1\11\1\0\1\11\1\0\5\11"+ + "\10\1\1\11\1\0\2\11\1\0\1\1\2\11\5\1"+ + "\1\0\1\11\5\1\1\0\2\1\1\11"; private static int [] zzUnpackAttribute() { int [] result = new int[278]; @@ -618,15 +695,27 @@ class _RegExLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -727,26 +816,22 @@ class _RegExLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -878,7 +963,8 @@ class _RegExLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -912,7 +998,7 @@ class _RegExLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -934,11 +1020,11 @@ class _RegExLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -961,340 +1047,300 @@ class _RegExLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { yypopstate(); return RegExpTT.COMMENT; - } - // fall through + } + // fall through case 139: break; - case 2: + case 2: { return RegExpTT.CHARACTER; - } - // fall through + } + // fall through case 140: break; - case 3: - { return RegExpTT.DOT; - } - // fall through - case 141: break; - case 4: - { capturingGroupCount++; return RegExpTT.GROUP_BEGIN; - } - // fall through - case 142: break; - case 5: - { return RegExpTT.GROUP_END; - } - // fall through - case 143: break; - case 6: - { if (allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } return RegExpTT.CHARACTER; - } - // fall through - case 144: break; - case 7: - { return (allowDanglingMetacharacters != FALSE) ? RegExpTT.CHARACTER : RegExpTT.RBRACE; - } - // fall through - case 145: break; - case 8: - { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; - } - // fall through - case 146: break; - case 9: - { return allowDanglingMetacharacters == FALSE ? RegExpTT.CLASS_END : RegExpTT.CHARACTER; - } - // fall through - case 147: break; - case 10: - { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } - // fall through - case 148: break; - case 11: - { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; - } - // fall through - case 149: break; - case 12: - { return RegExpTT.DOLLAR; - } - // fall through - case 150: break; - case 13: - { return RegExpTT.QUEST; - } - // fall through - case 151: break; - case 14: - { return RegExpTT.STAR; - } - // fall through - case 152: break; - case 15: - { return RegExpTT.PLUS; - } - // fall through - case 153: break; - case 16: - { return RegExpTT.UNION; - } - // fall through - case 154: break; - case 17: - { return RegExpTT.CARET; - } - // fall through - case 155: break; - case 18: + case 3: { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; - } - // fall through - case 156: break; - case 19: + } + // fall through + case 141: break; + case 4: + { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; + } + // fall through + case 142: break; + case 5: { if (commentMode) { yypushstate(COMMENT); } else return RegExpTT.CHARACTER; - } - // fall through + } + // fall through + case 143: break; + case 6: + { return RegExpTT.DOLLAR; + } + // fall through + case 144: break; + case 7: + { capturingGroupCount++; return RegExpTT.GROUP_BEGIN; + } + // fall through + case 145: break; + case 8: + { return RegExpTT.GROUP_END; + } + // fall through + case 146: break; + case 9: + { return RegExpTT.STAR; + } + // fall through + case 147: break; + case 10: + { return RegExpTT.PLUS; + } + // fall through + case 148: break; + case 11: + { return RegExpTT.DOT; + } + // fall through + case 149: break; + case 12: + { return RegExpTT.QUEST; + } + // fall through + case 150: break; + case 13: + { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; + } + // fall through + case 151: break; + case 14: + { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; + } + // fall through + case 152: break; + case 15: + { return allowDanglingMetacharacters == FALSE ? RegExpTT.CLASS_END : RegExpTT.CHARACTER; + } + // fall through + case 153: break; + case 16: + { return RegExpTT.CARET; + } + // fall through + case 154: break; + case 17: + { if (allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } return RegExpTT.CHARACTER; + } + // fall through + case 155: break; + case 18: + { return RegExpTT.UNION; + } + // fall through + case 156: break; + case 19: + { return (allowDanglingMetacharacters != FALSE) ? RegExpTT.CHARACTER : RegExpTT.RBRACE; + } + // fall through case 157: break; - case 20: + case 20: { yypopstate(); yypushback(1); - } - // fall through + } + // fall through case 158: break; - case 21: - { yypopstate(); return RegExpTT.RBRACE; - } - // fall through - case 159: break; - case 22: - { return RegExpTT.NAME; - } - // fall through - case 160: break; - case 23: + case 21: { return RegExpTT.EQ; - } - // fall through + } + // fall through + case 159: break; + case 22: + { return RegExpTT.NAME; + } + // fall through + case 160: break; + case 23: + { yypopstate(); return RegExpTT.RBRACE; + } + // fall through case 161: break; - case 24: - { return RegExpTT.NUMBER; - } - // fall through - case 162: break; - case 25: + case 24: { return RegExpTT.COMMA; - } - // fall through + } + // fall through + case 162: break; + case 25: + { return RegExpTT.NUMBER; + } + // fall through case 163: break; - case 26: + case 26: { yybegin(CLASS1); return RegExpTT.CARET; - } - // fall through + } + // fall through case 164: break; - case 27: + case 27: { states.set(states.size() - 1, CLASS2); return RegExpTT.CHARACTER; - } - // fall through + } + // fall through case 165: break; - case 28: + case 28: { yypushback(1); yybegin(CLASS2); - } - // fall through + } + // fall through case 166: break; - case 29: - { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } - // fall through - case 167: break; - case 30: - { if (allowEmptyCharacterClass) { yypopstate(); return RegExpTT.CLASS_END; } yybegin(CLASS2); return RegExpTT.CHARACTER; - } - // fall through - case 168: break; - case 31: + case 29: { if (commentMode && whitespaceInClass) return com.intellij.psi.TokenType.WHITE_SPACE; yypushback(1); yybegin(CLASS2); - } - // fall through + } + // fall through + case 167: break; + case 30: + { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; + } + // fall through + case 168: break; + case 31: + { if (allowEmptyCharacterClass) { yypopstate(); return RegExpTT.CLASS_END; } yybegin(CLASS2); return RegExpTT.CHARACTER; + } + // fall through case 169: break; - case 32: + case 32: { yybegin(YYINITIAL); yypushback(1); - } - // fall through + } + // fall through case 170: break; - case 33: + case 33: { yybegin(YYINITIAL); return RegExpTT.GROUP_END; - } - // fall through + } + // fall through case 171: break; - case 34: - { handleOptions(); return RegExpTT.OPTIONS_ON; - } - // fall through - case 172: break; - case 35: + case 34: { handleOptions(); return RegExpTT.OPTIONS_OFF; - } - // fall through - case 173: break; - case 36: + } + // fall through + case 172: break; + case 35: { yybegin(YYINITIAL); return RegExpTT.COLON; - } - // fall through + } + // fall through + case 173: break; + case 36: + { handleOptions(); return RegExpTT.OPTIONS_ON; + } + // fall through case 174: break; - case 37: + case 37: { yybegin(YYINITIAL); return RegExpTT.GT; - } - // fall through + } + // fall through case 175: break; - case 38: + case 38: { yybegin(YYINITIAL); return RegExpTT.QUOTE; - } - // fall through + } + // fall through case 176: break; - case 39: + case 39: { return RegExpTT.BAD_CHARACTER; - } - // fall through + } + // fall through case 177: break; - case 40: + case 40: { return allowMysqlBracketExpressions ? RegExpTT.NAME : RegExpTT.BAD_CHARACTER; - } - // fall through + } + // fall through case 178: break; - case 41: + case 41: { yypopstate(); return (yycharat(-1) == 'u') ? StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN : RegExpTT.BAD_HEX_VALUE; - } - // fall through + } + // fall through case 179: break; - case 42: + case 42: { yybegin(CONDITIONAL2); return RegExpTT.GROUP_BEGIN; - } - // fall through + } + // fall through case 180: break; - case 43: - { if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } - // fall through - case 181: break; - case 44: - { yypopstate(); return RegExpTT.CLASS_END; - } - // fall through - case 182: break; - case 45: - { return RegExpTT.MINUS; - } - // fall through - case 183: break; - case 46: - { return (commentMode && whitespaceInClass) ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; - } - // fall through - case 184: break; - case 47: + case 43: { return (commentMode && whitespaceInClass) ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; - } - // fall through - case 185: break; - case 48: + } + // fall through + case 181: break; + case 44: + { return (commentMode && whitespaceInClass) ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; + } + // fall through + case 182: break; + case 45: { if (commentMode && whitespaceInClass) yypushstate(COMMENT); else return RegExpTT.CHARACTER; - } - // fall through + } + // fall through + case 183: break; + case 46: + { return RegExpTT.MINUS; + } + // fall through + case 184: break; + case 47: + { if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; + } + // fall through + case 185: break; + case 48: + { yypopstate(); return RegExpTT.CLASS_END; + } + // fall through case 186: break; - case 49: - { yypopstate(); yypushstate(EMBRACED); return RegExpTT.LBRACE; - } - // fall through - case 187: break; - case 50: + case 49: { yypopstate(); return RegExpTT.CATEGORY_SHORT_HAND; - } - // fall through + } + // fall through + case 187: break; + case 50: + { yypopstate(); yypushstate(EMBRACED); return RegExpTT.LBRACE; + } + // fall through case 188: break; - case 51: + case 51: { yybegin(OPTIONS); return RegExpTT.SET_OPTIONS; - } - // fall through + } + // fall through case 189: break; - case 52: + case 52: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; - } - // fall through + } + // fall through case 190: break; - case 53: + case 53: { return RegExpTT.REDUNDANT_ESCAPE; - } - // fall through + } + // fall through case 191: break; - case 54: - { return RegExpTT.ESC_CHARACTER; - } - // fall through - case 192: break; - case 55: - { return (allowDanglingMetacharacters != TRUE) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 193: break; - case 56: - { return (allowDanglingMetacharacters == FALSE) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 194: break; - case 57: - { return (yystate() == CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 195: break; - case 58: + case 54: { return commentMode ? RegExpTT.ESC_CTRL_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 196: break; - case 59: - { return RegExpTT.ESC_CTRL_CHARACTER; - } - // fall through - case 197: break; - case 60: - { return RegExpTT.BOUNDARY; - } - // fall through - case 198: break; - case 61: - { return RegExpTT.CHAR_CLASS; - } - // fall through - case 199: break; - case 62: - { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } - // fall through - case 200: break; - case 63: - { yypushstate(PROP); return RegExpTT.PROPERTY; - } - // fall through - case 201: break; - case 64: - { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } - // fall through - case 202: break; - case 65: + } + // fall through + case 192: break; + case 55: + { return commentMode ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through + case 193: break; + case 56: + { return RegExpTT.ESC_CHARACTER; + } + // fall through + case 194: break; + case 57: + { return (yystate() == CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through + case 195: break; + case 58: { return (allowOctalNoLeadingZero ? RegExpTT.OCT_CHAR : RegExpTT.BAD_OCT_VALUE); - } - // fall through - case 203: break; - case 66: - { yypushstate(NAMED); return RegExpTT.NAMED_CHARACTER; - } - // fall through - case 204: break; - case 67: + } + // fall through + case 196: break; + case 59: { String text = yytext().toString().substring(1); if (allowOctalNoLeadingZero) { if (Integer.parseInt(text) <= capturingGroupCount && yystate() != CLASS2) return RegExpTT.BACKREF; @@ -1335,119 +1381,164 @@ class _RegExLexer implements FlexLexer { } return RegExpTT.BACKREF; } - } - // fall through - case 205: break; - case 68: - { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; - } - // fall through - case 206: break; - case 69: - { return RegExpTT.BAD_HEX_VALUE; - } - // fall through - case 207: break; - case 70: - { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; - } - // fall through - case 208: break; - case 71: + } + // fall through + case 197: break; + case 60: + { return RegExpTT.BOUNDARY; + } + // fall through + case 198: break; + case 61: + { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; + } + // fall through + case 199: break; + case 62: + { return RegExpTT.CHAR_CLASS; + } + // fall through + case 200: break; + case 63: + { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; + } + // fall through + case 201: break; + case 64: { return (allowHexDigitClass || allowHorizontalWhitespaceClass ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN); - } - // fall through + } + // fall through + case 202: break; + case 65: + { yypushstate(NAMED); return RegExpTT.NAMED_CHARACTER; + } + // fall through + case 203: break; + case 66: + { yypushstate(PROP); return RegExpTT.PROPERTY; + } + // fall through + case 204: break; + case 67: + { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; + } + // fall through + case 205: break; + case 68: + { return (allowDanglingMetacharacters == FALSE) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through + case 206: break; + case 69: + { return RegExpTT.ESC_CTRL_CHARACTER; + } + // fall through + case 207: break; + case 70: + { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; + } + // fall through + case 208: break; + case 71: + { return RegExpTT.BAD_HEX_VALUE; + } + // fall through case 209: break; - case 72: - { return commentMode ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through + case 72: + { return (allowDanglingMetacharacters != TRUE) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through case 210: break; - case 73: + case 73: { yypopstate(); return RegExpTT.QUOTE_END; - } - // fall through + } + // fall through case 211: break; - case 74: + case 74: { yypopstate(); return RegExpTT.ESC_CHARACTER; - } - // fall through + } + // fall through case 212: break; - case 75: + case 75: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { yybegin(CLASS2); if (allowMysqlBracketExpressions) { yypushback(1); } else if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } else { return RegExpTT.CHARACTER; } - } - // fall through + } + // fall through case 213: break; - case 76: + case 76: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } - // fall through - case 214: break; - case 77: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { yybegin(CLASS2); if (allowPosixBracketExpressions) { yypushback(1); } else if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } else { return RegExpTT.CHARACTER; } - } - // fall through + } + // fall through + case 214: break; + case 77: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; + } + // fall through case 215: break; - case 78: - { yybegin(CLASS2); return allowEmptyCharacterClass ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 216: break; - case 79: - { yybegin(CLASS2); return RegExpTT.ESC_CHARACTER; - } - // fall through - case 217: break; - case 80: + case 78: { yypushstate(QUOTED_CLASS); return RegExpTT.QUOTE_BEGIN; - } - // fall through + } + // fall through + case 216: break; + case 79: + { yybegin(CLASS2); return allowEmptyCharacterClass ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through + case 217: break; + case 80: + { yybegin(CLASS2); return RegExpTT.ESC_CHARACTER; + } + // fall through case 218: break; - case 81: + case 81: { yybegin(CLASS2); return RegExpTT.BRACKET_EXPRESSION_END; - } - // fall through + } + // fall through case 219: break; - case 82: + case 82: { yybegin(CLASS2); return RegExpTT.MYSQL_CHAR_END; - } - // fall through + } + // fall through case 220: break; - case 83: + case 83: { yybegin(CLASS2); return RegExpTT.MYSQL_CHAR_EQ_END; - } - // fall through + } + // fall through case 221: break; - case 84: - { yybegin(CONDITIONAL2); return RegExpTT.ANGLE_BRACKET_CONDITION_BEGIN; - } - // fall through - case 222: break; - case 85: + case 84: { yybegin(CONDITIONAL2); return RegExpTT.QUOTED_CONDITION_BEGIN; - } - // fall through + } + // fall through + case 222: break; + case 85: + { yybegin(CONDITIONAL2); return RegExpTT.ANGLE_BRACKET_CONDITION_BEGIN; + } + // fall through case 223: break; - case 86: - { yybegin(YYINITIAL); return RegExpTT.ANGLE_BRACKET_CONDITION_END; - } - // fall through - case 224: break; - case 87: + case 86: { yybegin(YYINITIAL); return RegExpTT.QUOTED_CONDITION_END; - } - // fall through + } + // fall through + case 224: break; + case 87: + { yybegin(YYINITIAL); return RegExpTT.ANGLE_BRACKET_CONDITION_END; + } + // fall through case 225: break; - case 88: + case 88: + { if (allowNestedCharacterClasses) return RegExpTT.ANDAND; else yypushback(1); return RegExpTT.CHARACTER; + } + // fall through + case 226: break; + case 89: { char c = yycharat(1); if (allowPosixBracketExpressions && c == ':') { yybegin(BRACKET_EXPRESSION); @@ -1467,307 +1558,302 @@ class _RegExLexer implements FlexLexer { return RegExpTT.CHARACTER; } } - } - // fall through - case 226: break; - case 89: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } - // fall through + } + // fall through case 227: break; - case 90: - { return (commentMode && whitespaceInClass) ? RegExpTT.ESC_CTRL_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through + case 90: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; + } + // fall through case 228: break; - case 91: - { if (allowNestedCharacterClasses) return RegExpTT.ANDAND; else yypushback(1); return RegExpTT.CHARACTER; - } - // fall through + case 91: + { return (commentMode && whitespaceInClass) ? RegExpTT.ESC_CTRL_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through case 229: break; - case 92: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); - { yybegin(CONDITIONAL1); return RegExpTT.CONDITIONAL; - } - // fall through - case 230: break; - case 93: - { return RegExpTT.PCRE_BRANCH_RESET; - } - // fall through - case 231: break; - case 94: - { return RegExpTT.ATOMIC_GROUP; - } - // fall through - case 232: break; - case 95: - { return RegExpTT.POS_LOOKAHEAD; - } - // fall through - case 233: break; - case 96: - { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_NAMED_GROUP; - } - // fall through - case 234: break; - case 97: - { yybegin(QUOTED_NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_QUOTED_NAMED_GROUP; - } - // fall through - case 235: break; - case 98: - { return RegExpTT.NON_CAPT_GROUP; - } - // fall through - case 236: break; - case 99: - { yybegin(NAMED_GROUP); return RegExpTT.PCRE_RECURSIVE_NAMED_GROUP_REF; - } - // fall through - case 237: break; - case 100: + case 92: { return RegExpTT.NEG_LOOKAHEAD; - } - // fall through + } + // fall through + case 230: break; + case 93: + { yybegin(NAMED_GROUP); return RegExpTT.PCRE_RECURSIVE_NAMED_GROUP_REF; + } + // fall through + case 231: break; + case 94: + { yybegin(QUOTED_NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_QUOTED_NAMED_GROUP; + } + // fall through + case 232: break; + case 95: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 2); + { yybegin(CONDITIONAL1); return RegExpTT.CONDITIONAL; + } + // fall through + case 233: break; + case 96: + { return RegExpTT.NON_CAPT_GROUP; + } + // fall through + case 234: break; + case 97: + { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_NAMED_GROUP; + } + // fall through + case 235: break; + case 98: + { return RegExpTT.POS_LOOKAHEAD; + } + // fall through + case 236: break; + case 99: + { return RegExpTT.ATOMIC_GROUP; + } + // fall through + case 237: break; + case 100: + { return RegExpTT.PCRE_BRANCH_RESET; + } + // fall through case 238: break; - case 101: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { return (allowDanglingMetacharacters != TRUE) ? RegExpTT.LBRACE : RegExpTT.CHARACTER; - } - // fall through - case 239: break; - case 102: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; - } - // fall through - case 240: break; - case 103: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowOmitBothNumbersInQuantifiers || allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else return RegExpTT.CHARACTER; - } - // fall through - case 241: break; - case 104: - { return allowPcreBackReferences ? RegExpTT.BACKREF : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } - // fall through - case 242: break; - case 105: - { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_CALL; - } - // fall through - case 243: break; - case 106: - { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_CALL; - } - // fall through - case 244: break; - case 107: - { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL; - } - // fall through - case 245: break; - case 108: + case 101: { return RegExpTT.OCT_CHAR; - } - // fall through - case 246: break; - case 109: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); - { if (allowExtendedUnicodeCharacter) yypushstate(EMBRACED_HEX); else return RegExpTT.BAD_HEX_VALUE; - } - // fall through - case 247: break; - case 110: - { if (allowOneHexCharEscape) { return RegExpTT.HEX_CHAR; } else { yypushback(1); return RegExpTT.BAD_HEX_VALUE; } - } - // fall through - case 248: break; - case 111: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); - { if (allowExtendedUnicodeCharacter) yypushstate(EMBRACED_HEX); else return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; - } - // fall through - case 249: break; - case 112: - { yypushback(yylength() - 2); return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; - } - // fall through - case 250: break; - case 113: - { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_REF; - } - // fall through - case 251: break; - case 114: + } + // fall through + case 239: break; + case 102: + { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL; + } + // fall through + case 240: break; + case 103: + { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_CALL; + } + // fall through + case 241: break; + case 104: + { return allowPcreBackReferences ? RegExpTT.BACKREF : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; + } + // fall through + case 242: break; + case 105: + { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_CALL; + } + // fall through + case 243: break; + case 106: { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_REF; - } - // fall through - case 252: break; - case 115: + } + // fall through + case 244: break; + case 107: + { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_REF; + } + // fall through + case 245: break; + case 108: + { yypushback(yylength() - 2); return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; + } + // fall through + case 246: break; + case 109: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 2); + { if (allowExtendedUnicodeCharacter) yypushstate(EMBRACED_HEX); else return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; + } + // fall through + case 247: break; + case 110: + { if (allowOneHexCharEscape) { return RegExpTT.HEX_CHAR; } else { yypushback(1); return RegExpTT.BAD_HEX_VALUE; } + } + // fall through + case 248: break; + case 111: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 2); + { if (allowExtendedUnicodeCharacter) yypushstate(EMBRACED_HEX); else return RegExpTT.BAD_HEX_VALUE; + } + // fall through + case 249: break; + case 112: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { if (allowOmitBothNumbersInQuantifiers || allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else return RegExpTT.CHARACTER; + } + // fall through + case 250: break; + case 113: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; + } + // fall through + case 251: break; + case 114: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { return (allowDanglingMetacharacters != TRUE) ? RegExpTT.LBRACE : RegExpTT.CHARACTER; + } + // fall through + case 252: break; + case 115: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); { return RegExpTT.CHARACTER; - } - // fall through + } + // fall through case 253: break; - case 116: + case 116: { yypopstate(); return (yycharat(-1) == 'u') ? RegExpTT.UNICODE_CHAR : RegExpTT.HEX_CHAR; - } - // fall through + } + // fall through case 254: break; - case 117: - { yybegin(YYINITIAL); return RegExpTT.POS_LOOKAHEAD; - } - // fall through - case 255: break; - case 118: + case 117: { yybegin(YYINITIAL); return RegExpTT.NEG_LOOKAHEAD; - } - // fall through + } + // fall through + case 255: break; + case 118: + { yybegin(YYINITIAL); return RegExpTT.POS_LOOKAHEAD; + } + // fall through case 256: break; - case 119: - { yybegin(PY_NAMED_GROUP_REF); return RegExpTT.PYTHON_NAMED_GROUP_REF; - } - // fall through - case 257: break; - case 120: - { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.PYTHON_NAMED_GROUP; - } - // fall through - case 258: break; - case 121: + case 119: { if (allowPcreNumberedGroupRef) { yybegin(PCRE_NUMBERED_GROUP); return RegExpTT.PCRE_NUMBERED_GROUP_REF; } else { yypushback(yylength() - 2); yybegin(OPTIONS); return RegExpTT.SET_OPTIONS; } - } - // fall through - case 259: break; - case 122: - { return RegExpTT.POS_LOOKBEHIND; - } - // fall through - case 260: break; - case 123: + } + // fall through + case 257: break; + case 120: { return RegExpTT.NEG_LOOKBEHIND; - } - // fall through + } + // fall through + case 258: break; + case 121: + { return RegExpTT.POS_LOOKBEHIND; + } + // fall through + case 259: break; + case 122: + { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.PYTHON_NAMED_GROUP; + } + // fall through + case 260: break; + case 123: + { yybegin(PY_NAMED_GROUP_REF); return RegExpTT.PYTHON_NAMED_GROUP_REF; + } + // fall through case 261: break; - case 124: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else { yypushstate(NON_QUANTIFIER); return RegExpTT.CHARACTER; } - } - // fall through - case 262: break; - case 125: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowDanglingMetacharacters == TRUE) { if (allowOmitBothNumbersInQuantifiers) yypushstate(NON_QUANTIFIER); return RegExpTT.CHARACTER; } else { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } - } - // fall through - case 263: break; - case 126: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowOmitNumbersInQuantifiers || allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else return RegExpTT.CHARACTER; - } - // fall through - case 264: break; - case 127: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); - { return RegExpTT.ESC_CHARACTER; - } - // fall through - case 265: break; - case 128: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); - { return allowOmitBothNumbersInQuantifiers ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 266: break; - case 129: + case 124: { return RegExpTT.HEX_CHAR; - } - // fall through + } + // fall through + case 262: break; + case 125: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 2); + { return allowOmitBothNumbersInQuantifiers ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through + case 263: break; + case 126: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 2); + { return RegExpTT.ESC_CHARACTER; + } + // fall through + case 264: break; + case 127: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { if (allowOmitNumbersInQuantifiers || allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else return RegExpTT.CHARACTER; + } + // fall through + case 265: break; + case 128: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { if (allowDanglingMetacharacters == TRUE) { if (allowOmitBothNumbersInQuantifiers) yypushstate(NON_QUANTIFIER); return RegExpTT.CHARACTER; } else { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } + } + // fall through + case 266: break; + case 129: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { if (allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else { yypushstate(NON_QUANTIFIER); return RegExpTT.CHARACTER; } + } + // fall through case 267: break; - case 130: - { yybegin(YYINITIAL); return RegExpTT.POS_LOOKBEHIND; - } - // fall through - case 268: break; - case 131: + case 130: { yybegin(YYINITIAL); return RegExpTT.NEG_LOOKBEHIND; - } - // fall through + } + // fall through + case 268: break; + case 131: + { yybegin(YYINITIAL); return RegExpTT.POS_LOOKBEHIND; + } + // fall through case 269: break; - case 132: + case 132: { return RegExpTT.COMMENT; - } - // fall through + } + // fall through case 270: break; - case 133: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else if (allowOmitNumbersInQuantifiers) yypushstate(NON_QUANTIFIER); return RegExpTT.CHARACTER; - } - // fall through - case 271: break; - case 134: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); - { return allowOmitNumbersInQuantifiers ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } - // fall through - case 272: break; - case 135: + case 133: { if (allowOctalNoLeadingZero) yypushback(1); return RegExpTT.OCT_CHAR; - } - // fall through + } + // fall through + case 271: break; + case 134: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 2); + { return allowOmitNumbersInQuantifiers ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + // fall through + case 272: break; + case 135: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { if (allowDanglingMetacharacters != TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else if (allowOmitNumbersInQuantifiers) yypushstate(NON_QUANTIFIER); return RegExpTT.CHARACTER; + } + // fall through case 273: break; - case 136: + case 136: { return RegExpTT.UNICODE_CHAR; - } - // fall through + } + // fall through case 274: break; - case 137: + case 137: { return allowPcreConditions ? RegExpTT.PCRE_DEFINE : RegExpTT.NAME; - } - // fall through + } + // fall through case 275: break; - case 138: + case 138: { return allowPcreConditions ? RegExpTT.PCRE_VERSION : RegExpTT.NAME; - } - // fall through + } + // fall through case 276: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/java/java-impl/gen/com/intellij/spi/parsing/_SPILexer.java b/java/java-impl/gen/com/intellij/spi/parsing/_SPILexer.java index 94550a60159f..a1894999d293 100644 --- a/java/java-impl/gen/com/intellij/spi/parsing/_SPILexer.java +++ b/java/java-impl/gen/com/intellij/spi/parsing/_SPILexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _SPILexer.flex /* * Copyright 2000-2013 JetBrains s.r.o. @@ -24,11 +25,6 @@ import com.intellij.lexer.FlexLexer; @SuppressWarnings({"ALL"}) -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _SPILexer.flex - */ class _SPILexer implements FlexLexer { /** This character denotes the end of file */ @@ -46,129 +42,250 @@ class _SPILexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14144 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\4\1\6\2\1\1\7\1\10\1\11\1\12\1\11\1\12\34\11\1"+ - "\13\1\14\1\15\10\1\1\16\1\17\1\11\1\20\4\11\1\21\10\11\1\22\12\11\1\4\1\11"+ - "\1\23\1\4\1\11\1\24\4\1\1\11\1\6\1\25\2\1\2\11\1\6\1\1\1\26\1\4\5\11\1\27"+ - "\1\30\1\31\1\1\1\32\1\11\1\1\1\33\5\11\1\34\1\35\1\36\1\11\1\6\1\37\1\11\1"+ - "\40\1\41\1\1\1\11\1\42\4\1\1\11\1\43\4\1\1\44\2\11\1\45\1\1\1\46\1\47\1\4"+ - "\1\50\1\51\1\52\1\53\1\54\1\55\1\47\1\14\1\56\1\51\1\52\1\57\1\1\1\60\1\61"+ - "\1\62\1\63\1\20\1\52\1\64\1\1\1\65\1\47\1\66\1\67\1\51\1\52\1\64\1\1\1\55"+ - "\1\47\1\35\1\70\1\71\1\72\1\73\1\1\1\65\1\61\1\1\1\74\1\32\1\52\1\45\1\1\1"+ - "\75\1\47\1\1\1\76\1\32\1\52\1\77\1\1\1\54\1\47\1\100\1\74\1\32\1\11\1\101"+ - "\1\54\1\102\1\47\1\103\1\104\1\105\1\11\1\106\1\107\1\1\1\61\1\1\1\4\2\11"+ - "\1\110\1\107\1\3\2\1\1\111\1\112\1\113\1\114\1\115\1\116\2\1\1\65\1\1\1\3"+ - "\1\1\1\117\1\11\1\120\1\1\1\121\7\1\2\11\1\6\1\122\1\3\1\123\1\124\1\125\1"+ - "\126\1\3\2\11\1\127\2\11\1\130\24\11\1\131\1\132\2\11\1\131\2\11\1\133\1\134"+ - "\1\12\3\11\1\134\3\11\1\6\2\1\1\11\1\1\5\11\1\135\1\4\45\11\1\136\1\11\1\4"+ - "\1\6\4\11\1\6\1\137\1\140\1\14\1\11\1\14\1\11\1\14\1\140\1\65\3\11\1\141\1"+ - "\1\1\142\1\3\2\1\1\3\5\11\1\24\1\143\1\11\1\144\4\11\1\34\1\11\1\145\2\1\1"+ - "\61\1\11\1\146\1\147\2\11\1\150\1\11\1\73\1\3\2\1\1\11\1\107\3\11\1\147\2"+ - "\1\2\3\1\151\5\1\1\104\2\11\1\141\1\152\1\3\2\1\1\153\1\11\1\154\1\36\2\11"+ - "\1\34\1\1\2\11\1\141\1\1\1\155\1\36\1\11\1\146\1\42\5\1\1\156\1\157\14\11"+ - "\4\1\21\11\1\135\2\11\1\135\1\160\1\11\1\146\3\11\1\161\1\162\1\163\1\120"+ - "\1\162\7\1\1\164\1\1\1\120\6\1\1\165\1\166\1\167\1\170\1\171\3\1\1\172\147"+ - "\1\2\11\1\145\2\11\1\145\10\11\1\173\1\174\2\11\1\127\3\11\1\175\1\1\1\11"+ - "\1\107\4\176\4\1\1\122\35\1\1\177\2\1\1\200\1\4\4\11\1\201\1\4\4\11\1\130"+ - "\1\104\1\11\1\146\1\4\4\11\1\145\1\1\1\11\1\6\3\1\1\11\40\1\133\11\1\34\4"+ - "\1\135\11\1\34\2\1\10\11\1\120\4\1\2\11\1\146\20\11\1\120\1\11\1\202\1\1\2"+ - "\11\1\145\1\122\1\11\1\146\4\11\1\34\2\1\1\203\1\204\5\11\1\205\1\11\1\145"+ - "\1\24\3\1\1\203\1\206\1\11\1\25\1\1\3\11\1\141\1\204\2\11\1\141\1\1\1\3\1"+ - "\1\1\207\1\36\1\11\1\34\1\11\1\107\1\1\1\11\1\120\1\44\2\11\1\25\1\122\1\3"+ - "\1\210\1\211\2\11\1\42\1\1\1\212\1\3\1\11\1\213\3\11\1\214\1\215\1\216\1\6"+ - "\1\62\1\217\1\220\1\176\2\11\1\130\1\34\7\11\1\25\1\3\72\11\1\141\1\11\1\221"+ - "\2\11\1\150\20\1\26\11\1\146\6\11\1\73\2\1\1\107\1\222\1\52\1\223\1\224\6"+ - "\11\1\14\1\1\1\153\25\11\1\146\1\1\4\11\1\204\2\11\1\24\2\1\1\150\7\1\1\210"+ - "\7\11\1\120\1\1\1\3\1\4\1\6\1\4\1\6\1\225\4\11\1\145\1\226\1\227\2\1\1\230"+ - "\1\11\1\12\1\231\2\146\2\1\7\11\1\6\30\1\1\11\1\120\3\11\1\65\2\1\2\11\1\1"+ - "\1\11\1\232\2\11\1\34\1\11\1\146\2\11\1\233\3\1\11\11\1\146\1\3\2\11\1\233"+ - "\1\11\1\150\2\11\1\24\3\11\1\141\11\1\23\11\1\107\1\11\1\34\1\24\11\1\1\234"+ - "\2\11\1\235\1\11\1\34\1\11\1\107\1\11\1\145\4\1\1\11\1\236\1\11\1\34\1\11"+ - "\1\73\4\1\3\11\1\237\4\1\1\65\1\240\1\11\1\141\2\1\1\11\1\120\1\11\1\120\2"+ - "\1\1\117\1\11\1\147\1\1\3\11\1\34\1\11\1\34\1\11\1\25\1\11\1\14\6\1\4\11\1"+ - "\42\3\1\3\11\1\25\3\11\1\25\60\1\1\153\2\11\1\24\2\1\1\61\1\1\1\153\2\11\2"+ - "\1\1\11\1\42\1\3\1\153\1\11\1\107\1\61\1\1\2\11\1\241\1\153\2\11\1\25\1\242"+ - "\1\243\2\1\1\11\1\20\1\150\5\1\1\244\1\245\1\42\2\11\1\145\1\1\1\3\1\67\1"+ - "\51\1\52\1\64\1\1\1\246\1\14\11\1\3\11\1\147\1\247\1\3\2\1\3\11\1\1\1\250"+ - "\1\3\12\1\2\11\1\145\2\1\1\251\2\1\3\11\1\1\1\252\1\3\2\1\2\11\1\6\1\1\1\3"+ - "\3\1\1\11\1\73\1\1\1\3\26\1\4\11\1\3\1\122\34\1\3\11\1\42\20\1\1\52\1\11\1"+ - "\145\1\1\1\65\1\3\1\1\1\204\1\11\67\1\71\11\1\73\16\1\14\11\1\141\53\1\2\11"+ - "\1\145\75\1\44\11\1\107\33\1\43\11\1\42\1\11\1\145\1\3\6\1\1\11\1\146\1\1"+ - "\3\11\1\1\1\141\1\3\1\153\1\253\1\11\67\1\4\11\1\147\1\65\3\1\1\153\4\1\1"+ - "\65\1\1\76\11\1\120\1\1\57\11\1\25\20\1\1\14\77\1\6\11\1\6\1\120\1\42\1\73"+ - "\66\1\5\11\1\210\3\11\1\140\1\254\1\255\1\256\3\11\1\257\1\260\1\11\1\261"+ - "\1\262\1\32\24\11\1\263\1\11\1\32\1\130\1\11\1\130\1\11\1\210\1\11\1\210\1"+ - "\145\1\11\1\145\1\11\1\52\1\11\1\52\1\11\1\264\3\265\14\11\1\147\3\1\4\11"+ - "\1\141\1\3\112\1\1\256\1\11\1\266\1\267\1\270\1\271\1\272\1\273\1\274\1\150"+ - "\1\275\1\150\24\1\55\11\1\107\2\1\103\11\1\147\15\11\1\146\150\11\1\14\25"+ - "\1\41\11\1\146\36\1"); - /* The ZZ_CMAP_A table has 3040 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\1\1\5\1\0\1\1\1\5\22\0\1\1\2\0\1\4\1\6\11\0\1\7\1\0\12\3\7\0\32\2"+ - "\4\0\14\2\17\0\1\2\12\0\1\2\4\0\1\2\5\0\27\2\1\0\12\2\4\0\14\2\16\0\5\2\7"+ - "\0\1\2\1\0\1\2\1\0\5\2\1\0\2\2\2\0\4\2\1\0\1\2\6\0\1\2\1\0\3\2\1\0\1\2\1\0"+ - "\4\2\1\0\23\2\1\0\13\2\10\0\15\2\2\0\1\2\6\0\10\2\10\0\3\2\15\0\12\3\4\0\6"+ - "\2\1\0\1\2\17\0\2\2\7\0\2\2\12\3\3\2\2\0\2\2\1\0\16\2\15\0\11\2\13\0\1\2\16"+ - "\0\12\3\6\2\4\0\2\2\4\0\1\2\5\0\6\2\4\0\1\2\11\0\1\2\3\0\1\2\7\0\11\2\7\0"+ - "\5\2\1\0\10\2\6\0\26\2\3\0\1\2\2\0\1\2\7\0\12\2\4\0\12\3\1\2\4\0\10\2\2\0"+ - "\2\2\2\0\26\2\1\0\7\2\1\0\1\2\3\0\4\2\3\0\1\2\20\0\1\2\15\0\2\2\1\0\1\2\5"+ - "\0\6\2\4\0\2\2\1\0\2\2\1\0\2\2\1\0\2\2\17\0\4\2\1\0\1\2\7\0\12\3\2\0\3\2\20"+ - "\0\11\2\1\0\2\2\1\0\2\2\1\0\5\2\3\0\1\2\2\0\1\2\30\0\1\2\13\0\10\2\2\0\1\2"+ - "\3\0\1\2\1\0\6\2\3\0\3\2\1\0\4\2\3\0\2\2\1\0\1\2\1\0\2\2\3\0\2\2\3\0\3\2\3"+ - "\0\14\2\13\0\10\2\1\0\2\2\10\0\3\2\5\0\1\2\4\0\10\2\1\0\6\2\1\0\5\2\3\0\1"+ - "\2\3\0\2\2\15\0\13\2\2\0\1\2\6\0\3\2\10\0\1\2\12\0\6\2\5\0\22\2\3\0\10\2\1"+ - "\0\11\2\1\0\1\2\2\0\7\2\11\0\1\2\1\0\2\2\15\0\2\2\1\0\1\2\2\0\2\2\1\0\1\2"+ - "\2\0\1\2\6\0\4\2\1\0\7\2\1\0\3\2\1\0\1\2\1\0\1\2\2\0\2\2\1\0\4\2\1\0\2\2\11"+ - "\0\1\2\2\0\5\2\1\0\1\2\11\0\12\3\2\0\14\2\1\0\24\2\13\0\5\2\22\0\7\2\4\0\4"+ - "\2\3\0\1\2\3\0\2\2\7\0\3\2\4\0\15\2\14\0\1\2\1\0\6\2\1\0\1\2\5\0\1\2\2\0\13"+ - "\2\1\0\15\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0\1\2\1\0\4\2\2\0\7\2\1\0\1"+ - "\2\1\0\4\2\2\0\16\2\2\0\6\2\2\0\15\2\2\0\1\2\1\0\10\2\7\0\15\2\1\0\6\2\23"+ - "\0\1\2\4\0\1\2\3\0\5\2\2\0\22\2\1\0\1\2\5\0\17\2\1\0\16\2\2\0\5\2\13\0\14"+ - "\2\13\0\1\2\15\0\7\2\7\0\16\2\15\0\2\2\12\3\3\0\3\2\11\0\4\2\1\0\4\2\3\0\2"+ - "\2\11\0\10\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0\6\2\1\0\7\2\1\0\1\2\3\0\3\2\1\0\7"+ - "\2\3\0\4\2\2\0\6\2\5\0\1\2\15\0\1\2\2\0\1\2\4\0\1\2\2\0\12\2\1\0\1\2\3\0\5"+ - "\2\6\0\1\2\1\0\1\2\1\0\1\2\1\0\4\2\1\0\13\2\2\0\4\2\5\0\5\2\4\0\1\2\4\0\2"+ - "\2\13\0\5\2\6\0\4\2\3\0\2\2\14\0\10\2\7\0\10\2\1\0\7\2\6\0\2\2\12\0\5\2\5"+ - "\0\2\2\3\0\7\2\6\0\3\2\12\3\2\2\13\0\11\2\2\0\27\2\2\0\7\2\1\0\3\2\1\0\4\2"+ - "\1\0\4\2\2\0\6\2\3\0\1\2\1\0\1\2\2\0\5\2\1\0\12\2\12\3\5\2\1\0\3\2\1\0\10"+ - "\2\4\0\7\2\3\0\1\2\3\0\2\2\1\0\1\2\3\0\2\2\2\0\5\2\2\0\1\2\1\0\1\2\30\0\3"+ - "\2\3\0\6\2\2\0\6\2\2\0\6\2\11\0\7\2\4\0\5\2\3\0\5\2\5\0\1\2\1\0\10\2\1\0\5"+ - "\2\1\0\1\2\1\0\2\2\1\0\2\2\1\0\12\2\6\0\12\2\2\0\6\2\2\0\6\2\2\0\6\2\2\0\3"+ - "\2\3\0\14\2\1\0\16\2\1\0\2\2\1\0\2\2\1\0\10\2\6\0\4\2\4\0\16\2\2\0\1\2\1\0"+ - "\14\2\1\0\2\2\3\0\1\2\2\0\4\2\1\0\2\2\12\0\10\2\6\0\6\2\1\0\3\2\1\0\12\2\3"+ - "\0\1\2\12\0\4\2\13\0\12\3\1\2\1\0\1\2\3\0\7\2\1\0\1\2\1\0\4\2\1\0\17\2\1\0"+ - "\2\2\14\0\3\2\7\0\4\2\11\0\2\2\1\0\1\2\20\0\4\2\10\0\1\2\13\0\10\2\5\0\3\2"+ - "\2\0\1\2\2\0\2\2\2\0\4\2\1\0\14\2\1\0\1\2\1\0\7\2\1\0\21\2\1\0\4\2\2\0\10"+ - "\2\1\0\7\2\1\0\14\2\1\0\4\2\1\0\5\2\1\0\1\2\3\0\14\2\2\0\13\2\1\0\10\2\2\0"+ - "\22\3\1\0\2\2\1\0\1\2\2\0\1\2\1\0\12\2\1\0\4\2\1\0\1\2\1\0\1\2\6\0\1\2\4\0"+ - "\1\2\1\0\1\2\1\0\1\2\1\0\3\2\1\0\2\2\1\0\1\2\2\0\1\2\1\0\1\2\1\0\1\2\1\0\1"+ - "\2\1\0\1\2\1\0\2\2\1\0\1\2\2\0\4\2\1\0\7\2\1\0\4\2\1\0\4\2\1\0\1\2\1\0\12"+ - "\2\1\0\5\2\1\0\3\2\1\0\5\2\1\0\5\2"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\0\1\1\1\2\22\0\1\1"+ + "\2\0\1\3\1\4\11\0\1\5\1\0\12\6\7\0"+ + "\32\7\4\0\1\7\1\0\32\7\57\0\1\7\12\0"+ + "\1\7\4\0\1\7\5\0\27\7\1\0\37\7\1\0"+ + "\u01ca\7\4\0\14\7\16\0\5\7\7\0\1\7\1\0"+ + "\1\7\201\0\5\7\1\0\2\7\2\0\4\7\1\0"+ + "\1\7\6\0\1\7\1\0\3\7\1\0\1\7\1\0"+ + "\24\7\1\0\123\7\1\0\213\7\10\0\246\7\1\0"+ + "\46\7\2\0\1\7\6\0\51\7\107\0\33\7\4\0"+ + "\4\7\55\0\53\7\25\0\12\6\4\0\2\7\1\0"+ + "\143\7\1\0\1\7\17\0\2\7\7\0\2\7\12\6"+ + "\3\7\2\0\1\7\20\0\1\7\1\0\36\7\35\0"+ + "\131\7\13\0\1\7\16\0\12\6\41\7\11\0\2\7"+ + "\4\0\1\7\5\0\26\7\4\0\1\7\11\0\1\7"+ + "\3\0\1\7\27\0\31\7\7\0\13\7\65\0\25\7"+ + "\1\0\10\7\106\0\66\7\3\0\1\7\22\0\1\7"+ + "\7\0\12\7\4\0\12\6\1\0\20\7\4\0\10\7"+ + "\2\0\2\7\2\0\26\7\1\0\7\7\1\0\1\7"+ + "\3\0\4\7\3\0\1\7\20\0\1\7\15\0\2\7"+ + "\1\0\3\7\4\0\12\6\2\7\12\0\1\7\10\0"+ + "\6\7\4\0\2\7\2\0\26\7\1\0\7\7\1\0"+ + "\2\7\1\0\2\7\1\0\2\7\37\0\4\7\1\0"+ + "\1\7\7\0\12\6\2\0\3\7\20\0\11\7\1\0"+ + "\3\7\1\0\26\7\1\0\7\7\1\0\2\7\1\0"+ + "\5\7\3\0\1\7\22\0\1\7\17\0\2\7\4\0"+ + "\12\6\11\0\1\7\13\0\10\7\2\0\2\7\2\0"+ + "\26\7\1\0\7\7\1\0\2\7\1\0\5\7\3\0"+ + "\1\7\36\0\2\7\1\0\3\7\4\0\12\6\1\0"+ + "\1\7\21\0\1\7\1\0\6\7\3\0\3\7\1\0"+ + "\4\7\3\0\2\7\1\0\1\7\1\0\2\7\3\0"+ + "\2\7\3\0\3\7\3\0\14\7\26\0\1\7\25\0"+ + "\12\6\25\0\10\7\1\0\3\7\1\0\27\7\1\0"+ + "\20\7\3\0\1\7\32\0\3\7\5\0\2\7\4\0"+ + "\12\6\20\0\1\7\4\0\10\7\1\0\3\7\1\0"+ + "\27\7\1\0\12\7\1\0\5\7\3\0\1\7\40\0"+ + "\1\7\1\0\2\7\4\0\12\6\1\0\2\7\22\0"+ + "\10\7\1\0\3\7\1\0\51\7\2\0\1\7\20\0"+ + "\1\7\5\0\3\7\10\0\3\7\4\0\12\6\12\0"+ + "\6\7\5\0\22\7\3\0\30\7\1\0\11\7\1\0"+ + "\1\7\2\0\7\7\37\0\12\6\21\0\60\7\1\0"+ + "\2\7\14\0\7\7\11\0\12\6\47\0\2\7\1\0"+ + "\1\7\1\0\5\7\1\0\30\7\1\0\1\7\1\0"+ + "\12\7\1\0\2\7\11\0\1\7\2\0\5\7\1\0"+ + "\1\7\11\0\12\6\2\0\4\7\40\0\1\7\37\0"+ + "\12\6\26\0\10\7\1\0\44\7\33\0\5\7\163\0"+ + "\53\7\24\0\1\7\12\6\6\0\6\7\4\0\4\7"+ + "\3\0\1\7\3\0\2\7\7\0\3\7\4\0\15\7"+ + "\14\0\1\7\1\0\12\6\6\0\46\7\1\0\1\7"+ + "\5\0\1\7\2\0\53\7\1\0\115\7\1\0\4\7"+ + "\2\0\7\7\1\0\1\7\1\0\4\7\2\0\51\7"+ + "\1\0\4\7\2\0\41\7\1\0\4\7\2\0\7\7"+ + "\1\0\1\7\1\0\4\7\2\0\17\7\1\0\71\7"+ + "\1\0\4\7\2\0\103\7\45\0\20\7\20\0\126\7"+ + "\2\0\6\7\3\0\u016c\7\2\0\21\7\1\0\32\7"+ + "\5\0\113\7\6\0\10\7\7\0\15\7\1\0\4\7"+ + "\16\0\22\7\16\0\22\7\16\0\15\7\1\0\3\7"+ + "\17\0\64\7\43\0\1\7\4\0\1\7\3\0\12\6"+ + "\46\0\12\6\6\0\131\7\7\0\5\7\2\0\42\7"+ + "\1\0\1\7\5\0\106\7\12\0\37\7\47\0\12\6"+ + "\36\7\2\0\5\7\13\0\54\7\4\0\32\7\6\0"+ + "\12\6\46\0\27\7\11\0\65\7\53\0\12\6\6\0"+ + "\12\6\15\0\1\7\135\0\57\7\21\0\7\7\4\0"+ + "\12\6\51\0\36\7\15\0\2\7\12\6\54\7\32\0"+ + "\44\7\34\0\12\6\3\0\3\7\12\6\44\7\2\0"+ + "\11\7\7\0\53\7\2\0\3\7\51\0\4\7\1\0"+ + "\6\7\1\0\2\7\3\0\1\7\5\0\300\7\100\0"+ + "\26\7\2\0\6\7\2\0\46\7\2\0\6\7\2\0"+ + "\10\7\1\0\1\7\1\0\1\7\1\0\1\7\1\0"+ + "\37\7\2\0\65\7\1\0\7\7\1\0\1\7\3\0"+ + "\3\7\1\0\7\7\3\0\4\7\2\0\6\7\4\0"+ + "\15\7\5\0\3\7\1\0\7\7\164\0\1\7\15\0"+ + "\1\7\20\0\15\7\145\0\1\7\4\0\1\7\2\0"+ + "\12\7\1\0\1\7\3\0\5\7\6\0\1\7\1\0"+ + "\1\7\1\0\1\7\1\0\4\7\1\0\13\7\2\0"+ + "\4\7\5\0\5\7\4\0\1\7\64\0\2\7\u017b\0"+ + "\57\7\1\0\57\7\1\0\205\7\6\0\4\7\3\0"+ + "\2\7\14\0\46\7\1\0\1\7\5\0\1\7\2\0"+ + "\70\7\7\0\1\7\20\0\27\7\11\0\7\7\1\0"+ + "\7\7\1\0\7\7\1\0\7\7\1\0\7\7\1\0"+ + "\7\7\1\0\7\7\1\0\7\7\120\0\1\7\325\0"+ + "\2\7\52\0\5\7\5\0\2\7\4\0\126\7\6\0"+ + "\3\7\1\0\132\7\1\0\4\7\5\0\53\7\1\0"+ + "\136\7\21\0\33\7\65\0\306\7\112\0\360\7\20\0"+ + "\215\7\103\0\56\7\2\0\15\7\3\0\20\7\12\6"+ + "\2\7\24\0\57\7\20\0\37\7\2\0\106\7\61\0"+ + "\11\7\2\0\147\7\2\0\65\7\2\0\5\7\60\0"+ + "\13\7\1\0\3\7\1\0\4\7\1\0\27\7\35\0"+ + "\64\7\16\0\62\7\34\0\12\6\30\0\6\7\3\0"+ + "\1\7\1\0\2\7\1\0\12\6\34\7\12\0\27\7"+ + "\31\0\35\7\7\0\57\7\34\0\1\7\12\6\6\0"+ + "\5\7\1\0\12\7\12\6\5\7\1\0\51\7\27\0"+ + "\3\7\1\0\10\7\4\0\12\6\6\0\27\7\3\0"+ + "\1\7\3\0\62\7\1\0\1\7\3\0\2\7\2\0"+ + "\5\7\2\0\1\7\1\0\1\7\30\0\3\7\2\0"+ + "\13\7\7\0\3\7\14\0\6\7\2\0\6\7\2\0"+ + "\6\7\11\0\7\7\1\0\7\7\1\0\53\7\1\0"+ + "\14\7\10\0\163\7\15\0\12\6\6\0\244\7\14\0"+ + "\27\7\4\0\61\7\4\0\156\7\2\0\152\7\46\0"+ + "\7\7\14\0\5\7\5\0\1\7\1\0\12\7\1\0"+ + "\15\7\1\0\5\7\1\0\1\7\1\0\2\7\1\0"+ + "\2\7\1\0\154\7\41\0\153\7\22\0\100\7\2\0"+ + "\66\7\50\0\14\7\164\0\5\7\1\0\207\7\23\0"+ + "\12\6\7\0\32\7\6\0\32\7\13\0\131\7\3\0"+ + "\6\7\2\0\6\7\2\0\6\7\2\0\3\7\43\0"+ + "\14\7\1\0\32\7\1\0\23\7\1\0\2\7\1\0"+ + "\17\7\2\0\16\7\42\0\173\7\205\0\35\7\3\0"+ + "\61\7\57\0\40\7\15\0\24\7\1\0\10\7\6\0"+ + "\46\7\12\0\36\7\2\0\44\7\4\0\10\7\60\0"+ + "\236\7\2\0\12\6\6\0\44\7\4\0\44\7\4\0"+ + "\50\7\10\0\64\7\234\0\67\7\11\0\26\7\12\0"+ + "\10\7\230\0\6\7\2\0\1\7\1\0\54\7\1\0"+ + "\2\7\3\0\1\7\2\0\27\7\12\0\27\7\11\0"+ + "\37\7\101\0\23\7\1\0\2\7\12\0\26\7\12\0"+ + "\32\7\106\0\70\7\6\0\2\7\100\0\1\7\17\0"+ + "\4\7\1\0\3\7\1\0\35\7\52\0\35\7\3\0"+ + "\35\7\43\0\10\7\1\0\34\7\33\0\66\7\12\0"+ + "\26\7\12\0\23\7\15\0\22\7\156\0\111\7\67\0"+ + "\63\7\15\0\63\7\15\0\44\7\14\0\12\6\306\0"+ + "\35\7\12\0\1\7\10\0\26\7\232\0\27\7\14\0"+ + "\65\7\56\0\12\6\23\0\55\7\40\0\31\7\7\0"+ + "\12\6\11\0\44\7\17\0\12\6\4\0\1\7\13\0"+ + "\43\7\3\0\1\7\14\0\60\7\16\0\4\7\13\0"+ + "\12\6\1\7\1\0\1\7\43\0\22\7\1\0\31\7"+ + "\124\0\7\7\1\0\1\7\1\0\4\7\1\0\17\7"+ + "\1\0\12\7\7\0\57\7\21\0\12\6\13\0\10\7"+ + "\2\0\2\7\2\0\26\7\1\0\7\7\1\0\2\7"+ + "\1\0\5\7\3\0\1\7\22\0\1\7\14\0\5\7"+ + "\236\0\65\7\22\0\4\7\5\0\12\6\5\0\1\7"+ + "\40\0\60\7\24\0\2\7\1\0\1\7\10\0\12\6"+ + "\246\0\57\7\51\0\4\7\44\0\60\7\24\0\1\7"+ + "\13\0\12\6\46\0\53\7\15\0\1\7\7\0\12\6"+ + "\66\0\33\7\25\0\12\6\306\0\54\7\164\0\100\7"+ + "\12\6\25\0\1\7\240\0\10\7\2\0\47\7\20\0"+ + "\1\7\1\0\1\7\34\0\1\7\12\0\50\7\7\0"+ + "\1\7\25\0\1\7\13\0\56\7\23\0\1\7\42\0"+ + "\71\7\7\0\11\7\1\0\45\7\21\0\1\7\17\0"+ + "\12\6\30\0\36\7\160\0\7\7\1\0\2\7\1\0"+ + "\46\7\25\0\1\7\11\0\12\6\6\0\6\7\1\0"+ + "\2\7\1\0\40\7\16\0\1\7\7\0\12\6\u0136\0"+ + "\23\7\15\0\232\7\346\0\304\7\274\0\57\7\321\0"+ + "\107\7\271\0\71\7\7\0\37\7\1\0\12\6\146\0"+ + "\36\7\22\0\60\7\20\0\4\7\14\0\12\6\11\0"+ + "\25\7\5\0\23\7\260\0\100\7\200\0\113\7\5\0"+ + "\1\7\102\0\15\7\100\0\2\7\1\0\1\7\34\0"+ + "\370\7\10\0\363\7\15\0\37\7\61\0\3\7\21\0"+ + "\4\7\10\0\u018c\7\4\0\153\7\5\0\15\7\3\0"+ + "\11\7\7\0\12\7\146\0\125\7\1\0\107\7\1\0"+ + "\2\7\2\0\1\7\2\0\2\7\2\0\4\7\1\0"+ + "\14\7\1\0\1\7\1\0\7\7\1\0\101\7\1\0"+ + "\4\7\2\0\10\7\1\0\7\7\1\0\34\7\1\0"+ + "\4\7\1\0\5\7\1\0\1\7\3\0\7\7\1\0"+ + "\u0154\7\2\0\31\7\1\0\31\7\1\0\37\7\1\0"+ + "\31\7\1\0\37\7\1\0\31\7\1\0\37\7\1\0"+ + "\31\7\1\0\37\7\1\0\31\7\1\0\10\7\2\0"+ + "\62\6\55\7\12\0\7\7\2\0\12\6\4\0\1\7"+ + "\u0171\0\54\7\4\0\12\6\6\0\305\7\73\0\104\7"+ + "\7\0\1\7\4\0\12\6\246\0\4\7\1\0\33\7"+ + "\1\0\2\7\1\0\1\7\2\0\1\7\1\0\12\7"+ + "\1\0\4\7\1\0\1\7\1\0\1\7\6\0\1\7"+ + "\4\0\1\7\1\0\1\7\1\0\1\7\1\0\3\7"+ + "\1\0\2\7\1\0\1\7\2\0\1\7\1\0\1\7"+ + "\1\0\1\7\1\0\1\7\1\0\1\7\1\0\2\7"+ + "\1\0\1\7\2\0\4\7\1\0\7\7\1\0\4\7"+ + "\1\0\4\7\1\0\1\7\1\0\12\7\1\0\21\7"+ + "\5\0\3\7\1\0\5\7\1\0\21\7\104\0\327\7"+ + "\51\0\65\7\13\0\336\7\2\0\u0182\7\16\0\u0131\7"+ + "\37\0\36\7\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); @@ -196,13 +313,13 @@ class _SPILexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\10\0\20\0\30\0\40\0\10\0\10"; + "\0\0\0\10\0\20\0\30\0\10\0\10\0\40"; private static int [] zzUnpackRowMap() { int [] result = new int[7]; @@ -214,7 +331,7 @@ class _SPILexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -222,24 +339,23 @@ class _SPILexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\4\1\2\1\5\1\3\1\6\1\7"+ - "\11\0\1\3\3\0\1\3\4\0\2\4\4\0\5\5"+ - "\1\0\2\5"; + "\1\2\2\3\1\4\1\5\1\6\1\2\1\7\11\0"+ + "\2\3\5\0\2\4\1\0\5\4\6\0\2\7"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[40]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -266,12 +382,12 @@ class _SPILexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\3\1\2\11"; + "\1\0\1\11\2\1\2\11\1\1"; private static int [] zzUnpackAttribute() { int [] result = new int[7]; @@ -318,15 +434,27 @@ class _SPILexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -345,26 +473,22 @@ class _SPILexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -496,7 +620,8 @@ class _SPILexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -530,7 +655,7 @@ class _SPILexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -552,11 +677,11 @@ class _SPILexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -579,35 +704,35 @@ class _SPILexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return JavaTokenType.BAD_CHARACTER; - } - // fall through + } + // fall through case 7: break; - case 2: + case 2: { return JavaTokenType.WHITE_SPACE; - } - // fall through + } + // fall through case 8: break; - case 3: - { return SPITokenType.IDENTIFIER; - } - // fall through - case 9: break; - case 4: + case 3: { return JavaTokenType.END_OF_LINE_COMMENT; - } - // fall through - case 10: break; - case 5: + } + // fall through + case 9: break; + case 4: { return SPITokenType.DOLLAR; - } - // fall through - case 11: break; - case 6: + } + // fall through + case 10: break; + case 5: { return JavaTokenType.DOT; - } - // fall through + } + // fall through + case 11: break; + case 6: + { return SPITokenType.IDENTIFIER; + } + // fall through case 12: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java b/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java index 4eca9e9625f5..094be17901b3 100644 --- a/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java +++ b/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _JavaDocLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.lang.java.lexer; @@ -9,11 +10,6 @@ import com.intellij.psi.tree.IElementType; @SuppressWarnings("ALL") -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _JavaDocLexer.flex - */ class _JavaDocLexer implements FlexLexer { /** This character denotes the end of file */ @@ -45,148 +41,265 @@ class _JavaDocLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14624 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u1b00\121\u0100\1\u2500\4\u0100\1\u2600"+ + "\1\u0100\1\u2700\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\53\u0100"+ + "\1\u2d00\10\u2e00\31\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100"+ + "\1\u3200\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900"+ + "\1\u0100\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000"+ + "\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800"+ + "\1\u4900\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u1f00\1\u4e00\1\u4f00"+ + "\1\u5000\1\u5100\3\u0100\1\u5200\1\u5300\1\u5400\12\u1f00\4\u0100"+ + "\1\u5500\17\u1f00\2\u0100\1\u5600\41\u1f00\2\u0100\1\u5700\1\u5800"+ + "\2\u1f00\1\u5900\1\u5a00\27\u0100\1\u5b00\4\u0100\1\u5c00\1\u5d00"+ + "\42\u1f00\1\u0100\1\u5e00\1\u5f00\11\u1f00\1\u6000\27\u1f00\1\u6100"+ + "\1\u6200\1\u6300\1\u6400\11\u1f00\1\u6500\1\u6600\5\u1f00\1\u6700"+ + "\1\u6800\2\u1f00\1\u6900\1\u1f00\1\u6a00\21\u1f00\246\u0100\1\u6b00"+ + "\20\u0100\1\u6c00\1\u6d00\25\u0100\1\u6e00\34\u0100\1\u6f00\14\u1f00"+ + "\2\u0100\1\u7000\5\u1f00\23\u0100\1\u7100\u0dec\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\6\14\1\55\3\11\1\56\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3008 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\1\32\1\1\2\13\1\30\1\1\1\33\1"+ - "\25\5\13\1\34\1\35\1\36\1\1\1\37\1\13\1\1\1\40\5\13\1\41\1\42\1\43\1\13\1"+ - "\30\1\44\1\13\1\45\1\46\1\1\1\13\1\47\1\30\3\1\1\13\1\50\4\1\1\51\2\13\1\52"+ - "\1\1\1\53\1\16\1\25\1\54\1\55\1\56\1\57\1\60\1\61\1\16\1\62\1\63\1\55\1\56"+ - "\1\64\1\1\1\65\1\1\1\66\1\67\1\22\1\56\1\70\1\1\1\71\1\16\1\72\1\73\1\55\1"+ - "\56\1\70\1\1\1\61\1\16\1\42\1\74\1\75\1\76\1\77\1\1\1\71\1\1\1\100\1\101\1"+ - "\37\1\56\1\52\1\1\1\102\1\16\1\1\1\103\1\37\1\56\1\104\1\1\1\60\1\16\1\105"+ - "\1\101\1\37\1\13\1\106\1\60\1\107\1\16\1\43\1\110\1\111\1\13\1\112\1\113\3"+ - "\1\1\25\2\13\1\114\1\113\3\1\1\115\1\116\1\117\1\120\1\121\1\122\2\1\1\71"+ - "\3\1\1\123\1\13\1\124\1\1\1\125\7\1\2\13\1\30\1\126\1\1\1\127\1\130\1\131"+ - "\1\132\1\1\2\13\1\133\2\13\1\134\24\13\1\135\1\136\2\13\1\135\2\13\1\137\1"+ - "\140\1\14\3\13\1\140\3\13\1\30\2\1\1\13\1\1\5\13\1\141\1\25\45\13\1\142\1"+ - "\13\1\25\1\30\4\13\1\143\1\47\1\144\1\16\1\13\1\16\1\13\1\16\1\144\1\71\3"+ - "\13\1\145\1\1\1\146\4\1\5\13\1\147\1\150\1\13\1\151\4\13\1\41\1\13\1\152\3"+ - "\1\1\13\1\153\1\154\2\13\1\155\1\13\1\77\3\1\1\13\1\113\3\13\1\154\4\1\1\156"+ - "\5\1\1\110\2\13\1\145\1\157\3\1\1\160\1\13\1\161\1\43\2\13\1\41\1\1\2\13\1"+ - "\145\1\1\1\40\1\43\1\13\1\153\1\47\5\1\1\162\1\163\14\13\4\1\21\13\1\141\2"+ - "\13\1\141\1\164\1\13\1\153\3\13\1\165\1\166\1\167\1\124\1\166\2\1\1\170\1"+ - "\126\1\71\1\171\1\1\1\172\1\1\1\124\2\13\4\1\1\173\1\174\1\175\1\176\1\177"+ - "\1\1\2\13\1\47\147\1\2\13\1\152\2\13\1\152\10\13\1\200\1\201\2\13\1\133\3"+ - "\13\1\27\1\1\1\13\1\113\4\202\4\1\1\126\35\1\1\203\1\1\1\204\1\205\1\25\4"+ - "\13\1\206\1\25\4\13\1\134\1\110\1\13\1\152\1\25\4\13\1\152\1\1\1\13\1\30\3"+ - "\1\1\13\40\1\133\13\1\41\4\1\136\13\1\30\1\1\10\13\1\124\4\1\2\13\1\153\20"+ - "\13\1\124\1\13\1\207\1\1\2\13\1\152\1\126\1\13\1\153\5\13\2\1\1\210\1\211"+ - "\5\13\1\212\1\13\1\152\1\147\3\1\1\210\1\213\1\13\1\31\1\214\3\13\1\145\1"+ - "\211\2\13\1\145\3\1\1\215\1\43\1\13\1\41\1\13\1\113\1\1\1\13\1\124\1\51\2"+ - "\13\1\31\1\126\1\1\1\216\1\217\2\13\1\47\1\1\1\220\1\1\1\13\1\221\3\13\1\222"+ - "\1\223\1\224\1\30\1\66\1\225\1\226\1\202\2\13\1\134\1\41\7\13\1\31\1\1\72"+ - "\13\1\145\1\13\1\227\2\13\1\155\20\1\26\13\1\153\6\13\1\77\2\1\1\113\1\230"+ - "\1\56\1\231\1\232\6\13\1\16\1\1\1\160\25\13\1\153\1\1\4\13\1\211\2\13\1\147"+ - "\2\1\1\124\3\1\1\233\1\40\1\1\1\100\1\216\7\13\1\124\1\171\1\1\1\25\1\234"+ - "\1\25\1\30\1\235\4\13\1\152\1\236\1\237\1\163\1\1\1\240\1\13\1\14\1\241\2"+ - "\153\2\1\7\13\1\30\4\1\3\13\1\154\20\1\1\13\1\124\3\13\1\71\2\1\2\13\1\40"+ - "\1\13\1\30\2\13\1\41\1\13\1\153\2\13\1\242\1\243\2\1\11\13\1\153\1\1\2\13"+ - "\1\242\1\13\1\155\2\13\1\147\3\13\1\145\11\1\23\13\1\113\1\13\1\41\1\147\11"+ - "\1\1\244\2\13\1\245\1\13\1\41\1\13\1\113\1\13\1\152\4\1\1\13\1\246\1\13\1"+ - "\41\1\13\1\77\4\1\3\13\1\247\4\1\1\71\1\250\1\13\1\145\2\1\1\13\1\124\1\13"+ - "\1\124\2\1\1\123\1\13\1\154\1\1\3\13\1\41\1\13\1\41\1\13\1\31\1\13\1\16\6"+ - "\1\4\13\1\47\3\1\3\13\1\31\3\13\1\31\60\1\1\160\2\13\1\147\4\1\1\160\2\13"+ - "\2\1\1\13\1\47\1\1\1\160\1\13\1\113\2\1\2\13\1\251\1\160\2\13\1\31\1\252\1"+ - "\253\2\1\1\13\1\22\1\155\5\1\1\254\1\255\1\47\2\13\1\152\2\1\1\73\1\55\1\56"+ - "\1\70\1\1\1\256\1\16\11\1\3\13\1\154\1\257\3\1\3\13\1\1\1\260\13\1\2\13\1"+ - "\152\2\1\1\261\2\1\3\13\1\1\1\171\3\1\2\13\1\30\5\1\1\13\1\77\30\1\4\13\1"+ - "\1\1\126\20\1\1\262\2\13\1\263\1\1\1\264\2\13\1\265\3\1\3\13\1\47\20\1\1\56"+ - "\1\13\1\152\1\1\1\71\2\1\1\211\1\13\7\1\1\266\2\13\1\71\1\267\53\1\71\13\1"+ - "\77\6\1\6\13\1\152\1\1\14\13\1\145\53\1\2\13\1\152\75\1\44\13\1\113\33\1\43"+ - "\13\1\47\1\13\1\152\7\1\1\13\1\153\1\1\3\13\1\1\1\145\1\1\1\160\1\270\1\13"+ - "\67\1\4\13\1\154\1\71\3\1\1\160\4\1\1\16\1\1\76\13\1\124\1\1\57\13\1\31\20"+ - "\1\21\13\1\152\5\1\30\13\1\155\20\1\6\13\1\30\1\124\1\47\1\77\66\1\5\13\1"+ - "\216\3\13\1\144\1\271\1\272\1\273\3\13\1\274\1\275\1\13\1\276\1\277\1\37\24"+ - "\13\1\300\1\13\1\37\1\134\1\13\1\134\1\13\1\216\1\13\1\216\1\152\1\13\1\152"+ - "\1\13\1\56\1\13\1\56\1\13\1\220\3\1\14\13\1\154\3\1\4\13\1\145\113\1\1\273"+ - "\1\13\1\301\1\302\1\303\1\304\1\305\1\306\1\307\1\155\1\310\1\155\24\1\55"+ - "\13\1\113\2\1\103\13\1\154\15\13\1\153\150\13\1\16\123\13\1\71\1\1\41\13\1"+ - "\153\36\1"); - /* The ZZ_CMAP_A table has 3216 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\2\1\40\1\41\1\42\1\1\22\0\1\2\1\0\1\43\1\15\1\4\2\0\1\44\1\13\1\14"+ - "\1\10\1\0\1\16\1\5\1\12\1\7\12\3\1\46\1\0\1\24\1\45\1\25\1\0\1\17\32\4\1\11"+ - "\1\0\1\11\1\0\1\4\1\0\1\21\1\4\1\27\1\31\1\32\3\4\1\34\2\4\1\33\1\23\1\37"+ - "\1\30\1\20\1\4\1\22\1\36\1\35\6\4\1\26\1\0\1\6\7\0\1\41\14\0\4\4\4\0\1\4\12"+ - "\0\1\4\4\0\1\4\5\0\27\4\1\0\12\4\4\0\14\4\16\0\5\4\7\0\1\4\1\0\1\4\1\0\5\4"+ - "\1\0\2\4\2\0\4\4\1\0\1\4\6\0\1\4\1\0\3\4\1\0\1\4\1\0\4\4\1\0\23\4\1\0\13\4"+ - "\10\0\6\4\1\0\26\4\2\0\1\4\6\0\10\4\7\0\14\4\5\0\3\4\30\0\1\4\22\0\6\4\1\0"+ - "\1\4\17\0\2\4\7\0\2\4\12\0\3\4\2\0\2\4\1\0\16\4\15\0\11\4\13\0\1\4\30\0\6"+ - "\4\4\0\2\4\4\0\1\4\5\0\6\4\4\0\1\4\11\0\1\4\3\0\1\4\7\0\11\4\7\0\5\4\1\0\10"+ - "\4\6\0\26\4\3\0\1\4\2\0\1\4\7\0\11\4\4\0\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0"+ - "\1\4\3\0\4\4\3\0\1\4\20\0\1\4\15\0\2\4\1\0\5\4\7\0\2\4\10\0\6\4\4\0\2\4\1"+ - "\0\2\4\1\0\2\4\1\0\2\4\17\0\4\4\1\0\1\4\3\0\3\4\20\0\11\4\1\0\2\4\1\0\2\4"+ - "\1\0\5\4\3\0\1\4\2\0\1\4\20\0\1\4\7\0\1\4\13\0\10\4\2\0\1\4\3\0\1\4\1\0\6"+ - "\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\14\4\17\0\1"+ - "\4\13\0\10\4\1\0\2\4\10\0\3\4\5\0\1\4\4\0\10\4\1\0\6\4\1\0\5\4\3\0\1\4\3\0"+ - "\2\4\15\0\13\4\2\0\1\4\6\0\3\4\10\0\1\4\5\0\22\4\3\0\10\4\1\0\11\4\1\0\1\4"+ - "\2\0\7\4\11\0\1\4\1\0\2\4\13\0\1\4\1\0\2\4\1\0\1\4\2\0\2\4\1\0\1\4\2\0\1\4"+ - "\6\0\4\4\1\0\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0\4\4\1\0\2\4\11\0\1\4"+ - "\2\0\5\4\1\0\1\4\25\0\14\4\1\0\24\4\13\0\5\4\22\0\7\4\4\0\4\4\3\0\1\4\3\0"+ - "\2\4\7\0\3\4\4\0\15\4\14\0\1\4\1\0\6\4\1\0\1\4\5\0\1\4\2\0\13\4\1\0\15\4\1"+ - "\0\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\1\4\1\0\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0"+ - "\16\4\2\0\6\4\2\0\15\4\2\0\14\4\3\0\17\4\1\0\6\4\23\0\1\4\3\0\2\4\3\0\10\4"+ - "\10\0\5\4\2\0\22\4\1\0\1\4\5\0\17\4\1\0\16\4\2\0\5\4\13\0\14\4\13\0\1\4\15"+ - "\0\7\4\7\0\16\4\15\0\2\4\11\0\4\4\1\0\4\4\3\0\2\4\11\0\10\4\1\0\1\4\1\0\1"+ - "\4\1\0\1\4\1\0\6\4\1\0\7\4\1\0\1\4\3\0\3\4\1\0\7\4\3\0\4\4\2\0\6\4\14\0\2"+ - "\41\12\0\1\4\14\0\1\4\15\0\1\4\2\0\1\4\4\0\1\4\2\0\12\4\1\0\1\4\3\0\5\4\6"+ - "\0\1\4\1\0\1\4\1\0\1\4\1\0\4\4\1\0\13\4\2\0\4\4\5\0\5\4\4\0\1\4\1\0\5\4\6"+ - "\0\4\4\3\0\2\4\14\0\7\4\1\0\7\4\6\0\3\4\11\0\11\4\7\0\5\4\2\0\5\4\3\0\7\4"+ - "\6\0\3\4\12\0\2\4\13\0\11\4\2\0\27\4\2\0\7\4\1\0\3\4\1\0\4\4\1\0\4\4\10\0"+ - "\1\4\11\0\6\4\3\0\1\4\1\0\1\4\2\0\5\4\1\0\12\4\12\0\5\4\1\0\3\4\1\0\10\4\4"+ - "\0\7\4\3\0\1\4\3\0\2\4\1\0\1\4\3\0\2\4\2\0\5\4\2\0\1\4\1\0\1\4\30\0\3\4\3"+ - "\0\6\4\2\0\6\4\2\0\6\4\11\0\7\4\4\0\5\4\3\0\5\4\5\0\1\4\1\0\10\4\1\0\5\4\1"+ - "\0\1\4\1\0\2\4\1\0\2\4\1\0\12\4\3\0\2\4\13\0\13\4\4\0\1\4\6\0\12\4\2\0\6\4"+ - "\2\0\6\4\2\0\6\4\2\0\3\4\3\0\14\4\1\0\16\4\1\0\2\4\1\0\5\4\4\0\10\4\1\0\5"+ - "\4\12\0\6\4\2\0\1\4\1\0\14\4\1\0\2\4\3\0\1\4\2\0\4\4\1\0\2\4\12\0\10\4\6\0"+ - "\6\4\1\0\3\4\1\0\12\4\3\0\1\4\12\0\4\4\25\0\1\4\1\0\1\4\3\0\7\4\1\0\1\4\1"+ - "\0\4\4\1\0\17\4\1\0\2\4\14\0\3\4\7\0\4\4\11\0\2\4\1\0\1\4\20\0\4\4\4\0\1\4"+ - "\12\0\10\4\7\0\1\4\5\0\1\4\13\0\10\4\2\0\4\4\6\0\7\4\1\0\2\4\1\0\5\4\6\0\1"+ - "\4\11\0\10\4\5\0\3\4\2\0\1\4\2\0\2\4\2\0\4\4\1\0\14\4\1\0\1\4\1\0\7\4\1\0"+ - "\21\4\1\0\4\4\2\0\10\4\1\0\7\4\1\0\14\4\1\0\4\4\1\0\5\4\1\0\1\4\3\0\14\4\2"+ - "\0\10\4\1\0\2\4\1\0\1\4\2\0\1\4\1\0\12\4\1\0\4\4\1\0\1\4\1\0\1\4\6\0\1\4\4"+ - "\0\1\4\1\0\1\4\1\0\1\4\1\0\3\4\1\0\2\4\1\0\1\4\2\0\1\4\1\0\1\4\1\0\1\4\1\0"+ - "\1\4\1\0\1\4\1\0\2\4\1\0\1\4\2\0\4\4\1\0\7\4\1\0\4\4\1\0\4\4\1\0\1\4\1\0\12"+ - "\4\1\0\5\4\1\0\3\4\1\0\5\4\1\0\5\4"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\4\1\5\22\0\1\1"+ + "\1\0\1\6\1\7\1\10\2\0\1\11\1\12\1\13"+ + "\1\14\1\0\1\15\1\16\1\17\1\20\12\21\1\22"+ + "\1\0\1\23\1\24\1\25\1\0\1\26\32\10\1\27"+ + "\1\0\1\27\1\0\1\10\1\0\1\30\1\10\1\31"+ + "\1\32\1\33\3\10\1\34\2\10\1\35\1\36\1\37"+ + "\1\40\1\41\1\10\1\42\1\43\1\44\6\10\1\45"+ + "\1\0\1\46\7\0\1\3\34\0\4\10\4\0\1\10"+ + "\12\0\1\10\4\0\1\10\5\0\27\10\1\0\37\10"+ + "\1\0\u01ca\10\4\0\14\10\16\0\5\10\7\0\1\10"+ + "\1\0\1\10\201\0\5\10\1\0\2\10\2\0\4\10"+ + "\1\0\1\10\6\0\1\10\1\0\3\10\1\0\1\10"+ + "\1\0\24\10\1\0\123\10\1\0\213\10\10\0\246\10"+ + "\1\0\46\10\2\0\1\10\6\0\51\10\6\0\1\10"+ + "\100\0\33\10\4\0\4\10\30\0\1\10\24\0\53\10"+ + "\43\0\2\10\1\0\143\10\1\0\1\10\17\0\2\10"+ + "\7\0\2\10\12\0\3\10\2\0\1\10\20\0\1\10"+ + "\1\0\36\10\35\0\131\10\13\0\1\10\30\0\41\10"+ + "\11\0\2\10\4\0\1\10\3\0\30\10\4\0\1\10"+ + "\11\0\1\10\3\0\1\10\27\0\31\10\7\0\13\10"+ + "\65\0\25\10\1\0\22\10\74\0\66\10\3\0\1\10"+ + "\22\0\1\10\7\0\12\10\17\0\20\10\4\0\10\10"+ + "\2\0\2\10\2\0\26\10\1\0\7\10\1\0\1\10"+ + "\3\0\4\10\3\0\1\10\20\0\1\10\15\0\2\10"+ + "\1\0\3\10\16\0\4\10\7\0\2\10\10\0\6\10"+ + "\4\0\2\10\2\0\26\10\1\0\7\10\1\0\2\10"+ + "\1\0\2\10\1\0\2\10\37\0\4\10\1\0\1\10"+ + "\23\0\3\10\20\0\11\10\1\0\3\10\1\0\26\10"+ + "\1\0\7\10\1\0\2\10\1\0\5\10\3\0\1\10"+ + "\22\0\1\10\17\0\2\10\17\0\1\10\7\0\1\10"+ + "\13\0\10\10\2\0\2\10\2\0\26\10\1\0\7\10"+ + "\1\0\2\10\1\0\5\10\3\0\1\10\36\0\2\10"+ + "\1\0\3\10\17\0\1\10\21\0\1\10\1\0\6\10"+ + "\3\0\3\10\1\0\4\10\3\0\2\10\1\0\1\10"+ + "\1\0\2\10\3\0\2\10\3\0\3\10\3\0\14\10"+ + "\26\0\1\10\50\0\1\10\13\0\10\10\1\0\3\10"+ + "\1\0\27\10\1\0\20\10\3\0\1\10\32\0\3\10"+ + "\5\0\2\10\36\0\1\10\4\0\10\10\1\0\3\10"+ + "\1\0\27\10\1\0\12\10\1\0\5\10\3\0\1\10"+ + "\40\0\1\10\1\0\2\10\17\0\2\10\21\0\11\10"+ + "\1\0\3\10\1\0\51\10\2\0\1\10\20\0\1\10"+ + "\5\0\3\10\10\0\3\10\30\0\6\10\5\0\22\10"+ + "\3\0\30\10\1\0\11\10\1\0\1\10\2\0\7\10"+ + "\72\0\60\10\1\0\2\10\13\0\10\10\72\0\2\10"+ + "\1\0\1\10\1\0\5\10\1\0\30\10\1\0\1\10"+ + "\1\0\12\10\1\0\2\10\11\0\1\10\2\0\5\10"+ + "\1\0\1\10\25\0\4\10\40\0\1\10\77\0\10\10"+ + "\1\0\44\10\33\0\5\10\163\0\53\10\24\0\1\10"+ + "\20\0\6\10\4\0\4\10\3\0\1\10\3\0\2\10"+ + "\7\0\3\10\4\0\15\10\14\0\1\10\21\0\46\10"+ + "\1\0\1\10\5\0\1\10\2\0\53\10\1\0\115\10"+ + "\1\0\4\10\2\0\7\10\1\0\1\10\1\0\4\10"+ + "\2\0\51\10\1\0\4\10\2\0\41\10\1\0\4\10"+ + "\2\0\7\10\1\0\1\10\1\0\4\10\2\0\17\10"+ + "\1\0\71\10\1\0\4\10\2\0\103\10\45\0\20\10"+ + "\20\0\126\10\2\0\6\10\3\0\u016c\10\2\0\21\10"+ + "\1\0\32\10\5\0\113\10\3\0\13\10\7\0\15\10"+ + "\1\0\4\10\16\0\22\10\16\0\22\10\16\0\15\10"+ + "\1\0\3\10\17\0\64\10\43\0\1\10\3\0\2\10"+ + "\103\0\131\10\7\0\5\10\2\0\42\10\1\0\1\10"+ + "\5\0\106\10\12\0\37\10\61\0\36\10\2\0\5\10"+ + "\13\0\54\10\4\0\32\10\66\0\27\10\11\0\65\10"+ + "\122\0\1\10\135\0\57\10\21\0\7\10\67\0\36\10"+ + "\15\0\2\10\12\0\54\10\32\0\44\10\51\0\3\10"+ + "\12\0\44\10\2\0\11\10\7\0\53\10\2\0\3\10"+ + "\51\0\4\10\1\0\6\10\1\0\2\10\3\0\1\10"+ + "\5\0\300\10\100\0\26\10\2\0\6\10\2\0\46\10"+ + "\2\0\6\10\2\0\10\10\1\0\1\10\1\0\1\10"+ + "\1\0\1\10\1\0\37\10\2\0\65\10\1\0\7\10"+ + "\1\0\1\10\3\0\3\10\1\0\7\10\3\0\4\10"+ + "\2\0\6\10\4\0\15\10\5\0\3\10\1\0\7\10"+ + "\53\0\2\3\25\0\2\10\23\0\1\10\34\0\1\10"+ + "\15\0\1\10\20\0\15\10\3\0\40\10\102\0\1\10"+ + "\4\0\1\10\2\0\12\10\1\0\1\10\3\0\5\10"+ + "\6\0\1\10\1\0\1\10\1\0\1\10\1\0\4\10"+ + "\1\0\13\10\2\0\4\10\5\0\5\10\4\0\1\10"+ + "\21\0\51\10\u0177\0\57\10\1\0\57\10\1\0\205\10"+ + "\6\0\4\10\3\0\2\10\14\0\46\10\1\0\1\10"+ + "\5\0\1\10\2\0\70\10\7\0\1\10\20\0\27\10"+ + "\11\0\7\10\1\0\7\10\1\0\7\10\1\0\7\10"+ + "\1\0\7\10\1\0\7\10\1\0\7\10\1\0\7\10"+ + "\120\0\1\10\325\0\3\10\31\0\11\10\7\0\5\10"+ + "\2\0\5\10\4\0\126\10\6\0\3\10\1\0\132\10"+ + "\1\0\4\10\5\0\53\10\1\0\136\10\21\0\40\10"+ + "\60\0\u010d\10\3\0\215\10\103\0\56\10\2\0\15\10"+ + "\3\0\20\10\12\0\2\10\24\0\57\10\20\0\37\10"+ + "\2\0\120\10\47\0\11\10\2\0\147\10\2\0\65\10"+ + "\2\0\11\10\52\0\15\10\1\0\3\10\1\0\4\10"+ + "\1\0\27\10\25\0\1\10\7\0\64\10\16\0\62\10"+ + "\76\0\6\10\3\0\1\10\1\0\2\10\13\0\34\10"+ + "\12\0\27\10\31\0\35\10\7\0\57\10\34\0\1\10"+ + "\20\0\5\10\1\0\12\10\12\0\5\10\1\0\51\10"+ + "\27\0\3\10\1\0\10\10\24\0\27\10\3\0\1\10"+ + "\3\0\62\10\1\0\1\10\3\0\2\10\2\0\5\10"+ + "\2\0\1\10\1\0\1\10\30\0\3\10\2\0\13\10"+ + "\7\0\3\10\14\0\6\10\2\0\6\10\2\0\6\10"+ + "\11\0\7\10\1\0\7\10\1\0\53\10\1\0\16\10"+ + "\6\0\163\10\35\0\244\10\14\0\27\10\4\0\61\10"+ + "\4\0\u0100\3\156\10\2\0\152\10\46\0\7\10\14\0"+ + "\5\10\5\0\1\10\1\0\12\10\1\0\15\10\1\0"+ + "\5\10\1\0\1\10\1\0\2\10\1\0\2\10\1\0"+ + "\154\10\41\0\153\10\22\0\100\10\2\0\66\10\50\0"+ + "\15\10\66\0\2\10\30\0\3\10\31\0\1\10\6\0"+ + "\5\10\1\0\207\10\7\0\1\10\34\0\32\10\4\0"+ + "\1\10\1\0\32\10\13\0\131\10\3\0\6\10\2\0"+ + "\6\10\2\0\6\10\2\0\3\10\3\0\2\10\3\0"+ + "\2\10\31\0\14\10\1\0\32\10\1\0\23\10\1\0"+ + "\2\10\1\0\17\10\2\0\16\10\42\0\173\10\105\0"+ + "\65\10\u010b\0\35\10\3\0\61\10\57\0\40\10\15\0"+ + "\36\10\5\0\46\10\12\0\36\10\2\0\44\10\4\0"+ + "\10\10\1\0\5\10\52\0\236\10\22\0\44\10\4\0"+ + "\44\10\4\0\50\10\10\0\64\10\234\0\67\10\11\0"+ + "\26\10\12\0\10\10\230\0\6\10\2\0\1\10\1\0"+ + "\54\10\1\0\2\10\3\0\1\10\2\0\27\10\12\0"+ + "\27\10\11\0\37\10\101\0\23\10\1\0\2\10\12\0"+ + "\26\10\12\0\32\10\106\0\70\10\6\0\2\10\100\0"+ + "\1\10\17\0\4\10\1\0\3\10\1\0\35\10\52\0"+ + "\35\10\3\0\35\10\43\0\10\10\1\0\34\10\33\0"+ + "\66\10\12\0\26\10\12\0\23\10\15\0\22\10\156\0"+ + "\111\10\67\0\63\10\15\0\63\10\15\0\44\10\u015c\0"+ + "\52\10\6\0\2\10\116\0\35\10\12\0\1\10\10\0"+ + "\26\10\152\0\25\10\33\0\27\10\14\0\65\10\113\0"+ + "\55\10\40\0\31\10\32\0\44\10\35\0\1\10\2\0"+ + "\1\10\10\0\43\10\3\0\1\10\14\0\60\10\16\0"+ + "\4\10\25\0\1\10\1\0\1\10\43\0\22\10\1\0"+ + "\31\10\124\0\7\10\1\0\1\10\1\0\4\10\1\0"+ + "\17\10\1\0\12\10\7\0\57\10\46\0\10\10\2\0"+ + "\2\10\2\0\26\10\1\0\7\10\1\0\2\10\1\0"+ + "\5\10\3\0\1\10\22\0\1\10\14\0\5\10\236\0"+ + "\65\10\22\0\4\10\24\0\3\10\36\0\60\10\24\0"+ + "\2\10\1\0\1\10\270\0\57\10\51\0\4\10\44\0"+ + "\60\10\24\0\1\10\73\0\53\10\15\0\1\10\107\0"+ + "\33\10\345\0\54\10\164\0\100\10\37\0\10\10\2\0"+ + "\1\10\2\0\10\10\1\0\2\10\1\0\30\10\17\0"+ + "\1\10\1\0\1\10\136\0\10\10\2\0\47\10\20\0"+ + "\1\10\1\0\1\10\34\0\1\10\12\0\50\10\7\0"+ + "\1\10\25\0\1\10\13\0\56\10\23\0\1\10\42\0"+ + "\71\10\7\0\11\10\1\0\45\10\21\0\1\10\61\0"+ + "\36\10\160\0\7\10\1\0\2\10\1\0\46\10\25\0"+ + "\1\10\31\0\6\10\1\0\2\10\1\0\40\10\16\0"+ + "\1\10\u0147\0\23\10\275\0\1\10\54\0\4\10\37\0"+ + "\232\10\146\0\157\10\21\0\304\10\274\0\57\10\321\0"+ + "\107\10\271\0\71\10\7\0\37\10\161\0\36\10\22\0"+ + "\60\10\20\0\4\10\37\0\25\10\5\0\23\10\260\0"+ + "\100\10\200\0\113\10\5\0\1\10\102\0\15\10\100\0"+ + "\2\10\1\0\1\10\34\0\370\10\10\0\326\10\52\0"+ + "\11\10\367\0\37\10\61\0\3\10\21\0\4\10\10\0"+ + "\u018c\10\4\0\153\10\5\0\15\10\3\0\11\10\7\0"+ + "\12\10\146\0\125\10\1\0\107\10\1\0\2\10\2\0"+ + "\1\10\2\0\2\10\2\0\4\10\1\0\14\10\1\0"+ + "\1\10\1\0\7\10\1\0\101\10\1\0\4\10\2\0"+ + "\10\10\1\0\7\10\1\0\34\10\1\0\4\10\1\0"+ + "\5\10\1\0\1\10\3\0\7\10\1\0\u0154\10\2\0"+ + "\31\10\1\0\31\10\1\0\37\10\1\0\31\10\1\0"+ + "\37\10\1\0\31\10\1\0\37\10\1\0\31\10\1\0"+ + "\37\10\1\0\31\10\1\0\10\10\64\0\55\10\12\0"+ + "\7\10\20\0\1\10\u0171\0\54\10\23\0\306\10\73\0"+ + "\104\10\7\0\1\10\u0164\0\1\10\117\0\4\10\1\0"+ + "\33\10\1\0\2\10\1\0\1\10\2\0\1\10\1\0"+ + "\12\10\1\0\4\10\1\0\1\10\1\0\1\10\6\0"+ + "\1\10\4\0\1\10\1\0\1\10\1\0\1\10\1\0"+ + "\3\10\1\0\2\10\1\0\1\10\2\0\1\10\1\0"+ + "\1\10\1\0\1\10\1\0\1\10\1\0\1\10\1\0"+ + "\2\10\1\0\1\10\2\0\4\10\1\0\7\10\1\0"+ + "\4\10\1\0\4\10\1\0\1\10\1\0\12\10\1\0"+ + "\21\10\5\0\3\10\1\0\5\10\1\0\21\10\104\0"+ + "\336\10\42\0\65\10\13\0\336\10\2\0\u0182\10\16\0"+ + "\u0131\10\37\0\36\10\342\0\113\10\265\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[29184]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\17\0\3\1\1\2\1\3\1\4\2\2\1\5\1\6"+ + "\17\0\3\1\1\2\1\3\2\2\1\4\1\5\1\6"+ "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\12\1\20\1\1\1\21\1\22\2\21\1\23"+ - "\1\12\1\24\1\25\1\26\1\12\1\27\1\6\1\3"+ - "\1\30\1\31\1\12\1\3\1\4\1\32\1\12\1\3"+ - "\1\4\1\0\1\33\1\0\7\34\1\35\14\34\1\36"+ - "\2\34\2\37\4\34\1\40"; + "\1\17\1\13\1\20\1\1\2\21\1\22\1\21\1\23"+ + "\1\24\1\13\1\25\1\26\1\27\1\13\1\6\1\3"+ + "\1\30\1\31\1\13\1\3\1\32\1\5\1\13\1\3"+ + "\1\5\1\0\1\33\1\0\7\34\1\35\13\34\1\36"+ + "\3\34\1\37\1\34\1\37\3\34\1\40"; private static int [] zzUnpackAction() { int [] result = new int[92]; @@ -208,7 +321,7 @@ class _JavaDocLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -216,15 +329,15 @@ class _JavaDocLexer implements FlexLexer { private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\47\0\116\0\165\0\234\0\303\0\352\0\u0111"+ "\0\u0138\0\u015f\0\u0186\0\u01ad\0\u01d4\0\u01fb\0\u0222\0\u0249"+ - "\0\u0270\0\u0297\0\u0249\0\u02be\0\u0249\0\u0297\0\u02e5\0\u0249"+ - "\0\u030c\0\u0333\0\u035a\0\u0381\0\u03a8\0\u0249\0\u0249\0\u0249"+ + "\0\u0270\0\u0297\0\u0249\0\u02be\0\u0270\0\u02e5\0\u0249\0\u0249"+ + "\0\u030c\0\u0333\0\u035a\0\u0381\0\u0249\0\u03a8\0\u0249\0\u0249"+ "\0\u0249\0\u0249\0\u03cf\0\u0249\0\u03f6\0\u0249\0\u041d\0\u041d"+ - "\0\u0297\0\u0249\0\u0444\0\u0297\0\u0249\0\u0249\0\u0249\0\u0249"+ - "\0\u046b\0\u0492\0\u0249\0\u0249\0\u04b9\0\u04e0\0\u04b9\0\u0249"+ - "\0\u0507\0\u052e\0\u0507\0\u0555\0\u0249\0\u0297\0\u057c\0\u05a3"+ + "\0\u0270\0\u0249\0\u0249\0\u0444\0\u0249\0\u0270\0\u0249\0\u0249"+ + "\0\u046b\0\u0492\0\u0249\0\u0249\0\u04b9\0\u04e0\0\u0249\0\u04b9"+ + "\0\u0507\0\u052e\0\u0507\0\u0270\0\u0249\0\u0555\0\u057c\0\u05a3"+ "\0\u05ca\0\u05f1\0\u0618\0\u063f\0\u0666\0\u0249\0\u068d\0\u06b4"+ "\0\u06db\0\u0702\0\u0729\0\u0750\0\u0777\0\u079e\0\u07c5\0\u07ec"+ - "\0\u0813\0\u083a\0\u05ca\0\u0861\0\u0888\0\u057c\0\u05ca\0\u08af"+ + "\0\u0813\0\u05ca\0\u083a\0\u0861\0\u0888\0\u057c\0\u08af\0\u05ca"+ "\0\u08d6\0\u08fd\0\u0924\0\u05ca"; private static int [] zzUnpackRowMap() { @@ -237,7 +350,7 @@ class _JavaDocLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -245,91 +358,79 @@ class _JavaDocLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\7\20\1\21\1\22\36\20\1\23\2\24\3\23\1\25"+ - "\1\23\1\26\6\23\1\27\6\23\1\30\11\23\1\24"+ - "\1\20\1\24\5\23\1\24\1\31\3\23\1\25\1\23"+ - "\1\26\15\23\1\30\11\23\1\24\1\20\1\31\4\23"+ - "\1\20\2\32\3\20\1\25\1\20\1\22\27\20\1\32"+ - "\1\20\1\32\5\20\2\33\5\20\1\22\27\20\1\33"+ - "\1\20\1\33\4\20\1\23\2\34\2\35\1\23\1\25"+ - "\1\23\1\26\2\35\1\36\1\23\1\37\1\40\1\23"+ - "\4\35\1\41\2\23\11\35\1\34\1\20\1\34\4\23"+ - "\1\20\2\24\2\35\3\20\1\22\2\35\1\20\1\42"+ - "\1\20\1\40\1\20\4\35\3\20\11\35\1\24\1\20"+ - "\1\24\10\20\1\43\3\20\1\22\7\20\4\43\1\20"+ - "\1\44\1\20\11\43\17\20\1\22\6\20\1\45\27\20"+ - "\1\46\1\47\1\50\3\46\1\25\1\46\1\51\15\46"+ - "\1\30\11\46\1\47\1\20\1\47\5\46\1\47\1\50"+ - "\3\46\1\25\1\46\1\51\27\46\1\47\1\20\1\47"+ - "\4\46\1\52\2\24\1\52\1\53\1\52\1\25\1\52"+ - "\1\54\7\52\4\53\3\52\11\53\1\24\1\52\1\24"+ - "\1\55\1\56\1\57\1\60\1\61\2\62\3\61\1\63"+ - "\17\61\1\64\11\61\1\24\1\61\1\62\4\61\1\65"+ - "\2\66\3\65\1\67\31\65\1\24\1\65\1\66\1\70"+ - "\3\65\1\71\2\72\3\71\1\73\31\71\1\24\1\71"+ - "\1\72\1\71\1\70\2\71\57\0\1\74\45\0\1\75"+ - "\1\76\37\0\2\24\35\0\1\24\1\0\1\24\4\0"+ - "\1\77\2\0\15\77\1\100\17\77\1\0\1\77\1\0"+ - "\4\77\2\0\1\31\37\0\1\31\5\0\2\32\35\0"+ - "\1\32\1\0\1\32\5\0\2\33\35\0\1\33\1\0"+ - "\1\33\5\0\2\34\35\0\1\34\1\0\1\34\7\0"+ - "\2\35\4\0\2\35\5\0\4\35\3\0\11\35\12\0"+ - "\3\43\4\0\1\43\5\0\4\43\3\0\11\43\6\0"+ - "\1\43\1\101\2\0\3\101\1\0\11\101\1\102\6\101"+ - "\1\103\3\101\1\104\2\101\1\105\1\101\1\0\1\101"+ - "\1\0\4\101\1\0\2\47\35\0\1\47\1\0\1\47"+ - "\7\0\2\53\13\0\4\53\3\0\11\53\7\0\6\61"+ - "\1\0\17\61\1\0\11\61\1\0\7\61\2\62\3\61"+ - "\1\0\17\61\1\0\11\61\1\24\1\61\1\62\4\61"+ - "\40\65\1\0\2\65\1\0\4\65\2\66\35\65\1\24"+ - "\1\65\1\66\1\0\3\65\40\71\1\0\3\71\1\0"+ - "\3\71\2\72\35\71\1\24\1\71\1\72\1\71\1\0"+ - "\2\71\10\0\1\106\36\0\1\77\2\0\35\77\1\0"+ - "\1\77\1\0\5\77\2\0\16\77\1\107\16\77\1\0"+ - "\1\77\1\0\4\77\1\101\2\0\3\101\1\0\31\101"+ - "\1\0\1\101\1\0\5\101\2\0\3\101\1\0\12\101"+ - "\1\110\16\101\1\0\1\101\1\0\5\101\2\0\3\101"+ - "\1\0\21\101\1\111\7\101\1\0\1\101\1\0\5\101"+ - "\2\0\3\101\1\0\25\101\1\112\3\101\1\0\1\101"+ - "\1\0\5\101\2\0\3\101\1\0\30\101\1\113\1\0"+ - "\1\101\1\0\4\101\1\77\2\0\17\77\1\114\15\77"+ - "\1\0\1\77\1\0\4\77\1\101\2\0\3\101\1\0"+ - "\13\101\1\115\15\101\1\0\1\101\1\0\5\101\2\0"+ - "\3\101\1\0\22\101\1\116\6\101\1\0\1\101\1\0"+ - "\5\101\2\0\3\101\1\0\26\101\1\117\2\101\1\0"+ - "\1\101\1\0\5\101\2\0\3\101\1\0\25\101\1\120"+ - "\3\101\1\0\1\101\1\0\4\101\1\77\2\0\16\77"+ - "\1\121\16\77\1\0\1\77\1\0\4\77\1\101\2\0"+ - "\3\101\1\0\12\101\1\122\16\101\1\0\1\101\1\0"+ - "\5\101\2\0\3\101\1\0\23\101\1\123\5\101\1\0"+ - "\1\101\1\0\5\101\2\0\3\101\1\0\23\101\1\124"+ - "\5\101\1\0\1\101\1\0\5\101\2\0\3\101\1\0"+ - "\11\101\1\125\17\101\1\0\1\101\1\0\4\101\1\77"+ - "\2\0\20\77\1\126\14\77\1\0\1\77\1\0\4\77"+ - "\1\101\2\0\3\101\1\0\14\101\1\127\14\101\1\0"+ - "\1\101\1\0\5\101\2\0\3\101\1\0\13\101\1\130"+ - "\15\101\1\0\1\101\1\0\5\101\2\0\3\101\1\0"+ - "\11\101\1\131\17\101\1\0\1\101\1\0\5\101\2\0"+ - "\3\101\1\0\12\101\1\132\16\101\1\0\1\101\1\0"+ - "\5\101\2\0\3\101\1\0\23\101\1\133\5\101\1\0"+ - "\1\101\1\0\5\101\2\0\3\101\1\0\24\101\1\123"+ - "\4\101\1\0\1\101\1\0\5\101\2\0\3\101\1\0"+ - "\26\101\1\134\2\101\1\0\1\101\1\0\4\101"; + "\14\20\1\21\3\20\1\22\26\20\1\23\2\24\1\20"+ + "\2\24\6\23\1\25\11\23\1\26\16\23\1\27\1\30"+ + "\1\23\1\31\1\24\1\20\1\31\1\24\6\23\1\25"+ + "\30\23\1\27\1\30\1\20\2\32\1\20\2\32\6\20"+ + "\1\21\31\20\1\30\1\20\2\33\1\20\2\33\6\20"+ + "\1\21\32\20\1\23\2\34\1\20\2\34\1\23\1\35"+ + "\1\36\1\23\1\37\1\23\1\25\1\40\1\23\1\36"+ + "\1\23\1\36\1\23\1\41\3\23\16\36\1\23\1\30"+ + "\1\20\2\24\1\20\2\24\2\20\1\36\2\20\1\42"+ + "\1\21\1\40\1\20\1\36\1\20\1\36\5\20\16\36"+ + "\12\20\1\43\3\20\1\21\10\20\1\44\2\20\15\43"+ + "\16\20\1\21\11\20\1\45\20\20\1\46\1\47\1\50"+ + "\1\20\2\50\6\46\1\51\30\46\1\27\1\30\1\46"+ + "\1\47\1\50\1\20\2\50\6\46\1\51\31\46\1\30"+ + "\1\52\2\24\1\52\2\24\1\53\1\52\1\54\1\55"+ + "\2\52\1\56\5\52\1\57\1\52\1\60\3\52\15\54"+ + "\1\52\1\30\1\61\1\62\1\24\1\61\2\62\37\61"+ + "\1\63\1\64\1\65\1\66\1\24\1\65\2\66\1\67"+ + "\37\65\1\70\1\71\1\72\1\24\1\71\2\72\3\71"+ + "\1\67\34\71\1\73\63\0\1\74\3\0\1\75\42\0"+ + "\1\76\33\0\2\24\1\0\2\24\41\0\1\77\2\0"+ + "\1\77\2\0\33\77\1\100\5\77\1\0\1\31\2\0"+ + "\1\31\43\0\2\32\1\0\2\32\42\0\2\33\1\0"+ + "\2\33\42\0\2\34\1\0\2\34\51\0\1\36\6\0"+ + "\1\36\1\0\1\36\5\0\16\36\12\0\1\43\5\0"+ + "\2\43\1\0\2\43\5\0\15\43\2\0\1\101\2\0"+ + "\1\101\2\0\23\101\1\102\3\101\1\103\3\101\1\104"+ + "\1\101\1\105\2\101\2\0\2\50\1\0\2\50\51\0"+ + "\1\54\10\0\1\54\6\0\15\54\2\0\2\61\1\0"+ + "\42\61\2\0\1\61\1\62\1\24\1\61\2\62\37\61"+ + "\2\0\2\65\1\0\3\65\1\0\41\65\1\66\1\24"+ + "\1\65\2\66\1\0\40\65\2\71\1\0\6\71\1\0"+ + "\36\71\1\72\1\24\1\71\2\72\3\71\1\0\35\71"+ + "\14\0\1\106\32\0\1\77\2\0\1\77\2\0\42\77"+ + "\2\0\1\77\2\0\22\77\1\107\16\77\1\101\2\0"+ + "\1\101\2\0\40\101\1\0\1\101\2\0\1\101\2\0"+ + "\32\101\1\110\5\101\1\0\1\101\2\0\1\101\2\0"+ + "\26\101\1\111\11\101\1\0\1\101\2\0\1\101\2\0"+ + "\22\101\1\112\15\101\1\0\1\101\2\0\1\101\2\0"+ + "\31\101\1\113\6\101\1\0\1\77\2\0\1\77\2\0"+ + "\34\77\1\114\4\77\1\101\2\0\1\101\2\0\24\101"+ + "\1\115\13\101\1\0\1\101\2\0\1\101\2\0\36\101"+ + "\1\116\1\101\1\0\1\101\2\0\1\101\2\0\34\101"+ + "\1\117\3\101\1\0\1\101\2\0\1\101\2\0\26\101"+ + "\1\120\11\101\1\0\1\77\2\0\1\77\2\0\22\77"+ + "\1\121\16\77\1\101\2\0\1\101\2\0\25\101\1\122"+ + "\12\101\1\0\1\101\2\0\1\101\2\0\25\101\1\123"+ + "\12\101\1\0\1\101\2\0\1\101\2\0\22\101\1\124"+ + "\15\101\1\0\1\101\2\0\1\101\2\0\33\101\1\125"+ + "\4\101\1\0\1\77\2\0\1\77\2\0\30\77\1\126"+ + "\10\77\1\101\2\0\1\101\2\0\34\101\1\127\3\101"+ + "\1\0\1\101\2\0\1\101\2\0\30\101\1\130\7\101"+ + "\1\0\1\101\2\0\1\101\2\0\33\101\1\131\4\101"+ + "\1\0\1\101\2\0\1\101\2\0\22\101\1\132\15\101"+ + "\1\0\1\101\2\0\1\101\2\0\25\101\1\133\12\101"+ + "\1\0\1\101\2\0\1\101\2\0\27\101\1\122\10\101"+ + "\1\0\1\101\2\0\1\101\2\0\36\101\1\134\1\101"+ + "\1\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[2379]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -356,15 +457,15 @@ class _JavaDocLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\17\0\1\11\2\1\1\11\1\1\1\11\2\1\1\11"+ - "\5\1\5\11\1\1\1\11\1\1\1\11\3\1\1\11"+ - "\2\1\4\11\2\1\2\11\3\1\1\11\3\1\1\0"+ - "\1\11\1\0\7\1\1\11\26\1"; + "\17\0\1\11\2\1\1\11\3\1\2\11\4\1\1\11"+ + "\1\1\4\11\1\1\1\11\1\1\1\11\3\1\2\11"+ + "\1\1\1\11\1\1\2\11\2\1\2\11\2\1\1\11"+ + "\4\1\1\0\1\11\1\0\7\1\1\11\26\1"; private static int [] zzUnpackAttribute() { int [] result = new int[92]; @@ -411,15 +512,27 @@ class _JavaDocLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -454,26 +567,22 @@ class _JavaDocLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -605,7 +714,8 @@ class _JavaDocLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -639,7 +749,7 @@ class _JavaDocLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -661,11 +771,11 @@ class _JavaDocLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -688,27 +798,22 @@ class _JavaDocLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return myTokenTypes.badCharacter(); - } - // fall through + } + // fall through case 33: break; - case 2: + case 2: { yybegin(COMMENT_DATA); return myTokenTypes.commentData(); - } - // fall through + } + // fall through case 34: break; - case 3: + case 3: { return myTokenTypes.space(); - } - // fall through + } + // fall through case 35: break; - case 4: - { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); - } - // fall through - case 36: break; - case 5: + case 4: { if (checkAhead('@')) { yybegin(INLINE_TAG_NAME); return myTokenTypes.inlineTagStart(); @@ -717,53 +822,58 @@ class _JavaDocLexer implements FlexLexer { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagStart(); } - } - // fall through + } + // fall through + case 36: break; + case 5: + { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); + } + // fall through case 37: break; - case 6: + case 6: { return myTokenTypes.commentData(); - } - // fall through + } + // fall through case 38: break; - case 7: + case 7: { if (checkAhead('<') || checkAhead('\"')) yybegin(COMMENT_DATA); else if (checkAhead('\u007b')) yybegin(COMMENT_DATA); // lbrace - there's a error in JLex when typing lbrace directly else yybegin(DOC_TAG_VALUE); return myTokenTypes.space(); - } - // fall through + } + // fall through case 39: break; - case 8: + case 8: { yybegin(DOC_TAG_VALUE); return myTokenTypes.space(); - } - // fall through + } + // fall through case 40: break; - case 9: + case 9: { yybegin(COMMENT_DATA); return myTokenTypes.space(); - } - // fall through + } + // fall through case 41: break; - case 10: - { return myTokenTypes.tagValueToken(); - } - // fall through - case 42: break; - case 11: - { yybegin(DOC_TAG_VALUE_IN_PAREN); return myTokenTypes.tagValueLParen(); - } - // fall through - case 43: break; - case 12: + case 10: { return myTokenTypes.tagValueSharp(); - } - // fall through + } + // fall through + case 42: break; + case 11: + { return myTokenTypes.tagValueToken(); + } + // fall through + case 43: break; + case 12: + { yybegin(DOC_TAG_VALUE_IN_PAREN); return myTokenTypes.tagValueLParen(); + } + // fall through case 44: break; - case 13: + case 13: { return myTokenTypes.tagValueComma(); - } - // fall through + } + // fall through case 45: break; - case 14: + case 14: { if (myJdk15Enabled) { yybegin(DOC_TAG_VALUE_IN_LTGT); return myTokenTypes.tagValueLT(); @@ -772,55 +882,60 @@ class _JavaDocLexer implements FlexLexer { yybegin(COMMENT_DATA); return myTokenTypes.commentData(); } - } - // fall through + } + // fall through case 46: break; - case 15: + case 15: { yybegin(DOC_TAG_VALUE); return myTokenTypes.tagValueRParen(); - } - // fall through + } + // fall through case 47: break; - case 16: + case 16: { yybegin(COMMENT_DATA); return myTokenTypes.tagValueGT(); - } - // fall through + } + // fall through case 48: break; - case 17: + case 17: { yybegin(CODE_TAG); return myTokenTypes.commentData(); - } - // fall through + } + // fall through case 49: break; - case 18: + case 18: { yybegin(CODE_TAG); return myTokenTypes.space(); - } - // fall through + } + // fall through case 50: break; - case 19: + case 19: { yybegin(SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON); return myTokenTypes.commentData(); - } - // fall through + } + // fall through case 51: break; - case 20: - { return myTokenTypes.commentLeadingAsterisks(); - } - // fall through - case 52: break; - case 21: + case 20: { yybegin(SNIPPET_ATTRIBUTE_VALUE_DOUBLE_QUOTES); return myTokenTypes.tagValueQuote(); - } - // fall through - case 53: break; - case 22: + } + // fall through + case 52: break; + case 21: { yybegin(SNIPPET_ATTRIBUTE_VALUE_SINGLE_QUOTES); return myTokenTypes.tagValueQuote(); - } - // fall through + } + // fall through + case 53: break; + case 22: + { return myTokenTypes.commentLeadingAsterisks(); + } + // fall through case 54: break; - case 23: + case 23: { yybegin(SNIPPET_TAG_BODY_DATA); return myTokenTypes.tagValueColon(); - } - // fall through + } + // fall through case 55: break; - case 24: + case 24: + { mySnippetBracesLevel++; return myTokenTypes.commentData(); + } + // fall through + case 56: break; + case 25: { if (mySnippetBracesLevel > 0) { mySnippetBracesLevel--; return myTokenTypes.commentData(); @@ -828,48 +943,43 @@ class _JavaDocLexer implements FlexLexer { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); } - } - // fall through - case 56: break; - case 25: - { mySnippetBracesLevel++; return myTokenTypes.commentData(); - } - // fall through + } + // fall through case 57: break; - case 26: + case 26: { yybegin(SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON); return myTokenTypes.tagValueQuote(); - } - // fall through + } + // fall through case 58: break; - case 27: + case 27: { return myTokenTypes.commentEnd(); - } - // fall through + } + // fall through case 59: break; - case 28: + case 28: { yybegin(TAG_DOC_SPACE); return myTokenTypes.tagName(); - } - // fall through + } + // fall through case 60: break; - case 29: + case 29: { yybegin(COMMENT_DATA_START); return myTokenTypes.commentStart(); - } - // fall through + } + // fall through case 61: break; - case 30: + case 30: { yybegin(CODE_TAG_SPACE); return myTokenTypes.tagName(); - } - // fall through + } + // fall through case 62: break; - case 31: + case 31: { yybegin(PARAM_TAG_SPACE); return myTokenTypes.tagName(); - } - // fall through + } + // fall through case 63: break; - case 32: + case 32: { yybegin(SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON); return myTokenTypes.tagName(); - } - // fall through + } + // fall through case 64: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaLexer.java b/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaLexer.java index 899a98f324e7..90da1b10bb0e 100644 --- a/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaLexer.java +++ b/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _JavaLexer.flex // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.lang.java.lexer; @@ -11,11 +12,6 @@ import com.intellij.lexer.FlexLexer; @SuppressWarnings("ALL") -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _JavaLexer.flex - */ class _JavaLexer implements FlexLexer { /** This character denotes the end of file */ @@ -33,166 +29,338 @@ class _JavaLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [12, 6, 3] - * Total runtime size is 14848 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900\1\u0100"+ + "\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000\1\u4100"+ + "\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800\1\u4900"+ + "\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u1f00\1\u4e00\1\u4f00\1\u5000"+ + "\1\u5100\3\u0100\1\u5200\1\u5300\1\u5400\12\u1f00\4\u0100\1\u5500"+ + "\17\u1f00\2\u0100\1\u5600\41\u1f00\2\u0100\1\u5700\1\u5800\2\u1f00"+ + "\1\u5900\1\u5a00\27\u0100\1\u5b00\4\u0100\1\u5c00\1\u5d00\42\u1f00"+ + "\1\u0100\1\u5e00\1\u5f00\11\u1f00\1\u6000\24\u1f00\1\u6100\1\u6200"+ + "\1\u1f00\1\u6300\1\u6400\1\u6500\1\u6600\2\u1f00\1\u6700\5\u1f00"+ + "\1\u6800\1\u6900\1\u6a00\5\u1f00\1\u6b00\1\u6c00\2\u1f00\1\u6d00"+ + "\1\u1f00\1\u6e00\14\u1f00\1\u6f00\4\u1f00\246\u0100\1\u7000\20\u0100"+ + "\1\u7100\1\u7200\25\u0100\1\u7300\34\u0100\1\u7400\14\u1f00\2\u0100"+ + "\1\u7500\5\u1f00\23\u0100\1\u7600\u0aec\u1f00\1\u7700\1\u7800\u02fe\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 2176 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+ - "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ - "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\21\1\44\1\45\1\46\1"+ - "\21\1\47\2\21\1\50\4\21\1\25\1\51\1\52\5\21\2\25\1\53\31\21\1\25\1\54\1\21"+ - "\1\55\40\21\1\56\17\21\1\57\1\60\1\61\1\62\13\21\1\63\10\21\123\25\1\64\7"+ - "\25\1\65\1\66\37\21\1\25\1\66\u0582\21\1\67\u017f\21"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3584 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\0\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\4"+ - "\0\1\17\1\20\1\21\1\22\2\23\1\24\3\23\1\24\71\23\1\25\1\23\1\26\1\27\1\30"+ - "\1\31\2\27\16\0\1\32\1\17\1\33\1\34\2\23\1\35\11\23\1\36\21\23\1\37\1\40\23"+ - "\23\1\27\1\41\3\23\1\24\1\42\1\41\4\23\1\43\1\44\4\0\1\45\1\46\1\27\3\23\2"+ - "\47\1\27\1\50\1\51\1\0\1\52\5\23\1\53\3\0\1\54\1\55\13\23\1\56\1\45\1\57\1"+ - "\60\1\0\1\61\1\27\1\62\1\63\3\23\3\0\1\64\12\23\1\65\1\0\1\66\1\27\1\0\1\67"+ - "\3\23\1\53\1\70\1\22\2\23\1\65\1\71\1\72\1\73\2\27\3\23\1\74\10\27\1\75\1"+ - "\30\6\27\1\76\2\0\1\77\1\100\6\23\1\101\2\0\1\102\1\23\1\103\1\0\2\41\1\104"+ - "\1\105\1\106\2\23\1\75\1\107\1\110\1\111\1\112\1\62\1\113\1\103\1\0\1\114"+ - "\1\51\1\104\1\115\1\106\2\23\1\75\1\116\1\117\1\120\1\121\1\122\1\123\1\124"+ - "\1\0\1\125\1\27\1\104\1\36\1\35\2\23\1\75\1\126\1\110\1\45\1\127\1\130\1\27"+ - "\1\103\1\0\1\42\1\27\1\104\1\105\1\106\2\23\1\75\1\126\1\110\1\111\1\121\1"+ - "\124\1\113\1\103\1\0\1\42\1\27\1\131\1\132\1\133\1\134\1\135\1\132\1\23\1"+ - "\136\1\137\1\140\1\141\1\27\1\124\1\0\1\27\1\42\1\104\1\32\1\75\2\23\1\75"+ - "\1\142\1\143\1\144\1\140\1\145\1\26\1\103\1\0\2\27\1\146\1\32\1\75\2\23\1"+ - "\75\1\142\1\110\1\144\1\140\1\145\1\33\1\103\1\0\1\147\1\27\1\146\1\32\1\75"+ - "\4\23\1\150\1\144\1\151\1\62\1\27\1\103\1\0\1\27\1\40\1\146\1\23\1\24\1\40"+ - "\2\23\1\35\1\152\1\24\1\153\1\154\1\0\2\27\1\155\1\27\1\41\5\23\1\156\1\157"+ - "\1\160\1\77\1\0\1\161\4\27\1\162\1\163\1\164\1\41\1\165\1\166\1\156\1\167"+ - "\1\170\1\171\1\0\1\172\4\27\1\130\2\27\1\161\1\0\1\161\1\173\1\174\1\23\1"+ - "\41\3\23\1\30\1\44\1\0\1\144\1\175\1\0\1\44\3\0\1\50\1\176\7\27\5\23\1\53"+ - "\1\0\1\177\1\0\1\161\1\65\1\200\1\201\1\202\1\203\1\23\1\204\1\205\1\0\1\171"+ - "\4\23\1\36\1\21\5\23\1\206\51\23\1\133\1\24\1\133\5\23\1\133\4\23\1\133\1"+ - "\24\1\133\1\23\1\24\7\23\1\133\10\23\1\207\4\27\2\23\2\27\12\23\1\30\1\27"+ - "\1\41\114\23\1\105\2\23\1\41\2\23\1\47\11\23\1\132\1\130\1\27\1\23\1\32\1"+ - "\210\1\27\2\23\1\210\1\27\2\23\1\211\1\27\1\23\1\32\1\212\1\27\6\23\1\213"+ - "\3\0\1\214\1\215\1\0\1\161\3\27\1\216\1\0\1\161\13\23\1\27\5\23\1\217\10\23"+ - "\1\220\1\27\3\23\1\30\1\0\1\2\1\0\1\2\1\124\1\0\3\23\1\220\1\30\1\27\5\23"+ - "\1\114\2\0\1\55\1\161\1\0\1\161\4\27\2\23\1\160\1\2\6\23\1\175\1\77\3\0\1"+ - "\111\1\0\1\161\1\0\1\161\1\43\13\27\1\221\5\23\1\213\1\0\1\221\1\114\1\0\1"+ - "\161\1\27\1\222\1\2\1\27\1\223\3\23\1\102\1\202\1\0\1\67\4\23\1\65\1\0\1\2"+ - "\1\27\4\23\1\213\2\0\1\27\1\0\1\224\1\0\1\67\3\23\1\220\12\27\1\225\2\0\1"+ - "\226\1\227\1\27\30\23\4\0\1\77\2\27\1\76\42\23\2\220\4\23\2\220\1\23\1\230"+ - "\3\23\1\220\6\23\1\32\1\170\1\231\1\30\1\232\1\114\1\23\1\30\1\231\1\30\1"+ - "\27\1\222\3\27\1\233\1\27\1\43\1\130\1\27\1\234\1\27\1\50\1\235\1\42\1\43"+ - "\2\27\1\23\1\30\3\23\1\47\2\27\1\0\1\50\1\236\1\0\1\237\1\27\1\240\1\40\1"+ - "\152\1\241\1\31\1\242\1\23\1\243\1\244\1\245\2\27\5\23\1\130\116\27\5\23\1"+ - "\24\5\23\1\24\20\23\1\30\1\246\1\247\1\27\4\23\1\36\1\21\7\23\1\43\1\27\1"+ - "\62\2\23\1\24\1\27\10\24\4\0\5\27\1\43\72\27\1\244\3\27\1\41\1\204\1\241\1"+ - "\30\1\41\11\23\1\24\1\250\1\41\12\23\1\206\1\244\4\23\1\220\1\41\12\23\1\24"+ - "\2\27\3\23\1\47\6\27\170\23\1\220\11\27\71\23\1\30\6\27\21\23\1\30\10\27\5"+ - "\23\1\220\41\23\1\30\2\23\1\0\1\247\2\27\5\23\1\160\1\76\1\251\3\23\1\62\12"+ - "\23\1\161\3\27\1\43\1\23\1\40\14\23\1\252\1\114\1\27\1\23\1\47\11\27\1\23"+ - "\1\253\1\254\2\23\1\53\2\27\1\130\6\23\1\114\1\27\1\67\5\23\1\213\1\0\1\50"+ - "\1\27\1\0\1\161\2\0\1\67\1\51\1\0\1\67\2\23\1\65\1\171\2\23\1\160\1\0\1\2"+ - "\1\27\3\23\1\30\1\100\5\23\1\53\1\0\1\237\1\43\1\0\1\161\4\27\5\23\1\102\1"+ - "\77\1\27\1\254\1\255\1\0\1\161\2\23\1\24\1\256\6\23\1\201\1\257\1\217\2\27"+ - "\1\260\1\23\1\53\1\261\1\27\3\262\1\27\2\24\22\27\4\23\1\53\1\263\1\0\1\161"+ - "\64\23\1\114\1\27\2\23\1\24\1\264\5\23\1\114\40\27\55\23\1\220\15\23\1\26"+ - "\4\27\1\24\1\27\1\264\1\265\1\23\1\75\1\24\1\170\1\266\15\23\1\26\3\27\1\264"+ - "\54\23\1\220\2\27\10\23\1\40\6\23\5\27\1\23\1\30\2\0\2\27\1\77\1\27\1\135"+ - "\2\27\1\244\3\27\1\42\1\32\20\23\1\267\1\234\1\27\1\0\1\161\1\41\2\23\1\115"+ - "\1\41\2\23\1\47\1\270\12\23\1\24\3\40\1\271\1\272\2\27\1\273\1\23\1\142\2"+ - "\23\1\24\2\23\1\274\1\23\1\220\1\23\1\220\4\27\17\23\1\47\10\27\6\23\1\30"+ - "\20\27\1\275\20\27\3\23\1\30\6\23\1\130\5\27\3\23\1\24\2\27\3\23\1\47\6\27"+ - "\3\23\1\220\4\23\1\114\1\23\1\241\5\27\23\23\1\220\1\0\1\161\52\27\1\220\1"+ - "\75\4\23\1\36\1\276\2\23\1\220\25\27\2\23\1\220\1\27\3\23\1\26\10\27\7\23"+ - "\1\270\10\27\1\277\1\76\1\142\1\41\2\23\1\114\1\120\4\27\3\23\1\30\20\27\6"+ - "\23\1\220\1\27\2\23\1\220\1\27\2\23\1\47\21\27\11\23\1\130\66\27\1\223\6\23"+ - "\1\0\1\77\3\27\1\124\1\0\2\27\1\223\5\23\1\0\1\300\2\27\3\23\1\130\1\0\1\161"+ - "\1\223\3\23\1\160\1\0\1\144\1\0\10\27\1\223\5\23\1\53\1\0\1\301\1\27\1\0\1"+ - "\161\24\27\5\23\1\53\1\0\1\27\1\0\1\161\46\27\55\23\1\24\22\27\14\23\1\47"+ - "\63\27\5\23\1\24\72\27\7\23\1\130\130\27\10\23\1\30\1\27\1\102\4\0\1\77\1"+ - "\27\1\62\1\223\1\23\14\27\1\26\153\27\1\302\1\303\2\0\1\304\1\2\3\27\1\305"+ - "\22\27\1\306\67\27\12\23\1\32\10\23\1\32\1\307\1\310\1\23\1\311\1\142\7\23"+ - "\1\36\1\312\2\32\3\23\1\313\1\170\1\40\1\75\51\23\1\220\3\23\1\75\2\23\1\206"+ - "\3\23\1\206\2\23\1\32\3\23\1\32\2\23\1\24\3\23\1\24\3\23\1\75\3\23\1\75\2"+ - "\23\1\206\1\314\6\0\1\142\3\23\1\162\1\41\1\206\1\315\1\240\1\316\1\162\1"+ - "\230\1\162\2\206\1\123\1\23\1\35\1\23\1\114\1\317\1\35\1\23\1\114\50\27\32"+ - "\23\1\24\5\27\106\23\1\30\1\27\33\23\1\220\74\27\1\122\3\27\14\0\20\27\36"+ - "\0\2\27"); - /* The ZZ_CMAP_A table has 1664 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\2\5\0\6\2\5\0\1\51\2\0\1\1\1\62\1\56\1\0\1\63\1\64\1\57\1\53\1\72\1\16"+ - "\1\14\1\60\1\7\11\3\1\75\1\71\1\54\1\50\1\55\1\74\1\76\1\5\1\11\1\5\1\13\1"+ - "\15\1\12\5\1\1\6\3\1\1\17\7\1\1\10\2\1\1\67\1\0\1\70\1\61\1\4\1\0\1\25\1\31"+ - "\1\32\1\40\1\23\1\24\1\43\1\36\1\37\1\1\1\34\1\26\1\41\1\30\1\33\1\44\1\1"+ - "\1\21\1\27\1\20\1\22\1\45\1\46\1\42\1\35\1\47\1\65\1\52\1\66\1\73\1\2\2\0"+ - "\4\1\4\0\1\1\2\0\1\2\7\0\1\1\4\0\1\1\5\0\17\1\1\0\2\1\4\0\4\1\16\0\5\1\7\0"+ - "\1\1\1\0\1\1\1\0\5\1\1\0\2\1\6\0\1\1\1\0\3\1\1\0\1\1\1\0\4\1\1\0\13\1\1\0"+ - "\3\1\1\0\5\2\2\0\6\1\1\0\7\1\1\0\1\1\15\0\1\1\1\0\15\2\1\0\1\2\1\0\2\2\1\0"+ - "\2\2\1\0\1\2\3\1\5\0\5\2\6\0\1\1\4\0\3\2\5\0\3\1\7\2\4\0\2\1\1\2\13\1\1\0"+ - "\1\1\7\2\2\1\2\2\1\0\4\2\2\1\2\2\3\1\2\0\1\1\7\0\1\2\1\1\1\2\6\1\3\2\2\0\11"+ - "\1\3\2\1\1\6\0\2\2\6\1\4\2\2\1\2\0\2\2\1\1\11\2\1\1\3\2\1\1\5\2\2\0\1\1\3"+ - "\2\4\0\1\1\1\0\6\1\4\0\13\2\1\0\4\2\6\1\3\2\1\1\2\2\1\1\7\2\2\1\2\2\2\0\2"+ - "\2\1\0\3\2\1\0\10\1\2\0\2\1\2\0\6\1\1\0\1\1\3\0\4\1\2\0\1\2\1\1\7\2\2\0\2"+ - "\2\2\0\3\2\1\1\5\0\2\1\1\0\5\1\4\0\3\1\4\0\2\1\1\0\2\1\1\0\2\1\1\0\2\1\2\0"+ - "\1\2\1\0\5\2\4\0\2\2\2\0\3\2\3\0\1\2\7\0\4\1\1\0\1\1\7\0\4\2\3\1\1\2\2\0\1"+ - "\1\1\0\2\1\1\0\3\1\2\2\1\0\3\2\2\0\1\1\11\0\1\2\1\1\1\0\6\1\3\0\3\1\1\0\4"+ - "\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0\2\1\3\0\2\1\4\0\5\2\3\0\3\2\1\0\4\2\2\0\1\1"+ - "\6\0\1\2\4\1\1\0\5\1\3\0\1\1\7\2\1\0\2\2\5\0\2\2\3\0\2\2\1\0\3\1\1\0\2\1\5"+ - "\0\3\1\2\0\1\1\3\2\1\0\4\2\1\1\1\0\4\1\1\0\1\1\4\0\1\2\4\0\6\2\1\0\1\2\3\0"+ - "\2\2\4\0\1\1\1\2\2\1\7\2\4\0\10\1\3\2\7\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1\2\0"+ - "\1\1\6\0\4\1\1\0\3\1\1\0\1\1\1\0\1\1\2\0\2\1\1\0\3\1\2\2\1\0\2\2\1\1\2\0\5"+ - "\1\1\0\1\1\1\0\6\2\2\0\2\2\2\0\4\1\5\0\1\2\1\0\1\2\1\0\1\2\4\0\2\2\5\1\3\2"+ - "\6\0\1\2\1\0\7\2\1\1\2\2\4\1\3\2\1\1\3\2\2\1\7\2\3\1\4\2\5\1\14\2\1\1\1\2"+ - "\3\1\1\0\7\1\2\0\3\2\2\1\3\2\3\0\2\1\2\2\4\0\1\1\1\0\2\2\4\0\4\1\10\2\3\0"+ - "\1\1\3\0\2\1\1\2\5\0\3\2\2\0\1\1\1\2\1\1\5\0\6\1\2\0\5\2\3\1\3\0\10\2\5\1"+ - "\2\2\3\0\3\1\3\2\1\0\5\2\4\1\1\2\4\1\3\2\2\1\2\0\1\1\1\0\1\1\1\0\1\1\1\0\1"+ - "\1\2\0\3\1\1\0\6\1\2\0\2\1\2\0\5\2\5\0\1\1\5\0\6\2\1\0\1\2\3\0\4\2\11\0\1"+ - "\1\4\0\1\1\1\0\5\1\2\0\1\1\1\0\4\1\1\0\3\1\2\0\4\1\5\0\5\1\4\0\1\1\4\0\4\1"+ - "\3\2\2\1\5\0\2\2\2\0\3\1\6\2\1\0\2\1\2\0\4\1\1\0\2\1\1\2\3\1\1\2\4\1\1\2\10"+ - "\1\2\2\4\0\1\1\1\2\4\0\1\2\5\1\2\2\3\0\3\1\4\0\3\1\2\2\2\0\6\1\1\0\3\2\1\0"+ - "\2\2\5\0\5\1\5\0\1\1\1\2\3\1\1\0\2\1\1\0\7\1\2\0\1\2\6\0\2\1\2\0\3\1\3\0\2"+ - "\1\3\0\2\1\2\0\3\2\4\0\3\1\1\0\2\1\1\0\1\1\5\0\1\2\2\0\1\1\3\0\1\1\2\0\2\1"+ - "\3\2\1\0\2\2\1\0\3\2\2\0\1\2\2\0\1\2\4\1\10\0\5\2\3\0\6\2\2\0\3\2\2\0\4\2"+ - "\4\0\3\2\5\0\1\1\2\0\2\1\2\0\4\1\1\0\4\1\1\0\1\1\1\0\6\1\2\0\5\1\1\0\4\1\1"+ - "\0\4\1\2\0\2\2\1\0\1\1\1\0\1\1\5\0\1\1\1\0\1\1\1\0\3\1\1\0\3\1\1\0\3\1"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\5\1\16\0\5\1\1\2\2\1\1\3\1\4"+ + "\1\5\1\1\1\6\1\7\1\10\1\11\1\12\1\13"+ + "\1\14\1\15\1\16\11\17\1\20\1\21\1\22\1\23"+ + "\1\24\1\25\1\26\1\27\1\30\1\27\1\31\1\32"+ + "\1\33\5\3\1\34\3\3\1\35\7\3\1\36\2\3"+ + "\1\37\1\1\1\40\1\41\1\42\1\1\1\43\1\44"+ + "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\3"+ + "\1\54\1\55\1\56\1\57\1\60\1\61\1\3\1\62"+ + "\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72"+ + "\1\73\1\74\1\75\1\76\41\0\2\1\4\3\4\1"+ + "\1\3\2\1\1\0\7\1\1\3\4\1\1\3\5\1"+ + "\27\3\1\1\37\3\1\1\u01ca\3\4\1\14\3\16\1"+ + "\5\3\7\1\1\3\1\1\1\3\21\1\160\0\5\3"+ + "\1\1\2\3\2\1\4\3\1\1\1\3\6\1\1\3"+ + "\1\1\3\3\1\1\1\3\1\1\24\3\1\1\123\3"+ + "\1\1\213\3\1\1\5\0\2\1\246\3\1\1\46\3"+ + "\2\1\1\3\6\1\51\3\6\1\1\3\1\1\55\0"+ + "\1\1\1\0\1\1\2\0\1\1\2\0\1\1\1\0"+ + "\10\1\33\3\4\1\4\3\15\1\6\0\5\1\1\3"+ + "\4\1\13\0\1\1\1\0\3\1\53\3\37\0\4\1"+ + "\2\3\1\0\143\3\1\1\1\3\10\0\1\1\6\0"+ + "\2\3\2\0\1\1\4\0\2\3\12\0\3\3\2\1"+ + "\1\3\17\1\1\0\1\3\1\0\36\3\33\0\2\1"+ + "\131\3\13\0\1\3\16\1\12\0\41\3\11\0\2\3"+ + "\4\1\1\3\2\1\1\0\30\3\4\0\1\3\11\0"+ + "\1\3\3\0\1\3\5\0\22\1\31\3\3\0\4\1"+ + "\13\3\65\1\25\3\1\1\22\3\13\1\61\0\66\3"+ + "\3\0\1\3\22\0\1\3\7\0\12\3\2\0\2\1"+ + "\12\0\1\1\20\3\3\0\1\1\10\3\2\1\2\3"+ + "\2\1\26\3\1\1\7\3\1\1\1\3\3\1\4\3"+ + "\2\1\1\0\1\3\7\0\2\1\2\0\2\1\3\0"+ + "\1\3\10\1\1\0\4\1\2\3\1\1\3\3\2\0"+ + "\2\1\12\0\4\3\7\1\2\3\1\1\1\0\2\1"+ + "\3\0\1\1\6\3\4\1\2\3\2\1\26\3\1\1"+ + "\7\3\1\1\2\3\1\1\2\3\1\1\2\3\2\1"+ + "\1\0\1\1\5\0\4\1\2\0\2\1\3\0\3\1"+ + "\1\0\7\1\4\3\1\1\1\3\7\1\14\0\3\3"+ + "\1\0\13\1\3\0\1\1\11\3\1\1\3\3\1\1"+ + "\26\3\1\1\7\3\1\1\2\3\1\1\5\3\2\1"+ + "\1\0\1\3\10\0\1\1\3\0\1\1\3\0\2\1"+ + "\1\3\17\1\2\3\2\0\2\1\12\0\1\1\1\3"+ + "\7\1\1\3\6\0\1\1\3\0\1\1\10\3\2\1"+ + "\2\3\2\1\26\3\1\1\7\3\1\1\2\3\1\1"+ + "\5\3\2\1\1\0\1\3\7\0\2\1\2\0\2\1"+ + "\3\0\7\1\3\0\4\1\2\3\1\1\3\3\2\0"+ + "\2\1\12\0\1\1\1\3\20\1\1\0\1\3\1\1"+ + "\6\3\3\1\3\3\1\1\4\3\3\1\2\3\1\1"+ + "\1\3\1\1\2\3\3\1\2\3\3\1\3\3\3\1"+ + "\14\3\4\1\5\0\3\1\3\0\1\1\4\0\2\1"+ + "\1\3\6\1\1\0\16\1\12\0\11\1\1\3\6\1"+ + "\5\0\10\3\1\1\3\3\1\1\27\3\1\1\20\3"+ + "\3\1\1\3\7\0\1\1\3\0\1\1\4\0\7\1"+ + "\2\0\1\1\3\3\5\1\2\3\2\0\2\1\12\0"+ + "\20\1\1\3\3\0\1\1\10\3\1\1\3\3\1\1"+ + "\27\3\1\1\12\3\1\1\5\3\2\1\1\0\1\3"+ + "\7\0\1\1\3\0\1\1\4\0\7\1\2\0\7\1"+ + "\1\3\1\1\2\3\2\0\2\1\12\0\1\1\2\3"+ + "\15\1\4\0\11\3\1\1\3\3\1\1\51\3\2\0"+ + "\1\3\7\0\1\1\3\0\1\1\4\0\1\3\5\1"+ + "\3\3\1\0\7\1\3\3\2\0\2\1\12\0\12\1"+ + "\6\3\1\1\3\0\1\1\22\3\3\1\30\3\1\1"+ + "\11\3\1\1\1\3\2\1\7\3\3\1\1\0\4\1"+ + "\6\0\1\1\1\0\1\1\10\0\6\1\12\0\2\1"+ + "\2\0\15\1\60\3\1\0\2\3\7\0\4\1\10\3"+ + "\10\0\1\1\12\0\47\1\2\3\1\1\1\3\1\1"+ + "\5\3\1\1\30\3\1\1\1\3\1\1\12\3\1\0"+ + "\2\3\11\0\1\3\2\1\5\3\1\1\1\3\1\1"+ + "\6\0\2\1\12\0\2\1\4\3\40\1\1\3\27\1"+ + "\2\0\6\1\12\0\13\1\1\0\1\1\1\0\1\1"+ + "\1\0\4\1\2\0\10\3\1\1\44\3\4\1\24\0"+ + "\1\1\2\0\5\3\13\0\1\1\44\0\11\1\1\0"+ + "\71\1\53\3\24\0\1\3\12\0\6\1\6\3\4\0"+ + "\4\3\3\0\1\3\3\0\2\3\7\0\3\3\4\0"+ + "\15\3\14\0\1\3\17\0\2\1\46\3\1\1\1\3"+ + "\5\1\1\3\2\1\53\3\1\1\115\3\1\1\4\3"+ + "\2\1\7\3\1\1\1\3\1\1\4\3\2\1\51\3"+ + "\1\1\4\3\2\1\41\3\1\1\4\3\2\1\7\3"+ + "\1\1\1\3\1\1\4\3\2\1\17\3\1\1\71\3"+ + "\1\1\4\3\2\1\103\3\2\1\3\0\40\1\20\3"+ + "\20\1\126\3\2\1\6\3\3\1\u016c\3\2\1\21\3"+ + "\1\1\32\3\5\1\113\3\3\1\13\3\7\1\15\3"+ + "\1\1\4\3\3\0\13\1\22\3\3\0\13\1\22\3"+ + "\2\0\14\1\15\3\1\1\3\3\1\1\2\0\14\1"+ + "\64\3\40\0\3\1\1\3\3\1\2\3\1\0\2\1"+ + "\12\0\41\1\4\0\1\1\12\0\6\1\131\3\7\1"+ + "\5\3\2\0\42\3\1\0\1\3\5\1\106\3\12\1"+ + "\37\3\1\1\14\0\4\1\14\0\12\1\12\0\36\3"+ + "\2\1\5\3\13\1\54\3\4\1\32\3\6\1\12\0"+ + "\46\1\27\3\5\0\4\1\65\3\12\0\1\1\35\0"+ + "\2\1\13\0\6\1\12\0\15\1\1\3\10\1\16\0"+ + "\1\1\2\0\77\1\5\0\57\3\21\0\7\3\4\1"+ + "\12\0\21\1\11\0\14\1\3\0\36\3\15\0\2\3"+ + "\12\0\54\3\16\0\14\1\44\3\24\0\10\1\12\0"+ + "\3\1\3\3\12\0\44\3\2\1\11\3\7\1\53\3"+ + "\2\1\3\3\20\1\3\0\1\1\25\0\4\3\1\0"+ + "\6\3\1\0\2\3\3\0\1\3\5\1\300\3\72\0"+ + "\1\1\5\0\26\3\2\1\6\3\2\1\46\3\2\1"+ + "\6\3\2\1\10\3\1\1\1\3\1\1\1\3\1\1"+ + "\1\3\1\1\37\3\2\1\65\3\1\1\7\3\1\1"+ + "\1\3\3\1\3\3\1\1\7\3\3\1\4\3\2\1"+ + "\6\3\4\1\15\3\5\1\3\3\1\1\7\3\16\1"+ + "\5\0\32\1\5\0\20\1\2\3\23\1\1\3\13\1"+ + "\5\0\1\1\12\0\1\1\1\3\15\1\1\3\20\1"+ + "\15\3\3\1\40\3\20\1\15\0\4\1\1\0\3\1"+ + "\14\0\21\1\1\3\4\1\1\3\2\1\12\3\1\1"+ + "\1\3\3\1\5\3\6\1\1\3\1\1\1\3\1\1"+ + "\1\3\1\1\4\3\1\1\13\3\2\1\4\3\5\1"+ + "\5\3\4\1\1\3\21\1\51\3\u0177\1\57\3\1\1"+ + "\57\3\1\1\205\3\6\1\4\3\3\0\2\3\14\1"+ + "\46\3\1\1\1\3\5\1\1\3\2\1\70\3\7\1"+ + "\1\3\17\1\1\0\27\3\11\1\7\3\1\1\7\3"+ + "\1\1\7\3\1\1\7\3\1\1\7\3\1\1\7\3"+ + "\1\1\7\3\1\1\7\3\1\1\40\0\57\1\1\3"+ + "\325\1\3\3\31\1\11\3\6\0\1\1\5\3\2\1"+ + "\5\3\4\1\126\3\2\1\2\0\2\1\3\3\1\1"+ + "\132\3\1\1\4\3\5\1\53\3\1\1\136\3\21\1"+ + "\40\3\60\1\320\3\100\1\375\3\3\1\215\3\103\1"+ + "\56\3\2\1\15\3\3\1\20\3\12\0\2\3\24\1"+ + "\57\3\1\0\4\1\12\0\1\1\37\3\2\0\120\3"+ + "\2\0\45\1\11\3\2\1\147\3\2\1\65\3\2\1"+ + "\11\3\52\1\15\3\1\0\3\3\1\0\4\3\1\0"+ + "\27\3\5\0\4\1\1\0\13\1\1\3\7\1\64\3"+ + "\14\1\2\0\62\3\22\0\12\1\12\0\6\1\22\0"+ + "\6\3\3\1\1\3\1\1\2\3\13\0\34\3\10\0"+ + "\2\1\27\3\15\0\14\1\35\3\3\1\4\0\57\3"+ + "\16\0\16\1\1\3\12\0\6\1\5\3\1\0\12\3"+ + "\12\0\5\3\1\1\51\3\16\0\11\1\3\3\1\0"+ + "\10\3\2\0\2\1\12\0\6\1\27\3\3\1\1\3"+ + "\3\0\62\3\1\0\1\3\3\0\2\3\2\0\5\3"+ + "\2\0\1\3\1\0\1\3\30\1\3\3\2\1\13\3"+ + "\5\0\2\1\3\3\2\0\12\1\6\3\2\1\6\3"+ + "\2\1\6\3\11\1\7\3\1\1\7\3\1\1\53\3"+ + "\1\1\16\3\6\1\163\3\10\0\1\1\2\0\2\1"+ + "\12\0\6\1\244\3\14\1\27\3\4\1\61\3\4\1"+ + "\156\3\2\1\152\3\46\1\7\3\14\1\5\3\5\1"+ + "\1\3\1\0\12\3\1\1\15\3\1\1\5\3\1\1"+ + "\1\3\1\1\2\3\1\1\2\3\1\1\154\3\41\1"+ + "\153\3\22\1\100\3\2\1\66\3\50\1\15\3\3\1"+ + "\20\0\20\1\20\0\3\1\2\3\30\1\3\3\31\1"+ + "\1\3\6\1\5\3\1\1\207\3\2\1\1\0\4\1"+ + "\1\3\13\1\12\0\7\1\32\3\4\1\1\3\1\1"+ + "\32\3\13\1\131\3\3\1\6\3\2\1\6\3\2\1"+ + "\6\3\2\1\3\3\3\1\2\3\3\1\2\3\22\1"+ + "\3\0\4\1\14\3\1\1\32\3\1\1\23\3\1\1"+ + "\2\3\1\1\17\3\2\1\16\3\42\1\173\3\105\1"+ + "\65\3\210\1\1\0\202\1\35\3\3\1\61\3\17\1"+ + "\1\0\37\1\40\3\15\1\36\3\5\1\46\3\5\0"+ + "\5\1\36\3\2\1\44\3\4\1\10\3\1\1\5\3"+ + "\52\1\236\3\2\1\12\0\6\1\44\3\4\1\44\3"+ + "\4\1\50\3\10\1\64\3\234\1\67\3\11\1\26\3"+ + "\12\1\10\3\230\1\6\3\2\1\1\3\1\1\54\3"+ + "\1\1\2\3\3\1\1\3\2\1\27\3\12\1\27\3"+ + "\11\1\37\3\101\1\23\3\1\1\2\3\12\1\26\3"+ + "\12\1\32\3\106\1\70\3\6\1\2\3\100\1\1\3"+ + "\3\0\1\1\2\0\5\1\4\0\4\3\1\1\3\3"+ + "\1\1\35\3\2\1\3\0\4\1\1\0\40\1\35\3"+ + "\3\1\35\3\43\1\10\3\1\1\34\3\2\0\31\1"+ + "\66\3\12\1\26\3\12\1\23\3\15\1\22\3\156\1"+ + "\111\3\67\1\63\3\15\1\63\3\15\1\44\3\4\0"+ + "\10\1\12\0\u0146\1\52\3\1\1\2\0\3\1\2\3"+ + "\116\1\35\3\12\1\1\3\10\1\26\3\13\0\137\1"+ + "\25\3\33\1\27\3\11\1\3\0\65\3\17\0\37\1"+ + "\12\0\17\1\4\0\55\3\13\0\2\1\1\0\17\1"+ + "\1\0\2\1\31\3\7\1\12\0\6\1\3\0\44\3"+ + "\16\0\1\1\12\0\4\1\1\3\2\0\1\3\10\1"+ + "\43\3\1\0\2\1\1\3\11\1\3\0\60\3\16\0"+ + "\4\3\4\1\4\0\1\1\14\0\1\3\1\1\1\3"+ + "\43\1\22\3\1\1\31\3\14\0\6\1\1\0\101\1"+ + "\7\3\1\1\1\3\1\1\4\3\1\1\17\3\1\1"+ + "\12\3\7\1\57\3\14\0\5\1\12\0\6\1\4\0"+ + "\1\1\10\3\2\1\2\3\2\1\26\3\1\1\7\3"+ + "\1\1\2\3\1\1\5\3\1\1\2\0\1\3\7\0"+ + "\2\1\2\0\2\1\3\0\2\1\1\3\6\1\1\0"+ + "\5\1\5\3\2\0\2\1\7\0\3\1\5\0\213\1"+ + "\65\3\22\0\4\3\5\1\12\0\4\1\1\0\3\3"+ + "\36\1\60\3\24\0\2\3\1\1\1\3\10\1\12\0"+ + "\246\1\57\3\7\0\2\1\11\0\27\1\4\3\2\0"+ + "\42\1\60\3\21\0\3\1\1\3\13\1\12\0\46\1"+ + "\53\3\15\0\1\3\7\1\12\0\66\1\33\3\2\1"+ + "\17\0\4\1\12\0\306\1\54\3\17\0\145\1\100\3"+ + "\12\0\25\1\10\3\2\1\1\3\2\1\10\3\1\1"+ + "\2\3\1\1\30\3\6\0\1\1\2\0\2\1\4\0"+ + "\1\3\1\0\1\3\2\0\14\1\12\0\106\1\10\3"+ + "\2\1\47\3\7\0\2\1\7\0\1\3\1\1\1\3"+ + "\1\0\33\1\1\3\12\0\50\3\7\0\1\3\4\0"+ + "\10\1\1\0\10\1\1\3\13\0\56\3\20\0\3\1"+ + "\1\3\42\1\71\3\7\1\11\3\1\1\45\3\10\0"+ + "\1\1\10\0\1\3\17\1\12\0\30\1\36\3\2\1"+ + "\26\0\1\1\16\0\111\1\7\3\1\1\2\3\1\1"+ + "\46\3\6\0\3\1\1\0\1\1\2\0\1\1\7\0"+ + "\1\3\1\0\10\1\12\0\6\1\6\3\1\1\2\3"+ + "\1\1\40\3\5\0\1\1\2\0\1\1\5\0\1\3"+ + "\7\1\12\0\u0136\1\23\3\4\0\271\1\1\3\54\1"+ + "\4\3\37\1\232\3\146\1\157\3\21\1\304\3\274\1"+ + "\57\3\1\1\11\0\307\1\107\3\271\1\71\3\7\1"+ + "\37\3\1\1\12\0\146\1\36\3\2\1\5\0\13\1"+ + "\60\3\7\0\11\1\4\3\14\1\12\0\11\1\25\3"+ + "\5\1\23\3\260\1\100\3\200\1\113\3\4\1\1\0"+ + "\1\3\67\0\7\1\4\0\15\3\100\1\2\3\1\1"+ + "\1\3\1\0\13\1\2\0\16\1\370\3\10\1\326\3"+ + "\52\1\11\3\367\1\37\3\61\1\3\3\21\1\4\3"+ + "\10\1\u018c\3\4\1\153\3\5\1\15\3\3\1\11\3"+ + "\7\1\12\3\3\1\2\0\1\1\4\0\301\1\5\0"+ + "\3\1\26\0\2\1\7\0\36\1\4\0\224\1\3\0"+ + "\273\1\125\3\1\1\107\3\1\1\2\3\2\1\1\3"+ + "\2\1\2\3\2\1\4\3\1\1\14\3\1\1\1\3"+ + "\1\1\7\3\1\1\101\3\1\1\4\3\2\1\10\3"+ + "\1\1\7\3\1\1\34\3\1\1\4\3\1\1\5\3"+ + "\1\1\1\3\3\1\7\3\1\1\u0154\3\2\1\31\3"+ + "\1\1\31\3\1\1\37\3\1\1\31\3\1\1\37\3"+ + "\1\1\31\3\1\1\37\3\1\1\31\3\1\1\37\3"+ + "\1\1\31\3\1\1\10\3\2\1\151\0\4\1\62\0"+ + "\10\1\1\0\16\1\1\0\26\1\5\0\1\1\17\0"+ + "\120\1\7\0\1\1\21\0\2\1\7\0\1\1\2\0"+ + "\1\1\5\0\325\1\55\3\3\1\7\0\7\3\2\1"+ + "\12\0\4\1\1\3\u0171\1\54\3\16\0\5\1\306\3"+ + "\13\1\7\0\51\1\104\3\7\0\1\3\4\1\12\0"+ + "\u0156\1\1\3\117\1\4\3\1\1\33\3\1\1\2\3"+ + "\1\1\1\3\2\1\1\3\1\1\12\3\1\1\4\3"+ + "\1\1\1\3\1\1\1\3\6\1\1\3\4\1\1\3"+ + "\1\1\1\3\1\1\1\3\1\1\3\3\1\1\2\3"+ + "\1\1\1\3\2\1\1\3\1\1\1\3\1\1\1\3"+ + "\1\1\1\3\1\1\1\3\1\1\2\3\1\1\1\3"+ + "\2\1\4\3\1\1\7\3\1\1\4\3\1\1\4\3"+ + "\1\1\1\3\1\1\12\3\1\1\21\3\5\1\3\3"+ + "\1\1\5\3\1\1\21\3\u0134\1\12\0\6\1\336\3"+ + "\42\1\65\3\13\1\336\3\2\1\u0182\3\16\1\u0131\3"+ + "\37\1\36\3\342\1\113\3\266\1\1\0\36\1\140\0"+ + "\200\1\360\0\20\1"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[30976]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\2\3\1\4\1\5\20\2\1\6"+ - "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+ - "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+ - "\3\37\2\3\1\0\1\40\1\41\1\42\34\2\1\43"+ - "\3\2\1\44\6\2\1\45\1\46\1\47\1\50\1\51"+ - "\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61"+ - "\1\62\1\63\1\37\1\3\1\0\1\64\2\2\1\65"+ - "\10\2\1\66\13\2\1\67\11\2\1\70\14\2\1\71"+ - "\1\0\1\72\2\2\1\73\1\2\1\74\1\75\6\2"+ - "\1\76\6\2\1\77\3\2\1\100\1\2\1\101\3\2"+ - "\1\102\6\2\1\103\5\2\1\104\2\2\1\105\2\2"+ - "\1\106\1\107\1\110\4\2\1\111\1\2\1\112\2\2"+ - "\1\113\1\2\1\114\1\115\1\2\1\116\13\2\1\117"+ - "\1\2\1\120\1\121\2\2\1\122\2\2\1\123\1\2"+ - "\1\124\1\125\5\2\1\126\1\2\1\127\2\2\1\130"+ - "\3\2\1\131\1\132\3\2\1\133\4\2\1\134\1\2"+ - "\1\135\1\136\2\2\1\137\1\140\1\2\1\141\4\2"+ - "\1\142\1\143\1\2\1\144\2\2\1\145\1\2\1\146"+ - "\1\147\1\2\1\150"; + "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+ + "\1\10\1\11\1\12\1\13\1\14\1\15\2\16\1\17"+ + "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+ + "\1\30\20\3\1\31\1\32\1\33\1\34\1\35\1\36"+ + "\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46"+ + "\1\0\1\47\1\50\1\16\2\47\1\51\1\52\1\16"+ + "\1\53\1\54\1\55\1\56\1\57\12\3\1\60\10\3"+ + "\1\61\23\3\1\62\1\63\1\64\1\47\1\0\1\16"+ + "\1\65\22\3\1\66\3\3\1\67\2\3\1\70\20\3"+ + "\1\71\3\3\1\0\4\3\1\72\1\73\1\3\1\74"+ + "\5\3\1\75\1\76\4\3\1\77\4\3\1\100\1\3"+ + "\1\101\13\3\1\102\2\3\1\103\1\104\5\3\1\105"+ + "\1\106\1\107\1\110\4\3\1\111\1\112\1\113\12\3"+ + "\1\114\2\3\1\115\2\3\1\116\2\3\1\117\1\3"+ + "\1\120\3\3\1\121\3\3\1\122\2\3\1\123\3\3"+ + "\1\124\1\125\1\126\1\3\1\127\1\3\1\130\3\3"+ + "\1\131\1\3\1\132\1\133\1\134\3\3\1\135\1\136"+ + "\5\3\1\137\1\140\4\3\1\141\2\3\1\142\2\3"+ + "\1\143\1\144\1\3\1\145\1\146\1\147\2\3\1\150"; private static int [] zzUnpackAction() { int [] result = new int[304]; @@ -214,50 +382,50 @@ class _JavaLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\77\0\176\0\275\0\374\0\u013b\0\u017a\0\u01b9"+ - "\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4\0\u0333\0\u0372\0\u03b1"+ - "\0\u03f0\0\u042f\0\u046e\0\u04ad\0\u04ec\0\u052b\0\u056a\0\u05a9"+ - "\0\u05e8\0\u0627\0\u0666\0\u06a5\0\77\0\u06e4\0\u0723\0\u0762"+ - "\0\u07a1\0\u07e0\0\77\0\77\0\77\0\77\0\77\0\77"+ - "\0\77\0\77\0\77\0\77\0\u081f\0\77\0\77\0\77"+ - "\0\77\0\u085e\0\u089d\0\u08dc\0\u091b\0\u095a\0\77\0\77"+ - "\0\77\0\u0999\0\u09d8\0\u0a17\0\u0a56\0\u0a95\0\u0ad4\0\u0b13"+ - "\0\u0b52\0\u0b91\0\u0bd0\0\u0c0f\0\u0c4e\0\u0c8d\0\u0ccc\0\u0d0b"+ - "\0\u0d4a\0\u0d89\0\u0dc8\0\u0e07\0\u0e46\0\u0e85\0\u0ec4\0\u0f03"+ - "\0\u0f42\0\u0f81\0\u0fc0\0\u0fff\0\u103e\0\176\0\u107d\0\u10bc"+ - "\0\u10fb\0\u113a\0\u1179\0\u11b8\0\u11f7\0\u1236\0\u1275\0\u12b4"+ - "\0\77\0\77\0\77\0\77\0\77\0\77\0\77\0\u12f3"+ - "\0\77\0\77\0\77\0\77\0\77\0\77\0\77\0\u1332"+ - "\0\u1371\0\u13b0\0\77\0\u13ef\0\u142e\0\176\0\u146d\0\u14ac"+ - "\0\u14eb\0\u152a\0\u1569\0\u15a8\0\u15e7\0\u1626\0\176\0\u1665"+ - "\0\u16a4\0\u16e3\0\u1722\0\u1761\0\u17a0\0\u17df\0\u181e\0\u185d"+ - "\0\u189c\0\u18db\0\176\0\u191a\0\u1959\0\u1998\0\u19d7\0\u1a16"+ + "\0\0\0\77\0\176\0\275\0\374\0\u013b\0\77\0\77"+ + "\0\u017a\0\u01b9\0\77\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4"+ + "\0\u0333\0\77\0\u0372\0\u03b1\0\77\0\77\0\77\0\77"+ + "\0\77\0\u03f0\0\u042f\0\u046e\0\u04ad\0\u04ec\0\u052b\0\u056a"+ + "\0\u05a9\0\u05e8\0\u0627\0\u0666\0\u06a5\0\u06e4\0\u0723\0\u0762"+ + "\0\u07a1\0\u07e0\0\77\0\u081f\0\77\0\77\0\77\0\77"+ + "\0\77\0\77\0\77\0\77\0\77\0\77\0\77\0\77"+ + "\0\u085e\0\u089d\0\77\0\u08dc\0\77\0\u091b\0\77\0\77"+ + "\0\u095a\0\77\0\u0999\0\77\0\77\0\77\0\u09d8\0\u0a17"+ + "\0\u0a56\0\u0a95\0\u0ad4\0\u0b13\0\u0b52\0\u0b91\0\u0bd0\0\u0c0f"+ + "\0\u0c4e\0\u0c8d\0\u0ccc\0\u0d0b\0\u0d4a\0\u0d89\0\u0dc8\0\u0e07"+ + "\0\u0e46\0\275\0\u0e85\0\u0ec4\0\u0f03\0\u0f42\0\u0f81\0\u0fc0"+ + "\0\u0fff\0\u103e\0\u107d\0\u10bc\0\u10fb\0\u113a\0\u1179\0\u11b8"+ + "\0\u11f7\0\u1236\0\u1275\0\u12b4\0\u12f3\0\77\0\77\0\77"+ + "\0\u1332\0\u1371\0\u13b0\0\77\0\u13ef\0\u142e\0\u146d\0\u14ac"+ + "\0\u14eb\0\u152a\0\u1569\0\u15a8\0\u15e7\0\u1626\0\u1665\0\u16a4"+ + "\0\u16e3\0\u1722\0\u1761\0\u17a0\0\u17df\0\u181e\0\275\0\u185d"+ + "\0\u189c\0\u18db\0\u191a\0\u1959\0\u1998\0\275\0\u19d7\0\u1a16"+ "\0\u1a55\0\u1a94\0\u1ad3\0\u1b12\0\u1b51\0\u1b90\0\u1bcf\0\u1c0e"+ - "\0\u1c4d\0\u1c8c\0\u1ccb\0\u1d0a\0\u1d49\0\u1d88\0\u1dc7\0\u1e06"+ - "\0\u1e45\0\77\0\u1e84\0\176\0\u1ec3\0\u1f02\0\176\0\u1f41"+ - "\0\176\0\176\0\u1f80\0\u1fbf\0\u1ffe\0\u203d\0\u207c\0\u20bb"+ - "\0\176\0\u20fa\0\u2139\0\u2178\0\u21b7\0\u21f6\0\u2235\0\176"+ - "\0\u2274\0\u22b3\0\u22f2\0\176\0\u2331\0\176\0\u2370\0\u23af"+ - "\0\u23ee\0\176\0\u242d\0\u246c\0\u24ab\0\u24ea\0\u2529\0\u2568"+ - "\0\176\0\u25a7\0\u25e6\0\u2625\0\u2664\0\u26a3\0\176\0\u26e2"+ - "\0\u2721\0\u2760\0\u279f\0\u27de\0\176\0\176\0\u281d\0\u285c"+ - "\0\u289b\0\u28da\0\u2919\0\176\0\u2958\0\176\0\u2997\0\u29d6"+ - "\0\176\0\u2a15\0\176\0\176\0\u2a54\0\176\0\u2a93\0\u2ad2"+ - "\0\u2b11\0\u2b50\0\u2b8f\0\u2bce\0\u2c0d\0\u2c4c\0\u2c8b\0\u2cca"+ - "\0\u2d09\0\176\0\u2d48\0\176\0\176\0\u2d87\0\u2dc6\0\176"+ - "\0\u2e05\0\u2e44\0\176\0\u2e83\0\176\0\176\0\u2ec2\0\u2f01"+ - "\0\u2f40\0\u2f7f\0\u2fbe\0\176\0\u2ffd\0\176\0\u303c\0\u307b"+ - "\0\176\0\u30ba\0\u30f9\0\u3138\0\176\0\176\0\u3177\0\u31b6"+ - "\0\u31f5\0\176\0\u3234\0\u3273\0\u32b2\0\u32f1\0\176\0\u3330"+ - "\0\176\0\176\0\u336f\0\u33ae\0\176\0\176\0\u33ed\0\176"+ - "\0\u342c\0\u346b\0\u34aa\0\u34e9\0\176\0\176\0\u3528\0\176"+ - "\0\u3567\0\u35a6\0\176\0\u35e5\0\176\0\176\0\u3624\0\176"; + "\0\u1c4d\0\u1c8c\0\u1ccb\0\u1d0a\0\u1d49\0\u1d88\0\275\0\u1dc7"+ + "\0\u1e06\0\u1e45\0\u1e84\0\u1ec3\0\u1f02\0\u1f41\0\u1f80\0\275"+ + "\0\275\0\u1fbf\0\275\0\u1ffe\0\u203d\0\u207c\0\u20bb\0\u20fa"+ + "\0\275\0\275\0\u2139\0\u2178\0\u21b7\0\u21f6\0\275\0\u2235"+ + "\0\u2274\0\u22b3\0\u22f2\0\275\0\u2331\0\275\0\u2370\0\u23af"+ + "\0\u23ee\0\u242d\0\u246c\0\u24ab\0\u24ea\0\u2529\0\u2568\0\u25a7"+ + "\0\u25e6\0\275\0\u2625\0\u2664\0\275\0\275\0\u26a3\0\u26e2"+ + "\0\u2721\0\u2760\0\u279f\0\275\0\275\0\275\0\275\0\u27de"+ + "\0\u281d\0\u285c\0\u289b\0\275\0\u28da\0\275\0\u2919\0\u2958"+ + "\0\u2997\0\u29d6\0\u2a15\0\u2a54\0\u2a93\0\u2ad2\0\u2b11\0\u2b50"+ + "\0\275\0\u2b8f\0\u2bce\0\275\0\u2c0d\0\u2c4c\0\u2c8b\0\u2cca"+ + "\0\u2d09\0\275\0\u2d48\0\275\0\u2d87\0\u2dc6\0\u2e05\0\275"+ + "\0\u2e44\0\u2e83\0\u2ec2\0\275\0\u2f01\0\u2f40\0\275\0\u2f7f"+ + "\0\u2fbe\0\u2ffd\0\275\0\275\0\275\0\u303c\0\275\0\u307b"+ + "\0\275\0\u30ba\0\u30f9\0\u3138\0\275\0\u3177\0\275\0\275"+ + "\0\275\0\u31b6\0\u31f5\0\u3234\0\275\0\275\0\u3273\0\u32b2"+ + "\0\u32f1\0\u3330\0\u336f\0\275\0\275\0\u33ae\0\u33ed\0\u342c"+ + "\0\u346b\0\275\0\u34aa\0\u34e9\0\275\0\u3528\0\u3567\0\275"+ + "\0\275\0\u35a6\0\275\0\275\0\275\0\u35e5\0\u3624\0\275"; private static int [] zzUnpackRowMap() { int [] result = new int[304]; @@ -269,7 +437,7 @@ class _JavaLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -277,254 +445,348 @@ class _JavaLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\2\1\4\3\3\1\5\4\3\1\6"+ - "\1\3\1\7\1\3\1\10\1\11\1\3\1\12\1\13"+ - "\1\14\1\15\1\16\1\17\1\20\1\21\4\3\1\22"+ - "\1\23\2\3\1\24\1\25\1\26\1\27\1\3\1\30"+ - "\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40"+ - "\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1\50"+ - "\1\51\1\52\1\53\1\54\1\55\1\56\100\0\13\3"+ - "\1\0\1\3\1\0\31\3\32\0\2\4\1\0\1\57"+ - "\1\4\2\0\1\60\1\61\1\62\1\63\5\0\1\63"+ - "\1\60\1\0\1\57\11\0\1\61\41\0\2\4\1\0"+ - "\1\57\1\4\1\64\1\65\1\60\1\61\1\62\1\63"+ - "\5\0\1\63\1\60\1\0\1\57\2\0\1\65\6\0"+ - "\1\61\1\0\1\64\37\0\1\62\3\0\1\62\4\0"+ - "\1\66\100\0\1\67\31\0\1\70\4\0\1\71\22\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\72\14\3\1\73"+ - "\11\3\30\0\13\3\1\0\1\3\1\0\4\3\1\74"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\7\3\1\75"+ - "\1\3\1\76\11\3\1\77\5\3\30\0\13\3\1\0"+ - "\1\3\1\0\6\3\1\100\1\101\4\3\1\102\3\3"+ - "\1\103\10\3\30\0\13\3\1\0\1\3\1\0\10\3"+ - "\1\104\1\3\1\105\16\3\30\0\13\3\1\0\1\3"+ - "\1\0\14\3\1\106\14\3\30\0\13\3\1\0\1\3"+ - "\1\0\1\3\1\107\1\3\1\110\12\3\1\111\1\112"+ - "\7\3\1\113\1\3\30\0\13\3\1\0\1\3\1\0"+ - "\3\3\1\114\1\115\1\3\1\116\22\3\30\0\13\3"+ - "\1\0\1\3\1\0\2\3\1\117\11\3\1\120\1\3"+ - "\1\121\12\3\30\0\13\3\1\0\1\3\1\0\6\3"+ - "\1\122\1\123\4\3\1\124\2\3\1\125\11\3\30\0"+ - "\13\3\1\0\1\3\1\0\5\3\1\126\3\3\1\127"+ - "\10\3\1\130\6\3\30\0\13\3\1\0\1\3\1\0"+ - "\4\3\1\131\7\3\1\132\14\3\30\0\13\3\1\0"+ - "\1\3\1\0\14\3\1\133\14\3\30\0\13\3\1\0"+ - "\1\3\1\0\2\3\1\134\1\135\2\3\1\136\22\3"+ - "\30\0\13\3\1\0\1\3\1\0\14\3\1\137\14\3"+ - "\30\0\13\3\1\0\1\3\1\0\17\3\1\140\11\3"+ - "\77\0\1\141\76\0\1\142\76\0\1\143\1\0\1\144"+ - "\74\0\1\145\2\0\1\146\73\0\1\147\3\0\1\150"+ - "\72\0\1\151\5\0\1\152\70\0\1\153\76\0\1\154"+ - "\76\0\1\155\76\0\1\156\123\0\1\157\4\0\2\62"+ - "\2\0\1\62\2\0\1\60\1\61\1\0\1\63\5\0"+ - "\1\63\1\60\13\0\1\61\41\0\2\160\2\0\1\160"+ - "\2\0\1\60\1\61\2\0\1\160\5\0\1\60\13\0"+ - "\1\61\12\0\1\160\26\0\3\161\1\57\1\161\1\0"+ - "\3\161\1\162\1\161\5\0\3\161\1\57\2\0\2\161"+ - "\5\0\1\161\41\0\2\65\1\0\1\57\1\65\16\0"+ - "\1\57\64\0\1\163\63\0\13\3\1\0\1\3\1\0"+ - "\3\3\1\164\2\3\1\165\7\3\1\166\12\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\167\15\3\1\170"+ - "\10\3\30\0\13\3\1\0\1\3\1\0\1\3\1\171"+ - "\27\3\30\0\13\3\1\0\1\3\1\0\10\3\1\172"+ - "\20\3\30\0\13\3\1\0\1\3\1\0\3\3\1\173"+ - "\25\3\30\0\13\3\1\0\1\3\1\0\1\3\1\174"+ - "\27\3\30\0\13\3\1\0\1\3\1\0\7\3\1\175"+ - "\21\3\30\0\13\3\1\0\1\3\1\0\14\3\1\176"+ - "\14\3\30\0\13\3\1\0\1\3\1\0\2\3\1\177"+ - "\26\3\30\0\13\3\1\0\1\3\1\0\11\3\1\200"+ - "\17\3\30\0\13\3\1\0\1\3\1\0\10\3\1\201"+ - "\20\3\30\0\13\3\1\0\1\3\1\0\10\3\1\202"+ - "\20\3\30\0\13\3\1\0\1\3\1\0\11\3\1\203"+ - "\17\3\30\0\13\3\1\0\1\3\1\0\2\3\1\204"+ - "\3\3\1\205\22\3\30\0\13\3\1\0\1\3\1\0"+ - "\25\3\1\206\3\3\30\0\13\3\1\0\1\3\1\0"+ - "\11\3\1\207\17\3\30\0\13\3\1\0\1\3\1\0"+ - "\14\3\1\210\14\3\30\0\13\3\1\0\1\3\1\0"+ - "\20\3\1\211\10\3\30\0\13\3\1\0\1\3\1\0"+ - "\7\3\1\212\21\3\30\0\13\3\1\0\1\3\1\0"+ - "\27\3\1\213\1\3\30\0\13\3\1\0\1\3\1\0"+ - "\1\3\1\214\27\3\30\0\13\3\1\0\1\3\1\0"+ - "\4\3\1\215\24\3\30\0\13\3\1\0\1\3\1\0"+ - "\14\3\1\216\14\3\30\0\13\3\1\0\1\3\1\0"+ - "\1\3\1\217\27\3\30\0\13\3\1\0\1\3\1\0"+ - "\1\3\1\220\6\3\1\221\20\3\30\0\13\3\1\0"+ - "\1\3\1\0\6\3\1\222\22\3\30\0\13\3\1\0"+ - "\1\3\1\0\11\3\1\223\17\3\30\0\13\3\1\0"+ - "\1\3\1\0\6\3\1\224\22\3\30\0\13\3\1\0"+ - "\1\3\1\0\1\3\1\225\6\3\1\226\20\3\30\0"+ - "\13\3\1\0\1\3\1\0\25\3\1\227\3\3\30\0"+ - "\13\3\1\0\1\3\1\0\5\3\1\230\23\3\30\0"+ - "\13\3\1\0\1\3\1\0\3\3\1\231\25\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\232\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\14\3\1\233\3\3\1\234"+ - "\10\3\30\0\13\3\1\0\1\3\1\0\12\3\1\235"+ - "\16\3\30\0\13\3\1\0\1\3\1\0\13\3\1\236"+ - "\15\3\30\0\13\3\1\0\1\3\1\0\7\3\1\237"+ - "\10\3\1\240\10\3\30\0\13\3\1\0\1\3\1\0"+ - "\20\3\1\241\10\3\77\0\1\242\31\0\2\160\2\0"+ - "\1\160\2\0\1\60\1\61\10\0\1\60\13\0\1\61"+ - "\41\0\3\161\1\57\1\161\1\0\3\161\1\243\1\161"+ - "\1\0\1\63\3\0\3\161\1\57\2\0\2\161\5\0"+ - "\1\161\3\0\1\63\35\0\3\243\1\0\1\243\1\0"+ - "\3\243\1\0\1\243\5\0\3\243\3\0\2\243\5\0"+ - "\1\243\37\0\13\3\1\0\1\3\1\0\4\3\1\244"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\11\3\1\245"+ - "\17\3\30\0\13\3\1\0\1\3\1\0\14\3\1\246"+ - "\14\3\30\0\13\3\1\0\1\3\1\0\10\3\1\247"+ - "\20\3\30\0\13\3\1\0\1\3\1\0\3\3\1\250"+ - "\25\3\30\0\13\3\1\0\1\3\1\0\4\3\1\251"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\22\3\1\252"+ - "\6\3\30\0\13\3\1\0\1\3\1\0\4\3\1\253"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\10\3\1\254"+ - "\20\3\30\0\13\3\1\0\1\3\1\0\6\3\1\255"+ - "\22\3\30\0\13\3\1\0\1\3\1\0\6\3\1\256"+ - "\22\3\30\0\13\3\1\0\1\3\1\0\4\3\1\257"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\1\3\1\260"+ - "\27\3\30\0\13\3\1\0\1\3\1\0\24\3\1\261"+ - "\4\3\30\0\13\3\1\0\1\3\1\0\20\3\1\262"+ - "\10\3\30\0\13\3\1\0\1\3\1\0\1\3\1\263"+ - "\27\3\30\0\13\3\1\0\1\3\1\0\4\3\1\264"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\13\3\1\265"+ - "\15\3\30\0\13\3\1\0\1\3\1\0\2\3\1\266"+ - "\26\3\30\0\13\3\1\0\1\3\1\0\1\3\1\267"+ - "\27\3\30\0\13\3\1\0\1\3\1\0\7\3\1\270"+ - "\21\3\30\0\13\3\1\0\1\3\1\0\20\3\1\271"+ - "\10\3\30\0\13\3\1\0\1\3\1\0\6\3\1\272"+ - "\22\3\30\0\13\3\1\0\1\3\1\0\7\3\1\273"+ - "\21\3\30\0\13\3\1\0\1\3\1\0\4\3\1\274"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\13\3\1\275"+ - "\15\3\30\0\13\3\1\0\1\3\1\0\4\3\1\276"+ - "\24\3\30\0\13\3\1\0\1\3\1\0\10\3\1\277"+ - "\20\3\30\0\13\3\1\0\1\3\1\0\1\3\1\300"+ - "\6\3\1\301\20\3\30\0\13\3\1\0\1\3\1\0"+ - "\2\3\1\302\26\3\30\0\13\3\1\0\1\3\1\0"+ - "\4\3\1\303\24\3\30\0\13\3\1\0\1\3\1\0"+ - "\1\3\1\304\27\3\30\0\13\3\1\0\1\3\1\0"+ - "\7\3\1\305\4\3\1\306\14\3\30\0\13\3\1\0"+ - "\1\3\1\0\6\3\1\307\22\3\30\0\13\3\1\0"+ - "\1\3\1\0\12\3\1\310\16\3\30\0\13\3\1\0"+ - "\1\3\1\0\14\3\1\311\14\3\30\0\13\3\1\0"+ - "\1\3\1\0\1\3\1\312\27\3\30\0\13\3\1\0"+ - "\1\3\1\0\26\3\1\313\2\3\30\0\13\3\1\0"+ - "\1\3\1\0\7\3\1\314\21\3\30\0\13\3\1\0"+ - "\1\3\1\0\15\3\1\315\13\3\30\0\13\3\1\0"+ - "\1\3\1\0\6\3\1\316\22\3\30\0\13\3\1\0"+ - "\1\3\1\0\21\3\1\317\7\3\30\0\13\3\1\0"+ - "\1\3\1\0\7\3\1\320\21\3\32\0\3\243\1\0"+ - "\1\243\1\0\3\243\1\0\1\243\1\0\1\63\3\0"+ - "\3\243\3\0\2\243\5\0\1\243\3\0\1\63\33\0"+ - "\13\3\1\0\1\3\1\0\10\3\1\321\20\3\30\0"+ - "\13\3\1\0\1\3\1\0\27\3\1\322\1\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\323\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\324\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\325\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\326\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\7\3\1\327\21\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\330\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\331\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\332\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\20\3\1\333\10\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\334\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\17\3\1\335\11\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\336\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\337\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\26\3\1\340\2\3\30\0"+ - "\13\3\1\0\1\3\1\0\15\3\1\341\13\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\342\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\17\3\1\343\11\3\30\0"+ - "\13\3\1\0\1\3\1\0\10\3\1\344\20\3\30\0"+ - "\13\3\1\0\1\3\1\0\20\3\1\345\10\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\346\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\347\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\6\3\1\350\22\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\351\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\352\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\3\3\1\353\25\3\30\0"+ - "\13\3\1\0\1\3\1\0\7\3\1\354\21\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\355\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\6\3\1\356\22\3\30\0"+ - "\13\3\1\0\1\3\1\0\20\3\1\357\10\3\30\0"+ - "\13\3\1\0\1\3\1\0\6\3\1\360\22\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\361\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\362\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\20\3\1\363\10\3\30\0"+ - "\13\3\1\0\1\3\1\0\10\3\1\364\20\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\365\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\21\3\1\366\7\3\30\0"+ - "\13\3\1\0\1\3\1\0\7\3\1\367\21\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\370\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\6\3\1\371\22\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\372\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\373\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\2\3\1\374\26\3\30\0"+ - "\13\3\1\0\1\3\1\0\17\3\1\375\11\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\376\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\6\3\1\377\22\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\u0100\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\5\3\1\u0101\23\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\u0102\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\22\3\1\u0103\6\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u0104\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\7\3\1\u0105\21\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0106\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\u0107\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u0108\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\u0109\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\24\3\1\u010a\4\3\30\0"+ - "\13\3\1\0\1\3\1\0\20\3\1\u010b\10\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u010c\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\10\3\1\u010d\20\3\30\0"+ - "\13\3\1\0\1\3\1\0\16\3\1\u010e\12\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\u010f\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\5\3\1\u0110\23\3\30\0"+ - "\13\3\1\0\1\3\1\0\14\3\1\u0111\14\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\u0112\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\3\3\1\u0113\25\3\30\0"+ - "\13\3\1\0\1\3\1\0\6\3\1\u0114\22\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\u0115\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0116\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u0117\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u0118\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0119\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u011a\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\7\3\1\u011b\21\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\u011c\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u011d\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\25\3\1\u011e\3\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\u011f\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0120\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\13\3\1\u0121\15\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0122\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\11\3\1\u0123\17\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0124\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0125\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u0126\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\20\3\1\u0127\10\3\30\0"+ - "\13\3\1\0\1\3\1\0\4\3\1\u0128\24\3\30\0"+ - "\13\3\1\0\1\3\1\0\14\3\1\u0129\14\3\30\0"+ - "\13\3\1\0\1\3\1\0\1\3\1\u012a\27\3\30\0"+ - "\13\3\1\0\1\3\1\0\21\3\1\u012b\7\3\30\0"+ - "\13\3\1\0\1\3\1\0\30\3\1\u012c\30\0\13\3"+ - "\1\0\1\3\1\0\5\3\1\u012d\23\3\30\0\13\3"+ - "\1\0\1\3\1\0\10\3\1\u012e\20\3\30\0\13\3"+ - "\1\0\1\3\1\0\4\3\1\u012f\24\3\30\0\13\3"+ - "\1\0\1\3\1\0\21\3\1\u0130\7\3\27\0"; + "\2\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11"+ + "\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21"+ + "\1\22\1\23\1\24\1\25\1\26\1\27\10\4\1\30"+ + "\1\31\1\32\1\4\1\33\1\34\1\35\1\36\1\37"+ + "\1\40\1\41\1\4\1\42\1\4\1\43\1\4\1\44"+ + "\1\4\1\45\1\46\1\47\1\50\1\4\1\51\1\52"+ + "\3\4\1\53\1\54\1\55\1\56\122\0\1\57\53\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\31\4\27\0\1\60\60\0\1\61\15\0\1\62\76\0"+ + "\1\63\64\0\1\64\11\0\1\65\66\0\1\66\7\0"+ + "\1\67\1\70\66\0\1\71\1\0\2\72\102\0\1\73"+ + "\67\0\1\72\1\0\2\20\10\0\1\74\1\75\1\76"+ + "\1\77\1\100\1\0\1\101\3\0\1\20\1\0\1\74"+ + "\1\0\1\75\1\76\1\77\4\0\1\100\12\0\1\101"+ + "\22\0\1\72\1\0\2\20\11\0\1\75\1\76\1\77"+ + "\1\100\5\0\1\20\3\0\1\75\1\76\1\77\4\0"+ + "\1\100\41\0\1\102\100\0\1\103\1\104\76\0\1\105"+ + "\76\0\1\106\53\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\2\4\1\107\16\4\1\110\7\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\16\4\1\111\1\4\1\112\6\4\1\113\1\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\1\4\1\114\6\4\1\115\2\4\1\116\2\4"+ + "\1\117\12\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\5\4\1\120\10\4\1\121\12\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\13\4\1\122\1\4\1\123\10\4\1\124\2\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\1\4\1\125\7\4\1\126\1\4\1\127\2\4"+ + "\1\130\12\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\16\4\1\131\12\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\6\4"+ + "\1\132\5\4\1\133\1\134\13\4\4\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\16\4\1\135"+ + "\12\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\1\4\1\136\3\4\1\137\15\4\1\140"+ + "\5\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\1\4\1\141\16\4\1\142\2\4\1\143"+ + "\5\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\5\4\1\144\23\4\4\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\10\4\1\145"+ + "\11\4\1\146\1\147\1\4\1\150\1\4\1\151\1\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\10\4\1\152\7\4\1\153\10\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\16\4"+ + "\1\154\12\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\10\4\1\155\20\4\27\0\1\156"+ + "\50\0\1\157\16\0\1\160\100\0\2\72\11\0\1\75"+ + "\1\76\1\77\6\0\1\72\3\0\1\75\1\76\1\77"+ + "\44\0\2\74\14\0\1\100\5\0\1\74\12\0\1\100"+ + "\32\0\1\161\1\0\1\161\2\0\2\161\11\0\1\75"+ + "\1\0\1\77\6\0\1\161\3\0\1\75\1\0\1\77"+ + "\42\0\1\162\1\0\2\163\7\0\5\163\1\100\5\0"+ + "\7\163\4\0\1\100\44\0\1\164\53\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\21\4\1\165"+ + "\7\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\21\4\1\166\7\4\4\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\16\4\1\167"+ + "\12\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\5\4\1\170\23\4\4\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\22\4\1\171"+ + "\6\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\21\4\1\172\1\173\6\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\1\4"+ + "\1\174\27\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\1\4\1\175\27\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\15\4"+ + "\1\176\13\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\6\4\1\177\22\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\23\4"+ + "\1\200\5\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\21\4\1\201\7\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\23\4"+ + "\1\202\5\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\22\4\1\203\6\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\13\4"+ + "\1\204\15\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\15\4\1\205\13\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\16\4"+ + "\1\206\12\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\20\4\1\207\10\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\22\4"+ + "\1\210\6\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\17\4\1\211\11\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\21\4"+ + "\1\212\1\213\6\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\15\4\1\214\13\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\22\4\1\215\6\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\25\4\1\216\3\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\13\4\1\217\15\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\3\4\1\220\25\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\11\4\1\221\4\4\1\222\12\4\4\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\2\4\1\223"+ + "\26\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\22\4\1\224\6\4\4\0\1\4\2\0"+ + "\1\4\12\0\2\4\7\0\10\4\3\0\16\4\1\225"+ + "\12\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\1\4\1\226\16\4\1\227\10\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\17\4\1\230\11\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\11\4\1\231\17\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\15\4\1\232\13\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\11\4\1\233\6\4\1\234"+ + "\10\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\1\4\1\235\21\4\1\236\3\4\1\237"+ + "\1\4\4\0\1\4\2\0\1\4\12\0\2\4\7\0"+ + "\10\4\3\0\11\4\1\240\1\4\1\241\15\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\11\4\1\242\17\4\22\0\2\161\11\0\1\75\1\0"+ + "\1\77\6\0\1\161\3\0\1\75\1\0\1\77\44\0"+ + "\2\243\7\0\5\243\6\0\7\243\42\0\1\243\1\0"+ + "\2\163\7\0\5\163\1\100\1\76\4\0\7\163\4\0"+ + "\1\100\3\0\1\76\15\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\22\4\1\244\6\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\5\4\1\245\23\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\13\4\1\246\15\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\1\4\1\247\27\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\5\4\1\250\23\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\5\4\1\251\23\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\3\4\1\252\25\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\20\4\1\253\10\4\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\21\4\1\254\7\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\21\4\1\255\1\256\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\1\4\1\257\27\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\2\4\1\260\26\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\261\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\14\4\1\262\14\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\263\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\21\4\1\264\7\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\1\4\1\265\27\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\1\4\1\266\27\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\16\4\1\267\12\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\13\4\1\270\2\4\1\271\12\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\22\4"+ + "\1\272\6\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\5\4\1\273\23\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\7\4"+ + "\1\274\21\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\11\4\1\275\17\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\13\4"+ + "\1\276\15\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\12\4\1\277\16\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\24\4"+ + "\1\300\4\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\22\4\1\301\6\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\13\4"+ + "\1\302\15\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\23\4\1\303\5\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\20\4"+ + "\1\304\10\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\22\4\1\305\6\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\11\4"+ + "\1\306\17\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\5\4\1\307\23\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\22\4"+ + "\1\310\6\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\3\4\1\311\25\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\21\4"+ + "\1\312\7\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\16\4\1\313\12\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\15\4"+ + "\1\314\13\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\5\4\1\315\23\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\4\4"+ + "\1\316\24\4\4\0\1\4\2\0\1\4\12\0\2\4"+ + "\7\0\10\4\3\0\1\4\1\317\27\4\4\0\1\4"+ + "\2\0\1\4\12\0\2\4\7\0\10\4\3\0\13\4"+ + "\1\320\15\4\22\0\2\243\7\0\5\243\1\0\1\76"+ + "\4\0\7\243\10\0\1\76\15\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\20\4\1\321\10\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\20\4\1\322\10\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\323\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\12\4\1\324\16\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\10\4\1\325\20\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\21\4\1\326\7\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\327\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\11\4\1\330\17\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\23\4\1\331\5\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\13\4\1\332\15\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\15\4\1\333\13\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\334\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\13\4\1\335\15\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\22\4\1\336\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\337\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\20\4\1\340\10\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\1\4\1\341\27\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\20\4\1\342\10\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\24\4\1\343\4\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\1\4\1\344\27\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\1\4\1\345\27\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\346\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\11\4\1\347\17\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\20\4\1\350\10\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\351\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\11\4\1\352\17\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\3\4\1\353\25\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\20\4\1\354\10\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\3\4\1\355\25\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\10\4\1\356\20\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\25\4\1\357\3\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\21\4\1\360\7\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\361\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\362\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\1\4\1\363\27\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\22\4\1\364\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\1\4\1\365\27\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\15\4\1\366\13\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\13\4\1\367\15\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\370\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\4\4\1\371\24\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\13\4\1\372\15\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\14\4\1\373\14\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\22\4\1\374\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\15\4\1\375\13\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\6\4\1\376\22\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\377\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\7\4\1\u0100\21\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\u0101\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\3\4\1\u0102\25\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\3\4\1\u0103\25\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\15\4\1\u0104\13\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\3\4\1\u0105\25\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\22\4\1\u0106\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\10\4\1\u0107\20\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\20\4\1\u0108\10\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\21\4\1\u0109\7\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\11\4\1\u010a\17\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\11\4\1\u010b\17\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\3\4\1\u010c\25\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\15\4\1\u010d\13\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\23\4\1\u010e\5\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\u010f\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\21\4\1\u0110\7\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\27\4\1\u0111\1\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\u0112\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\3\4\1\u0113\25\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\1\4\1\u0114\27\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\u0115\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\u0116\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\u0117\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\6\4\1\u0118\22\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\16\4\1\u0119\12\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\u011a\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\13\4\1\u011b\15\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\22\4\1\u011c\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\u011d\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\15\4\1\u011e\13\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\u011f\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\3\4\1\u0120\25\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\u0121\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\17\4\1\u0122\11\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\15\4\1\u0123\13\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\15\4\1\u0124\13\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\5\4\1\u0125\23\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\22\4\1\u0126\6\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\16\4\1\u0127\12\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\5\4\1\u0128\23\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\4\4\1\u0129\24\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\11\4\1\u012a\17\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\22\4\1\u012b\6\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\21\4\1\u012c\7\4\4\0\1\4\2\0\1\4"+ + "\12\0\2\4\7\0\10\4\3\0\6\4\1\u012d\22\4"+ + "\4\0\1\4\2\0\1\4\12\0\2\4\7\0\10\4"+ + "\3\0\30\4\1\u012e\4\0\1\4\2\0\1\4\12\0"+ + "\2\4\7\0\10\4\3\0\5\4\1\u012f\23\4\4\0"+ + "\1\4\2\0\1\4\12\0\2\4\7\0\10\4\3\0"+ + "\4\4\1\u0130\24\4\4\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[13923]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -551,14 +813,16 @@ class _JavaLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\32\1\1\11\5\1\12\11\1\1\4\11"+ - "\4\1\1\0\3\11\47\1\7\11\1\1\7\11\2\1"+ - "\1\0\1\11\56\1\1\11\1\0\215\1"; + "\1\0\1\11\4\1\2\11\2\1\1\11\6\1\1\11"+ + "\2\1\5\11\21\1\1\11\1\1\14\11\1\0\1\1"+ + "\1\11\1\1\1\11\1\1\2\11\1\1\1\11\1\1"+ + "\3\11\47\1\3\11\1\1\1\0\1\1\1\11\56\1"+ + "\1\0\215\1"; private static int [] zzUnpackAttribute() { int [] result = new int[304]; @@ -605,15 +869,27 @@ class _JavaLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -642,26 +918,22 @@ class _JavaLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -793,7 +1065,8 @@ class _JavaLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -827,7 +1100,7 @@ class _JavaLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -849,11 +1122,11 @@ class _JavaLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -876,525 +1149,525 @@ class _JavaLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return JavaTokenType.BAD_CHARACTER; - } - // fall through + } + // fall through case 105: break; - case 2: - { return JavaTokenType.IDENTIFIER; - } - // fall through - case 106: break; - case 3: - { return JavaTokenType.INTEGER_LITERAL; - } - // fall through - case 107: break; - case 4: - { return JavaTokenType.DOT; - } - // fall through - case 108: break; - case 5: - { return JavaTokenType.MINUS; - } - // fall through - case 109: break; - case 6: - { return JavaTokenType.EQ; - } - // fall through - case 110: break; - case 7: + case 2: { return JavaTokenType.EXCL; - } - // fall through - case 111: break; - case 8: - { return JavaTokenType.OR; - } - // fall through - case 112: break; - case 9: - { return JavaTokenType.PLUS; - } - // fall through - case 113: break; - case 10: - { return JavaTokenType.LT; - } - // fall through - case 114: break; - case 11: - { return JavaTokenType.GT; - } - // fall through - case 115: break; - case 12: - { return JavaTokenType.AND; - } - // fall through - case 116: break; - case 13: - { return JavaTokenType.ASTERISK; - } - // fall through - case 117: break; - case 14: - { return JavaTokenType.DIV; - } - // fall through - case 118: break; - case 15: - { return JavaTokenType.XOR; - } - // fall through - case 119: break; - case 16: + } + // fall through + case 106: break; + case 3: + { return JavaTokenType.IDENTIFIER; + } + // fall through + case 107: break; + case 4: { return JavaTokenType.PERC; - } - // fall through - case 120: break; - case 17: + } + // fall through + case 108: break; + case 5: + { return JavaTokenType.AND; + } + // fall through + case 109: break; + case 6: { return JavaTokenType.LPARENTH; - } - // fall through - case 121: break; - case 18: + } + // fall through + case 110: break; + case 7: { return JavaTokenType.RPARENTH; - } - // fall through - case 122: break; - case 19: - { return JavaTokenType.LBRACE; - } - // fall through - case 123: break; - case 20: - { return JavaTokenType.RBRACE; - } - // fall through - case 124: break; - case 21: - { return JavaTokenType.LBRACKET; - } - // fall through - case 125: break; - case 22: - { return JavaTokenType.RBRACKET; - } - // fall through - case 126: break; - case 23: - { return JavaTokenType.SEMICOLON; - } - // fall through - case 127: break; - case 24: + } + // fall through + case 111: break; + case 8: + { return JavaTokenType.ASTERISK; + } + // fall through + case 112: break; + case 9: + { return JavaTokenType.PLUS; + } + // fall through + case 113: break; + case 10: { return JavaTokenType.COMMA; - } - // fall through - case 128: break; - case 25: - { return JavaTokenType.TILDE; - } - // fall through - case 129: break; - case 26: - { return JavaTokenType.QUEST; - } - // fall through - case 130: break; - case 27: + } + // fall through + case 114: break; + case 11: + { return JavaTokenType.MINUS; + } + // fall through + case 115: break; + case 12: + { return JavaTokenType.DOT; + } + // fall through + case 116: break; + case 13: + { return JavaTokenType.DIV; + } + // fall through + case 117: break; + case 14: + { return JavaTokenType.INTEGER_LITERAL; + } + // fall through + case 118: break; + case 15: { return JavaTokenType.COLON; - } - // fall through - case 131: break; - case 28: + } + // fall through + case 119: break; + case 16: + { return JavaTokenType.SEMICOLON; + } + // fall through + case 120: break; + case 17: + { return JavaTokenType.LT; + } + // fall through + case 121: break; + case 18: + { return JavaTokenType.EQ; + } + // fall through + case 122: break; + case 19: + { return JavaTokenType.GT; + } + // fall through + case 123: break; + case 20: + { return JavaTokenType.QUEST; + } + // fall through + case 124: break; + case 21: { return JavaTokenType.AT; - } - // fall through + } + // fall through + case 125: break; + case 22: + { return JavaTokenType.LBRACKET; + } + // fall through + case 126: break; + case 23: + { return JavaTokenType.RBRACKET; + } + // fall through + case 127: break; + case 24: + { return JavaTokenType.XOR; + } + // fall through + case 128: break; + case 25: + { return JavaTokenType.LBRACE; + } + // fall through + case 129: break; + case 26: + { return JavaTokenType.OR; + } + // fall through + case 130: break; + case 27: + { return JavaTokenType.RBRACE; + } + // fall through + case 131: break; + case 28: + { return JavaTokenType.TILDE; + } + // fall through case 132: break; - case 29: - { return JavaTokenType.LONG_LITERAL; - } - // fall through - case 133: break; - case 30: - { return JavaTokenType.FLOAT_LITERAL; - } - // fall through - case 134: break; - case 31: - { return JavaTokenType.DOUBLE_LITERAL; - } - // fall through - case 135: break; - case 32: - { return JavaTokenType.MINUSMINUS; - } - // fall through - case 136: break; - case 33: - { return JavaTokenType.MINUSEQ; - } - // fall through - case 137: break; - case 34: - { return JavaTokenType.ARROW; - } - // fall through - case 138: break; - case 35: - { return JavaTokenType.IF_KEYWORD; - } - // fall through - case 139: break; - case 36: - { return JavaTokenType.DO_KEYWORD; - } - // fall through - case 140: break; - case 37: - { return JavaTokenType.EQEQ; - } - // fall through - case 141: break; - case 38: + case 29: { return JavaTokenType.NE; - } - // fall through - case 142: break; - case 39: - { return JavaTokenType.OREQ; - } - // fall through - case 143: break; - case 40: - { return JavaTokenType.OROR; - } - // fall through - case 144: break; - case 41: - { return JavaTokenType.PLUSEQ; - } - // fall through - case 145: break; - case 42: - { return JavaTokenType.PLUSPLUS; - } - // fall through - case 146: break; - case 43: - { return JavaTokenType.LE; - } - // fall through - case 147: break; - case 44: - { return JavaTokenType.LTLT; - } - // fall through - case 148: break; - case 45: - { return JavaTokenType.ANDEQ; - } - // fall through - case 149: break; - case 46: - { return JavaTokenType.ANDAND; - } - // fall through - case 150: break; - case 47: - { return JavaTokenType.ASTERISKEQ; - } - // fall through - case 151: break; - case 48: - { return JavaTokenType.DIVEQ; - } - // fall through - case 152: break; - case 49: - { return JavaTokenType.XOREQ; - } - // fall through - case 153: break; - case 50: + } + // fall through + case 133: break; + case 30: { return JavaTokenType.PERCEQ; - } - // fall through - case 154: break; - case 51: + } + // fall through + case 134: break; + case 31: + { return JavaTokenType.ANDAND; + } + // fall through + case 135: break; + case 32: + { return JavaTokenType.ANDEQ; + } + // fall through + case 136: break; + case 33: + { return JavaTokenType.ASTERISKEQ; + } + // fall through + case 137: break; + case 34: + { return JavaTokenType.PLUSPLUS; + } + // fall through + case 138: break; + case 35: + { return JavaTokenType.PLUSEQ; + } + // fall through + case 139: break; + case 36: + { return JavaTokenType.MINUSMINUS; + } + // fall through + case 140: break; + case 37: + { return JavaTokenType.MINUSEQ; + } + // fall through + case 141: break; + case 38: + { return JavaTokenType.ARROW; + } + // fall through + case 142: break; + case 39: + { return JavaTokenType.DOUBLE_LITERAL; + } + // fall through + case 143: break; + case 40: + { return JavaTokenType.DIVEQ; + } + // fall through + case 144: break; + case 41: + { return JavaTokenType.FLOAT_LITERAL; + } + // fall through + case 145: break; + case 42: + { return JavaTokenType.LONG_LITERAL; + } + // fall through + case 146: break; + case 43: { return JavaTokenType.DOUBLE_COLON; - } - // fall through + } + // fall through + case 147: break; + case 44: + { return JavaTokenType.LTLT; + } + // fall through + case 148: break; + case 45: + { return JavaTokenType.LE; + } + // fall through + case 149: break; + case 46: + { return JavaTokenType.EQEQ; + } + // fall through + case 150: break; + case 47: + { return JavaTokenType.XOREQ; + } + // fall through + case 151: break; + case 48: + { return JavaTokenType.DO_KEYWORD; + } + // fall through + case 152: break; + case 49: + { return JavaTokenType.IF_KEYWORD; + } + // fall through + case 153: break; + case 50: + { return JavaTokenType.OREQ; + } + // fall through + case 154: break; + case 51: + { return JavaTokenType.OROR; + } + // fall through case 155: break; - case 52: + case 52: { return JavaTokenType.ELLIPSIS; - } - // fall through + } + // fall through case 156: break; - case 53: - { return JavaTokenType.TRY_KEYWORD; - } - // fall through - case 157: break; - case 54: - { return JavaTokenType.FOR_KEYWORD; - } - // fall through - case 158: break; - case 55: - { return JavaTokenType.NEW_KEYWORD; - } - // fall through - case 159: break; - case 56: - { return JavaTokenType.INT_KEYWORD; - } - // fall through - case 160: break; - case 57: + case 53: { return JavaTokenType.LTLTEQ; - } - // fall through + } + // fall through + case 157: break; + case 54: + { return JavaTokenType.FOR_KEYWORD; + } + // fall through + case 158: break; + case 55: + { return JavaTokenType.INT_KEYWORD; + } + // fall through + case 159: break; + case 56: + { return JavaTokenType.NEW_KEYWORD; + } + // fall through + case 160: break; + case 57: + { return JavaTokenType.TRY_KEYWORD; + } + // fall through case 161: break; - case 58: - { return JavaTokenType.TRUE_KEYWORD; - } - // fall through - case 162: break; - case 59: - { return JavaTokenType.THIS_KEYWORD; - } - // fall through - case 163: break; - case 60: - { return JavaTokenType.ELSE_KEYWORD; - } - // fall through - case 164: break; - case 61: - { return myEnumKeyword ? JavaTokenType.ENUM_KEYWORD : JavaTokenType.IDENTIFIER; - } - // fall through - case 165: break; - case 62: - { return JavaTokenType.LONG_KEYWORD; - } - // fall through - case 166: break; - case 63: - { return JavaTokenType.NULL_KEYWORD; - } - // fall through - case 167: break; - case 64: + case 58: { return JavaTokenType.BYTE_KEYWORD; - } - // fall through - case 168: break; - case 65: + } + // fall through + case 162: break; + case 59: { return JavaTokenType.CASE_KEYWORD; - } - // fall through - case 169: break; - case 66: + } + // fall through + case 163: break; + case 60: { return JavaTokenType.CHAR_KEYWORD; - } - // fall through - case 170: break; - case 67: + } + // fall through + case 164: break; + case 61: + { return JavaTokenType.ELSE_KEYWORD; + } + // fall through + case 165: break; + case 62: + { return myEnumKeyword ? JavaTokenType.ENUM_KEYWORD : JavaTokenType.IDENTIFIER; + } + // fall through + case 166: break; + case 63: { return JavaTokenType.GOTO_KEYWORD; - } - // fall through + } + // fall through + case 167: break; + case 64: + { return JavaTokenType.LONG_KEYWORD; + } + // fall through + case 168: break; + case 65: + { return JavaTokenType.NULL_KEYWORD; + } + // fall through + case 169: break; + case 66: + { return JavaTokenType.THIS_KEYWORD; + } + // fall through + case 170: break; + case 67: + { return JavaTokenType.TRUE_KEYWORD; + } + // fall through case 171: break; - case 68: + case 68: { return JavaTokenType.VOID_KEYWORD; - } - // fall through + } + // fall through case 172: break; - case 69: - { return JavaTokenType.THROW_KEYWORD; - } - // fall through - case 173: break; - case 70: - { return JavaTokenType.FALSE_KEYWORD; - } - // fall through - case 174: break; - case 71: - { return JavaTokenType.FLOAT_KEYWORD; - } - // fall through - case 175: break; - case 72: - { return JavaTokenType.FINAL_KEYWORD; - } - // fall through - case 176: break; - case 73: - { return JavaTokenType.SUPER_KEYWORD; - } - // fall through - case 177: break; - case 74: - { return JavaTokenType.SHORT_KEYWORD; - } - // fall through - case 178: break; - case 75: + case 69: { return JavaTokenType.BREAK_KEYWORD; - } - // fall through - case 179: break; - case 76: + } + // fall through + case 173: break; + case 70: { return JavaTokenType.CATCH_KEYWORD; - } - // fall through - case 180: break; - case 77: + } + // fall through + case 174: break; + case 71: { return JavaTokenType.CLASS_KEYWORD; - } - // fall through - case 181: break; - case 78: + } + // fall through + case 175: break; + case 72: { return JavaTokenType.CONST_KEYWORD; - } - // fall through + } + // fall through + case 176: break; + case 73: + { return JavaTokenType.FALSE_KEYWORD; + } + // fall through + case 177: break; + case 74: + { return JavaTokenType.FINAL_KEYWORD; + } + // fall through + case 178: break; + case 75: + { return JavaTokenType.FLOAT_KEYWORD; + } + // fall through + case 179: break; + case 76: + { return JavaTokenType.SHORT_KEYWORD; + } + // fall through + case 180: break; + case 77: + { return JavaTokenType.SUPER_KEYWORD; + } + // fall through + case 181: break; + case 78: + { return JavaTokenType.THROW_KEYWORD; + } + // fall through case 182: break; - case 79: + case 79: { return JavaTokenType.WHILE_KEYWORD; - } - // fall through + } + // fall through case 183: break; - case 80: - { return JavaTokenType.THROWS_KEYWORD; - } - // fall through - case 184: break; - case 81: - { return JavaTokenType.RETURN_KEYWORD; - } - // fall through - case 185: break; - case 82: + case 80: { return myAssertKeyword ? JavaTokenType.ASSERT_KEYWORD : JavaTokenType.IDENTIFIER; - } - // fall through - case 186: break; - case 83: - { return JavaTokenType.STATIC_KEYWORD; - } - // fall through - case 187: break; - case 84: - { return JavaTokenType.SWITCH_KEYWORD; - } - // fall through - case 188: break; - case 85: - { return JavaTokenType.NATIVE_KEYWORD; - } - // fall through - case 189: break; - case 86: - { return JavaTokenType.IMPORT_KEYWORD; - } - // fall through - case 190: break; - case 87: + } + // fall through + case 184: break; + case 81: { return JavaTokenType.DOUBLE_KEYWORD; - } - // fall through - case 191: break; - case 88: + } + // fall through + case 185: break; + case 82: + { return JavaTokenType.IMPORT_KEYWORD; + } + // fall through + case 186: break; + case 83: + { return JavaTokenType.NATIVE_KEYWORD; + } + // fall through + case 187: break; + case 84: { return JavaTokenType.PUBLIC_KEYWORD; - } - // fall through + } + // fall through + case 188: break; + case 85: + { return JavaTokenType.RETURN_KEYWORD; + } + // fall through + case 189: break; + case 86: + { return JavaTokenType.STATIC_KEYWORD; + } + // fall through + case 190: break; + case 87: + { return JavaTokenType.SWITCH_KEYWORD; + } + // fall through + case 191: break; + case 88: + { return JavaTokenType.THROWS_KEYWORD; + } + // fall through case 192: break; - case 89: - { return JavaTokenType.EXTENDS_KEYWORD; - } - // fall through - case 193: break; - case 90: - { return JavaTokenType.FINALLY_KEYWORD; - } - // fall through - case 194: break; - case 91: + case 89: { return JavaTokenType.BOOLEAN_KEYWORD; - } - // fall through - case 195: break; - case 92: + } + // fall through + case 193: break; + case 90: { return JavaTokenType.DEFAULT_KEYWORD; - } - // fall through + } + // fall through + case 194: break; + case 91: + { return JavaTokenType.EXTENDS_KEYWORD; + } + // fall through + case 195: break; + case 92: + { return JavaTokenType.FINALLY_KEYWORD; + } + // fall through case 196: break; - case 93: - { return JavaTokenType.PRIVATE_KEYWORD; - } - // fall through - case 197: break; - case 94: + case 93: { return JavaTokenType.PACKAGE_KEYWORD; - } - // fall through + } + // fall through + case 197: break; + case 94: + { return JavaTokenType.PRIVATE_KEYWORD; + } + // fall through case 198: break; - case 95: + case 95: { return JavaTokenType.ABSTRACT_KEYWORD; - } - // fall through + } + // fall through case 199: break; - case 96: - { return JavaTokenType.STRICTFP_KEYWORD; - } - // fall through - case 200: break; - case 97: + case 96: { return JavaTokenType.CONTINUE_KEYWORD; - } - // fall through + } + // fall through + case 200: break; + case 97: + { return JavaTokenType.STRICTFP_KEYWORD; + } + // fall through case 201: break; - case 98: + case 98: { return JavaTokenType.VOLATILE_KEYWORD; - } - // fall through + } + // fall through case 202: break; - case 99: - { return JavaTokenType.TRANSIENT_KEYWORD; - } - // fall through - case 203: break; - case 100: + case 99: { return JavaTokenType.INTERFACE_KEYWORD; - } - // fall through - case 204: break; - case 101: + } + // fall through + case 203: break; + case 100: { return JavaTokenType.PROTECTED_KEYWORD; - } - // fall through + } + // fall through + case 204: break; + case 101: + { return JavaTokenType.TRANSIENT_KEYWORD; + } + // fall through case 205: break; - case 102: - { return JavaTokenType.INSTANCEOF_KEYWORD; - } - // fall through - case 206: break; - case 103: + case 102: { return JavaTokenType.IMPLEMENTS_KEYWORD; - } - // fall through + } + // fall through + case 206: break; + case 103: + { return JavaTokenType.INSTANCEOF_KEYWORD; + } + // fall through case 207: break; - case 104: + case 104: { return JavaTokenType.SYNCHRONIZED_KEYWORD; - } - // fall through + } + // fall through case 208: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/json/gen/com/intellij/json/_JsonLexer.java b/json/gen/com/intellij/json/_JsonLexer.java index 3ccab9845d9e..388811695383 100644 --- a/json/gen/com/intellij/json/_JsonLexer.java +++ b/json/gen/com/intellij/json/_JsonLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _JsonLexer.flex package com.intellij.json; @@ -10,11 +11,6 @@ import static com.intellij.psi.TokenType.WHITE_SPACE; import static com.intellij.json.JsonElementTypes.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _JsonLexer.flex - */ public class _JsonLexer implements FlexLexer { /** This character denotes the end of file */ @@ -32,128 +28,294 @@ public class _JsonLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [12, 6, 3] - * Total runtime size is 13376 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\10\u2f00\31\u1f00\1\u0100\1\u3000\1\u3100\1\u0100\1\u3200"+ + "\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900\1\u3a00"+ + "\1\u0100\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000\1\u4100"+ + "\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800\1\u4900"+ + "\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u4e00\1\u1f00\1\u4f00\1\u5000"+ + "\1\u5100\1\u5200\3\u0100\1\u5300\1\u5400\1\u5500\12\u1f00\4\u0100"+ + "\1\u5600\17\u1f00\2\u0100\1\u5700\41\u1f00\2\u0100\1\u5800\1\u5900"+ + "\2\u1f00\1\u5a00\1\u5b00\27\u0100\1\u5c00\4\u0100\1\u5d00\1\u5e00"+ + "\42\u1f00\1\u0100\1\u5f00\1\u6000\11\u1f00\1\u6100\24\u1f00\1\u6200"+ + "\1\u6300\1\u1f00\1\u6400\1\u6500\1\u6600\1\u6700\2\u1f00\1\u6800"+ + "\5\u1f00\1\u6900\1\u6a00\1\u6b00\5\u1f00\1\u6c00\1\u6d00\2\u1f00"+ + "\1\u6e00\1\u1f00\1\u6f00\14\u1f00\1\u7000\4\u1f00\246\u0100\1\u7100"+ + "\20\u0100\1\u7200\1\u7300\25\u0100\1\u7400\34\u0100\1\u7500\14\u1f00"+ + "\2\u0100\1\u7600\5\u1f00\23\u0100\1\u7700\u0aec\u1f00\1\u7800\1\u7900"+ + "\u02fe\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 2176 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+ - "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ - "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\21\1\44\1\45\1\46\1"+ - "\21\1\47\2\21\1\50\4\21\1\25\1\51\1\52\5\21\2\25\1\53\31\21\1\25\1\54\1\21"+ - "\1\55\40\21\1\56\17\21\1\57\1\60\1\61\1\62\13\21\1\63\10\21\123\25\1\64\7"+ - "\25\1\65\1\66\37\21\1\25\1\66\u0582\21\1\67\u017f\21"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3584 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\0\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\0\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\3\0\1\17\1\20\1\21\1\22\2\0\1\23\3\0\1\23\71\0\1\24\1\0\1\25\1\26\1\27\1"+ - "\30\2\26\16\0\1\31\1\32\1\33\1\34\2\0\1\35\11\0\1\36\21\0\1\35\1\37\23\0\1"+ - "\26\1\40\3\0\1\23\1\41\1\40\4\0\1\42\1\40\4\0\1\36\1\43\1\26\3\0\2\44\1\26"+ - "\1\27\1\45\1\0\1\44\11\0\1\24\14\0\1\46\1\36\1\0\1\47\1\0\1\50\1\26\1\42\7"+ - "\0\1\51\14\0\1\25\1\26\6\0\1\52\1\22\5\0\1\52\2\26\3\0\1\2\10\26\1\47\1\27"+ - "\6\26\1\53\2\0\1\23\14\0\1\54\1\0\2\40\1\55\1\50\1\56\2\0\1\47\1\57\1\60\1"+ - "\50\1\61\1\42\1\62\1\54\1\0\1\2\1\45\1\55\1\63\1\56\2\0\1\47\1\64\1\65\1\63"+ - "\1\66\1\41\1\67\1\70\1\0\1\52\1\26\1\55\1\36\1\35\2\0\1\47\1\71\1\60\1\36"+ - "\1\72\1\73\1\26\1\54\1\0\1\41\1\26\1\55\1\50\1\56\2\0\1\47\1\71\1\60\1\50"+ - "\1\66\1\70\1\62\1\54\1\0\1\41\1\26\1\74\1\75\1\76\1\77\1\100\1\75\1\0\1\24"+ - "\1\75\1\76\1\101\1\26\1\70\1\0\1\26\1\41\1\55\1\31\1\47\2\0\1\47\1\46\1\102"+ - "\1\31\1\76\1\103\1\25\1\54\1\0\2\26\1\74\1\31\1\47\2\0\1\47\1\46\1\60\1\31"+ - "\1\76\1\103\1\33\1\54\1\0\1\104\1\26\1\74\1\31\1\47\4\0\1\51\1\31\1\105\1"+ - "\42\1\26\1\54\1\0\1\26\1\37\1\74\1\0\1\23\1\37\2\0\1\35\1\106\1\23\1\107\1"+ - "\110\1\0\2\26\1\111\1\26\1\40\6\0\1\63\1\0\1\23\1\0\1\25\4\26\1\112\1\113"+ - "\1\53\1\40\1\114\1\74\1\0\1\72\1\110\1\52\1\0\1\60\4\26\1\73\2\26\1\25\1\0"+ - "\1\25\1\115\1\116\1\0\1\40\3\0\1\27\1\40\1\0\1\31\2\0\1\40\3\0\1\27\1\33\7"+ - "\26\11\0\1\25\11\0\1\52\4\0\1\36\1\21\5\0\1\117\51\0\1\76\1\23\1\76\5\0\1"+ - "\76\4\0\1\76\1\23\1\76\1\0\1\23\7\0\1\76\10\0\1\51\4\26\2\0\2\26\12\0\1\27"+ - "\1\26\1\40\114\0\1\50\2\0\1\120\2\0\1\44\11\0\1\75\1\73\1\26\1\0\1\31\1\27"+ - "\1\26\2\0\1\27\1\26\2\0\1\2\1\26\1\0\1\31\1\121\1\26\12\0\1\122\1\123\1\0"+ - "\1\25\3\26\1\123\1\0\1\25\13\0\1\26\5\0\1\44\10\0\1\52\1\26\3\0\1\27\1\0\1"+ - "\2\1\0\1\2\1\70\4\0\1\52\1\27\1\26\5\0\1\2\3\0\1\25\1\0\1\25\4\26\3\0\1\2"+ - "\7\0\1\23\3\0\1\50\1\0\1\25\1\0\1\25\1\42\13\26\11\0\1\2\1\0\1\25\1\26\1\124"+ - "\1\2\1\26\16\0\1\2\1\26\7\0\1\26\1\0\1\102\5\0\1\52\12\26\1\117\3\0\1\23\1"+ - "\26\34\0\1\23\2\26\1\53\42\0\2\52\4\0\2\52\1\0\1\125\3\0\1\52\6\0\1\31\1\110"+ - "\1\126\1\27\1\54\1\2\1\0\1\27\1\126\1\27\1\127\1\130\3\26\1\131\1\26\1\42"+ - "\1\73\1\26\1\132\1\133\1\27\1\37\1\41\1\42\2\26\1\0\1\27\3\0\1\44\2\26\1\0"+ - "\1\27\1\134\1\0\1\73\1\26\1\107\1\37\1\106\1\135\1\30\1\136\1\0\1\60\1\137"+ - "\1\140\2\26\5\0\1\73\116\26\5\0\1\23\5\0\1\23\20\0\1\27\1\124\1\2\1\26\4\0"+ - "\1\36\1\21\7\0\1\42\1\26\1\42\2\0\1\23\1\26\10\23\4\0\5\26\1\42\72\26\1\141"+ - "\3\26\1\40\1\0\1\135\1\27\1\40\11\0\1\23\1\142\1\40\12\0\1\117\1\137\4\0\1"+ - "\52\1\40\12\0\1\23\2\26\3\0\1\44\6\26\170\0\1\52\11\26\71\0\1\27\6\26\21\0"+ - "\1\27\10\26\5\0\1\52\41\0\1\27\3\0\1\2\2\26\6\0\1\53\1\36\3\0\1\42\12\0\1"+ - "\25\3\26\1\42\1\0\1\37\14\0\1\61\1\2\1\26\1\0\1\44\11\26\6\0\2\26\1\73\6\0"+ - "\1\2\1\26\10\0\1\27\1\26\1\0\1\25\3\0\1\45\5\0\1\52\4\0\1\2\1\26\3\0\1\27"+ - "\10\0\1\73\1\42\1\0\1\25\4\26\6\0\1\23\1\26\1\0\1\52\1\0\1\25\2\0\1\23\1\111"+ - "\10\0\1\44\2\26\1\123\2\0\1\143\1\26\3\144\1\26\2\23\22\26\5\0\1\145\1\0\1"+ - "\25\64\0\1\2\1\26\2\0\1\23\1\124\5\0\1\2\40\26\55\0\1\52\15\0\1\25\4\26\1"+ - "\23\1\26\1\124\1\137\1\0\1\47\1\23\1\110\1\146\15\0\1\25\3\26\1\124\54\0\1"+ - "\52\2\26\10\0\1\37\6\0\5\26\1\0\1\27\2\0\2\26\1\23\1\26\1\100\2\26\1\137\3"+ - "\26\1\41\1\31\20\0\1\50\1\132\1\26\1\0\1\25\1\40\2\0\1\63\1\40\2\0\1\44\1"+ - "\70\12\0\1\23\3\37\1\147\1\150\2\26\1\151\1\0\1\46\2\0\1\23\2\0\1\152\1\0"+ - "\1\52\1\0\1\52\4\26\17\0\1\44\10\26\6\0\1\27\20\26\1\21\20\26\3\0\1\27\6\0"+ - "\1\73\5\26\3\0\1\23\2\26\3\0\1\44\6\26\3\0\1\52\4\0\1\2\1\0\1\135\5\26\23"+ - "\0\1\52\1\0\1\25\52\26\1\52\1\47\4\0\1\36\1\153\2\0\1\52\25\26\2\0\1\52\1"+ - "\26\3\0\1\25\10\26\7\0\1\70\10\26\1\154\1\53\1\46\1\40\2\0\1\2\1\63\4\26\3"+ - "\0\1\27\20\26\6\0\1\52\1\26\2\0\1\52\1\26\2\0\1\44\21\26\11\0\1\73\66\26\10"+ - "\0\1\23\3\26\1\70\1\0\2\26\7\0\1\155\2\26\3\0\1\73\1\0\1\25\6\0\1\31\1\0\10"+ - "\26\10\0\1\27\1\26\1\0\1\25\24\26\7\0\1\26\1\0\1\25\46\26\55\0\1\23\22\26"+ - "\14\0\1\44\63\26\5\0\1\23\72\26\7\0\1\73\130\26\10\0\1\27\1\26\5\0\1\23\1"+ - "\26\1\42\2\0\14\26\1\25\153\26\1\137\1\102\2\0\1\51\1\2\3\26\1\32\22\26\1"+ - "\147\67\26\12\0\1\31\10\0\1\31\1\156\1\157\1\0\1\160\1\46\7\0\1\36\1\51\2"+ - "\31\3\0\1\161\1\110\1\37\1\47\51\0\1\52\3\0\1\47\2\0\1\117\3\0\1\117\2\0\1"+ - "\31\3\0\1\31\2\0\1\23\3\0\1\23\3\0\1\47\3\0\1\47\2\0\1\117\1\54\6\0\1\46\3"+ - "\0\1\112\1\40\1\117\1\162\1\107\1\163\1\112\1\125\1\112\2\117\1\67\1\0\1\35"+ - "\1\0\1\2\1\55\1\35\1\0\1\2\50\26\32\0\1\23\5\26\106\0\1\27\1\26\33\0\1\52"+ - "\74\26\1\41\3\26\14\0\20\26\36\0\2\26"); - /* The ZZ_CMAP_A table has 928 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\30\1\3\1\2\2\1\1\2\6\30\4\0\1\3\1\30\1\7\1\0\1\30\2\0\1\11\2\30\1\6\1"+ - "\17\1\35\1\12\1\15\1\4\1\13\11\14\1\36\1\0\3\30\1\0\5\30\1\16\3\30\1\20\4"+ - "\30\1\26\4\30\1\33\1\10\1\34\2\30\1\0\1\27\3\30\1\41\1\22\2\30\1\23\2\30\1"+ - "\42\1\30\1\21\3\30\1\37\1\43\1\24\1\40\3\30\1\25\1\30\1\31\1\0\1\32\7\30\1"+ - "\5\2\30\1\3\1\0\4\30\4\0\1\30\2\0\1\30\7\0\1\30\4\0\1\30\5\0\7\30\1\0\2\30"+ - "\4\0\4\30\16\0\5\30\7\0\1\30\1\0\1\30\1\0\5\30\1\0\2\30\2\0\4\30\10\0\1\30"+ - "\1\0\3\30\1\0\1\30\1\0\4\30\1\0\13\30\1\0\1\30\2\0\6\30\1\0\7\30\1\0\1\30"+ - "\15\0\1\30\1\0\2\30\1\0\2\30\1\0\4\30\10\0\1\30\4\0\4\30\1\0\4\30\1\0\13\30"+ - "\2\0\4\30\2\0\11\30\6\0\10\30\2\0\2\30\1\0\3\30\1\0\4\30\2\0\6\30\1\0\1\30"+ - "\3\0\4\30\2\0\5\30\2\0\4\30\5\0\2\30\1\0\4\30\4\0\2\30\1\0\2\30\1\0\2\30\1"+ - "\0\2\30\2\0\1\30\1\0\3\30\2\0\3\30\3\0\4\30\1\0\1\30\7\0\3\30\1\0\2\30\1\0"+ - "\5\30\1\0\3\30\2\0\1\30\11\0\2\30\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0"+ - "\1\30\1\0\2\30\3\0\2\30\3\0\1\30\6\0\3\30\3\0\3\30\5\0\2\30\2\0\2\30\5\0\1"+ - "\30\1\0\5\30\1\0\4\30\1\0\1\30\4\0\1\30\4\0\6\30\1\0\1\30\3\0\2\30\5\0\2\30"+ - "\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\3\0\3\30\1\0\1\30\1\0\1\30\5\0\1\30\1"+ - "\0\1\30\1\0\1\30\4\0\5\30\1\0\4\30\1\3\10\30\1\0\2\30\4\0\4\30\3\0\1\30\3"+ - "\0\3\30\5\0\5\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\1\30\2\0\3\30\1\0\2\30\13"+ - "\3\5\30\2\1\5\30\1\3\4\0\1\30\12\0\1\3\1\0\1\30\3\0\3\30\1\0\5\30\2\0\1\30"+ - "\1\0\4\30\1\0\1\30\5\0\5\30\4\0\1\30\1\0\1\3\4\0\3\30\1\0\2\30\2\0\3\30\2"+ - "\0\5\30\2\0\6\30\1\0\3\30\1\0\2\30\2\0\2\30\1\0\2\30\1\0\2\30\2\0\3\30\3\0"+ - "\2\30\3\0\2\30\2\0\3\30\4\0\3\30\1\0\2\30\1\0\2\30\3\0\1\30\2\0\5\30\1\0\2"+ - "\30\1\0\3\30\2\0\1\30\4\0\1\30\2\0\2\30\2\0\4\30\1\0\4\30\1\0\1\30\1\0\5\30"+ - "\1\0\4\30\2\0\1\30\1\0\1\30\5\0\1\30\1\0\1\30\1\0\3\30"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\2\3\1\2\16\0\4\4\1\1"+ + "\1\0\1\5\1\4\1\0\2\4\1\6\2\0\1\7"+ + "\1\10\1\11\1\12\1\13\1\14\1\15\11\16\1\17"+ + "\1\4\3\0\1\4\5\0\1\20\3\0\1\21\4\0"+ + "\1\22\14\0\1\23\1\24\1\25\2\0\1\4\1\26"+ + "\3\0\1\27\1\30\2\0\1\31\2\0\1\32\1\0"+ + "\1\33\3\0\1\34\1\35\1\36\1\37\3\0\1\40"+ + "\1\0\1\41\1\4\1\42\7\0\1\43\32\0\1\1"+ + "\1\4\4\0\4\4\1\0\2\4\1\0\7\4\1\0"+ + "\4\4\1\0\5\4\27\0\1\4\37\0\1\4\u01ca\0"+ + "\4\4\14\0\16\4\5\0\7\4\1\0\1\4\1\0"+ + "\21\4\165\0\1\4\2\0\2\4\4\0\1\4\1\0"+ + "\6\4\1\0\1\4\3\0\1\4\1\0\1\4\24\0"+ + "\1\4\123\0\1\4\213\0\1\4\5\0\2\4\246\0"+ + "\1\4\46\0\2\4\1\0\6\4\51\0\6\4\1\0"+ + "\1\4\55\0\1\4\1\0\1\4\2\0\1\4\2\0"+ + "\1\4\1\0\10\4\33\0\4\4\4\0\15\4\6\0"+ + "\5\4\1\0\4\4\13\0\1\4\1\0\3\4\112\0"+ + "\4\4\146\0\1\4\11\0\1\4\12\0\1\4\23\0"+ + "\2\4\1\0\17\4\74\0\2\4\145\0\16\4\66\0"+ + "\4\4\1\0\2\4\61\0\22\4\34\0\4\4\13\0"+ + "\65\4\25\0\1\4\22\0\13\4\221\0\2\4\12\0"+ + "\1\4\23\0\1\4\10\0\2\4\2\0\2\4\26\0"+ + "\1\4\7\0\1\4\1\0\3\4\4\0\2\4\11\0"+ + "\2\4\2\0\2\4\4\0\10\4\1\0\4\4\2\0"+ + "\1\4\5\0\2\4\16\0\7\4\2\0\1\4\1\0"+ + "\2\4\3\0\1\4\6\0\4\4\2\0\2\4\26\0"+ + "\1\4\7\0\1\4\2\0\1\4\2\0\1\4\2\0"+ + "\2\4\1\0\1\4\5\0\4\4\2\0\2\4\3\0"+ + "\3\4\1\0\7\4\4\0\1\4\1\0\7\4\20\0"+ + "\13\4\3\0\1\4\11\0\1\4\3\0\1\4\26\0"+ + "\1\4\7\0\1\4\2\0\1\4\5\0\2\4\12\0"+ + "\1\4\3\0\1\4\3\0\2\4\1\0\17\4\4\0"+ + "\2\4\12\0\1\4\1\0\7\4\7\0\1\4\3\0"+ + "\1\4\10\0\2\4\2\0\2\4\26\0\1\4\7\0"+ + "\1\4\2\0\1\4\5\0\2\4\11\0\2\4\2\0"+ + "\2\4\3\0\7\4\3\0\4\4\2\0\1\4\5\0"+ + "\2\4\12\0\1\4\1\0\20\4\2\0\1\4\6\0"+ + "\3\4\3\0\1\4\4\0\3\4\2\0\1\4\1\0"+ + "\1\4\2\0\3\4\2\0\3\4\3\0\3\4\14\0"+ + "\4\4\5\0\3\4\3\0\1\4\4\0\2\4\1\0"+ + "\6\4\1\0\16\4\12\0\11\4\1\0\6\4\15\0"+ + "\1\4\3\0\1\4\27\0\1\4\20\0\3\4\10\0"+ + "\1\4\3\0\1\4\4\0\7\4\2\0\1\4\3\0"+ + "\5\4\4\0\2\4\12\0\20\4\4\0\1\4\10\0"+ + "\1\4\3\0\1\4\27\0\1\4\12\0\1\4\5\0"+ + "\2\4\11\0\1\4\3\0\1\4\4\0\7\4\2\0"+ + "\7\4\1\0\1\4\4\0\2\4\12\0\1\4\2\0"+ + "\15\4\15\0\1\4\3\0\1\4\63\0\1\4\3\0"+ + "\1\4\5\0\5\4\4\0\7\4\5\0\2\4\12\0"+ + "\12\4\6\0\1\4\3\0\1\4\22\0\3\4\30\0"+ + "\1\4\11\0\1\4\1\0\2\4\7\0\3\4\1\0"+ + "\4\4\6\0\1\4\1\0\1\4\10\0\6\4\12\0"+ + "\2\4\2\0\15\4\72\0\4\4\20\0\1\4\12\0"+ + "\47\4\2\0\1\4\1\0\1\4\5\0\1\4\30\0"+ + "\1\4\1\0\1\4\27\0\2\4\5\0\1\4\1\0"+ + "\1\4\6\0\2\4\12\0\2\4\4\0\40\4\1\0"+ + "\27\4\2\0\6\4\12\0\13\4\1\0\1\4\1\0"+ + "\1\4\1\0\4\4\12\0\1\4\44\0\4\4\24\0"+ + "\1\4\22\0\1\4\44\0\11\4\1\0\71\4\112\0"+ + "\6\4\116\0\2\4\46\0\1\4\1\0\5\4\1\0"+ + "\2\4\53\0\1\4\115\0\1\4\4\0\2\4\7\0"+ + "\1\4\1\0\1\4\4\0\2\4\51\0\1\4\4\0"+ + "\2\4\41\0\1\4\4\0\2\4\7\0\1\4\1\0"+ + "\1\4\4\0\2\4\17\0\1\4\71\0\1\4\4\0"+ + "\2\4\103\0\2\4\3\0\40\4\20\0\20\4\126\0"+ + "\2\4\6\0\3\4\u016c\0\2\4\21\0\1\1\32\0"+ + "\5\4\113\0\3\4\13\0\7\4\15\0\1\4\7\0"+ + "\13\4\25\0\13\4\24\0\14\4\15\0\1\4\3\0"+ + "\1\4\2\0\14\4\124\0\3\4\1\0\3\4\3\0"+ + "\2\4\12\0\41\4\4\0\1\4\12\0\6\4\131\0"+ + "\7\4\53\0\5\4\106\0\12\4\37\0\1\4\14\0"+ + "\4\4\14\0\12\4\50\0\2\4\5\0\13\4\54\0"+ + "\4\4\32\0\6\4\12\0\46\4\34\0\4\4\77\0"+ + "\1\4\35\0\2\4\13\0\6\4\12\0\15\4\1\0"+ + "\10\4\16\0\1\4\2\0\77\4\114\0\4\4\12\0"+ + "\21\4\11\0\14\4\164\0\14\4\70\0\10\4\12\0"+ + "\3\4\61\0\2\4\11\0\7\4\53\0\2\4\3\0"+ + "\20\4\3\0\1\4\47\0\5\4\372\0\1\4\33\0"+ + "\2\4\6\0\2\4\46\0\2\4\6\0\2\4\10\0"+ + "\1\4\1\0\1\4\1\0\1\4\1\0\1\4\37\0"+ + "\2\4\65\0\1\4\7\0\1\4\1\0\3\4\3\0"+ + "\1\4\7\0\3\4\4\0\2\4\6\0\4\4\15\0"+ + "\5\4\3\0\1\4\7\0\3\4\13\1\5\0\30\4"+ + "\2\3\5\0\1\1\17\4\2\0\23\4\1\0\12\4"+ + "\1\1\5\0\1\4\12\0\1\4\1\0\15\4\1\0"+ + "\20\4\15\0\3\4\40\0\20\4\15\0\4\4\1\0"+ + "\3\4\14\0\21\4\1\0\4\4\1\0\2\4\12\0"+ + "\1\4\1\0\3\4\5\0\6\4\1\0\1\4\1\0"+ + "\1\4\1\0\1\4\4\0\1\4\13\0\2\4\4\0"+ + "\5\4\5\0\4\4\1\0\21\4\51\0\u0177\4\57\0"+ + "\1\4\57\0\1\4\205\0\6\4\11\0\14\4\46\0"+ + "\1\4\1\0\5\4\1\0\2\4\70\0\7\4\1\0"+ + "\17\4\30\0\11\4\7\0\1\4\7\0\1\4\7\0"+ + "\1\4\7\0\1\4\7\0\1\4\7\0\1\4\7\0"+ + "\1\4\7\0\1\4\40\0\57\4\1\0\320\4\1\1"+ + "\4\4\3\0\31\4\17\0\1\4\5\0\2\4\5\0"+ + "\4\4\126\0\2\4\2\0\2\4\3\0\1\4\132\0"+ + "\1\4\4\0\5\4\53\0\1\4\136\0\21\4\40\0"+ + "\60\4\320\0\100\4\375\0\3\4\215\0\103\4\56\0"+ + "\2\4\15\0\3\4\34\0\24\4\60\0\4\4\12\0"+ + "\1\4\163\0\45\4\11\0\2\4\147\0\2\4\65\0"+ + "\2\4\11\0\52\4\63\0\4\4\1\0\13\4\1\0"+ + "\7\4\64\0\14\4\106\0\12\4\12\0\6\4\30\0"+ + "\3\4\1\0\1\4\61\0\2\4\44\0\14\4\35\0"+ + "\3\4\101\0\16\4\13\0\6\4\37\0\1\4\67\0"+ + "\11\4\16\0\2\4\12\0\6\4\27\0\3\4\111\0"+ + "\30\4\3\0\2\4\20\0\2\4\5\0\12\4\6\0"+ + "\2\4\6\0\2\4\6\0\11\4\7\0\1\4\7\0"+ + "\1\4\53\0\1\4\16\0\6\4\173\0\1\4\2\0"+ + "\2\4\12\0\6\4\244\0\14\4\27\0\4\4\61\0"+ + "\4\4\u0100\44\156\0\2\4\152\0\46\4\7\0\14\4"+ + "\5\0\5\4\14\0\1\4\15\0\1\4\5\0\1\4"+ + "\1\0\1\4\2\0\1\4\2\0\1\4\154\0\41\4"+ + "\153\0\22\4\100\0\2\4\66\0\50\4\15\0\3\4"+ + "\20\0\20\4\20\0\3\4\2\0\30\4\3\0\31\4"+ + "\1\0\6\4\5\0\1\4\207\0\2\4\1\0\4\4"+ + "\1\0\13\4\12\0\7\4\32\0\4\4\1\0\1\4"+ + "\32\0\13\4\131\0\3\4\6\0\2\4\6\0\2\4"+ + "\6\0\2\4\3\0\3\4\2\0\3\4\2\0\22\4"+ + "\3\0\4\4\14\0\1\4\32\0\1\4\23\0\1\4"+ + "\2\0\1\4\17\0\2\4\16\0\42\4\173\0\105\4"+ + "\65\0\210\4\1\0\202\4\35\0\3\4\61\0\17\4"+ + "\1\0\37\4\40\0\15\4\36\0\5\4\53\0\5\4"+ + "\36\0\2\4\44\0\4\4\10\0\1\4\5\0\52\4"+ + "\236\0\2\4\12\0\6\4\44\0\4\4\44\0\4\4"+ + "\50\0\10\4\64\0\234\4\67\0\11\4\26\0\12\4"+ + "\10\0\230\4\6\0\2\4\1\0\1\4\54\0\1\4"+ + "\2\0\3\4\1\0\2\4\27\0\12\4\27\0\11\4"+ + "\37\0\101\4\23\0\1\4\2\0\12\4\26\0\12\4"+ + "\32\0\106\4\70\0\6\4\2\0\100\4\4\0\1\4"+ + "\2\0\5\4\10\0\1\4\3\0\1\4\35\0\2\4"+ + "\3\0\4\4\1\0\40\4\35\0\3\4\35\0\43\4"+ + "\10\0\1\4\36\0\31\4\66\0\12\4\26\0\12\4"+ + "\23\0\15\4\22\0\156\4\111\0\67\4\63\0\15\4"+ + "\63\0\15\4\50\0\10\4\12\0\u0146\4\52\0\1\4"+ + "\2\0\3\4\2\0\116\4\35\0\12\4\1\0\10\4"+ + "\41\0\137\4\25\0\33\4\27\0\11\4\107\0\37\4"+ + "\12\0\17\4\74\0\2\4\1\0\17\4\1\0\2\4"+ + "\31\0\7\4\12\0\6\4\65\0\1\4\12\0\4\4"+ + "\4\0\10\4\44\0\2\4\1\0\11\4\105\0\4\4"+ + "\4\0\1\4\15\0\1\4\1\0\43\4\22\0\1\4"+ + "\45\0\6\4\1\0\101\4\7\0\1\4\1\0\1\4"+ + "\4\0\1\4\17\0\1\4\12\0\7\4\73\0\5\4"+ + "\12\0\6\4\4\0\1\4\10\0\2\4\2\0\2\4"+ + "\26\0\1\4\7\0\1\4\2\0\1\4\5\0\1\4"+ + "\12\0\2\4\2\0\2\4\3\0\2\4\1\0\6\4"+ + "\1\0\5\4\7\0\2\4\7\0\3\4\5\0\213\4"+ + "\113\0\5\4\12\0\4\4\4\0\36\4\106\0\1\4"+ + "\1\0\10\4\12\0\246\4\66\0\2\4\11\0\27\4"+ + "\6\0\42\4\101\0\3\4\1\0\13\4\12\0\46\4"+ + "\71\0\7\4\12\0\66\4\33\0\2\4\17\0\4\4"+ + "\12\0\306\4\73\0\145\4\112\0\25\4\10\0\2\4"+ + "\1\0\2\4\10\0\1\4\2\0\1\4\36\0\1\4"+ + "\2\0\2\4\11\0\14\4\12\0\106\4\10\0\2\4"+ + "\56\0\2\4\10\0\1\4\2\0\33\4\77\0\10\4"+ + "\1\0\10\4\112\0\3\4\1\0\42\4\71\0\7\4"+ + "\11\0\1\4\55\0\1\4\11\0\17\4\12\0\30\4"+ + "\36\0\2\4\26\0\1\4\16\0\111\4\7\0\1\4"+ + "\2\0\1\4\54\0\3\4\1\0\1\4\2\0\1\4"+ + "\11\0\10\4\12\0\6\4\6\0\1\4\2\0\1\4"+ + "\45\0\1\4\2\0\1\4\6\0\7\4\12\0\u0136\4"+ + "\27\0\271\4\1\0\54\4\4\0\37\4\232\0\146\4"+ + "\157\0\21\4\304\0\274\4\57\0\1\4\11\0\307\4"+ + "\107\0\271\4\71\0\7\4\37\0\1\4\12\0\146\4"+ + "\36\0\2\4\5\0\13\4\67\0\11\4\4\0\14\4"+ + "\12\0\11\4\25\0\5\4\23\0\260\4\100\0\200\4"+ + "\113\0\4\4\71\0\7\4\21\0\100\4\2\0\1\4"+ + "\2\0\13\4\2\0\16\4\370\0\10\4\326\0\52\4"+ + "\11\0\367\4\37\0\61\4\3\0\21\4\4\0\10\4"+ + "\u018c\0\4\4\153\0\5\4\15\0\3\4\11\0\7\4"+ + "\12\0\3\4\2\0\1\4\4\0\301\4\5\0\3\4"+ + "\26\0\2\4\7\0\36\4\4\0\224\4\3\0\273\4"+ + "\125\0\1\4\107\0\1\4\2\0\2\4\1\0\2\4"+ + "\2\0\2\4\4\0\1\4\14\0\1\4\1\0\1\4"+ + "\7\0\1\4\101\0\1\4\4\0\2\4\10\0\1\4"+ + "\7\0\1\4\34\0\1\4\4\0\1\4\5\0\1\4"+ + "\1\0\3\4\7\0\1\4\u0154\0\2\4\31\0\1\4"+ + "\31\0\1\4\37\0\1\4\31\0\1\4\37\0\1\4"+ + "\31\0\1\4\37\0\1\4\31\0\1\4\37\0\1\4"+ + "\31\0\1\4\10\0\2\4\151\0\4\4\62\0\10\4"+ + "\1\0\16\4\1\0\26\4\5\0\1\4\17\0\120\4"+ + "\7\0\1\4\21\0\2\4\7\0\1\4\2\0\1\4"+ + "\5\0\325\4\55\0\3\4\16\0\2\4\12\0\4\4"+ + "\1\0\u0171\4\72\0\5\4\306\0\13\4\7\0\51\4"+ + "\114\0\4\4\12\0\u0156\4\1\0\117\4\4\0\1\4"+ + "\33\0\1\4\2\0\1\4\1\0\2\4\1\0\1\4"+ + "\12\0\1\4\4\0\1\4\1\0\1\4\1\0\6\4"+ + "\1\0\4\4\1\0\1\4\1\0\1\4\1\0\1\4"+ + "\3\0\1\4\2\0\1\4\1\0\2\4\1\0\1\4"+ + "\1\0\1\4\1\0\1\4\1\0\1\4\1\0\1\4"+ + "\2\0\1\4\1\0\2\4\4\0\1\4\7\0\1\4"+ + "\4\0\1\4\4\0\1\4\1\0\1\4\12\0\1\4"+ + "\21\0\5\4\3\0\1\4\5\0\1\4\21\0\u0134\4"+ + "\12\0\6\4\336\0\42\4\65\0\13\4\336\0\2\4"+ + "\u0182\0\16\4\u0131\0\37\4\36\0\342\4\113\0\266\4"+ + "\1\0\36\4\140\0\200\4\360\0\20\4"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[31232]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\3\1\2\1\3\1\4\1\5"+ - "\1\3\2\6\5\3\1\7\1\10\1\11\1\12\1\13"+ - "\1\14\1\15\1\16\1\4\2\0\1\5\1\3\1\6"+ - "\5\3\1\15\1\16\1\3\3\6\4\3\1\6\1\0"+ - "\1\16\1\3\1\17\1\3\1\20\1\16\1\3\1\21"+ - "\2\3"; + "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\2\1"+ + "\2\7\1\10\2\1\1\11\1\12\3\1\1\13\1\14"+ + "\1\2\1\4\1\0\1\5\1\0\1\15\1\16\1\1"+ + "\1\7\5\1\1\15\1\1\1\16\3\7\1\1\1\7"+ + "\3\1\1\0\1\15\2\1\1\17\1\20\1\15\1\1"+ + "\1\21\2\1"; private static int [] zzUnpackAction() { int [] result = new int[57]; @@ -175,20 +337,20 @@ public class _JsonLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\44\0\110\0\154\0\220\0\264\0\330\0\374"+ - "\0\u0120\0\u0144\0\u0168\0\u018c\0\u01b0\0\u01d4\0\u01f8\0\u021c"+ - "\0\44\0\44\0\44\0\44\0\44\0\44\0\u0240\0\u0264"+ - "\0\44\0\u0288\0\u02ac\0\44\0\u02d0\0\u02f4\0\u0318\0\u033c"+ - "\0\u0360\0\u0384\0\u03a8\0\u03cc\0\u03f0\0\u0414\0\u0438\0\u045c"+ - "\0\u0480\0\u04a4\0\u04c8\0\u04ec\0\u0510\0\264\0\u0534\0\264"+ - "\0\u0558\0\264\0\u057c\0\264\0\44\0\u05a0\0\264\0\u05c4"+ - "\0\u05e8"; + "\0\0\0\45\0\112\0\157\0\224\0\271\0\157\0\336"+ + "\0\u0103\0\u0128\0\u014d\0\157\0\u0172\0\u0197\0\157\0\157"+ + "\0\u01bc\0\u01e1\0\u0206\0\157\0\157\0\u022b\0\157\0\u0250"+ + "\0\157\0\u0275\0\u029a\0\u02bf\0\u02e4\0\u0309\0\u032e\0\u0353"+ + "\0\u0378\0\u039d\0\u03c2\0\u03e7\0\u040c\0\u0431\0\u0456\0\u047b"+ + "\0\u04a0\0\u04c5\0\45\0\u04ea\0\u050f\0\u0534\0\u0559\0\45"+ + "\0\u057e\0\u05a3\0\45\0\45\0\157\0\u05c8\0\45\0\u05ed"+ + "\0\u0612"; private static int [] zzUnpackRowMap() { int [] result = new int[57]; @@ -200,7 +362,7 @@ public class _JsonLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -208,70 +370,86 @@ public class _JsonLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\3\3\1\4\1\5\1\6\1\7\1\2\1\10"+ - "\1\11\1\12\1\13\2\6\1\2\1\14\1\15\1\16"+ - "\1\6\1\17\1\6\1\20\2\6\1\21\1\22\1\23"+ - "\1\24\1\25\1\26\5\6\45\0\3\3\1\0\1\3"+ - "\42\0\1\27\1\6\1\30\3\0\5\6\1\0\11\6"+ - "\6\0\5\6\1\0\3\3\1\6\1\5\1\6\3\0"+ - "\5\6\1\0\11\6\6\0\5\6\4\0\3\6\3\0"+ - "\5\6\1\0\11\6\6\0\5\6\2\7\1\0\4\7"+ - "\1\31\1\32\33\7\2\10\1\0\5\10\1\33\1\34"+ - "\32\10\4\0\3\6\3\0\1\6\1\12\1\13\2\6"+ - "\1\0\1\14\10\6\6\0\5\6\4\0\3\6\3\0"+ - "\3\6\1\35\1\36\1\0\11\6\6\0\2\6\1\36"+ - "\2\6\4\0\3\6\3\0\1\6\2\13\1\35\1\36"+ - "\1\0\11\6\6\0\2\6\1\36\2\6\4\0\3\6"+ - "\3\0\5\6\1\0\1\6\1\37\7\6\6\0\5\6"+ - "\4\0\3\6\3\0\5\6\1\0\11\6\6\0\1\6"+ - "\1\40\3\6\4\0\3\6\3\0\5\6\1\0\7\6"+ - "\1\41\1\6\6\0\5\6\4\0\3\6\3\0\5\6"+ - "\1\0\11\6\6\0\1\42\4\6\4\0\3\6\3\0"+ - "\5\6\1\0\7\6\1\43\1\6\6\0\5\6\1\44"+ - "\2\0\1\44\1\27\1\6\1\27\3\44\5\27\1\44"+ - "\11\27\6\44\5\27\4\45\2\30\1\46\3\45\5\30"+ - "\1\45\11\30\6\45\5\30\2\7\1\0\41\7\2\10"+ - "\1\0\41\10\4\0\3\6\3\0\1\6\2\47\2\6"+ - "\1\0\11\6\6\0\5\6\4\0\3\6\3\0\3\50"+ - "\2\6\1\51\11\6\6\0\5\6\4\0\3\6\3\0"+ - "\5\6\1\0\2\6\1\52\6\6\6\0\5\6\4\0"+ - "\3\6\3\0\5\6\1\0\11\6\6\0\3\6\1\53"+ - "\1\6\4\0\3\6\3\0\5\6\1\0\11\6\6\0"+ - "\3\6\1\54\1\6\4\0\3\6\3\0\5\6\1\0"+ - "\11\6\6\0\1\6\1\55\3\6\4\0\3\6\3\0"+ - "\5\6\1\0\6\6\1\56\2\6\6\0\5\6\1\44"+ - "\2\0\2\44\1\0\36\44\6\45\1\57\41\45\1\60"+ - "\1\30\1\46\3\45\5\30\1\45\11\30\6\45\5\30"+ - "\4\0\3\6\3\0\1\6\2\47\1\6\1\36\1\0"+ - "\11\6\6\0\2\6\1\36\2\6\4\0\3\6\3\0"+ - "\1\6\2\50\2\6\1\0\11\6\6\0\5\6\13\0"+ - "\2\51\33\0\3\6\3\0\5\6\1\0\3\6\1\61"+ - "\5\6\6\0\5\6\4\0\3\6\3\0\5\6\1\0"+ - "\11\6\6\0\3\6\1\62\1\6\4\0\3\6\3\0"+ - "\5\6\1\0\11\6\6\0\4\6\1\63\4\0\3\6"+ - "\3\0\5\6\1\0\11\6\6\0\2\6\1\64\2\6"+ - "\4\45\1\65\1\45\1\57\35\45\4\0\3\6\3\0"+ - "\5\6\1\0\1\6\1\66\7\6\6\0\5\6\4\0"+ - "\3\6\3\0\5\6\1\0\11\6\6\0\2\6\1\67"+ - "\2\6\4\0\3\6\3\0\5\6\1\0\3\6\1\70"+ - "\5\6\6\0\5\6\4\0\3\6\3\0\5\6\1\0"+ - "\4\6\1\71\4\6\6\0\5\6\4\0\3\6\3\0"+ - "\5\6\1\0\5\6\1\56\3\6\6\0\5\6"; + "\1\2\3\3\1\4\1\5\1\6\1\2\1\4\1\7"+ + "\1\10\1\2\1\11\1\12\1\13\1\14\1\2\1\15"+ + "\1\16\1\17\1\4\1\20\2\2\1\21\2\2\1\22"+ + "\2\2\1\23\2\2\1\24\1\25\1\26\1\4\1\2"+ + "\6\0\1\2\2\0\5\2\1\0\3\2\3\0\13\2"+ + "\2\0\1\2\2\0\3\3\37\0\1\3\46\0\2\5"+ + "\1\0\2\5\1\27\16\5\1\30\20\5\2\6\1\0"+ + "\3\6\1\31\15\6\1\32\20\6\1\2\6\0\1\2"+ + "\2\0\3\2\1\12\1\13\1\0\1\2\1\15\1\2"+ + "\3\0\13\2\2\0\1\2\1\0\1\2\6\0\1\33"+ + "\2\0\2\2\1\34\2\2\1\0\3\2\3\0\13\2"+ + "\2\0\1\2\1\0\1\2\6\0\1\2\2\0\1\2"+ + "\1\35\3\2\1\0\1\36\2\2\3\0\1\2\1\36"+ + "\11\2\2\0\1\2\1\0\1\2\6\0\1\2\2\0"+ + "\1\2\1\35\1\2\2\13\1\0\1\36\2\2\3\0"+ + "\1\2\1\36\11\2\2\0\1\2\1\0\1\2\6\0"+ + "\1\2\2\0\5\2\1\0\3\2\3\0\5\2\1\37"+ + "\5\2\2\0\1\2\1\0\1\2\6\0\1\2\2\0"+ + "\5\2\1\0\3\2\3\0\1\40\12\2\2\0\1\2"+ + "\1\0\1\2\6\0\1\2\2\0\5\2\1\0\3\2"+ + "\3\0\1\41\12\2\2\0\1\2\1\0\1\2\6\0"+ + "\1\2\2\0\5\2\1\0\3\2\3\0\11\2\1\42"+ + "\1\2\2\0\1\2\1\0\1\2\6\0\1\2\2\0"+ + "\5\2\1\0\3\2\3\0\6\2\1\43\4\2\2\0"+ + "\1\2\1\0\1\2\3\3\3\0\1\2\2\0\5\2"+ + "\1\0\3\2\3\0\13\2\2\0\1\26\1\0\2\5"+ + "\1\0\42\5\2\6\1\0\42\6\1\33\6\44\1\45"+ + "\2\44\5\33\1\44\3\33\3\44\13\33\2\44\1\33"+ + "\1\44\1\34\1\46\2\0\3\46\1\34\2\46\5\34"+ + "\1\46\3\34\3\46\13\34\2\46\1\2\1\0\1\2"+ + "\6\0\1\2\2\0\3\2\2\47\1\0\3\2\3\0"+ + "\13\2\2\0\1\2\1\0\1\2\6\0\1\2\1\50"+ + "\1\0\1\51\2\2\2\51\1\0\3\2\3\0\13\2"+ + "\2\0\1\2\1\0\1\2\6\0\1\2\2\0\5\2"+ + "\1\0\3\2\3\0\2\2\1\52\10\2\2\0\1\2"+ + "\1\0\1\2\6\0\1\2\2\0\5\2\1\0\2\2"+ + "\1\53\3\0\13\2\2\0\1\2\1\0\1\2\6\0"+ + "\1\2\2\0\5\2\1\0\3\2\3\0\4\2\1\54"+ + "\6\2\2\0\1\2\1\0\1\2\6\0\1\2\2\0"+ + "\5\2\1\0\3\2\3\0\4\2\1\55\6\2\2\0"+ + "\1\2\1\0\1\2\6\0\1\2\2\0\5\2\1\0"+ + "\3\2\3\0\11\2\1\56\1\2\2\0\1\2\1\0"+ + "\7\44\1\57\35\44\1\33\6\44\1\45\2\44\2\33"+ + "\1\60\2\33\1\44\3\33\3\44\13\33\2\44\1\33"+ + "\1\44\2\46\2\0\37\46\2\0\1\2\6\0\1\2"+ + "\2\0\3\2\2\47\1\0\1\36\2\2\3\0\1\2"+ + "\1\36\11\2\2\0\1\2\16\0\2\50\26\0\1\2"+ + "\6\0\1\2\2\0\3\2\2\51\1\0\3\2\3\0"+ + "\13\2\2\0\1\2\1\0\1\2\6\0\1\2\2\0"+ + "\5\2\1\0\3\2\3\0\3\2\1\61\7\2\2\0"+ + "\1\2\1\0\1\2\6\0\1\2\2\0\5\2\1\0"+ + "\3\2\3\0\7\2\1\62\3\2\2\0\1\2\1\0"+ + "\1\2\6\0\1\2\2\0\5\2\1\0\3\2\3\0"+ + "\4\2\1\63\6\2\2\0\1\2\1\0\1\2\6\0"+ + "\1\2\2\0\5\2\1\0\3\2\3\0\1\2\1\64"+ + "\11\2\2\0\1\2\1\0\7\44\1\57\4\44\1\65"+ + "\30\44\1\2\6\0\1\2\2\0\5\2\1\0\3\2"+ + "\3\0\5\2\1\66\5\2\2\0\1\2\1\0\1\2"+ + "\6\0\1\2\2\0\5\2\1\0\3\2\3\0\1\2"+ + "\1\67\11\2\2\0\1\2\1\0\1\2\6\0\1\2"+ + "\2\0\5\2\1\0\3\2\3\0\3\2\1\70\7\2"+ + "\2\0\1\2\1\0\1\2\6\0\1\2\2\0\5\2"+ + "\1\0\3\2\3\0\10\2\1\71\2\2\2\0\1\2"+ + "\1\0\1\2\6\0\1\2\2\0\5\2\1\0\3\2"+ + "\3\0\12\2\1\53\2\0\1\2\1\0"; - private static int [] zzUnpackTrans() { - int [] result = new int[1548]; + private static int [] zzUnpacktrans() { + int [] result = new int[1591]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -298,13 +476,14 @@ public class _JsonLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\16\1\6\11\2\1\1\11\2\0\1\11"+ - "\22\1\1\0\5\1\1\11\4\1"; + "\1\0\2\1\1\11\2\1\1\11\4\1\1\11\2\1"+ + "\2\11\3\1\2\11\1\1\1\11\1\0\1\11\1\0"+ + "\24\1\1\0\5\1\1\11\4\1"; private static int [] zzUnpackAttribute() { int [] result = new int[57]; @@ -351,15 +530,27 @@ public class _JsonLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -378,26 +569,22 @@ public class _JsonLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -529,7 +716,8 @@ public class _JsonLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -563,7 +751,7 @@ public class _JsonLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -585,11 +773,11 @@ public class _JsonLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -612,90 +800,90 @@ public class _JsonLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: - { return BAD_CHARACTER; - } - // fall through - case 18: break; - case 2: - { return WHITE_SPACE; - } - // fall through - case 19: break; - case 3: + case 1: { return IDENTIFIER; - } - // fall through + } + // fall through + case 18: break; + case 2: + { return WHITE_SPACE; + } + // fall through + case 19: break; + case 3: + { return BAD_CHARACTER; + } + // fall through case 20: break; - case 4: + case 4: { return DOUBLE_QUOTED_STRING; - } - // fall through + } + // fall through case 21: break; - case 5: + case 5: { return SINGLE_QUOTED_STRING; - } - // fall through + } + // fall through case 22: break; - case 6: - { return NUMBER; - } - // fall through - case 23: break; - case 7: - { return L_CURLY; - } - // fall through - case 24: break; - case 8: - { return R_CURLY; - } - // fall through - case 25: break; - case 9: - { return L_BRACKET; - } - // fall through - case 26: break; - case 10: - { return R_BRACKET; - } - // fall through - case 27: break; - case 11: + case 6: { return COMMA; - } - // fall through - case 28: break; - case 12: + } + // fall through + case 23: break; + case 7: + { return NUMBER; + } + // fall through + case 24: break; + case 8: { return COLON; - } - // fall through + } + // fall through + case 25: break; + case 9: + { return L_BRACKET; + } + // fall through + case 26: break; + case 10: + { return R_BRACKET; + } + // fall through + case 27: break; + case 11: + { return L_CURLY; + } + // fall through + case 28: break; + case 12: + { return R_CURLY; + } + // fall through case 29: break; - case 13: - { return LINE_COMMENT; - } - // fall through - case 30: break; - case 14: + case 13: { return BLOCK_COMMENT; - } - // fall through + } + // fall through + case 30: break; + case 14: + { return LINE_COMMENT; + } + // fall through case 31: break; - case 15: + case 15: { return NULL; - } - // fall through + } + // fall through case 32: break; - case 16: + case 16: { return TRUE; - } - // fall through + } + // fall through case 33: break; - case 17: + case 17: { return FALSE; - } - // fall through + } + // fall through case 34: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/json/gen/com/intellij/json/json5/_Json5Lexer.java b/json/gen/com/intellij/json/json5/_Json5Lexer.java index c02f1ab302c6..45bc2e85db61 100644 --- a/json/gen/com/intellij/json/json5/_Json5Lexer.java +++ b/json/gen/com/intellij/json/json5/_Json5Lexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _Json5Lexer.flex package com.intellij.json.json5; @@ -10,11 +11,6 @@ import static com.intellij.psi.TokenType.WHITE_SPACE; import static com.intellij.json.JsonElementTypes.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _Json5Lexer.flex - */ public class _Json5Lexer implements FlexLexer { /** This character denotes the end of file */ @@ -32,130 +28,297 @@ public class _Json5Lexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [12, 6, 3] - * Total runtime size is 13376 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\10\u2f00\31\u1f00\1\u0100\1\u3000\1\u3100\1\u0100\1\u3200"+ + "\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900\1\u3a00"+ + "\1\u0100\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000\1\u4100"+ + "\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800\1\u4900"+ + "\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u4e00\1\u1f00\1\u4f00\1\u5000"+ + "\1\u5100\1\u5200\3\u0100\1\u5300\1\u5400\1\u5500\12\u1f00\4\u0100"+ + "\1\u5600\17\u1f00\2\u0100\1\u5700\41\u1f00\2\u0100\1\u5800\1\u5900"+ + "\2\u1f00\1\u5a00\1\u5b00\27\u0100\1\u5c00\4\u0100\1\u5d00\1\u5e00"+ + "\42\u1f00\1\u0100\1\u5f00\1\u6000\11\u1f00\1\u6100\24\u1f00\1\u6200"+ + "\1\u6300\1\u1f00\1\u6400\1\u6500\1\u6600\1\u6700\2\u1f00\1\u6800"+ + "\5\u1f00\1\u6900\1\u6a00\1\u6b00\5\u1f00\1\u6c00\1\u6d00\2\u1f00"+ + "\1\u6e00\1\u1f00\1\u6f00\14\u1f00\1\u7000\4\u1f00\246\u0100\1\u7100"+ + "\20\u0100\1\u7200\1\u7300\25\u0100\1\u7400\34\u0100\1\u7500\14\u1f00"+ + "\2\u0100\1\u7600\5\u1f00\23\u0100\1\u7700\u0aec\u1f00\1\u7800\1\u7900"+ + "\u02fe\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 2176 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+ - "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ - "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\21\1\44\1\45\1\46\1"+ - "\21\1\47\2\21\1\50\4\21\1\25\1\51\1\52\5\21\2\25\1\53\31\21\1\25\1\54\1\21"+ - "\1\55\40\21\1\56\17\21\1\57\1\60\1\61\1\62\13\21\1\63\10\21\123\25\1\64\7"+ - "\25\1\65\1\66\37\21\1\25\1\66\u0582\21\1\67\u017f\21"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3584 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\0\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\0\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\3\0\1\17\1\20\1\21\1\22\2\0\1\23\3\0\1\23\71\0\1\24\1\0\1\25\1\26\1\27\1"+ - "\30\2\26\16\0\1\31\1\32\1\33\1\34\2\0\1\35\11\0\1\36\21\0\1\35\1\37\23\0\1"+ - "\26\1\40\3\0\1\23\1\41\1\40\4\0\1\42\1\40\4\0\1\36\1\43\1\26\3\0\2\44\1\26"+ - "\1\27\1\45\1\0\1\44\11\0\1\24\14\0\1\46\1\36\1\0\1\47\1\0\1\50\1\26\1\42\7"+ - "\0\1\51\14\0\1\25\1\26\6\0\1\52\1\22\5\0\1\52\2\26\3\0\1\2\10\26\1\47\1\27"+ - "\6\26\1\53\2\0\1\23\14\0\1\54\1\0\2\40\1\55\1\50\1\56\2\0\1\47\1\57\1\60\1"+ - "\50\1\61\1\42\1\62\1\54\1\0\1\2\1\45\1\55\1\63\1\56\2\0\1\47\1\64\1\65\1\63"+ - "\1\66\1\41\1\67\1\70\1\0\1\52\1\26\1\55\1\36\1\35\2\0\1\47\1\71\1\60\1\36"+ - "\1\72\1\73\1\26\1\54\1\0\1\41\1\26\1\55\1\50\1\56\2\0\1\47\1\71\1\60\1\50"+ - "\1\66\1\70\1\62\1\54\1\0\1\41\1\26\1\74\1\75\1\76\1\77\1\100\1\75\1\0\1\24"+ - "\1\75\1\76\1\101\1\26\1\70\1\0\1\26\1\41\1\55\1\31\1\47\2\0\1\47\1\46\1\102"+ - "\1\31\1\76\1\103\1\25\1\54\1\0\2\26\1\74\1\31\1\47\2\0\1\47\1\46\1\60\1\31"+ - "\1\76\1\103\1\33\1\54\1\0\1\104\1\26\1\74\1\31\1\47\4\0\1\51\1\31\1\105\1"+ - "\42\1\26\1\54\1\0\1\26\1\37\1\74\1\0\1\23\1\37\2\0\1\35\1\106\1\23\1\107\1"+ - "\110\1\0\2\26\1\111\1\26\1\40\6\0\1\63\1\0\1\23\1\0\1\25\4\26\1\112\1\113"+ - "\1\53\1\40\1\114\1\74\1\0\1\72\1\110\1\52\1\0\1\60\4\26\1\73\2\26\1\25\1\0"+ - "\1\25\1\115\1\116\1\0\1\40\3\0\1\27\1\40\1\0\1\31\2\0\1\40\3\0\1\27\1\33\7"+ - "\26\11\0\1\25\11\0\1\52\4\0\1\36\1\21\5\0\1\117\51\0\1\76\1\23\1\76\5\0\1"+ - "\76\4\0\1\76\1\23\1\76\1\0\1\23\7\0\1\76\10\0\1\51\4\26\2\0\2\26\12\0\1\27"+ - "\1\26\1\40\114\0\1\50\2\0\1\120\2\0\1\44\11\0\1\75\1\73\1\26\1\0\1\31\1\27"+ - "\1\26\2\0\1\27\1\26\2\0\1\2\1\26\1\0\1\31\1\121\1\26\12\0\1\122\1\123\1\0"+ - "\1\25\3\26\1\123\1\0\1\25\13\0\1\26\5\0\1\44\10\0\1\52\1\26\3\0\1\27\1\0\1"+ - "\2\1\0\1\2\1\70\4\0\1\52\1\27\1\26\5\0\1\2\3\0\1\25\1\0\1\25\4\26\3\0\1\2"+ - "\7\0\1\23\3\0\1\50\1\0\1\25\1\0\1\25\1\42\13\26\11\0\1\2\1\0\1\25\1\26\1\124"+ - "\1\2\1\26\16\0\1\2\1\26\7\0\1\26\1\0\1\102\5\0\1\52\12\26\1\117\3\0\1\23\1"+ - "\26\34\0\1\23\2\26\1\53\42\0\2\52\4\0\2\52\1\0\1\125\3\0\1\52\6\0\1\31\1\110"+ - "\1\126\1\27\1\54\1\2\1\0\1\27\1\126\1\27\1\127\1\130\3\26\1\131\1\26\1\42"+ - "\1\73\1\26\1\132\1\133\1\27\1\37\1\41\1\42\2\26\1\0\1\27\3\0\1\44\2\26\1\0"+ - "\1\27\1\134\1\0\1\73\1\26\1\107\1\37\1\106\1\135\1\30\1\136\1\0\1\60\1\137"+ - "\1\140\2\26\5\0\1\73\116\26\5\0\1\23\5\0\1\23\20\0\1\27\1\124\1\2\1\26\4\0"+ - "\1\36\1\21\7\0\1\42\1\26\1\42\2\0\1\23\1\26\10\23\4\0\5\26\1\42\72\26\1\141"+ - "\3\26\1\40\1\0\1\135\1\27\1\40\11\0\1\23\1\142\1\40\12\0\1\117\1\137\4\0\1"+ - "\52\1\40\12\0\1\23\2\26\3\0\1\44\6\26\170\0\1\52\11\26\71\0\1\27\6\26\21\0"+ - "\1\27\10\26\5\0\1\52\41\0\1\27\3\0\1\2\2\26\6\0\1\53\1\36\3\0\1\42\12\0\1"+ - "\25\3\26\1\42\1\0\1\37\14\0\1\61\1\2\1\26\1\0\1\44\11\26\6\0\2\26\1\73\6\0"+ - "\1\2\1\26\10\0\1\27\1\26\1\0\1\25\3\0\1\45\5\0\1\52\4\0\1\2\1\26\3\0\1\27"+ - "\10\0\1\73\1\42\1\0\1\25\4\26\6\0\1\23\1\26\1\0\1\52\1\0\1\25\2\0\1\23\1\111"+ - "\10\0\1\44\2\26\1\123\2\0\1\143\1\26\3\144\1\26\2\23\22\26\5\0\1\145\1\0\1"+ - "\25\64\0\1\2\1\26\2\0\1\23\1\124\5\0\1\2\40\26\55\0\1\52\15\0\1\25\4\26\1"+ - "\23\1\26\1\124\1\137\1\0\1\47\1\23\1\110\1\146\15\0\1\25\3\26\1\124\54\0\1"+ - "\52\2\26\10\0\1\37\6\0\5\26\1\0\1\27\2\0\2\26\1\23\1\26\1\100\2\26\1\137\3"+ - "\26\1\41\1\31\20\0\1\50\1\132\1\26\1\0\1\25\1\40\2\0\1\63\1\40\2\0\1\44\1"+ - "\70\12\0\1\23\3\37\1\147\1\150\2\26\1\151\1\0\1\46\2\0\1\23\2\0\1\152\1\0"+ - "\1\52\1\0\1\52\4\26\17\0\1\44\10\26\6\0\1\27\20\26\1\21\20\26\3\0\1\27\6\0"+ - "\1\73\5\26\3\0\1\23\2\26\3\0\1\44\6\26\3\0\1\52\4\0\1\2\1\0\1\135\5\26\23"+ - "\0\1\52\1\0\1\25\52\26\1\52\1\47\4\0\1\36\1\153\2\0\1\52\25\26\2\0\1\52\1"+ - "\26\3\0\1\25\10\26\7\0\1\70\10\26\1\154\1\53\1\46\1\40\2\0\1\2\1\63\4\26\3"+ - "\0\1\27\20\26\6\0\1\52\1\26\2\0\1\52\1\26\2\0\1\44\21\26\11\0\1\73\66\26\10"+ - "\0\1\23\3\26\1\70\1\0\2\26\7\0\1\155\2\26\3\0\1\73\1\0\1\25\6\0\1\31\1\0\10"+ - "\26\10\0\1\27\1\26\1\0\1\25\24\26\7\0\1\26\1\0\1\25\46\26\55\0\1\23\22\26"+ - "\14\0\1\44\63\26\5\0\1\23\72\26\7\0\1\73\130\26\10\0\1\27\1\26\5\0\1\23\1"+ - "\26\1\42\2\0\14\26\1\25\153\26\1\137\1\102\2\0\1\51\1\2\3\26\1\32\22\26\1"+ - "\147\67\26\12\0\1\31\10\0\1\31\1\156\1\157\1\0\1\160\1\46\7\0\1\36\1\51\2"+ - "\31\3\0\1\161\1\110\1\37\1\47\51\0\1\52\3\0\1\47\2\0\1\117\3\0\1\117\2\0\1"+ - "\31\3\0\1\31\2\0\1\23\3\0\1\23\3\0\1\47\3\0\1\47\2\0\1\117\1\54\6\0\1\46\3"+ - "\0\1\112\1\40\1\117\1\162\1\107\1\163\1\112\1\125\1\112\2\117\1\67\1\0\1\35"+ - "\1\0\1\2\1\55\1\35\1\0\1\2\50\26\32\0\1\23\5\26\106\0\1\27\1\26\33\0\1\52"+ - "\74\26\1\41\3\26\14\0\20\26\36\0\2\26"); - /* The ZZ_CMAP_A table has 928 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\35\1\12\1\2\1\1\1\7\1\3\6\35\4\0\1\12\1\35\1\13\1\0\1\35\2\0\1\15\2\35"+ - "\1\11\1\16\1\42\1\17\1\22\1\6\1\20\11\21\1\43\1\0\3\35\1\0\1\35\4\5\1\23\1"+ - "\5\2\35\1\25\4\35\1\33\1\35\1\24\2\35\1\40\1\14\1\41\2\35\1\0\1\34\3\5\1\46"+ - "\1\27\2\35\1\30\2\35\1\47\1\35\1\26\3\35\1\44\1\50\1\31\1\45\2\35\1\24\1\32"+ - "\1\35\1\36\1\0\1\37\7\35\1\10\2\35\1\4\1\0\4\35\4\0\1\35\2\0\1\35\7\0\1\35"+ - "\4\0\1\35\5\0\7\35\1\0\2\35\4\0\4\35\16\0\5\35\7\0\1\35\1\0\1\35\1\0\5\35"+ - "\1\0\2\35\2\0\4\35\10\0\1\35\1\0\3\35\1\0\1\35\1\0\4\35\1\0\13\35\1\0\1\35"+ - "\2\0\6\35\1\0\7\35\1\0\1\35\15\0\1\35\1\0\2\35\1\0\2\35\1\0\4\35\10\0\1\35"+ - "\4\0\4\35\1\0\4\35\1\0\13\35\2\0\4\35\2\0\11\35\6\0\10\35\2\0\2\35\1\0\3\35"+ - "\1\0\4\35\2\0\6\35\1\0\1\35\3\0\4\35\2\0\5\35\2\0\4\35\5\0\2\35\1\0\4\35\4"+ - "\0\2\35\1\0\2\35\1\0\2\35\1\0\2\35\2\0\1\35\1\0\3\35\2\0\3\35\3\0\4\35\1\0"+ - "\1\35\7\0\3\35\1\0\2\35\1\0\5\35\1\0\3\35\2\0\1\35\11\0\2\35\1\0\6\35\3\0"+ - "\3\35\1\0\4\35\3\0\2\35\1\0\1\35\1\0\2\35\3\0\2\35\3\0\1\35\6\0\3\35\3\0\3"+ - "\35\5\0\2\35\2\0\2\35\5\0\1\35\1\0\5\35\1\0\4\35\1\0\1\35\4\0\1\35\4\0\6\35"+ - "\1\0\1\35\3\0\2\35\5\0\2\35\1\0\1\35\2\0\2\35\1\0\1\35\2\0\1\35\3\0\3\35\1"+ - "\0\1\35\1\0\1\35\5\0\1\35\1\0\1\35\1\0\1\35\4\0\5\35\1\0\4\35\1\4\10\35\1"+ - "\0\2\35\4\0\4\35\3\0\1\35\3\0\3\35\5\0\5\35\1\0\1\35\1\0\1\35\1\0\1\35\1\0"+ - "\1\35\2\0\3\35\1\0\2\35\13\4\5\35\2\1\5\35\1\4\4\0\1\35\12\0\1\4\1\0\1\35"+ - "\3\0\3\35\1\0\5\35\2\0\1\35\1\0\4\35\1\0\1\35\5\0\5\35\4\0\1\35\1\0\1\4\4"+ - "\0\3\35\1\0\2\35\2\0\3\35\2\0\5\35\2\0\6\35\1\0\3\35\1\0\2\35\2\0\2\35\1\0"+ - "\2\35\1\0\2\35\2\0\3\35\3\0\2\35\3\0\2\35\2\0\3\35\4\0\3\35\1\0\2\35\1\0\2"+ - "\35\3\0\1\35\2\0\5\35\1\0\2\35\1\0\3\35\2\0\1\35\4\0\1\35\2\0\2\35\2\0\4\35"+ - "\1\0\4\35\1\0\1\35\1\0\5\35\1\0\4\35\2\0\1\35\1\0\1\35\5\0\1\35\1\0\1\35\1"+ - "\0\3\35"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\4\1\5\16\0\4\6"+ + "\1\1\1\0\1\7\1\6\1\0\2\6\1\10\2\0"+ + "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\11\20"+ + "\1\21\1\6\3\0\1\6\1\0\4\22\1\23\1\22"+ + "\2\0\1\24\4\0\1\25\11\0\1\26\2\0\1\27"+ + "\1\30\1\31\2\0\1\6\1\32\3\22\1\33\1\34"+ + "\2\0\1\35\2\0\1\36\1\0\1\37\3\0\1\40"+ + "\1\41\1\42\1\43\2\0\1\26\1\44\1\0\1\45"+ + "\1\6\1\46\7\0\1\47\32\0\1\50\1\6\4\0"+ + "\4\6\1\0\2\6\1\0\7\6\1\0\4\6\1\0"+ + "\5\6\27\0\1\6\37\0\1\6\u01ca\0\4\6\14\0"+ + "\16\6\5\0\7\6\1\0\1\6\1\0\21\6\165\0"+ + "\1\6\2\0\2\6\4\0\1\6\1\0\6\6\1\0"+ + "\1\6\3\0\1\6\1\0\1\6\24\0\1\6\123\0"+ + "\1\6\213\0\1\6\5\0\2\6\246\0\1\6\46\0"+ + "\2\6\1\0\6\6\51\0\6\6\1\0\1\6\55\0"+ + "\1\6\1\0\1\6\2\0\1\6\2\0\1\6\1\0"+ + "\10\6\33\0\4\6\4\0\15\6\6\0\5\6\1\0"+ + "\4\6\13\0\1\6\1\0\3\6\112\0\4\6\146\0"+ + "\1\6\11\0\1\6\12\0\1\6\23\0\2\6\1\0"+ + "\17\6\74\0\2\6\145\0\16\6\66\0\4\6\1\0"+ + "\2\6\61\0\22\6\34\0\4\6\13\0\65\6\25\0"+ + "\1\6\22\0\13\6\221\0\2\6\12\0\1\6\23\0"+ + "\1\6\10\0\2\6\2\0\2\6\26\0\1\6\7\0"+ + "\1\6\1\0\3\6\4\0\2\6\11\0\2\6\2\0"+ + "\2\6\4\0\10\6\1\0\4\6\2\0\1\6\5\0"+ + "\2\6\16\0\7\6\2\0\1\6\1\0\2\6\3\0"+ + "\1\6\6\0\4\6\2\0\2\6\26\0\1\6\7\0"+ + "\1\6\2\0\1\6\2\0\1\6\2\0\2\6\1\0"+ + "\1\6\5\0\4\6\2\0\2\6\3\0\3\6\1\0"+ + "\7\6\4\0\1\6\1\0\7\6\20\0\13\6\3\0"+ + "\1\6\11\0\1\6\3\0\1\6\26\0\1\6\7\0"+ + "\1\6\2\0\1\6\5\0\2\6\12\0\1\6\3\0"+ + "\1\6\3\0\2\6\1\0\17\6\4\0\2\6\12\0"+ + "\1\6\1\0\7\6\7\0\1\6\3\0\1\6\10\0"+ + "\2\6\2\0\2\6\26\0\1\6\7\0\1\6\2\0"+ + "\1\6\5\0\2\6\11\0\2\6\2\0\2\6\3\0"+ + "\7\6\3\0\4\6\2\0\1\6\5\0\2\6\12\0"+ + "\1\6\1\0\20\6\2\0\1\6\6\0\3\6\3\0"+ + "\1\6\4\0\3\6\2\0\1\6\1\0\1\6\2\0"+ + "\3\6\2\0\3\6\3\0\3\6\14\0\4\6\5\0"+ + "\3\6\3\0\1\6\4\0\2\6\1\0\6\6\1\0"+ + "\16\6\12\0\11\6\1\0\6\6\15\0\1\6\3\0"+ + "\1\6\27\0\1\6\20\0\3\6\10\0\1\6\3\0"+ + "\1\6\4\0\7\6\2\0\1\6\3\0\5\6\4\0"+ + "\2\6\12\0\20\6\4\0\1\6\10\0\1\6\3\0"+ + "\1\6\27\0\1\6\12\0\1\6\5\0\2\6\11\0"+ + "\1\6\3\0\1\6\4\0\7\6\2\0\7\6\1\0"+ + "\1\6\4\0\2\6\12\0\1\6\2\0\15\6\15\0"+ + "\1\6\3\0\1\6\63\0\1\6\3\0\1\6\5\0"+ + "\5\6\4\0\7\6\5\0\2\6\12\0\12\6\6\0"+ + "\1\6\3\0\1\6\22\0\3\6\30\0\1\6\11\0"+ + "\1\6\1\0\2\6\7\0\3\6\1\0\4\6\6\0"+ + "\1\6\1\0\1\6\10\0\6\6\12\0\2\6\2\0"+ + "\15\6\72\0\4\6\20\0\1\6\12\0\47\6\2\0"+ + "\1\6\1\0\1\6\5\0\1\6\30\0\1\6\1\0"+ + "\1\6\27\0\2\6\5\0\1\6\1\0\1\6\6\0"+ + "\2\6\12\0\2\6\4\0\40\6\1\0\27\6\2\0"+ + "\6\6\12\0\13\6\1\0\1\6\1\0\1\6\1\0"+ + "\4\6\12\0\1\6\44\0\4\6\24\0\1\6\22\0"+ + "\1\6\44\0\11\6\1\0\71\6\112\0\6\6\116\0"+ + "\2\6\46\0\1\6\1\0\5\6\1\0\2\6\53\0"+ + "\1\6\115\0\1\6\4\0\2\6\7\0\1\6\1\0"+ + "\1\6\4\0\2\6\51\0\1\6\4\0\2\6\41\0"+ + "\1\6\4\0\2\6\7\0\1\6\1\0\1\6\4\0"+ + "\2\6\17\0\1\6\71\0\1\6\4\0\2\6\103\0"+ + "\2\6\3\0\40\6\20\0\20\6\126\0\2\6\6\0"+ + "\3\6\u016c\0\2\6\21\0\1\50\32\0\5\6\113\0"+ + "\3\6\13\0\7\6\15\0\1\6\7\0\13\6\25\0"+ + "\13\6\24\0\14\6\15\0\1\6\3\0\1\6\2\0"+ + "\14\6\124\0\3\6\1\0\3\6\3\0\2\6\12\0"+ + "\41\6\4\0\1\6\12\0\6\6\131\0\7\6\53\0"+ + "\5\6\106\0\12\6\37\0\1\6\14\0\4\6\14\0"+ + "\12\6\50\0\2\6\5\0\13\6\54\0\4\6\32\0"+ + "\6\6\12\0\46\6\34\0\4\6\77\0\1\6\35\0"+ + "\2\6\13\0\6\6\12\0\15\6\1\0\10\6\16\0"+ + "\1\6\2\0\77\6\114\0\4\6\12\0\21\6\11\0"+ + "\14\6\164\0\14\6\70\0\10\6\12\0\3\6\61\0"+ + "\2\6\11\0\7\6\53\0\2\6\3\0\20\6\3\0"+ + "\1\6\47\0\5\6\372\0\1\6\33\0\2\6\6\0"+ + "\2\6\46\0\2\6\6\0\2\6\10\0\1\6\1\0"+ + "\1\6\1\0\1\6\1\0\1\6\37\0\2\6\65\0"+ + "\1\6\7\0\1\6\1\0\3\6\3\0\1\6\7\0"+ + "\3\6\4\0\2\6\6\0\4\6\15\0\5\6\3\0"+ + "\1\6\7\0\3\6\13\50\5\0\30\6\2\3\5\0"+ + "\1\50\17\6\2\0\23\6\1\0\12\6\1\50\5\0"+ + "\1\6\12\0\1\6\1\0\15\6\1\0\20\6\15\0"+ + "\3\6\40\0\20\6\15\0\4\6\1\0\3\6\14\0"+ + "\21\6\1\0\4\6\1\0\2\6\12\0\1\6\1\0"+ + "\3\6\5\0\6\6\1\0\1\6\1\0\1\6\1\0"+ + "\1\6\4\0\1\6\13\0\2\6\4\0\5\6\5\0"+ + "\4\6\1\0\21\6\51\0\u0177\6\57\0\1\6\57\0"+ + "\1\6\205\0\6\6\11\0\14\6\46\0\1\6\1\0"+ + "\5\6\1\0\2\6\70\0\7\6\1\0\17\6\30\0"+ + "\11\6\7\0\1\6\7\0\1\6\7\0\1\6\7\0"+ + "\1\6\7\0\1\6\7\0\1\6\7\0\1\6\7\0"+ + "\1\6\40\0\57\6\1\0\320\6\1\50\4\6\3\0"+ + "\31\6\17\0\1\6\5\0\2\6\5\0\4\6\126\0"+ + "\2\6\2\0\2\6\3\0\1\6\132\0\1\6\4\0"+ + "\5\6\53\0\1\6\136\0\21\6\40\0\60\6\320\0"+ + "\100\6\375\0\3\6\215\0\103\6\56\0\2\6\15\0"+ + "\3\6\34\0\24\6\60\0\4\6\12\0\1\6\163\0"+ + "\45\6\11\0\2\6\147\0\2\6\65\0\2\6\11\0"+ + "\52\6\63\0\4\6\1\0\13\6\1\0\7\6\64\0"+ + "\14\6\106\0\12\6\12\0\6\6\30\0\3\6\1\0"+ + "\1\6\61\0\2\6\44\0\14\6\35\0\3\6\101\0"+ + "\16\6\13\0\6\6\37\0\1\6\67\0\11\6\16\0"+ + "\2\6\12\0\6\6\27\0\3\6\111\0\30\6\3\0"+ + "\2\6\20\0\2\6\5\0\12\6\6\0\2\6\6\0"+ + "\2\6\6\0\11\6\7\0\1\6\7\0\1\6\53\0"+ + "\1\6\16\0\6\6\173\0\1\6\2\0\2\6\12\0"+ + "\6\6\244\0\14\6\27\0\4\6\61\0\4\6\u0100\51"+ + "\156\0\2\6\152\0\46\6\7\0\14\6\5\0\5\6"+ + "\14\0\1\6\15\0\1\6\5\0\1\6\1\0\1\6"+ + "\2\0\1\6\2\0\1\6\154\0\41\6\153\0\22\6"+ + "\100\0\2\6\66\0\50\6\15\0\3\6\20\0\20\6"+ + "\20\0\3\6\2\0\30\6\3\0\31\6\1\0\6\6"+ + "\5\0\1\6\207\0\2\6\1\0\4\6\1\0\13\6"+ + "\12\0\7\6\32\0\4\6\1\0\1\6\32\0\13\6"+ + "\131\0\3\6\6\0\2\6\6\0\2\6\6\0\2\6"+ + "\3\0\3\6\2\0\3\6\2\0\22\6\3\0\4\6"+ + "\14\0\1\6\32\0\1\6\23\0\1\6\2\0\1\6"+ + "\17\0\2\6\16\0\42\6\173\0\105\6\65\0\210\6"+ + "\1\0\202\6\35\0\3\6\61\0\17\6\1\0\37\6"+ + "\40\0\15\6\36\0\5\6\53\0\5\6\36\0\2\6"+ + "\44\0\4\6\10\0\1\6\5\0\52\6\236\0\2\6"+ + "\12\0\6\6\44\0\4\6\44\0\4\6\50\0\10\6"+ + "\64\0\234\6\67\0\11\6\26\0\12\6\10\0\230\6"+ + "\6\0\2\6\1\0\1\6\54\0\1\6\2\0\3\6"+ + "\1\0\2\6\27\0\12\6\27\0\11\6\37\0\101\6"+ + "\23\0\1\6\2\0\12\6\26\0\12\6\32\0\106\6"+ + "\70\0\6\6\2\0\100\6\4\0\1\6\2\0\5\6"+ + "\10\0\1\6\3\0\1\6\35\0\2\6\3\0\4\6"+ + "\1\0\40\6\35\0\3\6\35\0\43\6\10\0\1\6"+ + "\36\0\31\6\66\0\12\6\26\0\12\6\23\0\15\6"+ + "\22\0\156\6\111\0\67\6\63\0\15\6\63\0\15\6"+ + "\50\0\10\6\12\0\u0146\6\52\0\1\6\2\0\3\6"+ + "\2\0\116\6\35\0\12\6\1\0\10\6\41\0\137\6"+ + "\25\0\33\6\27\0\11\6\107\0\37\6\12\0\17\6"+ + "\74\0\2\6\1\0\17\6\1\0\2\6\31\0\7\6"+ + "\12\0\6\6\65\0\1\6\12\0\4\6\4\0\10\6"+ + "\44\0\2\6\1\0\11\6\105\0\4\6\4\0\1\6"+ + "\15\0\1\6\1\0\43\6\22\0\1\6\45\0\6\6"+ + "\1\0\101\6\7\0\1\6\1\0\1\6\4\0\1\6"+ + "\17\0\1\6\12\0\7\6\73\0\5\6\12\0\6\6"+ + "\4\0\1\6\10\0\2\6\2\0\2\6\26\0\1\6"+ + "\7\0\1\6\2\0\1\6\5\0\1\6\12\0\2\6"+ + "\2\0\2\6\3\0\2\6\1\0\6\6\1\0\5\6"+ + "\7\0\2\6\7\0\3\6\5\0\213\6\113\0\5\6"+ + "\12\0\4\6\4\0\36\6\106\0\1\6\1\0\10\6"+ + "\12\0\246\6\66\0\2\6\11\0\27\6\6\0\42\6"+ + "\101\0\3\6\1\0\13\6\12\0\46\6\71\0\7\6"+ + "\12\0\66\6\33\0\2\6\17\0\4\6\12\0\306\6"+ + "\73\0\145\6\112\0\25\6\10\0\2\6\1\0\2\6"+ + "\10\0\1\6\2\0\1\6\36\0\1\6\2\0\2\6"+ + "\11\0\14\6\12\0\106\6\10\0\2\6\56\0\2\6"+ + "\10\0\1\6\2\0\33\6\77\0\10\6\1\0\10\6"+ + "\112\0\3\6\1\0\42\6\71\0\7\6\11\0\1\6"+ + "\55\0\1\6\11\0\17\6\12\0\30\6\36\0\2\6"+ + "\26\0\1\6\16\0\111\6\7\0\1\6\2\0\1\6"+ + "\54\0\3\6\1\0\1\6\2\0\1\6\11\0\10\6"+ + "\12\0\6\6\6\0\1\6\2\0\1\6\45\0\1\6"+ + "\2\0\1\6\6\0\7\6\12\0\u0136\6\27\0\271\6"+ + "\1\0\54\6\4\0\37\6\232\0\146\6\157\0\21\6"+ + "\304\0\274\6\57\0\1\6\11\0\307\6\107\0\271\6"+ + "\71\0\7\6\37\0\1\6\12\0\146\6\36\0\2\6"+ + "\5\0\13\6\67\0\11\6\4\0\14\6\12\0\11\6"+ + "\25\0\5\6\23\0\260\6\100\0\200\6\113\0\4\6"+ + "\71\0\7\6\21\0\100\6\2\0\1\6\2\0\13\6"+ + "\2\0\16\6\370\0\10\6\326\0\52\6\11\0\367\6"+ + "\37\0\61\6\3\0\21\6\4\0\10\6\u018c\0\4\6"+ + "\153\0\5\6\15\0\3\6\11\0\7\6\12\0\3\6"+ + "\2\0\1\6\4\0\301\6\5\0\3\6\26\0\2\6"+ + "\7\0\36\6\4\0\224\6\3\0\273\6\125\0\1\6"+ + "\107\0\1\6\2\0\2\6\1\0\2\6\2\0\2\6"+ + "\4\0\1\6\14\0\1\6\1\0\1\6\7\0\1\6"+ + "\101\0\1\6\4\0\2\6\10\0\1\6\7\0\1\6"+ + "\34\0\1\6\4\0\1\6\5\0\1\6\1\0\3\6"+ + "\7\0\1\6\u0154\0\2\6\31\0\1\6\31\0\1\6"+ + "\37\0\1\6\31\0\1\6\37\0\1\6\31\0\1\6"+ + "\37\0\1\6\31\0\1\6\37\0\1\6\31\0\1\6"+ + "\10\0\2\6\151\0\4\6\62\0\10\6\1\0\16\6"+ + "\1\0\26\6\5\0\1\6\17\0\120\6\7\0\1\6"+ + "\21\0\2\6\7\0\1\6\2\0\1\6\5\0\325\6"+ + "\55\0\3\6\16\0\2\6\12\0\4\6\1\0\u0171\6"+ + "\72\0\5\6\306\0\13\6\7\0\51\6\114\0\4\6"+ + "\12\0\u0156\6\1\0\117\6\4\0\1\6\33\0\1\6"+ + "\2\0\1\6\1\0\2\6\1\0\1\6\12\0\1\6"+ + "\4\0\1\6\1\0\1\6\1\0\6\6\1\0\4\6"+ + "\1\0\1\6\1\0\1\6\1\0\1\6\3\0\1\6"+ + "\2\0\1\6\1\0\2\6\1\0\1\6\1\0\1\6"+ + "\1\0\1\6\1\0\1\6\1\0\1\6\2\0\1\6"+ + "\1\0\2\6\4\0\1\6\7\0\1\6\4\0\1\6"+ + "\4\0\1\6\1\0\1\6\12\0\1\6\21\0\5\6"+ + "\3\0\1\6\5\0\1\6\21\0\u0134\6\12\0\6\6"+ + "\336\0\42\6\65\0\13\6\336\0\2\6\u0182\0\16\6"+ + "\u0131\0\37\6\36\0\342\6\113\0\266\6\1\0\36\6"+ + "\140\0\200\6\360\0\20\6"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[31232]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\1\1\2\1\3\2\4\1\3\1\5\1\6\6\1"+ - "\5\4\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+ - "\1\16\1\5\2\0\1\6\4\1\2\0\1\4\2\1"+ - "\5\4\1\15\1\16\1\4\2\5\2\6\3\0\1\1"+ - "\4\4\1\1\1\0\1\16\1\1\1\0\1\1\1\4"+ - "\1\17\1\4\1\20\1\16\1\0\1\4\1\21\1\0"+ - "\1\4\1\0\1\4\1\0"; + "\1\1\1\2\1\3\1\4\1\5\1\6\1\1\1\7"+ + "\2\1\1\2\2\1\1\10\1\1\2\2\1\11\1\12"+ + "\3\2\1\13\1\14\1\3\1\5\1\0\1\6\1\0"+ + "\4\1\2\0\1\15\1\16\1\2\2\1\5\2\2\5"+ + "\2\6\3\0\1\15\1\2\1\16\1\1\1\2\1\1"+ + "\3\2\1\1\1\0\1\1\1\0\1\15\2\2\1\17"+ + "\1\20\1\0\1\15\1\2\1\21\1\0\1\2\1\0"+ + "\1\2\1\0"; private static int [] zzUnpackAction() { int [] result = new int[79]; @@ -177,22 +340,22 @@ public class _Json5Lexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\51\0\122\0\173\0\244\0\315\0\366\0\u011f"+ - "\0\u0148\0\u0171\0\u019a\0\u01c3\0\u01ec\0\u0215\0\u023e\0\u0267"+ - "\0\u0290\0\u02b9\0\u02e2\0\51\0\51\0\51\0\51\0\51"+ - "\0\51\0\u030b\0\u0334\0\51\0\u035d\0\u0386\0\51\0\u03af"+ - "\0\u03d8\0\u0401\0\u042a\0\u0453\0\u047c\0\u04a5\0\u04ce\0\u04f7"+ - "\0\u0520\0\u0549\0\u0572\0\u059b\0\u05c4\0\u05ed\0\u0616\0\u063f"+ - "\0\u0668\0\u0691\0\u06ba\0\u06e3\0\u070c\0\u0735\0\u075e\0\u04a5"+ - "\0\u0787\0\u07b0\0\u07d9\0\u0802\0\173\0\u082b\0\173\0\u070c"+ - "\0\u0854\0\51\0\u087d\0\173\0\u08a6\0\173\0\51\0\u08cf"+ - "\0\u08f8\0\173\0\u0921\0\u094a\0\u0973\0\u099c\0\u09c5"; + "\0\0\0\52\0\124\0\176\0\250\0\322\0\374\0\176"+ + "\0\u0126\0\u0150\0\u017a\0\u01a4\0\u01ce\0\176\0\u01f8\0\u0222"+ + "\0\u024c\0\176\0\176\0\u0276\0\u02a0\0\u02ca\0\176\0\176"+ + "\0\u02f4\0\176\0\u031e\0\176\0\u0348\0\u0372\0\u039c\0\u03c6"+ + "\0\u03f0\0\u041a\0\u0444\0\u046e\0\u0498\0\u04c2\0\u04ec\0\u0516"+ + "\0\u0540\0\u056a\0\u0594\0\u05be\0\u05e8\0\u0612\0\u063c\0\u0666"+ + "\0\u0690\0\u06ba\0\u06e4\0\u070e\0\u0738\0\u0762\0\u078c\0\u04c2"+ + "\0\u07b6\0\52\0\u07e0\0\u080a\0\u0834\0\u06ba\0\u085e\0\176"+ + "\0\u0888\0\52\0\u08b2\0\u08dc\0\52\0\52\0\u0906\0\176"+ + "\0\u0930\0\52\0\u095a\0\u0984\0\u09ae\0\u09d8\0\u0a02"; private static int [] zzUnpackRowMap() { int [] result = new int[79]; @@ -204,7 +367,7 @@ public class _Json5Lexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -212,86 +375,103 @@ public class _Json5Lexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\4\3\1\4\1\5\1\3\1\6\1\4\1\3"+ - "\1\7\1\2\1\10\1\11\1\12\1\13\1\14\1\15"+ - "\1\16\1\4\1\17\1\20\1\21\1\4\1\22\1\4"+ - "\1\23\2\4\1\24\1\25\1\26\1\27\1\30\1\31"+ - "\2\4\1\16\2\4\52\0\4\3\2\0\2\3\1\0"+ - "\1\3\43\0\2\4\1\0\2\4\5\0\17\4\6\0"+ - "\5\4\5\0\1\4\1\32\1\0\1\4\1\33\5\0"+ - "\17\4\6\0\5\4\1\0\4\3\2\4\1\3\1\6"+ - "\1\4\1\3\4\0\17\4\6\0\5\4\2\7\2\0"+ - "\7\7\1\34\1\35\34\7\2\10\2\0\10\10\1\36"+ - "\1\37\33\10\20\0\1\40\1\41\1\42\1\43\1\0"+ - "\1\44\5\0\1\45\12\0\1\43\7\0\2\4\1\0"+ - "\2\4\5\0\1\4\1\13\1\14\1\15\1\16\1\4"+ - "\1\17\5\4\1\23\2\4\6\0\2\4\1\16\2\4"+ - "\5\0\2\4\1\0\2\4\5\0\1\4\3\15\1\16"+ - "\1\46\11\4\6\0\2\4\1\16\2\4\5\0\2\4"+ - "\1\0\2\4\5\0\1\4\2\14\1\15\1\16\12\4"+ - "\6\0\2\4\1\16\2\4\5\0\2\4\1\0\2\4"+ - "\5\0\1\4\2\15\1\4\1\16\12\4\6\0\2\4"+ - "\1\16\2\4\5\0\2\4\1\0\2\4\4\0\1\47"+ - "\3\50\14\4\6\0\5\4\5\0\2\4\1\0\2\4"+ - "\5\0\7\4\1\51\7\4\6\0\5\4\5\0\2\4"+ - "\1\0\2\4\5\0\17\4\6\0\1\4\1\52\3\4"+ - "\5\0\2\4\1\0\2\4\5\0\15\4\1\53\1\4"+ - "\6\0\5\4\5\0\2\4\1\0\2\4\5\0\17\4"+ - "\6\0\1\54\4\4\5\0\2\4\1\0\2\4\5\0"+ - "\15\4\1\55\1\4\6\0\5\4\1\56\3\0\1\56"+ - "\2\32\1\0\1\4\1\32\5\56\17\32\6\56\5\32"+ - "\5\57\2\33\1\57\1\33\1\60\5\57\17\33\6\57"+ - "\5\33\3\7\1\61\3\7\1\62\2\7\1\62\36\7"+ - "\3\10\1\63\3\10\1\64\2\10\1\64\36\10\20\0"+ - "\3\42\1\43\1\65\21\0\1\43\22\0\2\41\1\42"+ - "\1\43\22\0\1\43\22\0\2\42\1\0\1\43\22\0"+ - "\1\43\20\0\4\47\55\0\1\66\56\0\1\67\21\0"+ - "\1\70\1\4\1\0\2\4\5\0\1\4\2\70\1\4"+ - "\1\70\3\4\1\70\4\4\1\70\1\4\6\0\2\4"+ - "\1\70\2\4\20\0\2\47\34\0\2\4\1\0\2\4"+ - "\5\0\1\4\2\50\14\4\6\0\5\4\5\0\2\4"+ - "\1\0\2\4\5\0\10\4\1\71\6\4\6\0\5\4"+ - "\5\0\2\4\1\0\2\4\5\0\17\4\6\0\3\4"+ - "\1\72\1\4\5\0\2\4\1\0\2\4\5\0\17\4"+ - "\6\0\3\4\1\73\1\4\5\0\2\4\1\0\2\4"+ - "\5\0\17\4\6\0\1\4\1\74\3\4\5\0\2\4"+ - "\1\0\2\4\5\0\14\4\1\75\2\4\6\0\5\4"+ - "\1\56\3\0\3\56\2\0\40\56\11\57\1\76\44\57"+ - "\1\33\1\77\1\57\1\33\1\60\5\57\17\33\6\57"+ - "\5\33\3\7\1\0\7\7\1\34\1\35\37\7\1\61"+ - "\3\7\1\62\2\7\1\62\1\34\1\35\34\7\3\10"+ - "\1\0\10\10\1\36\1\37\36\10\1\63\3\10\1\64"+ - "\2\10\1\64\1\10\1\36\1\37\33\10\5\0\1\100"+ - "\12\0\2\100\1\0\1\100\3\0\1\100\4\0\1\100"+ - "\11\0\1\100\31\0\1\101\54\0\1\102\22\0\2\4"+ - "\1\0\2\4\5\0\11\4\1\103\5\4\6\0\5\4"+ - "\5\0\2\4\1\0\2\4\5\0\17\4\6\0\3\4"+ - "\1\104\1\4\5\0\2\4\1\0\2\4\5\0\17\4"+ - "\6\0\4\4\1\105\5\0\2\4\1\0\2\4\5\0"+ - "\17\4\6\0\2\4\1\106\2\4\6\57\1\107\2\57"+ - "\1\76\37\57\30\0\1\110\25\0\2\4\1\0\2\4"+ - "\5\0\7\4\1\111\7\4\6\0\5\4\5\0\2\4"+ - "\1\0\2\4\5\0\17\4\6\0\2\4\1\112\2\4"+ - "\26\0\1\113\27\0\2\4\1\0\2\4\5\0\11\4"+ - "\1\114\5\4\6\0\5\4\30\0\1\115\25\0\2\4"+ - "\1\0\2\4\5\0\12\4\1\116\4\4\6\0\5\4"+ - "\31\0\1\117\24\0\2\4\1\0\2\4\5\0\13\4"+ - "\1\75\3\4\6\0\5\4\32\0\1\102\16\0"; + "\1\2\5\3\1\4\1\5\1\6\1\2\1\7\1\10"+ + "\1\11\1\12\1\13\1\14\1\15\1\16\1\2\1\17"+ + "\1\20\1\21\1\2\1\22\1\4\1\23\1\2\1\17"+ + "\1\24\2\2\1\25\2\2\1\26\2\2\1\27\1\30"+ + "\1\31\1\3\1\4\1\2\10\0\1\2\2\0\5\2"+ + "\1\0\5\2\3\0\13\2\2\0\1\2\3\0\5\3"+ + "\41\0\2\3\53\0\2\5\1\0\2\5\1\0\1\5"+ + "\1\32\20\5\1\33\21\5\2\6\1\0\2\6\1\0"+ + "\2\6\1\34\17\6\1\35\21\6\15\0\1\36\1\0"+ + "\1\37\1\40\2\0\1\41\1\42\1\43\5\0\1\41"+ + "\16\0\1\2\10\0\1\2\2\0\1\2\1\12\1\2"+ + "\1\14\1\15\1\0\1\2\1\17\1\20\1\21\1\2"+ + "\3\0\1\2\1\17\11\2\2\0\1\2\2\0\1\2"+ + "\10\0\1\2\2\0\3\2\2\12\1\0\1\2\1\17"+ + "\3\2\3\0\1\2\1\17\11\2\2\0\1\2\2\0"+ + "\1\2\10\0\1\44\2\0\2\2\1\45\2\2\1\0"+ + "\5\2\3\0\13\2\2\0\1\2\2\0\1\2\10\0"+ + "\1\2\2\0\1\2\1\12\1\2\2\12\1\0\1\2"+ + "\1\17\2\2\1\46\3\0\1\2\1\17\11\2\2\0"+ + "\1\2\2\0\1\2\10\0\1\2\2\0\1\2\1\12"+ + "\1\2\2\15\1\0\1\2\1\17\3\2\3\0\1\2"+ + "\1\17\11\2\2\0\1\2\2\0\1\2\10\0\1\2"+ + "\1\47\1\0\1\50\2\2\2\50\1\0\5\2\3\0"+ + "\13\2\2\0\1\2\2\0\1\2\10\0\1\2\2\0"+ + "\5\2\1\0\5\2\3\0\5\2\1\51\5\2\2\0"+ + "\1\2\2\0\1\2\10\0\1\2\2\0\5\2\1\0"+ + "\5\2\3\0\1\52\12\2\2\0\1\2\2\0\1\2"+ + "\10\0\1\2\2\0\5\2\1\0\5\2\3\0\1\53"+ + "\12\2\2\0\1\2\2\0\1\2\10\0\1\2\2\0"+ + "\5\2\1\0\5\2\3\0\11\2\1\54\1\2\2\0"+ + "\1\2\2\0\1\2\10\0\1\2\2\0\5\2\1\0"+ + "\5\2\3\0\6\2\1\55\4\2\2\0\1\2\2\0"+ + "\1\2\5\3\3\0\1\2\2\0\5\2\1\0\5\2"+ + "\3\0\13\2\2\0\1\31\1\3\1\0\1\5\1\56"+ + "\2\5\1\56\1\57\44\5\1\6\1\60\2\6\1\60"+ + "\1\61\44\6\17\0\2\36\2\0\1\41\7\0\1\41"+ + "\33\0\1\36\1\0\2\36\2\0\1\41\2\0\1\62"+ + "\4\0\1\41\33\0\1\36\1\0\2\40\2\0\1\41"+ + "\7\0\1\41\30\0\1\47\1\0\1\47\2\0\2\47"+ + "\70\0\1\63\44\0\1\64\17\0\1\44\10\65\1\66"+ + "\2\65\5\44\1\65\5\44\3\65\13\44\2\65\1\44"+ + "\2\65\1\45\1\67\4\0\3\67\1\45\2\67\5\45"+ + "\1\67\5\45\3\67\13\45\2\67\1\2\1\67\1\0"+ + "\1\2\10\0\1\2\2\0\3\2\2\70\1\0\2\70"+ + "\3\2\3\0\3\70\10\2\2\0\1\2\21\0\2\47"+ + "\31\0\1\2\10\0\1\2\2\0\3\2\2\50\1\0"+ + "\5\2\3\0\13\2\2\0\1\2\2\0\1\2\10\0"+ + "\1\2\2\0\5\2\1\0\5\2\3\0\2\2\1\71"+ + "\10\2\2\0\1\2\2\0\1\2\10\0\1\2\2\0"+ + "\5\2\1\0\3\2\1\72\1\2\3\0\13\2\2\0"+ + "\1\2\2\0\1\2\10\0\1\2\2\0\5\2\1\0"+ + "\5\2\3\0\4\2\1\73\6\2\2\0\1\2\2\0"+ + "\1\2\10\0\1\2\2\0\5\2\1\0\5\2\3\0"+ + "\4\2\1\74\6\2\2\0\1\2\2\0\1\2\10\0"+ + "\1\2\2\0\5\2\1\0\5\2\3\0\11\2\1\75"+ + "\1\2\2\0\1\2\2\0\1\5\1\56\2\5\1\56"+ + "\1\57\1\5\1\32\20\5\1\33\26\5\1\0\1\5"+ + "\1\32\20\5\1\33\21\5\1\6\1\60\2\6\1\60"+ + "\1\61\2\6\1\34\17\6\1\35\26\6\1\0\2\6"+ + "\1\34\17\6\1\35\21\6\17\0\2\76\1\0\2\76"+ + "\6\0\3\76\51\0\1\77\42\0\1\100\24\0\11\65"+ + "\1\101\40\65\1\44\10\65\1\66\2\65\2\44\1\102"+ + "\2\44\1\65\5\44\3\65\13\44\2\65\1\44\2\65"+ + "\2\67\4\0\41\67\1\0\1\67\1\0\1\2\10\0"+ + "\1\2\2\0\5\2\1\0\5\2\3\0\3\2\1\103"+ + "\7\2\2\0\1\2\2\0\1\2\10\0\1\2\2\0"+ + "\5\2\1\0\5\2\3\0\7\2\1\104\3\2\2\0"+ + "\1\2\2\0\1\2\10\0\1\2\2\0\5\2\1\0"+ + "\5\2\3\0\4\2\1\105\6\2\2\0\1\2\2\0"+ + "\1\2\10\0\1\2\2\0\5\2\1\0\5\2\3\0"+ + "\1\2\1\106\11\2\2\0\1\2\37\0\1\107\14\0"+ + "\11\65\1\101\4\65\1\110\33\65\1\2\10\0\1\2"+ + "\2\0\5\2\1\0\5\2\3\0\5\2\1\111\5\2"+ + "\2\0\1\2\2\0\1\2\10\0\1\2\2\0\5\2"+ + "\1\0\5\2\3\0\1\2\1\112\11\2\2\0\1\2"+ + "\41\0\1\113\12\0\1\2\10\0\1\2\2\0\5\2"+ + "\1\0\5\2\3\0\3\2\1\114\7\2\2\0\1\2"+ + "\37\0\1\115\14\0\1\2\10\0\1\2\2\0\5\2"+ + "\1\0\5\2\3\0\10\2\1\116\2\2\2\0\1\2"+ + "\44\0\1\117\7\0\1\2\10\0\1\2\2\0\5\2"+ + "\1\0\5\2\3\0\12\2\1\72\2\0\1\2\46\0"+ + "\1\100\5\0"; - private static int [] zzUnpackTrans() { - int [] result = new int[2542]; + private static int [] zzUnpacktrans() { + int [] result = new int[2604]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -318,15 +498,15 @@ public class _Json5Lexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\1\11\21\1\6\11\2\1\1\11\2\0\1\11"+ - "\4\1\2\0\17\1\3\0\6\1\1\0\2\1\1\0"+ - "\1\11\4\1\1\11\1\0\2\1\1\0\1\1\1\0"+ - "\1\1\1\0"; + "\3\1\1\11\3\1\1\11\5\1\1\11\3\1\2\11"+ + "\3\1\2\11\1\1\1\11\1\0\1\11\1\0\4\1"+ + "\2\0\16\1\3\0\12\1\1\0\1\11\1\0\5\1"+ + "\1\0\1\11\2\1\1\0\1\1\1\0\1\1\1\0"; private static int [] zzUnpackAttribute() { int [] result = new int[79]; @@ -373,15 +553,27 @@ public class _Json5Lexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -400,26 +592,22 @@ public class _Json5Lexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -551,7 +739,8 @@ public class _Json5Lexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -585,7 +774,7 @@ public class _Json5Lexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -607,11 +796,11 @@ public class _Json5Lexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -634,90 +823,90 @@ public class _Json5Lexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return NUMBER; - } - // fall through + } + // fall through case 18: break; - case 2: - { return BAD_CHARACTER; - } - // fall through - case 19: break; - case 3: - { return WHITE_SPACE; - } - // fall through - case 20: break; - case 4: + case 2: { return IDENTIFIER; - } - // fall through + } + // fall through + case 19: break; + case 3: + { return WHITE_SPACE; + } + // fall through + case 20: break; + case 4: + { return BAD_CHARACTER; + } + // fall through case 21: break; - case 5: + case 5: { return DOUBLE_QUOTED_STRING; - } - // fall through + } + // fall through case 22: break; - case 6: + case 6: { return SINGLE_QUOTED_STRING; - } - // fall through + } + // fall through case 23: break; - case 7: - { return L_CURLY; - } - // fall through - case 24: break; - case 8: - { return R_CURLY; - } - // fall through - case 25: break; - case 9: - { return L_BRACKET; - } - // fall through - case 26: break; - case 10: - { return R_BRACKET; - } - // fall through - case 27: break; - case 11: + case 7: { return COMMA; - } - // fall through - case 28: break; - case 12: + } + // fall through + case 24: break; + case 8: { return COLON; - } - // fall through + } + // fall through + case 25: break; + case 9: + { return L_BRACKET; + } + // fall through + case 26: break; + case 10: + { return R_BRACKET; + } + // fall through + case 27: break; + case 11: + { return L_CURLY; + } + // fall through + case 28: break; + case 12: + { return R_CURLY; + } + // fall through case 29: break; - case 13: - { return LINE_COMMENT; - } - // fall through - case 30: break; - case 14: + case 13: { return BLOCK_COMMENT; - } - // fall through + } + // fall through + case 30: break; + case 14: + { return LINE_COMMENT; + } + // fall through case 31: break; - case 15: + case 15: { return NULL; - } - // fall through + } + // fall through case 32: break; - case 16: + case 16: { return TRUE; - } - // fall through + } + // fall through case 33: break; - case 17: + case 17: { return FALSE; - } - // fall through + } + // fall through case 34: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_MacroLexer.java b/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_MacroLexer.java index 793db61c8b9c..4f1fc8baad80 100644 --- a/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_MacroLexer.java +++ b/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_MacroLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _MacroLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.codeInsight.template.impl; @@ -8,11 +9,6 @@ import com.intellij.psi.tree.IElementType; import com.intellij.lexer.FlexLexer; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _MacroLexer.flex - */ class _MacroLexer implements FlexLexer { /** This character denotes the end of file */ @@ -30,166 +26,315 @@ class _MacroLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [12, 6, 3] - * Total runtime size is 17296 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900\1\u0100"+ + "\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000\1\u4100"+ + "\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800\1\u4900"+ + "\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u1f00\1\u4e00\1\u4f00\1\u5000"+ + "\1\u5100\3\u0100\1\u5200\1\u5300\1\u5400\12\u1f00\4\u0100\1\u5500"+ + "\17\u1f00\2\u0100\1\u5600\41\u1f00\2\u0100\1\u5700\1\u5800\2\u1f00"+ + "\1\u5900\1\u5a00\27\u0100\1\u5b00\4\u0100\1\u5c00\1\u5d00\42\u1f00"+ + "\1\u0100\1\u5e00\1\u5f00\11\u1f00\1\u6000\24\u1f00\1\u6100\1\u6200"+ + "\1\u1f00\1\u6300\1\u6400\1\u6500\1\u6600\2\u1f00\1\u6700\5\u1f00"+ + "\1\u6800\1\u6900\1\u6a00\5\u1f00\1\u6b00\1\u6c00\2\u1f00\1\u6d00"+ + "\1\u1f00\1\u6e00\14\u1f00\1\u6f00\4\u1f00\246\u0100\1\u7000\20\u0100"+ + "\1\u7100\1\u7200\25\u0100\1\u7300\34\u0100\1\u7400\14\u1f00\2\u0100"+ + "\1\u7500\5\u1f00\23\u0100\1\u7600\u0aec\u1f00\1\u7700\1\u7800\u02fe\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 2176 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+ - "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ - "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1"+ - "\21\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\21\1\25\1\57\1\60\5\21\2\25\1\61"+ - "\7\21\1\25\1\62\20\21\1\25\1\63\1\21\1\64\13\25\1\65\1\25\1\66\22\21\1\67"+ - "\1\70\4\21\1\71\11\21\1\72\1\73\1\74\1\75\1\21\1\76\2\21\1\77\3\21\1\100\2"+ - "\21\1\101\10\21\123\25\1\102\7\25\1\103\1\104\12\25\1\105\15\25\1\106\6\21"+ - "\1\25\1\107\u0582\21\1\110\u017f\21"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 4672 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\0\1\2\1\3\1\4\1\0\1\5\1\6\2\7\1\10\1\6\2\7\1\11\4\0\1\12\1\13\1"+ - "\14\1\15\2\7\1\16\3\7\1\16\71\7\1\17\1\7\1\20\1\21\1\22\1\23\2\21\16\0\1\24"+ - "\1\25\1\26\1\27\2\7\1\30\11\7\1\31\21\7\1\32\1\33\24\7\1\6\3\7\1\16\1\34\1"+ - "\6\4\7\1\35\1\36\4\0\1\37\1\40\1\21\3\7\2\41\1\21\1\42\1\43\1\0\1\44\5\7\1"+ - "\45\3\0\1\46\1\47\13\7\1\50\1\37\1\51\1\52\1\0\1\53\1\21\1\54\1\55\3\7\3\0"+ - "\1\56\12\7\1\57\1\0\1\60\1\21\1\0\1\61\3\7\1\45\1\62\1\15\2\7\1\57\1\63\1"+ - "\64\1\65\2\21\3\7\1\66\1\7\1\41\6\21\2\7\1\24\1\67\2\21\1\70\5\0\1\71\6\7"+ - "\1\72\2\0\1\73\1\7\1\74\1\0\1\6\1\7\1\75\1\76\1\77\2\7\1\100\1\101\1\102\1"+ - "\103\1\104\1\54\1\105\1\74\1\0\1\106\1\107\1\110\1\111\1\77\2\7\1\100\1\112"+ - "\1\113\1\114\1\115\1\116\1\117\1\120\1\0\1\121\1\21\1\110\1\31\1\30\2\7\1"+ - "\100\1\122\1\102\1\37\1\123\1\124\1\21\1\74\1\0\1\34\1\125\1\110\1\76\1\77"+ - "\2\7\1\100\1\122\1\102\1\103\1\115\1\120\1\105\1\74\1\0\1\34\1\21\1\126\1"+ - "\127\1\130\1\131\1\107\1\127\1\7\1\132\1\133\1\134\1\135\1\21\1\120\1\0\1"+ - "\21\1\34\1\136\1\24\1\100\2\7\1\100\1\7\1\137\1\140\1\134\1\141\1\41\1\74"+ - "\1\0\2\21\1\75\1\24\1\100\2\7\1\100\1\142\1\102\1\140\1\134\1\141\1\26\1\74"+ - "\1\0\1\143\1\21\1\136\1\24\1\100\4\7\1\144\1\140\1\145\1\146\1\35\1\74\1\0"+ - "\1\21\1\33\1\147\1\7\1\16\1\33\2\7\1\30\1\150\1\16\1\151\1\152\1\0\1\120\1"+ - "\0\1\153\1\21\1\6\5\7\1\154\1\155\1\156\1\157\1\0\1\160\4\21\1\161\1\162\1"+ - "\163\1\6\1\164\1\165\1\154\1\166\1\167\1\42\1\0\1\170\4\21\1\124\2\21\1\160"+ - "\1\0\1\160\1\171\1\172\1\7\1\6\3\7\1\22\1\36\1\0\1\140\1\173\1\0\1\36\3\0"+ - "\1\174\1\175\7\21\5\7\1\45\1\0\1\176\1\0\1\160\1\57\1\177\1\200\1\201\1\202"+ - "\1\7\1\203\1\204\1\0\1\42\4\7\1\31\1\14\5\7\1\205\51\7\1\130\1\16\1\130\5"+ - "\7\1\130\4\7\1\130\1\16\1\130\1\7\1\16\7\7\1\130\10\7\1\206\4\21\2\7\2\21"+ - "\12\7\2\67\1\6\114\7\1\76\2\7\1\6\2\7\1\41\11\7\1\127\1\7\1\124\1\7\1\24\1"+ - "\207\1\21\2\7\1\207\1\21\2\7\1\210\1\21\1\7\1\24\1\211\1\21\6\7\1\212\3\0"+ - "\1\213\1\214\1\0\1\160\3\21\1\215\1\0\1\160\13\7\1\21\1\216\4\7\1\217\10\7"+ - "\1\67\1\21\3\7\1\16\1\0\1\2\1\0\1\2\1\120\1\0\3\7\1\67\1\22\1\21\5\7\1\106"+ - "\3\7\1\20\1\0\1\160\4\21\2\7\1\156\1\2\6\7\1\173\1\157\3\0\1\103\1\0\1\160"+ - "\1\0\1\160\1\35\1\21\1\0\1\42\10\21\1\220\5\7\1\212\1\0\1\220\1\106\1\0\1"+ - "\160\1\21\1\221\1\2\1\21\1\222\3\7\1\73\1\201\1\0\1\61\4\7\1\57\1\0\1\2\1"+ - "\21\4\7\1\212\2\0\1\21\1\0\1\223\1\0\1\61\3\7\1\67\1\7\1\124\10\21\1\224\2"+ - "\0\1\225\1\226\1\160\30\7\7\0\1\227\42\7\2\67\4\7\2\67\1\7\1\230\3\7\1\67"+ - "\6\7\1\24\1\167\1\231\1\22\1\232\1\106\1\7\1\22\1\231\1\22\1\21\1\221\3\21"+ - "\1\233\1\21\1\35\1\124\1\21\1\234\1\21\1\140\1\0\1\34\1\35\2\21\1\7\1\22\4"+ - "\7\2\21\1\0\1\174\1\235\1\0\1\236\1\21\1\237\1\33\1\150\1\240\1\23\1\241\1"+ - "\7\1\242\1\243\1\244\2\21\5\7\1\124\116\21\5\7\1\16\5\7\1\16\20\7\1\22\1\245"+ - "\1\246\1\21\4\7\1\31\1\14\7\7\1\35\1\21\1\54\2\7\1\16\1\21\10\16\4\0\5\21"+ - "\1\35\72\21\1\243\3\21\1\6\1\203\1\240\1\22\1\6\11\7\1\16\1\247\1\6\12\7\1"+ - "\205\1\243\4\7\1\16\1\6\12\7\1\16\2\21\3\7\1\41\6\21\170\7\1\67\11\21\75\7"+ - "\1\41\2\21\21\7\1\22\10\21\5\7\1\67\41\7\1\22\2\7\1\0\1\246\2\21\5\7\1\156"+ - "\1\70\1\250\3\7\1\57\12\7\1\160\3\21\1\35\1\7\1\33\14\7\1\77\3\7\1\16\1\7"+ - "\7\21\1\35\1\7\1\251\1\252\2\7\1\45\2\21\1\124\6\7\1\106\1\21\1\61\5\7\1\212"+ - "\1\0\1\42\1\21\1\0\1\160\2\0\1\61\1\253\1\0\1\61\2\7\1\57\1\42\2\7\1\156\1"+ - "\0\1\2\1\21\3\7\1\22\1\71\5\7\1\45\1\0\1\236\1\35\1\0\1\160\1\254\1\7\1\0"+ - "\1\255\5\7\1\73\1\157\1\21\1\252\1\256\1\0\1\160\2\7\1\16\1\257\6\7\1\200"+ - "\1\260\1\217\2\21\1\261\1\7\1\45\1\262\1\21\3\263\1\21\2\16\5\7\1\205\1\67"+ - "\1\21\16\7\1\45\1\264\1\0\1\160\64\7\1\106\1\21\2\7\1\16\1\265\5\7\1\106\40"+ - "\21\55\7\1\67\15\7\1\20\4\21\1\16\1\21\1\265\1\266\1\7\1\100\1\16\1\167\1"+ - "\267\15\7\1\20\3\21\1\265\54\7\1\67\2\21\10\7\1\33\6\7\5\21\1\7\1\22\2\0\2"+ - "\21\2\0\1\107\2\21\1\243\3\21\1\34\1\24\20\7\1\270\1\234\1\21\1\0\1\160\1"+ - "\6\2\7\1\111\1\6\2\7\1\41\1\271\12\7\1\16\3\33\1\272\1\273\2\21\1\274\1\7"+ - "\1\142\2\7\1\16\2\7\1\275\1\7\1\67\1\7\1\67\4\21\17\7\1\41\10\21\6\7\1\22"+ - "\20\21\1\276\20\21\3\7\1\22\6\7\1\124\1\21\1\236\3\21\4\7\1\21\1\243\3\7\1"+ - "\41\4\7\1\57\1\277\3\7\1\67\4\7\1\106\1\7\1\240\5\21\23\7\1\67\1\0\1\160\4"+ - "\7\1\106\4\7\1\106\5\7\1\21\6\7\1\106\23\21\46\7\1\16\1\21\2\7\1\67\1\21\1"+ - "\7\23\21\1\67\1\100\4\7\1\31\1\300\2\7\1\67\1\21\2\7\1\16\1\21\3\7\1\16\10"+ - "\21\2\7\1\301\1\21\2\7\1\67\1\21\3\7\1\20\10\21\7\7\1\271\10\21\1\302\1\70"+ - "\1\142\1\6\2\7\1\106\1\114\4\21\3\7\1\22\3\7\1\22\4\21\1\7\1\6\2\7\1\303\3"+ - "\21\6\7\1\67\1\21\2\7\1\67\1\21\2\7\1\41\1\21\2\7\1\20\15\21\11\7\1\124\6"+ - "\21\6\7\1\41\1\21\6\7\1\41\41\21\1\222\6\7\1\0\1\157\3\21\1\120\1\0\1\21\1"+ - "\54\1\222\5\7\1\0\1\304\2\21\3\7\1\124\1\0\1\160\1\222\3\7\1\156\1\0\1\140"+ - "\1\0\2\21\4\7\1\305\1\21\1\222\5\7\1\45\1\0\1\306\1\307\1\0\1\310\4\21\2\7"+ - "\1\30\2\7\1\212\1\0\1\175\10\21\1\16\1\241\1\7\1\31\1\7\1\124\5\7\1\156\1"+ - "\0\1\277\1\0\1\160\1\136\1\76\1\77\2\7\1\100\1\122\1\102\1\103\1\115\1\135"+ - "\1\243\1\74\2\174\21\21\6\7\1\173\1\0\1\176\1\41\1\0\1\160\4\21\6\7\2\0\1"+ - "\311\1\21\1\0\1\160\24\21\5\7\1\156\1\42\1\0\1\236\2\21\1\256\4\21\6\7\2\0"+ - "\1\312\1\21\1\0\1\160\4\21\5\7\1\45\1\0\1\21\1\0\1\160\6\21\3\7\1\313\1\0"+ - "\1\2\1\0\1\160\54\21\10\7\1\0\1\160\1\21\1\35\40\21\1\73\1\222\4\7\1\45\1"+ - "\314\1\54\1\21\1\73\1\71\4\7\1\232\1\203\1\0\1\160\4\21\7\7\1\124\40\21\1"+ - "\7\1\100\3\7\1\156\1\157\1\0\1\124\1\21\1\0\1\160\2\21\1\33\3\7\1\315\2\0"+ - "\1\36\1\157\11\21\1\16\1\30\4\7\1\316\1\317\1\204\1\21\1\0\1\160\24\21\63"+ - "\7\1\20\14\21\15\7\1\16\2\21\30\7\1\106\27\21\5\7\1\16\72\21\10\7\1\16\67"+ - "\21\7\7\1\124\3\7\1\16\1\0\1\160\14\21\3\7\1\67\1\174\1\21\6\7\1\157\1\21"+ - "\1\106\1\21\1\0\1\160\1\265\2\7\1\243\2\7\56\21\10\7\1\22\1\21\1\73\4\0\1"+ - "\157\1\21\1\54\1\222\1\7\10\21\1\20\3\21\75\7\1\22\2\21\36\7\1\41\41\21\43"+ - "\7\1\16\12\21\61\7\1\106\40\21\15\7\1\41\1\7\1\22\1\7\1\124\1\7\1\320\1\2"+ - "\127\21\1\321\1\322\2\0\1\323\1\2\3\21\1\324\22\21\1\307\67\21\12\7\1\24\10"+ - "\7\1\24\1\325\1\326\1\7\1\327\1\142\7\7\1\31\1\330\2\24\3\7\1\331\1\167\1"+ - "\33\1\100\51\7\1\67\3\7\1\100\2\7\1\205\3\7\1\205\2\7\1\24\3\7\1\24\2\7\1"+ - "\16\3\7\1\16\3\7\1\100\3\7\1\100\2\7\1\205\1\332\14\0\1\157\1\221\5\0\1\174"+ - "\1\276\1\21\1\333\2\21\1\221\1\36\1\0\52\21\1\157\2\0\1\334\1\335\1\277\72"+ - "\21\30\7\1\22\1\21\1\157\5\21\10\7\1\212\1\277\1\0\1\160\24\21\1\142\3\7\1"+ - "\161\1\6\1\205\1\336\1\237\1\337\1\161\1\230\1\161\2\205\1\117\1\7\1\30\1"+ - "\7\1\106\1\340\1\30\1\7\1\106\50\21\32\7\1\16\5\21\106\7\1\22\1\21\33\7\1"+ - "\67\120\7\1\20\1\21\146\7\1\124\3\21\3\7\1\67\74\21\1\116\3\21\14\0\20\21"+ - "\36\0\2\21"); - /* The ZZ_CMAP_A table has 1800 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\2\1\3\1\6\1\0\1\3\1\6\6\2\4\0\1\3\1\0\1\4\1\0\1\1\3\0\1\7\1\10\2\0\1\11"+ - "\3\0\2\2\3\0\1\12\3\0\22\1\1\0\1\5\2\0\4\1\4\0\1\2\2\0\4\1\4\0\1\1\2\0\1\2"+ - "\7\0\1\1\4\0\1\1\5\0\7\1\1\0\2\1\4\0\4\1\16\0\5\1\7\0\1\1\1\0\1\1\1\0\5\1"+ - "\1\0\2\1\2\0\4\1\1\0\1\1\6\0\1\1\1\0\3\1\1\0\1\1\1\0\4\1\1\0\13\1\1\0\3\1"+ - "\1\0\5\2\2\0\6\1\1\0\1\1\15\0\1\1\1\0\15\2\1\0\1\2\1\0\2\2\1\0\2\2\1\0\1\2"+ - "\3\1\5\0\6\2\5\0\1\1\4\0\3\2\1\0\1\2\3\0\3\1\7\2\4\0\2\1\1\2\13\1\1\0\1\1"+ - "\7\2\2\1\2\2\1\0\4\2\2\1\2\2\3\1\2\0\1\1\7\0\1\2\1\1\1\2\6\1\3\2\2\0\11\1"+ - "\3\2\1\1\6\0\2\2\6\1\4\2\2\1\2\0\2\2\1\1\11\2\1\1\3\2\1\1\5\2\2\0\1\1\3\2"+ - "\4\0\6\1\6\0\10\2\6\1\3\2\1\1\2\2\1\1\7\2\2\1\2\2\2\0\2\2\1\1\3\2\1\0\10\1"+ - "\2\0\2\1\2\0\6\1\1\0\7\1\1\0\1\1\3\0\4\1\2\0\1\2\1\1\7\2\2\0\2\2\2\0\3\2\1"+ - "\1\5\0\2\1\1\0\5\1\7\0\2\1\4\0\3\2\1\0\6\1\4\0\2\1\1\0\2\1\1\0\2\1\1\0\2\1"+ - "\2\0\1\2\1\0\5\2\4\0\2\2\2\0\3\2\3\0\1\2\7\0\4\1\1\0\1\1\7\0\4\2\3\1\1\2\2"+ - "\0\1\1\1\0\2\1\1\0\3\1\2\2\1\0\3\2\2\0\1\1\10\0\1\1\6\2\2\0\1\2\1\1\1\0\6"+ - "\1\3\0\3\1\1\0\4\1\3\0\2\1\1\0\1\1\1\0\4\1\4\0\5\2\3\0\3\2\1\0\4\2\2\0\1\1"+ - "\6\0\5\2\1\0\5\1\3\0\1\1\7\2\1\0\2\2\5\0\2\2\1\0\4\1\1\0\3\1\1\0\2\1\5\0\3"+ - "\1\2\2\1\1\3\2\1\0\4\2\1\1\5\0\3\1\1\2\2\0\2\2\1\0\7\1\1\0\1\1\4\0\1\2\4\0"+ - "\6\2\1\0\1\2\3\0\2\2\4\0\1\1\1\2\2\1\7\2\4\0\10\1\10\2\1\0\2\2\7\0\2\1\1\0"+ - "\1\1\2\0\2\1\1\0\1\1\2\0\1\1\6\0\4\1\1\0\3\1\1\0\1\1\1\0\1\1\2\0\2\1\1\0\3"+ - "\1\2\2\1\0\2\2\1\1\2\0\5\1\1\0\1\1\1\0\2\2\2\0\4\1\5\0\1\2\1\0\1\2\1\0\1\2"+ - "\4\0\2\2\5\1\10\2\11\0\1\2\1\0\7\2\1\1\2\2\4\1\3\2\1\1\3\2\2\1\7\2\3\1\4\2"+ - "\5\1\14\2\1\1\1\2\3\1\1\0\7\1\2\0\3\2\2\1\3\2\3\0\2\1\2\2\4\0\1\1\1\0\2\2"+ - "\4\0\4\1\10\2\3\0\1\1\3\0\2\1\1\2\5\0\4\2\1\0\5\1\2\2\2\1\1\2\1\1\5\0\5\2"+ - "\3\1\3\0\10\2\5\1\2\2\3\0\3\1\3\2\1\0\5\2\4\1\1\2\4\1\3\2\2\1\3\2\1\0\5\2"+ - "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1\2\0\3\1\1\0\6\1\2\0\2\1\2\0\5\2\5\0\1\1\4"+ - "\0\1\2\3\0\4\2\11\0\1\1\4\0\1\1\1\0\5\1\2\0\1\1\1\0\4\1\1\0\3\1\2\0\4\1\5"+ - "\0\5\1\4\0\1\1\4\0\4\1\3\2\2\1\5\0\2\2\2\0\3\1\6\2\1\0\3\1\1\2\3\1\1\2\4\1"+ - "\1\2\4\1\3\0\1\1\1\0\1\1\2\0\5\1\1\2\2\1\2\2\5\1\1\0\4\1\2\2\4\0\1\1\3\2\2"+ - "\1\1\2\5\1\2\2\3\0\3\1\4\0\3\1\2\2\2\0\6\1\1\0\3\2\1\0\2\2\5\0\5\1\5\0\1\1"+ - "\1\2\3\1\1\0\2\1\1\0\7\1\2\0\1\2\6\0\2\1\2\0\3\1\3\0\2\1\3\0\2\1\2\0\3\2\4"+ - "\0\3\1\1\0\2\1\1\0\1\1\5\0\1\2\2\0\3\2\5\0\1\1\3\0\1\1\2\0\4\1\1\0\2\1\2\0"+ - "\1\1\3\2\1\0\2\2\1\0\5\1\2\2\1\0\3\2\2\0\1\2\2\0\3\1\1\2\2\0\1\1\1\0\1\2\4"+ - "\1\5\0\3\2\3\0\2\2\1\1\1\0\1\1\3\0\4\2\2\1\1\0\1\1\1\2\3\0\1\1\3\0\2\1\3\0"+ - "\5\2\1\1\4\2\3\0\6\2\1\1\6\2\3\0\1\2\1\0\2\2\1\0\1\2\2\1\3\0\2\2\6\0\5\2\3"+ - "\0\6\2\2\0\3\2\2\0\4\2\4\0\1\1\2\0\2\1\2\0\4\1\1\0\4\1\1\0\1\1\1\0\6\1\2\0"+ - "\5\1\1\0\4\1\1\0\4\1\2\0\2\2\4\0\1\2\3\0\1\2\2\0\7\2\1\0\2\2\1\0\2\2\1\0\1"+ - "\1\1\0\1\1\5\0\1\1\1\0\1\1\1\0\3\1\1\0\3\1\1\0\3\1"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\1\1\2\16\0\4\3"+ + "\1\1\1\3\1\4\1\3\1\5\3\3\1\6\1\7"+ + "\2\3\1\10\3\3\12\0\3\3\1\11\3\3\32\5"+ + "\1\3\1\12\2\3\1\5\1\3\32\5\4\3\41\0"+ + "\2\3\4\5\4\3\1\5\2\3\1\0\7\3\1\5"+ + "\4\3\1\5\5\3\27\5\1\3\37\5\1\3\u01ca\5"+ + "\4\3\14\5\16\3\5\5\7\3\1\5\1\3\1\5"+ + "\21\3\160\0\5\5\1\3\2\5\2\3\4\5\1\3"+ + "\1\5\6\3\1\5\1\3\3\5\1\3\1\5\1\3"+ + "\24\5\1\3\123\5\1\3\213\5\1\3\5\0\2\3"+ + "\246\5\1\3\46\5\2\3\1\5\6\3\51\5\6\3"+ + "\1\5\1\3\55\0\1\3\1\0\1\3\2\0\1\3"+ + "\2\0\1\3\1\0\10\3\33\5\4\3\4\5\15\3"+ + "\6\0\5\3\1\5\4\3\13\0\1\3\1\0\3\3"+ + "\53\5\37\0\4\3\2\5\1\0\143\5\1\3\1\5"+ + "\10\0\1\3\6\0\2\5\2\0\1\3\4\0\2\5"+ + "\12\0\3\5\2\3\1\5\17\3\1\0\1\5\1\0"+ + "\36\5\33\0\2\3\131\5\13\0\1\5\16\3\12\0"+ + "\41\5\11\0\2\5\4\3\1\5\2\3\1\0\30\5"+ + "\4\0\1\5\11\0\1\5\3\0\1\5\5\0\22\3"+ + "\31\5\3\0\4\3\13\5\65\3\25\5\1\3\22\5"+ + "\13\3\61\0\66\5\3\0\1\5\22\0\1\5\7\0"+ + "\12\5\2\0\2\3\12\0\1\3\20\5\3\0\1\3"+ + "\10\5\2\3\2\5\2\3\26\5\1\3\7\5\1\3"+ + "\1\5\3\3\4\5\2\3\1\0\1\5\7\0\2\3"+ + "\2\0\2\3\3\0\1\5\10\3\1\0\4\3\2\5"+ + "\1\3\3\5\2\0\2\3\12\0\4\5\7\3\2\5"+ + "\1\3\1\0\2\3\3\0\1\3\6\5\4\3\2\5"+ + "\2\3\26\5\1\3\7\5\1\3\2\5\1\3\2\5"+ + "\1\3\2\5\2\3\1\0\1\3\5\0\4\3\2\0"+ + "\2\3\3\0\3\3\1\0\7\3\4\5\1\3\1\5"+ + "\7\3\14\0\3\5\1\0\13\3\3\0\1\3\11\5"+ + "\1\3\3\5\1\3\26\5\1\3\7\5\1\3\2\5"+ + "\1\3\5\5\2\3\1\0\1\5\10\0\1\3\3\0"+ + "\1\3\3\0\2\3\1\5\17\3\2\5\2\0\2\3"+ + "\12\0\1\3\1\5\7\3\1\5\6\0\1\3\3\0"+ + "\1\3\10\5\2\3\2\5\2\3\26\5\1\3\7\5"+ + "\1\3\2\5\1\3\5\5\2\3\1\0\1\5\7\0"+ + "\2\3\2\0\2\3\3\0\7\3\3\0\4\3\2\5"+ + "\1\3\3\5\2\0\2\3\12\0\1\3\1\5\20\3"+ + "\1\0\1\5\1\3\6\5\3\3\3\5\1\3\4\5"+ + "\3\3\2\5\1\3\1\5\1\3\2\5\3\3\2\5"+ + "\3\3\3\5\3\3\14\5\4\3\5\0\3\3\3\0"+ + "\1\3\4\0\2\3\1\5\6\3\1\0\16\3\12\0"+ + "\11\3\1\5\6\3\5\0\10\5\1\3\3\5\1\3"+ + "\27\5\1\3\20\5\3\3\1\5\7\0\1\3\3\0"+ + "\1\3\4\0\7\3\2\0\1\3\3\5\5\3\2\5"+ + "\2\0\2\3\12\0\20\3\1\5\3\0\1\3\10\5"+ + "\1\3\3\5\1\3\27\5\1\3\12\5\1\3\5\5"+ + "\2\3\1\0\1\5\7\0\1\3\3\0\1\3\4\0"+ + "\7\3\2\0\7\3\1\5\1\3\2\5\2\0\2\3"+ + "\12\0\1\3\2\5\15\3\4\0\11\5\1\3\3\5"+ + "\1\3\51\5\2\0\1\5\7\0\1\3\3\0\1\3"+ + "\4\0\1\5\5\3\3\5\1\0\7\3\3\5\2\0"+ + "\2\3\12\0\12\3\6\5\1\3\3\0\1\3\22\5"+ + "\3\3\30\5\1\3\11\5\1\3\1\5\2\3\7\5"+ + "\3\3\1\0\4\3\6\0\1\3\1\0\1\3\10\0"+ + "\6\3\12\0\2\3\2\0\15\3\60\5\1\0\2\5"+ + "\7\0\4\3\10\5\10\0\1\3\12\0\47\3\2\5"+ + "\1\3\1\5\1\3\5\5\1\3\30\5\1\3\1\5"+ + "\1\3\12\5\1\0\2\5\11\0\1\5\2\3\5\5"+ + "\1\3\1\5\1\3\6\0\2\3\12\0\2\3\4\5"+ + "\40\3\1\5\27\3\2\0\6\3\12\0\13\3\1\0"+ + "\1\3\1\0\1\3\1\0\4\3\2\0\10\5\1\3"+ + "\44\5\4\3\24\0\1\3\2\0\5\5\13\0\1\3"+ + "\44\0\11\3\1\0\71\3\53\5\24\0\1\5\12\0"+ + "\6\3\6\5\4\0\4\5\3\0\1\5\3\0\2\5"+ + "\7\0\3\5\4\0\15\5\14\0\1\5\17\0\2\3"+ + "\46\5\1\3\1\5\5\3\1\5\2\3\53\5\1\3"+ + "\115\5\1\3\4\5\2\3\7\5\1\3\1\5\1\3"+ + "\4\5\2\3\51\5\1\3\4\5\2\3\41\5\1\3"+ + "\4\5\2\3\7\5\1\3\1\5\1\3\4\5\2\3"+ + "\17\5\1\3\71\5\1\3\4\5\2\3\103\5\2\3"+ + "\3\0\40\3\20\5\20\3\126\5\2\3\6\5\3\3"+ + "\u016c\5\2\3\21\5\1\3\32\5\5\3\113\5\3\3"+ + "\13\5\7\3\15\5\1\3\4\5\3\0\13\3\22\5"+ + "\3\0\13\3\22\5\2\0\14\3\15\5\1\3\3\5"+ + "\1\3\2\0\14\3\64\5\40\0\3\3\1\5\3\3"+ + "\2\5\1\0\2\3\12\0\41\3\4\0\1\3\12\0"+ + "\6\3\131\5\7\3\5\5\2\0\42\5\1\0\1\5"+ + "\5\3\106\5\12\3\37\5\1\3\14\0\4\3\14\0"+ + "\12\3\12\0\36\5\2\3\5\5\13\3\54\5\4\3"+ + "\32\5\6\3\12\0\46\3\27\5\5\0\4\3\65\5"+ + "\12\0\1\3\35\0\2\3\13\0\6\3\12\0\15\3"+ + "\1\5\10\3\16\0\1\3\2\0\77\3\5\0\57\5"+ + "\21\0\7\5\4\3\12\0\21\3\11\0\14\3\3\0"+ + "\36\5\15\0\2\5\12\0\54\5\16\0\14\3\44\5"+ + "\24\0\10\3\12\0\3\3\3\5\12\0\44\5\2\3"+ + "\11\5\7\3\53\5\2\3\3\5\20\3\3\0\1\3"+ + "\25\0\4\5\1\0\6\5\1\0\2\5\3\0\1\5"+ + "\5\3\300\5\72\0\1\3\5\0\26\5\2\3\6\5"+ + "\2\3\46\5\2\3\6\5\2\3\10\5\1\3\1\5"+ + "\1\3\1\5\1\3\1\5\1\3\37\5\2\3\65\5"+ + "\1\3\7\5\1\3\1\5\3\3\3\5\1\3\7\5"+ + "\3\3\4\5\2\3\6\5\4\3\15\5\5\3\3\5"+ + "\1\3\7\5\16\3\5\0\32\3\5\0\20\3\2\5"+ + "\23\3\1\5\13\3\5\0\1\3\12\0\1\3\1\5"+ + "\15\3\1\5\20\3\15\5\3\3\40\5\20\3\15\0"+ + "\4\3\1\0\3\3\14\0\21\3\1\5\4\3\1\5"+ + "\2\3\12\5\1\3\1\5\3\3\5\5\6\3\1\5"+ + "\1\3\1\5\1\3\1\5\1\3\4\5\1\3\13\5"+ + "\2\3\4\5\5\3\5\5\4\3\1\5\21\3\51\5"+ + "\u0177\3\57\5\1\3\57\5\1\3\205\5\6\3\4\5"+ + "\3\0\2\5\14\3\46\5\1\3\1\5\5\3\1\5"+ + "\2\3\70\5\7\3\1\5\17\3\1\0\27\5\11\3"+ + "\7\5\1\3\7\5\1\3\7\5\1\3\7\5\1\3"+ + "\7\5\1\3\7\5\1\3\7\5\1\3\7\5\1\3"+ + "\40\0\57\3\1\5\325\3\3\5\31\3\11\5\6\0"+ + "\1\3\5\5\2\3\5\5\4\3\126\5\2\3\2\0"+ + "\2\3\3\5\1\3\132\5\1\3\4\5\5\3\53\5"+ + "\1\3\136\5\21\3\40\5\60\3\320\5\100\3\375\5"+ + "\3\3\215\5\103\3\56\5\2\3\15\5\3\3\20\5"+ + "\12\0\2\5\24\3\57\5\1\0\4\3\12\0\1\3"+ + "\37\5\2\0\120\5\2\0\45\3\11\5\2\3\147\5"+ + "\2\3\65\5\2\3\11\5\52\3\15\5\1\0\3\5"+ + "\1\0\4\5\1\0\27\5\5\0\4\3\1\0\13\3"+ + "\1\5\7\3\64\5\14\3\2\0\62\5\22\0\12\3"+ + "\12\0\6\3\22\0\6\5\3\3\1\5\1\3\2\5"+ + "\13\0\34\5\10\0\2\3\27\5\15\0\14\3\35\5"+ + "\3\3\4\0\57\5\16\0\16\3\1\5\12\0\6\3"+ + "\5\5\1\0\12\5\12\0\5\5\1\3\51\5\16\0"+ + "\11\3\3\5\1\0\10\5\2\0\2\3\12\0\6\3"+ + "\27\5\3\3\1\5\3\0\62\5\1\0\1\5\3\0"+ + "\2\5\2\0\5\5\2\0\1\5\1\0\1\5\30\3"+ + "\3\5\2\3\13\5\5\0\2\3\3\5\2\0\12\3"+ + "\6\5\2\3\6\5\2\3\6\5\11\3\7\5\1\3"+ + "\7\5\1\3\53\5\1\3\16\5\6\3\163\5\10\0"+ + "\1\3\2\0\2\3\12\0\6\3\244\5\14\3\27\5"+ + "\4\3\61\5\4\3\156\5\2\3\152\5\46\3\7\5"+ + "\14\3\5\5\5\3\1\5\1\0\12\5\1\3\15\5"+ + "\1\3\5\5\1\3\1\5\1\3\2\5\1\3\2\5"+ + "\1\3\154\5\41\3\153\5\22\3\100\5\2\3\66\5"+ + "\50\3\15\5\3\3\20\0\20\3\20\0\3\3\2\5"+ + "\30\3\3\5\31\3\1\5\6\3\5\5\1\3\207\5"+ + "\2\3\1\0\4\3\1\5\13\3\12\0\7\3\32\5"+ + "\4\3\1\5\1\3\32\5\13\3\131\5\3\3\6\5"+ + "\2\3\6\5\2\3\6\5\2\3\3\5\3\3\2\5"+ + "\3\3\2\5\22\3\3\0\4\3\14\5\1\3\32\5"+ + "\1\3\23\5\1\3\2\5\1\3\17\5\2\3\16\5"+ + "\42\3\173\5\105\3\65\5\210\3\1\0\202\3\35\5"+ + "\3\3\61\5\17\3\1\0\37\3\40\5\15\3\36\5"+ + "\5\3\46\5\5\0\5\3\36\5\2\3\44\5\4\3"+ + "\10\5\1\3\5\5\52\3\236\5\2\3\12\0\6\3"+ + "\44\5\4\3\44\5\4\3\50\5\10\3\64\5\234\3"+ + "\67\5\11\3\26\5\12\3\10\5\230\3\6\5\2\3"+ + "\1\5\1\3\54\5\1\3\2\5\3\3\1\5\2\3"+ + "\27\5\12\3\27\5\11\3\37\5\101\3\23\5\1\3"+ + "\2\5\12\3\26\5\12\3\32\5\106\3\70\5\6\3"+ + "\2\5\100\3\1\5\3\0\1\3\2\0\5\3\4\0"+ + "\4\5\1\3\3\5\1\3\35\5\2\3\3\0\4\3"+ + "\1\0\40\3\35\5\3\3\35\5\43\3\10\5\1\3"+ + "\34\5\2\0\31\3\66\5\12\3\26\5\12\3\23\5"+ + "\15\3\22\5\156\3\111\5\67\3\63\5\15\3\63\5"+ + "\15\3\44\5\4\0\10\3\12\0\u0146\3\52\5\1\3"+ + "\2\0\3\3\2\5\116\3\35\5\12\3\1\5\10\3"+ + "\26\5\13\0\137\3\25\5\33\3\27\5\11\3\3\0"+ + "\65\5\17\0\37\3\12\0\17\3\4\0\55\5\13\0"+ + "\2\3\1\0\17\3\1\0\2\3\31\5\7\3\12\0"+ + "\6\3\3\0\44\5\16\0\1\3\12\0\4\3\1\5"+ + "\2\0\1\5\10\3\43\5\1\0\2\3\1\5\11\3"+ + "\3\0\60\5\16\0\4\5\4\3\4\0\1\3\14\0"+ + "\1\5\1\3\1\5\43\3\22\5\1\3\31\5\14\0"+ + "\6\3\1\0\101\3\7\5\1\3\1\5\1\3\4\5"+ + "\1\3\17\5\1\3\12\5\7\3\57\5\14\0\5\3"+ + "\12\0\6\3\4\0\1\3\10\5\2\3\2\5\2\3"+ + "\26\5\1\3\7\5\1\3\2\5\1\3\5\5\1\3"+ + "\2\0\1\5\7\0\2\3\2\0\2\3\3\0\2\3"+ + "\1\5\6\3\1\0\5\3\5\5\2\0\2\3\7\0"+ + "\3\3\5\0\213\3\65\5\22\0\4\5\5\3\12\0"+ + "\4\3\1\0\3\5\36\3\60\5\24\0\2\5\1\3"+ + "\1\5\10\3\12\0\246\3\57\5\7\0\2\3\11\0"+ + "\27\3\4\5\2\0\42\3\60\5\21\0\3\3\1\5"+ + "\13\3\12\0\46\3\53\5\15\0\1\5\7\3\12\0"+ + "\66\3\33\5\2\3\17\0\4\3\12\0\306\3\54\5"+ + "\17\0\145\3\100\5\12\0\25\3\10\5\2\3\1\5"+ + "\2\3\10\5\1\3\2\5\1\3\30\5\6\0\1\3"+ + "\2\0\2\3\4\0\1\5\1\0\1\5\2\0\14\3"+ + "\12\0\106\3\10\5\2\3\47\5\7\0\2\3\7\0"+ + "\1\5\1\3\1\5\1\0\33\3\1\5\12\0\50\5"+ + "\7\0\1\5\4\0\10\3\1\0\10\3\1\5\13\0"+ + "\56\5\20\0\3\3\1\5\42\3\71\5\7\3\11\5"+ + "\1\3\45\5\10\0\1\3\10\0\1\5\17\3\12\0"+ + "\30\3\36\5\2\3\26\0\1\3\16\0\111\3\7\5"+ + "\1\3\2\5\1\3\46\5\6\0\3\3\1\0\1\3"+ + "\2\0\1\3\7\0\1\5\1\0\10\3\12\0\6\3"+ + "\6\5\1\3\2\5\1\3\40\5\5\0\1\3\2\0"+ + "\1\3\5\0\1\5\7\3\12\0\u0136\3\23\5\4\0"+ + "\271\3\1\5\54\3\4\5\37\3\232\5\146\3\157\5"+ + "\21\3\304\5\274\3\57\5\1\3\11\0\307\3\107\5"+ + "\271\3\71\5\7\3\37\5\1\3\12\0\146\3\36\5"+ + "\2\3\5\0\13\3\60\5\7\0\11\3\4\5\14\3"+ + "\12\0\11\3\25\5\5\3\23\5\260\3\100\5\200\3"+ + "\113\5\4\3\1\0\1\5\67\0\7\3\4\0\15\5"+ + "\100\3\2\5\1\3\1\5\1\0\13\3\2\0\16\3"+ + "\370\5\10\3\326\5\52\3\11\5\367\3\37\5\61\3"+ + "\3\5\21\3\4\5\10\3\u018c\5\4\3\153\5\5\3"+ + "\15\5\3\3\11\5\7\3\12\5\3\3\2\0\1\3"+ + "\4\0\301\3\5\0\3\3\26\0\2\3\7\0\36\3"+ + "\4\0\224\3\3\0\273\3\125\5\1\3\107\5\1\3"+ + "\2\5\2\3\1\5\2\3\2\5\2\3\4\5\1\3"+ + "\14\5\1\3\1\5\1\3\7\5\1\3\101\5\1\3"+ + "\4\5\2\3\10\5\1\3\7\5\1\3\34\5\1\3"+ + "\4\5\1\3\5\5\1\3\1\5\3\3\7\5\1\3"+ + "\u0154\5\2\3\31\5\1\3\31\5\1\3\37\5\1\3"+ + "\31\5\1\3\37\5\1\3\31\5\1\3\37\5\1\3"+ + "\31\5\1\3\37\5\1\3\31\5\1\3\10\5\2\3"+ + "\151\0\4\3\62\0\10\3\1\0\16\3\1\0\26\3"+ + "\5\0\1\3\17\0\120\3\7\0\1\3\21\0\2\3"+ + "\7\0\1\3\2\0\1\3\5\0\325\3\55\5\3\3"+ + "\7\0\7\5\2\3\12\0\4\3\1\5\u0171\3\54\5"+ + "\16\0\5\3\306\5\13\3\7\0\51\3\104\5\7\0"+ + "\1\5\4\3\12\0\u0156\3\1\5\117\3\4\5\1\3"+ + "\33\5\1\3\2\5\1\3\1\5\2\3\1\5\1\3"+ + "\12\5\1\3\4\5\1\3\1\5\1\3\1\5\6\3"+ + "\1\5\4\3\1\5\1\3\1\5\1\3\1\5\1\3"+ + "\3\5\1\3\2\5\1\3\1\5\2\3\1\5\1\3"+ + "\1\5\1\3\1\5\1\3\1\5\1\3\1\5\1\3"+ + "\2\5\1\3\1\5\2\3\4\5\1\3\7\5\1\3"+ + "\4\5\1\3\4\5\1\3\1\5\1\3\12\5\1\3"+ + "\21\5\5\3\3\5\1\3\5\5\1\3\21\5\u0134\3"+ + "\12\0\6\3\336\5\42\3\65\5\13\3\336\5\2\3"+ + "\u0182\5\16\3\u0131\5\37\3\36\5\342\3\113\5\266\3"+ + "\1\0\36\3\140\0\200\3\360\0\20\3"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[30976]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+ - "\1\10\2\4"; + "\1\10\2\3"; private static int [] zzUnpackAction() { int [] result = new int[11]; @@ -211,7 +356,7 @@ class _MacroLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -230,7 +375,7 @@ class _MacroLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -238,25 +383,25 @@ class _MacroLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\2\1\4\1\5\1\2\1\4\1\6"+ - "\1\7\1\10\1\11\14\0\2\3\13\0\1\4\2\0"+ - "\1\4\4\0\4\5\1\12\1\13\1\0\12\5\1\0"+ - "\4\5"; + "\1\2\2\3\1\2\1\4\1\5\1\6\1\7\1\10"+ + "\1\11\1\2\14\0\2\3\10\0\2\4\1\0\1\4"+ + "\1\12\5\4\1\13\1\5\4\0\1\5\5\0\2\4"+ + "\1\0\10\4"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[66]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -283,7 +428,7 @@ class _MacroLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); @@ -335,15 +480,27 @@ class _MacroLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -362,26 +519,22 @@ class _MacroLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -513,7 +666,8 @@ class _MacroLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -547,7 +701,7 @@ class _MacroLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -569,11 +723,11 @@ class _MacroLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -596,45 +750,45 @@ class _MacroLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return TokenType.BAD_CHARACTER; - } - // fall through + } + // fall through case 9: break; - case 2: - { return MacroTokenType.IDENTIFIER; - } - // fall through - case 10: break; - case 3: + case 2: { return MacroTokenType.WHITE_SPACE; - } - // fall through - case 11: break; - case 4: + } + // fall through + case 10: break; + case 3: { return MacroTokenType.STRING_LITERAL; - } - // fall through + } + // fall through + case 11: break; + case 4: + { return MacroTokenType.IDENTIFIER; + } + // fall through case 12: break; - case 5: + case 5: { return MacroTokenType.LPAREN; - } - // fall through + } + // fall through case 13: break; - case 6: + case 6: { return MacroTokenType.RPAREN; - } - // fall through + } + // fall through case 14: break; - case 7: + case 7: { return MacroTokenType.COMMA; - } - // fall through + } + // fall through case 15: break; - case 8: + case 8: { return MacroTokenType.EQ; - } - // fall through + } + // fall through case 16: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_TemplateTextLexer.java b/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_TemplateTextLexer.java index 02ff7582b181..f6e6574ffe78 100644 --- a/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_TemplateTextLexer.java +++ b/platform/analysis-impl/gen/com/intellij/codeInsight/template/impl/_TemplateTextLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: TemplateTextLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.codeInsight.template.impl; @@ -7,11 +8,6 @@ import com.intellij.lexer.FlexLexer; import com.intellij.psi.tree.IElementType; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file TemplateTextLexer.flex - */ class _TemplateTextLexer implements FlexLexer { /** This character denotes the end of file */ @@ -29,38 +25,73 @@ class _TemplateTextLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [8, 6, 7] - * Total runtime size is 1040 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>13]|((ch>>7)&0x3f)]|(ch&0x7f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\u10ff\u0100"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 136 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\207\100"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 128 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\177\200"); - /* The ZZ_CMAP_A table has 256 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\44\0\1\2\13\0\12\1\7\0\32\1\4\0\1\1\1\0\32\1\205\0"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\44\0\1\1\13\0\12\2\7\0\32\2\4\0\1\2"+ + "\1\0\32\2\u0185\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[512]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\2\1\1\0\1\2\1\3"; + "\1\0\2\1\1\2\1\0\1\3"; private static int [] zzUnpackAction() { int [] result = new int[6]; @@ -82,13 +113,13 @@ class _TemplateTextLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\3\0\6\0\11\0\3\0\3"; + "\0\0\0\3\0\6\0\3\0\11\0\3"; private static int [] zzUnpackRowMap() { int [] result = new int[6]; @@ -100,7 +131,7 @@ class _TemplateTextLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -108,22 +139,23 @@ class _TemplateTextLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\2\2\1\3\4\0\1\4\1\5\1\0\1\4\1\6"; + "\1\2\1\3\1\2\4\0\1\4\1\5\1\0\1\6"+ + "\1\5"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[12]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -150,12 +182,12 @@ class _TemplateTextLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\1\1\1\0\2\11"; + "\1\0\1\11\1\1\1\11\1\0\1\11"; private static int [] zzUnpackAttribute() { int [] result = new int[6]; @@ -202,15 +234,27 @@ class _TemplateTextLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -229,26 +273,22 @@ class _TemplateTextLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -380,7 +420,8 @@ class _TemplateTextLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -414,7 +455,7 @@ class _TemplateTextLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -436,11 +477,11 @@ class _TemplateTextLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -463,20 +504,20 @@ class _TemplateTextLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return TemplateTokenType.TEXT; - } - // fall through + } + // fall through case 4: break; - case 2: + case 2: { return TemplateTokenType.ESCAPE_DOLLAR; - } - // fall through + } + // fall through case 5: break; - case 3: + case 3: { return TemplateTokenType.VARIABLE; - } - // fall through + } + // fall through case 6: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/platform/lang-impl/gen/com/intellij/ide/fileTemplates/impl/_FileTemplateTextLexer.java b/platform/lang-impl/gen/com/intellij/ide/fileTemplates/impl/_FileTemplateTextLexer.java index ec42147a0a31..ae5144eda4d3 100644 --- a/platform/lang-impl/gen/com/intellij/ide/fileTemplates/impl/_FileTemplateTextLexer.java +++ b/platform/lang-impl/gen/com/intellij/ide/fileTemplates/impl/_FileTemplateTextLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: FileTemplateTextLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.ide.fileTemplates.impl; @@ -7,11 +8,6 @@ import com.intellij.lexer.FlexLexer; import com.intellij.psi.tree.IElementType; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file FileTemplateTextLexer.flex - */ class _FileTemplateTextLexer implements FlexLexer { /** This character denotes the end of file */ @@ -29,40 +25,75 @@ class _FileTemplateTextLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [8, 6, 7] - * Total runtime size is 1040 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>13]|((ch>>7)&0x3f)]|(ch&0x7f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\u10ff\u0100"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 136 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\207\100"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 128 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\177\200"); - /* The ZZ_CMAP_A table has 256 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\43\0\1\6\1\3\13\0\12\2\7\0\32\1\1\10\1\7\1\11\1\0\1\1\1\0\32\1\1\4\1\0\1"+ - "\5\202\0"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\43\0\1\1\1\2\13\0\12\3\7\0\32\4\1\5"+ + "\1\6\1\7\1\0\1\4\1\0\32\4\1\10\1\0"+ + "\1\11\u0182\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[512]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = "\1\0\5\1\1\2\1\0\1\3\1\0\1\4\1\0"+ - "\1\2\1\0"; + "\1\3\1\0"; private static int [] zzUnpackAction() { int [] result = new int[14]; @@ -84,7 +115,7 @@ class _FileTemplateTextLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -103,7 +134,7 @@ class _FileTemplateTextLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -111,26 +142,26 @@ class _FileTemplateTextLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\3\2\1\3\2\2\1\4\1\5\1\2\1\6\13\0"+ - "\2\7\1\0\1\10\6\0\1\11\6\0\1\12\4\0"+ - "\1\13\2\0\1\13\14\0\1\14\1\0\2\7\1\15"+ - "\7\0\2\16\10\0\1\11\20\0\1\13\7\0\1\13"+ - "\4\0\2\16\2\0\1\15\4\0"; + "\1\2\1\3\1\4\3\2\1\5\1\6\2\2\16\0"+ + "\1\7\1\10\7\0\2\11\3\0\1\12\2\0\2\13"+ + "\16\0\1\14\6\0\1\7\12\0\1\13\6\0\1\15"+ + "\2\11\10\0\2\16\6\0\1\13\13\0\2\16\4\0"+ + "\1\15"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[120]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -157,7 +188,7 @@ class _FileTemplateTextLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); @@ -210,15 +241,27 @@ class _FileTemplateTextLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -237,26 +280,22 @@ class _FileTemplateTextLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -388,7 +427,8 @@ class _FileTemplateTextLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -422,7 +462,7 @@ class _FileTemplateTextLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -444,11 +484,11 @@ class _FileTemplateTextLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -471,25 +511,25 @@ class _FileTemplateTextLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return FileTemplateTokenType.TEXT; - } - // fall through + } + // fall through case 5: break; - case 2: - { return FileTemplateTokenType.MACRO; - } - // fall through - case 6: break; - case 3: + case 2: { return FileTemplateTokenType.DIRECTIVE; - } - // fall through + } + // fall through + case 6: break; + case 3: + { return FileTemplateTokenType.MACRO; + } + // fall through case 7: break; - case 4: + case 4: { return FileTemplateTokenType.ESCAPE; - } - // fall through + } + // fall through case 8: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/platform/lang-impl/gen/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java b/platform/lang-impl/gen/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java index 71dc90318ca1..36681bdd828d 100644 --- a/platform/lang-impl/gen/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java +++ b/platform/lang-impl/gen/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _ScopesLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.psi.search.scope.packageSet.lexer; @@ -6,11 +7,6 @@ import com.intellij.psi.tree.IElementType; import com.intellij.lexer.FlexLexer; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _ScopesLexer.flex - */ class _ScopesLexer implements FlexLexer { /** This character denotes the end of file */ @@ -28,145 +24,317 @@ class _ScopesLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [12, 6, 3] - * Total runtime size is 14752 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900\1\u0100"+ + "\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000\1\u4100"+ + "\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800\1\u4900"+ + "\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u1f00\1\u4e00\1\u4f00\1\u5000"+ + "\1\u5100\3\u0100\1\u5200\1\u5300\1\u5400\12\u1f00\4\u0100\1\u5500"+ + "\17\u1f00\2\u0100\1\u5600\41\u1f00\2\u0100\1\u5700\1\u5800\2\u1f00"+ + "\1\u5900\1\u5a00\27\u0100\1\u5b00\4\u0100\1\u5c00\1\u5d00\42\u1f00"+ + "\1\u0100\1\u5e00\1\u5f00\11\u1f00\1\u6000\24\u1f00\1\u6100\1\u6200"+ + "\1\u1f00\1\u6300\1\u6400\1\u6500\1\u6600\2\u1f00\1\u6700\5\u1f00"+ + "\1\u6800\1\u6900\1\u6a00\5\u1f00\1\u6b00\1\u6c00\2\u1f00\1\u6d00"+ + "\1\u1f00\1\u6e00\14\u1f00\1\u6f00\4\u1f00\246\u0100\1\u7000\20\u0100"+ + "\1\u7100\1\u7200\25\u0100\1\u7300\34\u0100\1\u7400\14\u1f00\2\u0100"+ + "\1\u7500\5\u1f00\23\u0100\1\u7600\u0aec\u1f00\1\u7700\1\u7800\u02fe\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 2176 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+ - "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ - "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\21\1\44\1\45\1\46\1"+ - "\21\1\47\2\21\1\50\4\21\1\25\1\51\1\52\5\21\2\25\1\53\31\21\1\25\1\54\1\21"+ - "\1\55\40\21\1\56\17\21\1\57\1\60\1\61\1\62\13\21\1\63\10\21\123\25\1\64\7"+ - "\25\1\65\1\66\37\21\1\25\1\66\u0582\21\1\67\u017f\21"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3584 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\0\1\2\1\3\1\4\1\5\1\6\1\7\2\10\1\11\1\7\2\10\1\12\4\0\1\13\1\14"+ - "\1\15\1\16\2\10\1\17\3\10\1\17\71\10\1\20\1\10\1\21\1\22\1\23\1\24\2\22\16"+ - "\0\1\25\1\13\1\26\1\27\2\10\1\30\11\10\1\31\21\10\1\32\1\33\23\10\1\22\1\7"+ - "\3\10\1\17\1\34\1\7\4\10\1\35\1\36\4\0\1\37\1\40\1\22\3\10\2\41\1\22\1\42"+ - "\1\43\1\0\1\44\5\10\1\45\3\0\1\46\1\47\13\10\1\50\1\37\1\51\1\52\1\0\1\53"+ - "\1\22\1\54\1\55\3\10\3\0\1\56\12\10\1\57\1\0\1\60\1\22\1\0\1\61\3\10\1\45"+ - "\1\62\1\16\2\10\1\57\1\63\1\64\1\65\2\22\3\10\1\66\10\22\1\67\1\23\6\22\1"+ - "\70\2\0\1\71\1\72\6\10\1\73\2\0\1\74\1\10\1\75\1\0\2\7\1\76\1\77\1\100\2\10"+ - "\1\67\1\101\1\102\1\103\1\104\1\54\1\105\1\75\1\0\1\106\1\43\1\76\1\107\1"+ - "\100\2\10\1\67\1\110\1\111\1\112\1\113\1\114\1\115\1\116\1\0\1\117\1\22\1"+ - "\76\1\31\1\30\2\10\1\67\1\120\1\102\1\37\1\121\1\122\1\22\1\75\1\0\1\34\1"+ - "\22\1\76\1\77\1\100\2\10\1\67\1\120\1\102\1\103\1\113\1\116\1\105\1\75\1\0"+ - "\1\34\1\22\1\123\1\124\1\125\1\126\1\127\1\124\1\10\1\130\1\131\1\132\1\133"+ - "\1\22\1\116\1\0\1\22\1\34\1\76\1\25\1\67\2\10\1\67\1\134\1\135\1\136\1\132"+ - "\1\137\1\21\1\75\1\0\2\22\1\140\1\25\1\67\2\10\1\67\1\134\1\102\1\136\1\132"+ - "\1\137\1\26\1\75\1\0\1\141\1\22\1\140\1\25\1\67\4\10\1\142\1\136\1\143\1\54"+ - "\1\22\1\75\1\0\1\22\1\33\1\140\1\10\1\17\1\33\2\10\1\30\1\144\1\17\1\145\1"+ - "\146\1\0\2\22\1\147\1\22\1\7\5\10\1\150\1\151\1\152\1\71\1\0\1\153\4\22\1"+ - "\154\1\155\1\156\1\7\1\157\1\160\1\150\1\161\1\162\1\163\1\0\1\164\4\22\1"+ - "\122\2\22\1\153\1\0\1\153\1\165\1\166\1\10\1\7\3\10\1\23\1\36\1\0\1\136\1"+ - "\167\1\0\1\36\3\0\1\42\1\170\7\22\5\10\1\45\1\0\1\171\1\0\1\153\1\57\1\172"+ - "\1\173\1\174\1\175\1\10\1\176\1\177\1\0\1\163\4\10\1\31\1\15\5\10\1\200\51"+ - "\10\1\125\1\17\1\125\5\10\1\125\4\10\1\125\1\17\1\125\1\10\1\17\7\10\1\125"+ - "\10\10\1\201\4\22\2\10\2\22\12\10\1\23\1\22\1\7\114\10\1\77\2\10\1\7\2\10"+ - "\1\41\11\10\1\124\1\122\1\22\1\10\1\25\1\202\1\22\2\10\1\202\1\22\2\10\1\203"+ - "\1\22\1\10\1\25\1\204\1\22\6\10\1\205\3\0\1\206\1\207\1\0\1\153\3\22\1\210"+ - "\1\0\1\153\13\10\1\22\5\10\1\211\10\10\1\212\1\22\3\10\1\23\1\0\1\2\1\0\1"+ - "\2\1\116\1\0\3\10\1\212\1\23\1\22\5\10\1\106\2\0\1\47\1\153\1\0\1\153\4\22"+ - "\2\10\1\152\1\2\6\10\1\167\1\71\3\0\1\103\1\0\1\153\1\0\1\153\1\35\13\22\1"+ - "\213\5\10\1\205\1\0\1\213\1\106\1\0\1\153\1\22\1\214\1\2\1\22\1\215\3\10\1"+ - "\74\1\174\1\0\1\61\4\10\1\57\1\0\1\2\1\22\4\10\1\205\2\0\1\22\1\0\1\216\1"+ - "\0\1\61\3\10\1\212\12\22\1\217\2\0\1\220\1\221\1\22\30\10\4\0\1\71\2\22\1"+ - "\70\42\10\2\212\4\10\2\212\1\10\1\222\3\10\1\212\6\10\1\25\1\162\1\223\1\23"+ - "\1\224\1\106\1\10\1\23\1\223\1\23\1\22\1\214\3\22\1\225\1\22\1\35\1\122\1"+ - "\22\1\226\1\22\1\42\1\227\1\34\1\35\2\22\1\10\1\23\3\10\1\41\2\22\1\0\1\42"+ - "\1\230\1\0\1\231\1\22\1\232\1\33\1\144\1\233\1\24\1\234\1\10\1\235\1\236\1"+ - "\237\2\22\5\10\1\122\116\22\5\10\1\17\5\10\1\17\20\10\1\23\1\240\1\241\1\22"+ - "\4\10\1\31\1\15\7\10\1\35\1\22\1\54\2\10\1\17\1\22\10\17\4\0\5\22\1\35\72"+ - "\22\1\236\3\22\1\7\1\176\1\233\1\23\1\7\11\10\1\17\1\242\1\7\12\10\1\200\1"+ - "\236\4\10\1\212\1\7\12\10\1\17\2\22\3\10\1\41\6\22\170\10\1\212\11\22\71\10"+ - "\1\23\6\22\21\10\1\23\10\22\5\10\1\212\41\10\1\23\2\10\1\0\1\241\2\22\5\10"+ - "\1\152\1\70\1\243\3\10\1\54\12\10\1\153\3\22\1\35\1\10\1\33\14\10\1\244\1"+ - "\106\1\22\1\10\1\41\11\22\1\10\1\245\1\246\2\10\1\45\2\22\1\122\6\10\1\106"+ - "\1\22\1\61\5\10\1\205\1\0\1\42\1\22\1\0\1\153\2\0\1\61\1\43\1\0\1\61\2\10"+ - "\1\57\1\163\2\10\1\152\1\0\1\2\1\22\3\10\1\23\1\72\5\10\1\45\1\0\1\231\1\35"+ - "\1\0\1\153\4\22\5\10\1\74\1\71\1\22\1\246\1\247\1\0\1\153\2\10\1\17\1\250"+ - "\6\10\1\173\1\251\1\211\2\22\1\252\1\10\1\45\1\253\1\22\3\254\1\22\2\17\22"+ - "\22\4\10\1\45\1\255\1\0\1\153\64\10\1\106\1\22\2\10\1\17\1\256\5\10\1\106"+ - "\40\22\55\10\1\212\15\10\1\21\4\22\1\17\1\22\1\256\1\257\1\10\1\67\1\17\1"+ - "\162\1\260\15\10\1\21\3\22\1\256\54\10\1\212\2\22\10\10\1\33\6\10\5\22\1\10"+ - "\1\23\2\0\2\22\1\71\1\22\1\127\2\22\1\236\3\22\1\34\1\25\20\10\1\261\1\226"+ - "\1\22\1\0\1\153\1\7\2\10\1\107\1\7\2\10\1\41\1\262\12\10\1\17\3\33\1\263\1"+ - "\264\2\22\1\265\1\10\1\134\2\10\1\17\2\10\1\266\1\10\1\212\1\10\1\212\4\22"+ - "\17\10\1\41\10\22\6\10\1\23\20\22\1\267\20\22\3\10\1\23\6\10\1\122\5\22\3"+ - "\10\1\17\2\22\3\10\1\41\6\22\3\10\1\212\4\10\1\106\1\10\1\233\5\22\23\10\1"+ - "\212\1\0\1\153\52\22\1\212\1\67\4\10\1\31\1\270\2\10\1\212\25\22\2\10\1\212"+ - "\1\22\3\10\1\21\10\22\7\10\1\262\10\22\1\271\1\70\1\134\1\7\2\10\1\106\1\112"+ - "\4\22\3\10\1\23\20\22\6\10\1\212\1\22\2\10\1\212\1\22\2\10\1\41\21\22\11\10"+ - "\1\122\66\22\1\215\6\10\1\0\1\71\3\22\1\116\1\0\2\22\1\215\5\10\1\0\1\272"+ - "\2\22\3\10\1\122\1\0\1\153\1\215\3\10\1\152\1\0\1\136\1\0\10\22\1\215\5\10"+ - "\1\45\1\0\1\273\1\22\1\0\1\153\24\22\5\10\1\45\1\0\1\22\1\0\1\153\46\22\55"+ - "\10\1\17\22\22\14\10\1\41\63\22\5\10\1\17\72\22\7\10\1\122\130\22\10\10\1"+ - "\23\1\22\1\74\4\0\1\71\1\22\1\54\1\215\1\10\14\22\1\21\153\22\1\274\1\275"+ - "\2\0\1\276\1\2\3\22\1\277\22\22\1\300\67\22\12\10\1\25\10\10\1\25\1\301\1"+ - "\302\1\10\1\303\1\134\7\10\1\31\1\304\2\25\3\10\1\305\1\162\1\33\1\67\51\10"+ - "\1\212\3\10\1\67\2\10\1\200\3\10\1\200\2\10\1\25\3\10\1\25\2\10\1\17\3\10"+ - "\1\17\3\10\1\67\3\10\1\67\2\10\1\200\1\306\6\0\1\134\3\10\1\154\1\7\1\200"+ - "\1\307\1\232\1\310\1\154\1\222\1\154\2\200\1\115\1\10\1\30\1\10\1\106\1\311"+ - "\1\30\1\10\1\106\50\22\32\10\1\17\5\22\106\10\1\23\1\22\33\10\1\212\74\22"+ - "\1\114\3\22\14\0\20\22\36\0\2\22"); - /* The ZZ_CMAP_A table has 1616 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\2\2\3\1\0\2\3\6\2\4\0\1\3\1\7\1\0\1\22\1\1\1\0\1\6\1\0\1\14\1\15\1\20"+ - "\2\0\1\10\1\16\1\21\12\4\1\17\6\0\22\1\1\12\1\0\1\13\1\0\4\1\1\0\1\5\1\0\1"+ - "\11\1\2\2\0\4\1\4\0\1\1\2\0\1\2\7\0\1\1\4\0\1\1\5\0\7\1\1\0\2\1\4\0\4\1\16"+ - "\0\5\1\7\0\1\1\1\0\1\1\1\0\5\1\1\0\2\1\6\0\1\1\1\0\3\1\1\0\1\1\1\0\4\1\1\0"+ - "\13\1\1\0\3\1\1\0\5\2\2\0\6\1\1\0\1\1\15\0\1\1\1\0\15\2\1\0\1\2\1\0\2\2\1"+ - "\0\2\2\1\0\1\2\3\1\5\0\5\2\6\0\1\1\4\0\3\2\5\0\3\1\7\2\4\0\2\1\1\2\13\1\1"+ - "\0\1\1\7\2\2\1\2\2\1\0\4\2\2\1\2\2\3\1\2\0\1\1\7\0\1\2\1\1\1\2\6\1\3\2\2\0"+ - "\11\1\3\2\1\1\6\0\2\2\6\1\4\2\2\1\2\0\2\2\1\1\11\2\1\1\3\2\1\1\5\2\2\0\1\1"+ - "\3\2\4\0\1\1\1\0\6\1\4\0\13\2\1\0\4\2\6\1\3\2\1\1\2\2\1\1\7\2\2\1\2\2\2\0"+ - "\2\2\1\0\3\2\1\0\10\1\2\0\2\1\2\0\6\1\1\0\1\1\3\0\4\1\2\0\1\2\1\1\7\2\2\0"+ - "\2\2\2\0\3\2\1\1\5\0\2\1\1\0\5\1\4\0\3\1\4\0\2\1\1\0\2\1\1\0\2\1\1\0\2\1\2"+ - "\0\1\2\1\0\5\2\4\0\2\2\2\0\3\2\3\0\1\2\7\0\4\1\1\0\1\1\7\0\4\2\3\1\1\2\2\0"+ - "\1\1\1\0\2\1\1\0\3\1\2\2\1\0\3\2\2\0\1\1\11\0\1\2\1\1\1\0\6\1\3\0\3\1\1\0"+ - "\4\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0\2\1\3\0\2\1\4\0\5\2\3\0\3\2\1\0\4\2\2\0\1"+ - "\1\6\0\1\2\4\1\1\0\5\1\3\0\1\1\7\2\1\0\2\2\5\0\2\2\3\0\2\2\1\0\3\1\1\0\2\1"+ - "\5\0\3\1\2\0\1\1\3\2\1\0\4\2\1\1\1\0\4\1\1\0\1\1\4\0\1\2\4\0\6\2\1\0\1\2\3"+ - "\0\2\2\4\0\1\1\1\2\2\1\7\2\4\0\10\1\3\2\7\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1\2"+ - "\0\1\1\6\0\4\1\1\0\3\1\1\0\1\1\1\0\1\1\2\0\2\1\1\0\3\1\2\2\1\0\2\2\1\1\2\0"+ - "\5\1\1\0\1\1\1\0\6\2\2\0\2\2\2\0\4\1\5\0\1\2\1\0\1\2\1\0\1\2\4\0\2\2\5\1\3"+ - "\2\6\0\1\2\1\0\7\2\1\1\2\2\4\1\3\2\1\1\3\2\2\1\7\2\3\1\4\2\5\1\14\2\1\1\1"+ - "\2\3\1\1\0\7\1\2\0\3\2\2\1\3\2\3\0\2\1\2\2\4\0\1\1\1\0\2\2\4\0\4\1\10\2\3"+ - "\0\1\1\3\0\2\1\1\2\5\0\3\2\2\0\1\1\1\2\1\1\5\0\6\1\2\0\5\2\3\1\3\0\10\2\5"+ - "\1\2\2\3\0\3\1\3\2\1\0\5\2\4\1\1\2\4\1\3\2\2\1\2\0\1\1\1\0\1\1\1\0\1\1\1\0"+ - "\1\1\2\0\3\1\1\0\6\1\2\0\2\1\2\0\5\2\5\0\1\1\5\0\6\2\1\0\1\2\3\0\4\2\11\0"+ - "\1\1\4\0\1\1\1\0\5\1\2\0\1\1\1\0\4\1\1\0\3\1\2\0\4\1\5\0\5\1\4\0\1\1\4\0\4"+ - "\1\3\2\2\1\5\0\2\2\2\0\3\1\6\2\1\0\2\1\2\0\4\1\1\0\2\1\1\2\3\1\1\2\4\1\1\2"+ - "\10\1\2\2\4\0\1\1\1\2\4\0\1\2\5\1\2\2\3\0\3\1\4\0\3\1\2\2\2\0\6\1\1\0\3\2"+ - "\1\0\2\2\5\0\5\1\5\0\1\1\1\2\3\1\1\0\2\1\1\0\7\1\2\0\1\2\6\0\2\1\2\0\3\1\3"+ - "\0\2\1\3\0\2\1\2\0\3\2\4\0\3\1\1\0\2\1\1\0\1\1\5\0\1\2\2\0\1\1\3\0\1\1\2\0"+ - "\2\1\3\2\1\0\2\2\1\0\3\2\2\0\1\2\2\0\1\2\4\1\10\0\5\2\3\0\6\2\2\0\3\2\2\0"+ - "\4\2\4\0\3\2\5\0\1\1\2\0\2\1\2\0\4\1\1\0\4\1\1\0\1\1\1\0\6\1\2\0\5\1\1\0\4"+ - "\1\1\0\4\1\2\0\2\2\1\0\1\1\1\0\1\1\5\0\1\1\1\0\1\1\1\0\3\1\1\0\3\1\1\0\3\1"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\2\1\1\2\2\1\16\0\4\2\1\1\1\3"+ + "\1\2\1\4\1\5\1\2\1\6\1\2\1\7\1\10"+ + "\1\11\2\2\1\12\1\13\1\14\12\15\1\16\6\2"+ + "\32\5\1\17\1\2\1\20\1\2\1\5\1\2\32\5"+ + "\1\2\1\21\1\2\1\22\41\0\2\2\4\5\4\2"+ + "\1\5\2\2\1\0\7\2\1\5\4\2\1\5\5\2"+ + "\27\5\1\2\37\5\1\2\u01ca\5\4\2\14\5\16\2"+ + "\5\5\7\2\1\5\1\2\1\5\21\2\160\0\5\5"+ + "\1\2\2\5\2\2\4\5\1\2\1\5\6\2\1\5"+ + "\1\2\3\5\1\2\1\5\1\2\24\5\1\2\123\5"+ + "\1\2\213\5\1\2\5\0\2\2\246\5\1\2\46\5"+ + "\2\2\1\5\6\2\51\5\6\2\1\5\1\2\55\0"+ + "\1\2\1\0\1\2\2\0\1\2\2\0\1\2\1\0"+ + "\10\2\33\5\4\2\4\5\15\2\6\0\5\2\1\5"+ + "\4\2\13\0\1\2\1\0\3\2\53\5\37\0\4\2"+ + "\2\5\1\0\143\5\1\2\1\5\10\0\1\2\6\0"+ + "\2\5\2\0\1\2\4\0\2\5\12\0\3\5\2\2"+ + "\1\5\17\2\1\0\1\5\1\0\36\5\33\0\2\2"+ + "\131\5\13\0\1\5\16\2\12\0\41\5\11\0\2\5"+ + "\4\2\1\5\2\2\1\0\30\5\4\0\1\5\11\0"+ + "\1\5\3\0\1\5\5\0\22\2\31\5\3\0\4\2"+ + "\13\5\65\2\25\5\1\2\22\5\13\2\61\0\66\5"+ + "\3\0\1\5\22\0\1\5\7\0\12\5\2\0\2\2"+ + "\12\0\1\2\20\5\3\0\1\2\10\5\2\2\2\5"+ + "\2\2\26\5\1\2\7\5\1\2\1\5\3\2\4\5"+ + "\2\2\1\0\1\5\7\0\2\2\2\0\2\2\3\0"+ + "\1\5\10\2\1\0\4\2\2\5\1\2\3\5\2\0"+ + "\2\2\12\0\4\5\7\2\2\5\1\2\1\0\2\2"+ + "\3\0\1\2\6\5\4\2\2\5\2\2\26\5\1\2"+ + "\7\5\1\2\2\5\1\2\2\5\1\2\2\5\2\2"+ + "\1\0\1\2\5\0\4\2\2\0\2\2\3\0\3\2"+ + "\1\0\7\2\4\5\1\2\1\5\7\2\14\0\3\5"+ + "\1\0\13\2\3\0\1\2\11\5\1\2\3\5\1\2"+ + "\26\5\1\2\7\5\1\2\2\5\1\2\5\5\2\2"+ + "\1\0\1\5\10\0\1\2\3\0\1\2\3\0\2\2"+ + "\1\5\17\2\2\5\2\0\2\2\12\0\1\2\1\5"+ + "\7\2\1\5\6\0\1\2\3\0\1\2\10\5\2\2"+ + "\2\5\2\2\26\5\1\2\7\5\1\2\2\5\1\2"+ + "\5\5\2\2\1\0\1\5\7\0\2\2\2\0\2\2"+ + "\3\0\7\2\3\0\4\2\2\5\1\2\3\5\2\0"+ + "\2\2\12\0\1\2\1\5\20\2\1\0\1\5\1\2"+ + "\6\5\3\2\3\5\1\2\4\5\3\2\2\5\1\2"+ + "\1\5\1\2\2\5\3\2\2\5\3\2\3\5\3\2"+ + "\14\5\4\2\5\0\3\2\3\0\1\2\4\0\2\2"+ + "\1\5\6\2\1\0\16\2\12\0\11\2\1\5\6\2"+ + "\5\0\10\5\1\2\3\5\1\2\27\5\1\2\20\5"+ + "\3\2\1\5\7\0\1\2\3\0\1\2\4\0\7\2"+ + "\2\0\1\2\3\5\5\2\2\5\2\0\2\2\12\0"+ + "\20\2\1\5\3\0\1\2\10\5\1\2\3\5\1\2"+ + "\27\5\1\2\12\5\1\2\5\5\2\2\1\0\1\5"+ + "\7\0\1\2\3\0\1\2\4\0\7\2\2\0\7\2"+ + "\1\5\1\2\2\5\2\0\2\2\12\0\1\2\2\5"+ + "\15\2\4\0\11\5\1\2\3\5\1\2\51\5\2\0"+ + "\1\5\7\0\1\2\3\0\1\2\4\0\1\5\5\2"+ + "\3\5\1\0\7\2\3\5\2\0\2\2\12\0\12\2"+ + "\6\5\1\2\3\0\1\2\22\5\3\2\30\5\1\2"+ + "\11\5\1\2\1\5\2\2\7\5\3\2\1\0\4\2"+ + "\6\0\1\2\1\0\1\2\10\0\6\2\12\0\2\2"+ + "\2\0\15\2\60\5\1\0\2\5\7\0\4\2\10\5"+ + "\10\0\1\2\12\0\47\2\2\5\1\2\1\5\1\2"+ + "\5\5\1\2\30\5\1\2\1\5\1\2\12\5\1\0"+ + "\2\5\11\0\1\5\2\2\5\5\1\2\1\5\1\2"+ + "\6\0\2\2\12\0\2\2\4\5\40\2\1\5\27\2"+ + "\2\0\6\2\12\0\13\2\1\0\1\2\1\0\1\2"+ + "\1\0\4\2\2\0\10\5\1\2\44\5\4\2\24\0"+ + "\1\2\2\0\5\5\13\0\1\2\44\0\11\2\1\0"+ + "\71\2\53\5\24\0\1\5\12\0\6\2\6\5\4\0"+ + "\4\5\3\0\1\5\3\0\2\5\7\0\3\5\4\0"+ + "\15\5\14\0\1\5\17\0\2\2\46\5\1\2\1\5"+ + "\5\2\1\5\2\2\53\5\1\2\115\5\1\2\4\5"+ + "\2\2\7\5\1\2\1\5\1\2\4\5\2\2\51\5"+ + "\1\2\4\5\2\2\41\5\1\2\4\5\2\2\7\5"+ + "\1\2\1\5\1\2\4\5\2\2\17\5\1\2\71\5"+ + "\1\2\4\5\2\2\103\5\2\2\3\0\40\2\20\5"+ + "\20\2\126\5\2\2\6\5\3\2\u016c\5\2\2\21\5"+ + "\1\2\32\5\5\2\113\5\3\2\13\5\7\2\15\5"+ + "\1\2\4\5\3\0\13\2\22\5\3\0\13\2\22\5"+ + "\2\0\14\2\15\5\1\2\3\5\1\2\2\0\14\2"+ + "\64\5\40\0\3\2\1\5\3\2\2\5\1\0\2\2"+ + "\12\0\41\2\4\0\1\2\12\0\6\2\131\5\7\2"+ + "\5\5\2\0\42\5\1\0\1\5\5\2\106\5\12\2"+ + "\37\5\1\2\14\0\4\2\14\0\12\2\12\0\36\5"+ + "\2\2\5\5\13\2\54\5\4\2\32\5\6\2\12\0"+ + "\46\2\27\5\5\0\4\2\65\5\12\0\1\2\35\0"+ + "\2\2\13\0\6\2\12\0\15\2\1\5\10\2\16\0"+ + "\1\2\2\0\77\2\5\0\57\5\21\0\7\5\4\2"+ + "\12\0\21\2\11\0\14\2\3\0\36\5\15\0\2\5"+ + "\12\0\54\5\16\0\14\2\44\5\24\0\10\2\12\0"+ + "\3\2\3\5\12\0\44\5\2\2\11\5\7\2\53\5"+ + "\2\2\3\5\20\2\3\0\1\2\25\0\4\5\1\0"+ + "\6\5\1\0\2\5\3\0\1\5\5\2\300\5\72\0"+ + "\1\2\5\0\26\5\2\2\6\5\2\2\46\5\2\2"+ + "\6\5\2\2\10\5\1\2\1\5\1\2\1\5\1\2"+ + "\1\5\1\2\37\5\2\2\65\5\1\2\7\5\1\2"+ + "\1\5\3\2\3\5\1\2\7\5\3\2\4\5\2\2"+ + "\6\5\4\2\15\5\5\2\3\5\1\2\7\5\16\2"+ + "\5\0\32\2\5\0\20\2\2\5\23\2\1\5\13\2"+ + "\5\0\1\2\12\0\1\2\1\5\15\2\1\5\20\2"+ + "\15\5\3\2\40\5\20\2\15\0\4\2\1\0\3\2"+ + "\14\0\21\2\1\5\4\2\1\5\2\2\12\5\1\2"+ + "\1\5\3\2\5\5\6\2\1\5\1\2\1\5\1\2"+ + "\1\5\1\2\4\5\1\2\13\5\2\2\4\5\5\2"+ + "\5\5\4\2\1\5\21\2\51\5\u0177\2\57\5\1\2"+ + "\57\5\1\2\205\5\6\2\4\5\3\0\2\5\14\2"+ + "\46\5\1\2\1\5\5\2\1\5\2\2\70\5\7\2"+ + "\1\5\17\2\1\0\27\5\11\2\7\5\1\2\7\5"+ + "\1\2\7\5\1\2\7\5\1\2\7\5\1\2\7\5"+ + "\1\2\7\5\1\2\7\5\1\2\40\0\57\2\1\5"+ + "\325\2\3\5\31\2\11\5\6\0\1\2\5\5\2\2"+ + "\5\5\4\2\126\5\2\2\2\0\2\2\3\5\1\2"+ + "\132\5\1\2\4\5\5\2\53\5\1\2\136\5\21\2"+ + "\40\5\60\2\320\5\100\2\375\5\3\2\215\5\103\2"+ + "\56\5\2\2\15\5\3\2\20\5\12\0\2\5\24\2"+ + "\57\5\1\0\4\2\12\0\1\2\37\5\2\0\120\5"+ + "\2\0\45\2\11\5\2\2\147\5\2\2\65\5\2\2"+ + "\11\5\52\2\15\5\1\0\3\5\1\0\4\5\1\0"+ + "\27\5\5\0\4\2\1\0\13\2\1\5\7\2\64\5"+ + "\14\2\2\0\62\5\22\0\12\2\12\0\6\2\22\0"+ + "\6\5\3\2\1\5\1\2\2\5\13\0\34\5\10\0"+ + "\2\2\27\5\15\0\14\2\35\5\3\2\4\0\57\5"+ + "\16\0\16\2\1\5\12\0\6\2\5\5\1\0\12\5"+ + "\12\0\5\5\1\2\51\5\16\0\11\2\3\5\1\0"+ + "\10\5\2\0\2\2\12\0\6\2\27\5\3\2\1\5"+ + "\3\0\62\5\1\0\1\5\3\0\2\5\2\0\5\5"+ + "\2\0\1\5\1\0\1\5\30\2\3\5\2\2\13\5"+ + "\5\0\2\2\3\5\2\0\12\2\6\5\2\2\6\5"+ + "\2\2\6\5\11\2\7\5\1\2\7\5\1\2\53\5"+ + "\1\2\16\5\6\2\163\5\10\0\1\2\2\0\2\2"+ + "\12\0\6\2\244\5\14\2\27\5\4\2\61\5\4\2"+ + "\156\5\2\2\152\5\46\2\7\5\14\2\5\5\5\2"+ + "\1\5\1\0\12\5\1\2\15\5\1\2\5\5\1\2"+ + "\1\5\1\2\2\5\1\2\2\5\1\2\154\5\41\2"+ + "\153\5\22\2\100\5\2\2\66\5\50\2\15\5\3\2"+ + "\20\0\20\2\20\0\3\2\2\5\30\2\3\5\31\2"+ + "\1\5\6\2\5\5\1\2\207\5\2\2\1\0\4\2"+ + "\1\5\13\2\12\0\7\2\32\5\4\2\1\5\1\2"+ + "\32\5\13\2\131\5\3\2\6\5\2\2\6\5\2\2"+ + "\6\5\2\2\3\5\3\2\2\5\3\2\2\5\22\2"+ + "\3\0\4\2\14\5\1\2\32\5\1\2\23\5\1\2"+ + "\2\5\1\2\17\5\2\2\16\5\42\2\173\5\105\2"+ + "\65\5\210\2\1\0\202\2\35\5\3\2\61\5\17\2"+ + "\1\0\37\2\40\5\15\2\36\5\5\2\46\5\5\0"+ + "\5\2\36\5\2\2\44\5\4\2\10\5\1\2\5\5"+ + "\52\2\236\5\2\2\12\0\6\2\44\5\4\2\44\5"+ + "\4\2\50\5\10\2\64\5\234\2\67\5\11\2\26\5"+ + "\12\2\10\5\230\2\6\5\2\2\1\5\1\2\54\5"+ + "\1\2\2\5\3\2\1\5\2\2\27\5\12\2\27\5"+ + "\11\2\37\5\101\2\23\5\1\2\2\5\12\2\26\5"+ + "\12\2\32\5\106\2\70\5\6\2\2\5\100\2\1\5"+ + "\3\0\1\2\2\0\5\2\4\0\4\5\1\2\3\5"+ + "\1\2\35\5\2\2\3\0\4\2\1\0\40\2\35\5"+ + "\3\2\35\5\43\2\10\5\1\2\34\5\2\0\31\2"+ + "\66\5\12\2\26\5\12\2\23\5\15\2\22\5\156\2"+ + "\111\5\67\2\63\5\15\2\63\5\15\2\44\5\4\0"+ + "\10\2\12\0\u0146\2\52\5\1\2\2\0\3\2\2\5"+ + "\116\2\35\5\12\2\1\5\10\2\26\5\13\0\137\2"+ + "\25\5\33\2\27\5\11\2\3\0\65\5\17\0\37\2"+ + "\12\0\17\2\4\0\55\5\13\0\2\2\1\0\17\2"+ + "\1\0\2\2\31\5\7\2\12\0\6\2\3\0\44\5"+ + "\16\0\1\2\12\0\4\2\1\5\2\0\1\5\10\2"+ + "\43\5\1\0\2\2\1\5\11\2\3\0\60\5\16\0"+ + "\4\5\4\2\4\0\1\2\14\0\1\5\1\2\1\5"+ + "\43\2\22\5\1\2\31\5\14\0\6\2\1\0\101\2"+ + "\7\5\1\2\1\5\1\2\4\5\1\2\17\5\1\2"+ + "\12\5\7\2\57\5\14\0\5\2\12\0\6\2\4\0"+ + "\1\2\10\5\2\2\2\5\2\2\26\5\1\2\7\5"+ + "\1\2\2\5\1\2\5\5\1\2\2\0\1\5\7\0"+ + "\2\2\2\0\2\2\3\0\2\2\1\5\6\2\1\0"+ + "\5\2\5\5\2\0\2\2\7\0\3\2\5\0\213\2"+ + "\65\5\22\0\4\5\5\2\12\0\4\2\1\0\3\5"+ + "\36\2\60\5\24\0\2\5\1\2\1\5\10\2\12\0"+ + "\246\2\57\5\7\0\2\2\11\0\27\2\4\5\2\0"+ + "\42\2\60\5\21\0\3\2\1\5\13\2\12\0\46\2"+ + "\53\5\15\0\1\5\7\2\12\0\66\2\33\5\2\2"+ + "\17\0\4\2\12\0\306\2\54\5\17\0\145\2\100\5"+ + "\12\0\25\2\10\5\2\2\1\5\2\2\10\5\1\2"+ + "\2\5\1\2\30\5\6\0\1\2\2\0\2\2\4\0"+ + "\1\5\1\0\1\5\2\0\14\2\12\0\106\2\10\5"+ + "\2\2\47\5\7\0\2\2\7\0\1\5\1\2\1\5"+ + "\1\0\33\2\1\5\12\0\50\5\7\0\1\5\4\0"+ + "\10\2\1\0\10\2\1\5\13\0\56\5\20\0\3\2"+ + "\1\5\42\2\71\5\7\2\11\5\1\2\45\5\10\0"+ + "\1\2\10\0\1\5\17\2\12\0\30\2\36\5\2\2"+ + "\26\0\1\2\16\0\111\2\7\5\1\2\2\5\1\2"+ + "\46\5\6\0\3\2\1\0\1\2\2\0\1\2\7\0"+ + "\1\5\1\0\10\2\12\0\6\2\6\5\1\2\2\5"+ + "\1\2\40\5\5\0\1\2\2\0\1\2\5\0\1\5"+ + "\7\2\12\0\u0136\2\23\5\4\0\271\2\1\5\54\2"+ + "\4\5\37\2\232\5\146\2\157\5\21\2\304\5\274\2"+ + "\57\5\1\2\11\0\307\2\107\5\271\2\71\5\7\2"+ + "\37\5\1\2\12\0\146\2\36\5\2\2\5\0\13\2"+ + "\60\5\7\0\11\2\4\5\14\2\12\0\11\2\25\5"+ + "\5\2\23\5\260\2\100\5\200\2\113\5\4\2\1\0"+ + "\1\5\67\0\7\2\4\0\15\5\100\2\2\5\1\2"+ + "\1\5\1\0\13\2\2\0\16\2\370\5\10\2\326\5"+ + "\52\2\11\5\367\2\37\5\61\2\3\5\21\2\4\5"+ + "\10\2\u018c\5\4\2\153\5\5\2\15\5\3\2\11\5"+ + "\7\2\12\5\3\2\2\0\1\2\4\0\301\2\5\0"+ + "\3\2\26\0\2\2\7\0\36\2\4\0\224\2\3\0"+ + "\273\2\125\5\1\2\107\5\1\2\2\5\2\2\1\5"+ + "\2\2\2\5\2\2\4\5\1\2\14\5\1\2\1\5"+ + "\1\2\7\5\1\2\101\5\1\2\4\5\2\2\10\5"+ + "\1\2\7\5\1\2\34\5\1\2\4\5\1\2\5\5"+ + "\1\2\1\5\3\2\7\5\1\2\u0154\5\2\2\31\5"+ + "\1\2\31\5\1\2\37\5\1\2\31\5\1\2\37\5"+ + "\1\2\31\5\1\2\37\5\1\2\31\5\1\2\37\5"+ + "\1\2\31\5\1\2\10\5\2\2\151\0\4\2\62\0"+ + "\10\2\1\0\16\2\1\0\26\2\5\0\1\2\17\0"+ + "\120\2\7\0\1\2\21\0\2\2\7\0\1\2\2\0"+ + "\1\2\5\0\325\2\55\5\3\2\7\0\7\5\2\2"+ + "\12\0\4\2\1\5\u0171\2\54\5\16\0\5\2\306\5"+ + "\13\2\7\0\51\2\104\5\7\0\1\5\4\2\12\0"+ + "\u0156\2\1\5\117\2\4\5\1\2\33\5\1\2\2\5"+ + "\1\2\1\5\2\2\1\5\1\2\12\5\1\2\4\5"+ + "\1\2\1\5\1\2\1\5\6\2\1\5\4\2\1\5"+ + "\1\2\1\5\1\2\1\5\1\2\3\5\1\2\2\5"+ + "\1\2\1\5\2\2\1\5\1\2\1\5\1\2\1\5"+ + "\1\2\1\5\1\2\1\5\1\2\2\5\1\2\1\5"+ + "\2\2\4\5\1\2\7\5\1\2\4\5\1\2\4\5"+ + "\1\2\1\5\1\2\12\5\1\2\21\5\5\2\3\5"+ + "\1\2\5\5\1\2\21\5\u0134\2\12\0\6\2\336\5"+ + "\42\2\65\5\13\2\336\5\2\2\u0182\5\16\2\u0131\5"+ + "\37\2\36\5\342\2\113\5\266\2\1\0\36\2\140\0"+ + "\200\2\360\0\20\2"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[30976]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\3\1\4\2\1\1\5\1\6"+ + "\1\0\1\1\1\2\1\3\1\4\1\5\1\1\1\6"+ "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\20\1\21\1\22"; + "\1\17\1\1\1\20\1\21\1\22"; private static int [] zzUnpackAction() { int [] result = new int[21]; @@ -188,15 +356,15 @@ class _ScopesLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\23\0\46\0\71\0\114\0\137\0\162\0\23"+ - "\0\23\0\23\0\23\0\23\0\23\0\23\0\23\0\23"+ - "\0\23\0\23\0\23\0\23\0\23"; + "\0\0\0\23\0\46\0\23\0\23\0\71\0\114\0\23"+ + "\0\23\0\23\0\23\0\23\0\23\0\137\0\23\0\23"+ + "\0\23\0\162\0\23\0\23\0\23"; private static int [] zzUnpackRowMap() { int [] result = new int[21]; @@ -208,7 +376,7 @@ class _ScopesLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -216,25 +384,26 @@ class _ScopesLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = "\1\2\1\3\1\2\1\4\1\5\1\6\1\7\1\10"+ "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+ - "\1\21\1\22\1\23\24\0\2\3\1\0\1\3\21\0"+ - "\1\4\23\0\1\5\23\0\1\24\23\0\1\25\14\0"; + "\1\21\1\22\1\23\24\0\1\3\21\0\1\6\4\0"+ + "\1\6\7\0\1\6\13\0\1\24\31\0\1\16\26\0"+ + "\1\25\1\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[133]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -261,12 +430,13 @@ class _ScopesLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\5\1\16\11"; + "\1\0\1\11\1\1\2\11\2\1\6\11\1\1\3\11"+ + "\1\1\3\11"; private static int [] zzUnpackAttribute() { int [] result = new int[21]; @@ -313,15 +483,27 @@ class _ScopesLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -340,26 +522,22 @@ class _ScopesLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -491,7 +669,8 @@ class _ScopesLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -525,7 +704,7 @@ class _ScopesLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -547,11 +726,11 @@ class _ScopesLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -574,95 +753,95 @@ class _ScopesLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return ScopeTokenTypes.BAD_CHARACTER; - } - // fall through + } + // fall through case 19: break; - case 2: - { return ScopeTokenTypes.IDENTIFIER; - } - // fall through - case 20: break; - case 3: + case 2: { return ScopeTokenTypes.WHITE_SPACE; - } - // fall through - case 21: break; - case 4: - { return ScopeTokenTypes.INTEGER_LITERAL; - } - // fall through - case 22: break; - case 5: + } + // fall through + case 20: break; + case 3: { return ScopeTokenTypes.EXCL; - } - // fall through - case 23: break; - case 6: - { return ScopeTokenTypes.MINUS; - } - // fall through - case 24: break; - case 7: - { return ScopeTokenTypes.TILDE; - } - // fall through - case 25: break; - case 8: - { return ScopeTokenTypes.LBRACKET; - } - // fall through - case 26: break; - case 9: - { return ScopeTokenTypes.RBRACKET; - } - // fall through - case 27: break; - case 10: - { return ScopeTokenTypes.LPARENTH; - } - // fall through - case 28: break; - case 11: - { return ScopeTokenTypes.RPARENTH; - } - // fall through - case 29: break; - case 12: - { return ScopeTokenTypes.DOT; - } - // fall through - case 30: break; - case 13: - { return ScopeTokenTypes.COLON; - } - // fall through - case 31: break; - case 14: - { return ScopeTokenTypes.ASTERISK; - } - // fall through - case 32: break; - case 15: - { return ScopeTokenTypes.DIV; - } - // fall through - case 33: break; - case 16: + } + // fall through + case 21: break; + case 4: { return ScopeTokenTypes.SHARP; - } - // fall through + } + // fall through + case 22: break; + case 5: + { return ScopeTokenTypes.IDENTIFIER; + } + // fall through + case 23: break; + case 6: + { return ScopeTokenTypes.LPARENTH; + } + // fall through + case 24: break; + case 7: + { return ScopeTokenTypes.RPARENTH; + } + // fall through + case 25: break; + case 8: + { return ScopeTokenTypes.ASTERISK; + } + // fall through + case 26: break; + case 9: + { return ScopeTokenTypes.MINUS; + } + // fall through + case 27: break; + case 10: + { return ScopeTokenTypes.DOT; + } + // fall through + case 28: break; + case 11: + { return ScopeTokenTypes.DIV; + } + // fall through + case 29: break; + case 12: + { return ScopeTokenTypes.INTEGER_LITERAL; + } + // fall through + case 30: break; + case 13: + { return ScopeTokenTypes.COLON; + } + // fall through + case 31: break; + case 14: + { return ScopeTokenTypes.LBRACKET; + } + // fall through + case 32: break; + case 15: + { return ScopeTokenTypes.RBRACKET; + } + // fall through + case 33: break; + case 16: + { return ScopeTokenTypes.TILDE; + } + // fall through case 34: break; - case 17: - { return ScopeTokenTypes.OROR; - } - // fall through - case 35: break; - case 18: + case 17: { return ScopeTokenTypes.ANDAND; - } - // fall through + } + // fall through + case 35: break; + case 18: + { return ScopeTokenTypes.OROR; + } + // fall through case 36: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/groovydoc/lexer/_GroovyDocLexer.java b/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/groovydoc/lexer/_GroovyDocLexer.java index 7b3c243ae884..f6109acf30cb 100644 --- a/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/groovydoc/lexer/_GroovyDocLexer.java +++ b/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/groovydoc/lexer/_GroovyDocLexer.java @@ -1,7 +1,7 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. - -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: gdoc.flex +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.plugins.groovy.lang.groovydoc.lexer; import com.intellij.lexer.FlexLexer; @@ -10,11 +10,6 @@ import com.intellij.psi.tree.IElementType; import static org.jetbrains.plugins.groovy.lang.groovydoc.lexer.GroovyDocTokenTypes.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file gdoc.flex - */ public class _GroovyDocLexer implements FlexLexer { /** This character denotes the end of file */ @@ -43,133 +38,250 @@ public class _GroovyDocLexer implements FlexLexer { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10 }; /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14624 bytes + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u1b00\121\u0100\1\u2500\4\u0100\1\u2600"+ + "\1\u0100\1\u2700\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\53\u0100"+ + "\1\u2d00\10\u2e00\31\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100"+ + "\1\u3200\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900"+ + "\1\u0100\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000"+ + "\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700\1\u4800"+ + "\1\u4900\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u1f00\1\u4e00\1\u4f00"+ + "\1\u5000\1\u5100\3\u0100\1\u5200\1\u5300\1\u5400\12\u1f00\4\u0100"+ + "\1\u5500\17\u1f00\2\u0100\1\u5600\41\u1f00\2\u0100\1\u5700\1\u5800"+ + "\2\u1f00\1\u5900\1\u5a00\27\u0100\1\u5b00\4\u0100\1\u5c00\1\u5d00"+ + "\42\u1f00\1\u0100\1\u5e00\1\u5f00\11\u1f00\1\u6000\27\u1f00\1\u6100"+ + "\1\u6200\1\u6300\1\u6400\11\u1f00\1\u6500\1\u6600\5\u1f00\1\u6700"+ + "\1\u6800\2\u1f00\1\u6900\1\u1f00\1\u6a00\21\u1f00\246\u0100\1\u6b00"+ + "\20\u0100\1\u6c00\1\u6d00\25\u0100\1\u6e00\34\u0100\1\u6f00\14\u1f00"+ + "\2\u0100\1\u7000\5\u1f00\23\u0100\1\u7100\u0dec\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\6\14\1\55\3\11\1\56\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3008 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\1\32\1\1\2\13\1\30\1\1\1\33\1"+ - "\25\5\13\1\34\1\35\1\36\1\1\1\37\1\13\1\1\1\40\5\13\1\41\1\42\1\43\1\13\1"+ - "\30\1\44\1\13\1\45\1\46\1\1\1\13\1\47\1\30\3\1\1\13\1\50\4\1\1\51\2\13\1\52"+ - "\1\1\1\53\1\16\1\25\1\54\1\55\1\56\1\57\1\60\1\61\1\16\1\62\1\63\1\55\1\56"+ - "\1\64\1\1\1\65\1\1\1\66\1\67\1\22\1\56\1\70\1\1\1\71\1\16\1\72\1\73\1\55\1"+ - "\56\1\70\1\1\1\61\1\16\1\42\1\74\1\75\1\76\1\77\1\1\1\71\1\1\1\100\1\101\1"+ - "\37\1\56\1\52\1\1\1\102\1\16\1\1\1\103\1\37\1\56\1\104\1\1\1\60\1\16\1\105"+ - "\1\101\1\37\1\13\1\106\1\60\1\107\1\16\1\43\1\110\1\111\1\13\1\112\1\113\3"+ - "\1\1\25\2\13\1\114\1\113\3\1\1\115\1\116\1\117\1\120\1\121\1\122\2\1\1\71"+ - "\3\1\1\123\1\13\1\124\1\1\1\125\7\1\2\13\1\30\1\126\1\1\1\127\1\130\1\131"+ - "\1\132\1\1\2\13\1\133\2\13\1\134\24\13\1\135\1\136\2\13\1\135\2\13\1\137\1"+ - "\140\1\14\3\13\1\140\3\13\1\30\2\1\1\13\1\1\5\13\1\141\1\25\45\13\1\142\1"+ - "\13\1\25\1\30\4\13\1\143\1\47\1\144\1\16\1\13\1\16\1\13\1\16\1\144\1\71\3"+ - "\13\1\145\1\1\1\146\4\1\5\13\1\147\1\150\1\13\1\151\4\13\1\41\1\13\1\152\3"+ - "\1\1\13\1\153\1\154\2\13\1\155\1\13\1\77\3\1\1\13\1\113\3\13\1\154\4\1\1\156"+ - "\5\1\1\110\2\13\1\145\1\157\3\1\1\160\1\13\1\161\1\43\2\13\1\41\1\1\2\13\1"+ - "\145\1\1\1\40\1\43\1\13\1\153\1\47\5\1\1\162\1\163\14\13\4\1\21\13\1\141\2"+ - "\13\1\141\1\164\1\13\1\153\3\13\1\165\1\166\1\167\1\124\1\166\2\1\1\170\1"+ - "\126\1\71\1\171\1\1\1\172\1\1\1\124\2\13\4\1\1\173\1\174\1\175\1\176\1\177"+ - "\1\1\2\13\1\47\147\1\2\13\1\152\2\13\1\152\10\13\1\200\1\201\2\13\1\133\3"+ - "\13\1\27\1\1\1\13\1\113\4\202\4\1\1\126\35\1\1\203\1\1\1\204\1\205\1\25\4"+ - "\13\1\206\1\25\4\13\1\134\1\110\1\13\1\152\1\25\4\13\1\152\1\1\1\13\1\30\3"+ - "\1\1\13\40\1\133\13\1\41\4\1\136\13\1\30\1\1\10\13\1\124\4\1\2\13\1\153\20"+ - "\13\1\124\1\13\1\207\1\1\2\13\1\152\1\126\1\13\1\153\5\13\2\1\1\210\1\211"+ - "\5\13\1\212\1\13\1\152\1\147\3\1\1\210\1\213\1\13\1\31\1\214\3\13\1\145\1"+ - "\211\2\13\1\145\3\1\1\215\1\43\1\13\1\41\1\13\1\113\1\1\1\13\1\124\1\51\2"+ - "\13\1\31\1\126\1\1\1\216\1\217\2\13\1\47\1\1\1\220\1\1\1\13\1\221\3\13\1\222"+ - "\1\223\1\224\1\30\1\66\1\225\1\226\1\202\2\13\1\134\1\41\7\13\1\31\1\1\72"+ - "\13\1\145\1\13\1\227\2\13\1\155\20\1\26\13\1\153\6\13\1\77\2\1\1\113\1\230"+ - "\1\56\1\231\1\232\6\13\1\16\1\1\1\160\25\13\1\153\1\1\4\13\1\211\2\13\1\147"+ - "\2\1\1\124\3\1\1\233\1\40\1\1\1\100\1\216\7\13\1\124\1\171\1\1\1\25\1\234"+ - "\1\25\1\30\1\235\4\13\1\152\1\236\1\237\1\163\1\1\1\240\1\13\1\14\1\241\2"+ - "\153\2\1\7\13\1\30\4\1\3\13\1\154\20\1\1\13\1\124\3\13\1\71\2\1\2\13\1\40"+ - "\1\13\1\30\2\13\1\41\1\13\1\153\2\13\1\242\1\243\2\1\11\13\1\153\1\1\2\13"+ - "\1\242\1\13\1\155\2\13\1\147\3\13\1\145\11\1\23\13\1\113\1\13\1\41\1\147\11"+ - "\1\1\244\2\13\1\245\1\13\1\41\1\13\1\113\1\13\1\152\4\1\1\13\1\246\1\13\1"+ - "\41\1\13\1\77\4\1\3\13\1\247\4\1\1\71\1\250\1\13\1\145\2\1\1\13\1\124\1\13"+ - "\1\124\2\1\1\123\1\13\1\154\1\1\3\13\1\41\1\13\1\41\1\13\1\31\1\13\1\16\6"+ - "\1\4\13\1\47\3\1\3\13\1\31\3\13\1\31\60\1\1\160\2\13\1\147\4\1\1\160\2\13"+ - "\2\1\1\13\1\47\1\1\1\160\1\13\1\113\2\1\2\13\1\251\1\160\2\13\1\31\1\252\1"+ - "\253\2\1\1\13\1\22\1\155\5\1\1\254\1\255\1\47\2\13\1\152\2\1\1\73\1\55\1\56"+ - "\1\70\1\1\1\256\1\16\11\1\3\13\1\154\1\257\3\1\3\13\1\1\1\260\13\1\2\13\1"+ - "\152\2\1\1\261\2\1\3\13\1\1\1\171\3\1\2\13\1\30\5\1\1\13\1\77\30\1\4\13\1"+ - "\1\1\126\20\1\1\262\2\13\1\263\1\1\1\264\2\13\1\265\3\1\3\13\1\47\20\1\1\56"+ - "\1\13\1\152\1\1\1\71\2\1\1\211\1\13\7\1\1\266\2\13\1\71\1\267\53\1\71\13\1"+ - "\77\6\1\6\13\1\152\1\1\14\13\1\145\53\1\2\13\1\152\75\1\44\13\1\113\33\1\43"+ - "\13\1\47\1\13\1\152\7\1\1\13\1\153\1\1\3\13\1\1\1\145\1\1\1\160\1\270\1\13"+ - "\67\1\4\13\1\154\1\71\3\1\1\160\4\1\1\16\1\1\76\13\1\124\1\1\57\13\1\31\20"+ - "\1\21\13\1\152\5\1\30\13\1\155\20\1\6\13\1\30\1\124\1\47\1\77\66\1\5\13\1"+ - "\216\3\13\1\144\1\271\1\272\1\273\3\13\1\274\1\275\1\13\1\276\1\277\1\37\24"+ - "\13\1\300\1\13\1\37\1\134\1\13\1\134\1\13\1\216\1\13\1\216\1\152\1\13\1\152"+ - "\1\13\1\56\1\13\1\56\1\13\1\220\3\1\14\13\1\154\3\1\4\13\1\145\113\1\1\273"+ - "\1\13\1\301\1\302\1\303\1\304\1\305\1\306\1\307\1\155\1\310\1\155\24\1\55"+ - "\13\1\113\2\1\103\13\1\154\15\13\1\153\150\13\1\16\123\13\1\71\1\1\41\13\1"+ - "\153\36\1"); - /* The ZZ_CMAP_A table has 3216 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\1\1\2\1\33\1\1\1\2\22\0\1\1\2\0\1\41\1\4\3\0\1\40\1\42\1\30\1\0\1"+ - "\35\1\5\1\3\1\27\12\3\1\5\1\0\1\36\1\0\1\37\1\0\1\34\32\4\1\26\1\0\1\26\1"+ - "\0\1\4\1\0\1\7\3\4\1\17\2\4\1\23\1\13\1\4\1\15\1\12\1\11\1\14\1\24\1\6\1\4"+ - "\1\10\1\16\1\22\1\21\1\20\1\25\3\4\1\31\1\0\1\32\7\0\1\33\14\0\4\4\4\0\1\4"+ - "\12\0\1\4\4\0\1\4\5\0\27\4\1\0\12\4\4\0\14\4\16\0\5\4\7\0\1\4\1\0\1\4\1\0"+ - "\5\4\1\0\2\4\2\0\4\4\1\0\1\4\6\0\1\4\1\0\3\4\1\0\1\4\1\0\4\4\1\0\23\4\1\0"+ - "\13\4\10\0\6\4\1\0\26\4\2\0\1\4\6\0\10\4\7\0\14\4\5\0\3\4\30\0\1\4\22\0\6"+ - "\4\1\0\1\4\17\0\2\4\7\0\2\4\12\0\3\4\2\0\2\4\1\0\16\4\15\0\11\4\13\0\1\4\30"+ - "\0\6\4\4\0\2\4\4\0\1\4\5\0\6\4\4\0\1\4\11\0\1\4\3\0\1\4\7\0\11\4\7\0\5\4\1"+ - "\0\10\4\6\0\26\4\3\0\1\4\2\0\1\4\7\0\11\4\4\0\10\4\2\0\2\4\2\0\26\4\1\0\7"+ - "\4\1\0\1\4\3\0\4\4\3\0\1\4\20\0\1\4\15\0\2\4\1\0\5\4\7\0\2\4\10\0\6\4\4\0"+ - "\2\4\1\0\2\4\1\0\2\4\1\0\2\4\17\0\4\4\1\0\1\4\3\0\3\4\20\0\11\4\1\0\2\4\1"+ - "\0\2\4\1\0\5\4\3\0\1\4\2\0\1\4\20\0\1\4\7\0\1\4\13\0\10\4\2\0\1\4\3\0\1\4"+ - "\1\0\6\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\14\4"+ - "\17\0\1\4\13\0\10\4\1\0\2\4\10\0\3\4\5\0\1\4\4\0\10\4\1\0\6\4\1\0\5\4\3\0"+ - "\1\4\3\0\2\4\15\0\13\4\2\0\1\4\6\0\3\4\10\0\1\4\5\0\22\4\3\0\10\4\1\0\11\4"+ - "\1\0\1\4\2\0\7\4\11\0\1\4\1\0\2\4\13\0\1\4\1\0\2\4\1\0\1\4\2\0\2\4\1\0\1\4"+ - "\2\0\1\4\6\0\4\4\1\0\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0\4\4\1\0\2\4\11"+ - "\0\1\4\2\0\5\4\1\0\1\4\25\0\14\4\1\0\24\4\13\0\5\4\22\0\7\4\4\0\4\4\3\0\1"+ - "\4\3\0\2\4\7\0\3\4\4\0\15\4\14\0\1\4\1\0\6\4\1\0\1\4\5\0\1\4\2\0\13\4\1\0"+ - "\15\4\1\0\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\1\4\1\0\4\4\2\0\7\4\1\0\1\4\1\0"+ - "\4\4\2\0\16\4\2\0\6\4\2\0\15\4\2\0\14\4\3\0\17\4\1\0\6\4\23\0\1\4\3\0\2\4"+ - "\3\0\10\4\10\0\5\4\2\0\22\4\1\0\1\4\5\0\17\4\1\0\16\4\2\0\5\4\13\0\14\4\13"+ - "\0\1\4\15\0\7\4\7\0\16\4\15\0\2\4\11\0\4\4\1\0\4\4\3\0\2\4\11\0\10\4\1\0\1"+ - "\4\1\0\1\4\1\0\1\4\1\0\6\4\1\0\7\4\1\0\1\4\3\0\3\4\1\0\7\4\3\0\4\4\2\0\6\4"+ - "\14\0\2\33\12\0\1\4\14\0\1\4\15\0\1\4\2\0\1\4\4\0\1\4\2\0\12\4\1\0\1\4\3\0"+ - "\5\4\6\0\1\4\1\0\1\4\1\0\1\4\1\0\4\4\1\0\13\4\2\0\4\4\5\0\5\4\4\0\1\4\1\0"+ - "\5\4\6\0\4\4\3\0\2\4\14\0\7\4\1\0\7\4\6\0\3\4\11\0\11\4\7\0\5\4\2\0\5\4\3"+ - "\0\7\4\6\0\3\4\12\0\2\4\13\0\11\4\2\0\27\4\2\0\7\4\1\0\3\4\1\0\4\4\1\0\4\4"+ - "\10\0\1\4\11\0\6\4\3\0\1\4\1\0\1\4\2\0\5\4\1\0\12\4\12\0\5\4\1\0\3\4\1\0\10"+ - "\4\4\0\7\4\3\0\1\4\3\0\2\4\1\0\1\4\3\0\2\4\2\0\5\4\2\0\1\4\1\0\1\4\30\0\3"+ - "\4\3\0\6\4\2\0\6\4\2\0\6\4\11\0\7\4\4\0\5\4\3\0\5\4\5\0\1\4\1\0\10\4\1\0\5"+ - "\4\1\0\1\4\1\0\2\4\1\0\2\4\1\0\12\4\3\0\2\4\13\0\13\4\4\0\1\4\6\0\12\4\2\0"+ - "\6\4\2\0\6\4\2\0\6\4\2\0\3\4\3\0\14\4\1\0\16\4\1\0\2\4\1\0\5\4\4\0\10\4\1"+ - "\0\5\4\12\0\6\4\2\0\1\4\1\0\14\4\1\0\2\4\3\0\1\4\2\0\4\4\1\0\2\4\12\0\10\4"+ - "\6\0\6\4\1\0\3\4\1\0\12\4\3\0\1\4\12\0\4\4\25\0\1\4\1\0\1\4\3\0\7\4\1\0\1"+ - "\4\1\0\4\4\1\0\17\4\1\0\2\4\14\0\3\4\7\0\4\4\11\0\2\4\1\0\1\4\20\0\4\4\4\0"+ - "\1\4\12\0\10\4\7\0\1\4\5\0\1\4\13\0\10\4\2\0\4\4\6\0\7\4\1\0\2\4\1\0\5\4\6"+ - "\0\1\4\11\0\10\4\5\0\3\4\2\0\1\4\2\0\2\4\2\0\4\4\1\0\14\4\1\0\1\4\1\0\7\4"+ - "\1\0\21\4\1\0\4\4\2\0\10\4\1\0\7\4\1\0\14\4\1\0\4\4\1\0\5\4\1\0\1\4\3\0\14"+ - "\4\2\0\10\4\1\0\2\4\1\0\1\4\2\0\1\4\1\0\12\4\1\0\4\4\1\0\1\4\1\0\1\4\6\0\1"+ - "\4\4\0\1\4\1\0\1\4\1\0\1\4\1\0\3\4\1\0\2\4\1\0\1\4\2\0\1\4\1\0\1\4\1\0\1\4"+ - "\1\0\1\4\1\0\1\4\1\0\2\4\1\0\1\4\2\0\4\4\1\0\7\4\1\0\4\4\1\0\4\4\1\0\1\4\1"+ - "\0\12\4\1\0\5\4\1\0\3\4\1\0\5\4\1\0\5\4"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); + + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\1\1\2\22\0\1\1"+ + "\2\0\1\4\1\5\3\0\1\6\1\7\1\10\1\0"+ + "\1\11\1\12\1\13\1\14\12\13\1\12\1\0\1\15"+ + "\1\0\1\16\1\0\1\17\32\5\1\20\1\0\1\20"+ + "\1\0\1\5\1\0\1\21\3\5\1\22\2\5\1\23"+ + "\1\24\1\5\1\25\1\26\1\27\1\30\1\31\1\32"+ + "\1\5\1\33\1\34\1\35\1\36\1\37\1\40\3\5"+ + "\1\41\1\0\1\42\7\0\1\3\34\0\4\5\4\0"+ + "\1\5\12\0\1\5\4\0\1\5\5\0\27\5\1\0"+ + "\37\5\1\0\u01ca\5\4\0\14\5\16\0\5\5\7\0"+ + "\1\5\1\0\1\5\201\0\5\5\1\0\2\5\2\0"+ + "\4\5\1\0\1\5\6\0\1\5\1\0\3\5\1\0"+ + "\1\5\1\0\24\5\1\0\123\5\1\0\213\5\10\0"+ + "\246\5\1\0\46\5\2\0\1\5\6\0\51\5\6\0"+ + "\1\5\100\0\33\5\4\0\4\5\30\0\1\5\24\0"+ + "\53\5\43\0\2\5\1\0\143\5\1\0\1\5\17\0"+ + "\2\5\7\0\2\5\12\0\3\5\2\0\1\5\20\0"+ + "\1\5\1\0\36\5\35\0\131\5\13\0\1\5\30\0"+ + "\41\5\11\0\2\5\4\0\1\5\3\0\30\5\4\0"+ + "\1\5\11\0\1\5\3\0\1\5\27\0\31\5\7\0"+ + "\13\5\65\0\25\5\1\0\22\5\74\0\66\5\3\0"+ + "\1\5\22\0\1\5\7\0\12\5\17\0\20\5\4\0"+ + "\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0"+ + "\1\5\3\0\4\5\3\0\1\5\20\0\1\5\15\0"+ + "\2\5\1\0\3\5\16\0\4\5\7\0\2\5\10\0"+ + "\6\5\4\0\2\5\2\0\26\5\1\0\7\5\1\0"+ + "\2\5\1\0\2\5\1\0\2\5\37\0\4\5\1\0"+ + "\1\5\23\0\3\5\20\0\11\5\1\0\3\5\1\0"+ + "\26\5\1\0\7\5\1\0\2\5\1\0\5\5\3\0"+ + "\1\5\22\0\1\5\17\0\2\5\17\0\1\5\7\0"+ + "\1\5\13\0\10\5\2\0\2\5\2\0\26\5\1\0"+ + "\7\5\1\0\2\5\1\0\5\5\3\0\1\5\36\0"+ + "\2\5\1\0\3\5\17\0\1\5\21\0\1\5\1\0"+ + "\6\5\3\0\3\5\1\0\4\5\3\0\2\5\1\0"+ + "\1\5\1\0\2\5\3\0\2\5\3\0\3\5\3\0"+ + "\14\5\26\0\1\5\50\0\1\5\13\0\10\5\1\0"+ + "\3\5\1\0\27\5\1\0\20\5\3\0\1\5\32\0"+ + "\3\5\5\0\2\5\36\0\1\5\4\0\10\5\1\0"+ + "\3\5\1\0\27\5\1\0\12\5\1\0\5\5\3\0"+ + "\1\5\40\0\1\5\1\0\2\5\17\0\2\5\21\0"+ + "\11\5\1\0\3\5\1\0\51\5\2\0\1\5\20\0"+ + "\1\5\5\0\3\5\10\0\3\5\30\0\6\5\5\0"+ + "\22\5\3\0\30\5\1\0\11\5\1\0\1\5\2\0"+ + "\7\5\72\0\60\5\1\0\2\5\13\0\10\5\72\0"+ + "\2\5\1\0\1\5\1\0\5\5\1\0\30\5\1\0"+ + "\1\5\1\0\12\5\1\0\2\5\11\0\1\5\2\0"+ + "\5\5\1\0\1\5\25\0\4\5\40\0\1\5\77\0"+ + "\10\5\1\0\44\5\33\0\5\5\163\0\53\5\24\0"+ + "\1\5\20\0\6\5\4\0\4\5\3\0\1\5\3\0"+ + "\2\5\7\0\3\5\4\0\15\5\14\0\1\5\21\0"+ + "\46\5\1\0\1\5\5\0\1\5\2\0\53\5\1\0"+ + "\115\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0"+ + "\4\5\2\0\51\5\1\0\4\5\2\0\41\5\1\0"+ + "\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0"+ + "\17\5\1\0\71\5\1\0\4\5\2\0\103\5\45\0"+ + "\20\5\20\0\126\5\2\0\6\5\3\0\u016c\5\2\0"+ + "\21\5\1\0\32\5\5\0\113\5\3\0\13\5\7\0"+ + "\15\5\1\0\4\5\16\0\22\5\16\0\22\5\16\0"+ + "\15\5\1\0\3\5\17\0\64\5\43\0\1\5\3\0"+ + "\2\5\103\0\131\5\7\0\5\5\2\0\42\5\1\0"+ + "\1\5\5\0\106\5\12\0\37\5\61\0\36\5\2\0"+ + "\5\5\13\0\54\5\4\0\32\5\66\0\27\5\11\0"+ + "\65\5\122\0\1\5\135\0\57\5\21\0\7\5\67\0"+ + "\36\5\15\0\2\5\12\0\54\5\32\0\44\5\51\0"+ + "\3\5\12\0\44\5\2\0\11\5\7\0\53\5\2\0"+ + "\3\5\51\0\4\5\1\0\6\5\1\0\2\5\3\0"+ + "\1\5\5\0\300\5\100\0\26\5\2\0\6\5\2\0"+ + "\46\5\2\0\6\5\2\0\10\5\1\0\1\5\1\0"+ + "\1\5\1\0\1\5\1\0\37\5\2\0\65\5\1\0"+ + "\7\5\1\0\1\5\3\0\3\5\1\0\7\5\3\0"+ + "\4\5\2\0\6\5\4\0\15\5\5\0\3\5\1\0"+ + "\7\5\53\0\2\3\25\0\2\5\23\0\1\5\34\0"+ + "\1\5\15\0\1\5\20\0\15\5\3\0\40\5\102\0"+ + "\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0"+ + "\5\5\6\0\1\5\1\0\1\5\1\0\1\5\1\0"+ + "\4\5\1\0\13\5\2\0\4\5\5\0\5\5\4\0"+ + "\1\5\21\0\51\5\u0177\0\57\5\1\0\57\5\1\0"+ + "\205\5\6\0\4\5\3\0\2\5\14\0\46\5\1\0"+ + "\1\5\5\0\1\5\2\0\70\5\7\0\1\5\20\0"+ + "\27\5\11\0\7\5\1\0\7\5\1\0\7\5\1\0"+ + "\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0"+ + "\7\5\120\0\1\5\325\0\3\5\31\0\11\5\7\0"+ + "\5\5\2\0\5\5\4\0\126\5\6\0\3\5\1\0"+ + "\132\5\1\0\4\5\5\0\53\5\1\0\136\5\21\0"+ + "\40\5\60\0\u010d\5\3\0\215\5\103\0\56\5\2\0"+ + "\15\5\3\0\20\5\12\0\2\5\24\0\57\5\20\0"+ + "\37\5\2\0\120\5\47\0\11\5\2\0\147\5\2\0"+ + "\65\5\2\0\11\5\52\0\15\5\1\0\3\5\1\0"+ + "\4\5\1\0\27\5\25\0\1\5\7\0\64\5\16\0"+ + "\62\5\76\0\6\5\3\0\1\5\1\0\2\5\13\0"+ + "\34\5\12\0\27\5\31\0\35\5\7\0\57\5\34\0"+ + "\1\5\20\0\5\5\1\0\12\5\12\0\5\5\1\0"+ + "\51\5\27\0\3\5\1\0\10\5\24\0\27\5\3\0"+ + "\1\5\3\0\62\5\1\0\1\5\3\0\2\5\2\0"+ + "\5\5\2\0\1\5\1\0\1\5\30\0\3\5\2\0"+ + "\13\5\7\0\3\5\14\0\6\5\2\0\6\5\2\0"+ + "\6\5\11\0\7\5\1\0\7\5\1\0\53\5\1\0"+ + "\16\5\6\0\163\5\35\0\244\5\14\0\27\5\4\0"+ + "\61\5\4\0\u0100\3\156\5\2\0\152\5\46\0\7\5"+ + "\14\0\5\5\5\0\1\5\1\0\12\5\1\0\15\5"+ + "\1\0\5\5\1\0\1\5\1\0\2\5\1\0\2\5"+ + "\1\0\154\5\41\0\153\5\22\0\100\5\2\0\66\5"+ + "\50\0\15\5\66\0\2\5\30\0\3\5\31\0\1\5"+ + "\6\0\5\5\1\0\207\5\7\0\1\5\34\0\32\5"+ + "\4\0\1\5\1\0\32\5\13\0\131\5\3\0\6\5"+ + "\2\0\6\5\2\0\6\5\2\0\3\5\3\0\2\5"+ + "\3\0\2\5\31\0\14\5\1\0\32\5\1\0\23\5"+ + "\1\0\2\5\1\0\17\5\2\0\16\5\42\0\173\5"+ + "\105\0\65\5\u010b\0\35\5\3\0\61\5\57\0\40\5"+ + "\15\0\36\5\5\0\46\5\12\0\36\5\2\0\44\5"+ + "\4\0\10\5\1\0\5\5\52\0\236\5\22\0\44\5"+ + "\4\0\44\5\4\0\50\5\10\0\64\5\234\0\67\5"+ + "\11\0\26\5\12\0\10\5\230\0\6\5\2\0\1\5"+ + "\1\0\54\5\1\0\2\5\3\0\1\5\2\0\27\5"+ + "\12\0\27\5\11\0\37\5\101\0\23\5\1\0\2\5"+ + "\12\0\26\5\12\0\32\5\106\0\70\5\6\0\2\5"+ + "\100\0\1\5\17\0\4\5\1\0\3\5\1\0\35\5"+ + "\52\0\35\5\3\0\35\5\43\0\10\5\1\0\34\5"+ + "\33\0\66\5\12\0\26\5\12\0\23\5\15\0\22\5"+ + "\156\0\111\5\67\0\63\5\15\0\63\5\15\0\44\5"+ + "\u015c\0\52\5\6\0\2\5\116\0\35\5\12\0\1\5"+ + "\10\0\26\5\152\0\25\5\33\0\27\5\14\0\65\5"+ + "\113\0\55\5\40\0\31\5\32\0\44\5\35\0\1\5"+ + "\2\0\1\5\10\0\43\5\3\0\1\5\14\0\60\5"+ + "\16\0\4\5\25\0\1\5\1\0\1\5\43\0\22\5"+ + "\1\0\31\5\124\0\7\5\1\0\1\5\1\0\4\5"+ + "\1\0\17\5\1\0\12\5\7\0\57\5\46\0\10\5"+ + "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\2\5"+ + "\1\0\5\5\3\0\1\5\22\0\1\5\14\0\5\5"+ + "\236\0\65\5\22\0\4\5\24\0\3\5\36\0\60\5"+ + "\24\0\2\5\1\0\1\5\270\0\57\5\51\0\4\5"+ + "\44\0\60\5\24\0\1\5\73\0\53\5\15\0\1\5"+ + "\107\0\33\5\345\0\54\5\164\0\100\5\37\0\10\5"+ + "\2\0\1\5\2\0\10\5\1\0\2\5\1\0\30\5"+ + "\17\0\1\5\1\0\1\5\136\0\10\5\2\0\47\5"+ + "\20\0\1\5\1\0\1\5\34\0\1\5\12\0\50\5"+ + "\7\0\1\5\25\0\1\5\13\0\56\5\23\0\1\5"+ + "\42\0\71\5\7\0\11\5\1\0\45\5\21\0\1\5"+ + "\61\0\36\5\160\0\7\5\1\0\2\5\1\0\46\5"+ + "\25\0\1\5\31\0\6\5\1\0\2\5\1\0\40\5"+ + "\16\0\1\5\u0147\0\23\5\275\0\1\5\54\0\4\5"+ + "\37\0\232\5\146\0\157\5\21\0\304\5\274\0\57\5"+ + "\321\0\107\5\271\0\71\5\7\0\37\5\161\0\36\5"+ + "\22\0\60\5\20\0\4\5\37\0\25\5\5\0\23\5"+ + "\260\0\100\5\200\0\113\5\5\0\1\5\102\0\15\5"+ + "\100\0\2\5\1\0\1\5\34\0\370\5\10\0\326\5"+ + "\52\0\11\5\367\0\37\5\61\0\3\5\21\0\4\5"+ + "\10\0\u018c\5\4\0\153\5\5\0\15\5\3\0\11\5"+ + "\7\0\12\5\146\0\125\5\1\0\107\5\1\0\2\5"+ + "\2\0\1\5\2\0\2\5\2\0\4\5\1\0\14\5"+ + "\1\0\1\5\1\0\7\5\1\0\101\5\1\0\4\5"+ + "\2\0\10\5\1\0\7\5\1\0\34\5\1\0\4\5"+ + "\1\0\5\5\1\0\1\5\3\0\7\5\1\0\u0154\5"+ + "\2\0\31\5\1\0\31\5\1\0\37\5\1\0\31\5"+ + "\1\0\37\5\1\0\31\5\1\0\37\5\1\0\31\5"+ + "\1\0\37\5\1\0\31\5\1\0\10\5\64\0\55\5"+ + "\12\0\7\5\20\0\1\5\u0171\0\54\5\23\0\306\5"+ + "\73\0\104\5\7\0\1\5\u0164\0\1\5\117\0\4\5"+ + "\1\0\33\5\1\0\2\5\1\0\1\5\2\0\1\5"+ + "\1\0\12\5\1\0\4\5\1\0\1\5\1\0\1\5"+ + "\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1\5"+ + "\1\0\3\5\1\0\2\5\1\0\1\5\2\0\1\5"+ + "\1\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5"+ + "\1\0\2\5\1\0\1\5\2\0\4\5\1\0\7\5"+ + "\1\0\4\5\1\0\4\5\1\0\1\5\1\0\12\5"+ + "\1\0\21\5\5\0\3\5\1\0\5\5\1\0\21\5"+ + "\104\0\336\5\42\0\65\5\13\0\336\5\2\0\u0182\5"+ + "\16\0\u0131\5\37\0\36\5\342\0\113\5\265\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[29184]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } /** * Translates DFA states to action switch labels. @@ -177,11 +289,11 @@ public class _GroovyDocLexer implements FlexLexer { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\13\0\3\1\1\2\1\3\1\4\1\5\1\6\1\2"+ + "\13\0\3\1\1\2\1\3\1\4\1\2\1\5\1\6"+ "\1\7\1\10\1\1\1\11\1\2\2\12\1\13\1\11"+ - "\1\14\1\12\1\15\1\16\1\12\1\17\1\20\1\21"+ - "\1\0\1\22\7\23\1\0\1\24\6\23\1\25\3\23"+ - "\1\26\3\23\1\26\6\23"; + "\1\14\1\12\1\15\1\16\1\17\1\20\1\12\1\21"+ + "\1\22\1\0\7\23\1\0\1\24\6\23\1\25\3\23"+ + "\1\26\2\23\1\26\7\23"; private static int [] zzUnpackAction() { int [] result = new int[69]; @@ -211,9 +323,9 @@ public class _GroovyDocLexer implements FlexLexer { private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\43\0\106\0\151\0\214\0\257\0\322\0\365"+ "\0\u0118\0\u013b\0\u015e\0\u0181\0\u01a4\0\u01c7\0\u0181\0\u01ea"+ - "\0\u01c7\0\u0181\0\u0181\0\u020d\0\u0181\0\u01c7\0\u0230\0\u0253"+ - "\0\u01c7\0\u0181\0\u020d\0\u0276\0\u0181\0\u0299\0\u01c7\0\u02bc"+ - "\0\u0181\0\u02df\0\u0181\0\u0181\0\u0181\0\u0302\0\u0181\0\u0325"+ + "\0\u01a4\0\u020d\0\u0181\0\u0181\0\u0181\0\u01a4\0\u0230\0\u0253"+ + "\0\u01a4\0\u0181\0\u020d\0\u0276\0\u0181\0\u0299\0\u01a4\0\u0181"+ + "\0\u02bc\0\u0181\0\u0181\0\u02df\0\u0181\0\u0181\0\u0302\0\u0325"+ "\0\u0348\0\u036b\0\u038e\0\u03b1\0\u03d4\0\u03f7\0\u041a\0\u0181"+ "\0\u043d\0\u0460\0\u0483\0\u04a6\0\u04c9\0\u04ec\0\u0181\0\u050f"+ "\0\u0532\0\u0555\0\u0325\0\u0578\0\u059b\0\u05be\0\u05e1\0\u0604"+ @@ -229,7 +341,7 @@ public class _GroovyDocLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -240,46 +352,60 @@ public class _GroovyDocLexer implements FlexLexer { /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\27\14\1\15\1\16\12\14\1\17\2\20\25\17\1\21"+ - "\1\22\1\23\1\14\1\24\6\17\30\25\1\26\12\25"+ - "\1\17\1\27\1\30\25\17\1\31\1\22\1\23\1\14"+ - "\1\24\7\17\1\27\1\30\25\17\1\31\1\22\1\23"+ - "\1\14\7\17\34\32\1\33\6\32\1\14\1\34\1\35"+ - "\25\14\1\16\1\14\1\23\10\14\1\32\2\36\25\32"+ - "\1\37\13\32\1\34\1\32\2\40\1\32\21\40\1\32"+ - "\1\37\4\32\1\41\1\42\1\32\1\43\1\44\1\32"+ - "\30\14\1\16\13\14\2\20\2\40\1\14\21\40\1\14"+ - "\1\16\4\14\1\41\4\14\1\45\73\0\1\46\41\0"+ - "\1\47\14\0\2\20\44\0\1\50\1\0\1\51\1\52"+ - "\2\50\1\53\3\50\1\54\1\50\1\55\1\50\1\56"+ - "\3\50\16\0\1\27\42\0\2\30\41\0\1\34\42\0"+ - "\2\36\43\0\2\40\1\0\21\40\20\0\1\57\1\0"+ - "\20\57\45\0\1\60\15\0\23\50\20\0\4\50\1\61"+ - "\16\50\20\0\17\50\1\62\3\50\20\0\10\50\1\63"+ - "\12\50\20\0\14\50\1\64\6\50\20\0\4\50\1\65"+ - "\16\50\20\0\20\50\1\66\2\50\20\0\23\57\11\0"+ - "\1\67\6\0\5\50\1\70\15\50\20\0\17\50\1\71"+ - "\3\50\20\0\11\50\1\72\11\50\20\0\14\50\1\73"+ - "\6\50\20\0\7\50\1\74\13\50\20\0\5\50\1\75"+ - "\15\50\20\0\4\50\1\76\16\50\20\0\5\50\1\73"+ - "\15\50\20\0\12\50\1\77\10\50\20\0\16\50\1\64"+ - "\4\50\20\0\21\50\1\100\1\50\20\0\6\50\1\73"+ - "\14\50\20\0\3\50\1\101\17\50\20\0\22\50\1\102"+ - "\20\0\7\50\1\103\13\50\20\0\13\50\1\73\7\50"+ - "\20\0\4\50\1\104\16\50\20\0\10\50\1\105\12\50"+ - "\20\0\11\50\1\73\11\50\15\0"; + "\10\14\1\15\3\14\1\16\26\14\1\17\2\20\1\14"+ + "\4\17\1\21\6\17\1\22\21\17\1\23\1\24\10\25"+ + "\1\26\32\25\1\17\1\27\1\30\1\14\4\17\1\31"+ + "\6\17\1\22\21\17\1\23\1\24\1\17\1\27\1\30"+ + "\1\14\4\17\1\31\30\17\1\23\1\24\17\32\1\33"+ + "\23\32\1\14\1\34\1\35\5\14\1\15\31\14\1\24"+ + "\1\32\2\36\5\32\1\37\33\32\1\34\2\32\1\40"+ + "\1\41\1\42\1\32\1\37\1\43\1\32\1\41\1\32"+ + "\1\44\2\32\21\41\2\32\10\14\1\15\33\14\2\20"+ + "\2\14\1\41\1\14\1\45\1\15\1\43\1\14\1\41"+ + "\4\14\21\41\2\14\57\0\1\46\36\0\1\47\33\0"+ + "\2\20\45\0\1\50\13\0\1\51\4\50\1\52\3\50"+ + "\1\53\1\50\1\54\1\55\1\50\1\56\1\50\3\0"+ + "\1\27\42\0\2\30\41\0\1\34\42\0\2\36\45\0"+ + "\1\41\5\0\1\41\4\0\21\41\7\0\1\57\13\0"+ + "\20\57\12\0\1\60\37\0\1\50\4\0\2\50\5\0"+ + "\20\50\7\0\1\50\4\0\2\50\5\0\14\50\1\61"+ + "\3\50\7\0\1\50\4\0\2\50\5\0\3\50\1\62"+ + "\14\50\7\0\1\50\4\0\2\50\5\0\1\63\17\50"+ + "\7\0\1\50\4\0\2\50\5\0\1\50\1\64\16\50"+ + "\7\0\1\50\4\0\2\50\5\0\2\50\1\65\15\50"+ + "\7\0\1\50\4\0\2\50\5\0\1\66\17\50\7\0"+ + "\1\57\4\0\2\57\2\0\1\67\2\0\20\57\7\0"+ + "\1\50\4\0\2\50\5\0\14\50\1\70\3\50\7\0"+ + "\1\50\4\0\2\50\5\0\7\50\1\71\10\50\7\0"+ + "\1\50\4\0\2\50\5\0\12\50\1\72\5\50\7\0"+ + "\1\50\4\0\2\50\5\0\1\50\1\73\16\50\7\0"+ + "\1\50\4\0\2\50\5\0\12\50\1\74\5\50\7\0"+ + "\1\50\4\0\2\50\5\0\5\50\1\75\12\50\7\0"+ + "\1\50\4\0\2\50\5\0\12\50\1\73\5\50\7\0"+ + "\1\50\4\0\2\50\5\0\4\50\1\76\13\50\7\0"+ + "\1\50\4\0\2\50\5\0\1\77\17\50\7\0\1\50"+ + "\4\0\2\50\5\0\10\50\1\100\7\50\7\0\1\50"+ + "\4\0\2\50\5\0\15\50\1\64\2\50\7\0\1\50"+ + "\4\0\2\50\5\0\11\50\1\101\6\50\7\0\1\50"+ + "\4\0\2\50\5\0\6\50\1\73\11\50\7\0\1\50"+ + "\4\0\2\50\5\0\17\50\1\102\7\0\1\50\4\0"+ + "\2\50\5\0\5\50\1\103\12\50\7\0\1\50\4\0"+ + "\2\50\5\0\13\50\1\73\4\50\7\0\1\50\4\0"+ + "\2\50\5\0\1\104\17\50\7\0\1\50\4\0\2\50"+ + "\5\0\3\50\1\105\14\50\7\0\1\50\4\0\2\50"+ + "\5\0\7\50\1\73\10\50\2\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[1750]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -306,14 +432,14 @@ public class _GroovyDocLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\13\0\1\11\2\1\1\11\2\1\2\11\1\1\1\11"+ - "\4\1\1\11\2\1\1\11\3\1\1\11\1\1\3\11"+ - "\1\0\1\11\7\1\1\0\1\11\6\1\1\11\16\1"; + "\13\0\1\11\2\1\1\11\3\1\3\11\4\1\1\11"+ + "\2\1\1\11\2\1\1\11\1\1\2\11\1\1\2\11"+ + "\1\0\7\1\1\0\1\11\6\1\1\11\16\1"; private static int [] zzUnpackAttribute() { int [] result = new int[69]; @@ -360,15 +486,27 @@ public class _GroovyDocLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; @@ -382,26 +520,22 @@ public class _GroovyDocLexer implements FlexLexer { } + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -533,7 +667,8 @@ public class _GroovyDocLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -567,7 +702,7 @@ public class _GroovyDocLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -589,11 +724,11 @@ public class _GroovyDocLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -619,112 +754,112 @@ public class _GroovyDocLexer implements FlexLexer { case 1: { return mGDOC_COMMENT_DATA; } - // fall through + // fall through case 23: break; case 2: { yybegin(COMMENT_DATA); return mGDOC_COMMENT_DATA; } - // fall through + // fall through case 24: break; case 3: { return TokenType.WHITE_SPACE; } - // fall through + // fall through case 25: break; case 4: { yybegin(ASTERISKS); return mGDOC_ASTERISKS; } - // fall through + // fall through case 26: break; case 5: { yybegin(AFTER_BRACE); return mGDOC_INLINE_TAG_START; } - // fall through + // fall through case 27: break; case 6: { yybegin(COMMENT_DATA); return mGDOC_INLINE_TAG_END; } - // fall through + // fall through case 28: break; case 7: { yypushback(1); yybegin(AFTER_ASTERISKS); } - // fall through + // fall through case 29: break; case 8: { return mGDOC_ASTERISKS; } - // fall through + // fall through case 30: break; case 9: { yybegin(TOP_LEVEL); return TokenType.WHITE_SPACE; } - // fall through + // fall through case 31: break; case 10: { yypushback(1); yybegin(COMMENT_DATA); } - // fall through + // fall through case 32: break; case 11: { yybegin(COMMENT_DATA); return TokenType.WHITE_SPACE; } - // fall through + // fall through case 33: break; case 12: { yybegin(TAG_VALUE); return TokenType.WHITE_SPACE; } - // fall through + // fall through case 34: break; case 13: - { return mGDOC_TAG_VALUE_TOKEN; + { return mGDOC_TAG_VALUE_SHARP_TOKEN; } - // fall through + // fall through case 35: break; case 14: - { return mGDOC_TAG_VALUE_COMMA; + { return mGDOC_TAG_VALUE_TOKEN; } - // fall through + // fall through case 36: break; case 15: { yybegin(TAG_VALUE_IN_PAREN); return mGDOC_TAG_VALUE_LPAREN; } - // fall through + // fall through case 37: break; case 16: - { return mGDOC_TAG_VALUE_SHARP_TOKEN; + { return mGDOC_TAG_VALUE_COMMA; } - // fall through + // fall through case 38: break; case 17: { yybegin(TAG_VALUE); return mGDOC_TAG_VALUE_RPAREN; } - // fall through + // fall through case 39: break; case 18: { return mGDOC_COMMENT_END; } - // fall through + // fall through case 40: break; case 19: { yybegin(AFTER_PLAIN_TAG_NAME); return mGDOC_TAG_NAME; } - // fall through + // fall through case 41: break; case 20: { yybegin(AFTER_ASTERISKS); return mGDOC_COMMENT_START; } - // fall through + // fall through case 42: break; case 21: { yybegin(COMMENT_DATA); return mGDOC_TAG_VALUE_TOKEN; } - // fall through + // fall through case 43: break; case 22: { yybegin(AFTER_TAG_NAME); return mGDOC_TAG_NAME; } - // fall through + // fall through case 44: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java b/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java index 5318b21f39c6..733875f79b9f 100644 --- a/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java +++ b/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java @@ -1,7 +1,7 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. - -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: groovy.flex +// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.plugins.groovy.lang.lexer; import com.intellij.lexer.FlexLexer; @@ -12,11 +12,6 @@ import static org.jetbrains.plugins.groovy.lang.groovydoc.parser.GroovyDocElemen import static org.jetbrains.plugins.groovy.lang.psi.GroovyElementTypes.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file groovy.flex - */ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { /** This character denotes the end of file */ @@ -46,191 +41,301 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14112 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\10\u2f00\31\u1f00\1\u0100\1\u3000\1\u3100\1\u0100\1\u3200"+ + "\1\u3300\1\u3400\1\u3500\1\u1f00\1\u3600\1\u3700\1\u3800\1\u3900"+ + "\1\u0100\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000"+ + "\1\u1f00\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u4c00\1\u1f00\1\u4d00\1\u4e00"+ + "\1\u4f00\1\u1f00\3\u0100\1\u5000\1\u5100\1\u5200\12\u1f00\4\u0100"+ + "\1\u5300\17\u1f00\2\u0100\1\u5400\41\u1f00\2\u0100\1\u5500\1\u5600"+ + "\2\u1f00\1\u5700\1\u5800\27\u0100\1\u5900\2\u0100\1\u5a00\45\u1f00"+ + "\1\u0100\1\u5b00\1\u5c00\11\u1f00\1\u5d00\27\u1f00\1\u5e00\1\u5f00"+ + "\1\u6000\1\u6100\11\u1f00\1\u6200\1\u6300\5\u1f00\1\u6400\1\u6500"+ + "\4\u1f00\1\u6600\21\u1f00\246\u0100\1\u6700\20\u0100\1\u6800\1\u6900"+ + "\25\u0100\1\u6a00\34\u0100\1\u6b00\14\u1f00\2\u0100\1\u6c00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\2\1\2\13\1\30\1\1\1\32\1\25\5"+ - "\13\1\33\1\34\1\35\1\1\1\36\1\13\1\1\1\37\5\13\1\40\1\41\1\42\1\13\1\30\1"+ - "\43\1\13\1\44\1\45\1\1\1\13\1\46\4\1\1\13\1\47\4\1\1\50\2\13\1\51\1\1\1\52"+ - "\1\16\1\25\1\53\1\54\1\55\1\56\1\57\1\60\2\16\1\61\1\54\1\55\1\62\1\1\1\63"+ - "\1\1\1\64\1\65\1\22\1\55\1\66\1\1\1\67\1\16\1\70\1\71\1\54\1\55\1\66\1\1\1"+ - "\60\1\16\1\41\1\72\1\73\1\74\1\75\1\1\1\67\2\1\1\76\1\36\1\55\1\51\1\1\1\77"+ - "\1\16\1\1\1\100\1\36\1\55\1\101\1\1\1\57\1\16\1\102\1\76\1\36\1\13\1\103\1"+ - "\57\1\104\1\16\1\42\1\105\1\106\1\13\1\107\1\110\3\1\1\25\2\13\1\111\1\110"+ - "\3\1\1\112\1\113\1\114\1\115\1\116\1\117\2\1\1\67\3\1\1\120\1\13\1\121\1\1"+ - "\1\122\7\1\2\13\1\30\1\123\1\1\1\124\1\125\1\126\1\127\1\1\2\13\1\130\2\13"+ - "\1\131\24\13\1\132\1\133\2\13\1\132\2\13\1\134\1\135\1\14\3\13\1\135\3\13"+ - "\1\30\2\1\1\13\1\1\5\13\1\136\1\25\45\13\1\137\1\13\1\25\1\30\4\13\1\30\1"+ - "\140\1\141\1\16\1\13\1\16\1\13\1\16\1\141\1\67\3\13\1\142\1\1\1\143\4\1\5"+ - "\13\1\27\1\144\1\13\1\145\4\13\1\40\1\13\1\146\3\1\1\13\1\147\1\150\2\13\1"+ - "\151\1\13\1\75\3\1\1\13\1\110\3\13\1\150\4\1\1\152\5\1\1\105\2\13\1\142\1"+ - "\153\3\1\1\154\1\13\1\155\1\42\2\13\1\40\1\1\2\13\1\142\1\1\1\37\1\42\1\13"+ - "\1\147\1\46\5\1\1\156\1\157\14\13\4\1\21\13\1\136\2\13\1\136\1\160\1\13\1"+ - "\147\3\13\1\161\1\162\1\163\1\121\1\162\2\1\1\164\4\1\1\165\1\1\1\121\6\1"+ - "\1\166\1\167\1\170\1\171\1\172\3\1\1\173\147\1\2\13\1\146\2\13\1\146\10\13"+ - "\1\174\1\175\2\13\1\130\3\13\1\176\1\1\1\13\1\110\4\177\4\1\1\123\35\1\1\200"+ - "\2\1\1\201\1\25\4\13\1\202\1\25\4\13\1\131\1\105\1\13\1\147\1\25\4\13\1\146"+ - "\1\1\1\13\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1\121\4"+ - "\1\2\13\1\147\20\13\1\121\1\13\1\203\1\1\2\13\1\146\1\123\1\13\1\147\4\13"+ - "\1\40\2\1\1\204\1\205\5\13\1\206\1\13\1\146\1\27\3\1\1\204\1\207\1\13\1\31"+ - "\1\1\3\13\1\142\1\205\2\13\1\142\3\1\1\210\1\42\1\13\1\40\1\13\1\110\1\1\1"+ - "\13\1\121\1\50\2\13\1\31\1\123\1\1\1\211\1\212\2\13\1\46\1\1\1\213\1\1\1\13"+ - "\1\214\3\13\1\215\1\216\1\217\1\30\1\64\1\220\1\221\1\177\2\13\1\131\1\40"+ - "\7\13\1\31\1\1\72\13\1\142\1\13\1\222\2\13\1\151\20\1\26\13\1\147\6\13\1\75"+ - "\2\1\1\110\1\223\1\55\1\224\1\225\6\13\1\16\1\1\1\154\25\13\1\147\1\1\4\13"+ - "\1\205\2\13\1\27\2\1\1\151\7\1\1\211\7\13\1\121\2\1\1\25\1\30\1\25\1\30\1"+ - "\226\4\13\1\146\1\227\1\230\2\1\1\231\1\13\1\14\1\232\2\147\2\1\7\13\1\30"+ - "\30\1\1\13\1\121\3\13\1\67\2\1\2\13\1\1\1\13\1\233\2\13\1\40\1\13\1\147\2"+ - "\13\1\234\3\1\11\13\1\147\1\1\2\13\1\234\1\13\1\151\2\13\1\27\3\13\1\142\11"+ - "\1\23\13\1\110\1\13\1\40\1\27\11\1\1\235\2\13\1\236\1\13\1\40\1\13\1\110\1"+ - "\13\1\146\4\1\1\13\1\237\1\13\1\40\1\13\1\75\4\1\3\13\1\240\4\1\1\67\1\241"+ - "\1\13\1\142\2\1\1\13\1\121\1\13\1\121\2\1\1\120\1\13\1\150\1\1\3\13\1\40\1"+ - "\13\1\40\1\13\1\31\1\13\1\16\6\1\4\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1"+ - "\154\2\13\1\27\4\1\1\154\2\13\2\1\1\13\1\46\1\1\1\154\1\13\1\110\2\1\2\13"+ - "\1\242\1\154\2\13\1\31\1\243\1\244\2\1\1\13\1\22\1\151\5\1\1\245\1\246\1\46"+ - "\2\13\1\146\2\1\1\71\1\54\1\55\1\66\1\1\1\247\1\16\11\1\3\13\1\150\1\250\3"+ - "\1\3\13\1\1\1\251\13\1\2\13\1\146\2\1\1\252\2\1\3\13\1\1\1\253\3\1\2\13\1"+ - "\30\5\1\1\13\1\75\30\1\4\13\1\1\1\123\34\1\3\13\1\46\20\1\1\55\1\13\1\146"+ - "\1\1\1\67\2\1\1\205\1\13\67\1\71\13\1\75\16\1\14\13\1\142\53\1\2\13\1\146"+ - "\75\1\44\13\1\110\33\1\43\13\1\46\1\13\1\146\7\1\1\13\1\147\1\1\3\13\1\1\1"+ - "\142\1\1\1\154\1\254\1\13\67\1\4\13\1\150\1\67\3\1\1\154\4\1\1\67\1\1\76\13"+ - "\1\121\1\1\57\13\1\31\20\1\1\16\77\1\6\13\1\30\1\121\1\46\1\75\66\1\5\13\1"+ - "\211\3\13\1\141\1\255\1\256\1\257\3\13\1\260\1\261\1\13\1\262\1\263\1\36\24"+ - "\13\1\264\1\13\1\36\1\131\1\13\1\131\1\13\1\211\1\13\1\211\1\146\1\13\1\146"+ - "\1\13\1\55\1\13\1\55\1\13\1\213\3\1\14\13\1\150\3\1\4\13\1\142\113\1\1\257"+ - "\1\13\1\265\1\266\1\267\1\270\1\271\1\272\1\273\1\151\1\274\1\151\24\1\55"+ - "\13\1\110\2\1\103\13\1\150\15\13\1\147\150\13\1\16\25\1\41\13\1\147\36\1"); - /* The ZZ_CMAP_A table has 3024 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\4\1\2\1\1\1\5\1\3\22\0\1\4\1\12\1\46\1\11\1\44\1\104\1\107\1\45\1"+ - "\70\1\71\1\10\1\31\1\100\1\32\1\42\1\7\1\34\1\37\10\14\1\77\1\110\1\101\1"+ - "\75\1\102\1\76\1\111\1\13\1\36\1\13\1\26\1\30\1\20\1\16\1\43\1\24\2\43\1\22"+ - "\13\43\1\41\2\43\1\72\1\6\1\73\1\105\1\33\1\0\1\50\1\35\1\51\1\25\1\27\1\17"+ - "\1\15\1\64\1\23\1\43\1\52\1\21\1\56\1\61\1\57\1\47\1\43\1\55\1\53\1\54\1\62"+ - "\1\60\1\66\1\40\1\63\1\65\1\67\1\106\1\74\1\103\6\0\1\1\24\0\1\43\12\0\1\43"+ - "\4\0\1\43\5\0\27\43\1\0\12\43\4\0\14\43\16\0\5\43\7\0\1\43\1\0\1\43\1\0\5"+ - "\43\1\0\2\43\2\0\4\43\1\0\1\43\6\0\1\43\1\0\3\43\1\0\1\43\1\0\4\43\1\0\23"+ - "\43\1\0\13\43\10\0\6\43\1\0\26\43\2\0\1\43\6\0\10\43\10\0\13\43\5\0\3\43\33"+ - "\0\6\43\1\0\1\43\17\0\2\43\7\0\2\43\12\0\3\43\2\0\2\43\1\0\16\43\15\0\11\43"+ - "\13\0\1\43\30\0\6\43\4\0\2\43\4\0\1\43\5\0\6\43\4\0\1\43\11\0\1\43\3\0\1\43"+ - "\7\0\11\43\7\0\5\43\1\0\10\43\6\0\26\43\3\0\1\43\2\0\1\43\7\0\11\43\4\0\10"+ - "\43\2\0\2\43\2\0\26\43\1\0\7\43\1\0\1\43\3\0\4\43\3\0\1\43\20\0\1\43\15\0"+ - "\2\43\1\0\1\43\5\0\6\43\4\0\2\43\1\0\2\43\1\0\2\43\1\0\2\43\17\0\4\43\1\0"+ - "\1\43\3\0\3\43\20\0\11\43\1\0\2\43\1\0\2\43\1\0\5\43\3\0\1\43\2\0\1\43\30"+ - "\0\1\43\13\0\10\43\2\0\1\43\3\0\1\43\1\0\6\43\3\0\3\43\1\0\4\43\3\0\2\43\1"+ - "\0\1\43\1\0\2\43\3\0\2\43\3\0\3\43\3\0\14\43\13\0\10\43\1\0\2\43\10\0\3\43"+ - "\5\0\1\43\4\0\10\43\1\0\6\43\1\0\5\43\3\0\1\43\3\0\2\43\15\0\13\43\2\0\1\43"+ - "\6\0\3\43\10\0\1\43\5\0\22\43\3\0\10\43\1\0\11\43\1\0\1\43\2\0\7\43\11\0\1"+ - "\43\1\0\2\43\15\0\2\43\1\0\1\43\2\0\2\43\1\0\1\43\2\0\1\43\6\0\4\43\1\0\7"+ - "\43\1\0\3\43\1\0\1\43\1\0\1\43\2\0\2\43\1\0\4\43\1\0\2\43\11\0\1\43\2\0\5"+ - "\43\1\0\1\43\25\0\14\43\1\0\24\43\13\0\5\43\22\0\7\43\4\0\4\43\3\0\1\43\3"+ - "\0\2\43\7\0\3\43\4\0\15\43\14\0\1\43\1\0\6\43\1\0\1\43\5\0\1\43\2\0\13\43"+ - "\1\0\15\43\1\0\4\43\2\0\7\43\1\0\1\43\1\0\4\43\2\0\1\43\1\0\4\43\2\0\7\43"+ - "\1\0\1\43\1\0\4\43\2\0\16\43\2\0\6\43\2\0\15\43\2\0\1\43\1\0\10\43\7\0\15"+ - "\43\1\0\6\43\23\0\1\43\4\0\1\43\3\0\5\43\2\0\22\43\1\0\1\43\5\0\17\43\1\0"+ - "\16\43\2\0\5\43\13\0\14\43\13\0\1\43\15\0\7\43\7\0\16\43\15\0\2\43\11\0\4"+ - "\43\1\0\4\43\3\0\2\43\11\0\10\43\1\0\1\43\1\0\1\43\1\0\1\43\1\0\6\43\1\0\7"+ - "\43\1\0\1\43\3\0\3\43\1\0\7\43\3\0\4\43\2\0\6\43\14\0\2\1\7\0\1\43\15\0\1"+ - "\43\2\0\1\43\4\0\1\43\2\0\12\43\1\0\1\43\3\0\5\43\6\0\1\43\1\0\1\43\1\0\1"+ - "\43\1\0\4\43\1\0\13\43\2\0\4\43\5\0\5\43\4\0\1\43\4\0\2\43\13\0\5\43\6\0\4"+ - "\43\3\0\2\43\14\0\10\43\7\0\10\43\1\0\7\43\6\0\2\43\12\0\5\43\5\0\2\43\3\0"+ - "\7\43\6\0\3\43\12\0\2\43\13\0\11\43\2\0\27\43\2\0\7\43\1\0\3\43\1\0\4\43\1"+ - "\0\4\43\2\0\6\43\3\0\1\43\1\0\1\43\2\0\5\43\1\0\12\43\12\0\5\43\1\0\3\43\1"+ - "\0\10\43\4\0\7\43\3\0\1\43\3\0\2\43\1\0\1\43\3\0\2\43\2\0\5\43\2\0\1\43\1"+ - "\0\1\43\30\0\3\43\3\0\6\43\2\0\6\43\2\0\6\43\11\0\7\43\4\0\5\43\3\0\5\43\5"+ - "\0\1\43\1\0\10\43\1\0\5\43\1\0\1\43\1\0\2\43\1\0\2\43\1\0\12\43\6\0\12\43"+ - "\2\0\6\43\2\0\6\43\2\0\6\43\2\0\3\43\3\0\14\43\1\0\16\43\1\0\2\43\1\0\2\43"+ - "\1\0\10\43\6\0\4\43\4\0\16\43\2\0\1\43\1\0\14\43\1\0\2\43\3\0\1\43\2\0\4\43"+ - "\1\0\2\43\12\0\10\43\6\0\6\43\1\0\3\43\1\0\12\43\3\0\1\43\12\0\4\43\25\0\1"+ - "\43\1\0\1\43\3\0\7\43\1\0\1\43\1\0\4\43\1\0\17\43\1\0\2\43\14\0\3\43\7\0\4"+ - "\43\11\0\2\43\1\0\1\43\20\0\4\43\10\0\1\43\13\0\10\43\5\0\3\43\2\0\1\43\2"+ - "\0\2\43\2\0\4\43\1\0\14\43\1\0\1\43\1\0\7\43\1\0\21\43\1\0\4\43\2\0\10\43"+ - "\1\0\7\43\1\0\14\43\1\0\4\43\1\0\5\43\1\0\1\43\3\0\14\43\2\0\10\43\1\0\2\43"+ - "\1\0\1\43\2\0\1\43\1\0\12\43\1\0\4\43\1\0\1\43\1\0\1\43\6\0\1\43\4\0\1\43"+ - "\1\0\1\43\1\0\1\43\1\0\3\43\1\0\2\43\1\0\1\43\2\0\1\43\1\0\1\43\1\0\1\43\1"+ - "\0\1\43\1\0\1\43\1\0\2\43\1\0\1\43\2\0\4\43\1\0\7\43\1\0\4\43\1\0\4\43\1\0"+ - "\1\43\1\0\12\43\1\0\5\43\1\0\3\43\1\0\5\43\1\0\5\43"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\4\1\5\22\0\1\1"+ + "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+ + "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ + "\1\26\10\27\1\30\1\31\1\32\1\33\1\34\1\35"+ + "\1\36\1\37\1\40\1\37\1\41\1\42\1\43\1\44"+ + "\1\45\1\46\2\45\1\47\13\45\1\50\2\45\1\51"+ + "\1\52\1\53\1\54\1\55\1\0\1\56\1\57\1\60"+ + "\1\61\1\62\1\63\1\64\1\65\1\66\1\45\1\67"+ + "\1\70\1\71\1\72\1\73\1\74\1\45\1\75\1\76"+ + "\1\77\1\100\1\101\1\102\1\103\1\104\1\105\1\106"+ + "\1\107\1\110\1\111\6\0\1\3\44\0\1\45\12\0"+ + "\1\45\4\0\1\45\5\0\27\45\1\0\37\45\1\0"+ + "\u01ca\45\4\0\14\45\16\0\5\45\7\0\1\45\1\0"+ + "\1\45\201\0\5\45\1\0\2\45\2\0\4\45\1\0"+ + "\1\45\6\0\1\45\1\0\3\45\1\0\1\45\1\0"+ + "\24\45\1\0\123\45\1\0\213\45\10\0\246\45\1\0"+ + "\46\45\2\0\1\45\6\0\51\45\107\0\33\45\4\0"+ + "\4\45\55\0\53\45\43\0\2\45\1\0\143\45\1\0"+ + "\1\45\17\0\2\45\7\0\2\45\12\0\3\45\2\0"+ + "\1\45\20\0\1\45\1\0\36\45\35\0\131\45\13\0"+ + "\1\45\30\0\41\45\11\0\2\45\4\0\1\45\5\0"+ + "\26\45\4\0\1\45\11\0\1\45\3\0\1\45\27\0"+ + "\31\45\7\0\13\45\65\0\25\45\1\0\10\45\106\0"+ + "\66\45\3\0\1\45\22\0\1\45\7\0\12\45\17\0"+ + "\20\45\4\0\10\45\2\0\2\45\2\0\26\45\1\0"+ + "\7\45\1\0\1\45\3\0\4\45\3\0\1\45\20\0"+ + "\1\45\15\0\2\45\1\0\3\45\16\0\2\45\12\0"+ + "\1\45\10\0\6\45\4\0\2\45\2\0\26\45\1\0"+ + "\7\45\1\0\2\45\1\0\2\45\1\0\2\45\37\0"+ + "\4\45\1\0\1\45\23\0\3\45\20\0\11\45\1\0"+ + "\3\45\1\0\26\45\1\0\7\45\1\0\2\45\1\0"+ + "\5\45\3\0\1\45\22\0\1\45\17\0\2\45\27\0"+ + "\1\45\13\0\10\45\2\0\2\45\2\0\26\45\1\0"+ + "\7\45\1\0\2\45\1\0\5\45\3\0\1\45\36\0"+ + "\2\45\1\0\3\45\17\0\1\45\21\0\1\45\1\0"+ + "\6\45\3\0\3\45\1\0\4\45\3\0\2\45\1\0"+ + "\1\45\1\0\2\45\3\0\2\45\3\0\3\45\3\0"+ + "\14\45\26\0\1\45\64\0\10\45\1\0\3\45\1\0"+ + "\27\45\1\0\20\45\3\0\1\45\32\0\3\45\5\0"+ + "\2\45\36\0\1\45\4\0\10\45\1\0\3\45\1\0"+ + "\27\45\1\0\12\45\1\0\5\45\3\0\1\45\40\0"+ + "\1\45\1\0\2\45\17\0\2\45\22\0\10\45\1\0"+ + "\3\45\1\0\51\45\2\0\1\45\20\0\1\45\5\0"+ + "\3\45\10\0\3\45\30\0\6\45\5\0\22\45\3\0"+ + "\30\45\1\0\11\45\1\0\1\45\2\0\7\45\72\0"+ + "\60\45\1\0\2\45\14\0\7\45\72\0\2\45\1\0"+ + "\1\45\1\0\5\45\1\0\30\45\1\0\1\45\1\0"+ + "\12\45\1\0\2\45\11\0\1\45\2\0\5\45\1\0"+ + "\1\45\25\0\4\45\40\0\1\45\77\0\10\45\1\0"+ + "\44\45\33\0\5\45\163\0\53\45\24\0\1\45\20\0"+ + "\6\45\4\0\4\45\3\0\1\45\3\0\2\45\7\0"+ + "\3\45\4\0\15\45\14\0\1\45\21\0\46\45\1\0"+ + "\1\45\5\0\1\45\2\0\53\45\1\0\115\45\1\0"+ + "\4\45\2\0\7\45\1\0\1\45\1\0\4\45\2\0"+ + "\51\45\1\0\4\45\2\0\41\45\1\0\4\45\2\0"+ + "\7\45\1\0\1\45\1\0\4\45\2\0\17\45\1\0"+ + "\71\45\1\0\4\45\2\0\103\45\45\0\20\45\20\0"+ + "\126\45\2\0\6\45\3\0\u016c\45\2\0\21\45\1\0"+ + "\32\45\5\0\113\45\6\0\10\45\7\0\15\45\1\0"+ + "\4\45\16\0\22\45\16\0\22\45\16\0\15\45\1\0"+ + "\3\45\17\0\64\45\43\0\1\45\4\0\1\45\103\0"+ + "\131\45\7\0\5\45\2\0\42\45\1\0\1\45\5\0"+ + "\106\45\12\0\37\45\61\0\36\45\2\0\5\45\13\0"+ + "\54\45\4\0\32\45\66\0\27\45\11\0\65\45\122\0"+ + "\1\45\135\0\57\45\21\0\7\45\67\0\36\45\15\0"+ + "\2\45\12\0\54\45\32\0\44\45\51\0\3\45\12\0"+ + "\44\45\2\0\11\45\7\0\53\45\2\0\3\45\51\0"+ + "\4\45\1\0\6\45\1\0\2\45\3\0\1\45\5\0"+ + "\300\45\100\0\26\45\2\0\6\45\2\0\46\45\2\0"+ + "\6\45\2\0\10\45\1\0\1\45\1\0\1\45\1\0"+ + "\1\45\1\0\37\45\2\0\65\45\1\0\7\45\1\0"+ + "\1\45\3\0\3\45\1\0\7\45\3\0\4\45\2\0"+ + "\6\45\4\0\15\45\5\0\3\45\1\0\7\45\53\0"+ + "\2\3\107\0\1\45\15\0\1\45\20\0\15\45\145\0"+ + "\1\45\4\0\1\45\2\0\12\45\1\0\1\45\3\0"+ + "\5\45\6\0\1\45\1\0\1\45\1\0\1\45\1\0"+ + "\4\45\1\0\13\45\2\0\4\45\5\0\5\45\4\0"+ + "\1\45\64\0\2\45\u017b\0\57\45\1\0\57\45\1\0"+ + "\205\45\6\0\4\45\3\0\2\45\14\0\46\45\1\0"+ + "\1\45\5\0\1\45\2\0\70\45\7\0\1\45\20\0"+ + "\27\45\11\0\7\45\1\0\7\45\1\0\7\45\1\0"+ + "\7\45\1\0\7\45\1\0\7\45\1\0\7\45\1\0"+ + "\7\45\120\0\1\45\325\0\2\45\52\0\5\45\5\0"+ + "\2\45\4\0\126\45\6\0\3\45\1\0\132\45\1\0"+ + "\4\45\5\0\53\45\1\0\136\45\21\0\33\45\65\0"+ + "\306\45\112\0\360\45\20\0\215\45\103\0\56\45\2\0"+ + "\15\45\3\0\20\45\12\0\2\45\24\0\57\45\20\0"+ + "\37\45\2\0\106\45\61\0\11\45\2\0\147\45\2\0"+ + "\65\45\2\0\5\45\60\0\13\45\1\0\3\45\1\0"+ + "\4\45\1\0\27\45\35\0\64\45\16\0\62\45\76\0"+ + "\6\45\3\0\1\45\1\0\2\45\13\0\34\45\12\0"+ + "\27\45\31\0\35\45\7\0\57\45\34\0\1\45\20\0"+ + "\5\45\1\0\12\45\12\0\5\45\1\0\51\45\27\0"+ + "\3\45\1\0\10\45\24\0\27\45\3\0\1\45\3\0"+ + "\62\45\1\0\1\45\3\0\2\45\2\0\5\45\2\0"+ + "\1\45\1\0\1\45\30\0\3\45\2\0\13\45\7\0"+ + "\3\45\14\0\6\45\2\0\6\45\2\0\6\45\11\0"+ + "\7\45\1\0\7\45\1\0\53\45\1\0\14\45\10\0"+ + "\163\45\35\0\244\45\14\0\27\45\4\0\61\45\4\0"+ + "\u0100\112\156\45\2\0\152\45\46\0\7\45\14\0\5\45"+ + "\5\0\1\45\1\0\12\45\1\0\15\45\1\0\5\45"+ + "\1\0\1\45\1\0\2\45\1\0\2\45\1\0\154\45"+ + "\41\0\153\45\22\0\100\45\2\0\66\45\50\0\14\45"+ + "\164\0\5\45\1\0\207\45\44\0\32\45\6\0\32\45"+ + "\13\0\131\45\3\0\6\45\2\0\6\45\2\0\6\45"+ + "\2\0\3\45\43\0\14\45\1\0\32\45\1\0\23\45"+ + "\1\0\2\45\1\0\17\45\2\0\16\45\42\0\173\45"+ + "\205\0\35\45\3\0\61\45\57\0\40\45\15\0\24\45"+ + "\1\0\10\45\6\0\46\45\12\0\36\45\2\0\44\45"+ + "\4\0\10\45\60\0\236\45\22\0\44\45\4\0\44\45"+ + "\4\0\50\45\10\0\64\45\234\0\67\45\11\0\26\45"+ + "\12\0\10\45\230\0\6\45\2\0\1\45\1\0\54\45"+ + "\1\0\2\45\3\0\1\45\2\0\27\45\12\0\27\45"+ + "\11\0\37\45\101\0\23\45\1\0\2\45\12\0\26\45"+ + "\12\0\32\45\106\0\70\45\6\0\2\45\100\0\1\45"+ + "\17\0\4\45\1\0\3\45\1\0\35\45\52\0\35\45"+ + "\3\0\35\45\43\0\10\45\1\0\34\45\33\0\66\45"+ + "\12\0\26\45\12\0\23\45\15\0\22\45\156\0\111\45"+ + "\67\0\63\45\15\0\63\45\15\0\44\45\334\0\35\45"+ + "\12\0\1\45\10\0\26\45\232\0\27\45\14\0\65\45"+ + "\113\0\55\45\40\0\31\45\32\0\44\45\35\0\1\45"+ + "\13\0\43\45\3\0\1\45\14\0\60\45\16\0\4\45"+ + "\25\0\1\45\1\0\1\45\43\0\22\45\1\0\31\45"+ + "\124\0\7\45\1\0\1\45\1\0\4\45\1\0\17\45"+ + "\1\0\12\45\7\0\57\45\46\0\10\45\2\0\2\45"+ + "\2\0\26\45\1\0\7\45\1\0\2\45\1\0\5\45"+ + "\3\0\1\45\22\0\1\45\14\0\5\45\236\0\65\45"+ + "\22\0\4\45\24\0\1\45\40\0\60\45\24\0\2\45"+ + "\1\0\1\45\270\0\57\45\51\0\4\45\44\0\60\45"+ + "\24\0\1\45\73\0\53\45\15\0\1\45\107\0\33\45"+ + "\345\0\54\45\164\0\100\45\37\0\1\45\240\0\10\45"+ + "\2\0\47\45\20\0\1\45\1\0\1\45\34\0\1\45"+ + "\12\0\50\45\7\0\1\45\25\0\1\45\13\0\56\45"+ + "\23\0\1\45\42\0\71\45\7\0\11\45\1\0\45\45"+ + "\21\0\1\45\61\0\36\45\160\0\7\45\1\0\2\45"+ + "\1\0\46\45\25\0\1\45\31\0\6\45\1\0\2\45"+ + "\1\0\40\45\16\0\1\45\u0147\0\23\45\15\0\232\45"+ + "\346\0\304\45\274\0\57\45\321\0\107\45\271\0\71\45"+ + "\7\0\37\45\161\0\36\45\22\0\60\45\20\0\4\45"+ + "\37\0\25\45\5\0\23\45\260\0\100\45\200\0\113\45"+ + "\5\0\1\45\102\0\15\45\100\0\2\45\1\0\1\45"+ + "\34\0\370\45\10\0\363\45\15\0\37\45\61\0\3\45"+ + "\21\0\4\45\10\0\u018c\45\4\0\153\45\5\0\15\45"+ + "\3\0\11\45\7\0\12\45\146\0\125\45\1\0\107\45"+ + "\1\0\2\45\2\0\1\45\2\0\2\45\2\0\4\45"+ + "\1\0\14\45\1\0\1\45\1\0\7\45\1\0\101\45"+ + "\1\0\4\45\2\0\10\45\1\0\7\45\1\0\34\45"+ + "\1\0\4\45\1\0\5\45\1\0\1\45\3\0\7\45"+ + "\1\0\u0154\45\2\0\31\45\1\0\31\45\1\0\37\45"+ + "\1\0\31\45\1\0\37\45\1\0\31\45\1\0\37\45"+ + "\1\0\31\45\1\0\37\45\1\0\31\45\1\0\10\45"+ + "\64\0\55\45\12\0\7\45\20\0\1\45\u0171\0\54\45"+ + "\24\0\305\45\73\0\104\45\7\0\1\45\264\0\4\45"+ + "\1\0\33\45\1\0\2\45\1\0\1\45\2\0\1\45"+ + "\1\0\12\45\1\0\4\45\1\0\1\45\1\0\1\45"+ + "\6\0\1\45\4\0\1\45\1\0\1\45\1\0\1\45"+ + "\1\0\3\45\1\0\2\45\1\0\1\45\2\0\1\45"+ + "\1\0\1\45\1\0\1\45\1\0\1\45\1\0\1\45"+ + "\1\0\2\45\1\0\1\45\2\0\4\45\1\0\7\45"+ + "\1\0\4\45\1\0\4\45\1\0\1\45\1\0\12\45"+ + "\1\0\21\45\5\0\3\45\1\0\5\45\1\0\21\45"+ + "\104\0\327\45\51\0\65\45\13\0\336\45\2\0\u0182\45"+ + "\16\0\u0131\45\37\0\36\45\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27904]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\15\0\1\1\1\2\2\3\1\1\1\4\1\5\1\1"+ - "\1\6\1\7\1\10\5\7\1\11\1\12\1\10\1\7"+ - "\1\13\1\7\1\14\1\15\12\7\1\16\1\17\1\20"+ - "\1\21\1\22\1\23\1\24\1\25\1\26\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\43\2\44\1\45\1\44\3\46\1\47"+ - "\1\50\1\47\1\51\1\52\3\47\2\53\1\54\1\51"+ - "\2\55\1\51\1\56\21\57\1\60\2\61\1\62\1\63"+ - "\1\3\1\63\1\0\1\3\1\64\1\65\1\66\1\67"+ - "\1\70\1\71\1\0\1\72\1\73\1\74\1\75\1\10"+ - "\1\76\3\0\5\7\1\77\1\7\1\100\1\7\1\101"+ - "\3\7\1\102\1\103\1\104\1\105\1\106\2\0\3\7"+ - "\1\107\1\110\1\111\1\112\1\14\1\0\1\14\2\0"+ - "\1\113\5\7\1\114\25\7\1\115\1\116\1\117\1\120"+ - "\1\0\1\121\1\122\1\0\1\123\1\0\1\124\1\0"+ - "\1\125\1\126\1\127\1\130\1\131\1\132\1\133\1\134"+ - "\1\135\1\0\4\47\1\53\1\136\1\137\1\140\1\55"+ - "\5\57\1\77\1\57\1\100\1\57\1\101\13\57\1\114"+ - "\25\57\1\141\1\0\1\65\1\142\1\143\1\0\1\144"+ - "\1\107\1\0\3\7\1\145\3\7\1\146\1\147\4\7"+ - "\2\10\3\7\1\107\1\0\1\150\1\151\3\14\1\152"+ - "\1\113\2\0\1\153\25\7\1\154\4\7\1\155\2\7"+ - "\1\156\5\7\1\157\1\160\1\161\1\162\1\163\1\164"+ - "\1\165\1\0\1\166\3\0\1\167\3\57\1\145\3\57"+ - "\1\146\1\147\34\57\1\154\4\57\1\155\2\57\1\156"+ - "\5\57\1\65\2\142\1\170\1\0\3\7\1\171\6\7"+ - "\1\172\1\7\1\173\2\0\2\7\1\174\11\0\10\7"+ - "\1\175\2\7\1\176\11\7\1\177\1\200\4\7\1\201"+ - "\1\7\1\0\1\202\2\7\1\203\1\204\3\57\1\171"+ - "\6\57\1\172\1\57\1\173\2\57\1\174\10\57\1\175"+ - "\2\57\1\176\11\57\1\177\1\200\4\57\1\201\1\57"+ - "\1\202\2\57\1\65\1\0\1\142\1\0\1\205\1\206"+ - "\1\207\7\7\1\210\1\7\1\14\4\0\7\7\1\211"+ - "\1\212\4\7\1\213\1\7\1\214\1\7\1\215\1\7"+ - "\1\216\4\7\1\0\1\217\1\220\1\205\1\206\1\207"+ - "\7\57\1\210\10\57\1\211\1\212\4\57\1\213\1\57"+ - "\1\214\1\57\1\215\1\57\1\216\4\57\1\217\1\220"+ - "\2\0\2\7\1\221\3\7\1\222\2\7\1\223\4\7"+ - "\1\224\1\7\1\225\1\7\1\226\1\227\2\7\1\230"+ - "\1\7\1\231\1\232\1\233\1\7\1\234\1\0\2\57"+ - "\1\221\3\57\1\222\6\57\1\224\1\57\1\225\1\57"+ - "\1\226\1\227\2\57\1\230\1\57\1\231\1\232\1\233"+ - "\1\57\1\234\1\0\1\235\3\7\1\236\1\237\1\240"+ - "\1\241\1\242\1\243\7\7\1\0\1\235\3\57\1\236"+ - "\1\237\1\240\1\241\1\242\1\243\7\57\1\0\4\7"+ - "\1\244\1\245\1\246\2\7\1\247\1\0\4\57\1\244"+ - "\1\245\1\246\2\57\1\247\1\0\2\7\1\250\1\251"+ - "\1\7\1\252\1\0\2\57\1\250\1\251\1\57\1\252"+ - "\1\0\1\253\1\254\1\7\1\255\1\253\1\254\1\57"+ - "\1\0\1\7\1\57\1\256\2\257"; + "\15\0\1\1\1\2\1\3\1\2\1\4\1\5\1\1"+ + "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+ + "\1\16\1\17\1\20\1\21\2\22\1\23\1\24\1\25"+ + "\1\26\1\27\1\30\1\31\1\6\1\32\1\1\1\33"+ + "\1\34\20\6\1\35\1\36\1\37\1\40\1\41\1\42"+ + "\1\43\2\44\1\45\1\44\3\46\1\47\1\50\1\51"+ + "\1\52\4\47\1\53\1\52\1\54\1\53\1\55\1\52"+ + "\1\55\1\56\21\57\1\60\2\61\1\62\1\63\1\2"+ + "\1\63\1\0\1\64\2\0\1\65\1\0\1\66\1\67"+ + "\1\70\1\71\1\72\2\11\1\0\1\73\1\74\1\75"+ + "\1\76\1\77\1\100\1\101\1\102\1\103\1\104\1\105"+ + "\1\106\1\107\2\0\1\110\1\0\1\111\1\112\1\22"+ + "\1\113\2\0\1\114\2\0\1\115\1\116\1\117\1\120"+ + "\1\0\1\121\1\122\1\123\1\0\1\2\1\124\1\6"+ + "\1\125\10\6\1\126\7\6\1\127\1\6\1\130\26\6"+ + "\1\131\1\132\1\133\1\134\1\135\1\0\4\47\1\136"+ + "\1\53\1\137\1\55\1\140\1\57\1\125\10\57\1\126"+ + "\7\57\1\127\1\57\1\130\26\57\1\141\1\0\1\142"+ + "\1\0\1\65\1\143\2\0\1\11\1\144\2\11\1\145"+ + "\1\146\1\147\1\105\1\0\1\106\1\150\1\22\1\0"+ + "\1\105\1\22\1\151\1\152\1\153\1\154\1\155\1\156"+ + "\1\0\1\157\12\6\1\160\7\6\1\161\2\6\1\162"+ + "\2\6\1\163\24\6\1\164\1\165\4\6\1\166\3\0"+ + "\1\167\12\57\1\160\7\57\1\161\2\57\1\162\2\57"+ + "\1\163\24\57\1\164\1\165\4\57\1\170\12\0\1\106"+ + "\2\150\2\0\1\171\1\172\4\6\1\173\1\174\1\6"+ + "\1\175\4\6\1\176\1\177\10\6\1\200\1\6\1\0"+ + "\1\201\16\6\1\202\3\6\1\203\1\204\3\6\4\57"+ + "\1\173\1\174\1\57\1\175\4\57\1\176\1\177\10\57"+ + "\1\200\1\57\1\201\16\57\1\202\3\57\1\203\1\204"+ + "\3\57\4\0\1\11\2\0\1\106\1\150\3\6\1\205"+ + "\1\206\1\207\4\6\1\210\1\211\1\212\5\6\1\0"+ + "\10\6\1\213\2\6\1\214\2\6\1\215\1\216\2\6"+ + "\1\217\1\220\3\57\1\205\1\206\1\207\4\57\1\210"+ + "\1\211\1\212\15\57\1\213\2\57\1\214\2\57\1\215"+ + "\1\216\2\57\1\217\1\220\1\0\1\221\1\0\1\6"+ + "\1\222\3\6\1\223\3\6\1\224\2\6\1\225\1\0"+ + "\4\6\1\226\1\227\1\230\1\231\1\232\1\6\1\233"+ + "\1\6\1\234\2\6\1\57\1\222\3\57\1\223\3\57"+ + "\1\224\2\57\1\225\4\57\1\226\1\227\1\230\1\231"+ + "\1\232\1\57\1\233\1\57\1\234\2\57\1\0\1\6"+ + "\1\235\1\6\1\236\1\237\1\240\3\6\1\0\1\241"+ + "\1\242\1\243\5\6\1\57\1\235\1\57\1\236\1\237"+ + "\1\240\3\57\1\241\1\242\1\243\5\57\1\0\1\244"+ + "\1\245\3\6\1\0\1\6\1\246\2\6\1\247\1\244"+ + "\1\245\4\57\1\246\2\57\1\247\1\0\2\6\1\250"+ + "\1\0\1\251\1\6\1\252\2\57\1\250\1\251\1\57"+ + "\1\252\1\0\1\253\1\254\1\255\1\6\1\253\1\254"+ + "\1\57\1\0\1\6\1\57\1\256\2\257"; private static int [] zzUnpackAction() { int [] result = new int[753]; @@ -252,107 +357,107 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\112\0\224\0\336\0\u0128\0\u0172\0\u01bc\0\u0206"+ - "\0\u0250\0\u029a\0\u02e4\0\u032e\0\u0378\0\u03c2\0\u040c\0\u03c2"+ - "\0\u040c\0\u0456\0\u04a0\0\u04ea\0\u0534\0\u057e\0\u05c8\0\u0612"+ - "\0\u065c\0\u06a6\0\u06f0\0\u073a\0\u0784\0\u07ce\0\u0818\0\u0862"+ - "\0\u08ac\0\u08f6\0\u0940\0\u098a\0\u09d4\0\u0a1e\0\u0a68\0\u0ab2"+ - "\0\u0afc\0\u0b46\0\u0b90\0\u0bda\0\u0c24\0\u0c6e\0\u0cb8\0\u03c2"+ - "\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u0d02\0\u0d4c\0\u0d96"+ - "\0\u03c2\0\u0de0\0\u0e2a\0\u03c2\0\u0e74\0\u0ebe\0\u0f08\0\u0f52"+ - "\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u0456\0\u0f9c"+ - "\0\u0fe6\0\u03c2\0\u1030\0\u107a\0\u10c4\0\u03c2\0\u110e\0\u03c2"+ - "\0\u03c2\0\u1158\0\u11a2\0\u11ec\0\u1236\0\u1280\0\u03c2\0\u12ca"+ - "\0\u1314\0\u135e\0\u13a8\0\u03c2\0\u13f2\0\u143c\0\u1486\0\u14d0"+ - "\0\u151a\0\u1564\0\u15ae\0\u15f8\0\u1642\0\u168c\0\u16d6\0\u1720"+ - "\0\u176a\0\u17b4\0\u17fe\0\u1848\0\u1892\0\u03c2\0\u03c2\0\u18dc"+ - "\0\u03c2\0\u03c2\0\u1926\0\u1970\0\u19ba\0\u1a04\0\u1a4e\0\u1a98"+ - "\0\u1ae2\0\u03c2\0\u03c2\0\u1b2c\0\u1b76\0\u1bc0\0\u03c2\0\u03c2"+ - "\0\u03c2\0\u03c2\0\u03c2\0\u1c0a\0\u1c54\0\u1c9e\0\u1ce8\0\u1d32"+ - "\0\u1d7c\0\u1dc6\0\u1e10\0\u05c8\0\u1e5a\0\u1ea4\0\u1eee\0\u1f38"+ - "\0\u1f82\0\u1fcc\0\u2016\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2"+ - "\0\u2060\0\u20aa\0\u20f4\0\u213e\0\u2188\0\u21d2\0\u221c\0\u03c2"+ - "\0\u03c2\0\u2266\0\u22b0\0\u22fa\0\u2344\0\u238e\0\u23d8\0\u2422"+ - "\0\u246c\0\u24b6\0\u2500\0\u254a\0\u2594\0\u25de\0\u2628\0\u2672"+ - "\0\u26bc\0\u2706\0\u2750\0\u279a\0\u27e4\0\u282e\0\u2878\0\u28c2"+ - "\0\u290c\0\u2956\0\u29a0\0\u29ea\0\u2a34\0\u2a7e\0\u2ac8\0\u2b12"+ - "\0\u2b5c\0\u2ba6\0\u2bf0\0\u03c2\0\u03c2\0\u03c2\0\u2c3a\0\u03c2"+ - "\0\u03c2\0\u2c84\0\u2cce\0\u2d18\0\u03c2\0\u2d62\0\u03c2\0\u03c2"+ - "\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u2dac"+ - "\0\u03c2\0\u2df6\0\u2e40\0\u2e8a\0\u03c2\0\u03c2\0\u03c2\0\u03c2"+ - "\0\u03c2\0\u2ed4\0\u2f1e\0\u2f68\0\u2fb2\0\u2ffc\0\u13f2\0\u3046"+ - "\0\u3090\0\u30da\0\u3124\0\u316e\0\u31b8\0\u3202\0\u324c\0\u3296"+ - "\0\u32e0\0\u332a\0\u3374\0\u33be\0\u3408\0\u3452\0\u349c\0\u34e6"+ - "\0\u3530\0\u357a\0\u35c4\0\u360e\0\u3658\0\u36a2\0\u36ec\0\u3736"+ - "\0\u3780\0\u37ca\0\u3814\0\u385e\0\u38a8\0\u38f2\0\u393c\0\u3986"+ - "\0\u39d0\0\u3a1a\0\u3a64\0\u3aae\0\u3af8\0\u1970\0\u3b42\0\u3b8c"+ - "\0\u03c2\0\u3bd6\0\u03c2\0\u3c20\0\u3c6a\0\u3cb4\0\u3cfe\0\u3d48"+ - "\0\u05c8\0\u3d92\0\u3ddc\0\u3e26\0\u3e70\0\u3eba\0\u3f04\0\u3f4e"+ - "\0\u3f98\0\u3fe2\0\u402c\0\u4076\0\u40c0\0\u410a\0\u4154\0\u03c2"+ - "\0\u419e\0\u03c2\0\u03c2\0\u03c2\0\u41e8\0\u4232\0\u03c2\0\u03c2"+ - "\0\u427c\0\u42c6\0\u4310\0\u435a\0\u43a4\0\u43ee\0\u4438\0\u4482"+ - "\0\u44cc\0\u4516\0\u4560\0\u45aa\0\u45f4\0\u463e\0\u4688\0\u46d2"+ - "\0\u471c\0\u4766\0\u47b0\0\u47fa\0\u4844\0\u488e\0\u48d8\0\u4922"+ - "\0\u05c8\0\u496c\0\u49b6\0\u4a00\0\u4a4a\0\u05c8\0\u4a94\0\u4ade"+ - "\0\u05c8\0\u4b28\0\u4b72\0\u4bbc\0\u4c06\0\u4c50\0\u03c2\0\u03c2"+ - "\0\u03c2\0\u4c9a\0\u03c2\0\u03c2\0\u03c2\0\u4ce4\0\u03c2\0\u2df6"+ - "\0\u2e40\0\u4d2e\0\u03c2\0\u4d78\0\u4dc2\0\u4e0c\0\u13f2\0\u4e56"+ - "\0\u4ea0\0\u4eea\0\u4f34\0\u4f7e\0\u4fc8\0\u5012\0\u505c\0\u50a6"+ - "\0\u50f0\0\u513a\0\u5184\0\u51ce\0\u5218\0\u5262\0\u52ac\0\u52f6"+ - "\0\u5340\0\u538a\0\u53d4\0\u541e\0\u5468\0\u54b2\0\u54fc\0\u5546"+ - "\0\u5590\0\u55da\0\u5624\0\u566e\0\u56b8\0\u5702\0\u574c\0\u5796"+ - "\0\u13f2\0\u57e0\0\u582a\0\u5874\0\u58be\0\u13f2\0\u5908\0\u5952"+ - "\0\u13f2\0\u599c\0\u59e6\0\u5a30\0\u5a7a\0\u5ac4\0\u5b0e\0\u5b58"+ - "\0\u03c2\0\u03c2\0\u5ba2\0\u5bec\0\u5c36\0\u5c80\0\u05c8\0\u5cca"+ - "\0\u5d14\0\u5d5e\0\u5da8\0\u5df2\0\u5e3c\0\u05c8\0\u5e86\0\u05c8"+ - "\0\u5ed0\0\u5f1a\0\u5f64\0\u5fae\0\u05c8\0\u5ff8\0\u6042\0\u608c"+ - "\0\u60d6\0\u6120\0\u616a\0\u4310\0\u61b4\0\u61fe\0\u6248\0\u6292"+ - "\0\u62dc\0\u6326\0\u6370\0\u63ba\0\u6404\0\u644e\0\u05c8\0\u6498"+ - "\0\u64e2\0\u05c8\0\u652c\0\u6576\0\u65c0\0\u660a\0\u6654\0\u669e"+ - "\0\u66e8\0\u6732\0\u677c\0\u05c8\0\u05c8\0\u67c6\0\u6810\0\u685a"+ - "\0\u68a4\0\u05c8\0\u68ee\0\u6938\0\u05c8\0\u6982\0\u69cc\0\u03c2"+ - "\0\u03c2\0\u6a16\0\u6a60\0\u6aaa\0\u13f2\0\u6af4\0\u6b3e\0\u6b88"+ - "\0\u6bd2\0\u6c1c\0\u6c66\0\u13f2\0\u6cb0\0\u13f2\0\u6cfa\0\u6d44"+ - "\0\u13f2\0\u6d8e\0\u6dd8\0\u6e22\0\u6e6c\0\u6eb6\0\u6f00\0\u6f4a"+ - "\0\u6f94\0\u13f2\0\u6fde\0\u7028\0\u13f2\0\u7072\0\u70bc\0\u7106"+ - "\0\u7150\0\u719a\0\u71e4\0\u722e\0\u7278\0\u72c2\0\u13f2\0\u13f2"+ - "\0\u730c\0\u7356\0\u73a0\0\u73ea\0\u13f2\0\u7434\0\u13f2\0\u747e"+ - "\0\u74c8\0\u03c2\0\u5b0e\0\u7512\0\u755c\0\u05c8\0\u75a6\0\u05c8"+ - "\0\u75f0\0\u763a\0\u7684\0\u76ce\0\u7718\0\u7762\0\u77ac\0\u05c8"+ - "\0\u77f6\0\u7840\0\u788a\0\u78d4\0\u791e\0\u7968\0\u79b2\0\u79fc"+ - "\0\u7a46\0\u7a90\0\u7ada\0\u7b24\0\u7b6e\0\u05c8\0\u05c8\0\u7bb8"+ - "\0\u7c02\0\u7c4c\0\u7c96\0\u05c8\0\u7ce0\0\u05c8\0\u7d2a\0\u05c8"+ - "\0\u7d74\0\u7dbe\0\u7e08\0\u7e52\0\u7e9c\0\u7ee6\0\u7f30\0\u05c8"+ - "\0\u05c8\0\u13f2\0\u7f7a\0\u13f2\0\u7fc4\0\u800e\0\u8058\0\u80a2"+ - "\0\u80ec\0\u8136\0\u8180\0\u13f2\0\u81ca\0\u8214\0\u825e\0\u82a8"+ - "\0\u82f2\0\u833c\0\u8386\0\u83d0\0\u13f2\0\u13f2\0\u841a\0\u8464"+ - "\0\u84ae\0\u84f8\0\u13f2\0\u8542\0\u13f2\0\u858c\0\u13f2\0\u85d6"+ - "\0\u8620\0\u866a\0\u86b4\0\u86fe\0\u8748\0\u13f2\0\u13f2\0\u7512"+ - "\0\u8792\0\u87dc\0\u8826\0\u05c8\0\u8870\0\u88ba\0\u8904\0\u05c8"+ - "\0\u894e\0\u8998\0\u03c2\0\u89e2\0\u8a2c\0\u8a76\0\u8ac0\0\u05c8"+ - "\0\u8b0a\0\u05c8\0\u8b54\0\u05c8\0\u05c8\0\u8b9e\0\u8be8\0\u05c8"+ - "\0\u8c32\0\u05c8\0\u05c8\0\u05c8\0\u8c7c\0\u05c8\0\u8cc6\0\u8d10"+ - "\0\u8d5a\0\u13f2\0\u8da4\0\u8dee\0\u8e38\0\u13f2\0\u8e82\0\u8ecc"+ - "\0\u8f16\0\u8f60\0\u8faa\0\u8ff4\0\u13f2\0\u903e\0\u13f2\0\u9088"+ - "\0\u13f2\0\u13f2\0\u90d2\0\u911c\0\u13f2\0\u9166\0\u13f2\0\u13f2"+ - "\0\u13f2\0\u91b0\0\u13f2\0\u91fa\0\u05c8\0\u9244\0\u928e\0\u92d8"+ - "\0\u05c8\0\u05c8\0\u05c8\0\u05c8\0\u05c8\0\u05c8\0\u9322\0\u936c"+ - "\0\u93b6\0\u9400\0\u944a\0\u9494\0\u94de\0\u9528\0\u13f2\0\u9572"+ - "\0\u95bc\0\u9606\0\u13f2\0\u13f2\0\u13f2\0\u13f2\0\u13f2\0\u13f2"+ - "\0\u9650\0\u969a\0\u96e4\0\u972e\0\u9778\0\u97c2\0\u980c\0\u9856"+ - "\0\u98a0\0\u98ea\0\u9934\0\u997e\0\u05c8\0\u05c8\0\u05c8\0\u99c8"+ - "\0\u9a12\0\u05c8\0\u9a5c\0\u9aa6\0\u9af0\0\u9b3a\0\u9b84\0\u13f2"+ - "\0\u13f2\0\u13f2\0\u9bce\0\u9c18\0\u13f2\0\u9c62\0\u9cac\0\u9cf6"+ - "\0\u05c8\0\u05c8\0\u9d40\0\u05c8\0\u9d8a\0\u9dd4\0\u9e1e\0\u13f2"+ - "\0\u13f2\0\u9e68\0\u13f2\0\u9eb2\0\u05c8\0\u05c8\0\u9efc\0\u03c2"+ - "\0\u13f2\0\u13f2\0\u9f46\0\u9f90\0\u9fda\0\ua024\0\u03c2\0\u05c8"+ - "\0\u13f2"; + "\0\0\0\113\0\226\0\341\0\u012c\0\u0177\0\u01c2\0\u020d"+ + "\0\u0258\0\u02a3\0\u02ee\0\u0339\0\u0384\0\u03cf\0\u03cf\0\u041a"+ + "\0\u041a\0\u0465\0\u04b0\0\u04fb\0\u0546\0\u0591\0\u05dc\0\u0627"+ + "\0\u03cf\0\u03cf\0\u0672\0\u06bd\0\u03cf\0\u0708\0\u0753\0\u079e"+ + "\0\u07e9\0\u0834\0\u087f\0\u03cf\0\u08ca\0\u0915\0\u0960\0\u09ab"+ + "\0\u03cf\0\u09f6\0\u03cf\0\u0a41\0\u03cf\0\u0a8c\0\u0ad7\0\u0b22"+ + "\0\u0b6d\0\u0bb8\0\u0c03\0\u0c4e\0\u0c99\0\u0ce4\0\u0d2f\0\u0d7a"+ + "\0\u0dc5\0\u0e10\0\u0e5b\0\u0ea6\0\u0ef1\0\u0f3c\0\u03cf\0\u0f87"+ + "\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u0fd2\0\u101d"+ + "\0\u0a41\0\u03cf\0\u1068\0\u10b3\0\u10fe\0\u03cf\0\u03cf\0\u03cf"+ + "\0\u1149\0\u1194\0\u11df\0\u122a\0\u1275\0\u12c0\0\u03cf\0\u130b"+ + "\0\u1356\0\u13a1\0\u13ec\0\u03cf\0\u1437\0\u1482\0\u14cd\0\u1518"+ + "\0\u1563\0\u15ae\0\u15f9\0\u1644\0\u168f\0\u16da\0\u1725\0\u1770"+ + "\0\u17bb\0\u1806\0\u1851\0\u189c\0\u18e7\0\u03cf\0\u03cf\0\u1932"+ + "\0\u03cf\0\u03cf\0\u197d\0\u19c8\0\u1a13\0\u1a5e\0\u1aa9\0\u1af4"+ + "\0\u1b3f\0\u1b8a\0\u1bd5\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u1c20"+ + "\0\u1c6b\0\u1cb6\0\u1d01\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u03cf"+ + "\0\u03cf\0\u03cf\0\u03cf\0\u1d4c\0\u1d97\0\u1de2\0\u1e2d\0\u1e78"+ + "\0\u1ec3\0\u03cf\0\u1f0e\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u1f59"+ + "\0\u1fa4\0\u03cf\0\u1fef\0\u203a\0\u2085\0\u20d0\0\u03cf\0\u03cf"+ + "\0\u211b\0\u03cf\0\u03cf\0\u03cf\0\u2166\0\u21b1\0\u03cf\0\u21fc"+ + "\0\u2247\0\u2292\0\u22dd\0\u2328\0\u2373\0\u23be\0\u2409\0\u2454"+ + "\0\u249f\0\u24ea\0\u2535\0\u2580\0\u25cb\0\u2616\0\u2661\0\u26ac"+ + "\0\u26f7\0\u09f6\0\u2742\0\u278d\0\u27d8\0\u2823\0\u286e\0\u28b9"+ + "\0\u2904\0\u294f\0\u299a\0\u29e5\0\u2a30\0\u2a7b\0\u2ac6\0\u2b11"+ + "\0\u2b5c\0\u2ba7\0\u2bf2\0\u2c3d\0\u2c88\0\u2cd3\0\u2d1e\0\u2d69"+ + "\0\u2db4\0\u2dff\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u2e4a"+ + "\0\u03cf\0\u2e95\0\u2ee0\0\u2f2b\0\u03cf\0\u03cf\0\u03cf\0\u03cf"+ + "\0\u03cf\0\u2f76\0\u2fc1\0\u300c\0\u3057\0\u30a2\0\u30ed\0\u3138"+ + "\0\u3183\0\u31ce\0\u3219\0\u3264\0\u32af\0\u32fa\0\u3345\0\u3390"+ + "\0\u33db\0\u3426\0\u3471\0\u1437\0\u34bc\0\u3507\0\u3552\0\u359d"+ + "\0\u35e8\0\u3633\0\u367e\0\u36c9\0\u3714\0\u375f\0\u37aa\0\u37f5"+ + "\0\u3840\0\u388b\0\u38d6\0\u3921\0\u396c\0\u39b7\0\u3a02\0\u3a4d"+ + "\0\u3a98\0\u3ae3\0\u3b2e\0\u3b79\0\u3bc4\0\u19c8\0\u03cf\0\u3c0f"+ + "\0\u03cf\0\u3c5a\0\u3ca5\0\u3cf0\0\u03cf\0\u03cf\0\u3d3b\0\u3d86"+ + "\0\u03cf\0\u03cf\0\u03cf\0\u03cf\0\u3dd1\0\u3e1c\0\u3e67\0\u3eb2"+ + "\0\u3efd\0\u3f48\0\u3f93\0\u3fde\0\u03cf\0\u03cf\0\u03cf\0\u03cf"+ + "\0\u03cf\0\u4029\0\u03cf\0\u4074\0\u40bf\0\u410a\0\u4155\0\u41a0"+ + "\0\u41eb\0\u4236\0\u4281\0\u42cc\0\u4317\0\u4362\0\u43ad\0\u43f8"+ + "\0\u4443\0\u448e\0\u44d9\0\u4524\0\u456f\0\u09f6\0\u45ba\0\u4605"+ + "\0\u4650\0\u469b\0\u46e6\0\u09f6\0\u4731\0\u477c\0\u47c7\0\u4812"+ + "\0\u485d\0\u48a8\0\u48f3\0\u493e\0\u4989\0\u49d4\0\u4a1f\0\u4a6a"+ + "\0\u4ab5\0\u4b00\0\u4b4b\0\u4b96\0\u4be1\0\u4c2c\0\u4c77\0\u4cc2"+ + "\0\u09f6\0\u09f6\0\u4d0d\0\u4d58\0\u4da3\0\u4dee\0\u03cf\0\u2e95"+ + "\0\u2ee0\0\u4e39\0\u03cf\0\u4e84\0\u4ecf\0\u4f1a\0\u4f65\0\u4fb0"+ + "\0\u4ffb\0\u5046\0\u5091\0\u50dc\0\u5127\0\u5172\0\u51bd\0\u5208"+ + "\0\u5253\0\u529e\0\u52e9\0\u5334\0\u537f\0\u1437\0\u53ca\0\u5415"+ + "\0\u5460\0\u54ab\0\u54f6\0\u1437\0\u5541\0\u558c\0\u55d7\0\u5622"+ + "\0\u566d\0\u56b8\0\u5703\0\u574e\0\u5799\0\u57e4\0\u582f\0\u587a"+ + "\0\u58c5\0\u5910\0\u595b\0\u59a6\0\u59f1\0\u5a3c\0\u5a87\0\u5ad2"+ + "\0\u1437\0\u1437\0\u5b1d\0\u5b68\0\u5bb3\0\u5bfe\0\u03cf\0\u5c49"+ + "\0\u3c5a\0\u5c94\0\u5cdf\0\u5d2a\0\u5d75\0\u5dc0\0\u5e0b\0\u5e56"+ + "\0\u5ea1\0\u5eec\0\u5f37\0\u03cf\0\u5f82\0\u5fcd\0\u03cf\0\u03cf"+ + "\0\u6018\0\u6063\0\u60ae\0\u60f9\0\u09f6\0\u09f6\0\u6144\0\u09f6"+ + "\0\u618f\0\u61da\0\u6225\0\u6270\0\u09f6\0\u09f6\0\u62bb\0\u6306"+ + "\0\u6351\0\u639c\0\u63e7\0\u6432\0\u647d\0\u64c8\0\u09f6\0\u6513"+ + "\0\u655e\0\u09f6\0\u65a9\0\u65f4\0\u663f\0\u668a\0\u66d5\0\u6720"+ + "\0\u676b\0\u67b6\0\u6801\0\u684c\0\u6897\0\u68e2\0\u692d\0\u6978"+ + "\0\u09f6\0\u69c3\0\u6a0e\0\u6a59\0\u09f6\0\u09f6\0\u6aa4\0\u6aef"+ + "\0\u6b3a\0\u6b85\0\u6bd0\0\u6c1b\0\u6c66\0\u1437\0\u1437\0\u6cb1"+ + "\0\u1437\0\u6cfc\0\u6d47\0\u6d92\0\u6ddd\0\u1437\0\u1437\0\u6e28"+ + "\0\u6e73\0\u6ebe\0\u6f09\0\u6f54\0\u6f9f\0\u6fea\0\u7035\0\u1437"+ + "\0\u7080\0\u1437\0\u70cb\0\u7116\0\u7161\0\u71ac\0\u71f7\0\u7242"+ + "\0\u728d\0\u72d8\0\u7323\0\u736e\0\u73b9\0\u7404\0\u744f\0\u749a"+ + "\0\u1437\0\u74e5\0\u7530\0\u757b\0\u1437\0\u1437\0\u75c6\0\u7611"+ + "\0\u765c\0\u76a7\0\u76f2\0\u773d\0\u7788\0\u77d3\0\u781e\0\u5eec"+ + "\0\u03cf\0\u7869\0\u78b4\0\u78ff\0\u794a\0\u09f6\0\u09f6\0\u09f6"+ + "\0\u7995\0\u79e0\0\u7a2b\0\u7a76\0\u09f6\0\u7ac1\0\u09f6\0\u7b0c"+ + "\0\u7b57\0\u7ba2\0\u7bed\0\u7c38\0\u7c83\0\u7cce\0\u7d19\0\u7d64"+ + "\0\u7daf\0\u7dfa\0\u7e45\0\u7e90\0\u7edb\0\u09f6\0\u7f26\0\u7f71"+ + "\0\u09f6\0\u7fbc\0\u8007\0\u8052\0\u09f6\0\u809d\0\u80e8\0\u09f6"+ + "\0\u09f6\0\u8133\0\u817e\0\u81c9\0\u1437\0\u1437\0\u1437\0\u8214"+ + "\0\u825f\0\u82aa\0\u82f5\0\u1437\0\u8340\0\u1437\0\u838b\0\u83d6"+ + "\0\u8421\0\u846c\0\u84b7\0\u8502\0\u854d\0\u8598\0\u85e3\0\u862e"+ + "\0\u8679\0\u86c4\0\u870f\0\u1437\0\u875a\0\u87a5\0\u1437\0\u87f0"+ + "\0\u883b\0\u8886\0\u1437\0\u88d1\0\u891c\0\u1437\0\u1437\0\u8967"+ + "\0\u03cf\0\u7869\0\u89b2\0\u09f6\0\u89fd\0\u8a48\0\u8a93\0\u09f6"+ + "\0\u8ade\0\u8b29\0\u8b74\0\u09f6\0\u8bbf\0\u8c0a\0\u09f6\0\u8c55"+ + "\0\u8ca0\0\u8ceb\0\u8d36\0\u8d81\0\u09f6\0\u09f6\0\u09f6\0\u09f6"+ + "\0\u09f6\0\u8dcc\0\u09f6\0\u8e17\0\u09f6\0\u8e62\0\u8ead\0\u8ef8"+ + "\0\u1437\0\u8f43\0\u8f8e\0\u8fd9\0\u1437\0\u9024\0\u906f\0\u90ba"+ + "\0\u1437\0\u9105\0\u9150\0\u1437\0\u919b\0\u91e6\0\u9231\0\u927c"+ + "\0\u1437\0\u1437\0\u1437\0\u1437\0\u1437\0\u92c7\0\u1437\0\u9312"+ + "\0\u1437\0\u935d\0\u93a8\0\u93f3\0\u943e\0\u09f6\0\u9489\0\u09f6"+ + "\0\u09f6\0\u09f6\0\u94d4\0\u951f\0\u956a\0\u95b5\0\u09f6\0\u09f6"+ + "\0\u09f6\0\u9600\0\u964b\0\u9696\0\u96e1\0\u972c\0\u9777\0\u1437"+ + "\0\u97c2\0\u1437\0\u1437\0\u1437\0\u980d\0\u9858\0\u98a3\0\u1437"+ + "\0\u1437\0\u1437\0\u98ee\0\u9939\0\u9984\0\u99cf\0\u9a1a\0\u9a65"+ + "\0\u09f6\0\u09f6\0\u9ab0\0\u9afb\0\u9b46\0\u9b91\0\u9bdc\0\u09f6"+ + "\0\u9c27\0\u9c72\0\u09f6\0\u1437\0\u1437\0\u9cbd\0\u9d08\0\u9d53"+ + "\0\u9d9e\0\u1437\0\u9de9\0\u9e34\0\u1437\0\u9e7f\0\u9eca\0\u9f15"+ + "\0\u09f6\0\u9f60\0\u09f6\0\u9fab\0\u09f6\0\u9ff6\0\ua041\0\u1437"+ + "\0\u1437\0\ua08c\0\u1437\0\ua0d7\0\u09f6\0\u09f6\0\u03cf\0\ua122"+ + "\0\u1437\0\u1437\0\ua16d\0\ua1b8\0\ua203\0\ua24e\0\u03cf\0\u09f6"+ + "\0\u1437"; private static int [] zzUnpackRowMap() { int [] result = new int[753]; @@ -364,7 +469,7 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -372,677 +477,625 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\16\3\17\1\20\1\21\1\22\1\23\1\24\1\25"+ - "\1\26\1\27\1\30\2\27\1\31\1\27\1\32\1\27"+ - "\1\33\1\27\1\34\1\27\1\35\1\27\1\36\1\37"+ - "\1\27\1\40\1\41\1\27\1\30\2\27\1\42\1\27"+ - "\1\43\1\44\1\45\1\46\1\47\1\50\1\27\1\51"+ - "\1\52\1\53\2\27\1\54\1\55\1\27\1\56\2\27"+ - "\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66"+ - "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"+ - "\1\77\1\100\1\101\1\102\1\16\3\17\1\20\1\21"+ - "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\2\27"+ - "\1\31\1\27\1\32\1\27\1\33\1\27\1\34\1\27"+ - "\1\35\1\27\1\36\1\37\1\27\1\40\1\41\1\27"+ - "\1\30\2\27\1\42\1\27\1\43\1\44\1\45\1\46"+ - "\1\47\1\50\1\27\1\51\1\52\1\53\2\27\1\54"+ - "\1\55\1\27\1\56\2\27\1\57\1\103\1\61\1\62"+ - "\1\63\1\64\1\104\1\66\1\67\1\70\1\71\1\72"+ - "\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102"+ - "\1\16\3\17\1\20\1\21\1\22\1\23\1\24\1\25"+ - "\1\26\1\27\1\30\14\27\1\36\1\37\1\27\1\40"+ - "\2\27\1\30\2\27\1\42\1\27\1\43\1\44\1\45"+ - "\20\27\1\103\1\61\1\62\1\63\1\64\1\105\1\66"+ - "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"+ - "\1\77\1\100\1\101\1\102\4\106\2\20\1\107\1\110"+ - "\34\106\1\111\45\106\6\112\1\113\36\112\1\114\44\112"+ - "\2\115\2\116\2\115\1\117\35\115\1\120\1\115\1\121"+ - "\43\115\6\122\1\123\35\122\1\120\1\122\1\124\43\122"+ - "\6\125\1\126\1\127\34\125\1\130\45\125\7\131\1\132"+ - "\34\131\1\133\45\131\13\134\1\135\1\134\2\135\1\136"+ - "\1\135\1\137\1\135\1\140\1\135\1\141\1\135\1\142"+ - "\1\135\2\134\1\135\1\134\1\143\1\135\1\134\2\135"+ - "\1\134\1\135\3\134\1\144\1\145\1\146\1\135\1\147"+ - "\1\150\1\151\2\135\1\152\1\153\1\135\1\154\2\135"+ - "\1\155\1\156\22\134\42\157\1\160\47\157\13\161\1\135"+ - "\1\161\14\135\2\161\1\135\1\161\2\135\1\161\2\135"+ - "\1\161\1\135\3\161\20\135\23\161\1\162\5\163\1\164"+ - "\103\162\113\0\5\17\1\165\104\0\2\20\1\166\1\0"+ - "\1\20\113\0\1\167\1\170\111\0\1\171\31\0\1\172"+ - "\32\0\1\173\26\0\1\174\122\0\1\175\51\0\1\176"+ - "\27\0\16\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\37\0\1\30\2\177\2\200\2\201\2\202\2\203\2\204"+ - "\2\0\1\205\1\30\2\0\1\30\2\0\1\206\62\0"+ - "\6\27\1\207\1\27\1\210\5\27\2\0\7\27\1\0"+ - "\2\27\2\0\1\27\1\211\6\27\1\212\7\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\10\27\1\213"+ - "\7\27\36\0\4\27\1\214\11\27\2\0\7\27\1\0"+ - "\2\27\2\0\7\27\1\215\2\27\1\216\5\27\36\0"+ - "\14\27\1\217\1\27\2\0\7\27\1\0\2\27\2\0"+ - "\10\27\1\220\7\27\36\0\6\27\1\221\7\27\2\0"+ - "\5\27\1\222\1\27\1\0\2\27\2\0\12\27\1\223"+ - "\5\27\54\0\1\224\43\0\1\225\46\0\1\226\42\0"+ - "\1\227\4\0\1\230\23\0\1\30\2\177\2\200\2\201"+ - "\2\202\2\203\2\204\2\0\1\205\1\30\2\231\1\30"+ - "\2\232\1\206\62\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\6\27\1\233\1\27\1\234\3\27\1\235\3\27"+ - "\37\0\1\236\17\0\1\236\2\0\1\236\2\0\1\237"+ - "\44\0\1\240\11\0\1\241\3\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\23\0\2\242\2\0\2\242"+ - "\1\243\36\242\1\244\44\242\2\245\2\0\2\245\1\246"+ - "\35\245\1\0\1\245\1\247\43\245\13\0\14\27\1\250"+ - "\1\27\2\0\7\27\1\0\2\27\2\0\1\27\1\251"+ - "\4\27\1\252\4\27\1\253\4\27\36\0\16\27\2\0"+ - "\2\27\1\254\4\27\1\0\2\27\2\0\4\27\1\255"+ - "\13\27\36\0\6\27\1\256\7\27\2\0\7\27\1\0"+ - "\2\27\2\0\1\27\1\257\6\27\1\260\4\27\1\261"+ - "\2\27\36\0\14\27\1\262\1\27\2\0\7\27\1\0"+ - "\2\27\2\0\5\27\1\263\5\27\1\264\1\265\1\266"+ - "\1\27\1\267\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\6\27\1\270\6\27\1\271\2\27\36\0\14\27"+ - "\1\272\1\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\1\27"+ - "\1\273\6\27\1\274\7\27\36\0\14\27\1\275\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\1\27\1\276\6\27"+ - "\1\277\2\27\1\300\4\27\36\0\10\27\1\301\5\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\15\27\1\302\2\27"+ - "\120\0\1\303\5\0\1\304\50\0\1\305\32\0\1\306"+ - "\1\307\1\310\111\0\1\311\54\0\1\312\32\0\1\313"+ - "\3\0\1\314\105\0\1\315\4\0\1\316\104\0\1\317"+ - "\111\0\1\320\111\0\1\321\10\0\1\322\100\0\1\323"+ - "\11\0\1\324\11\0\2\325\64\0\1\326\23\0\1\327"+ - "\102\0\112\112\45\0\1\330\44\0\2\115\2\0\2\115"+ - "\1\0\35\115\1\0\1\115\1\0\43\115\4\331\2\332"+ - "\1\333\103\331\6\122\1\0\35\122\1\0\1\122\1\0"+ - "\43\122\1\331\3\0\1\331\1\0\104\331\46\0\1\334"+ - "\43\0\6\125\2\0\34\125\1\0\45\125\7\0\1\335"+ - "\102\0\13\336\1\0\1\336\14\0\2\336\1\0\1\336"+ - "\2\0\1\336\2\0\1\336\1\0\3\336\21\0\22\336"+ - "\7\131\1\0\34\131\1\0\45\131\44\0\1\337\45\0"+ - "\7\340\1\341\3\340\1\0\1\340\14\0\2\340\1\0"+ - "\1\340\2\0\1\340\2\0\1\340\1\0\1\341\2\340"+ - "\21\0\22\340\13\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\6\135\1\342\1\135\1\343\5\135"+ - "\2\0\7\135\1\0\1\135\3\0\1\135\1\344\6\135"+ - "\1\345\7\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\10\135\1\346\7\135\36\0\4\135\1\347\11\135"+ - "\2\0\7\135\1\0\1\135\3\0\7\135\1\350\2\135"+ - "\1\351\5\135\36\0\14\135\1\352\1\135\2\0\7\135"+ - "\1\0\1\135\3\0\10\135\1\353\7\135\36\0\6\135"+ - "\1\354\7\135\2\0\5\135\1\355\1\135\1\0\1\135"+ - "\3\0\12\135\1\356\5\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\6\135\1\357\1\135\1\360\3\135"+ - "\1\361\3\135\36\0\14\135\1\362\1\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\363\4\135\1\364\4\135"+ - "\1\365\4\135\36\0\16\135\2\0\2\135\1\366\4\135"+ - "\1\0\1\135\3\0\4\135\1\367\13\135\36\0\6\135"+ - "\1\370\7\135\2\0\7\135\1\0\1\135\3\0\1\135"+ - "\1\371\6\135\1\372\4\135\1\373\2\135\36\0\14\135"+ - "\1\374\1\135\2\0\7\135\1\0\1\135\3\0\5\135"+ - "\1\375\5\135\1\376\1\377\1\u0100\1\135\1\u0101\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\6\135\1\u0102"+ - "\6\135\1\u0103\2\135\36\0\14\135\1\u0104\1\135\2\0"+ - "\7\135\1\0\1\135\3\0\20\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\1\135\1\u0105\6\135\1\u0106"+ - "\7\135\36\0\14\135\1\u0107\1\135\2\0\7\135\1\0"+ - "\1\135\3\0\1\135\1\u0108\6\135\1\u0109\2\135\1\u010a"+ - "\4\135\36\0\10\135\1\u010b\5\135\2\0\7\135\1\0"+ - "\1\135\3\0\20\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\15\135\1\u010c\2\135\36\0\1\u010d\1\0"+ - "\14\u010d\2\0\1\u010d\1\0\2\u010d\1\0\2\u010d\1\0"+ - "\1\u010d\3\0\20\u010d\24\0\5\163\1\u010e\104\0\3\163"+ - "\1\0\1\163\105\0\3\17\1\0\1\17\106\0\1\20"+ - "\107\0\2\167\2\0\106\167\10\u010f\1\u0110\101\u010f\75\0"+ - "\1\u0111\14\0\2\174\2\0\106\174\61\0\1\u0112\125\0"+ - "\1\u0113\30\0\1\u0114\14\0\2\u0115\1\0\1\u0114\2\0"+ - "\1\u0114\66\0\1\30\16\0\1\205\1\30\2\0\1\30"+ - "\66\0\1\236\17\0\1\236\2\0\1\236\65\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\10\27\1\u0116\7\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\12\27"+ - "\1\u0117\5\27\36\0\6\27\1\u0118\7\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\6\27\1\u0119\11\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\12\27\1\u011a\5\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\1\u011b"+ - "\17\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\4\27\1\u011c\1\u011d\12\27\36\0\4\27\1\u011e\11\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\13\27\1\u011f\4\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\4\27"+ - "\1\u0120\13\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\5\27\1\u0121\12\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\13\27\1\u0122\4\27\57\0\1\u0123"+ - "\2\0\1\u0123\65\0\2\u0124\2\0\2\u0124\4\0\4\u0124"+ - "\3\0\4\u0124\10\0\2\u0124\53\0\14\27\1\u0125\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\10\27\1\u0126\7\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u0127\12\27\37\0\1\236\2\u0128\2\200\4\0\2\203"+ - "\2\204\2\0\1\u0129\1\236\2\0\1\236\114\0\1\u012a"+ - "\36\0\1\u012b\10\0\2\242\2\0\2\242\1\243\36\242"+ - "\1\u012c\50\242\2\u012d\1\u012e\103\242\45\0\1\u012f\44\0"+ - "\2\245\2\0\2\245\1\246\35\245\1\0\1\245\1\u0130"+ - "\47\245\2\u0131\1\u0132\103\245\46\0\1\u0133\56\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\6\27\1\u0134\11\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\2\27"+ - "\1\u0135\15\27\36\0\10\27\1\u0136\5\27\2\0\7\27"+ - "\1\0\2\27\2\0\10\27\1\u0137\7\27\36\0\16\27"+ - "\2\0\2\27\1\u0138\4\27\1\0\2\27\2\0\20\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\4\27"+ - "\1\u0139\13\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\4\27\1\u013a\13\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\1\27\1\u013b\16\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\4\27\1\u013c\1\u013d"+ - "\12\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\12\27\1\u013e\5\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\1\27\1\u013f\16\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\1\27\1\u0140\16\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\1\27\1\u0141"+ - "\4\27\1\u0142\11\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\1\u0143\17\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\12\27\1\u0144\5\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\10\27\1\u0145\7\27"+ - "\36\0\10\27\1\u0146\5\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\1\27\1\u0147\11\27\1\u0148\1\u0149\3\27\36\0"+ - "\10\27\1\u014a\5\27\2\0\7\27\1\0\2\27\2\0"+ - "\6\27\1\u014b\11\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\2\27\1\u014c\2\27\1\u014d\12\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\6\27\1\u014e"+ - "\11\27\36\0\6\27\1\u014f\1\27\1\u0150\5\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\17\27\1\u0151\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\5\27\1\u0152\12\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\12\27"+ - "\1\u0153\5\27\36\0\6\27\1\u0154\7\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\36\0\14\27\1\u0155\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\10\27"+ - "\1\u0156\5\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\120\0\1\u0157\5\0\1\u0158\50\0\1\u0159\111\0\1\u015a"+ - "\151\0\1\u015b\104\0\1\u015c\111\0\1\u015d\4\0\1\u015e"+ - "\54\0\1\u015f\46\0\2\331\2\u0160\1\u0161\104\0\2\u0160"+ - "\1\u0162\1\0\1\u0160\152\0\1\u0163\56\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\10\135\1\u0164\7\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\12\135\1\u0165"+ - "\5\135\36\0\6\135\1\u0166\7\135\2\0\7\135\1\0"+ - "\1\135\3\0\20\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\6\135\1\u0167\11\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\12\135\1\u0168\5\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\1\u0169\17\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\4\135"+ - "\1\u016a\1\u016b\12\135\36\0\4\135\1\u016c\11\135\2\0"+ - "\7\135\1\0\1\135\3\0\20\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\13\135\1\u016d\4\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\4\135\1\u016e"+ - "\13\135\36\0\16\135\2\0\7\135\1\0\1\135\3\0"+ - "\5\135\1\u016f\12\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\13\135\1\u0170\4\135\36\0\14\135\1\u0171"+ - "\1\135\2\0\7\135\1\0\1\135\3\0\20\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\10\135\1\u0172"+ - "\7\135\36\0\16\135\2\0\7\135\1\0\1\135\3\0"+ - "\5\135\1\u0173\12\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\6\135\1\u0174\11\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\2\135\1\u0175\15\135\36\0"+ - "\10\135\1\u0176\5\135\2\0\7\135\1\0\1\135\3\0"+ - "\10\135\1\u0177\7\135\36\0\16\135\2\0\2\135\1\u0178"+ - "\4\135\1\0\1\135\3\0\20\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\4\135\1\u0179\13\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\4\135\1\u017a"+ - "\13\135\36\0\16\135\2\0\7\135\1\0\1\135\3\0"+ - "\1\135\1\u017b\16\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\4\135\1\u017c\1\u017d\12\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\12\135\1\u017e\5\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\1\135"+ - "\1\u017f\16\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\1\135\1\u0180\16\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\u0181\4\135\1\u0182\11\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\1\u0183"+ - "\17\135\36\0\16\135\2\0\7\135\1\0\1\135\3\0"+ - "\12\135\1\u0184\5\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\10\135\1\u0185\7\135\36\0\10\135\1\u0186"+ - "\5\135\2\0\7\135\1\0\1\135\3\0\20\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\1\135\1\u0187"+ - "\11\135\1\u0188\1\u0189\3\135\36\0\10\135\1\u018a\5\135"+ - "\2\0\7\135\1\0\1\135\3\0\6\135\1\u018b\11\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\2\135"+ - "\1\u018c\2\135\1\u018d\12\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\6\135\1\u018e\11\135\36\0\6\135"+ - "\1\u018f\1\135\1\u0190\5\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\17\135\1\u0191\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\5\135\1\u0192\12\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\12\135\1\u0193\5\135\36\0"+ - "\6\135\1\u0194\7\135\2\0\7\135\1\0\1\135\3\0"+ - "\20\135\36\0\14\135\1\u0195\1\135\2\0\7\135\1\0"+ - "\1\135\3\0\20\135\36\0\10\135\1\u0196\5\135\2\0"+ - "\7\135\1\0\1\135\3\0\20\135\36\0\16\u010d\2\0"+ - "\7\u010d\1\0\1\u010d\3\0\20\u010d\23\0\10\u010f\1\u0197"+ - "\101\u010f\7\u0198\1\u0199\1\u0110\101\u0198\13\u019a\16\0\2\u019a"+ - "\7\0\1\u019a\2\0\2\u019a\4\0\1\u019b\13\0\23\u019a"+ - "\14\0\1\u0114\2\u0128\2\200\4\0\2\203\4\0\1\u0115"+ - "\1\u0114\2\0\1\u0114\66\0\1\u0114\17\0\1\u0114\2\0"+ - "\1\u0114\65\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\1\27\1\u019c\16\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\1\27\1\u019d\16\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\4\27\1\u019e\13\27\36\0"+ - "\2\27\1\u019f\13\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\36\0\6\27\1\u01a0\7\27\2\0\7\27\1\0"+ - "\2\27\2\0\10\27\1\u01a1\7\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\5\27\1\u01a2\12\27\36\0"+ - "\14\27\1\u01a3\1\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\1\27\1\u01a4\16\27\36\0\16\27\2\0\2\27\1\u01a5"+ - "\4\27\1\0\2\27\2\0\20\27\36\0\14\27\1\u01a6"+ - "\1\27\2\0\7\27\1\0\2\27\2\0\20\27\36\0"+ - "\14\27\1\u01a7\1\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\7\27\1\u01a8\10\27\40\0\2\177\2\0\2\201\2\202"+ - "\6\0\1\u01a9\1\u0123\2\0\1\u0123\65\0\2\u0124\2\177"+ - "\2\u0124\2\201\2\202\4\u0124\2\0\1\u01aa\4\u0124\10\0"+ - "\2\u0124\53\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\1\27\1\u01ab\16\27\36\0\6\27\1\u01ac\7\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\36\0\14\27\1\u01ad"+ - "\1\27\2\0\7\27\1\0\2\27\2\0\20\27\37\0"+ - "\1\236\16\0\1\u0129\1\236\2\0\1\236\52\0\4\242"+ - "\2\u012d\1\u01ae\36\242\1\u012c\45\242\1\u012d\1\u01af\1\u01b0"+ - "\1\242\1\u012d\1\243\36\242\1\u012c\44\242\4\245\2\u0131"+ - "\1\u01b1\35\245\1\0\1\245\1\u0130\44\245\1\u0131\1\u01b2"+ - "\1\u01b3\1\245\1\u0131\1\246\35\245\1\0\1\245\1\u0130"+ - "\43\245\6\u01b4\1\u01b5\35\u01b4\1\0\1\u01b4\1\u01b6\43\u01b4"+ - "\13\0\16\27\2\0\7\27\1\0\2\27\2\0\7\27"+ - "\1\u01b7\10\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\3\27\1\u01b8\14\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\11\27\1\u01b9\6\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\5\27\1\u01ba\12\27"+ - "\36\0\6\27\1\u01bb\7\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\5\27\1\u01bc\12\27\36\0\14\27\1\u01bd\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\4\27\1\u01be\13\27"+ - "\36\0\14\27\1\u01bf\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\2\27\1\u01c0\15\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\5\27\1\u01c1\12\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\6\27\1\u01c2\11\27"+ - "\36\0\6\27\1\u01c3\7\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\5\27\1\u01c4\12\27\36\0\10\27\1\u01c5\5\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\14\27"+ - "\1\u01c6\1\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\2\27"+ - "\1\u01c7\15\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\6\27\1\u01c8\11\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\5\27\1\u01c9\12\27\36\0\10\27"+ - "\1\u01ca\5\27\2\0\7\27\1\0\2\27\2\0\12\27"+ - "\1\u01cb\5\27\36\0\14\27\1\u01cc\1\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\4\27\1\u01cd\13\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\10\27\1\u01ce\7\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\10\27"+ - "\1\u01cf\7\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\13\27\1\u01d0\4\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\1\27\1\u01d1\16\27\36\0\12\27"+ - "\1\u01d2\3\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\10\27\1\u01d3\5\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\1\0\1\u01d4\7\27\1\0"+ - "\2\27\2\0\20\27\36\0\6\27\1\u01d5\7\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\36\0\6\27\1\u01d6"+ - "\7\27\2\0\7\27\1\0\2\27\2\0\20\27\36\0"+ - "\6\27\1\u01d7\7\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\124\0\1\u01d8\105\0\1\u01d9\16\0\1\332\1\331"+ - "\2\u0160\1\u0161\116\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\1\135\1\u01da\16\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\u01db\16\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\4\135\1\u01dc\13\135"+ - "\36\0\2\135\1\u01dd\13\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\6\135\1\u01de\7\135\2\0\7\135"+ - "\1\0\1\135\3\0\10\135\1\u01df\7\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\5\135\1\u01e0\12\135"+ - "\36\0\14\135\1\u01e1\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\1\135\1\u01e2\16\135\36\0\16\135\2\0\2\135"+ - "\1\u01e3\4\135\1\0\1\135\3\0\20\135\36\0\14\135"+ - "\1\u01e4\1\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\14\135\1\u01e5\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\7\135\1\u01e6\10\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\u01e7\16\135\36\0\6\135"+ - "\1\u01e8\7\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\14\135\1\u01e9\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\7\135\1\u01ea\10\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\3\135\1\u01eb\14\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\11\135\1\u01ec\6\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\5\135"+ - "\1\u01ed\12\135\36\0\6\135\1\u01ee\7\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\5\135\1\u01ef\12\135\36\0\14\135"+ - "\1\u01f0\1\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\4\135"+ - "\1\u01f1\13\135\36\0\14\135\1\u01f2\1\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\2\135\1\u01f3\15\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\5\135\1\u01f4\12\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\6\135"+ - "\1\u01f5\11\135\36\0\6\135\1\u01f6\7\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\5\135\1\u01f7\12\135\36\0\10\135"+ - "\1\u01f8\5\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\14\135\1\u01f9\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\2\135\1\u01fa\15\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\6\135\1\u01fb\11\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\5\135\1\u01fc\12\135"+ - "\36\0\10\135\1\u01fd\5\135\2\0\7\135\1\0\1\135"+ - "\3\0\12\135\1\u01fe\5\135\36\0\14\135\1\u01ff\1\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\4\135\1\u0200\13\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\10\135"+ - "\1\u0201\7\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\10\135\1\u0202\7\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\13\135\1\u0203\4\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\1\135\1\u0204\16\135"+ - "\36\0\12\135\1\u0205\3\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\10\135\1\u0206\5\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\1\0\1\u01d4"+ - "\7\135\1\0\1\135\3\0\20\135\36\0\6\135\1\u0207"+ - "\7\135\2\0\7\135\1\0\1\135\3\0\20\135\36\0"+ - "\6\135\1\u0208\7\135\2\0\7\135\1\0\1\135\3\0"+ - "\20\135\36\0\6\135\1\u0209\7\135\2\0\7\135\1\0"+ - "\1\135\3\0\20\135\23\0\7\u010f\1\u020a\1\u020b\101\u010f"+ - "\10\u0198\1\u020c\101\u0198\54\0\1\u020d\50\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\5\27\1\u020e\12\27\36\0"+ - "\6\27\1\u020f\7\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\36\0\14\27\1\u0210\1\27\2\0\7\27\1\0"+ - "\2\27\2\0\20\27\36\0\14\27\1\u0211\1\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\6\27\1\u0212\11\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\1\27\1\u0213"+ - "\16\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\6\27\1\u0214\11\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\13\27\1\u0215\4\27\36\0\6\27\1\u0216"+ - "\7\27\2\0\7\27\1\0\2\27\2\0\20\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\12\27\1\u0217"+ - "\5\27\56\0\1\u01a9\1\u0123\2\0\1\u0123\65\0\2\u0124"+ - "\2\0\2\u0124\4\0\4\u0124\2\0\1\u01aa\4\u0124\10\0"+ - "\2\u0124\53\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\3\27\1\u0218\14\27\36\0\14\27\1\u0219\1\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\23\0\1\242\2\u012d"+ - "\1\u021a\2\u012d\1\u012e\103\242\2\0\2\242\2\u01af\1\u021b"+ - "\105\0\1\u012d\1\242\2\u01af\1\u021b\103\0\1\245\2\u0131"+ - "\1\u021c\2\u0131\1\u0132\103\245\2\0\2\245\2\u01b2\1\u021d"+ - "\105\0\1\u0131\1\245\2\u01b2\1\u021d\103\0\120\u01b4\1\0"+ - "\35\u01b4\1\0\1\u01b4\1\u021e\43\u01b4\13\0\10\27\1\u021f"+ - "\5\27\2\0\7\27\1\0\2\27\2\0\20\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\1\27\1\u0220"+ - "\16\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\1\27\1\u0221\16\27\36\0\14\27\1\u0222\1\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\36\0\10\27\1\u0223"+ - "\5\27\2\0\7\27\1\0\2\27\2\0\20\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\6\27\1\u0224"+ - "\11\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\6\27\1\u0225\11\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\4\27\1\u0226\13\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\15\27\1\u0227\2\27\36\0"+ - "\10\27\1\u0228\5\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\36\0\14\27\1\u0229\1\27\2\0\7\27\1\0"+ - "\2\27\2\0\20\27\36\0\10\27\1\u022a\5\27\2\0"+ - "\7\27\1\0\2\27\2\0\20\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\2\27\1\u022b\15\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\6\27\1\u022c"+ - "\11\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\15\27\1\u022d\2\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\5\27\1\u022e\12\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\2\27\1\u022f\15\27\36\0"+ - "\16\27\2\0\7\27\1\0\2\27\2\0\5\27\1\u0230"+ - "\12\27\36\0\16\27\2\0\7\27\1\0\2\27\2\0"+ - "\4\27\1\u0231\13\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\17\27\1\u0232\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\6\27\1\u0233\11\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\6\27\1\u0234\11\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u0235\12\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\11\27\1\u0236\6\27\76\0\1\u0237\51\0\12\27"+ - "\1\u0238\3\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\14\27\1\u0239\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\5\135\1\u023a\12\135\36\0\6\135\1\u023b\7\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\14\135"+ - "\1\u023c\1\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\14\135\1\u023d\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\6\135\1\u023e\11\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\u023f\16\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\6\135\1\u0240\11\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\13\135"+ - "\1\u0241\4\135\36\0\6\135\1\u0242\7\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\12\135\1\u0243\5\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\3\135\1\u0244\14\135"+ - "\36\0\14\135\1\u0245\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\10\135\1\u0246\5\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\u0247\16\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\1\135\1\u0248\16\135"+ - "\36\0\14\135\1\u0249\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\10\135\1\u024a\5\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\6\135\1\u024b\11\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\6\135\1\u024c\11\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\4\135"+ - "\1\u024d\13\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\15\135\1\u024e\2\135\36\0\10\135\1\u024f\5\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\14\135"+ - "\1\u0250\1\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\10\135\1\u0251\5\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\2\135\1\u0252\15\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\6\135\1\u0253\11\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\15\135\1\u0254\2\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\5\135"+ - "\1\u0255\12\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\2\135\1\u0256\15\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\5\135\1\u0257\12\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\4\135\1\u0258\13\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\17\135"+ - "\1\u0259\36\0\16\135\2\0\7\135\1\0\1\135\3\0"+ - "\6\135\1\u025a\11\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\6\135\1\u025b\11\135\36\0\16\135\2\0"+ - "\7\135\1\0\1\135\3\0\5\135\1\u025c\12\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\11\135\1\u025d"+ - "\6\135\36\0\12\135\1\u025e\3\135\2\0\7\135\1\0"+ - "\1\135\3\0\20\135\36\0\14\135\1\u025f\1\135\2\0"+ - "\7\135\1\0\1\135\3\0\20\135\23\0\7\u0198\1\u0199"+ - "\1\u0260\101\u0198\50\0\1\u0261\54\0\6\27\1\u0262\7\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\7\27\1\u0263\10\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u0264\12\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\12\27\1\u0265\5\27\36\0\4\27\1\u0266\11\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\6\27"+ - "\1\u0267\7\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\14\27\1\u0268\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\12\27\1\u0269\3\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\1\27\1\u026a\16\27\23\0\2\242"+ - "\1\u012d\1\242\2\u012d\1\u01ae\36\242\1\u012c\44\242\1\0"+ - "\2\u01af\1\u01b0\1\0\1\u01af\104\0\2\245\1\u0131\1\245"+ - "\2\u0131\1\u01b1\35\245\1\0\1\245\1\u0130\43\245\1\0"+ - "\2\u01b2\1\u01b3\1\0\1\u01b2\104\0\6\u01b4\1\0\35\u01b4"+ - "\1\0\1\u01b4\1\u026b\43\u01b4\13\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\5\27\1\u026c\12\27\36\0\2\27"+ - "\1\u026d\13\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u026e\12\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\2\27\1\u026f\15\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\2\27\1\u0270\15\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\1\27\1\u0271\16\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u0272\12\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\12\27\1\u0273\5\27\36\0\12\27\1\u0274\3\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\2\27\1\u0275\15\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u0276\12\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\6\27\1\u0277\11\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\15\27\1\u0278\2\27\36\0\10\27"+ - "\1\u0279\5\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\4\27"+ - "\1\u027a\13\27\36\0\12\27\1\u027b\3\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\12\27\1\u027c\5\27\36\0\10\27"+ - "\1\u027d\5\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\14\27\1\u027e\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\52\0\1\u027f\75\0\6\135\1\u0280\7\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\7\135\1\u0281\10\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\5\135"+ - "\1\u0282\12\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\12\135\1\u0283\5\135\36\0\4\135\1\u0284\11\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\6\135"+ - "\1\u0285\7\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\14\135\1\u0286\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\12\135\1\u0287\3\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\1\135\1\u0288\16\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\5\135\1\u0289\12\135"+ - "\36\0\2\135\1\u028a\13\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\5\135\1\u028b\12\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\2\135\1\u028c\15\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\2\135\1\u028d\15\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\1\135"+ - "\1\u028e\16\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\5\135\1\u028f\12\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\12\135\1\u0290\5\135\36\0\12\135"+ - "\1\u0291\3\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\2\135"+ - "\1\u0292\15\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\5\135\1\u0293\12\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\6\135\1\u0294\11\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\15\135\1\u0295\2\135"+ - "\36\0\10\135\1\u0296\5\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\4\135\1\u0297\13\135\36\0\12\135\1\u0298\3\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\12\135\1\u0299\5\135"+ - "\36\0\10\135\1\u029a\5\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\14\135\1\u029b\1\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\104\0\1\u029c\43\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\14\27\1\u029d\3\27"+ - "\36\0\14\27\1\u029e\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\2\27\1\u029f\15\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\1\27\1\u02a0\16\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\5\27\1\u02a1\12\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\4\27"+ - "\1\u02a2\13\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\12\27\1\u02a3\5\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\4\27\1\u02a4\13\27\36\0\14\27"+ - "\1\u02a5\1\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\14\27\1\u02a6\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\5\27\1\u02a7\12\27\36\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\2\27\1\u02a8\15\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\13\27\1\u02a9\4\27"+ - "\36\0\4\27\1\u02aa\11\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\10\27\1\u02ab\7\27\36\0\14\27\1\u02ac\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\6\27"+ - "\1\u02ad\7\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\73\0\1\u02ae\54\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\14\135\1\u02af\3\135\36\0\14\135\1\u02b0\1\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\2\135\1\u02b1\15\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\1\135"+ - "\1\u02b2\16\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\5\135\1\u02b3\12\135\36\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\4\135\1\u02b4\13\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\12\135\1\u02b5\5\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\4\135"+ - "\1\u02b6\13\135\36\0\14\135\1\u02b7\1\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\14\135\1\u02b8\1\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\5\135\1\u02b9\12\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\2\135"+ - "\1\u02ba\15\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\13\135\1\u02bb\4\135\36\0\4\135\1\u02bc\11\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\10\135\1\u02bd\7\135"+ - "\36\0\14\135\1\u02be\1\135\2\0\7\135\1\0\1\135"+ - "\3\0\20\135\36\0\6\135\1\u02bf\7\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\74\0\1\u02c0\53\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\12\27\1\u02c1\5\27"+ - "\36\0\14\27\1\u02c2\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\2\27\1\u02c3\15\27\36\0\14\27\1\u02c4\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\16\27"+ - "\2\0\7\27\1\0\2\27\2\0\5\27\1\u02c5\12\27"+ - "\36\0\14\27\1\u02c6\1\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\1\u02c7\17\27\36\0\16\27\2\0\7\27\1\0"+ - "\2\27\2\0\12\27\1\u02c8\5\27\36\0\16\27\2\0"+ - "\7\27\1\0\2\27\2\0\12\27\1\u02c9\5\27\36\0"+ - "\14\27\1\u02ca\1\27\2\0\7\27\1\0\2\27\2\0"+ - "\20\27\44\0\1\u02cb\103\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\12\135\1\u02cc\5\135\36\0\14\135\1\u02cd"+ - "\1\135\2\0\7\135\1\0\1\135\3\0\20\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\2\135\1\u02ce"+ - "\15\135\36\0\14\135\1\u02cf\1\135\2\0\7\135\1\0"+ - "\1\135\3\0\20\135\36\0\16\135\2\0\7\135\1\0"+ - "\1\135\3\0\5\135\1\u02d0\12\135\36\0\14\135\1\u02d1"+ - "\1\135\2\0\7\135\1\0\1\135\3\0\20\135\36\0"+ - "\16\135\2\0\7\135\1\0\1\135\3\0\1\u02d2\17\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\12\135"+ - "\1\u02d3\5\135\36\0\16\135\2\0\7\135\1\0\1\135"+ - "\3\0\12\135\1\u02d4\5\135\36\0\14\135\1\u02d5\1\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\52\0\1\u02d6"+ - "\75\0\16\27\2\0\7\27\1\0\2\27\2\0\5\27"+ - "\1\u02d7\12\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\10\27\1\u02d8\7\27\36\0\14\27\1\u02d9\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\12\27"+ - "\1\u02da\3\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\10\27\1\u02db\5\27\2\0\7\27\1\0\2\27"+ - "\2\0\20\27\36\0\16\27\2\0\7\27\1\0\2\27"+ - "\2\0\5\27\1\u02dc\12\27\52\0\1\u02dd\75\0\16\135"+ - "\2\0\7\135\1\0\1\135\3\0\5\135\1\u02de\12\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\10\135"+ - "\1\u02df\7\135\36\0\14\135\1\u02e0\1\135\2\0\7\135"+ - "\1\0\1\135\3\0\20\135\36\0\12\135\1\u02e1\3\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\36\0\10\135"+ - "\1\u02e2\5\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\5\135"+ - "\1\u02e3\12\135\102\0\1\u02e4\45\0\16\27\2\0\7\27"+ - "\1\0\2\27\2\0\4\27\1\u02e5\13\27\36\0\4\27"+ - "\1\u02e6\11\27\2\0\7\27\1\0\2\27\2\0\20\27"+ - "\36\0\16\27\2\0\7\27\1\0\2\27\2\0\16\27"+ - "\1\u02e7\1\27\50\0\1\u02e8\77\0\16\135\2\0\7\135"+ - "\1\0\1\135\3\0\4\135\1\u02e9\13\135\36\0\4\135"+ - "\1\u02ea\11\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\36\0\16\135\2\0\7\135\1\0\1\135\3\0\16\135"+ - "\1\u02eb\1\135\42\0\1\u02ec\105\0\14\27\1\u02ed\1\27"+ - "\2\0\7\27\1\0\2\27\2\0\20\27\36\0\14\135"+ - "\1\u02ee\1\135\2\0\7\135\1\0\1\135\3\0\20\135"+ - "\23\0\13\u02ef\16\0\2\u02ef\7\0\1\u02ef\2\0\2\u02ef"+ - "\20\0\23\u02ef\13\0\12\27\1\u02f0\3\27\2\0\7\27"+ - "\1\0\2\27\2\0\20\27\36\0\12\135\1\u02f1\3\135"+ - "\2\0\7\135\1\0\1\135\3\0\20\135\23\0"; + "\1\16\1\17\2\20\1\21\1\20\1\22\1\23\1\24"+ + "\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34"+ + "\1\35\1\36\1\37\1\40\1\41\2\42\1\43\1\44"+ + "\1\45\1\46\1\47\1\50\1\51\12\52\1\53\1\54"+ + "\1\55\1\56\1\52\1\57\1\60\1\61\1\62\1\63"+ + "\1\64\2\52\1\65\1\52\1\66\1\52\1\67\1\52"+ + "\1\70\1\71\1\72\1\73\1\52\1\74\1\75\1\52"+ + "\1\76\1\52\1\77\1\100\1\101\1\102\1\0\1\16"+ + "\1\17\2\20\1\21\1\20\1\22\1\23\1\24\1\25"+ + "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35"+ + "\1\36\1\37\1\40\1\41\2\42\1\43\1\44\1\45"+ + "\1\46\1\47\1\50\1\51\12\52\1\53\1\54\1\55"+ + "\1\56\1\52\1\57\1\60\1\61\1\62\1\63\1\64"+ + "\2\52\1\65\1\52\1\66\1\52\1\67\1\52\1\70"+ + "\1\71\1\72\1\73\1\52\1\74\1\75\1\52\1\76"+ + "\1\52\1\103\1\100\1\104\1\102\1\0\1\16\1\17"+ + "\2\20\1\21\1\20\1\22\1\23\1\24\1\25\1\26"+ + "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+ + "\1\37\1\40\1\41\2\42\1\43\1\44\1\45\1\46"+ + "\1\47\1\50\1\51\12\52\1\53\1\54\1\55\1\56"+ + "\31\52\1\103\1\100\1\105\1\102\1\0\1\106\1\17"+ + "\2\106\1\17\4\106\1\107\12\106\1\110\25\106\1\111"+ + "\40\106\14\112\1\113\35\112\1\114\40\112\2\115\1\116"+ + "\2\115\1\116\1\115\1\117\1\115\1\120\40\115\1\121"+ + "\40\115\7\122\1\123\1\122\1\120\40\122\1\124\40\122"+ + "\11\125\1\126\12\125\1\127\25\125\1\130\40\125\11\131"+ + "\1\132\12\131\1\133\66\131\37\134\12\135\4\134\1\135"+ + "\1\136\1\137\1\140\1\141\1\142\1\143\2\135\1\144"+ + "\1\135\1\145\1\135\1\146\1\135\1\147\1\150\1\151"+ + "\1\152\1\135\1\153\1\154\1\135\1\155\1\135\1\156"+ + "\4\134\23\157\1\160\67\157\37\161\12\135\4\161\31\135"+ + "\5\161\1\162\5\163\44\162\1\164\40\162\114\0\5\20"+ + "\44\0\1\165\73\0\1\166\32\0\1\167\24\0\2\170"+ + "\1\0\2\170\1\0\1\170\1\171\1\170\1\0\40\170"+ + "\1\172\40\170\6\0\1\173\115\0\1\52\12\0\1\174"+ + "\3\52\7\0\12\52\4\0\31\52\40\0\1\175\72\0"+ + "\1\176\17\0\1\177\57\0\2\200\1\0\2\200\1\0"+ + "\6\200\1\201\35\200\1\202\40\200\17\0\1\203\3\0"+ + "\1\204\7\0\1\205\77\0\1\206\12\0\1\207\101\0"+ + "\1\210\10\0\1\211\1\212\71\0\1\213\7\0\1\214"+ + "\1\0\3\215\102\0\1\216\4\0\1\217\111\0\1\220"+ + "\1\0\3\42\10\0\1\221\1\222\1\223\1\224\1\225"+ + "\1\0\1\226\1\227\1\230\4\0\1\231\1\0\1\221"+ + "\1\0\1\222\1\223\1\224\1\225\1\0\1\226\1\0"+ + "\1\227\12\0\1\230\32\0\1\220\1\0\3\42\11\0"+ + "\1\222\1\223\1\224\1\225\1\0\1\226\1\227\5\0"+ + "\1\231\3\0\1\222\1\223\1\224\1\225\1\0\1\226"+ + "\1\0\1\227\52\0\1\232\105\0\1\233\6\0\1\234"+ + "\1\235\112\0\1\236\55\0\1\237\34\0\1\240\1\241"+ + "\101\0\1\242\4\0\1\243\2\0\1\244\1\0\1\245"+ + "\66\0\1\52\13\0\3\52\7\0\12\52\4\0\31\52"+ + "\7\0\3\17\1\246\140\0\1\247\70\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\2\52\1\250\16\52\1\251"+ + "\7\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\16\52\1\252\1\52\1\253\6\52\1\254\1\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\1\52\1\255"+ + "\6\52\1\256\2\52\1\257\2\52\1\260\12\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\5\52\1\261"+ + "\10\52\1\262\12\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\13\52\1\263\1\52\1\264\10\52\1\265"+ + "\2\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\1\52\1\266\7\52\1\267\1\52\1\270\2\52\1\271"+ + "\12\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\6\52\1\272\5\52\1\273\1\274\13\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\16\52\1\275\12\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\1\52"+ + "\1\276\3\52\1\277\10\52\1\300\4\52\1\301\5\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\1\52"+ + "\1\302\3\52\1\303\12\52\1\304\2\52\1\305\5\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\5\52"+ + "\1\306\23\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\5\52\1\307\2\52\1\310\11\52\1\311\1\312"+ + "\1\52\1\313\1\52\1\314\1\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\10\52\1\315\7\52\1\316"+ + "\10\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\1\52\1\317\14\52\1\320\12\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\10\52\1\321\20\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\11\52\1\322"+ + "\17\52\40\0\1\323\53\0\1\324\27\0\1\325\105\0"+ + "\1\326\4\0\1\326\6\0\1\327\73\0\1\330\76\0"+ + "\113\112\2\115\1\0\2\115\1\0\1\115\1\0\1\115"+ + "\1\0\40\115\1\0\40\115\1\331\1\332\2\331\1\332"+ + "\45\331\1\333\40\331\7\122\1\0\1\122\1\0\40\122"+ + "\1\0\40\122\7\0\1\334\103\0\2\331\4\0\104\331"+ + "\1\0\11\125\1\0\12\125\1\0\25\125\1\0\40\125"+ + "\37\335\12\0\4\335\32\0\4\335\24\0\1\336\66\0"+ + "\11\131\1\0\12\131\1\0\66\131\11\337\1\340\12\337"+ + "\1\340\12\337\12\0\4\337\32\0\4\337\11\0\1\341"+ + "\126\0\3\135\7\0\12\135\4\0\31\135\32\0\3\135"+ + "\7\0\12\135\4\0\2\135\1\342\16\135\1\343\7\135"+ + "\32\0\3\135\7\0\12\135\4\0\16\135\1\344\1\135"+ + "\1\345\6\135\1\346\1\135\32\0\3\135\7\0\12\135"+ + "\4\0\1\135\1\347\6\135\1\350\2\135\1\351\2\135"+ + "\1\352\12\135\32\0\3\135\7\0\12\135\4\0\5\135"+ + "\1\353\10\135\1\354\12\135\32\0\3\135\7\0\12\135"+ + "\4\0\13\135\1\355\1\135\1\356\10\135\1\357\2\135"+ + "\32\0\3\135\7\0\12\135\4\0\1\135\1\360\7\135"+ + "\1\361\1\135\1\362\2\135\1\363\12\135\32\0\3\135"+ + "\7\0\12\135\4\0\6\135\1\364\5\135\1\365\1\366"+ + "\13\135\32\0\3\135\7\0\12\135\4\0\16\135\1\367"+ + "\12\135\32\0\3\135\7\0\12\135\4\0\1\135\1\370"+ + "\3\135\1\371\10\135\1\372\4\135\1\373\5\135\32\0"+ + "\3\135\7\0\12\135\4\0\1\135\1\374\3\135\1\375"+ + "\12\135\1\376\2\135\1\377\5\135\32\0\3\135\7\0"+ + "\12\135\4\0\5\135\1\u0100\23\135\32\0\3\135\7\0"+ + "\12\135\4\0\5\135\1\u0101\2\135\1\u0102\11\135\1\u0103"+ + "\1\u0104\1\135\1\u0105\1\135\1\u0106\1\135\32\0\3\135"+ + "\7\0\12\135\4\0\10\135\1\u0107\7\135\1\u0108\10\135"+ + "\32\0\3\135\7\0\12\135\4\0\1\135\1\u0109\14\135"+ + "\1\u010a\12\135\32\0\3\135\7\0\12\135\4\0\10\135"+ + "\1\u010b\20\135\32\0\3\135\7\0\12\135\4\0\11\135"+ + "\1\u010c\17\135\44\0\12\u010d\4\0\31\u010d\6\0\5\163"+ + "\44\0\1\u010e\42\0\4\163\107\0\4\20\140\0\1\u010f"+ + "\151\0\1\u0110\20\0\2\170\1\0\2\170\1\0\1\170"+ + "\1\u0111\1\170\1\0\40\170\1\172\40\170\7\0\1\u0112"+ + "\103\0\1\170\1\u0113\2\170\1\u0113\45\170\1\u0114\40\170"+ + "\2\173\1\0\2\173\1\0\105\173\2\200\1\0\2\200"+ + "\1\0\6\200\1\u0115\35\200\1\202\40\200\14\0\1\u0116"+ + "\76\0\1\200\1\u0117\2\200\1\u0117\45\200\1\u0118\40\200"+ + "\33\0\1\u0119\102\0\1\u011a\6\0\1\u011b\105\0\3\215"+ + "\11\0\1\222\1\223\1\224\1\u011c\10\0\1\u011d\3\0"+ + "\1\222\1\223\1\224\1\u011c\26\0\17\u011e\1\u011f\73\u011e"+ + "\2\217\1\0\2\217\1\0\105\217\25\0\3\215\110\0"+ + "\2\u0120\104\0\1\u0121\1\0\1\u0121\2\0\3\u0122\110\0"+ + "\3\u0123\7\0\5\u0123\12\0\6\u0123\54\0\3\42\25\0"+ + "\1\231\60\0\1\u0124\122\0\1\u0125\113\0\1\u0126\111\0"+ + "\1\u0127\55\0\1\u0128\34\0\1\u0129\1\u012a\101\0\1\u012b"+ + "\71\0\1\17\121\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\21\52\1\u012c\7\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\21\52\1\u012d\7\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\16\52\1\u012e\12\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\5\52"+ + "\1\u012f\23\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\22\52\1\u0130\6\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\21\52\1\u0131\1\u0132\6\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\1\52\1\u0133"+ + "\27\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\1\52\1\u0134\27\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\15\52\1\u0135\13\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\6\52\1\u0136\22\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\23\52\1\u0137"+ + "\5\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\21\52\1\u0138\7\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\23\52\1\u0139\5\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\22\52\1\u013a\6\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\13\52\1\u013b"+ + "\15\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\15\52\1\u013c\13\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\16\52\1\u013d\12\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\20\52\1\u013e\10\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\17\52\1\u013f"+ + "\11\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\21\52\1\u0140\1\u0141\6\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\15\52\1\u0142\13\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\22\52\1\u0143\6\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\25\52"+ + "\1\u0144\3\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\15\52\1\u0145\13\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\13\52\1\u0146\15\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\3\52\1\u0147\25\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\20\52"+ + "\1\u0148\10\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\11\52\1\u0149\4\52\1\u014a\12\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\2\52\1\u014b\26\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\3\52"+ + "\1\u014c\16\52\1\u014d\6\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\1\52\1\u014e\27\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\16\52\1\u014f\12\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\1\52"+ + "\1\u0150\16\52\1\u0151\10\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\17\52\1\u0152\11\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\11\52\1\u0153\17\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\15\52"+ + "\1\u0154\13\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\11\52\1\u0155\6\52\1\u0156\10\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\1\52\1\u0157\21\52"+ + "\1\u0158\3\52\1\u0159\1\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\20\52\1\u015a\10\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\11\52\1\u015b\1\52"+ + "\1\u015c\15\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\11\52\1\u015d\17\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u015e\23\52\21\0\1\u015f"+ + "\77\0\1\u0160\1\331\1\0\1\u0160\1\331\44\0\1\u0161"+ + "\42\0\3\u0160\1\u0162\114\0\1\u0163\130\0\3\135\7\0"+ + "\12\135\4\0\21\135\1\u0164\7\135\32\0\3\135\7\0"+ + "\12\135\4\0\21\135\1\u0165\7\135\32\0\3\135\7\0"+ + "\12\135\4\0\16\135\1\u0166\12\135\32\0\3\135\7\0"+ + "\12\135\4\0\5\135\1\u0167\23\135\32\0\3\135\7\0"+ + "\12\135\4\0\22\135\1\u0168\6\135\32\0\3\135\7\0"+ + "\12\135\4\0\21\135\1\u0169\1\u016a\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u016b\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u016c\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\15\135\1\u016d\13\135\32\0\3\135"+ + "\7\0\12\135\4\0\6\135\1\u016e\22\135\32\0\3\135"+ + "\7\0\12\135\4\0\23\135\1\u016f\5\135\32\0\3\135"+ + "\7\0\12\135\4\0\21\135\1\u0170\7\135\32\0\3\135"+ + "\7\0\12\135\4\0\23\135\1\u0171\5\135\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u0172\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\13\135\1\u0173\15\135\32\0\3\135"+ + "\7\0\12\135\4\0\15\135\1\u0174\13\135\32\0\3\135"+ + "\7\0\12\135\4\0\16\135\1\u0175\12\135\32\0\3\135"+ + "\7\0\12\135\4\0\20\135\1\u0176\10\135\32\0\3\135"+ + "\7\0\12\135\4\0\17\135\1\u0177\11\135\32\0\3\135"+ + "\7\0\12\135\4\0\21\135\1\u0178\1\u0179\6\135\32\0"+ + "\3\135\7\0\12\135\4\0\15\135\1\u017a\13\135\32\0"+ + "\3\135\7\0\12\135\4\0\22\135\1\u017b\6\135\32\0"+ + "\3\135\7\0\12\135\4\0\25\135\1\u017c\3\135\32\0"+ + "\3\135\7\0\12\135\4\0\15\135\1\u017d\13\135\32\0"+ + "\3\135\7\0\12\135\4\0\13\135\1\u017e\15\135\32\0"+ + "\3\135\7\0\12\135\4\0\3\135\1\u017f\25\135\32\0"+ + "\3\135\7\0\12\135\4\0\20\135\1\u0180\10\135\32\0"+ + "\3\135\7\0\12\135\4\0\11\135\1\u0181\4\135\1\u0182"+ + "\12\135\32\0\3\135\7\0\12\135\4\0\2\135\1\u0183"+ + "\26\135\32\0\3\135\7\0\12\135\4\0\3\135\1\u0184"+ + "\16\135\1\u0185\6\135\32\0\3\135\7\0\12\135\4\0"+ + "\1\135\1\u0186\27\135\32\0\3\135\7\0\12\135\4\0"+ + "\16\135\1\u0187\12\135\32\0\3\135\7\0\12\135\4\0"+ + "\1\135\1\u0188\16\135\1\u0189\10\135\32\0\3\135\7\0"+ + "\12\135\4\0\17\135\1\u018a\11\135\32\0\3\135\7\0"+ + "\12\135\4\0\11\135\1\u018b\17\135\32\0\3\135\7\0"+ + "\12\135\4\0\15\135\1\u018c\13\135\32\0\3\135\7\0"+ + "\12\135\4\0\11\135\1\u018d\6\135\1\u018e\10\135\32\0"+ + "\3\135\7\0\12\135\4\0\1\135\1\u018f\21\135\1\u0190"+ + "\3\135\1\u0191\1\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u0192\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\11\135\1\u0193\1\135\1\u0194\15\135\32\0\3\135\7\0"+ + "\12\135\4\0\11\135\1\u0195\17\135\32\0\3\135\7\0"+ + "\12\135\4\0\5\135\1\u0196\23\135\32\0\3\u010d\7\0"+ + "\12\u010d\4\0\31\u010d\5\0\11\u0197\1\0\13\u0197\3\0"+ + "\7\u0197\12\0\4\u0197\21\0\1\u0198\7\0\5\u0197\7\u0199"+ + "\1\u019a\1\u0199\1\0\40\u0199\1\u019b\40\u0199\1\170\1\u0113"+ + "\2\170\1\u0113\2\170\1\u0111\1\170\1\0\40\170\1\u019c"+ + "\42\170\1\u019d\2\u0113\1\u019e\1\170\1\u0111\1\170\1\0"+ + "\40\170\1\172\40\170\1\200\1\u0117\2\200\1\u0117\7\200"+ + "\1\u0115\35\200\1\u019f\42\200\1\u01a0\2\u0117\1\u01a1\6\200"+ + "\1\u0115\35\200\1\202\40\200\25\0\3\215\25\0\1\u011d"+ + "\35\0\17\u011e\1\u01a2\73\u011e\17\u01a3\1\u011f\4\u01a3\1\u01a4"+ + "\66\u01a3\25\0\2\u0120\15\0\1\225\1\0\1\226\1\227"+ + "\5\0\1\u01a5\6\0\1\225\1\0\1\226\1\0\1\227"+ + "\47\0\3\u0122\110\0\3\u0122\11\0\1\222\1\0\1\224"+ + "\1\u011c\10\0\1\u0121\3\0\1\222\1\0\1\224\1\u011c"+ + "\53\0\3\u0123\7\0\5\u0123\1\225\1\0\1\226\1\227"+ + "\5\0\1\u01a6\6\u0123\1\225\1\0\1\226\1\0\1\227"+ + "\54\0\1\u01a7\113\0\1\u01a8\70\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\22\52\1\u01a9\6\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u01aa\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\13\52"+ + "\1\u01ab\15\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\1\52\1\u01ac\27\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u01ad\23\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u01ae\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\3\52"+ + "\1\u01af\25\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\20\52\1\u01b0\10\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\21\52\1\u01b1\7\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\22\52\1\u01b2\6\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\1\52"+ + "\1\u01b3\27\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\2\52\1\u01b4\26\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u01b5\23\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\14\52\1\u01b6\14\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\5\52"+ + "\1\u01b7\23\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\21\52\1\u01b8\7\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\1\52\1\u01b9\27\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\1\52\1\u01ba\27\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\13\52"+ + "\1\u01bb\2\52\1\u01bc\12\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\22\52\1\u01bd\6\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u01be\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\7\52"+ + "\1\u01bf\21\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\11\52\1\u01c0\17\52\16\0\1\52\10\0\1\u01c1"+ + "\2\0\3\52\7\0\12\52\4\0\31\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\13\52\1\u01c2\15\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\12\52"+ + "\1\u01c3\16\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\14\52\1\u01c4\14\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\24\52\1\u01c5\4\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\22\52\1\u01c6\6\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\13\52"+ + "\1\u01c7\15\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\16\52\1\u01c8\12\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\23\52\1\u01c9\5\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\13\52\1\u01ca\15\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\20\52"+ + "\1\u01cb\10\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\22\52\1\u01cc\6\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\11\52\1\u01cd\17\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u01ce\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\22\52"+ + "\1\u01cf\6\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\3\52\1\u01d0\25\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\21\52\1\u01d1\7\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\16\52\1\u01d2\12\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\11\52"+ + "\1\u01d3\3\52\1\u01d4\13\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u01d5\23\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\4\52\1\u01d6\24\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\1\52"+ + "\1\u01d7\27\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\13\52\1\u01d8\15\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\13\52\1\u01d9\15\52\6\0\1\u0160"+ + "\1\332\1\0\1\u0160\1\331\44\0\1\u0161\65\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u01da\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u01db\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\13\135\1\u01dc\15\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u01dd\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u01de\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u01df\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\3\135\1\u01e0\25\135\32\0\3\135"+ + "\7\0\12\135\4\0\20\135\1\u01e1\10\135\32\0\3\135"+ + "\7\0\12\135\4\0\21\135\1\u01e2\7\135\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u01e3\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u01e4\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\2\135\1\u01e5\26\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u01e6\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\14\135\1\u01e7\14\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u01e8\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\21\135\1\u01e9\7\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u01ea\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u01eb\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\13\135\1\u01ec\2\135\1\u01ed\12\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u01ee\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\5\135\1\u01ef\23\135"+ + "\32\0\3\135\7\0\12\135\4\0\7\135\1\u01f0\21\135"+ + "\32\0\3\135\7\0\12\135\4\0\11\135\1\u01f1\17\135"+ + "\27\0\1\u01c1\2\0\3\135\7\0\12\135\4\0\31\135"+ + "\32\0\3\135\7\0\12\135\4\0\13\135\1\u01f2\15\135"+ + "\32\0\3\135\7\0\12\135\4\0\12\135\1\u01f3\16\135"+ + "\32\0\3\135\7\0\12\135\4\0\14\135\1\u01f4\14\135"+ + "\32\0\3\135\7\0\12\135\4\0\24\135\1\u01f5\4\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u01f6\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\13\135\1\u01f7\15\135"+ + "\32\0\3\135\7\0\12\135\4\0\16\135\1\u01f8\12\135"+ + "\32\0\3\135\7\0\12\135\4\0\23\135\1\u01f9\5\135"+ + "\32\0\3\135\7\0\12\135\4\0\13\135\1\u01fa\15\135"+ + "\32\0\3\135\7\0\12\135\4\0\20\135\1\u01fb\10\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u01fc\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\11\135\1\u01fd\17\135"+ + "\32\0\3\135\7\0\12\135\4\0\5\135\1\u01fe\23\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u01ff\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\3\135\1\u0200\25\135"+ + "\32\0\3\135\7\0\12\135\4\0\21\135\1\u0201\7\135"+ + "\32\0\3\135\7\0\12\135\4\0\16\135\1\u0202\12\135"+ + "\32\0\3\135\7\0\12\135\4\0\11\135\1\u0203\3\135"+ + "\1\u0204\13\135\32\0\3\135\7\0\12\135\4\0\5\135"+ + "\1\u0205\23\135\32\0\3\135\7\0\12\135\4\0\4\135"+ + "\1\u0206\24\135\32\0\3\135\7\0\12\135\4\0\1\135"+ + "\1\u0207\27\135\32\0\3\135\7\0\12\135\4\0\13\135"+ + "\1\u0208\15\135\32\0\3\135\7\0\12\135\4\0\13\135"+ + "\1\u0209\15\135\104\0\1\u020a\13\0\7\u0199\1\u020b\1\u0199"+ + "\1\0\40\u0199\1\0\153\u0199\1\170\4\u0113\1\u020c\44\170"+ + "\1\u0114\40\170\1\0\1\u019d\1\170\1\0\1\u019d\1\170"+ + "\44\0\1\u020d\41\0\1\u019d\1\u0113\1\0\1\u019d\1\170"+ + "\44\0\1\u020d\40\0\1\200\4\u0117\1\u020e\44\200\1\u0118"+ + "\40\200\1\0\1\u01a0\1\200\1\0\1\u01a0\1\200\44\0"+ + "\1\u020f\41\0\1\u01a0\1\u0117\1\0\1\u01a0\1\200\44\0"+ + "\1\u020f\40\0\17\u011e\1\u0210\4\u011e\1\u0211\66\u011e\17\u01a3"+ + "\1\u0212\73\u01a3\25\0\2\u0120\26\0\1\u01a5\62\0\3\u0123"+ + "\7\0\5\u0123\11\0\1\u01a6\6\u0123\40\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\20\52\1\u0213\10\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\20\52\1\u0214"+ + "\10\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\5\52\1\u0215\23\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\12\52\1\u0216\16\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\10\52\1\u0217\20\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\21\52\1\u0218"+ + "\7\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\11\52\1\u0219\17\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\23\52\1\u021a\5\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\13\52\1\u021b\15\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\15\52\1\u021c"+ + "\13\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\5\52\1\u021d\23\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\13\52\1\u021e\15\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\22\52\1\u021f\6\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\5\52\1\u0220"+ + "\23\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\20\52\1\u0221\10\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\1\52\1\u0222\27\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\20\52\1\u0223\10\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\24\52\1\u0224"+ + "\4\52\103\0\1\u0225\25\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\1\52\1\u0226\27\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\11\52\1\u0227\17\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\1\52\1\u0228"+ + "\27\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\5\52\1\u0229\23\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\11\52\1\u022a\17\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\20\52\1\u022b\10\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\20\52\1\u022c"+ + "\10\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\5\52\1\u022d\23\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\22\52\1\u022e\6\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\11\52\1\u022f\17\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\3\52\1\u0230"+ + "\25\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\20\52\1\u0231\10\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\3\52\1\u0232\25\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\10\52\1\u0233\20\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\25\52\1\u0234"+ + "\3\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\22\52\1\u0235\6\52\16\0\1\52\13\0\3\52\7\0"+ + "\12\52\4\0\21\52\1\u0236\7\52\16\0\1\52\13\0"+ + "\3\52\7\0\12\52\4\0\22\52\1\u0237\6\52\16\0"+ + "\1\52\13\0\3\52\7\0\12\52\4\0\5\52\1\u0238"+ + "\23\52\16\0\1\52\13\0\3\52\7\0\12\52\4\0"+ + "\4\52\1\u0239\24\52\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u023a\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u023b\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\5\135\1\u023c\23\135\32\0\3\135\7\0\12\135\4\0"+ + "\12\135\1\u023d\16\135\32\0\3\135\7\0\12\135\4\0"+ + "\10\135\1\u023e\20\135\32\0\3\135\7\0\12\135\4\0"+ + "\21\135\1\u023f\7\135\32\0\3\135\7\0\12\135\4\0"+ + "\11\135\1\u0240\17\135\32\0\3\135\7\0\12\135\4\0"+ + "\23\135\1\u0241\5\135\32\0\3\135\7\0\12\135\4\0"+ + "\13\135\1\u0242\15\135\32\0\3\135\7\0\12\135\4\0"+ + "\15\135\1\u0243\13\135\32\0\3\135\7\0\12\135\4\0"+ + "\5\135\1\u0244\23\135\32\0\3\135\7\0\12\135\4\0"+ + "\13\135\1\u0245\15\135\32\0\3\135\7\0\12\135\4\0"+ + "\22\135\1\u0246\6\135\32\0\3\135\7\0\12\135\4\0"+ + "\5\135\1\u0247\23\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u0248\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\1\135\1\u0249\27\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u024a\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\24\135\1\u024b\4\135\32\0\3\135\7\0\12\135\4\0"+ + "\1\135\1\u024c\27\135\32\0\3\135\7\0\12\135\4\0"+ + "\11\135\1\u024d\17\135\32\0\3\135\7\0\12\135\4\0"+ + "\1\135\1\u024e\27\135\32\0\3\135\7\0\12\135\4\0"+ + "\5\135\1\u024f\23\135\32\0\3\135\7\0\12\135\4\0"+ + "\11\135\1\u0250\17\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u0251\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u0252\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\5\135\1\u0253\23\135\32\0\3\135\7\0\12\135\4\0"+ + "\22\135\1\u0254\6\135\32\0\3\135\7\0\12\135\4\0"+ + "\11\135\1\u0255\17\135\32\0\3\135\7\0\12\135\4\0"+ + "\3\135\1\u0256\25\135\32\0\3\135\7\0\12\135\4\0"+ + "\20\135\1\u0257\10\135\32\0\3\135\7\0\12\135\4\0"+ + "\3\135\1\u0258\25\135\32\0\3\135\7\0\12\135\4\0"+ + "\10\135\1\u0259\20\135\32\0\3\135\7\0\12\135\4\0"+ + "\25\135\1\u025a\3\135\32\0\3\135\7\0\12\135\4\0"+ + "\22\135\1\u025b\6\135\32\0\3\135\7\0\12\135\4\0"+ + "\21\135\1\u025c\7\135\32\0\3\135\7\0\12\135\4\0"+ + "\22\135\1\u025d\6\135\32\0\3\135\7\0\12\135\4\0"+ + "\5\135\1\u025e\23\135\32\0\3\135\7\0\12\135\4\0"+ + "\4\135\1\u025f\24\135\63\0\1\u0260\34\0\7\u0199\1\u0261"+ + "\1\u0199\1\0\40\u0199\1\0\40\u0199\1\170\2\u0113\1\170"+ + "\1\u0113\2\170\1\u0111\1\170\1\0\40\170\1\u019c\40\170"+ + "\2\0\3\u019d\1\u019e\105\0\1\200\2\u0117\1\200\1\u0117"+ + "\7\200\1\u0115\35\200\1\u019f\40\200\2\0\3\u01a0\1\u01a1"+ + "\105\0\17\u01a3\1\u0262\4\u01a3\1\u01a4\66\u01a3\11\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\1\52\1\u0263\27\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\22\52"+ + "\1\u0264\6\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\1\52\1\u0265\27\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\15\52\1\u0266\13\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\13\52\1\u0267\15\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\5\52"+ + "\1\u0268\23\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\4\52\1\u0269\24\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\13\52\1\u026a\15\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\14\52\1\u026b\14\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\22\52"+ + "\1\u026c\6\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\15\52\1\u026d\13\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\6\52\1\u026e\22\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u026f\23\52"+ + "\67\0\1\u0270\41\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\7\52\1\u0271\21\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\22\52\1\u0272\6\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\22\52\1\u0273\6\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\3\52"+ + "\1\u0274\25\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\3\52\1\u0275\25\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\4\52\1\u0276\24\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\15\52\1\u0277\13\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\4\52"+ + "\1\u0278\24\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\3\52\1\u0279\25\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\22\52\1\u027a\6\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\10\52\1\u027b\20\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\20\52"+ + "\1\u027c\10\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\21\52\1\u027d\7\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\11\52\1\u027e\17\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\11\52\1\u027f\17\52"+ + "\32\0\3\135\7\0\12\135\4\0\1\135\1\u0280\27\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u0281\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\1\135\1\u0282\27\135"+ + "\32\0\3\135\7\0\12\135\4\0\15\135\1\u0283\13\135"+ + "\32\0\3\135\7\0\12\135\4\0\13\135\1\u0284\15\135"+ + "\32\0\3\135\7\0\12\135\4\0\5\135\1\u0285\23\135"+ + "\32\0\3\135\7\0\12\135\4\0\4\135\1\u0286\24\135"+ + "\32\0\3\135\7\0\12\135\4\0\13\135\1\u0287\15\135"+ + "\32\0\3\135\7\0\12\135\4\0\14\135\1\u0288\14\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u0289\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\15\135\1\u028a\13\135"+ + "\32\0\3\135\7\0\12\135\4\0\6\135\1\u028b\22\135"+ + "\32\0\3\135\7\0\12\135\4\0\5\135\1\u028c\23\135"+ + "\32\0\3\135\7\0\12\135\4\0\7\135\1\u028d\21\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u028e\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u028f\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\3\135\1\u0290\25\135"+ + "\32\0\3\135\7\0\12\135\4\0\3\135\1\u0291\25\135"+ + "\32\0\3\135\7\0\12\135\4\0\4\135\1\u0292\24\135"+ + "\32\0\3\135\7\0\12\135\4\0\15\135\1\u0293\13\135"+ + "\32\0\3\135\7\0\12\135\4\0\4\135\1\u0294\24\135"+ + "\32\0\3\135\7\0\12\135\4\0\3\135\1\u0295\25\135"+ + "\32\0\3\135\7\0\12\135\4\0\22\135\1\u0296\6\135"+ + "\32\0\3\135\7\0\12\135\4\0\10\135\1\u0297\20\135"+ + "\32\0\3\135\7\0\12\135\4\0\20\135\1\u0298\10\135"+ + "\32\0\3\135\7\0\12\135\4\0\21\135\1\u0299\7\135"+ + "\32\0\3\135\7\0\12\135\4\0\11\135\1\u029a\17\135"+ + "\32\0\3\135\7\0\12\135\4\0\11\135\1\u029b\17\135"+ + "\77\0\1\u029c\31\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\3\52\1\u029d\25\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\15\52\1\u029e\13\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\23\52\1\u029f\5\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\22\52"+ + "\1\u02a0\6\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\21\52\1\u02a1\7\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\27\52\1\u02a2\1\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u02a3\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\3\52"+ + "\1\u02a4\25\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\1\52\1\u02a5\27\52\63\0\1\u02a6\45\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u02a7\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\21\52"+ + "\1\u02a8\7\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\5\52\1\u02a9\23\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\22\52\1\u02aa\6\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\6\52\1\u02ab\22\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\16\52"+ + "\1\u02ac\12\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\5\52\1\u02ad\23\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\13\52\1\u02ae\15\52\32\0\3\135"+ + "\7\0\12\135\4\0\3\135\1\u02af\25\135\32\0\3\135"+ + "\7\0\12\135\4\0\15\135\1\u02b0\13\135\32\0\3\135"+ + "\7\0\12\135\4\0\23\135\1\u02b1\5\135\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u02b2\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\21\135\1\u02b3\7\135\32\0\3\135"+ + "\7\0\12\135\4\0\27\135\1\u02b4\1\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02b5\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\3\135\1\u02b6\25\135\32\0\3\135"+ + "\7\0\12\135\4\0\1\135\1\u02b7\27\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02b8\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\21\135\1\u02b9\7\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02ba\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u02bb\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\6\135\1\u02bc\22\135\32\0\3\135"+ + "\7\0\12\135\4\0\16\135\1\u02bd\12\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02be\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\13\135\1\u02bf\15\135\65\0\1\u02c0"+ + "\43\0\1\52\13\0\3\52\7\0\12\52\4\0\22\52"+ + "\1\u02c1\6\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\5\52\1\u02c2\23\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\15\52\1\u02c3\13\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\5\52\1\u02c4\23\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\3\52"+ + "\1\u02c5\25\52\75\0\1\u02c6\33\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u02c7\23\52\16\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\17\52\1\u02c8\11\52"+ + "\16\0\1\52\13\0\3\52\7\0\12\52\4\0\15\52"+ + "\1\u02c9\13\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\15\52\1\u02ca\13\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u02cb\23\52\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u02cc\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02cd\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\15\135\1\u02ce\13\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02cf\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\3\135\1\u02d0\25\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02d1\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\17\135\1\u02d2\11\135\32\0\3\135"+ + "\7\0\12\135\4\0\15\135\1\u02d3\13\135\32\0\3\135"+ + "\7\0\12\135\4\0\15\135\1\u02d4\13\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02d5\23\135\67\0\1\u02d6"+ + "\41\0\1\52\13\0\3\52\7\0\12\52\4\0\22\52"+ + "\1\u02d7\6\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\16\52\1\u02d8\12\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\5\52\1\u02d9\23\52\67\0\1\u02da"+ + "\41\0\1\52\13\0\3\52\7\0\12\52\4\0\4\52"+ + "\1\u02db\24\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\11\52\1\u02dc\17\52\16\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\22\52\1\u02dd\6\52\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u02de\6\135\32\0\3\135"+ + "\7\0\12\135\4\0\16\135\1\u02df\12\135\32\0\3\135"+ + "\7\0\12\135\4\0\5\135\1\u02e0\23\135\32\0\3\135"+ + "\7\0\12\135\4\0\4\135\1\u02e1\24\135\32\0\3\135"+ + "\7\0\12\135\4\0\11\135\1\u02e2\17\135\32\0\3\135"+ + "\7\0\12\135\4\0\22\135\1\u02e3\6\135\100\0\1\u02e4"+ + "\30\0\1\52\13\0\3\52\7\0\12\52\4\0\21\52"+ + "\1\u02e5\7\52\16\0\1\52\13\0\3\52\7\0\12\52"+ + "\4\0\6\52\1\u02e6\22\52\66\0\1\u02e7\42\0\1\52"+ + "\13\0\3\52\7\0\12\52\4\0\30\52\1\u02e8\32\0"+ + "\3\135\7\0\12\135\4\0\21\135\1\u02e9\7\135\32\0"+ + "\3\135\7\0\12\135\4\0\6\135\1\u02ea\22\135\32\0"+ + "\3\135\7\0\12\135\4\0\30\135\1\u02eb\70\0\1\u02ec"+ + "\40\0\1\52\13\0\3\52\7\0\12\52\4\0\5\52"+ + "\1\u02ed\23\52\32\0\3\135\7\0\12\135\4\0\5\135"+ + "\1\u02ee\23\135\5\0\11\u02ef\1\0\13\u02ef\3\0\7\u02ef"+ + "\12\0\4\u02ef\31\0\5\u02ef\11\0\1\52\13\0\3\52"+ + "\7\0\12\52\4\0\4\52\1\u02f0\24\52\32\0\3\135"+ + "\7\0\12\135\4\0\4\135\1\u02f1\24\135\5\0"; - private static int [] zzUnpackTrans() { - int [] result = new int[41070]; + private static int [] zzUnpacktrans() { + int [] result = new int[41625]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -1069,27 +1122,27 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\15\0\1\11\1\1\1\11\37\1\6\11\3\1\1\11"+ - "\2\1\1\11\4\1\6\11\3\1\1\11\3\1\1\11"+ - "\1\1\2\11\5\1\1\11\4\1\1\11\21\1\2\11"+ - "\1\1\2\11\2\1\1\0\4\1\2\11\1\1\1\0"+ - "\1\1\5\11\3\0\15\1\5\11\2\0\5\1\2\11"+ - "\1\1\1\0\1\1\2\0\35\1\3\11\1\0\2\11"+ - "\1\0\1\1\1\0\1\11\1\0\11\11\1\0\1\11"+ - "\3\1\5\11\54\1\1\0\2\1\1\11\1\0\1\11"+ - "\1\1\1\0\22\1\1\11\1\0\3\11\2\1\2\11"+ - "\2\0\44\1\3\11\1\1\3\11\1\0\1\11\3\0"+ - "\1\11\65\1\2\11\1\0\15\1\2\0\3\1\11\0"+ - "\35\1\1\0\3\1\2\11\60\1\1\11\1\0\1\1"+ - "\1\0\15\1\4\0\30\1\1\0\50\1\2\0\11\1"+ - "\1\11\23\1\1\0\34\1\1\0\21\1\1\0\21\1"+ - "\1\0\12\1\1\0\12\1\1\0\6\1\1\0\6\1"+ - "\1\0\3\1\1\11\3\1\1\0\2\1\1\11\2\1"; + "\15\0\2\11\11\1\2\11\2\1\1\11\6\1\1\11"+ + "\4\1\1\11\1\1\1\11\1\1\1\11\21\1\1\11"+ + "\1\1\6\11\3\1\1\11\3\1\3\11\6\1\1\11"+ + "\4\1\1\11\21\1\2\11\1\1\2\11\2\1\1\0"+ + "\1\1\2\0\1\1\1\0\1\1\4\11\2\1\1\0"+ + "\1\1\10\11\4\1\2\0\1\11\1\0\4\11\2\0"+ + "\1\11\2\0\2\1\2\11\1\0\3\11\1\0\1\1"+ + "\1\11\53\1\5\11\1\0\1\11\3\1\5\11\54\1"+ + "\1\0\1\11\1\0\1\11\1\1\2\0\2\11\2\1"+ + "\4\11\1\0\3\1\1\0\3\1\5\11\1\0\1\11"+ + "\63\1\1\11\3\0\1\11\63\1\1\11\12\0\2\1"+ + "\1\11\2\0\2\11\30\1\1\0\110\1\4\0\1\1"+ + "\2\0\1\11\23\1\1\0\72\1\1\0\1\11\1\0"+ + "\15\1\1\0\53\1\1\0\11\1\1\0\31\1\1\0"+ + "\5\1\1\0\17\1\1\0\3\1\1\0\11\1\1\0"+ + "\2\1\1\11\4\1\1\0\2\1\1\11\2\1"; private static int [] zzUnpackAttribute() { int [] result = new int[753]; @@ -1136,15 +1189,27 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -1174,26 +1239,22 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -1326,7 +1387,8 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -1360,7 +1422,7 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -1382,11 +1444,11 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -1405,7 +1467,7 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; - switch (zzLexicalState) { + switch (zzLexicalState) { case IN_TRIPLE_STRING: { yyendstate(IN_TRIPLE_STRING); return storeToken(STRING_TSQ); } // fall though @@ -1416,918 +1478,918 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return T_WRONG; - } - // fall through + } + // fall through case 176: break; - case 2: - { return storeToken(NL); - } - // fall through - case 177: break; - case 3: + case 2: { return TokenType.WHITE_SPACE; - } - // fall through + } + // fall through + case 177: break; + case 3: + { return storeToken(NL); + } + // fall through case 178: break; - case 4: - { yybeginstate(IN_SLASHY_STRING); - return storeToken(SLASHY_BEGIN); - } - // fall through - case 179: break; - case 5: - { return storeToken(T_STAR); - } - // fall through - case 180: break; - case 6: + case 4: { return storeToken(T_NOT); - } - // fall through - case 181: break; - case 7: - { return storeToken(IDENTIFIER); - } - // fall through - case 182: break; - case 8: - { return storeToken(NUM_INT); - } - // fall through - case 183: break; - case 9: - { return storeToken(T_PLUS); - } - // fall through - case 184: break; - case 10: - { return storeToken(T_MINUS); - } - // fall through - case 185: break; - case 11: - { return storeToken(T_DOT); - } - // fall through - case 186: break; - case 12: - { return storeToken(STRING_SQ); - } - // fall through - case 187: break; - case 13: + } + // fall through + case 179: break; + case 5: { yybeginstate(IN_SINGLE_GSTRING); return storeToken(GSTRING_BEGIN); - } - // fall through - case 188: break; - case 14: - { yybeginstate(NLS_AFTER_LBRACE); return storeToken(T_LBRACE); - } - // fall through - case 189: break; - case 15: - { return storeToken(T_LPAREN); - } - // fall through - case 190: break; - case 16: - { return storeToken(T_RPAREN); - } - // fall through - case 191: break; - case 17: - { return storeToken(T_LBRACK); - } - // fall through - case 192: break; - case 18: - { return storeToken(T_RBRACK); - } - // fall through - case 193: break; - case 19: - { return storeToken(T_RBRACE); - } - // fall through - case 194: break; - case 20: - { return storeToken(T_ASSIGN); - } - // fall through - case 195: break; - case 21: - { return storeToken(T_Q); - } - // fall through - case 196: break; - case 22: - { return storeToken(T_COLON); - } - // fall through - case 197: break; - case 23: - { return storeToken(T_COMMA); - } - // fall through - case 198: break; - case 24: - { return storeToken(T_LT); - } - // fall through - case 199: break; - case 25: - { return storeToken(T_GT); - } - // fall through - case 200: break; - case 26: - { return storeToken(T_BNOT); - } - // fall through - case 201: break; - case 27: + } + // fall through + case 180: break; + case 6: + { return storeToken(IDENTIFIER); + } + // fall through + case 181: break; + case 7: { return storeToken(T_REM); - } - // fall through - case 202: break; - case 28: - { return storeToken(T_XOR); - } - // fall through - case 203: break; - case 29: - { return storeToken(T_BOR); - } - // fall through - case 204: break; - case 30: + } + // fall through + case 182: break; + case 8: { return storeToken(T_BAND); - } - // fall through - case 205: break; - case 31: + } + // fall through + case 183: break; + case 9: + { return storeToken(STRING_SQ); + } + // fall through + case 184: break; + case 10: + { return storeToken(T_LPAREN); + } + // fall through + case 185: break; + case 11: + { return storeToken(T_RPAREN); + } + // fall through + case 186: break; + case 12: + { return storeToken(T_STAR); + } + // fall through + case 187: break; + case 13: + { return storeToken(T_PLUS); + } + // fall through + case 188: break; + case 14: + { return storeToken(T_COMMA); + } + // fall through + case 189: break; + case 15: + { return storeToken(T_MINUS); + } + // fall through + case 190: break; + case 16: + { return storeToken(T_DOT); + } + // fall through + case 191: break; + case 17: + { yybeginstate(IN_SLASHY_STRING); + return storeToken(SLASHY_BEGIN); + } + // fall through + case 192: break; + case 18: + { return storeToken(NUM_INT); + } + // fall through + case 193: break; + case 19: + { return storeToken(T_COLON); + } + // fall through + case 194: break; + case 20: { return storeToken(T_SEMI); - } - // fall through - case 206: break; - case 32: + } + // fall through + case 195: break; + case 21: + { return storeToken(T_LT); + } + // fall through + case 196: break; + case 22: + { return storeToken(T_ASSIGN); + } + // fall through + case 197: break; + case 23: + { return storeToken(T_GT); + } + // fall through + case 198: break; + case 24: + { return storeToken(T_Q); + } + // fall through + case 199: break; + case 25: { return storeToken(T_AT); - } - // fall through + } + // fall through + case 200: break; + case 26: + { return storeToken(T_LBRACK); + } + // fall through + case 201: break; + case 27: + { return storeToken(T_RBRACK); + } + // fall through + case 202: break; + case 28: + { return storeToken(T_XOR); + } + // fall through + case 203: break; + case 29: + { yybeginstate(NLS_AFTER_LBRACE); return storeToken(T_LBRACE); + } + // fall through + case 204: break; + case 30: + { return storeToken(T_BOR); + } + // fall through + case 205: break; + case 31: + { return storeToken(T_RBRACE); + } + // fall through + case 206: break; + case 32: + { return storeToken(T_BNOT); + } + // fall through case 207: break; - case 33: + case 33: { yybeginstate(NLS_AFTER_LBRACE, IN_INJECTION_BRACES); return storeToken(T_LBRACE); - } - // fall through + } + // fall through case 208: break; - case 34: + case 34: { yyendstate(IN_INJECTION, IN_GSTRING_DOLLAR); return storeToken(T_RBRACE); - } - // fall through + } + // fall through case 209: break; - case 35: + case 35: { yyendstate(IN_INJECTION_BRACES); return storeToken(T_RBRACE); - } - // fall through + } + // fall through case 210: break; - case 36: + case 36: { yypushback(1); yyendstate(DIVISION_EXPECTED); - } - // fall through + } + // fall through case 211: break; - case 37: + case 37: { yyendstate(DIVISION_EXPECTED); return storeToken(T_DIV); - } - // fall through + } + // fall through case 212: break; - case 38: + case 38: { - } - // fall through + } + // fall through case 213: break; - case 39: + case 39: { return storeToken(GSTRING_CONTENT); - } - // fall through + } + // fall through case 214: break; - case 40: + case 40: { yypushback(1); yyendstate(IN_SINGLE_GSTRING); - } - // fall through + } + // fall through case 215: break; - case 41: - { yybeginstate(IN_GSTRING_DOLLAR); - return storeToken(T_DOLLAR); - } - // fall through - case 216: break; - case 42: + case 41: { yyendstate(IN_SINGLE_GSTRING); return storeToken(GSTRING_END); - } - // fall through + } + // fall through + case 216: break; + case 42: + { yybeginstate(IN_GSTRING_DOLLAR); + return storeToken(T_DOLLAR); + } + // fall through case 217: break; - case 43: + case 43: { return storeToken(SLASHY_CONTENT); - } - // fall through + } + // fall through case 218: break; - case 44: + case 44: { yyendstate(IN_SLASHY_STRING); return storeToken(SLASHY_END); - } - // fall through + } + // fall through case 219: break; - case 45: + case 45: { return storeToken(DOLLAR_SLASHY_CONTENT); - } - // fall through + } + // fall through case 220: break; - case 46: + case 46: { yypushback(1); yyendstate(IN_GSTRING_DOLLAR); - } - // fall through + } + // fall through case 221: break; - case 47: + case 47: { yybeginstate(IN_GSTRING_DOT); return storeToken(IDENTIFIER); - } - // fall through + } + // fall through case 222: break; - case 48: + case 48: { yybeginstate(IN_INJECTION, NLS_AFTER_LBRACE); return storeToken(T_LBRACE); - } - // fall through + } + // fall through case 223: break; - case 49: + case 49: { yypushback(1); yyendstate(IN_GSTRING_DOT); - } - // fall through + } + // fall through case 224: break; - case 50: + case 50: { yypushback(1); yyendstate(IN_GSTRING_DOT_IDENT); - } - // fall through + } + // fall through case 225: break; - case 51: + case 51: { yypushback(1); yyendstate(NLS_AFTER_LBRACE); - } - // fall through + } + // fall through case 226: break; - case 52: - { return storeToken(SL_COMMENT); - } - // fall through - case 227: break; - case 53: - { return storeToken(ML_COMMENT); - } - // fall through - case 228: break; - case 54: - { return storeToken(T_POW); - } - // fall through - case 229: break; - case 55: - { return storeToken(T_SPREAD_DOT); - } - // fall through - case 230: break; - case 56: - { return storeToken(T_STAR_ASSIGN); - } - // fall through - case 231: break; - case 57: - { return storeToken(SH_COMMENT); - } - // fall through - case 232: break; - case 58: + case 52: { return storeToken(T_NEQ); - } - // fall through - case 233: break; - case 59: - { return storeToken(NUM_BIG_INT); - } - // fall through - case 234: break; - case 60: - { return storeToken(NUM_FLOAT); - } - // fall through - case 235: break; - case 61: - { return storeToken(NUM_LONG); - } - // fall through - case 236: break; - case 62: - { return storeToken(NUM_DOUBLE); - } - // fall through - case 237: break; - case 63: - { return storeToken(KW_IF); - } - // fall through - case 238: break; - case 64: - { return storeToken(KW_IN); - } - // fall through - case 239: break; - case 65: - { return storeToken(KW_DO); - } - // fall through - case 240: break; - case 66: - { return storeToken(T_INC); - } - // fall through - case 241: break; - case 67: - { return storeToken(T_PLUS_ASSIGN); - } - // fall through - case 242: break; - case 68: - { return storeToken(T_DEC); - } - // fall through - case 243: break; - case 69: - { return storeToken(T_MINUS_ASSIGN); - } - // fall through - case 244: break; - case 70: - { return storeToken(T_ARROW); - } - // fall through - case 245: break; - case 71: - { return storeToken(NUM_BIG_DECIMAL); - } - // fall through - case 246: break; - case 72: - { return storeToken(T_RANGE); - } - // fall through - case 247: break; - case 73: - { return storeToken(T_METHOD_CLOSURE); - } - // fall through - case 248: break; - case 74: + } + // fall through + case 227: break; + case 53: + { return storeToken(STRING_DQ); + } + // fall through + case 228: break; + case 54: + { return storeToken(SH_COMMENT); + } + // fall through + case 229: break; + case 55: { yybeginstate(IN_DOLLAR_SLASH_STRING); return storeToken(DOLLAR_SLASHY_BEGIN); - } - // fall through - case 249: break; - case 75: - { return storeToken(STRING_DQ); - } - // fall through - case 250: break; - case 76: - { return storeToken(KW_AS); - } - // fall through - case 251: break; - case 77: - { return storeToken(T_EQ); - } - // fall through - case 252: break; - case 78: - { return storeToken(T_REGEX_FIND); - } - // fall through - case 253: break; - case 79: - { return storeToken(T_SAFE_DOT); - } - // fall through - case 254: break; - case 80: - { return storeToken(T_ELVIS_ASSIGN); - } - // fall through - case 255: break; - case 81: - { return storeToken(T_ELVIS); - } - // fall through - case 256: break; - case 82: - { return storeToken(T_METHOD_REFERENCE); - } - // fall through - case 257: break; - case 83: - { return storeToken(T_LE); - } - // fall through - case 258: break; - case 84: - { return storeToken(T_GE); - } - // fall through - case 259: break; - case 85: + } + // fall through + case 230: break; + case 56: { return storeToken(T_REM_ASSIGN); - } - // fall through - case 260: break; - case 86: - { return storeToken(T_XOR_ASSIGN); - } - // fall through - case 261: break; - case 87: - { return storeToken(T_BOR_ASSIGN); - } - // fall through - case 262: break; - case 88: - { return storeToken(T_LOR); - } - // fall through - case 263: break; - case 89: - { return storeToken(T_BAND_ASSIGN); - } - // fall through - case 264: break; - case 90: + } + // fall through + case 231: break; + case 57: { return storeToken(T_LAND); - } - // fall through + } + // fall through + case 232: break; + case 58: + { return storeToken(T_BAND_ASSIGN); + } + // fall through + case 233: break; + case 59: + { return storeToken(T_POW); + } + // fall through + case 234: break; + case 60: + { return storeToken(T_SPREAD_DOT); + } + // fall through + case 235: break; + case 61: + { return storeToken(T_STAR_ASSIGN); + } + // fall through + case 236: break; + case 62: + { return storeToken(T_INC); + } + // fall through + case 237: break; + case 63: + { return storeToken(T_PLUS_ASSIGN); + } + // fall through + case 238: break; + case 64: + { return storeToken(T_DEC); + } + // fall through + case 239: break; + case 65: + { return storeToken(T_MINUS_ASSIGN); + } + // fall through + case 240: break; + case 66: + { return storeToken(T_ARROW); + } + // fall through + case 241: break; + case 67: + { return storeToken(T_METHOD_CLOSURE); + } + // fall through + case 242: break; + case 68: + { return storeToken(T_RANGE); + } + // fall through + case 243: break; + case 69: + { return storeToken(NUM_BIG_DECIMAL); + } + // fall through + case 244: break; + case 70: + { return storeToken(ML_COMMENT); + } + // fall through + case 245: break; + case 71: + { return storeToken(SL_COMMENT); + } + // fall through + case 246: break; + case 72: + { return storeToken(NUM_DOUBLE); + } + // fall through + case 247: break; + case 73: + { return storeToken(NUM_FLOAT); + } + // fall through + case 248: break; + case 74: + { return storeToken(NUM_BIG_INT); + } + // fall through + case 249: break; + case 75: + { return storeToken(NUM_LONG); + } + // fall through + case 250: break; + case 76: + { return storeToken(T_METHOD_REFERENCE); + } + // fall through + case 251: break; + case 77: + { return storeToken(T_LE); + } + // fall through + case 252: break; + case 78: + { return storeToken(T_EQ); + } + // fall through + case 253: break; + case 79: + { return storeToken(T_REGEX_FIND); + } + // fall through + case 254: break; + case 80: + { return storeToken(T_GE); + } + // fall through + case 255: break; + case 81: + { return storeToken(T_SAFE_DOT); + } + // fall through + case 256: break; + case 82: + { return storeToken(T_ELVIS); + } + // fall through + case 257: break; + case 83: + { return storeToken(T_ELVIS_ASSIGN); + } + // fall through + case 258: break; + case 84: + { return storeToken(T_XOR_ASSIGN); + } + // fall through + case 259: break; + case 85: + { return storeToken(KW_AS); + } + // fall through + case 260: break; + case 86: + { return storeToken(KW_DO); + } + // fall through + case 261: break; + case 87: + { return storeToken(KW_IF); + } + // fall through + case 262: break; + case 88: + { return storeToken(KW_IN); + } + // fall through + case 263: break; + case 89: + { return storeToken(T_BOR_ASSIGN); + } + // fall through + case 264: break; + case 90: + { return storeToken(T_LOR); + } + // fall through case 265: break; - case 91: - { yypushback(2); - yyendstate(DIVISION_EXPECTED); - } - // fall through - case 266: break; - case 92: - { yyendstate(DIVISION_EXPECTED); - return storeToken(T_DIV_ASSIGN); - } - // fall through - case 267: break; - case 93: + case 91: { yypushback(1); yyendstate(DIVISION_EXPECTED); return storeToken(T_DOLLAR); - } - // fall through + } + // fall through + case 266: break; + case 92: + { yypushback(2); + yyendstate(DIVISION_EXPECTED); + } + // fall through + case 267: break; + case 93: + { yyendstate(DIVISION_EXPECTED); + return storeToken(T_DIV_ASSIGN); + } + // fall through case 268: break; - case 94: + case 94: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { return storeToken(SLASHY_CONTENT); - } - // fall through + } + // fall through case 269: break; - case 95: + case 95: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { return storeToken(DOLLAR_SLASHY_CONTENT); + } + // fall through + case 270: break; + case 96: { yyendstate(IN_DOLLAR_SLASH_STRING); return storeToken(DOLLAR_SLASHY_END); - } - // fall through - case 270: break; - case 96: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { return storeToken(DOLLAR_SLASHY_CONTENT); - } - // fall through + } + // fall through case 271: break; - case 97: + case 97: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { yybeginstate(IN_GSTRING_DOT_IDENT); return storeToken(T_DOT); - } - // fall through + } + // fall through case 272: break; - case 98: - { return storeToken(GROOVY_DOC_COMMENT); - } - // fall through - case 273: break; - case 99: - { return storeToken(T_POW_ASSIGN); - } - // fall through - case 274: break; - case 100: + case 98: { return storeToken(T_NID); - } - // fall through - case 275: break; - case 101: - { return storeToken(KW_FOR); - } - // fall through - case 276: break; - case 102: - { return storeToken(KW_INT); - } - // fall through - case 277: break; - case 103: - { return storeToken(KW_DEF); - } - // fall through - case 278: break; - case 104: - { return storeToken(T_ELLIPSIS); - } - // fall through - case 279: break; - case 105: - { return storeToken(T_RANGE_RIGHT_OPEN); - } - // fall through - case 280: break; - case 106: - { yybeginstate(IN_TRIPLE_STRING); - } - // fall through - case 281: break; - case 107: + } + // fall through + case 273: break; + case 99: { yybeginstate(IN_TRIPLE_GSTRING); return storeToken(GSTRING_BEGIN); - } - // fall through - case 282: break; - case 108: - { return storeToken(KW_TRY); - } - // fall through - case 283: break; - case 109: - { return storeToken(KW_VAR); - } - // fall through - case 284: break; - case 110: - { return storeToken(KW_NEW); - } - // fall through - case 285: break; - case 111: - { return storeToken(T_ID); - } - // fall through - case 286: break; - case 112: - { return storeToken(T_REGEX_MATCH); - } - // fall through - case 287: break; - case 113: - { return storeToken(T_SAFE_CHAIN_DOT); - } - // fall through - case 288: break; - case 114: + } + // fall through + case 274: break; + case 100: + { yybeginstate(IN_TRIPLE_STRING); + } + // fall through + case 275: break; + case 101: + { return storeToken(T_POW_ASSIGN); + } + // fall through + case 276: break; + case 102: + { return storeToken(T_ELLIPSIS); + } + // fall through + case 277: break; + case 103: + { return storeToken(T_RANGE_RIGHT_OPEN); + } + // fall through + case 278: break; + case 104: + { return storeToken(GROOVY_DOC_COMMENT); + } + // fall through + case 279: break; + case 105: { return storeToken(T_RANGE_LEFT_OPEN); - } - // fall through - case 289: break; - case 115: - { return storeToken(T_COMPARE); - } - // fall through - case 290: break; - case 116: + } + // fall through + case 280: break; + case 106: { return storeToken(T_LSH_ASSIGN); - } - // fall through - case 291: break; - case 117: + } + // fall through + case 281: break; + case 107: + { return storeToken(T_COMPARE); + } + // fall through + case 282: break; + case 108: + { return storeToken(T_ID); + } + // fall through + case 283: break; + case 109: + { return storeToken(T_REGEX_MATCH); + } + // fall through + case 284: break; + case 110: { return storeToken(T_RSH_ASSIGN); - } - // fall through + } + // fall through + case 285: break; + case 111: + { return storeToken(T_SAFE_CHAIN_DOT); + } + // fall through + case 286: break; + case 112: + { return storeToken(KW_DEF); + } + // fall through + case 287: break; + case 113: + { return storeToken(KW_FOR); + } + // fall through + case 288: break; + case 114: + { return storeToken(KW_INT); + } + // fall through + case 289: break; + case 115: + { return storeToken(KW_NEW); + } + // fall through + case 290: break; + case 116: + { return storeToken(KW_TRY); + } + // fall through + case 291: break; + case 117: + { return storeToken(KW_VAR); + } + // fall through case 292: break; - case 118: + case 118: { yyendstate(IN_TRIPLE_STRING); return storeToken(STRING_TSQ); - } - // fall through + } + // fall through case 293: break; - case 119: + case 119: { yyendstate(IN_TRIPLE_GSTRING); return storeToken(GSTRING_END); - } - // fall through + } + // fall through case 294: break; - case 120: + case 120: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 3); + (zzBufferL, zzStartRead, 3); { return storeToken(T_NOT_IN); - } - // fall through + } + // fall through case 295: break; - case 121: - { return storeToken(KW_LONG); - } - // fall through - case 296: break; - case 122: - { return storeToken(KW_ELSE); - } - // fall through - case 297: break; - case 123: - { return storeToken(KW_ENUM); - } - // fall through - case 298: break; - case 124: - { return storeToken(KW_BYTE); - } - // fall through - case 299: break; - case 125: - { return storeToken(KW_CASE); - } - // fall through - case 300: break; - case 126: - { return storeToken(KW_CHAR); - } - // fall through - case 301: break; - case 127: - { return storeToken(KW_TRUE); - } - // fall through - case 302: break; - case 128: - { return storeToken(KW_THIS); - } - // fall through - case 303: break; - case 129: - { return storeToken(KW_VOID); - } - // fall through - case 304: break; - case 130: - { return storeToken(KW_NULL); - } - // fall through - case 305: break; - case 131: + case 121: { return storeToken(T_RANGE_BOTH_OPEN); - } - // fall through - case 306: break; - case 132: + } + // fall through + case 296: break; + case 122: { return storeToken(T_RSHU_ASSIGN); - } - // fall through + } + // fall through + case 297: break; + case 123: + { return storeToken(KW_BYTE); + } + // fall through + case 298: break; + case 124: + { return storeToken(KW_CASE); + } + // fall through + case 299: break; + case 125: + { return storeToken(KW_CHAR); + } + // fall through + case 300: break; + case 126: + { return storeToken(KW_ELSE); + } + // fall through + case 301: break; + case 127: + { return storeToken(KW_ENUM); + } + // fall through + case 302: break; + case 128: + { return storeToken(KW_LONG); + } + // fall through + case 303: break; + case 129: + { return storeToken(KW_NULL); + } + // fall through + case 304: break; + case 130: + { return storeToken(KW_THIS); + } + // fall through + case 305: break; + case 131: + { return storeToken(KW_TRUE); + } + // fall through + case 306: break; + case 132: + { return storeToken(KW_VOID); + } + // fall through case 307: break; - case 133: - { return storeToken(KW_FLOAT); - } - // fall through - case 308: break; - case 134: - { return storeToken(KW_FINAL); - } - // fall through - case 309: break; - case 135: - { return storeToken(KW_FALSE); - } - // fall through - case 310: break; - case 136: + case 133: { return storeToken(KW_BREAK); - } - // fall through - case 311: break; - case 137: - { return storeToken(KW_CLASS); - } - // fall through - case 312: break; - case 138: + } + // fall through + case 308: break; + case 134: { return storeToken(KW_CATCH); - } - // fall through + } + // fall through + case 309: break; + case 135: + { return storeToken(KW_CLASS); + } + // fall through + case 310: break; + case 136: + { return storeToken(KW_FALSE); + } + // fall through + case 311: break; + case 137: + { return storeToken(KW_FINAL); + } + // fall through + case 312: break; + case 138: + { return storeToken(KW_FLOAT); + } + // fall through case 313: break; - case 139: - { return storeToken(KW_SUPER); - } - // fall through - case 314: break; - case 140: + case 139: { return storeToken(KW_SHORT); - } - // fall through + } + // fall through + case 314: break; + case 140: + { return storeToken(KW_SUPER); + } + // fall through case 315: break; - case 141: - { return storeToken(KW_TRAIT); - } - // fall through - case 316: break; - case 142: + case 141: { return storeToken(KW_THROW); - } - // fall through + } + // fall through + case 316: break; + case 142: + { return storeToken(KW_TRAIT); + } + // fall through case 317: break; - case 143: - { return storeToken(KW_YIELD); - } - // fall through - case 318: break; - case 144: + case 143: { return storeToken(KW_WHILE); - } - // fall through + } + // fall through + case 318: break; + case 144: + { return storeToken(KW_YIELD); + } + // fall through case 319: break; - case 145: - { return storeToken(KW_IMPORT); - } - // fall through - case 320: break; - case 146: - { return storeToken(KW_DOUBLE); - } - // fall through - case 321: break; - case 147: + case 145: { return storeToken(STRING_TDQ); - } - // fall through - case 322: break; - case 148: - { return storeToken(KW_PUBLIC); - } - // fall through - case 323: break; - case 149: + } + // fall through + case 320: break; + case 146: { return storeToken(KW_ASSERT); - } - // fall through - case 324: break; - case 150: - { return storeToken(KW_SEALED); - } - // fall through - case 325: break; - case 151: - { return storeToken(KW_STATIC); - } - // fall through - case 326: break; - case 152: - { return storeToken(KW_SWITCH); - } - // fall through - case 327: break; - case 153: - { return storeToken(KW_THROWS); - } - // fall through - case 328: break; - case 154: - { return storeToken(KW_RECORD); - } - // fall through - case 329: break; - case 155: - { return storeToken(KW_RETURN); - } - // fall through - case 330: break; - case 156: + } + // fall through + case 321: break; + case 147: + { return storeToken(KW_DOUBLE); + } + // fall through + case 322: break; + case 148: + { return storeToken(KW_IMPORT); + } + // fall through + case 323: break; + case 149: { return storeToken(KW_NATIVE); - } - // fall through + } + // fall through + case 324: break; + case 150: + { return storeToken(KW_PUBLIC); + } + // fall through + case 325: break; + case 151: + { return storeToken(KW_RECORD); + } + // fall through + case 326: break; + case 152: + { return storeToken(KW_RETURN); + } + // fall through + case 327: break; + case 153: + { return storeToken(KW_SEALED); + } + // fall through + case 328: break; + case 154: + { return storeToken(KW_STATIC); + } + // fall through + case 329: break; + case 155: + { return storeToken(KW_SWITCH); + } + // fall through + case 330: break; + case 156: + { return storeToken(KW_THROWS); + } + // fall through case 331: break; - case 157: - { return storeToken(KW_FINALLY); - } - // fall through - case 332: break; - case 158: - { return storeToken(KW_DEFAULT); - } - // fall through - case 333: break; - case 159: - { return storeToken(KW_EXTENDS); - } - // fall through - case 334: break; - case 160: + case 157: { return storeToken(KW_BOOLEAN); - } - // fall through + } + // fall through + case 332: break; + case 158: + { return storeToken(KW_DEFAULT); + } + // fall through + case 333: break; + case 159: + { return storeToken(KW_EXTENDS); + } + // fall through + case 334: break; + case 160: + { return storeToken(KW_FINALLY); + } + // fall through case 335: break; - case 161: - { return storeToken(KW_PERMITS); - } - // fall through - case 336: break; - case 162: + case 161: { return storeToken(KW_PACKAGE); - } - // fall through + } + // fall through + case 336: break; + case 162: + { return storeToken(KW_PERMITS); + } + // fall through case 337: break; - case 163: + case 163: { return storeToken(KW_PRIVATE); - } - // fall through + } + // fall through case 338: break; - case 164: + case 164: { return storeToken(KW_ABSTRACT); - } - // fall through + } + // fall through case 339: break; - case 165: + case 165: { return storeToken(KW_CONTINUE); - } - // fall through + } + // fall through case 340: break; - case 166: + case 166: { return storeToken(KW_STRICTFP); - } - // fall through + } + // fall through case 341: break; - case 167: + case 167: { return storeToken(KW_VOLATILE); - } - // fall through + } + // fall through case 342: break; - case 168: + case 168: { return storeToken(KW_INTERFACE); - } - // fall through + } + // fall through case 343: break; - case 169: + case 169: { return storeToken(KW_PROTECTED); - } - // fall through + } + // fall through case 344: break; - case 170: + case 170: { return storeToken(KW_TRANSIENT); - } - // fall through + } + // fall through case 345: break; - case 171: + case 171: { return storeToken(KW_IMPLEMENTS); - } - // fall through + } + // fall through case 346: break; - case 172: + case 172: { return storeToken(KW_INSTANCEOF); - } - // fall through + } + // fall through case 347: break; - case 173: + case 173: { return storeToken(KW_NON_SEALED); - } - // fall through + } + // fall through case 348: break; - case 174: + case 174: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 11); + (zzBufferL, zzStartRead, 11); { return storeToken(T_NOT_INSTANCEOF); - } - // fall through + } + // fall through case 349: break; - case 175: + case 175: { return storeToken(KW_SYNCHRONIZED); - } - // fall through + } + // fall through case 350: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/plugins/properties/properties-psi-api/gen/com/intellij/lang/properties/parsing/_PropertiesLexer.java b/plugins/properties/properties-psi-api/gen/com/intellij/lang/properties/parsing/_PropertiesLexer.java index 1f8ca2c2e0f6..180c8229427f 100644 --- a/plugins/properties/properties-psi-api/gen/com/intellij/lang/properties/parsing/_PropertiesLexer.java +++ b/plugins/properties/properties-psi-api/gen/com/intellij/lang/properties/parsing/_PropertiesLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: Properties.flex package com.intellij.lang.properties.parsing; @@ -6,11 +7,6 @@ import com.intellij.lexer.FlexLexer; import com.intellij.psi.tree.IElementType; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file Properties.flex - */ class _PropertiesLexer implements FlexLexer { /** This character denotes the end of file */ @@ -31,40 +27,75 @@ class _PropertiesLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3 }; - /** - * Translates characters to character classes - * Chosen bits are [9, 6, 6] - * Total runtime size is 1568 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>12]|((ch>>6)&0x3f)]<<6)|(ch&0x3f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\37\u0100\1\u0200\267\u0100\10\u0300\u1020\u0100"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 272 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\100\1\200\u010d\100"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 192 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\175\3\1\4\77\3"); - /* The ZZ_CMAP_A table has 320 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\4\1\2\1\1\1\5\1\3\22\0\1\11\1\7\1\0\1\7\26\0\1\10\2\0\1\10\36\0\1"+ - "\6\50\0\1\1\242\0\2\1\26\0"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\4\1\5\22\0\1\6"+ + "\1\7\1\0\1\7\26\0\1\10\2\0\1\10\36\0"+ + "\1\11\50\0\1\3\u01a2\0\2\3\326\0\u0100\12"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[1024]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\4\0\1\1\1\2\1\3\1\4\1\3\2\5\1\6"+ - "\1\5\1\3\1\7\2\2\1\0\1\1\2\4\1\0"+ + "\4\0\1\1\1\2\1\3\2\4\2\5\1\6\1\5"+ + "\1\4\1\2\1\7\1\2\1\0\2\3\1\1\1\0"+ "\1\5\1\10\1\11"; private static int [] zzUnpackAction() { @@ -87,16 +118,16 @@ class _PropertiesLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\12\0\24\0\36\0\50\0\62\0\74\0\106"+ - "\0\120\0\132\0\144\0\156\0\170\0\202\0\120\0\214"+ - "\0\226\0\74\0\240\0\252\0\264\0\202\0\276\0\310"+ - "\0\322"; + "\0\0\0\13\0\26\0\41\0\54\0\67\0\102\0\115"+ + "\0\130\0\143\0\156\0\171\0\204\0\217\0\232\0\115"+ + "\0\245\0\130\0\260\0\273\0\306\0\217\0\321\0\334"+ + "\0\347"; private static int [] zzUnpackRowMap() { int [] result = new int[25]; @@ -108,7 +139,7 @@ class _PropertiesLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -116,36 +147,39 @@ class _PropertiesLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\2\5\4\6\1\7\1\10\1\11\1\6\1\12\1\13"+ - "\2\14\1\15\1\14\1\16\2\12\1\15\1\12\1\13"+ - "\2\14\1\6\1\14\1\16\1\12\1\17\1\20\1\12"+ - "\1\13\2\14\1\6\1\14\1\16\2\12\1\21\2\5"+ - "\4\0\1\22\1\5\4\0\4\6\3\0\1\6\3\5"+ - "\1\23\6\5\2\10\2\0\2\24\1\25\1\10\2\24"+ - "\12\0\2\12\2\0\1\12\1\0\1\26\5\12\2\14"+ - "\1\13\1\14\1\26\2\12\1\13\2\0\4\14\3\0"+ - "\1\14\2\12\2\6\1\15\1\6\1\26\2\12\1\15"+ - "\3\12\1\27\6\12\2\0\2\6\1\30\1\6\3\0"+ - "\1\6\2\0\2\6\1\31\1\6\3\0\1\6\3\5"+ - "\3\0\1\22\1\5\2\0\2\24\2\0\6\24\2\10"+ - "\1\5\1\23\6\10\3\12\1\0\1\12\1\0\1\26"+ - "\3\12\2\0\4\6\3\0\1\20\2\0\4\6\3\0"+ - "\1\21"; + "\1\5\2\6\1\5\3\6\1\7\1\10\1\11\1\5"+ + "\1\12\1\13\1\14\1\15\2\14\1\13\2\12\1\16"+ + "\2\12\1\6\1\14\1\15\2\14\1\17\1\12\1\20"+ + "\1\16\2\12\1\6\1\14\1\15\2\14\1\21\2\12"+ + "\1\16\1\12\1\5\2\0\1\5\3\0\1\5\1\0"+ + "\1\22\1\5\1\0\2\6\1\0\3\6\4\0\1\7"+ + "\1\23\1\0\1\7\1\23\1\0\1\23\1\7\1\23"+ + "\1\24\1\7\13\0\5\5\1\25\4\5\1\0\2\12"+ + "\1\0\1\12\2\0\3\12\1\26\2\12\1\13\1\6"+ + "\1\12\2\6\1\13\2\12\1\26\1\12\1\0\2\14"+ + "\1\0\3\14\4\0\1\12\1\15\1\14\1\12\2\14"+ + "\1\15\2\12\1\26\6\12\1\27\4\12\2\0\1\30"+ + "\1\6\1\0\3\6\5\0\1\31\1\6\1\0\3\6"+ + "\4\0\2\23\1\0\2\23\1\0\5\23\2\7\1\5"+ + "\2\7\1\25\4\7\1\23\1\5\1\0\2\5\3\0"+ + "\1\5\1\0\1\22\1\5\4\12\2\0\3\12\1\26"+ + "\1\12\1\0\2\6\1\0\2\6\1\17\5\0\2\6"+ + "\1\0\2\6\1\21\4\0"; - private static int [] zzUnpackTrans() { - int [] result = new int[220]; + private static int [] zzUnpacktrans() { + int [] result = new int[242]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -172,12 +206,12 @@ class _PropertiesLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\4\0\4\1\1\11\5\1\1\11\2\1\1\0\3\1"+ + "\4\0\3\1\1\11\7\1\1\11\1\1\1\0\3\1"+ "\1\0\3\1"; private static int [] zzUnpackAttribute() { @@ -225,15 +259,27 @@ class _PropertiesLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; @@ -247,26 +293,22 @@ class _PropertiesLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -398,7 +440,8 @@ class _PropertiesLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -432,7 +475,7 @@ class _PropertiesLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -454,11 +497,11 @@ class _PropertiesLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -481,50 +524,50 @@ class _PropertiesLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { yybegin(IN_KEY_VALUE_SEPARATOR_HEAD); return PropertiesTokenTypes.KEY_CHARACTERS; - } - // fall through + } + // fall through case 10: break; - case 2: + case 2: { return PropertiesTokenTypes.WHITE_SPACE; - } - // fall through + } + // fall through case 11: break; - case 3: - { return PropertiesTokenTypes.BAD_CHARACTER; - } - // fall through - case 12: break; - case 4: + case 3: { yybegin(YYINITIAL); return PropertiesTokenTypes.END_OF_LINE_COMMENT; - } - // fall through + } + // fall through + case 12: break; + case 4: + { return PropertiesTokenTypes.BAD_CHARACTER; + } + // fall through case 13: break; - case 5: + case 5: { yybegin(YYINITIAL); return PropertiesTokenTypes.VALUE_CHARACTERS; - } - // fall through + } + // fall through case 14: break; - case 6: + case 6: { yybegin(YYINITIAL); return PropertiesTokenTypes.WHITE_SPACE; - } - // fall through + } + // fall through case 15: break; - case 7: + case 7: { yybegin(IN_KEY_VALUE_SEPARATOR_TAIL); return PropertiesTokenTypes.KEY_VALUE_SEPARATOR; - } - // fall through + } + // fall through case 16: break; - case 8: + case 8: { yybegin(IN_KEY_VALUE_SEPARATOR_HEAD); return PropertiesTokenTypes.WHITE_SPACE; - } - // fall through + } + // fall through case 17: break; - case 9: + case 9: { yybegin(IN_KEY_VALUE_SEPARATOR_TAIL); return PropertiesTokenTypes.WHITE_SPACE; - } - // fall through + } + // fall through case 18: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/plugins/tasks/tasks-core/jira/gen/com/intellij/tasks/jira/jql/_JqlLexer.java b/plugins/tasks/tasks-core/jira/gen/com/intellij/tasks/jira/jql/_JqlLexer.java index b9b9a180164f..e279a89a5486 100644 --- a/plugins/tasks/tasks-core/jira/gen/com/intellij/tasks/jira/jql/_JqlLexer.java +++ b/plugins/tasks/tasks-core/jira/gen/com/intellij/tasks/jira/jql/_JqlLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: JqlLexer.flex package com.intellij.tasks.jira.jql; @@ -6,11 +7,6 @@ import com.intellij.lexer.FlexLexer; import com.intellij.psi.tree.IElementType; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file JqlLexer.flex - */ class _JqlLexer implements FlexLexer { /** This character denotes the end of file */ @@ -28,51 +24,92 @@ class _JqlLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [8, 6, 7] - * Total runtime size is 1296 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>13]|((ch>>7)&0x3f)]<<7)|(ch&0x7f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\u10fe\u0200"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 136 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\207\100"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 128 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\175\1"); - /* The ZZ_CMAP_A table has 384 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\1\1\10\2\0\1\10\22\0\1\6\1\43\1\12\3\10\1\51\1\11\1\47\1\50\2\10\1"+ - "\53\1\13\1\10\1\0\12\2\1\0\1\10\1\44\1\42\1\45\2\10\1\20\1\3\1\14\1\23\1\30"+ - "\1\15\1\40\1\37\1\41\2\0\1\34\1\31\1\21\1\24\1\32\1\0\1\25\1\36\1\27\1\7\1"+ - "\0\1\35\1\0\1\33\1\0\1\16\1\4\1\17\1\10\2\0\1\20\1\3\1\14\1\23\1\30\1\15\1"+ - "\40\1\37\1\41\2\0\1\34\1\31\1\22\1\24\1\32\1\0\1\26\1\36\1\5\1\7\1\0\1\35"+ - "\1\0\1\33\1\0\1\10\1\52\1\10\1\46\261\0\2\41\115\0\1\36"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\2\0\1\2\22\0\1\3\1\4"+ + "\1\5\3\2\1\6\1\7\1\10\1\11\2\2\1\12"+ + "\1\13\1\2\1\0\12\14\1\0\1\2\1\15\1\16"+ + "\1\17\2\2\1\20\1\21\1\22\1\23\1\24\1\25"+ + "\1\26\1\27\1\30\2\0\1\31\1\32\1\33\1\34"+ + "\1\35\1\0\1\36\1\37\1\40\1\41\1\0\1\42"+ + "\1\0\1\43\1\0\1\44\1\45\1\46\1\2\2\0"+ + "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+ + "\1\30\2\0\1\31\1\32\1\47\1\34\1\35\1\0"+ + "\1\50\1\37\1\51\1\41\1\0\1\42\1\0\1\43"+ + "\1\0\1\2\1\52\1\2\1\53\261\0\2\30\115\0"+ + "\1\37\u0180\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[768]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\3\1\1\1\4\1\1\3\4"+ - "\12\1\1\5\1\6\1\7\1\10\1\11\1\12\1\13"+ - "\1\14\1\15\1\16\1\0\1\1\1\17\1\0\1\20"+ - "\2\0\1\1\2\0\12\1\1\21\1\22\2\1\1\23"+ - "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\1"+ - "\4\0\3\1\1\33\1\34\1\1\1\35\4\1\1\36"+ - "\1\1\4\0\1\1\1\37\1\1\1\40\1\1\1\41"+ - "\3\1\3\0\1\42\1\1\1\43\1\1\1\44\1\45"+ - "\1\46\2\0\1\1\1\47\1\50"; + "\1\0\1\1\1\2\1\3\1\4\1\3\1\5\1\3"+ + "\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14"+ + "\13\1\1\3\1\15\1\16\1\0\1\17\1\20\1\0"+ + "\1\1\1\0\1\21\2\0\1\22\1\23\4\1\1\24"+ + "\6\1\1\25\1\26\2\1\1\27\1\30\1\31\1\1"+ + "\1\0\1\32\2\0\1\1\1\33\1\34\1\1\1\0"+ + "\5\1\1\35\2\1\1\36\3\0\2\1\1\0\1\1"+ + "\1\37\2\1\1\40\1\41\1\1\3\0\1\42\1\1"+ + "\1\43\2\1\1\44\1\45\3\0\1\46\1\1\1\47"+ + "\1\50"; private static int [] zzUnpackAction() { int [] result = new int[108]; @@ -94,26 +131,26 @@ class _JqlLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\54\0\130\0\204\0\260\0\334\0\u0108\0\u0134"+ - "\0\u0160\0\u018c\0\204\0\u01b8\0\u01e4\0\u0210\0\u023c\0\u0268"+ - "\0\u0294\0\u02c0\0\u02ec\0\u0318\0\u0134\0\u0344\0\u0370\0\u039c"+ - "\0\u0134\0\u0134\0\u0134\0\u03c8\0\u03f4\0\u0134\0\334\0\u0420"+ - "\0\54\0\u044c\0\54\0\u0160\0\u0478\0\u0134\0\u018c\0\u04a4"+ - "\0\u04d0\0\u04fc\0\u0528\0\u0554\0\u0580\0\u05ac\0\u05d8\0\u0604"+ - "\0\u0630\0\u065c\0\54\0\u0688\0\u06b4\0\u06e0\0\54\0\54"+ - "\0\u0134\0\u0134\0\u0134\0\u0134\0\u0134\0\u0134\0\u070c\0\u0738"+ - "\0\u0764\0\u0790\0\u07bc\0\u07e8\0\u0814\0\u0840\0\54\0\54"+ - "\0\u086c\0\54\0\u0898\0\u08c4\0\u08f0\0\u091c\0\54\0\u0948"+ - "\0\u0974\0\u09a0\0\u09cc\0\u09f8\0\u0a24\0\54\0\u0a50\0\54"+ - "\0\u0a7c\0\54\0\u0aa8\0\u0ad4\0\u0b00\0\u0b2c\0\u0b58\0\u0b84"+ - "\0\u0134\0\u0bb0\0\54\0\u0bdc\0\54\0\54\0\54\0\u0c08"+ - "\0\u0c34\0\u0c60\0\54\0\54"; + "\0\204\0\204\0\204\0\u0160\0\u0160\0\u018c\0\204\0\u01b8"+ + "\0\u01e4\0\u0210\0\u023c\0\u0268\0\u0294\0\u02c0\0\u02ec\0\u0318"+ + "\0\u0344\0\u0370\0\u039c\0\u03c8\0\u03f4\0\204\0\u03c8\0\204"+ + "\0\204\0\334\0\204\0\u0420\0\204\0\u0134\0\u044c\0\204"+ + "\0\204\0\u0478\0\u04a4\0\u04d0\0\u04fc\0\54\0\u0528\0\u0554"+ + "\0\u0580\0\u05ac\0\u05d8\0\u0604\0\54\0\54\0\u0630\0\u065c"+ + "\0\54\0\u0688\0\54\0\u06b4\0\u06e0\0\204\0\u070c\0\u0738"+ + "\0\u0764\0\54\0\54\0\u0790\0\u07bc\0\u07e8\0\u0814\0\u0840"+ + "\0\u086c\0\u0898\0\54\0\u08c4\0\u08f0\0\54\0\u091c\0\u0948"+ + "\0\u0974\0\u09a0\0\u09cc\0\u09f8\0\u0a24\0\54\0\u0a50\0\u0a7c"+ + "\0\54\0\54\0\u0aa8\0\u0ad4\0\u0b00\0\u0b2c\0\54\0\u0b58"+ + "\0\204\0\u0b84\0\u0bb0\0\54\0\54\0\u0bdc\0\u0c08\0\u0c34"+ + "\0\54\0\u0c60\0\54\0\54"; private static int [] zzUnpackRowMap() { int [] result = new int[108]; @@ -125,7 +162,7 @@ class _JqlLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -133,129 +170,113 @@ class _JqlLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\4\1\5\1\6\1\7\1\3\1\2"+ - "\1\10\1\11\1\12\1\13\1\14\1\15\2\10\1\16"+ - "\2\17\1\20\1\21\2\2\1\7\1\22\4\2\1\23"+ - "\3\2\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ - "\1\33\1\34\1\35\1\36\1\2\1\0\2\2\1\37"+ - "\1\2\1\0\1\2\3\0\3\2\2\0\22\2\13\0"+ - "\1\3\4\0\1\3\45\0\1\2\1\0\1\4\1\2"+ - "\1\37\1\2\1\0\1\2\3\0\3\2\2\0\22\2"+ - "\12\0\1\2\1\0\2\2\1\37\1\2\1\0\1\2"+ - "\3\0\3\2\2\0\10\2\1\40\2\2\1\41\6\2"+ - "\16\0\3\2\1\42\1\0\2\2\7\0\1\2\3\0"+ - "\1\2\25\0\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\3\2\2\0\4\2\1\43\15\2\66\0"+ - "\4\44\1\45\4\44\1\46\42\44\4\47\1\50\5\47"+ - "\1\46\41\47\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\2\2\1\51\2\0\17\2\1\52\2\2"+ - "\12\0\1\2\1\0\2\2\1\37\1\2\1\0\1\2"+ - "\3\0\3\2\2\0\5\2\2\53\13\2\12\0\1\2"+ - "\1\0\2\2\1\37\1\2\1\0\1\2\3\0\2\2"+ - "\1\54\2\0\1\2\2\55\13\2\1\56\3\2\12\0"+ - "\1\2\1\0\2\2\1\37\1\2\1\0\1\57\3\0"+ - "\3\2\2\0\4\2\1\60\15\2\12\0\1\2\1\0"+ - "\2\2\1\37\1\2\1\0\1\61\3\0\3\2\2\0"+ - "\10\2\1\62\11\2\12\0\1\2\1\0\2\2\1\37"+ - "\1\2\1\0\1\2\3\0\3\2\2\0\1\2\2\63"+ - "\2\2\2\64\13\2\12\0\1\2\1\0\2\2\1\37"+ - "\1\2\1\0\1\2\3\0\3\2\2\0\11\2\1\65"+ - "\10\2\12\0\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\3\2\2\0\1\66\21\2\12\0\1\2"+ - "\1\0\2\2\1\37\1\2\1\0\1\2\3\0\3\2"+ - "\2\0\1\2\2\67\13\2\1\70\3\2\54\0\1\71"+ - "\3\0\1\72\47\0\1\73\53\0\1\74\62\0\1\75"+ - "\54\0\1\76\1\0\1\2\1\0\2\2\1\37\1\2"+ - "\1\0\1\2\3\0\2\2\1\77\2\0\22\2\14\0"+ - "\2\100\10\0\2\100\2\0\1\100\2\0\1\100\4\0"+ - "\1\100\27\0\3\44\1\101\1\0\2\44\7\0\1\44"+ - "\3\0\1\44\31\0\3\47\1\102\1\0\2\47\7\0"+ - "\1\47\3\0\1\47\25\0\1\2\1\0\2\2\1\37"+ - "\1\2\1\0\1\2\3\0\3\2\1\103\1\0\22\2"+ - "\12\0\1\2\1\0\2\2\1\37\1\2\1\0\1\2"+ - "\3\0\3\2\2\0\1\104\21\2\12\0\1\2\1\0"+ - "\2\2\1\37\1\2\1\0\1\2\3\0\3\2\2\0"+ - "\4\2\1\105\15\2\12\0\1\2\1\0\2\2\1\37"+ - "\1\106\1\0\1\2\3\0\3\2\2\0\7\2\1\106"+ - "\12\2\12\0\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\3\2\2\0\3\2\1\107\16\2\12\0"+ - "\1\2\1\0\2\2\1\37\1\2\1\0\1\2\3\0"+ - "\1\2\1\110\1\2\2\0\22\2\12\0\1\2\1\0"+ - "\2\2\1\37\1\2\1\0\1\2\3\0\3\2\2\0"+ - "\14\2\1\111\5\2\12\0\1\2\1\0\2\2\1\37"+ - "\1\112\1\0\1\2\3\0\3\2\2\0\7\2\1\112"+ - "\12\2\12\0\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\3\2\2\0\5\2\2\113\13\2\12\0"+ - "\1\2\1\0\2\2\1\37\1\2\1\0\1\2\3\0"+ - "\3\2\2\0\16\2\1\114\3\2\12\0\1\2\1\0"+ - "\2\2\1\37\1\2\1\0\1\2\3\0\3\2\2\0"+ - "\3\2\1\115\16\2\12\0\1\2\1\0\2\2\1\37"+ - "\1\2\1\0\1\2\3\0\3\2\2\0\12\2\1\116"+ - "\7\2\12\0\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\3\2\2\0\16\2\1\117\3\2\12\0"+ - "\1\2\1\0\2\2\1\37\1\2\1\0\1\2\3\0"+ - "\3\2\2\0\4\2\1\120\15\2\14\0\2\121\10\0"+ - "\2\121\2\0\1\121\2\0\1\121\4\0\1\121\25\0"+ - "\2\122\10\0\2\122\2\0\1\122\2\0\1\122\4\0"+ - "\1\122\25\0\2\123\10\0\2\123\2\0\1\123\2\0"+ - "\1\123\4\0\1\123\25\0\1\124\51\0\1\2\1\0"+ - "\2\2\1\37\1\2\1\0\1\2\3\0\3\2\2\0"+ - "\1\2\2\125\17\2\12\0\1\2\1\0\2\2\1\37"+ - "\1\2\1\0\1\2\3\0\3\2\2\0\11\2\1\126"+ - "\10\2\12\0\1\2\1\0\2\2\1\37\1\2\1\0"+ - "\1\2\3\0\3\2\2\0\10\2\1\127\11\2\12\0"+ - "\1\2\1\0\2\2\1\37\1\2\1\0\1\2\3\0"+ - "\3\2\2\0\14\2\1\130\5\2\12\0\1\2\1\0"+ - "\2\2\1\37\1\2\1\0\1\2\3\0\3\2\2\0"+ - "\21\2\1\131\12\0\1\2\1\0\2\2\1\37\1\2"+ - "\1\0\1\2\3\0\1\2\1\132\1\2\2\0\22\2"+ - "\12\0\1\2\1\0\2\2\1\37\1\2\1\0\1\2"+ - "\3\0\3\2\2\0\10\2\1\133\11\2\12\0\1\2"+ - "\1\0\2\2\1\37\1\134\1\0\1\2\3\0\3\2"+ - "\2\0\7\2\1\134\12\2\12\0\1\2\1\0\2\2"+ - "\1\37\1\2\1\0\1\2\3\0\3\2\2\0\5\2"+ - "\2\135\13\2\14\0\2\136\10\0\2\136\2\0\1\136"+ - "\2\0\1\136\4\0\1\136\25\0\2\137\10\0\2\137"+ - "\2\0\1\137\2\0\1\137\4\0\1\137\25\0\2\140"+ - "\10\0\2\140\2\0\1\140\2\0\1\140\4\0\1\140"+ - "\25\0\1\124\14\0\1\141\34\0\1\2\1\0\2\2"+ - "\1\37\1\2\1\0\1\2\3\0\3\2\2\0\20\2"+ - "\1\142\1\2\12\0\1\2\1\0\2\2\1\37\1\2"+ - "\1\0\1\2\3\0\3\2\2\0\5\2\2\143\13\2"+ - "\12\0\1\2\1\0\2\2\1\37\1\2\1\0\1\2"+ - "\3\0\3\2\2\0\1\2\2\144\17\2\12\0\1\2"+ - "\1\0\2\2\1\37\1\2\1\0\1\2\3\0\3\2"+ - "\2\0\5\2\2\145\13\2\12\0\1\2\1\0\2\2"+ - "\1\37\1\2\1\0\1\2\3\0\3\2\2\0\13\2"+ - "\1\146\6\2\12\0\1\2\1\0\2\2\1\37\1\2"+ - "\1\0\1\2\3\0\3\2\2\0\10\2\1\147\11\2"+ - "\14\0\2\2\10\0\2\2\2\0\1\2\2\0\1\2"+ - "\4\0\1\2\25\0\2\150\10\0\2\150\2\0\1\150"+ - "\2\0\1\150\4\0\1\150\25\0\2\151\10\0\2\151"+ - "\2\0\1\151\2\0\1\151\4\0\1\151\23\0\1\2"+ - "\1\0\2\2\1\37\1\2\1\0\1\2\3\0\3\2"+ - "\2\0\10\2\1\152\11\2\12\0\1\2\1\0\2\2"+ - "\1\37\1\2\1\0\1\2\3\0\3\2\2\0\20\2"+ - "\1\153\1\2\14\0\2\44\10\0\2\44\2\0\1\44"+ - "\2\0\1\44\4\0\1\44\25\0\2\47\10\0\2\47"+ - "\2\0\1\47\2\0\1\47\4\0\1\47\23\0\1\2"+ - "\1\0\2\2\1\37\1\2\1\0\1\2\3\0\3\2"+ - "\2\0\3\2\1\154\16\2\12\0"; + "\1\2\1\3\1\4\1\3\1\5\1\6\1\7\1\10"+ + "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+ + "\1\21\1\22\1\23\1\24\1\25\1\26\2\2\1\27"+ + "\2\2\1\30\1\31\3\2\1\32\1\2\1\33\1\2"+ + "\1\4\1\34\1\4\1\30\1\2\1\32\1\35\1\36"+ + "\1\2\12\0\2\2\3\0\24\2\1\0\1\37\1\0"+ + "\3\2\3\0\1\3\1\0\1\3\142\0\1\40\34\0"+ + "\1\41\5\42\1\43\37\42\1\44\6\42\6\0\1\45"+ + "\45\0\7\46\1\43\35\46\1\47\6\46\1\2\12\0"+ + "\1\2\1\15\3\0\24\2\1\0\1\37\1\0\3\2"+ + "\20\0\1\50\53\0\1\51\35\0\1\2\12\0\2\2"+ + "\3\0\5\2\1\52\5\2\1\53\3\2\1\54\4\2"+ + "\1\0\1\37\1\0\1\53\2\2\2\0\1\2\12\0"+ + "\2\2\3\0\4\2\1\55\16\2\1\56\1\0\1\37"+ + "\1\0\3\2\2\0\1\2\12\0\2\2\3\0\5\2"+ + "\1\57\1\2\1\60\14\2\1\0\1\37\1\0\3\2"+ + "\2\0\1\2\12\0\2\2\3\0\4\2\1\61\14\2"+ + "\1\62\2\2\1\0\1\37\1\0\3\2\2\0\1\2"+ + "\12\0\2\2\3\0\12\2\1\63\11\2\1\0\1\37"+ + "\1\0\3\2\2\0\1\2\12\0\2\2\3\0\16\2"+ + "\1\64\5\2\1\0\1\37\1\0\1\2\1\64\1\2"+ + "\2\0\1\2\12\0\2\2\3\0\13\2\1\65\3\2"+ + "\1\66\4\2\1\0\1\37\1\0\1\65\2\2\2\0"+ + "\1\2\12\0\2\2\3\0\14\2\1\67\4\2\1\70"+ + "\2\2\1\0\1\37\1\0\3\2\2\0\1\2\12\0"+ + "\2\2\3\0\13\2\1\71\2\2\1\72\5\2\1\0"+ + "\1\37\1\0\1\71\1\72\1\2\2\0\1\2\12\0"+ + "\2\2\3\0\14\2\1\73\7\2\1\0\1\37\1\0"+ + "\3\2\2\0\1\2\12\0\2\2\3\0\1\74\23\2"+ + "\1\0\1\37\1\0\3\2\5\0\1\2\1\0\1\2"+ + "\1\0\1\2\31\0\1\75\3\0\1\2\1\0\3\2"+ + "\54\0\1\76\4\0\1\42\1\0\1\42\1\0\1\42"+ + "\31\0\1\77\3\0\1\42\1\0\3\42\5\0\1\46"+ + "\1\0\1\46\1\0\1\46\31\0\1\100\3\0\1\46"+ + "\1\0\3\46\2\0\1\2\12\0\2\2\3\0\20\2"+ + "\1\101\3\2\1\0\1\37\1\0\2\2\1\101\2\0"+ + "\1\2\12\0\2\2\3\0\3\2\1\102\20\2\1\0"+ + "\1\37\1\0\3\2\2\0\1\2\12\0\2\2\3\0"+ + "\2\2\1\103\21\2\1\0\1\37\1\0\3\2\2\0"+ + "\1\2\12\0\2\2\3\0\5\2\1\104\16\2\1\0"+ + "\1\37\1\0\3\2\2\0\1\2\12\0\2\2\3\0"+ + "\24\2\1\105\1\37\1\0\3\2\2\0\1\2\12\0"+ + "\2\2\3\0\1\106\23\2\1\0\1\37\1\0\3\2"+ + "\2\0\1\2\12\0\2\2\3\0\17\2\1\107\4\2"+ + "\1\0\1\37\1\0\3\2\2\0\1\2\12\0\2\2"+ + "\3\0\16\2\1\110\5\2\1\0\1\37\1\0\1\2"+ + "\1\110\1\2\2\0\1\2\12\0\2\2\3\0\15\2"+ + "\1\111\6\2\1\0\1\37\1\0\3\2\2\0\1\2"+ + "\12\0\2\2\3\0\14\2\1\112\7\2\1\0\1\37"+ + "\1\0\3\2\2\0\1\2\12\0\2\2\3\0\20\2"+ + "\1\113\3\2\1\0\1\37\1\0\2\2\1\113\2\0"+ + "\1\2\12\0\2\2\3\0\11\2\1\114\12\2\1\0"+ + "\1\37\1\0\3\2\2\0\1\2\12\0\2\2\3\0"+ + "\3\2\1\115\20\2\1\0\1\37\1\0\3\2\2\0"+ + "\1\2\12\0\2\2\3\0\17\2\1\116\4\2\1\0"+ + "\1\37\1\0\3\2\16\0\1\117\3\0\6\117\42\0"+ + "\1\120\3\0\6\120\42\0\1\121\3\0\6\121\26\0"+ + "\1\2\12\0\2\2\3\0\4\2\1\122\17\2\1\0"+ + "\1\37\1\0\3\2\2\0\1\2\12\0\2\2\3\0"+ + "\14\2\1\123\7\2\1\0\1\37\1\0\3\2\16\0"+ + "\1\124\37\0\1\2\12\0\2\2\3\0\13\2\1\125"+ + "\10\2\1\0\1\37\1\0\1\125\2\2\2\0\1\2"+ + "\12\0\2\2\3\0\2\2\1\126\21\2\1\0\1\37"+ + "\1\0\3\2\2\0\1\2\12\0\2\2\3\0\10\2"+ + "\1\127\13\2\1\0\1\37\1\0\3\2\2\0\1\2"+ + "\12\0\2\2\3\0\20\2\1\130\3\2\1\0\1\37"+ + "\1\0\2\2\1\130\2\0\1\2\12\0\2\2\3\0"+ + "\12\2\1\131\11\2\1\0\1\37\1\0\3\2\2\0"+ + "\1\2\12\0\2\2\3\0\11\2\1\132\12\2\1\0"+ + "\1\37\1\0\3\2\2\0\1\2\12\0\2\2\3\0"+ + "\4\2\1\133\17\2\1\0\1\37\1\0\3\2\16\0"+ + "\1\134\3\0\6\134\42\0\1\135\3\0\6\135\42\0"+ + "\1\136\3\0\6\136\26\0\1\2\12\0\2\2\3\0"+ + "\16\2\1\137\5\2\1\0\1\37\1\0\1\2\1\137"+ + "\1\2\2\0\1\2\12\0\2\2\3\0\16\2\1\140"+ + "\5\2\1\0\1\37\1\0\1\2\1\140\1\2\16\0"+ + "\1\124\31\0\1\141\5\0\1\2\12\0\2\2\3\0"+ + "\6\2\1\142\15\2\1\0\1\37\1\0\3\2\2\0"+ + "\1\2\12\0\2\2\3\0\13\2\1\143\10\2\1\0"+ + "\1\37\1\0\1\143\2\2\2\0\1\2\12\0\2\2"+ + "\3\0\23\2\1\144\1\0\1\37\1\0\3\2\2\0"+ + "\1\2\12\0\2\2\3\0\16\2\1\145\5\2\1\0"+ + "\1\37\1\0\1\2\1\145\1\2\16\0\1\146\3\0"+ + "\6\146\42\0\1\147\3\0\6\147\42\0\1\150\3\0"+ + "\6\150\26\0\1\2\12\0\2\2\3\0\4\2\1\151"+ + "\17\2\1\0\1\37\1\0\3\2\2\0\1\2\12\0"+ + "\2\2\3\0\4\2\1\152\17\2\1\0\1\37\1\0"+ + "\3\2\2\0\1\2\12\0\2\2\3\0\6\2\1\153"+ + "\15\2\1\0\1\37\1\0\3\2\16\0\1\2\3\0"+ + "\6\2\42\0\1\42\3\0\6\42\42\0\1\46\3\0"+ + "\6\46\26\0\1\2\12\0\2\2\3\0\3\2\1\154"+ + "\20\2\1\0\1\37\1\0\3\2\2\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[3212]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -282,15 +303,16 @@ class _JqlLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\6\1\1\11\14\1\1\11\3\1\3\11\2\1"+ - "\1\11\1\0\2\1\1\0\1\1\2\0\1\11\2\0"+ - "\20\1\6\11\1\1\4\0\15\1\4\0\11\1\3\0"+ - "\1\11\6\1\2\0\3\1"; + "\1\0\2\1\1\11\4\1\3\11\3\1\1\11\16\1"+ + "\1\11\1\0\2\11\1\0\1\11\1\0\1\11\2\0"+ + "\2\11\23\1\1\0\1\11\2\0\4\1\1\0\11\1"+ + "\3\0\2\1\1\0\7\1\3\0\2\1\1\11\4\1"+ + "\3\0\4\1"; private static int [] zzUnpackAttribute() { int [] result = new int[108]; @@ -337,15 +359,27 @@ class _JqlLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; @@ -359,26 +393,22 @@ class _JqlLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -510,7 +540,8 @@ class _JqlLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -544,7 +575,7 @@ class _JqlLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -566,11 +597,11 @@ class _JqlLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -593,205 +624,205 @@ class _JqlLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return JqlTokenTypes.STRING_LITERAL; - } - // fall through + } + // fall through case 41: break; - case 2: + case 2: { return JqlTokenTypes.WHITE_SPACE; - } - // fall through + } + // fall through case 42: break; - case 3: - { return JqlTokenTypes.NUMBER_LITERAL; - } - // fall through - case 43: break; - case 4: + case 3: { return JqlTokenTypes.BAD_CHARACTER; - } - // fall through - case 44: break; - case 5: - { return JqlTokenTypes.EQ; - } - // fall through - case 45: break; - case 6: + } + // fall through + case 43: break; + case 4: { return JqlTokenTypes.BANG; - } - // fall through - case 46: break; - case 7: - { return JqlTokenTypes.LT; - } - // fall through - case 47: break; - case 8: - { return JqlTokenTypes.GT; - } - // fall through - case 48: break; - case 9: - { return JqlTokenTypes.CONTAINS; - } - // fall through - case 49: break; - case 10: - { return JqlTokenTypes.LPAR; - } - // fall through - case 50: break; - case 11: - { return JqlTokenTypes.RPAR; - } - // fall through - case 51: break; - case 12: + } + // fall through + case 44: break; + case 5: { return JqlTokenTypes.AMP; - } - // fall through - case 52: break; - case 13: - { return JqlTokenTypes.PIPE; - } - // fall through - case 53: break; - case 14: + } + // fall through + case 45: break; + case 6: + { return JqlTokenTypes.LPAR; + } + // fall through + case 46: break; + case 7: + { return JqlTokenTypes.RPAR; + } + // fall through + case 47: break; + case 8: { return JqlTokenTypes.COMMA; - } - // fall through + } + // fall through + case 48: break; + case 9: + { return JqlTokenTypes.NUMBER_LITERAL; + } + // fall through + case 49: break; + case 10: + { return JqlTokenTypes.LT; + } + // fall through + case 50: break; + case 11: + { return JqlTokenTypes.EQ; + } + // fall through + case 51: break; + case 12: + { return JqlTokenTypes.GT; + } + // fall through + case 52: break; + case 13: + { return JqlTokenTypes.PIPE; + } + // fall through + case 53: break; + case 14: + { return JqlTokenTypes.CONTAINS; + } + // fall through case 54: break; - case 15: - { return JqlTokenTypes.BY_KEYWORD; - } - // fall through - case 55: break; - case 16: - { return JqlTokenTypes.TO_KEYWORD; - } - // fall through - case 56: break; - case 17: - { return JqlTokenTypes.ON_KEYWORD; - } - // fall through - case 57: break; - case 18: - { return JqlTokenTypes.OR_KEYWORD; - } - // fall through - case 58: break; - case 19: - { return JqlTokenTypes.IN_KEYWORD; - } - // fall through - case 59: break; - case 20: - { return JqlTokenTypes.IS_KEYWORD; - } - // fall through - case 60: break; - case 21: + case 15: { return JqlTokenTypes.NE; - } - // fall through - case 61: break; - case 22: + } + // fall through + case 55: break; + case 16: { return JqlTokenTypes.NOT_CONTAINS; - } - // fall through - case 62: break; - case 23: - { return JqlTokenTypes.LE; - } - // fall through - case 63: break; - case 24: - { return JqlTokenTypes.GE; - } - // fall through - case 64: break; - case 25: + } + // fall through + case 56: break; + case 17: { return JqlTokenTypes.AMP_AMP; - } - // fall through + } + // fall through + case 57: break; + case 18: + { return JqlTokenTypes.LE; + } + // fall through + case 58: break; + case 19: + { return JqlTokenTypes.GE; + } + // fall through + case 59: break; + case 20: + { return JqlTokenTypes.BY_KEYWORD; + } + // fall through + case 60: break; + case 21: + { return JqlTokenTypes.IN_KEYWORD; + } + // fall through + case 61: break; + case 22: + { return JqlTokenTypes.IS_KEYWORD; + } + // fall through + case 62: break; + case 23: + { return JqlTokenTypes.ON_KEYWORD; + } + // fall through + case 63: break; + case 24: + { return JqlTokenTypes.OR_KEYWORD; + } + // fall through + case 64: break; + case 25: + { return JqlTokenTypes.TO_KEYWORD; + } + // fall through case 65: break; - case 26: + case 26: { return JqlTokenTypes.PIPE_PIPE; - } - // fall through + } + // fall through case 66: break; - case 27: + case 27: { return JqlTokenTypes.AND_KEYWORD; - } - // fall through + } + // fall through case 67: break; - case 28: + case 28: { return JqlTokenTypes.ASC_KEYWORD; - } - // fall through + } + // fall through case 68: break; - case 29: + case 29: { return JqlTokenTypes.NOT_KEYWORD; - } - // fall through + } + // fall through case 69: break; - case 30: + case 30: { return JqlTokenTypes.WAS_KEYWORD; - } - // fall through + } + // fall through case 70: break; - case 31: - { return JqlTokenTypes.FROM_KEYWORD; - } - // fall through - case 71: break; - case 32: - { return JqlTokenTypes.NULL_KEYWORD; - } - // fall through - case 72: break; - case 33: + case 31: { return JqlTokenTypes.DESC_KEYWORD; - } - // fall through + } + // fall through + case 71: break; + case 32: + { return JqlTokenTypes.FROM_KEYWORD; + } + // fall through + case 72: break; + case 33: + { return JqlTokenTypes.NULL_KEYWORD; + } + // fall through case 73: break; - case 34: - { return JqlTokenTypes.CUSTOM_FIELD; - } - // fall through - case 74: break; - case 35: + case 34: { return JqlTokenTypes.AFTER_KEYWORD; - } - // fall through + } + // fall through + case 74: break; + case 35: + { return JqlTokenTypes.CUSTOM_FIELD; + } + // fall through case 75: break; - case 36: - { return JqlTokenTypes.ORDER_KEYWORD; - } - // fall through - case 76: break; - case 37: + case 36: { return JqlTokenTypes.EMPTY_KEYWORD; - } - // fall through + } + // fall through + case 76: break; + case 37: + { return JqlTokenTypes.ORDER_KEYWORD; + } + // fall through case 77: break; - case 38: + case 38: { return JqlTokenTypes.BEFORE_KEYWORD; - } - // fall through + } + // fall through case 78: break; - case 39: + case 39: { return JqlTokenTypes.DURING_KEYWORD; - } - // fall through + } + // fall through case 79: break; - case 40: + case 40: { return JqlTokenTypes.CHANGED_KEYWORD; - } - // fall through + } + // fall through case 80: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/plugins/xpath/xpath-lang/gen/org/intellij/lang/xpath/_XPathLexer.java b/plugins/xpath/xpath-lang/gen/org/intellij/lang/xpath/_XPathLexer.java index 6ea20f900288..3c6f807c5f83 100644 --- a/plugins/xpath/xpath-lang/gen/org/intellij/lang/xpath/_XPathLexer.java +++ b/plugins/xpath/xpath-lang/gen/org/intellij/lang/xpath/_XPathLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: xpath-lexer.flex /* It's an automatically generated code. Do not modify it. */ package org.intellij.lang.xpath; @@ -8,11 +9,6 @@ import com.intellij.psi.tree.IElementType; @SuppressWarnings({"ALL"}) -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file xpath-lexer.flex - */ abstract class _XPathLexer implements FlexLexer { /** This character denotes the end of file */ @@ -33,162 +29,283 @@ abstract class _XPathLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14272 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\1\1\10\1\11\1\12\1\13\1\12\1\13\34\12\1"+ - "\14\1\15\1\16\10\1\1\17\1\20\1\12\1\21\4\12\1\22\10\12\1\23\12\12\1\24\1\12"+ - "\1\25\1\24\1\12\1\26\4\1\1\12\1\27\1\30\2\1\2\12\1\27\1\1\1\31\1\24\5\12\1"+ - "\32\1\33\1\34\1\1\1\35\1\12\1\1\1\36\5\12\1\37\1\40\1\41\1\12\1\27\1\42\1"+ - "\12\1\43\1\44\1\1\1\12\1\45\4\1\1\12\1\46\4\1\1\47\2\12\1\50\1\1\1\51\1\52"+ - "\1\24\1\53\1\54\1\55\1\56\1\57\1\60\1\52\1\15\1\61\1\54\1\55\1\62\1\1\1\63"+ - "\1\64\1\65\1\66\1\21\1\55\1\67\1\1\1\70\1\52\1\71\1\72\1\54\1\55\1\67\1\1"+ - "\1\60\1\52\1\40\1\73\1\74\1\75\1\76\1\1\1\70\1\64\1\1\1\77\1\35\1\55\1\50"+ - "\1\1\1\100\1\52\1\1\1\101\1\35\1\55\1\102\1\1\1\57\1\52\1\103\1\77\1\35\1"+ - "\12\1\104\1\57\1\105\1\52\1\106\1\107\1\110\1\12\1\111\1\112\1\1\1\64\1\1"+ - "\1\24\2\12\1\113\1\112\1\114\2\1\1\115\1\116\1\117\1\120\1\121\1\122\2\1\1"+ - "\70\1\1\1\114\1\1\1\123\1\12\1\124\1\1\1\125\7\1\2\12\1\27\1\126\1\114\1\127"+ - "\1\130\1\131\1\132\1\114\2\12\1\133\2\12\1\134\24\12\1\135\1\136\2\12\1\135"+ - "\2\12\1\137\1\140\1\13\3\12\1\140\3\12\1\27\2\1\1\12\1\1\5\12\1\141\1\24\45"+ - "\12\1\142\1\12\1\24\1\27\4\12\1\27\1\143\1\144\1\15\1\12\1\15\1\12\1\15\1"+ - "\144\1\70\3\12\1\145\1\1\1\146\1\114\2\1\1\114\5\12\1\26\1\147\1\12\1\150"+ - "\4\12\1\37\1\12\1\151\2\1\1\64\1\12\1\152\1\153\2\12\1\154\1\12\1\76\1\114"+ - "\2\1\1\12\1\112\3\12\1\153\2\1\2\114\1\155\5\1\1\107\2\12\1\145\1\156\1\114"+ - "\2\1\1\157\1\12\1\160\1\41\2\12\1\37\1\1\2\12\1\145\1\1\1\161\1\41\1\12\1"+ - "\152\1\45\5\1\1\162\1\163\14\12\4\1\21\12\1\141\2\12\1\141\1\164\1\12\1\152"+ - "\3\12\1\165\1\166\1\167\1\124\1\166\7\1\1\170\1\1\1\124\6\1\1\171\1\172\1"+ - "\173\1\174\1\175\3\1\1\176\147\1\2\12\1\151\2\12\1\151\10\12\1\177\1\200\2"+ - "\12\1\133\3\12\1\201\1\1\1\12\1\112\4\202\4\1\1\126\35\1\1\203\2\1\1\204\1"+ - "\24\4\12\1\205\1\24\4\12\1\134\1\107\1\12\1\152\1\24\4\12\1\151\1\1\1\12\1"+ - "\27\3\1\1\12\40\1\133\12\1\37\4\1\135\12\1\37\2\1\10\12\1\124\4\1\2\12\1\152"+ - "\20\12\1\124\1\12\1\206\1\1\2\12\1\151\1\126\1\12\1\152\4\12\1\37\2\1\1\207"+ - "\1\210\5\12\1\211\1\12\1\151\1\26\3\1\1\207\1\212\1\12\1\30\1\1\3\12\1\145"+ - "\1\210\2\12\1\145\1\1\1\114\1\1\1\213\1\41\1\12\1\37\1\12\1\112\1\1\1\12\1"+ - "\124\1\47\2\12\1\30\1\126\1\114\1\214\1\215\2\12\1\45\1\1\1\216\1\114\1\12"+ - "\1\217\3\12\1\220\1\221\1\222\1\27\1\65\1\223\1\224\1\202\2\12\1\134\1\37"+ - "\7\12\1\30\1\114\72\12\1\145\1\12\1\225\2\12\1\154\20\1\26\12\1\152\6\12\1"+ - "\76\2\1\1\112\1\226\1\55\1\227\1\230\6\12\1\15\1\1\1\157\25\12\1\152\1\1\4"+ - "\12\1\210\2\12\1\26\2\1\1\154\7\1\1\214\7\12\1\124\1\1\1\114\1\24\1\27\1\24"+ - "\1\27\1\231\4\12\1\151\1\232\1\233\2\1\1\234\1\12\1\13\1\235\2\152\2\1\7\12"+ - "\1\27\30\1\1\12\1\124\3\12\1\70\2\1\2\12\1\1\1\12\1\236\2\12\1\37\1\12\1\152"+ - "\2\12\1\237\3\1\11\12\1\152\1\114\2\12\1\237\1\12\1\154\2\12\1\26\3\12\1\145"+ - "\11\1\23\12\1\112\1\12\1\37\1\26\11\1\1\240\2\12\1\241\1\12\1\37\1\12\1\112"+ - "\1\12\1\151\4\1\1\12\1\242\1\12\1\37\1\12\1\76\4\1\3\12\1\243\4\1\1\70\1\244"+ - "\1\12\1\145\2\1\1\12\1\124\1\12\1\124\2\1\1\123\1\12\1\153\1\1\3\12\1\37\1"+ - "\12\1\37\1\12\1\30\1\12\1\15\6\1\4\12\1\45\3\1\3\12\1\30\3\12\1\30\60\1\1"+ - "\157\2\12\1\26\2\1\1\64\1\1\1\157\2\12\2\1\1\12\1\45\1\114\1\157\1\12\1\112"+ - "\1\64\1\1\2\12\1\245\1\157\2\12\1\30\1\246\1\247\2\1\1\12\1\21\1\154\5\1\1"+ - "\250\1\251\1\45\2\12\1\151\1\1\1\114\1\72\1\54\1\55\1\67\1\1\1\252\1\15\11"+ - "\1\3\12\1\153\1\253\1\114\2\1\3\12\1\1\1\254\1\114\12\1\2\12\1\151\2\1\1\255"+ - "\2\1\3\12\1\1\1\256\1\114\2\1\2\12\1\27\1\1\1\114\3\1\1\12\1\76\1\1\1\114"+ - "\26\1\4\12\1\114\1\126\34\1\3\12\1\45\20\1\1\55\1\12\1\151\1\1\1\70\1\114"+ - "\1\1\1\210\1\12\67\1\71\12\1\76\16\1\14\12\1\145\53\1\2\12\1\151\75\1\44\12"+ - "\1\112\33\1\43\12\1\45\1\12\1\151\1\114\6\1\1\12\1\152\1\1\3\12\1\1\1\145"+ - "\1\114\1\157\1\257\1\12\67\1\4\12\1\153\1\70\3\1\1\157\4\1\1\70\1\1\76\12"+ - "\1\124\1\1\57\12\1\30\20\1\1\15\77\1\6\12\1\27\1\124\1\45\1\76\66\1\5\12\1"+ - "\214\3\12\1\144\1\260\1\261\1\262\3\12\1\263\1\264\1\12\1\265\1\266\1\35\24"+ - "\12\1\267\1\12\1\35\1\134\1\12\1\134\1\12\1\214\1\12\1\214\1\151\1\12\1\151"+ - "\1\12\1\55\1\12\1\55\1\12\1\270\3\271\14\12\1\153\3\1\4\12\1\145\1\114\112"+ - "\1\1\262\1\12\1\272\1\273\1\274\1\275\1\276\1\277\1\300\1\154\1\301\1\154"+ - "\24\1\55\12\1\112\2\1\103\12\1\153\15\12\1\152\150\12\1\15\25\1\41\12\1\152"+ - "\36\1"); - /* The ZZ_CMAP_A table has 3104 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\2\1\2\0\1\1\22\0\1\1\1\56\1\7\1\0\1\41\1\0\1\57\1\10\1\37\1\40\1\50"+ - "\1\12\1\52\1\5\1\4\1\53\12\3\1\6\1\60\1\44\1\55\1\45\1\47\1\51\4\2\1\11\25"+ - "\2\1\61\1\0\1\62\1\0\1\2\1\0\1\13\1\26\1\15\1\31\1\16\1\24\1\33\1\30\1\25"+ - "\2\2\1\23\1\34\1\14\1\21\1\35\1\46\1\22\1\17\1\20\1\27\1\42\1\32\1\36\1\43"+ - "\1\2\1\63\1\54\1\64\14\0\1\2\12\0\1\2\4\0\1\2\5\0\27\2\1\0\12\2\4\0\14\2\16"+ - "\0\5\2\7\0\1\2\1\0\1\2\1\0\5\2\1\0\2\2\2\0\4\2\1\0\1\2\6\0\1\2\1\0\3\2\1\0"+ - "\1\2\1\0\4\2\1\0\23\2\1\0\13\2\10\0\6\2\1\0\26\2\2\0\1\2\6\0\10\2\10\0\13"+ - "\2\5\0\3\2\15\0\12\3\4\0\6\2\1\0\1\2\17\0\2\2\7\0\2\2\12\3\3\2\2\0\2\2\1\0"+ - "\16\2\15\0\11\2\13\0\1\2\16\0\12\3\6\2\4\0\2\2\4\0\1\2\5\0\6\2\4\0\1\2\11"+ - "\0\1\2\3\0\1\2\7\0\11\2\7\0\5\2\1\0\10\2\6\0\26\2\3\0\1\2\2\0\1\2\7\0\12\2"+ - "\4\0\12\3\1\2\4\0\10\2\2\0\2\2\2\0\26\2\1\0\7\2\1\0\1\2\3\0\4\2\3\0\1\2\20"+ - "\0\1\2\15\0\2\2\1\0\1\2\5\0\6\2\4\0\2\2\1\0\2\2\1\0\2\2\1\0\2\2\17\0\4\2\1"+ - "\0\1\2\7\0\12\3\2\0\3\2\20\0\11\2\1\0\2\2\1\0\2\2\1\0\5\2\3\0\1\2\2\0\1\2"+ - "\30\0\1\2\13\0\10\2\2\0\1\2\3\0\1\2\1\0\6\2\3\0\3\2\1\0\4\2\3\0\2\2\1\0\1"+ - "\2\1\0\2\2\3\0\2\2\3\0\3\2\3\0\14\2\13\0\10\2\1\0\2\2\10\0\3\2\5\0\1\2\4\0"+ - "\10\2\1\0\6\2\1\0\5\2\3\0\1\2\3\0\2\2\15\0\13\2\2\0\1\2\6\0\3\2\10\0\1\2\12"+ - "\0\6\2\5\0\22\2\3\0\10\2\1\0\11\2\1\0\1\2\2\0\7\2\11\0\1\2\1\0\2\2\14\0\12"+ - "\3\7\0\2\2\1\0\1\2\2\0\2\2\1\0\1\2\2\0\1\2\6\0\4\2\1\0\7\2\1\0\3\2\1\0\1\2"+ - "\1\0\1\2\2\0\2\2\1\0\4\2\1\0\2\2\11\0\1\2\2\0\5\2\1\0\1\2\11\0\12\3\2\0\14"+ - "\2\1\0\24\2\13\0\5\2\22\0\7\2\4\0\4\2\3\0\1\2\3\0\2\2\7\0\3\2\4\0\15\2\14"+ - "\0\1\2\1\0\6\2\1\0\1\2\5\0\1\2\2\0\13\2\1\0\15\2\1\0\4\2\2\0\7\2\1\0\1\2\1"+ - "\0\4\2\2\0\1\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0\16\2\2\0\6\2\2\0\15\2\2"+ - "\0\1\2\1\0\10\2\7\0\15\2\1\0\6\2\23\0\1\2\4\0\1\2\3\0\5\2\2\0\22\2\1\0\1\2"+ - "\5\0\17\2\1\0\16\2\2\0\5\2\13\0\14\2\13\0\1\2\15\0\7\2\7\0\16\2\15\0\2\2\12"+ - "\3\3\0\3\2\11\0\4\2\1\0\4\2\3\0\2\2\11\0\10\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0"+ - "\6\2\1\0\7\2\1\0\1\2\3\0\3\2\1\0\7\2\3\0\4\2\2\0\6\2\5\0\1\2\15\0\1\2\2\0"+ - "\1\2\4\0\1\2\2\0\12\2\1\0\1\2\3\0\5\2\6\0\1\2\1\0\1\2\1\0\1\2\1\0\4\2\1\0"+ - "\13\2\2\0\4\2\5\0\5\2\4\0\1\2\4\0\2\2\13\0\5\2\6\0\4\2\3\0\2\2\14\0\10\2\7"+ - "\0\10\2\1\0\7\2\6\0\2\2\12\0\5\2\5\0\2\2\3\0\7\2\6\0\3\2\12\3\2\2\13\0\11"+ - "\2\2\0\27\2\2\0\7\2\1\0\3\2\1\0\4\2\1\0\4\2\2\0\6\2\3\0\1\2\1\0\1\2\2\0\5"+ - "\2\1\0\12\2\12\3\5\2\1\0\3\2\1\0\10\2\4\0\7\2\3\0\1\2\3\0\2\2\1\0\1\2\3\0"+ - "\2\2\2\0\5\2\2\0\1\2\1\0\1\2\30\0\3\2\3\0\6\2\2\0\6\2\2\0\6\2\11\0\7\2\4\0"+ - "\5\2\3\0\5\2\5\0\1\2\1\0\10\2\1\0\5\2\1\0\1\2\1\0\2\2\1\0\2\2\1\0\12\2\6\0"+ - "\12\2\2\0\6\2\2\0\6\2\2\0\6\2\2\0\3\2\3\0\14\2\1\0\16\2\1\0\2\2\1\0\2\2\1"+ - "\0\10\2\6\0\4\2\4\0\16\2\2\0\1\2\1\0\14\2\1\0\2\2\3\0\1\2\2\0\4\2\1\0\2\2"+ - "\12\0\10\2\6\0\6\2\1\0\3\2\1\0\12\2\3\0\1\2\12\0\4\2\13\0\12\3\1\2\1\0\1\2"+ - "\3\0\7\2\1\0\1\2\1\0\4\2\1\0\17\2\1\0\2\2\14\0\3\2\7\0\4\2\11\0\2\2\1\0\1"+ - "\2\20\0\4\2\10\0\1\2\13\0\10\2\5\0\3\2\2\0\1\2\2\0\2\2\2\0\4\2\1\0\14\2\1"+ - "\0\1\2\1\0\7\2\1\0\21\2\1\0\4\2\2\0\10\2\1\0\7\2\1\0\14\2\1\0\4\2\1\0\5\2"+ - "\1\0\1\2\3\0\14\2\2\0\13\2\1\0\10\2\2\0\22\3\1\0\2\2\1\0\1\2\2\0\1\2\1\0\12"+ - "\2\1\0\4\2\1\0\1\2\1\0\1\2\6\0\1\2\4\0\1\2\1\0\1\2\1\0\1\2\1\0\3\2\1\0\2\2"+ - "\1\0\1\2\2\0\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0\2\2\1\0\1\2\2\0\4\2\1"+ - "\0\7\2\1\0\4\2\1\0\4\2\1\0\1\2\1\0\12\2\1\0\5\2\1\0\3\2\1\0\5\2\1\0\5\2"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\2\1\2\0\1\1\22\0\1\1\1\2\1\3"+ + "\1\0\1\4\1\0\1\5\1\6\1\7\1\10\1\11"+ + "\1\12\1\13\1\14\1\15\1\16\12\17\1\20\1\21"+ + "\1\22\1\23\1\24\1\25\1\26\4\27\1\30\25\27"+ + "\1\31\1\0\1\32\1\0\1\27\1\0\1\33\1\34"+ + "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\2\27"+ + "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+ + "\1\54\1\55\1\56\1\57\1\60\1\61\1\27\1\62"+ + "\1\63\1\64\54\0\1\27\12\0\1\27\4\0\1\27"+ + "\5\0\27\27\1\0\37\27\1\0\u01ca\27\4\0\14\27"+ + "\16\0\5\27\7\0\1\27\1\0\1\27\201\0\5\27"+ + "\1\0\2\27\2\0\4\27\1\0\1\27\6\0\1\27"+ + "\1\0\3\27\1\0\1\27\1\0\24\27\1\0\123\27"+ + "\1\0\213\27\10\0\246\27\1\0\46\27\2\0\1\27"+ + "\6\0\51\27\107\0\33\27\4\0\4\27\55\0\53\27"+ + "\25\0\12\17\4\0\2\27\1\0\143\27\1\0\1\27"+ + "\17\0\2\27\7\0\2\27\12\17\3\27\2\0\1\27"+ + "\20\0\1\27\1\0\36\27\35\0\131\27\13\0\1\27"+ + "\16\0\12\17\41\27\11\0\2\27\4\0\1\27\5\0"+ + "\26\27\4\0\1\27\11\0\1\27\3\0\1\27\27\0"+ + "\31\27\7\0\13\27\65\0\25\27\1\0\10\27\106\0"+ + "\66\27\3\0\1\27\22\0\1\27\7\0\12\27\4\0"+ + "\12\17\1\0\20\27\4\0\10\27\2\0\2\27\2\0"+ + "\26\27\1\0\7\27\1\0\1\27\3\0\4\27\3\0"+ + "\1\27\20\0\1\27\15\0\2\27\1\0\3\27\4\0"+ + "\12\17\2\27\12\0\1\27\10\0\6\27\4\0\2\27"+ + "\2\0\26\27\1\0\7\27\1\0\2\27\1\0\2\27"+ + "\1\0\2\27\37\0\4\27\1\0\1\27\7\0\12\17"+ + "\2\0\3\27\20\0\11\27\1\0\3\27\1\0\26\27"+ + "\1\0\7\27\1\0\2\27\1\0\5\27\3\0\1\27"+ + "\22\0\1\27\17\0\2\27\4\0\12\17\11\0\1\27"+ + "\13\0\10\27\2\0\2\27\2\0\26\27\1\0\7\27"+ + "\1\0\2\27\1\0\5\27\3\0\1\27\36\0\2\27"+ + "\1\0\3\27\4\0\12\17\1\0\1\27\21\0\1\27"+ + "\1\0\6\27\3\0\3\27\1\0\4\27\3\0\2\27"+ + "\1\0\1\27\1\0\2\27\3\0\2\27\3\0\3\27"+ + "\3\0\14\27\26\0\1\27\25\0\12\17\25\0\10\27"+ + "\1\0\3\27\1\0\27\27\1\0\20\27\3\0\1\27"+ + "\32\0\3\27\5\0\2\27\4\0\12\17\20\0\1\27"+ + "\4\0\10\27\1\0\3\27\1\0\27\27\1\0\12\27"+ + "\1\0\5\27\3\0\1\27\40\0\1\27\1\0\2\27"+ + "\4\0\12\17\1\0\2\27\22\0\10\27\1\0\3\27"+ + "\1\0\51\27\2\0\1\27\20\0\1\27\5\0\3\27"+ + "\10\0\3\27\4\0\12\17\12\0\6\27\5\0\22\27"+ + "\3\0\30\27\1\0\11\27\1\0\1\27\2\0\7\27"+ + "\37\0\12\17\21\0\60\27\1\0\2\27\14\0\7\27"+ + "\11\0\12\17\47\0\2\27\1\0\1\27\1\0\5\27"+ + "\1\0\30\27\1\0\1\27\1\0\12\27\1\0\2\27"+ + "\11\0\1\27\2\0\5\27\1\0\1\27\11\0\12\17"+ + "\2\0\4\27\40\0\1\27\37\0\12\17\26\0\10\27"+ + "\1\0\44\27\33\0\5\27\163\0\53\27\24\0\1\27"+ + "\12\17\6\0\6\27\4\0\4\27\3\0\1\27\3\0"+ + "\2\27\7\0\3\27\4\0\15\27\14\0\1\27\1\0"+ + "\12\17\6\0\46\27\1\0\1\27\5\0\1\27\2\0"+ + "\53\27\1\0\115\27\1\0\4\27\2\0\7\27\1\0"+ + "\1\27\1\0\4\27\2\0\51\27\1\0\4\27\2\0"+ + "\41\27\1\0\4\27\2\0\7\27\1\0\1\27\1\0"+ + "\4\27\2\0\17\27\1\0\71\27\1\0\4\27\2\0"+ + "\103\27\45\0\20\27\20\0\126\27\2\0\6\27\3\0"+ + "\u016c\27\2\0\21\27\1\0\32\27\5\0\113\27\6\0"+ + "\10\27\7\0\15\27\1\0\4\27\16\0\22\27\16\0"+ + "\22\27\16\0\15\27\1\0\3\27\17\0\64\27\43\0"+ + "\1\27\4\0\1\27\3\0\12\17\46\0\12\17\6\0"+ + "\131\27\7\0\5\27\2\0\42\27\1\0\1\27\5\0"+ + "\106\27\12\0\37\27\47\0\12\17\36\27\2\0\5\27"+ + "\13\0\54\27\4\0\32\27\6\0\12\17\46\0\27\27"+ + "\11\0\65\27\53\0\12\17\6\0\12\17\15\0\1\27"+ + "\135\0\57\27\21\0\7\27\4\0\12\17\51\0\36\27"+ + "\15\0\2\27\12\17\54\27\32\0\44\27\34\0\12\17"+ + "\3\0\3\27\12\17\44\27\2\0\11\27\7\0\53\27"+ + "\2\0\3\27\51\0\4\27\1\0\6\27\1\0\2\27"+ + "\3\0\1\27\5\0\300\27\100\0\26\27\2\0\6\27"+ + "\2\0\46\27\2\0\6\27\2\0\10\27\1\0\1\27"+ + "\1\0\1\27\1\0\1\27\1\0\37\27\2\0\65\27"+ + "\1\0\7\27\1\0\1\27\3\0\3\27\1\0\7\27"+ + "\3\0\4\27\2\0\6\27\4\0\15\27\5\0\3\27"+ + "\1\0\7\27\164\0\1\27\15\0\1\27\20\0\15\27"+ + "\145\0\1\27\4\0\1\27\2\0\12\27\1\0\1\27"+ + "\3\0\5\27\6\0\1\27\1\0\1\27\1\0\1\27"+ + "\1\0\4\27\1\0\13\27\2\0\4\27\5\0\5\27"+ + "\4\0\1\27\64\0\2\27\u017b\0\57\27\1\0\57\27"+ + "\1\0\205\27\6\0\4\27\3\0\2\27\14\0\46\27"+ + "\1\0\1\27\5\0\1\27\2\0\70\27\7\0\1\27"+ + "\20\0\27\27\11\0\7\27\1\0\7\27\1\0\7\27"+ + "\1\0\7\27\1\0\7\27\1\0\7\27\1\0\7\27"+ + "\1\0\7\27\120\0\1\27\325\0\2\27\52\0\5\27"+ + "\5\0\2\27\4\0\126\27\6\0\3\27\1\0\132\27"+ + "\1\0\4\27\5\0\53\27\1\0\136\27\21\0\33\27"+ + "\65\0\306\27\112\0\360\27\20\0\215\27\103\0\56\27"+ + "\2\0\15\27\3\0\20\27\12\17\2\27\24\0\57\27"+ + "\20\0\37\27\2\0\106\27\61\0\11\27\2\0\147\27"+ + "\2\0\65\27\2\0\5\27\60\0\13\27\1\0\3\27"+ + "\1\0\4\27\1\0\27\27\35\0\64\27\16\0\62\27"+ + "\34\0\12\17\30\0\6\27\3\0\1\27\1\0\2\27"+ + "\1\0\12\17\34\27\12\0\27\27\31\0\35\27\7\0"+ + "\57\27\34\0\1\27\12\17\6\0\5\27\1\0\12\27"+ + "\12\17\5\27\1\0\51\27\27\0\3\27\1\0\10\27"+ + "\4\0\12\17\6\0\27\27\3\0\1\27\3\0\62\27"+ + "\1\0\1\27\3\0\2\27\2\0\5\27\2\0\1\27"+ + "\1\0\1\27\30\0\3\27\2\0\13\27\7\0\3\27"+ + "\14\0\6\27\2\0\6\27\2\0\6\27\11\0\7\27"+ + "\1\0\7\27\1\0\53\27\1\0\14\27\10\0\163\27"+ + "\15\0\12\17\6\0\244\27\14\0\27\27\4\0\61\27"+ + "\4\0\156\27\2\0\152\27\46\0\7\27\14\0\5\27"+ + "\5\0\1\27\1\0\12\27\1\0\15\27\1\0\5\27"+ + "\1\0\1\27\1\0\2\27\1\0\2\27\1\0\154\27"+ + "\41\0\153\27\22\0\100\27\2\0\66\27\50\0\14\27"+ + "\164\0\5\27\1\0\207\27\23\0\12\17\7\0\32\27"+ + "\6\0\32\27\13\0\131\27\3\0\6\27\2\0\6\27"+ + "\2\0\6\27\2\0\3\27\43\0\14\27\1\0\32\27"+ + "\1\0\23\27\1\0\2\27\1\0\17\27\2\0\16\27"+ + "\42\0\173\27\205\0\35\27\3\0\61\27\57\0\40\27"+ + "\15\0\24\27\1\0\10\27\6\0\46\27\12\0\36\27"+ + "\2\0\44\27\4\0\10\27\60\0\236\27\2\0\12\17"+ + "\6\0\44\27\4\0\44\27\4\0\50\27\10\0\64\27"+ + "\234\0\67\27\11\0\26\27\12\0\10\27\230\0\6\27"+ + "\2\0\1\27\1\0\54\27\1\0\2\27\3\0\1\27"+ + "\2\0\27\27\12\0\27\27\11\0\37\27\101\0\23\27"+ + "\1\0\2\27\12\0\26\27\12\0\32\27\106\0\70\27"+ + "\6\0\2\27\100\0\1\27\17\0\4\27\1\0\3\27"+ + "\1\0\35\27\52\0\35\27\3\0\35\27\43\0\10\27"+ + "\1\0\34\27\33\0\66\27\12\0\26\27\12\0\23\27"+ + "\15\0\22\27\156\0\111\27\67\0\63\27\15\0\63\27"+ + "\15\0\44\27\14\0\12\17\306\0\35\27\12\0\1\27"+ + "\10\0\26\27\232\0\27\27\14\0\65\27\56\0\12\17"+ + "\23\0\55\27\40\0\31\27\7\0\12\17\11\0\44\27"+ + "\17\0\12\17\4\0\1\27\13\0\43\27\3\0\1\27"+ + "\14\0\60\27\16\0\4\27\13\0\12\17\1\27\1\0"+ + "\1\27\43\0\22\27\1\0\31\27\124\0\7\27\1\0"+ + "\1\27\1\0\4\27\1\0\17\27\1\0\12\27\7\0"+ + "\57\27\21\0\12\17\13\0\10\27\2\0\2\27\2\0"+ + "\26\27\1\0\7\27\1\0\2\27\1\0\5\27\3\0"+ + "\1\27\22\0\1\27\14\0\5\27\236\0\65\27\22\0"+ + "\4\27\5\0\12\17\5\0\1\27\40\0\60\27\24\0"+ + "\2\27\1\0\1\27\10\0\12\17\246\0\57\27\51\0"+ + "\4\27\44\0\60\27\24\0\1\27\13\0\12\17\46\0"+ + "\53\27\15\0\1\27\7\0\12\17\66\0\33\27\25\0"+ + "\12\17\306\0\54\27\164\0\100\27\12\17\25\0\1\27"+ + "\240\0\10\27\2\0\47\27\20\0\1\27\1\0\1\27"+ + "\34\0\1\27\12\0\50\27\7\0\1\27\25\0\1\27"+ + "\13\0\56\27\23\0\1\27\42\0\71\27\7\0\11\27"+ + "\1\0\45\27\21\0\1\27\17\0\12\17\30\0\36\27"+ + "\160\0\7\27\1\0\2\27\1\0\46\27\25\0\1\27"+ + "\11\0\12\17\6\0\6\27\1\0\2\27\1\0\40\27"+ + "\16\0\1\27\7\0\12\17\u0136\0\23\27\15\0\232\27"+ + "\346\0\304\27\274\0\57\27\321\0\107\27\271\0\71\27"+ + "\7\0\37\27\1\0\12\17\146\0\36\27\22\0\60\27"+ + "\20\0\4\27\14\0\12\17\11\0\25\27\5\0\23\27"+ + "\260\0\100\27\200\0\113\27\5\0\1\27\102\0\15\27"+ + "\100\0\2\27\1\0\1\27\34\0\370\27\10\0\363\27"+ + "\15\0\37\27\61\0\3\27\21\0\4\27\10\0\u018c\27"+ + "\4\0\153\27\5\0\15\27\3\0\11\27\7\0\12\27"+ + "\146\0\125\27\1\0\107\27\1\0\2\27\2\0\1\27"+ + "\2\0\2\27\2\0\4\27\1\0\14\27\1\0\1\27"+ + "\1\0\7\27\1\0\101\27\1\0\4\27\2\0\10\27"+ + "\1\0\7\27\1\0\34\27\1\0\4\27\1\0\5\27"+ + "\1\0\1\27\3\0\7\27\1\0\u0154\27\2\0\31\27"+ + "\1\0\31\27\1\0\37\27\1\0\31\27\1\0\37\27"+ + "\1\0\31\27\1\0\37\27\1\0\31\27\1\0\37\27"+ + "\1\0\31\27\1\0\10\27\2\0\62\17\55\27\12\0"+ + "\7\27\2\0\12\17\4\0\1\27\u0171\0\54\27\4\0"+ + "\12\17\6\0\305\27\73\0\104\27\7\0\1\27\4\0"+ + "\12\17\246\0\4\27\1\0\33\27\1\0\2\27\1\0"+ + "\1\27\2\0\1\27\1\0\12\27\1\0\4\27\1\0"+ + "\1\27\1\0\1\27\6\0\1\27\4\0\1\27\1\0"+ + "\1\27\1\0\1\27\1\0\3\27\1\0\2\27\1\0"+ + "\1\27\2\0\1\27\1\0\1\27\1\0\1\27\1\0"+ + "\1\27\1\0\1\27\1\0\2\27\1\0\1\27\2\0"+ + "\4\27\1\0\7\27\1\0\4\27\1\0\4\27\1\0"+ + "\1\27\1\0\12\27\1\0\21\27\5\0\3\27\1\0"+ + "\5\27\1\0\21\27\104\0\327\27\51\0\65\27\13\0"+ + "\336\27\2\0\u0182\27\16\0\u0131\27\37\0\36\27\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\6\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+ - "\2\10\1\11\14\3\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\2\1"+ - "\1\26\1\27\1\30\1\31\13\3\1\32\1\33\1\34"+ - "\1\35\1\36\14\35\1\37\1\40\1\41\1\42\2\0"+ - "\1\4\1\0\1\43\1\44\1\45\2\10\3\3\1\46"+ - "\5\3\1\47\4\3\1\50\1\51\1\3\1\52\1\53"+ - "\2\3\1\54\1\55\2\3\1\56\1\57\1\60\1\61"+ - "\1\62\1\63\1\64\2\0\1\3\1\65\4\3\1\66"+ - "\2\3\1\67\1\70\1\3\1\71\4\3\1\0\1\72"+ - "\3\35\1\46\6\35\1\47\4\35\1\50\1\51\1\35"+ - "\1\52\1\35\1\53\2\35\1\54\1\55\2\35\1\4"+ - "\1\0\13\3\1\73\6\3\2\0\1\74\13\3\1\75"+ - "\1\76\14\35\1\73\7\35\3\3\1\77\4\3\1\100"+ - "\1\101\6\3\1\15\1\16\1\102\1\103\3\3\1\104"+ - "\3\3\1\105\1\3\3\35\1\77\5\35\1\100\1\101"+ - "\1\35\1\106\5\35\4\3\1\107\12\3\1\110\3\3"+ - "\1\111\5\35\1\107\7\35\11\3\1\112\1\3\1\113"+ - "\2\3\11\35\14\3\11\35\1\100\7\3\1\114\1\3"+ - "\1\115\1\3\1\100\10\35\1\3\1\100\3\3\1\116"+ - "\1\117\2\35\1\100\3\35\4\3\5\35\3\3\4\35"+ - "\3\3\4\35\3\3\4\35\2\3\1\120\2\35\2\3"+ - "\2\35\2\3\2\35\1\3\1\35\1\3\1\35\1\3"+ - "\1\35\1\3\1\35\1\3\1\35"; + "\6\0\1\1\1\2\1\1\1\3\1\4\1\1\1\3"+ + "\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+ + "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+ + "\1\25\1\26\14\24\1\27\1\30\1\31\1\32\13\24"+ + "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\15\42"+ + "\2\0\1\43\1\3\2\0\1\3\1\44\1\45\1\15"+ + "\1\46\1\0\1\47\1\50\1\51\1\52\1\53\1\54"+ + "\7\24\1\55\2\24\1\56\1\57\1\60\1\61\1\62"+ + "\1\63\1\24\1\64\10\24\1\65\5\24\1\66\1\24"+ + "\1\67\1\70\3\24\1\71\2\24\1\0\1\72\10\42"+ + "\1\55\2\42\1\56\1\57\1\60\1\61\1\42\1\62"+ + "\1\63\1\42\1\64\7\42\3\0\1\15\10\24\1\73"+ + "\11\24\1\74\1\24\1\75\5\24\1\76\5\24\11\42"+ + "\1\73\12\42\1\21\1\17\11\24\1\77\4\24\1\100"+ + "\1\101\1\102\1\103\1\24\1\104\4\24\1\105\2\24"+ + "\11\42\1\106\1\42\1\77\4\42\1\100\1\101\5\24"+ + "\1\107\14\24\1\110\1\111\6\42\1\107\6\42\11\24"+ + "\1\112\2\24\1\113\1\24\11\42\14\24\11\42\1\100"+ + "\7\24\1\114\1\115\2\24\1\100\10\42\3\24\1\100"+ + "\1\24\1\116\1\117\4\42\1\100\1\42\4\24\5\42"+ + "\3\24\4\42\3\24\4\42\3\24\4\42\2\24\1\120"+ + "\2\42\2\24\2\42\2\24\2\42\1\24\1\42\1\24"+ + "\1\42\1\24\1\42\1\24\1\42\1\24\1\42"; private static int [] zzUnpackAction() { int [] result = new int[434]; @@ -210,59 +327,59 @@ abstract class _XPathLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\65\0\152\0\237\0\324\0\u0109\0\u013e\0\u0173"+ - "\0\u01a8\0\u01dd\0\u0212\0\u013e\0\u0247\0\u027c\0\u02b1\0\u013e"+ - "\0\u02e6\0\u031b\0\u0350\0\u0385\0\u03ba\0\u03ef\0\u0424\0\u0459"+ - "\0\u048e\0\u04c3\0\u04f8\0\u052d\0\u0562\0\u013e\0\u013e\0\u0597"+ - "\0\u05cc\0\u013e\0\u013e\0\u013e\0\u013e\0\u0601\0\u013e\0\u013e"+ - "\0\u0636\0\u066b\0\u013e\0\u013e\0\u013e\0\u013e\0\u06a0\0\u06d5"+ - "\0\u070a\0\u073f\0\u0774\0\u07a9\0\u07de\0\u0813\0\u0848\0\u087d"+ - "\0\u08b2\0\u013e\0\u08e7\0\u0247\0\u091c\0\u013e\0\u0951\0\u0986"+ - "\0\u09bb\0\u09f0\0\u0a25\0\u0a5a\0\u0a8f\0\u0ac4\0\u0af9\0\u0b2e"+ - "\0\u0b63\0\u0b98\0\u0562\0\u013e\0\u013e\0\u013e\0\u0bcd\0\u0c02"+ - "\0\u0c37\0\u0c6c\0\u013e\0\u013e\0\u013e\0\u0ca1\0\u0cd6\0\u0d0b"+ - "\0\u0d40\0\u0d75\0\u01a8\0\u0daa\0\u0ddf\0\u0e14\0\u0e49\0\u0e7e"+ - "\0\u01a8\0\u0eb3\0\u0ee8\0\u0f1d\0\u0f52\0\u01a8\0\u01a8\0\u0f87"+ - "\0\u01a8\0\u01a8\0\u0fbc\0\u0ff1\0\u01a8\0\u01a8\0\u1026\0\u105b"+ - "\0\u013e\0\u013e\0\u013e\0\u013e\0\u013e\0\u013e\0\u013e\0\u1090"+ - "\0\u10c5\0\u10fa\0\u01a8\0\u112f\0\u1164\0\u1199\0\u11ce\0\u01a8"+ - "\0\u1203\0\u1238\0\u01a8\0\u01a8\0\u126d\0\u12a2\0\u12d7\0\u130c"+ - "\0\u1341\0\u1376\0\u13ab\0\u013e\0\u13e0\0\u1415\0\u144a\0\u091c"+ - "\0\u147f\0\u14b4\0\u14e9\0\u151e\0\u1553\0\u1588\0\u091c\0\u15bd"+ - "\0\u15f2\0\u1627\0\u165c\0\u091c\0\u091c\0\u1691\0\u091c\0\u16c6"+ - "\0\u091c\0\u16fb\0\u1730\0\u091c\0\u091c\0\u1765\0\u179a\0\u17cf"+ - "\0\u17cf\0\u1804\0\u1839\0\u186e\0\u18a3\0\u18d8\0\u190d\0\u1942"+ - "\0\u1977\0\u19ac\0\u19e1\0\u1a16\0\u01a8\0\u1a4b\0\u1a80\0\u1ab5"+ - "\0\u1aea\0\u1b1f\0\u1b54\0\u1b89\0\u1bbe\0\u01a8\0\u1bf3\0\u1c28"+ - "\0\u1c5d\0\u1c92\0\u1cc7\0\u1cfc\0\u1d31\0\u1d66\0\u1d9b\0\u1dd0"+ - "\0\u1e05\0\u01a8\0\u01a8\0\u1e3a\0\u1e6f\0\u1ea4\0\u1ed9\0\u1f0e"+ - "\0\u1f43\0\u1f78\0\u1fad\0\u1fe2\0\u2017\0\u204c\0\u2081\0\u091c"+ + "\0\u01a8\0\u01dd\0\u013e\0\u0212\0\u0247\0\u027c\0\u013e\0\u013e"+ + "\0\u013e\0\u013e\0\u013e\0\u02b1\0\u02e6\0\u031b\0\u0350\0\u0385"+ + "\0\u013e\0\u03ba\0\u013e\0\u013e\0\u03ef\0\u013e\0\u013e\0\u0424"+ + "\0\u0459\0\u048e\0\u04c3\0\u04f8\0\u052d\0\u0562\0\u0597\0\u05cc"+ + "\0\u0601\0\u0636\0\u066b\0\u013e\0\u013e\0\u013e\0\u013e\0\u06a0"+ + "\0\u06d5\0\u070a\0\u073f\0\u0774\0\u07a9\0\u07de\0\u0813\0\u0848"+ + "\0\u087d\0\u08b2\0\u0350\0\u08e7\0\u027c\0\u013e\0\u013e\0\u013e"+ + "\0\u013e\0\u091c\0\u0951\0\u0986\0\u09bb\0\u09f0\0\u0a25\0\u0a5a"+ + "\0\u0a8f\0\u0ac4\0\u0af9\0\u0b2e\0\u0b63\0\u0b98\0\u0bcd\0\u0c02"+ + "\0\u013e\0\u0c37\0\u0c6c\0\u0ca1\0\u0cd6\0\u013e\0\u013e\0\u0d0b"+ + "\0\u013e\0\u0d40\0\u013e\0\u013e\0\u013e\0\u013e\0\u013e\0\u013e"+ + "\0\u0d75\0\u0daa\0\u0ddf\0\u0e14\0\u0e49\0\u0e7e\0\u0eb3\0\u03ef"+ + "\0\u0ee8\0\u0f1d\0\u03ef\0\u03ef\0\u03ef\0\u03ef\0\u03ef\0\u03ef"+ + "\0\u0f52\0\u03ef\0\u0f87\0\u0fbc\0\u0ff1\0\u1026\0\u105b\0\u1090"+ + "\0\u10c5\0\u10fa\0\u03ef\0\u112f\0\u1164\0\u1199\0\u11ce\0\u1203"+ + "\0\u1238\0\u126d\0\u03ef\0\u03ef\0\u12a2\0\u12d7\0\u130c\0\u03ef"+ + "\0\u1341\0\u1376\0\u13ab\0\u013e\0\u13e0\0\u1415\0\u144a\0\u147f"+ + "\0\u14b4\0\u14e9\0\u151e\0\u1553\0\u091c\0\u1588\0\u15bd\0\u091c"+ + "\0\u091c\0\u091c\0\u091c\0\u15f2\0\u091c\0\u091c\0\u1627\0\u091c"+ + "\0\u165c\0\u1691\0\u16c6\0\u16fb\0\u1730\0\u1765\0\u179a\0\u17cf"+ + "\0\u1804\0\u1839\0\u1839\0\u186e\0\u18a3\0\u18d8\0\u190d\0\u1942"+ + "\0\u1977\0\u19ac\0\u19e1\0\u03ef\0\u1a16\0\u1a4b\0\u1a80\0\u1ab5"+ + "\0\u1aea\0\u1b1f\0\u1b54\0\u1b89\0\u1bbe\0\u03ef\0\u1bf3\0\u03ef"+ + "\0\u1c28\0\u1c5d\0\u1c92\0\u1cc7\0\u1cfc\0\u03ef\0\u1d31\0\u1d66"+ + "\0\u1d9b\0\u1dd0\0\u1e05\0\u1e3a\0\u1e6f\0\u1ea4\0\u1ed9\0\u1f0e"+ + "\0\u1f43\0\u1f78\0\u1fad\0\u1fe2\0\u091c\0\u2017\0\u204c\0\u2081"+ "\0\u20b6\0\u20eb\0\u2120\0\u2155\0\u218a\0\u21bf\0\u21f4\0\u2229"+ - "\0\u225e\0\u2293\0\u01a8\0\u22c8\0\u22fd\0\u2332\0\u2367\0\u01a8"+ - "\0\u01a8\0\u239c\0\u23d1\0\u2406\0\u243b\0\u2470\0\u24a5\0\u24da"+ - "\0\u250f\0\u2544\0\u01a8\0\u2579\0\u25ae\0\u25e3\0\u01a8\0\u2618"+ - "\0\u264d\0\u2682\0\u01a8\0\u26b7\0\u26ec\0\u2721\0\u2756\0\u091c"+ - "\0\u278b\0\u27c0\0\u27f5\0\u282a\0\u285f\0\u091c\0\u091c\0\u2894"+ - "\0\u091c\0\u28c9\0\u28fe\0\u2933\0\u2968\0\u299d\0\u29d2\0\u2a07"+ - "\0\u2a3c\0\u2a71\0\u01a8\0\u2aa6\0\u2adb\0\u2b10\0\u2b45\0\u2b7a"+ - "\0\u2baf\0\u2be4\0\u2c19\0\u2c4e\0\u2c83\0\u01a8\0\u2cb8\0\u2ced"+ - "\0\u2d22\0\u01a8\0\u2d57\0\u2d8c\0\u2dc1\0\u2df6\0\u2e2b\0\u091c"+ - "\0\u2e60\0\u2e95\0\u2eca\0\u2eff\0\u2f34\0\u2f69\0\u2f9e\0\u2fd3"+ + "\0\u225e\0\u2293\0\u22c8\0\u22fd\0\u2332\0\u2367\0\u239c\0\u23d1"+ + "\0\u2406\0\u243b\0\u03ef\0\u2470\0\u24a5\0\u24da\0\u250f\0\u03ef"+ + "\0\u03ef\0\u2544\0\u03ef\0\u2579\0\u03ef\0\u25ae\0\u25e3\0\u2618"+ + "\0\u264d\0\u03ef\0\u2682\0\u26b7\0\u26ec\0\u2721\0\u2756\0\u278b"+ + "\0\u27c0\0\u27f5\0\u282a\0\u285f\0\u2894\0\u091c\0\u28c9\0\u091c"+ + "\0\u28fe\0\u2933\0\u2968\0\u299d\0\u091c\0\u091c\0\u29d2\0\u2a07"+ + "\0\u2a3c\0\u2a71\0\u2aa6\0\u03ef\0\u2adb\0\u2b10\0\u2b45\0\u2b7a"+ + "\0\u2baf\0\u2be4\0\u2c19\0\u2c4e\0\u2c83\0\u2cb8\0\u2ced\0\u2d22"+ + "\0\u03ef\0\u03ef\0\u2d57\0\u2d8c\0\u2dc1\0\u2df6\0\u2e2b\0\u2e60"+ + "\0\u091c\0\u2e95\0\u2eca\0\u2eff\0\u2f34\0\u2f69\0\u2f9e\0\u2fd3"+ "\0\u3008\0\u303d\0\u3072\0\u30a7\0\u30dc\0\u3111\0\u3146\0\u317b"+ - "\0\u01a8\0\u31b0\0\u01a8\0\u31e5\0\u321a\0\u324f\0\u3284\0\u32b9"+ + "\0\u03ef\0\u31b0\0\u31e5\0\u03ef\0\u321a\0\u324f\0\u3284\0\u32b9"+ "\0\u32ee\0\u3323\0\u3358\0\u338d\0\u33c2\0\u33f7\0\u342c\0\u3461"+ "\0\u3496\0\u34cb\0\u3500\0\u3535\0\u356a\0\u359f\0\u35d4\0\u3609"+ "\0\u363e\0\u3673\0\u36a8\0\u36dd\0\u3712\0\u3747\0\u377c\0\u37b1"+ "\0\u37e6\0\u381b\0\u3850\0\u3885\0\u38ba\0\u38ef\0\u3924\0\u3959"+ - "\0\u398e\0\u39c3\0\u39f8\0\u01a8\0\u3a2d\0\u01a8\0\u3a62\0\u3a97"+ + "\0\u398e\0\u39c3\0\u39f8\0\u03ef\0\u03ef\0\u3a2d\0\u3a62\0\u3a97"+ "\0\u3acc\0\u3b01\0\u3b36\0\u3b6b\0\u3ba0\0\u3bd5\0\u3c0a\0\u3c3f"+ - "\0\u3c74\0\u3ca9\0\u3cde\0\u3d13\0\u3d48\0\u01a8\0\u01a8\0\u3d7d"+ + "\0\u3c74\0\u3ca9\0\u3cde\0\u3d13\0\u3d48\0\u03ef\0\u03ef\0\u3d7d"+ "\0\u3db2\0\u3de7\0\u3e1c\0\u3e51\0\u3e86\0\u3ebb\0\u3ef0\0\u3f25"+ "\0\u3f5a\0\u3f8f\0\u3fc4\0\u3ff9\0\u402e\0\u4063\0\u4098\0\u40cd"+ "\0\u4102\0\u4137\0\u416c\0\u41a1\0\u41d6\0\u420b\0\u4240\0\u4275"+ @@ -282,7 +399,7 @@ abstract class _XPathLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -290,546 +407,466 @@ abstract class _XPathLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\11\1\20\1\21\1\22\1\23\1\24\1\25"+ - "\1\26\2\11\1\27\1\30\1\31\3\11\1\32\1\11"+ - "\1\33\1\11\1\34\1\11\1\35\1\36\1\37\2\11"+ - "\1\40\1\41\1\11\1\42\1\43\1\44\1\45\1\46"+ - "\1\47\1\50\1\51\1\52\1\7\1\53\1\54\1\55"+ - "\1\56\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+ - "\1\16\1\17\1\11\1\20\1\57\1\22\1\60\1\61"+ - "\1\62\1\63\1\64\1\65\1\27\1\30\1\66\1\11"+ - "\1\67\1\11\1\70\1\11\1\33\1\71\1\34\1\11"+ - "\1\35\1\36\1\37\2\11\1\40\1\41\1\11\1\42"+ - "\1\72\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+ - "\1\7\1\53\1\54\1\55\1\56\1\7\1\10\1\73"+ - "\1\12\1\13\1\14\1\74\1\16\1\17\1\73\1\20"+ - "\24\73\1\35\1\36\1\37\2\73\1\40\1\41\1\73"+ - "\1\42\1\7\1\44\1\45\1\46\1\47\1\50\1\51"+ - "\1\52\1\7\1\53\1\54\1\55\1\56\1\7\1\10"+ - "\1\75\1\12\1\13\1\14\1\74\1\16\1\17\1\75"+ - "\1\76\1\77\1\100\1\101\1\102\1\103\1\104\2\75"+ - "\1\105\1\106\1\107\3\75\1\110\1\75\1\111\1\75"+ - "\1\112\1\75\1\113\1\114\1\37\2\75\1\40\1\41"+ - "\1\75\1\115\1\116\1\44\1\45\1\46\1\47\1\50"+ - "\1\51\1\52\1\7\1\53\1\54\1\55\1\56\2\0"+ - "\1\117\6\0\1\117\1\0\24\117\3\0\2\117\2\0"+ - "\1\117\24\0\1\120\144\0\1\10\65\0\4\11\3\0"+ - "\1\11\1\0\24\11\3\0\2\11\2\0\1\11\21\0"+ - "\1\12\1\121\4\0\1\122\4\0\1\122\51\0\1\121"+ - "\1\123\66\0\1\124\31\0\1\125\24\0\7\16\1\126"+ - "\55\16\10\17\1\127\54\17\2\0\4\11\3\0\1\11"+ - "\1\0\1\11\1\130\3\11\1\131\16\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\1\132"+ - "\2\11\1\133\2\11\1\134\15\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\6\11\1\135"+ - "\6\11\1\136\6\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\10\11\1\137\13\11\3\0"+ - "\1\140\1\11\2\0\1\141\20\0\4\11\3\0\1\11"+ - "\1\0\2\11\1\142\1\143\2\11\1\144\15\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\3\11\1\145\20\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\3\11\1\146\1\11\1\147"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\6\11\1\150\15\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\4\11\1\151"+ - "\4\11\1\152\12\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\3\11\1\153\2\11\1\154"+ - "\15\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\155\1\11\1\156\16\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\1\157\6\11\1\160\14\11\3\0\2\11\2\0\1\11"+ - "\24\0\1\161\122\0\1\162\10\0\1\163\54\0\1\164"+ - "\7\0\1\165\62\0\1\166\66\0\1\167\32\0\1\170"+ - "\7\0\1\171\33\0\4\11\3\0\1\11\1\0\1\11"+ - "\1\172\2\11\1\173\1\131\16\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\174\5\11"+ - "\1\135\6\11\1\136\6\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\10\11\1\175\12\11"+ - "\1\176\3\0\1\140\1\11\2\0\1\141\20\0\4\11"+ - "\3\0\1\11\1\0\1\177\1\11\1\142\1\143\2\11"+ - "\1\144\15\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\3\11\1\145\2\11\1\200\1\201"+ - "\5\11\1\202\6\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\7\11\1\203\1\11\1\204"+ - "\12\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\205\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\11\1\206"+ - "\2\11\1\151\4\11\1\152\4\11\1\207\5\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\1\11\1\210\22\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\3\11\1\153\2\11\1\154"+ - "\3\11\1\211\11\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\6\11\1\212\15\11\3\0"+ - "\2\11\2\0\1\11\17\0\1\213\4\73\1\214\2\0"+ - "\1\73\1\0\24\73\3\0\2\73\2\0\1\73\20\0"+ - "\4\75\3\0\1\75\1\0\24\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\1\75\1\215"+ - "\3\75\1\216\16\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\1\217\2\75\1\220\2\75"+ - "\1\221\15\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\6\75\1\222\6\75\1\223\6\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\10\75\1\224\10\75\1\225\2\75\3\0\1\226"+ - "\1\75\2\0\1\227\20\0\4\75\3\0\1\75\1\0"+ - "\2\75\1\230\1\231\2\75\1\232\15\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\3\75"+ - "\1\233\20\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\3\75\1\234\1\75\1\235\16\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\6\75\1\236\15\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\4\75\1\237\1\240"+ - "\3\75\1\241\12\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\3\75\1\242\2\75\1\243"+ - "\15\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\3\75\1\244\1\75\1\245\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\1\246\6\75\1\247\14\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\117\3\0\1\117\1\0\24\117\3\0\2\117"+ - "\2\0\1\117\17\0\1\120\66\0\1\121\5\0\1\122"+ - "\4\0\1\122\51\0\1\250\1\0\1\251\4\0\1\251"+ - "\61\0\1\16\65\0\1\17\56\0\4\11\3\0\1\11"+ - "\1\0\2\11\1\252\21\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\5\11\1\253\16\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\21\11\1\254\2\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\16\11\1\255\5\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\21\11\1\256\2\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\12\11\1\257\11\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\3\11\1\256\20\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\3\11\1\260\20\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\15\11\1\261\6\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\10\11\1\262\13\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\21\11\1\263\2\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\23\11\1\264\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\7\11\1\265\1\266\13\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\4\11\1\267\17\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\2\11\1\270\21\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\7\11\1\271\14\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\3\11\1\272\2\11\1\273\15\11\3\0\2\11"+ - "\2\0\1\11\36\0\1\274\64\0\1\275\46\0\4\11"+ - "\3\0\1\11\1\0\2\11\1\252\13\11\1\276\5\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\4\11\1\277\17\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\3\11\1\256\1\300"+ - "\17\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\2\11\1\301\21\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\5\11\1\302"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\303\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\3\11\1\304"+ - "\20\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\5\11\1\305\16\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\4\11\1\306"+ - "\1\307\16\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\12\11\1\310\11\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\12\11"+ - "\1\311\11\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\24\11\3\0\1\312\1\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\16\11\1\313"+ - "\5\11\3\0\2\11\2\0\1\11\17\0\1\213\4\0"+ - "\1\214\60\0\4\75\3\0\1\75\1\0\2\75\1\314"+ - "\21\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\5\75\1\315\16\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\21\75\1\316"+ - "\2\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\16\75\1\317\5\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\21\75\1\320"+ - "\2\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\12\75\1\321\11\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\3\75\1\320"+ - "\20\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\22\75\1\322\1\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\3\75\1\323"+ - "\20\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\15\75\1\324\6\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\10\75\1\325"+ - "\13\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\21\75\1\326\2\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\23\75\1\327"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\7\75\1\330\1\331\13\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\3\75\1\332"+ - "\20\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\4\75\1\333\17\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\2\75\1\334"+ - "\21\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\7\75\1\335\14\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\3\75\1\336"+ - "\2\75\1\337\15\75\3\0\2\75\2\0\1\75\21\0"+ - "\1\250\63\0\4\11\3\0\1\11\1\0\3\11\1\340"+ - "\20\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\7\11\1\341\14\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\3\11\1\342"+ - "\20\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\343\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\21\11\1\344"+ - "\2\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\10\11\1\345\13\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\7\11\1\346"+ - "\14\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\347\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\11\11\1\350"+ - "\12\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\351\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\5\11\1\343"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\10\11\1\352\13\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\2\11\1\353"+ - "\21\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\14\11\1\354\7\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\3\11\1\355"+ - "\20\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\2\11\1\356\21\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\2\11\1\357"+ - "\21\11\3\0\2\11\2\0\1\11\76\0\1\360\64\0"+ - "\1\361\6\0\4\11\3\0\1\11\1\0\5\11\1\362"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\363\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\3\11\1\364"+ - "\20\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\12\11\1\365\11\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\366\23\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\1\11\1\367\22\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\14\11\1\370\7\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\5\11\1\371\16\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\3\11\1\372\20\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\24\11\3\0\1\373\1\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\6\11\1\374\15\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\375\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\7\75\1\376\14\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\377\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\3\75\1\u0100\20\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\21\75\1\u0101\2\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\10\75\1\u0102\13\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\5\75\1\u0103\16\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\7\75\1\u0104\14\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\u0105\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\11\75\1\u0106\12\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\u0107\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\5\75\1\u0100\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\10\75\1\u0108\13\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\21\75\1\u0109\2\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\2\75\1\u010a\21\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\14\75\1\u010b\7\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\u010c\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\2\75\1\u010d\21\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\2\75\1\u010e\21\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\11\3\0\1\11\1\0\4\11\1\u010f\17\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\12\11\1\u0110\11\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\4\11\1\u0111\17\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\3\11\1\u0112\20\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\16\11\1\350\5\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\24\11\3\0\1\11\1\u0113\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\21\11\1\u0114\2\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\6\11"+ - "\1\u0115\15\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\3\11\1\u0116\20\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\21\11"+ - "\1\u0117\2\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\1\11\1\u0118\22\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\3\11"+ - "\1\u0119\20\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\3\11\1\u011a\20\11\3\0\2\11"+ - "\2\0\1\11\73\0\1\163\64\0\1\165\11\0\4\11"+ - "\3\0\1\11\1\0\1\u011b\23\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\22\11\1\u011c"+ - "\1\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\4\11\1\u011d\17\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\5\11\1\u011e"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\7\11\1\u011f\14\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\u0120\23\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\7\11\1\u0121\14\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\1\11\1\u0122\22\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\75\3\0\1\75"+ - "\1\0\4\75\1\u0123\17\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\12\75\1\u0124\11\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\4\75\1\u0125\17\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\3\75\1\u0126\20\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\16\75\1\u0106\5\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\24\75\3\0\1\75"+ - "\1\u0127\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\24\75\3\0\1\75\1\u0128\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\21\75\1\u0129\2\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\6\75"+ - "\1\u012a\15\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\3\75\1\u012b\20\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\21\75"+ - "\1\u012c\2\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\1\75\1\u012d\22\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\3\75"+ - "\1\u012e\20\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\3\75\1\u012f\20\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\11\3\0\1\11\1\0\5\11"+ - "\1\u0130\16\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\13\11\1\u0131\10\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\22\11"+ - "\1\u0132\1\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\1\11\1\264\22\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\1\u0133"+ - "\23\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\17\11\1\u0134\4\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\11\1\u0135"+ - "\22\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\u0136\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\5\11\1\350"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\16\11\1\u0134\5\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\4\11\1\u0137"+ - "\17\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\13\11\1\u0138\10\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\5\11\1\u0139"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\11\11\1\u013a\12\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\11\1\u013b"+ - "\22\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\1\11\1\u013c\22\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\4\11\1\u013d"+ - "\17\11\3\0\2\11\2\0\1\11\20\0\4\75\3\0"+ - "\1\75\1\0\5\75\1\u013e\16\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\13\75\1\u013f"+ - "\10\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\22\75\1\u0140\1\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\1\75\1\327"+ - "\22\75\3\0\2\75\2\0\1\75\20\0\3\75\1\u0141"+ - "\3\0\1\75\1\0\24\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\1\u0142\23\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\17\75\1\u0143\4\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\1\75\1\u0144\22\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\u0145\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\5\75\1\u0106\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\16\75\1\u0143\5\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\4\75\1\u0146\17\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\6\11\1\u0147\15\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\14\11\1\u0148\7\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\1\u0149\23\11\3\0\2\11\2\0\1\11\20\0\3\11"+ - "\1\u014a\3\0\1\11\1\0\24\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\12\11\1\u014b"+ - "\11\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\16\11\1\u014c\5\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\11\1\u014d"+ - "\22\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\4\11\1\u014e\17\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\10\11\1\u014f"+ - "\13\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\12\11\1\u0150\11\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\2\11\1\u0151"+ - "\21\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\3\11\1\u0152\20\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\75\3\0\1\75\1\0\6\75\1\u0153"+ - "\15\75\3\0\2\75\2\0\1\75\20\0\4\75\3\0"+ - "\1\75\1\0\14\75\1\u0154\7\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\1\u0155\23\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\4\75\1\u0156\17\75\3\0\2\75\2\0\1\75"+ - "\20\0\3\75\1\u0157\3\0\1\75\1\0\24\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\12\75\1\u0158\11\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\16\75\1\u0159\5\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\1\75\1\u015a\22\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\4\75\1\u015b\17\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\7\11\1\u015c\14\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\5\11\1\255\16\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\2\11\1\u015d\21\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\1\u015e\2\11\1\u015f\20\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\1\11\1\u0160\22\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\1\u0161\23\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\5\11\1\u0162\16\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\12\11\1\u0163\11\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\3\11\1\u0164\20\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\3\11\1\u0165\20\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\3\11\1\u0166\20\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\2\11\1\u0167\21\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\75\3\0\1\75\1\0"+ - "\7\75\1\u0168\14\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\5\75\1\317\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\2\75\1\u0169\21\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\3\75\1\u016a\20\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\1\u016b\2\75\1\u016c\20\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\1\75\1\u016d\22\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\1\u016e\23\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\5\75\1\u016f\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\12\75\1\u0170\11\75\3\0\2\75\2\0\1\75\20\0"+ - "\3\11\1\u0171\3\0\1\11\1\0\24\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\3\11"+ - "\1\350\20\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\5\11\1\131\16\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\10\11"+ - "\1\137\13\11\3\0\2\11\2\0\1\11\20\0\4\11"+ - "\3\0\1\11\1\0\20\11\1\u0172\3\11\3\0\2\11"+ - "\2\0\1\11\20\0\4\11\3\0\1\11\1\0\1\11"+ - "\1\u0173\22\11\3\0\2\11\2\0\1\11\20\0\3\11"+ - "\1\u0174\3\0\1\11\1\0\24\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\1\11\1\u0175"+ - "\22\11\3\0\2\11\2\0\1\11\20\0\4\11\3\0"+ - "\1\11\1\0\4\11\1\u0176\17\11\3\0\2\11\2\0"+ - "\1\11\20\0\4\11\3\0\1\11\1\0\5\11\1\u0177"+ - "\16\11\3\0\2\11\2\0\1\11\20\0\3\75\1\u0178"+ - "\3\0\1\75\1\0\24\75\3\0\2\75\2\0\1\75"+ - "\20\0\4\75\3\0\1\75\1\0\3\75\1\u0106\20\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\24\75\3\0\2\75\2\0\1\u0179\20\0\4\75"+ - "\3\0\1\75\1\0\5\75\1\216\16\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\10\75"+ - "\1\224\13\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\20\75\1\u017a\3\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\1\75"+ - "\1\u017b\22\75\3\0\2\75\2\0\1\75\20\0\3\75"+ - "\1\u017c\3\0\1\75\1\0\24\75\3\0\2\75\2\0"+ - "\1\75\20\0\4\75\3\0\1\75\1\0\1\75\1\u017d"+ - "\22\75\3\0\2\75\2\0\1\75\20\0\4\11\3\0"+ - "\1\11\1\0\6\11\1\u017e\15\11\3\0\2\11\2\0"+ - "\1\11\20\0\3\11\1\u017f\3\0\1\11\1\0\24\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\5\11\1\u015c\16\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\1\11\1\u0180\22\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\20\11\1\u0181\3\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\75\3\0\1\75\1\0\6\75\1\u0182\15\75"+ - "\3\0\2\75\2\0\1\75\20\0\4\75\3\0\1\75"+ - "\1\0\14\75\1\u0183\7\75\3\0\2\75\2\0\1\75"+ - "\20\0\3\75\1\u0184\3\0\1\75\1\0\24\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\5\75\1\u0168\16\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\1\75\1\u0185\22\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\20\75\1\u0186\3\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\11\3\0\1\11\1\0\7\11\1\u0187\14\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\4\11\1\u0188\17\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\6\11\1\134\15\11\3\0"+ - "\2\11\2\0\1\11\20\0\3\11\1\u0189\3\0\1\11"+ - "\1\0\24\11\3\0\2\11\2\0\1\11\20\0\4\75"+ - "\3\0\1\75\1\0\7\75\1\u018a\14\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\3\75"+ - "\1\u018b\20\75\3\0\2\75\2\0\1\75\20\0\4\75"+ - "\3\0\1\75\1\0\4\75\1\u018c\17\75\3\0\2\75"+ - "\2\0\1\75\20\0\4\75\3\0\1\75\1\0\6\75"+ - "\1\221\15\75\3\0\2\75\2\0\1\75\20\0\3\75"+ - "\1\u018d\3\0\1\75\1\0\24\75\3\0\2\75\2\0"+ - "\1\75\20\0\3\11\1\u018e\3\0\1\11\1\0\24\11"+ - "\3\0\2\11\2\0\1\11\20\0\4\11\3\0\1\11"+ - "\1\0\12\11\1\u018f\11\11\3\0\2\11\2\0\1\11"+ - "\20\0\4\11\3\0\1\11\1\0\12\11\1\u0190\11\11"+ - "\3\0\2\11\2\0\1\11\20\0\3\75\1\u0191\3\0"+ - "\1\75\1\0\24\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\1\75\1\u0192\22\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\12\75\1\u0193\11\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\12\75\1\u0194\11\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\4\11\1\u0195\17\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\13\11\1\u0196\10\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\1\11\1\u0197\22\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\75\3\0\1\75\1\0\4\75\1\u0198\17\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\2\75\1\u0199\21\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\13\75\1\u019a\10\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\1\75\1\u019b\22\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\11\3\0\1\11\1\0\3\11\1\143\20\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\11\3\0\1\11\1\0"+ - "\10\11\1\u019c\13\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\4\11\1\u019d\17\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\75\3\0\1\75\1\0"+ - "\3\75\1\231\20\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\3\75\1\u019e\20\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\75\3\0\1\75\1\0"+ - "\10\75\1\u019f\13\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\4\75\1\u01a0\17\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\12\11\1\u01a1\11\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\5\11\1\u01a2\16\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\75\3\0\1\75\1\0"+ - "\12\75\1\u01a3\11\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\5\75\1\u01a4\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\1\11\1\u01a5\22\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\7\11\1\u01a6\14\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\75\3\0\1\75\1\0"+ - "\1\75\1\u01a7\22\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\7\75\1\u01a8\14\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\20\11\1\350\3\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\11\3\0\1\11\1\0\14\11\1\u01a9\7\11\3\0"+ - "\2\11\2\0\1\11\20\0\4\75\3\0\1\75\1\0"+ - "\20\75\1\u0106\3\75\3\0\2\75\2\0\1\75\20\0"+ - "\4\75\3\0\1\75\1\0\14\75\1\u01aa\7\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\2\11\1\u01ab\21\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\75\3\0\1\75\1\0\2\75\1\u01ac\21\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\5\11\1\u01ad\16\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\75\3\0\1\75\1\0\5\75\1\u01ae\16\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\12\11\1\u01af\11\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\75\3\0\1\75\1\0\12\75\1\u01b0\11\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\6\11\1\u01b1\15\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\75\3\0\1\75\1\0\6\75\1\u01b2\15\75\3\0"+ - "\2\75\2\0\1\75\20\0\4\11\3\0\1\11\1\0"+ - "\1\11\1\343\22\11\3\0\2\11\2\0\1\11\20\0"+ - "\4\75\3\0\1\75\1\0\1\75\1\u0100\22\75\3\0"+ - "\2\75\2\0\1\75\16\0"; + "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+ + "\1\27\1\7\1\30\1\31\1\32\1\33\1\34\2\35"+ + "\1\36\1\37\1\40\1\35\1\41\1\42\1\43\1\44"+ + "\1\45\1\35\1\46\1\47\1\35\1\50\1\35\1\51"+ + "\2\35\1\52\1\53\5\35\1\54\1\55\1\56\1\7"+ + "\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17"+ + "\1\57\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+ + "\1\7\1\30\1\31\1\32\1\33\1\34\2\35\1\36"+ + "\1\37\1\60\1\35\1\61\1\62\1\63\1\44\1\45"+ + "\1\35\1\64\1\47\1\65\1\50\1\66\1\51\1\35"+ + "\1\67\1\70\1\71\1\72\4\35\1\54\1\55\1\56"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ + "\1\17\1\7\1\21\1\22\1\23\1\24\1\25\1\26"+ + "\1\73\1\7\1\30\1\31\1\32\1\33\1\34\2\74"+ + "\1\36\1\37\27\74\1\54\1\55\1\56\1\7\1\10"+ + "\1\11\1\12\1\13\1\14\1\15\1\75\1\76\1\77"+ + "\1\100\1\22\1\23\1\24\1\25\1\26\1\73\1\7"+ + "\1\30\1\31\1\32\1\101\1\34\2\102\1\36\1\37"+ + "\1\103\1\102\1\104\1\105\1\106\1\107\1\110\1\102"+ + "\1\111\1\112\1\102\1\113\1\102\1\114\2\102\1\115"+ + "\1\116\5\102\1\54\1\55\1\56\27\0\2\117\2\0"+ + "\27\117\23\0\1\120\132\0\1\10\106\0\1\121\41\0"+ + "\3\12\1\122\61\12\41\0\1\123\2\0\1\124\20\0"+ + "\6\15\1\125\56\15\20\0\1\126\61\0\1\127\1\0"+ + "\1\130\63\0\1\131\63\0\1\130\1\0\1\26\10\0"+ + "\1\132\6\0\1\132\35\0\1\133\7\0\1\134\66\0"+ + "\1\135\1\136\64\0\1\137\1\140\54\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\27\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\13\35\1\141\5\35\1\142"+ + "\5\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\7\35\1\143\4\35\1\144\12\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\4\35\1\145\7\35\1\146"+ + "\12\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\11\35\1\147\4\35\1\150\4\35\1\151\3\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\14\35\1\152"+ + "\12\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\4\35\1\153\14\35\1\154\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\5\35\1\155\12\35\1\156"+ + "\6\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\4\35\1\157\14\35\1\160\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\1\161\3\35\1\162\7\35"+ + "\1\163\12\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\1\164\16\35\1\165\7\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\2\35\1\166\1\35\1\167"+ + "\7\35\1\170\12\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\4\35\1\171\22\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\13\35\1\172\4\35\1\173"+ + "\1\142\5\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\1\174\6\35\1\143\4\35\1\144\12\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\4\35\1\145"+ + "\3\35\1\175\3\35\1\146\12\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\11\35\1\176\4\35\1\150"+ + "\4\35\1\151\1\35\1\177\1\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\3\35\1\200\1\35\1\155"+ + "\5\35\1\201\4\35\1\156\6\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\14\35\1\202\12\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\5\35\1\203"+ + "\11\35\1\204\7\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\4\35\1\205\22\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\1\206\1\35\1\166\1\35"+ + "\1\167\7\35\1\170\12\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\4\35\1\171\2\35\1\207\4\35"+ + "\1\210\2\35\1\211\7\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\13\35\1\212\13\35\4\0\1\213"+ + "\12\0\2\74\1\0\1\74\1\214\6\0\2\74\2\0"+ + "\27\74\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\27\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\13\102\1\215\5\102\1\216\5\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\7\102\1\217\4\102\1\220"+ + "\12\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\4\102\1\221\7\102\1\222\12\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\11\102\1\223\1\224\3\102"+ + "\1\225\4\102\1\226\3\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\14\102\1\227\12\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\4\102\1\230\14\102"+ + "\1\231\5\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\5\102\1\232\12\102\1\233\1\234\5\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\4\102\1\235"+ + "\14\102\1\236\5\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\1\237\3\102\1\240\7\102\1\241\12\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\1\242"+ + "\16\102\1\243\7\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\2\102\1\244\1\102\1\245\7\102\1\246"+ + "\12\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\4\102\1\247\22\102\17\0\2\117\1\0\1\117\7\0"+ + "\2\117\2\0\27\117\4\0\1\120\66\0\1\12\135\0"+ + "\1\250\64\0\1\251\16\0\1\15\75\0\1\130\10\0"+ + "\1\132\6\0\1\132\37\0\1\252\1\0\1\252\2\0"+ + "\1\253\61\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\2\35\1\254\24\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\21\35\1\255\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\10\35\1\256\16\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\12\35\1\257"+ + "\14\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\20\35\1\260\6\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\2\35\1\261\24\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\4\35\1\257\22\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\4\35\1\262"+ + "\22\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\11\35\1\263\5\35\1\264\7\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\12\35\1\265\14\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\3\35\1\266"+ + "\23\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\17\35\1\267\7\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\4\35\1\270\7\35\1\271\12\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\7\35\1\272"+ + "\17\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\11\35\1\273\15\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\12\35\1\274\14\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\25\35\1\275\1\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\2\35\1\254"+ + "\1\276\23\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\20\35\1\277\6\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\23\35\1\300\3\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\4\35\1\257\13\35"+ + "\1\301\6\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\2\35\1\302\24\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\10\35\1\303\16\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\20\35\1\304\1\305"+ + "\5\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\3\35\1\306\23\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\21\35\1\307\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\21\35\1\310\5\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\4\35\1\311"+ + "\22\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\4\35\1\312\22\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\10\35\1\313\16\35\4\0\1\213\16\0"+ + "\1\214\60\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\2\102\1\314\24\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\21\102\1\315\5\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\10\102\1\316\16\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\12\102\1\317"+ + "\14\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\20\102\1\320\6\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\2\102\1\321\24\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\4\102\1\317\22\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\15\102\1\322"+ + "\11\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\4\102\1\323\22\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\11\102\1\324\5\102\1\325\7\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\4\102\1\326"+ + "\22\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\12\102\1\327\14\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\3\102\1\330\23\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\17\102\1\331\7\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\4\102\1\332"+ + "\7\102\1\333\12\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\7\102\1\334\17\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\11\102\1\335\15\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\12\102\1\336"+ + "\14\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\25\102\1\337\1\102\24\0\1\340\64\0\1\341\62\0"+ + "\1\253\61\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\4\35\1\342\22\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\17\35\1\343\7\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\11\35\1\344\15\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\12\35\1\345"+ + "\14\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\2\35\1\346\24\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\22\35\1\347\4\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\17\35\1\350\7\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\11\35\1\351"+ + "\15\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\4\35\1\352\22\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\4\35\1\353\22\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\4\35\1\354\22\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\2\35\1\355"+ + "\24\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\2\35\1\356\24\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\4\35\1\357\22\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\5\35\1\360\21\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\4\35\1\361"+ + "\22\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\21\35\1\353\5\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\21\35\1\362\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\4\35\1\363\22\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\4\35\1\364"+ + "\22\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\23\35\1\365\3\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\21\35\1\366\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\4\35\1\367\22\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\22\35\1\370"+ + "\4\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\10\35\1\371\16\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\13\35\1\372\13\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\1\373\26\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\14\35\1\374\12\35"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\4\102"+ + "\1\375\22\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\17\102\1\376\7\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\11\102\1\377\15\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\12\102\1\u0100\14\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\2\102"+ + "\1\u0101\24\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\22\102\1\u0102\4\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\21\102\1\u0103\5\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\17\102\1\u0104\7\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\11\102"+ + "\1\u0105\15\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\12\102\1\u0106\14\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\4\102\1\u0107\22\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\4\102\1\u0108\22\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\4\102"+ + "\1\u0109\22\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\2\102\1\u010a\24\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\2\102\1\u010b\24\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\4\102\1\u010c\22\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\5\102"+ + "\1\u010d\21\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\4\102\1\u010e\22\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\21\102\1\u0108\5\102\26\0\1\137"+ + "\64\0\1\136\55\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\20\35\1\u010f\6\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\10\35\1\u0110\16\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\3\35\1\360\23\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\4\35"+ + "\1\u0111\22\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\4\35\1\u0112\22\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\12\35\1\u0113\14\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\26\35\1\u0114\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\14\35\1\u0115"+ + "\12\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\20\35\1\u0116\6\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\13\35\1\u0117\13\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\4\35\1\u0118\22\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\4\35\1\u0119"+ + "\22\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\12\35\1\u011a\14\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\1\u011b\26\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\15\35\1\u011c\11\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\1\u011d\26\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\17\35\1\u011e"+ + "\7\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\17\35\1\u011f\7\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\20\35\1\u0120\6\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\21\35\1\u0121\5\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\13\35\1\u0122"+ + "\13\35\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\20\102\1\u0123\6\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\10\102\1\u0124\16\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\3\102\1\u010d\23\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\4\102\1\u0125"+ + "\22\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\4\102\1\u0126\22\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\12\102\1\u0127\14\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\26\102\1\u0128\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\26\102\1\u0129\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\14\102\1\u012a"+ + "\12\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\20\102\1\u012b\6\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\13\102\1\u012c\13\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\4\102\1\u012d\22\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\4\102\1\u012e"+ + "\22\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\12\102\1\u012f\14\102\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\21\35\1\u0130\5\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\1\35\1\u0131\25\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\13\35\1\275"+ + "\13\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\13\35\1\u0132\13\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\4\35\1\u0133\22\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\24\35\1\u0134\2\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\15\35\1\u0135"+ + "\11\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\21\35\1\360\5\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\3\35\1\u0134\23\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\20\35\1\u0136\6\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\1\u0137\26\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\1\35"+ + "\1\u0138\25\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\21\35\1\u0139\5\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\13\35\1\u013a\13\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\20\35\1\u013b\6\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\13\35"+ + "\1\u013c\13\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\5\35\1\u013d\21\35\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\21\102\1\u013e\5\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\1\102\1\u013f\25\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\13\102"+ + "\1\337\13\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\13\102\1\u0140\13\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\4\102\1\u0141\22\102\17\0\1\u0142"+ + "\1\102\1\0\1\102\7\0\2\102\2\0\27\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\24\102\1\u0143"+ + "\2\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\15\102\1\u0144\11\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\21\102\1\u010d\5\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\3\102\1\u0143\23\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\20\102\1\u0145"+ + "\6\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\1\u0146\26\102\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\14\35\1\u0147\12\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\22\35\1\u0148\4\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\3\35\1\u0149\23\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\13\35"+ + "\1\u014a\13\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\10\35\1\u014b\16\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\1\u014c\26\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\20\35\1\u014d\6\35\17\0"+ + "\1\u014e\1\35\1\0\1\35\7\0\2\35\2\0\27\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\11\35"+ + "\1\u014f\15\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\2\35\1\u0150\24\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\4\35\1\u0151\22\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\10\35\1\u0152\16\35"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\14\102"+ + "\1\u0153\12\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\22\102\1\u0154\4\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\3\102\1\u0155\23\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\13\102\1\u0156\13\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\20\102"+ + "\1\u0157\6\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\10\102\1\u0158\16\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\1\u0159\26\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\20\102\1\u015a\6\102\17\0"+ + "\1\u015b\1\102\1\0\1\102\7\0\2\102\2\0\27\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\17\35"+ + "\1\u015c\7\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\21\35\1\266\5\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\1\u015d\26\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\21\35\1\u015e\5\35\17\0"+ + "\2\35\1\0\1\35\7\0\2\35\2\0\13\35\1\u015f"+ + "\13\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\2\35\1\u0160\24\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\10\35\1\u0161\16\35\17\0\2\35\1\0"+ + "\1\35\7\0\2\35\2\0\1\u0162\3\35\1\u0163\22\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\4\35"+ + "\1\u0164\22\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\4\35\1\u0165\22\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\2\35\1\u0166\24\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\4\35\1\u0167\22\35"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\17\102"+ + "\1\u0168\7\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\21\102\1\330\5\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\1\u0169\26\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\21\102\1\u016a\5\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\4\102\1\u016b"+ + "\22\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\13\102\1\u016c\13\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\2\102\1\u016d\24\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\10\102\1\u016e\16\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\1\u016f\3\102"+ + "\1\u0170\22\102\17\0\1\u0171\1\35\1\0\1\35\7\0"+ + "\2\35\2\0\27\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\13\35\1\u0172\13\35\17\0\1\u0173\1\35"+ + "\1\0\1\35\7\0\2\35\2\0\27\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\6\35\1\u0174\20\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\4\35"+ + "\1\360\22\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\13\35\1\u0175\13\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\21\35\1\142\5\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\11\35\1\147\15\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\21\35"+ + "\1\u0176\5\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\20\35\1\u0177\6\35\17\0\1\u0178\1\102\1\0"+ + "\1\102\7\0\2\102\2\0\27\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\13\102\1\u0179\13\102\17\0"+ + "\1\u017a\1\102\1\0\1\102\7\0\2\102\2\0\27\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\16\102"+ + "\1\u017b\10\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\6\102\1\u017c\20\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\4\102\1\u010d\22\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\13\102\1\u017d\13\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\21\102"+ + "\1\216\5\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\11\102\1\223\15\102\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\14\35\1\u017e\12\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\21\35\1\u015c\5\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\13\35"+ + "\1\u017f\13\35\17\0\1\u0180\1\35\1\0\1\35\7\0"+ + "\2\35\2\0\27\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\6\35\1\u0181\20\35\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\14\102\1\u0182\12\102\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\21\102\1\u0168"+ + "\5\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\13\102\1\u0183\13\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\22\102\1\u0184\4\102\17\0\1\u0185\1\102"+ + "\1\0\1\102\7\0\2\102\2\0\27\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\6\102\1\u0186\20\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\17\35"+ + "\1\u0187\7\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\14\35\1\163\12\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\20\35\1\u0188\6\35\17\0\1\u0189"+ + "\1\35\1\0\1\35\7\0\2\35\2\0\27\35\17\0"+ + "\2\102\1\0\1\102\7\0\2\102\2\0\17\102\1\u018a"+ + "\7\102\17\0\2\102\1\0\1\102\7\0\2\102\2\0"+ + "\14\102\1\241\12\102\17\0\2\102\1\0\1\102\7\0"+ + "\2\102\2\0\4\102\1\u018b\22\102\17\0\2\102\1\0"+ + "\1\102\7\0\2\102\2\0\20\102\1\u018c\6\102\17\0"+ + "\1\u018d\1\102\1\0\1\102\7\0\2\102\2\0\27\102"+ + "\17\0\1\u018e\1\35\1\0\1\35\7\0\2\35\2\0"+ + "\27\35\17\0\2\35\1\0\1\35\7\0\2\35\2\0"+ + "\10\35\1\u018f\16\35\17\0\2\35\1\0\1\35\7\0"+ + "\2\35\2\0\10\35\1\u0190\16\35\17\0\1\u0191\1\102"+ + "\1\0\1\102\7\0\2\102\2\0\27\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\13\102\1\u0192\13\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\10\102"+ + "\1\u0193\16\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\10\102\1\u0194\16\102\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\20\35\1\u0195\6\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\1\35\1\u0196\25\35"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\13\35"+ + "\1\u0197\13\35\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\20\102\1\u0198\6\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\2\102\1\u0199\24\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\1\102\1\u019a\25\102"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\13\102"+ + "\1\u019b\13\102\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\4\35\1\167\22\35\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\11\35\1\u019c\15\35\17\0\2\35"+ + "\1\0\1\35\7\0\2\35\2\0\20\35\1\u019d\6\35"+ + "\17\0\2\102\1\0\1\102\7\0\2\102\2\0\4\102"+ + "\1\245\22\102\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\4\102\1\u019e\22\102\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\11\102\1\u019f\15\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\20\102\1\u01a0\6\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\10\35"+ + "\1\u01a1\16\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\21\35\1\u01a2\5\35\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\10\102\1\u01a3\16\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\21\102\1\u01a4\5\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\13\35"+ + "\1\u01a5\13\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\17\35\1\u01a6\7\35\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\13\102\1\u01a7\13\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\17\102\1\u01a8\7\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\6\35"+ + "\1\360\20\35\17\0\2\35\1\0\1\35\7\0\2\35"+ + "\2\0\22\35\1\u01a9\4\35\17\0\2\102\1\0\1\102"+ + "\7\0\2\102\2\0\6\102\1\u010d\20\102\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\22\102\1\u01aa\4\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\2\35"+ + "\1\u01ab\24\35\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\2\102\1\u01ac\24\102\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\21\35\1\u01ad\5\35\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\21\102\1\u01ae\5\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\10\35"+ + "\1\u01af\16\35\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\10\102\1\u01b0\16\102\17\0\2\35\1\0\1\35"+ + "\7\0\2\35\2\0\14\35\1\u01b1\12\35\17\0\2\102"+ + "\1\0\1\102\7\0\2\102\2\0\14\102\1\u01b2\12\102"+ + "\17\0\2\35\1\0\1\35\7\0\2\35\2\0\13\35"+ + "\1\353\13\35\17\0\2\102\1\0\1\102\7\0\2\102"+ + "\2\0\13\102\1\u0108\13\102\3\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[18815]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -856,16 +893,15 @@ abstract class _XPathLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\6\0\1\11\4\1\1\11\3\1\1\11\15\1\2\11"+ - "\2\1\4\11\1\1\2\11\2\1\4\11\13\1\1\11"+ - "\3\1\1\11\15\1\3\11\3\1\1\0\3\11\33\1"+ - "\7\11\2\0\21\1\1\0\1\11\34\1\1\0\22\1"+ - "\2\0\365\1"; + "\6\0\1\11\3\1\1\11\3\1\5\11\5\1\1\11"+ + "\1\1\2\11\1\1\2\11\14\1\4\11\16\1\4\11"+ + "\17\1\1\11\1\1\2\0\1\1\2\11\1\1\1\11"+ + "\1\0\6\11\52\1\1\0\1\11\33\1\3\0\u0108\1"; private static int [] zzUnpackAttribute() { int [] result = new int[434]; @@ -912,19 +948,31 @@ abstract class _XPathLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ - private boolean zzEOFDone; - /** For the backwards DFA of general lookahead statements */ - private boolean [] zzFin = new boolean [ZZ_BUFFERSIZE+1]; + private boolean [] zzFin = new boolean [Math.min(ZZ_BUFFERSIZE, zzMaxBufferLen())+1]; + + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") + private boolean zzEOFDone; /* user code: */ private boolean allowXPath2Syntax = false; @@ -956,26 +1004,22 @@ abstract class _XPathLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -1107,7 +1151,8 @@ abstract class _XPathLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -1141,7 +1186,7 @@ abstract class _XPathLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -1163,11 +1208,11 @@ abstract class _XPathLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -1190,304 +1235,308 @@ abstract class _XPathLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { yybegin(YYINITIAL); return XPathTokenTypes.BAD_CHARACTER; - } - // fall through + } + // fall through case 81: break; - case 2: + case 2: { return XPathTokenTypes.WHITESPACE; - } - // fall through + } + // fall through case 82: break; - case 3: - { yybegin(S1); return XPathTokenTypes.NCNAME; - } - // fall through - case 83: break; - case 4: - { yybegin(S1); return XPathTokenTypes.NUMBER; - } - // fall through - case 84: break; - case 5: - { yybegin(S1); return XPathTokenTypes.DOT; - } - // fall through - case 85: break; - case 6: - { yybegin(YYINITIAL); return XPathTokenTypes.MINUS; - } - // fall through - case 86: break; - case 7: - { yybegin(YYINITIAL); return XPathTokenTypes.COL; - } - // fall through - case 87: break; - case 8: + case 3: { yybegin(S1); return XPathTokenTypes.STRING_LITERAL; - } - // fall through - case 88: break; - case 9: - { yybegin(YYINITIAL); return XPathTokenTypes.PLUS; - } - // fall through - case 89: break; - case 10: - { yybegin(YYINITIAL); return XPathTokenTypes.LPAREN; - } - // fall through - case 90: break; - case 11: - { yybegin(S1); return XPathTokenTypes.RPAREN; - } - // fall through - case 91: break; - case 12: + } + // fall through + case 83: break; + case 4: { yybegin(VAR); return XPathTokenTypes.DOLLAR; - } - // fall through - case 92: break; - case 13: - { yybegin(YYINITIAL); return XPathTokenTypes.LT; - } - // fall through - case 93: break; - case 14: - { yybegin(YYINITIAL); return XPathTokenTypes.GT; - } - // fall through - case 94: break; - case 15: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.QUEST; } else { return XPathTokenTypes.BAD_CHARACTER; } - } - // fall through - case 95: break; - case 16: + } + // fall through + case 84: break; + case 5: + { yybegin(YYINITIAL); return XPathTokenTypes.LPAREN; + } + // fall through + case 85: break; + case 6: + { yybegin(S1); return XPathTokenTypes.RPAREN; + } + // fall through + case 86: break; + case 7: { yybegin(S1); return XPathTokenTypes.STAR; - } - // fall through - case 96: break; - case 17: - { yybegin(YYINITIAL); return XPathTokenTypes.AT; - } - // fall through - case 97: break; - case 18: + } + // fall through + case 87: break; + case 8: + { yybegin(YYINITIAL); return XPathTokenTypes.PLUS; + } + // fall through + case 88: break; + case 9: { yybegin(YYINITIAL); return XPathTokenTypes.COMMA; - } - // fall through - case 98: break; - case 19: + } + // fall through + case 89: break; + case 10: + { yybegin(YYINITIAL); return XPathTokenTypes.MINUS; + } + // fall through + case 90: break; + case 11: + { yybegin(S1); return XPathTokenTypes.DOT; + } + // fall through + case 91: break; + case 12: { yybegin(YYINITIAL); return XPathTokenTypes.PATH; - } - // fall through - case 99: break; - case 20: - { yybegin(YYINITIAL); return XPathTokenTypes.UNION; - } - // fall through - case 100: break; - case 21: + } + // fall through + case 92: break; + case 13: + { yybegin(S1); return XPathTokenTypes.NUMBER; + } + // fall through + case 93: break; + case 14: + { yybegin(YYINITIAL); return XPathTokenTypes.COL; + } + // fall through + case 94: break; + case 15: + { yybegin(YYINITIAL); return XPathTokenTypes.LT; + } + // fall through + case 95: break; + case 16: { yybegin(YYINITIAL); return XPathTokenTypes.EQ; - } - // fall through - case 101: break; - case 22: + } + // fall through + case 96: break; + case 17: + { yybegin(YYINITIAL); return XPathTokenTypes.GT; + } + // fall through + case 97: break; + case 18: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.QUEST; } else { return XPathTokenTypes.BAD_CHARACTER; } + } + // fall through + case 98: break; + case 19: + { yybegin(YYINITIAL); return XPathTokenTypes.AT; + } + // fall through + case 99: break; + case 20: + { yybegin(S1); return XPathTokenTypes.NCNAME; + } + // fall through + case 100: break; + case 21: { yybegin(YYINITIAL); return XPathTokenTypes.LBRACKET; - } - // fall through - case 102: break; - case 23: + } + // fall through + case 101: break; + case 22: { yybegin(S1); return XPathTokenTypes.RBRACKET; - } - // fall through - case 103: break; - case 24: + } + // fall through + case 102: break; + case 23: { return XPathTokenTypes.LBRACE; - } - // fall through + } + // fall through + case 103: break; + case 24: + { yybegin(YYINITIAL); return XPathTokenTypes.UNION; + } + // fall through case 104: break; - case 25: + case 25: { return XPathTokenTypes.RBRACE; - } - // fall through + } + // fall through case 105: break; - case 26: + case 26: { yybegin(YYINITIAL); return XPathTokenTypes.MULT; - } - // fall through + } + // fall through case 106: break; - case 27: - { yybegin(S1); return XPathTokenTypes.VARIABLE_NAME; - } - // fall through - case 107: break; - case 28: + case 27: { return XPathTokenTypes.COL; - } - // fall through + } + // fall through + case 107: break; + case 28: + { yybegin(S1); return XPathTokenTypes.VARIABLE_NAME; + } + // fall through case 108: break; - case 29: - { return XPathTokenTypes.NCNAME; - } - // fall through - case 109: break; - case 30: - { yybegin(S1); return XPathTokenTypes.PLUS; - } - // fall through - case 110: break; - case 31: + case 29: { return XPathTokenTypes.LPAREN; - } - // fall through - case 111: break; - case 32: + } + // fall through + case 109: break; + case 30: { return XPathTokenTypes.RPAREN; - } - // fall through - case 112: break; - case 33: - { yybegin(S1); return XPath2TokenTypes.QUEST; - } - // fall through - case 113: break; - case 34: + } + // fall through + case 110: break; + case 31: { yybegin(S1); return XPathTokenTypes.STAR; - } - // fall through + } + // fall through + case 111: break; + case 32: + { yybegin(S1); return XPathTokenTypes.PLUS; + } + // fall through + case 112: break; + case 33: + { yybegin(S1); return XPath2TokenTypes.QUEST; + } + // fall through + case 113: break; + case 34: + { return XPathTokenTypes.NCNAME; + } + // fall through case 114: break; - case 35: - { yybegin(S1); return XPathTokenTypes.DOTDOT; - } - // fall through - case 115: break; - case 36: - { yybegin(YYINITIAL); return XPathTokenTypes.COLCOL; - } - // fall through - case 116: break; - case 37: - { if (allowXPath2Syntax) { return XPath2TokenTypes.END_COMMENT; } else { yypushback(1); return XPathTokenTypes.COL; } - } - // fall through - case 117: break; - case 38: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WNE; } else { return ncName(); } - } - // fall through - case 118: break; - case 39: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WEQ; } else { return ncName(); } - } - // fall through - case 119: break; - case 40: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WLE; } else { return ncName(); } - } - // fall through - case 120: break; - case 41: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WLT; } else { return ncName(); } - } - // fall through - case 121: break; - case 42: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.IS; } else { return ncName(); } - } - // fall through - case 122: break; - case 43: - { if (allowXPath2Syntax) { return XPath2TokenTypes.IF; } else { return ncName(); } - } - // fall through - case 123: break; - case 44: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WGE; } else { return ncName(); } - } - // fall through - case 124: break; - case 45: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WGT; } else { return ncName(); } - } - // fall through - case 125: break; - case 46: - { if (allowXPath2Syntax) { readComment(); return XPath2TokenTypes.COMMENT; } else { yypushback(1); return XPathTokenTypes.LPAREN; } - } - // fall through - case 126: break; - case 47: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.BEFORE; } else { yypushback(1); return XPathTokenTypes.LT; } - } - // fall through - case 127: break; - case 48: - { yybegin(YYINITIAL); return XPathTokenTypes.LE; - } - // fall through - case 128: break; - case 49: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.AFTER; } else { yypushback(1); return XPathTokenTypes.GT; } - } - // fall through - case 129: break; - case 50: - { yybegin(YYINITIAL); return XPathTokenTypes.GE; - } - // fall through - case 130: break; - case 51: - { yybegin(YYINITIAL); return XPathTokenTypes.ANY_PATH; - } - // fall through - case 131: break; - case 52: + case 35: { yybegin(YYINITIAL); return XPathTokenTypes.NE; - } - // fall through + } + // fall through + case 115: break; + case 36: + { if (allowXPath2Syntax) { readComment(); return XPath2TokenTypes.COMMENT; } else { yypushback(1); return XPathTokenTypes.LPAREN; } + } + // fall through + case 116: break; + case 37: + { yybegin(S1); return XPathTokenTypes.DOTDOT; + } + // fall through + case 117: break; + case 38: + { yybegin(YYINITIAL); return XPathTokenTypes.ANY_PATH; + } + // fall through + case 118: break; + case 39: + { if (allowXPath2Syntax) { return XPath2TokenTypes.END_COMMENT; } else { yypushback(1); return XPathTokenTypes.COL; } + } + // fall through + case 119: break; + case 40: + { yybegin(YYINITIAL); return XPathTokenTypes.COLCOL; + } + // fall through + case 120: break; + case 41: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.BEFORE; } else { yypushback(1); return XPathTokenTypes.LT; } + } + // fall through + case 121: break; + case 42: + { yybegin(YYINITIAL); return XPathTokenTypes.LE; + } + // fall through + case 122: break; + case 43: + { yybegin(YYINITIAL); return XPathTokenTypes.GE; + } + // fall through + case 123: break; + case 44: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.AFTER; } else { yypushback(1); return XPathTokenTypes.GT; } + } + // fall through + case 124: break; + case 45: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WEQ; } else { return ncName(); } + } + // fall through + case 125: break; + case 46: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WGE; } else { return ncName(); } + } + // fall through + case 126: break; + case 47: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WGT; } else { return ncName(); } + } + // fall through + case 127: break; + case 48: + { if (allowXPath2Syntax) { return XPath2TokenTypes.IF; } else { return ncName(); } + } + // fall through + case 128: break; + case 49: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.IS; } else { return ncName(); } + } + // fall through + case 129: break; + case 50: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WLE; } else { return ncName(); } + } + // fall through + case 130: break; + case 51: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WLT; } else { return ncName(); } + } + // fall through + case 131: break; + case 52: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.WNE; } else { return ncName(); } + } + // fall through case 132: break; - case 53: + case 53: { if (allowXPath2Syntax) { yybegin(TYPE); return XPath2TokenTypes.AS; } else { return ncName(); } - } - // fall through + } + // fall through case 133: break; - case 54: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.TO; } else { return ncName(); } - } - // fall through - case 134: break; - case 55: - { yybegin(YYINITIAL); return XPathTokenTypes.OR; - } - // fall through - case 135: break; - case 56: - { if (allowXPath2Syntax) { yybegin(TYPE); return XPath2TokenTypes.OF; } else { return ncName(); } - } - // fall through - case 136: break; - case 57: + case 54: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.IN; } else { return ncName(); } - } - // fall through + } + // fall through + case 134: break; + case 55: + { if (allowXPath2Syntax) { yybegin(TYPE); return XPath2TokenTypes.OF; } else { return ncName(); } + } + // fall through + case 135: break; + case 56: + { yybegin(YYINITIAL); return XPathTokenTypes.OR; + } + // fall through + case 136: break; + case 57: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.TO; } else { return ncName(); } + } + // fall through case 137: break; - case 58: + case 58: // general lookahead, find correct zzMarkedPos { int zzFState = 4; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1495,125 +1544,125 @@ abstract class _XPathLexer implements FlexLexer { zzFState = 5; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return XPathTokenTypes.VARIABLE_PREFIX; - } - // fall through + } + // fall through case 138: break; - case 59: + case 59: { if (allowXPath2Syntax) { return XPath2TokenTypes.FOR; } else { return ncName(); } - } - // fall through + } + // fall through case 139: break; - case 60: + case 60: { yybegin(YYINITIAL); return XPathTokenTypes.AND; - } - // fall through + } + // fall through case 140: break; - case 61: + case 61: { yybegin(YYINITIAL); return XPathTokenTypes.DIV; - } - // fall through + } + // fall through case 141: break; - case 62: + case 62: { yybegin(YYINITIAL); return XPathTokenTypes.MOD; - } - // fall through + } + // fall through case 142: break; - case 63: + case 63: { yybegin(S1); return XPathTokenTypes.NODE_TYPE; - } - // fall through + } + // fall through case 143: break; - case 64: + case 64: { yybegin(S1); return XPathTokenTypes.AXIS_NAME; - } - // fall through + } + // fall through case 144: break; - case 65: + case 65: { if (allowXPath2Syntax) { return XPath2TokenTypes.SOME; } else { return ncName(); } - } - // fall through + } + // fall through case 145: break; - case 66: + case 66: { if (allowXPath2Syntax) { return XPath2TokenTypes.CAST; } else { return ncName(); } - } - // fall through + } + // fall through case 146: break; - case 67: + case 67: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.ELSE; } else { return ncName(); } - } - // fall through + } + // fall through case 147: break; - case 68: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.THEN; } else { return ncName(); } - } - // fall through - case 148: break; - case 69: + case 68: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.IDIV; } else { return ncName(); } - } - // fall through + } + // fall through + case 148: break; + case 69: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.THEN; } else { return ncName(); } + } + // fall through case 149: break; - case 70: + case 70: { return XPath2TokenTypes.ITEM; - } - // fall through + } + // fall through case 150: break; - case 71: + case 71: { if (allowXPath2Syntax) { return XPath2TokenTypes.EVERY; } else { return ncName(); } - } - // fall through + } + // fall through case 151: break; - case 72: + case 72: { if (allowXPath2Syntax) { return XPath2TokenTypes.TREAT; } else { return ncName(); } - } - // fall through + } + // fall through case 152: break; - case 73: + case 73: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.UNION; } else { return ncName(); } - } - // fall through + } + // fall through case 153: break; - case 74: + case 74: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.EXCEPT; } else { return ncName(); } - } - // fall through + } + // fall through case 154: break; - case 75: + case 75: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.RETURN; } else { return ncName(); } - } - // fall through + } + // fall through case 155: break; - case 76: + case 76: { if (allowXPath2Syntax) { return XPath2TokenTypes.CASTABLE; } else { return ncName(); } - } - // fall through + } + // fall through case 156: break; - case 77: + case 77: { if (allowXPath2Syntax) { return XPath2TokenTypes.INSTANCE; } else { return ncName(); } - } - // fall through + } + // fall through case 157: break; - case 78: - { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.SATISFIES; } else { return ncName(); } - } - // fall through - case 158: break; - case 79: + case 78: { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.INTERSECT; } else { return ncName(); } - } - // fall through + } + // fall through + case 158: break; + case 79: + { if (allowXPath2Syntax) { yybegin(YYINITIAL); return XPath2TokenTypes.SATISFIES; } else { return ncName(); } + } + // fall through case 159: break; - case 80: + case 80: { yybegin(YYINITIAL); return XPath2TokenTypes.EMPTY_SEQUENCE; - } - // fall through + } + // fall through case 160: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/plugins/yaml/gen/org/jetbrains/yaml/lexer/_YAMLLexer.java b/plugins/yaml/gen/org/jetbrains/yaml/lexer/_YAMLLexer.java index e812fe42f52b..650a0c7e7e52 100644 --- a/plugins/yaml/gen/org/jetbrains/yaml/lexer/_YAMLLexer.java +++ b/plugins/yaml/gen/org/jetbrains/yaml/lexer/_YAMLLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: yaml.flex package org.jetbrains.yaml.lexer; @@ -8,11 +9,6 @@ import org.jetbrains.yaml.YAMLTokenTypes; /* Auto generated File */ -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file yaml.flex - */ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { /** This character denotes the end of file */ @@ -39,66 +35,112 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8 }; - /** - * Translates characters to character classes - * Chosen bits are [10, 6, 5] - * Total runtime size is 4224 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>11]<<6)|((ch>>5)&0x3f)]<<5)|(ch&0x1f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\5\u0100\1\u0200\1\u0300\1\u0100\5\u0400\1\u0500\1\u0600"+ + "\1\u0700\5\u0100\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00"+ + "\1\u0e00\3\u0100\1\u0f00\17\u0100\1\u1000\165\u0100\1\u0600\1\u0100"+ + "\1\u1100\1\u1200\1\u1300\1\u1400\123\u0100\1\u0a00\4\u0100\1\u1500"+ + "\10\u0100\1\u1600\2\u0100\1\u1700\1\u1800\1\u1400\1\u0100\1\u0500"+ + "\1\u0100\1\u1900\1\u1600\1\u0900\3\u0100\1\u1300\1\u1a00\114\u0100"+ + "\1\u1b00\1\u1300\153\u0100\1\u1c00\11\u0100\1\u1d00\1\u1400\6\u0100"+ + "\1\u1300\u0f16\u0100"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 544 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\15\5\1\7\1\10\11\5\1\11\1\12\1\5\1\13\1\14\11"+ - "\5\1\15\14\5\1\16\2\5\1\17\u01e2\5"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 1024 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\55\6\1\7\3\6\1\10\6\6\1\7\14\6\1\11\3\6\1\11\3\6"+ - "\1\11\3\6\1\11\3\6\1\11\3\6\1\11\3\6\1\11\3\6\1\11\3\6\1\11\3\6\1\11\2\6\1"+ - "\10\3\6\1\10\2\6\1\7\10\6\1\7\1\6\1\10\57\6\1\5\12\6\1\7\1\10\11\6\1\11\3"+ - "\6\1\10\5\6\1\12\5\6\1\10\2\6\1\10\4\6\1\12\35\6\1\13\1\14\1\15\175\6\1\5"+ - "\160\6\1\7\24\6\1\10\1\6\1\7\5\6\2\10\2\6\1\10\14\6\1\10\130\6\1\10\54\6\1"+ - "\7\35\6\1\11\3\6\1\10\1\6\1\16\4\6\1\10\10\6\1\10\12\6\1\10\3\6\1\10\13\6"+ - "\1\10\3\6\1\7\2\6\1\10\15\6\1\7\32\6\1\10\60\6\1\7\6\6\1\10\143\6\1\17\1\20"+ - "\12\6\1\10\65\6"); - /* The ZZ_CMAP_A table has 544 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\10\1\7\2\32\1\1\22\0\1\13\1\30\1\21\1\6\1\26\1\17\1\35\1\22\2\26\1"+ - "\36\1\33\1\3\1\12\1\34\1\26\12\24\1\5\1\26\1\31\1\26\1\14\1\4\1\27\6\23\24"+ - "\25\1\37\1\20\1\11\1\0\1\26\1\2\6\23\24\25\1\15\1\40\1\16\1\26\6\0\1\32\32"+ - "\0\1\32\77\0\12\24\46\0\12\24\14\0\12\24\20\0\12\24\6\0\12\24\6\0\13\32\35"+ - "\0\2\32\5\0\1\32\57\0\1\32\26\0\12\24\16\0\62\24"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\2\3\1\4\22\0\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\2\11\1\15"+ + "\1\16\1\17\1\20\1\21\1\11\12\22\1\23\1\11"+ + "\1\24\1\11\1\25\1\26\1\27\6\30\24\31\1\32"+ + "\1\33\1\34\1\0\1\11\1\35\6\30\24\31\1\36"+ + "\1\37\1\40\1\11\6\0\1\3\32\0\1\3\u01bf\0"+ + "\12\22\206\0\12\22\306\0\12\22\234\0\12\22\166\0"+ + "\12\22\140\0\12\22\166\0\12\22\106\0\12\22\u0116\0"+ + "\12\22\106\0\12\22\346\0\1\3\u015f\0\12\22\46\0"+ + "\12\22\u012c\0\12\22\200\0\12\22\246\0\12\22\6\0"+ + "\12\22\266\0\12\22\126\0\12\22\206\0\12\22\6\0"+ + "\12\22\246\0\13\3\35\0\2\3\5\0\1\3\57\0"+ + "\1\3\240\0\1\3\u01cf\0\12\22\46\0\12\22\306\0"+ + "\12\22\26\0\12\22\126\0\12\22\u0196\0\12\22\246\0"+ + "\12\22\206\0\12\22\u012c\0\12\22\200\0\12\22\74\0"+ + "\12\22\220\0\12\22\166\0\12\22\146\0\12\22\206\0"+ + "\12\22\106\0\12\22\266\0\12\22\u0164\0\62\22\100\0"+ + "\12\22\266\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[7680]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\20\0\1\1\1\2\2\1\1\3\1\4\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\1\4\1\13\1\14\1\15"+ - "\6\4\1\16\1\17\1\4\1\20\1\5\1\6\1\21"+ - "\1\4\1\14\4\4\1\22\1\23\2\4\1\24\1\25"+ - "\1\26\1\4\1\27\1\30\1\31\13\0\1\32\1\0"+ - "\2\33\2\13\5\0\1\34\2\0\1\35\1\0\2\36"+ - "\4\0\1\37\1\40\2\17\1\0\1\41\5\0\1\42"+ - "\7\0\2\4\3\0\1\4\1\0\1\43\16\0\1\44"+ - "\1\45\1\3\1\0\1\13\1\0\1\4\3\0\1\34"+ - "\1\46\1\0\1\35\3\0\1\17\1\4\3\0\1\4"+ - "\2\0\1\47\1\0\1\4\1\0\1\4\1\42\3\0"+ - "\3\4\1\0\1\50\2\0\2\4\7\0\1\51\1\4"+ - "\3\0\1\4\1\0\1\4\2\0\1\52\1\4\4\0"+ - "\1\4\2\0\2\4\1\0\3\47\1\0\1\42\1\0"+ - "\1\50\1\0\1\4\1\0\2\4\1\0\1\53\1\0"+ - "\1\4\3\0\3\4\2\0\2\4\1\47\2\4\1\0"; + "\20\0\1\1\1\2\2\1\1\3\1\4\1\5\3\6"+ + "\1\7\5\6\1\10\1\11\1\12\1\13\1\14\1\15"+ + "\1\16\1\17\1\6\1\20\1\6\1\21\1\6\1\10"+ + "\1\12\1\15\1\6\1\22\4\6\1\23\1\24\1\25"+ + "\1\26\1\6\1\27\1\30\1\31\14\0\1\32\2\33"+ + "\7\0\1\34\2\0\1\35\2\0\1\36\1\37\2\40"+ + "\2\11\1\0\2\16\2\0\1\41\5\0\1\42\4\0"+ + "\1\6\1\0\1\6\2\0\1\6\3\0\1\43\16\0"+ + "\1\44\1\45\1\0\1\3\3\0\1\34\2\0\1\46"+ + "\1\6\2\0\1\36\1\11\1\0\1\16\1\6\2\0"+ + "\1\6\4\0\1\47\1\0\1\6\4\0\1\50\3\6"+ + "\2\0\3\6\1\0\1\42\6\0\1\51\3\0\2\6"+ + "\1\0\1\6\2\0\1\52\2\0\1\6\1\0\1\6"+ + "\1\0\1\6\2\0\1\6\1\50\3\0\1\42\3\47"+ + "\2\0\1\6\1\0\2\6\1\53\2\6\5\0\1\6"+ + "\1\0\1\6\1\47\4\6\1\0"; private static int [] zzUnpackAction() { int [] result = new int[238]; @@ -120,7 +162,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -128,34 +170,34 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\41\0\102\0\143\0\204\0\245\0\306\0\347"+ "\0\u0108\0\u0129\0\u014a\0\u016b\0\u018c\0\u01ad\0\u01ce\0\u01ef"+ - "\0\u0210\0\u0231\0\u0252\0\u0273\0\u0294\0\u0210\0\u02b5\0\u02b5"+ - "\0\u02d6\0\u0210\0\u02f7\0\u0210\0\u0318\0\u0339\0\u035a\0\u0210"+ - "\0\u037b\0\u039c\0\u03bd\0\u03de\0\u03ff\0\u0420\0\u0210\0\u0441"+ - "\0\u0462\0\u0210\0\u0483\0\u0483\0\u04a4\0\u04c5\0\u04e6\0\u0507"+ - "\0\u0528\0\u0549\0\u056a\0\u058b\0\u0210\0\u05ac\0\u05cd\0\u05ee"+ - "\0\u060f\0\u0210\0\u0630\0\u0210\0\u0651\0\u0672\0\u0693\0\u0210"+ - "\0\u06b4\0\u06d5\0\u06f6\0\u0717\0\u0738\0\u0759\0\u077a\0\u079b"+ - "\0\u07bc\0\u07dd\0\u07fe\0\u0210\0\u081f\0\u0840\0\u0861\0\u0882"+ - "\0\u08a3\0\u039c\0\u08c4\0\u08e5\0\u0906\0\u03bd\0\u0927\0\u0948"+ - "\0\u0969\0\u0210\0\u098a\0\u09ab\0\u09cc\0\u09ed\0\u0a0e\0\u03ff"+ - "\0\u0420\0\u0a2f\0\u0a50\0\u0a71\0\u0a92\0\u0ab3\0\u0ad4\0\u0af5"+ + "\0\u0210\0\u0231\0\u0252\0\u0273\0\u0294\0\u02b5\0\u0210\0\u0210"+ + "\0\u02d6\0\u02f7\0\u0318\0\u0339\0\u035a\0\u037b\0\u039c\0\u03bd"+ + "\0\u03de\0\u03ff\0\u03de\0\u0210\0\u0210\0\u0420\0\u0441\0\u0210"+ + "\0\u0462\0\u0483\0\u04a4\0\u0210\0\u04c5\0\u04e6\0\u04e6\0\u0507"+ + "\0\u0528\0\u0210\0\u0549\0\u056a\0\u058b\0\u05ac\0\u05cd\0\u05ee"+ + "\0\u060f\0\u0210\0\u0630\0\u0210\0\u0651\0\u0672\0\u0693\0\u06b4"+ + "\0\u0210\0\u06d5\0\u06f6\0\u0717\0\u0738\0\u0759\0\u077a\0\u079b"+ + "\0\u07bc\0\u07dd\0\u07fe\0\u081f\0\u0210\0\u0840\0\u0861\0\u0882"+ + "\0\u08a3\0\u08c4\0\u02f7\0\u08e5\0\u0906\0\u0927\0\u0948\0\u035a"+ + "\0\u037b\0\u0969\0\u098a\0\u039c\0\u09ab\0\u0210\0\u09cc\0\u09ed"+ + "\0\u0a0e\0\u0a2f\0\u0a50\0\u0a71\0\u0a92\0\u0ab3\0\u0ad4\0\u0af5"+ "\0\u0b16\0\u0b37\0\u0b58\0\u0b79\0\u0b9a\0\u0bbb\0\u0bdc\0\u0bfd"+ "\0\u0c1e\0\u0c3f\0\u0c60\0\u0c81\0\u0ca2\0\u0cc3\0\u0ce4\0\u0d05"+ - "\0\u0d26\0\u0210\0\u0672\0\u0d47\0\u0d68\0\u0d89\0\u0d47\0\u0daa"+ - "\0\u0dcb\0\u0210\0\u0dec\0\u0e0d\0\u0e2e\0\u0e4f\0\u0e70\0\u0e91"+ - "\0\u0eb2\0\u0eb2\0\u07fe\0\u0ed3\0\u0210\0\u0ef4\0\u0f15\0\u0f36"+ - "\0\u0f57\0\u0f78\0\u0210\0\u0210\0\u0906\0\u0f99\0\u0fba\0\u0fdb"+ - "\0\u0ffc\0\u0210\0\u0ab3\0\u101d\0\u103e\0\u105f\0\u1080\0\u10a1"+ - "\0\u10c2\0\u0b79\0\u10e3\0\u0bbb\0\u1104\0\u1125\0\u1146\0\u1167"+ - "\0\u1188\0\u11a9\0\u0c3f\0\u11ca\0\u11eb\0\u120c\0\u0b9a\0\u11eb"+ - "\0\u122d\0\u0ce4\0\u124e\0\u126f\0\u1290\0\u12b1\0\u12d2\0\u0e2e"+ - "\0\u12f3\0\u0e91\0\u0210\0\u1314\0\u1335\0\u1356\0\u1377\0\u1398"+ + "\0\u0d26\0\u0210\0\u0672\0\u0d47\0\u0d47\0\u0d68\0\u0d89\0\u0daa"+ + "\0\u0210\0\u0dcb\0\u0dec\0\u0e0d\0\u0e2e\0\u0e4f\0\u0e70\0\u0e91"+ + "\0\u0eb2\0\u0eb2\0\u0ed3\0\u07dd\0\u0ef4\0\u0f15\0\u0f36\0\u0210"+ + "\0\u0f57\0\u0906\0\u0210\0\u0f78\0\u0f99\0\u0fba\0\u0fdb\0\u0210"+ + "\0\u0ffc\0\u0210\0\u0a71\0\u101d\0\u103e\0\u105f\0\u1080\0\u10a1"+ + "\0\u10c2\0\u10e3\0\u0b58\0\u1104\0\u0b9a\0\u1125\0\u1146\0\u1167"+ + "\0\u1188\0\u0bbb\0\u0bdc\0\u1188\0\u11a9\0\u11ca\0\u11eb\0\u0c81"+ + "\0\u120c\0\u122d\0\u124e\0\u126f\0\u1290\0\u12b1\0\u12d2\0\u12f3"+ + "\0\u0e0d\0\u0e4f\0\u0210\0\u1314\0\u1335\0\u1356\0\u1377\0\u1398"+ "\0\u13b9\0\u13da\0\u13fb\0\u141c\0\u143d\0\u145e\0\u147f\0\u14a0"+ - "\0\u14c1\0\u14e2\0\u1503\0\u1524\0\u1545\0\u1566\0\u0b79\0\u1587"+ - "\0\u15a8\0\u15c9\0\u15ea\0\u160b\0\u162c\0\u164d\0\u0210\0\u166e"+ - "\0\u168f\0\u16b0\0\u16d1\0\u16f2\0\u1713\0\u0210\0\u1734\0\u1755"+ - "\0\u1776\0\u1797\0\u17b8\0\u17d9\0\u1524\0\u17fa\0\u181b\0\u17fa"+ - "\0\u183c\0\u185d\0\u1167\0\u13b9\0\u15a8\0\u15ea"; + "\0\u14c1\0\u14e2\0\u1503\0\u1524\0\u1545\0\u1566\0\u0b58\0\u0210"+ + "\0\u1587\0\u15a8\0\u15c9\0\u15ea\0\u160b\0\u162c\0\u164d\0\u166e"+ + "\0\u168f\0\u16b0\0\u16d1\0\u16f2\0\u1713\0\u0210\0\u145e\0\u1734"+ + "\0\u1734\0\u1755\0\u1776\0\u1797\0\u17b8\0\u17d9\0\u17fa\0\u181b"+ + "\0\u124e\0\u183c\0\u185d\0\u1356\0\u160b\0\u162c"; private static int [] zzUnpackRowMap() { int [] result = new int[238]; @@ -167,7 +209,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -175,243 +217,268 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\10\21\1\22\1\21\1\23\1\22\20\21\1\24\4\21"+ - "\1\25\3\26\1\27\1\30\1\31\1\32\1\33\1\34"+ - "\1\35\1\33\1\36\1\37\1\40\1\41\1\25\1\42"+ - "\1\43\4\25\1\26\1\44\4\25\1\45\1\46\1\47"+ - "\1\50\1\51\2\26\1\52\1\53\1\54\1\31\1\55"+ - "\1\33\1\34\1\56\1\33\1\36\1\57\1\40\1\60"+ - "\1\51\1\42\1\43\4\51\1\26\1\44\4\51\1\45"+ - "\1\46\1\47\1\50\1\61\1\26\2\62\1\63\1\64"+ - "\1\31\1\65\1\33\1\62\1\63\1\33\4\62\1\61"+ - "\1\66\1\67\4\61\2\62\4\61\4\62\1\70\1\26"+ - "\1\70\1\26\1\70\1\26\1\70\3\26\1\70\1\26"+ - "\1\70\2\26\13\70\1\26\4\70\1\26\1\70\1\71"+ - "\1\26\1\71\1\26\1\71\1\26\1\71\3\26\1\71"+ - "\1\26\1\71\2\26\13\71\1\26\4\71\1\26\1\71"+ - "\5\26\1\72\2\26\1\33\2\26\1\33\25\26\6\73"+ - "\1\31\1\74\1\33\2\73\1\33\25\73\7\75\1\76"+ - "\1\33\2\75\1\33\25\75\30\0\1\77\17\0\1\100"+ - "\1\101\2\0\1\101\46\0\1\102\1\103\23\0\1\101"+ - "\33\0\1\104\3\0\2\105\4\0\1\105\5\0\1\104"+ - "\2\0\4\104\2\0\4\104\4\0\1\106\3\0\2\107"+ - "\4\0\1\107\5\0\1\106\2\0\4\106\2\0\4\106"+ - "\4\0\1\15\1\0\5\15\2\0\2\15\1\0\25\15"+ - "\51\0\1\22\2\0\1\22\37\0\1\110\62\0\1\111"+ - "\4\0\1\25\1\0\3\25\1\112\1\25\1\0\1\113"+ - "\2\25\1\113\26\25\1\0\5\25\2\0\2\25\1\0"+ - "\25\25\7\31\1\0\31\31\10\0\1\33\2\0\1\33"+ - "\25\0\1\25\1\0\5\25\1\114\1\115\2\25\1\115"+ - "\25\25\12\0\1\116\11\0\1\117\6\0\1\116\22\0"+ - "\1\120\40\0\1\121\23\0\7\122\1\123\10\122\1\124"+ - "\1\125\17\122\7\126\1\127\12\126\1\130\16\126\4\0"+ - "\3\131\1\132\1\133\1\0\1\134\1\133\3\0\1\135"+ - "\2\0\1\131\3\134\2\131\1\136\1\137\1\0\4\131"+ - "\2\0\1\140\1\0\1\140\1\0\1\140\1\0\1\140"+ - "\3\0\1\140\1\0\1\140\2\0\13\140\1\0\4\140"+ - "\1\0\1\140\1\141\1\0\1\141\1\0\1\141\1\0"+ - "\1\141\3\0\1\141\1\0\1\141\2\0\13\141\1\0"+ - "\4\141\1\0\1\141\12\0\1\142\11\0\1\143\6\0"+ - "\1\142\5\0\1\51\1\0\1\51\1\144\1\51\1\145"+ - "\1\51\1\0\1\146\1\144\1\51\1\146\1\51\2\144"+ - "\20\51\1\144\2\51\1\0\1\51\1\0\3\51\3\0"+ - "\1\51\1\0\1\51\2\0\20\51\1\0\1\51\12\0"+ - "\1\147\21\0\1\150\4\0\1\51\1\0\1\51\1\0"+ - "\3\51\1\114\1\115\1\0\1\51\1\115\1\51\2\0"+ - "\20\51\1\0\1\51\15\0\1\151\40\0\1\152\23\0"+ - "\1\61\1\0\3\61\1\153\1\61\1\0\1\154\2\61"+ - "\1\154\25\61\1\62\1\0\3\62\1\155\1\62\1\0"+ - "\1\156\2\62\1\156\25\62\1\61\1\0\3\61\1\157"+ - "\1\61\1\0\1\156\2\61\1\156\26\61\1\0\5\61"+ - "\2\0\2\61\1\0\25\61\1\66\1\160\3\66\1\161"+ - "\1\66\1\0\1\162\2\66\1\162\4\66\1\163\1\164"+ - "\17\66\1\67\1\165\3\67\1\166\1\67\1\0\1\167"+ - "\2\67\1\167\6\67\1\170\16\67\1\70\1\0\1\70"+ - "\1\0\1\70\1\0\1\70\3\0\1\70\1\0\1\70"+ - "\2\0\13\70\1\0\4\70\1\0\1\70\1\71\1\0"+ - "\1\71\1\0\1\71\1\0\1\71\3\0\1\71\1\0"+ - "\1\71\2\0\13\71\1\0\4\71\1\0\1\71\7\73"+ - "\1\0\1\171\2\73\1\171\25\73\7\75\1\0\31\75"+ - "\1\172\1\0\5\172\1\0\1\173\2\172\1\173\25\172"+ - "\4\0\3\174\3\0\1\175\4\0\1\176\2\0\1\174"+ - "\3\175\2\174\1\177\1\200\1\0\4\174\12\0\1\101"+ - "\2\0\1\101\25\0\7\102\1\0\10\102\1\201\1\202"+ - "\17\102\7\103\1\0\12\103\1\203\16\103\1\104\1\0"+ - "\3\104\1\204\1\104\1\0\1\205\2\104\1\205\26\104"+ - "\1\0\5\104\2\0\2\104\1\0\25\104\1\106\1\0"+ - "\1\106\1\206\1\106\1\207\1\106\1\0\1\210\1\206"+ - "\1\106\1\210\1\106\2\206\20\106\1\206\2\106\1\0"+ - "\1\106\1\0\3\106\3\0\1\106\1\0\1\106\2\0"+ - "\20\106\1\0\1\106\12\0\1\211\62\0\1\212\4\0"+ - "\1\213\1\0\5\213\2\0\2\213\1\0\25\213\1\25"+ - "\1\0\3\25\1\112\1\214\1\0\1\113\2\25\1\113"+ - "\25\25\10\0\1\115\2\0\1\115\51\0\1\116\26\0"+ - "\1\215\11\0\1\117\6\0\1\215\5\0\6\216\2\0"+ - "\1\216\3\0\1\216\2\0\20\216\1\0\1\216\1\217"+ - "\3\121\2\220\1\121\1\0\2\121\1\220\3\121\1\221"+ - "\1\121\1\217\2\121\4\217\2\121\4\217\4\121\20\123"+ - "\1\222\1\223\17\123\7\122\1\123\31\122\5\0\1\224"+ - "\2\0\1\225\2\0\1\225\25\0\22\127\1\226\16\127"+ - "\5\0\1\224\2\0\1\225\2\0\1\225\6\0\1\126"+ - "\22\0\3\131\1\132\1\133\1\0\1\131\1\133\3\0"+ - "\1\135\2\0\6\131\3\0\4\131\12\0\1\133\2\0"+ - "\1\133\31\0\3\131\1\132\1\133\1\0\1\134\1\133"+ - "\3\0\1\135\2\0\1\131\3\134\2\131\1\136\2\0"+ - "\4\131\25\0\2\227\20\0\3\131\3\0\1\131\4\0"+ - "\1\135\2\0\6\131\3\0\4\131\5\0\4\230\2\0"+ - "\2\230\4\0\1\231\2\0\7\230\2\0\5\230\25\0"+ - "\1\142\26\0\1\232\11\0\1\143\6\0\1\232\13\0"+ - "\1\233\32\0\1\233\1\0\1\233\1\0\3\233\3\0"+ - "\1\233\1\0\1\233\2\0\20\233\1\0\1\233\1\51"+ - "\1\0\1\51\1\144\1\51\1\145\1\144\1\0\1\146"+ - "\1\144\1\51\1\146\1\51\2\144\20\51\1\144\1\51"+ - "\12\0\1\234\62\0\1\235\4\0\6\236\2\0\1\236"+ - "\3\0\1\236\2\0\20\236\1\0\1\236\1\237\3\152"+ - "\2\240\1\152\1\0\2\152\1\240\3\152\1\241\1\152"+ - "\1\237\2\152\4\237\2\152\4\237\4\152\1\242\1\0"+ - "\5\242\2\0\2\242\1\0\25\242\1\61\1\0\3\61"+ - "\1\153\1\243\1\0\1\154\2\61\1\154\25\61\1\244"+ - "\1\0\5\244\2\0\2\244\1\0\25\244\1\62\1\0"+ - "\3\62\1\155\1\245\1\0\1\156\2\62\1\156\25\62"+ - "\1\246\1\0\3\246\1\247\1\246\1\0\1\250\2\246"+ - "\1\250\25\246\7\160\1\0\10\160\1\251\1\252\17\160"+ - "\1\253\1\160\5\253\1\0\1\160\2\253\1\160\4\253"+ - "\1\254\1\255\17\253\1\66\1\160\3\66\1\161\1\256"+ - "\1\0\1\162\2\66\1\162\4\66\1\163\1\164\20\66"+ - "\1\160\3\66\1\161\1\66\1\0\1\162\2\66\1\162"+ - "\25\66\1\62\1\0\3\62\1\257\1\62\1\0\1\260"+ - "\2\62\1\260\25\62\7\165\1\0\12\165\1\261\16\165"+ - "\1\262\1\165\5\262\1\0\1\165\2\262\1\165\6\262"+ - "\1\263\16\262\1\67\1\165\3\67\1\166\1\264\1\0"+ - "\1\167\2\67\1\167\6\67\1\170\16\67\1\62\1\0"+ - "\3\62\1\257\1\62\1\0\1\260\2\62\1\260\6\62"+ - "\1\67\16\62\6\73\2\0\1\171\2\73\1\171\25\73"+ - "\4\0\3\174\3\0\1\174\4\0\1\176\2\0\6\174"+ - "\3\0\4\174\6\0\3\174\3\0\1\175\4\0\1\176"+ - "\2\0\1\174\3\175\2\174\1\177\2\0\4\174\25\0"+ - "\2\265\17\0\4\266\2\0\2\266\4\0\1\267\2\0"+ - "\7\266\2\0\5\266\1\0\7\102\1\0\31\102\22\0"+ - "\1\103\16\0\1\270\1\0\5\270\2\0\2\270\1\0"+ - "\25\270\1\104\1\0\3\104\1\204\1\271\1\0\1\205"+ - "\2\104\1\205\25\104\6\0\1\272\32\0\1\272\1\0"+ - "\1\272\1\0\3\272\3\0\1\272\1\0\1\272\2\0"+ - "\20\272\1\0\1\272\1\106\1\0\1\106\1\206\1\106"+ - "\1\207\1\206\1\0\1\210\1\206\1\106\1\210\1\106"+ - "\2\206\20\106\1\206\1\106\1\273\1\0\5\273\2\0"+ - "\2\273\1\0\25\273\6\0\1\213\32\0\1\274\3\216"+ - "\1\275\1\276\2\0\1\216\1\0\1\275\1\216\2\0"+ - "\1\277\1\216\1\274\2\216\4\274\2\216\4\274\2\216"+ - "\1\0\1\216\1\217\1\121\2\217\1\300\1\220\1\217"+ - "\1\0\1\301\1\217\1\300\1\301\2\217\1\302\23\217"+ - "\1\121\2\217\2\300\1\217\1\0\1\121\1\217\1\300"+ - "\1\121\2\217\1\302\22\217\1\62\3\0\2\276\4\0"+ - "\1\276\5\0\1\62\2\0\4\62\2\0\4\62\4\0"+ - "\41\123\22\0\1\127\41\0\2\131\17\0\4\230\2\0"+ - "\2\230\1\0\1\303\2\0\1\231\2\0\7\230\2\0"+ - "\5\230\24\0\2\304\26\0\1\305\62\0\1\305\4\0"+ - "\1\306\3\236\1\307\1\310\2\0\1\236\1\0\1\307"+ - "\1\236\2\0\1\311\1\236\1\306\2\236\4\306\2\236"+ - "\4\306\2\236\1\0\1\236\1\237\1\152\1\237\1\312"+ - "\1\313\1\240\1\237\1\0\1\314\1\312\1\313\1\314"+ - "\1\237\1\312\1\315\20\237\1\312\2\237\1\152\1\237"+ - "\1\152\2\313\1\237\1\0\2\152\1\313\1\152\1\237"+ - "\1\152\1\241\20\237\1\152\1\237\1\316\3\0\2\310"+ - "\4\0\1\310\5\0\1\316\2\0\4\316\2\0\4\316"+ - "\12\0\1\317\40\0\1\244\32\0\1\61\1\0\3\61"+ - "\1\153\1\320\1\0\1\154\2\61\1\154\25\61\1\321"+ - "\1\0\3\321\1\322\1\323\1\0\1\156\2\321\1\156"+ - "\25\321\1\324\1\0\3\324\1\325\1\326\1\0\1\250"+ - "\2\324\1\250\25\324\7\160\1\0\31\160\5\0\1\327"+ - "\2\0\1\252\2\0\1\252\25\0\1\66\1\160\3\66"+ - "\1\161\1\256\1\0\1\162\2\66\1\162\25\66\1\62"+ - "\1\0\3\62\1\257\1\245\1\0\1\260\2\62\1\260"+ - "\25\62\6\160\1\253\1\0\10\160\1\251\1\252\17\160"+ - "\5\0\1\327\2\0\1\252\2\0\1\252\6\0\1\165"+ - "\16\0\1\62\1\0\3\62\1\257\1\245\1\0\1\260"+ - "\2\62\1\260\6\62\1\67\16\62\6\165\1\262\1\0"+ - "\12\165\1\261\16\165\23\0\2\174\17\0\4\266\2\0"+ - "\2\266\1\0\1\202\2\0\1\267\2\0\7\266\2\0"+ - "\5\266\24\0\2\330\22\0\1\270\32\0\1\274\1\216"+ - "\2\274\1\331\1\276\1\62\1\0\1\332\1\62\1\331"+ - "\1\332\2\62\1\333\20\274\1\62\2\274\1\216\2\274"+ - "\1\331\1\334\1\62\1\0\1\216\1\62\1\331\1\216"+ - "\2\62\1\333\20\274\1\62\1\274\1\62\1\0\5\62"+ - "\2\0\2\62\1\0\26\62\3\0\2\276\4\0\1\276"+ - "\3\0\1\221\1\0\1\62\2\0\4\62\2\0\4\62"+ - "\4\0\1\217\1\121\2\217\2\300\1\217\1\0\1\301"+ - "\1\217\1\300\1\301\2\217\1\302\23\217\1\121\2\217"+ - "\1\300\1\220\1\335\1\0\1\301\1\217\1\300\1\301"+ - "\2\217\1\302\22\217\1\62\1\0\2\62\1\334\1\276"+ - "\1\62\1\0\1\156\1\62\1\334\1\156\25\62\7\0"+ - "\1\132\1\133\2\0\1\133\50\0\2\230\14\0\1\336"+ - "\1\0\5\336\2\0\2\336\1\0\25\336\1\306\1\236"+ - "\1\306\1\337\1\340\1\310\1\316\1\0\1\341\1\342"+ - "\1\340\1\341\1\316\1\342\1\343\20\306\1\342\2\306"+ - "\1\236\1\306\1\236\1\340\1\344\1\316\1\0\1\236"+ - "\1\0\1\340\1\236\1\316\1\0\1\311\20\306\1\0"+ - "\1\306\1\316\1\0\1\316\1\0\3\316\3\0\1\316"+ - "\1\0\1\316\2\0\20\316\1\0\2\316\3\0\2\310"+ - "\4\0\1\310\3\0\1\241\1\0\1\316\2\0\4\316"+ - "\2\0\4\316\4\0\1\237\3\152\2\240\1\345\1\0"+ - "\2\152\1\240\3\152\1\241\1\152\1\237\2\152\4\237"+ - "\2\152\4\237\4\152\1\237\1\152\1\237\1\312\2\313"+ - "\1\237\1\0\1\314\1\312\1\313\1\314\1\237\1\312"+ - "\1\315\20\237\1\312\2\237\1\152\1\237\1\312\1\313"+ - "\1\240\1\312\1\0\1\314\1\312\1\313\1\314\1\237"+ - "\1\312\1\315\20\237\1\312\1\237\1\316\3\0\2\310"+ - "\1\346\3\0\1\310\5\0\1\316\2\0\4\316\2\0"+ - "\4\316\4\0\1\316\1\0\1\316\1\342\1\316\1\347"+ - "\1\316\1\0\1\350\1\342\1\316\1\350\1\316\2\342"+ - "\20\316\1\342\1\316\1\324\1\0\3\324\1\325\1\246"+ - "\1\0\1\250\2\324\1\250\25\324\1\61\1\0\3\61"+ - "\1\153\1\351\1\0\1\154\2\61\1\154\25\61\1\246"+ - "\1\0\3\246\1\247\1\352\1\0\1\250\2\246\1\250"+ - "\25\246\1\324\1\0\3\324\1\325\1\352\1\0\1\250"+ - "\2\324\1\250\26\324\1\0\3\324\1\325\1\324\1\0"+ - "\1\250\2\324\1\250\25\324\1\353\1\0\5\353\2\0"+ - "\2\353\1\0\25\353\6\0\1\250\55\0\2\266\14\0"+ - "\1\274\1\216\2\274\1\331\1\334\1\62\1\0\1\332"+ - "\1\62\1\331\1\332\2\62\1\333\20\274\1\62\2\274"+ - "\1\216\2\274\1\331\1\276\1\245\1\0\1\332\1\62"+ - "\1\331\1\332\2\62\1\333\20\274\1\62\1\274\1\62"+ - "\1\0\2\62\1\334\1\276\1\62\1\0\1\156\1\62"+ - "\1\334\1\156\2\62\1\302\23\62\1\0\3\62\1\334"+ - "\1\62\1\0\1\156\2\62\1\156\25\62\1\217\3\121"+ - "\2\220\1\354\1\0\2\121\1\220\3\121\1\221\1\121"+ - "\1\217\2\121\4\217\2\121\4\217\4\121\1\306\3\236"+ - "\1\307\1\310\1\346\1\0\1\236\1\0\1\307\1\236"+ - "\2\0\1\311\1\236\1\306\2\236\4\306\2\236\4\306"+ - "\2\236\1\0\1\236\1\306\1\236\1\306\1\337\1\340"+ - "\1\344\1\316\1\0\1\341\1\342\1\340\1\341\1\316"+ - "\1\342\1\343\20\306\1\342\2\306\1\236\1\306\1\337"+ - "\1\340\1\310\1\342\1\0\1\341\1\342\1\340\1\341"+ - "\1\316\1\342\1\343\20\306\1\342\1\306\6\0\1\346"+ - "\32\0\1\316\3\0\2\310\1\346\3\0\1\310\3\0"+ - "\1\241\1\0\1\316\2\0\4\316\2\0\4\316\4\0"+ - "\1\316\1\0\1\316\1\342\1\316\1\344\1\316\1\0"+ - "\1\350\1\342\1\316\1\350\1\316\2\342\20\316\1\342"+ - "\2\316\1\0\1\316\1\342\1\316\1\347\1\342\1\0"+ - "\1\350\1\342\1\316\1\350\1\316\2\342\20\316\1\342"+ - "\1\316\1\346\1\0\1\346\1\0\3\346\3\0\1\346"+ - "\1\0\1\346\2\0\20\346\1\0\1\346\1\62\1\0"+ - "\3\62\1\155\1\355\1\0\1\156\2\62\1\156\26\62"+ - "\1\0\3\62\1\155\1\356\1\0\1\156\2\62\1\156"+ - "\25\62"; + "\1\21\1\22\3\21\1\22\12\21\1\23\1\24\17\21"+ + "\1\25\1\26\1\27\1\25\1\30\1\26\1\31\1\32"+ + "\1\33\1\25\1\34\1\35\1\36\1\37\1\25\1\30"+ + "\1\40\2\25\1\41\1\25\1\42\1\43\1\30\2\25"+ + "\1\44\1\25\1\45\1\30\1\46\1\47\1\50\1\51"+ + "\1\26\1\52\1\51\1\30\1\26\1\31\1\32\1\33"+ + "\1\51\1\53\1\35\1\36\1\37\1\51\1\54\1\55"+ + "\2\51\1\56\1\51\1\42\1\57\1\30\2\51\1\44"+ + "\1\51\1\45\1\30\1\60\1\47\1\50\1\61\1\26"+ + "\1\62\1\61\1\30\1\26\1\63\1\64\1\33\1\61"+ + "\2\63\1\65\1\63\1\61\1\63\1\66\2\61\1\67"+ + "\1\61\1\63\1\66\1\63\2\61\1\63\1\61\5\63"+ + "\1\70\5\30\11\70\1\30\3\70\1\30\6\70\1\30"+ + "\1\70\1\30\1\70\1\30\1\70\1\30\1\71\5\30"+ + "\11\71\1\30\3\71\1\30\6\71\1\30\1\71\1\30"+ + "\1\71\1\30\1\71\2\30\1\26\3\30\1\26\15\30"+ + "\1\72\15\30\1\73\1\26\1\74\2\73\1\26\2\73"+ + "\1\33\30\73\1\75\1\26\1\76\2\75\1\26\33\75"+ + "\6\0\1\77\33\0\1\100\1\101\2\0\1\100\42\0"+ + "\1\102\4\0\1\103\47\0\1\100\15\0\1\104\2\0"+ + "\1\104\5\0\1\104\4\0\1\104\1\0\1\105\2\104"+ + "\1\105\1\104\1\0\1\105\1\0\2\104\1\0\1\104"+ + "\5\0\1\106\2\0\1\106\5\0\1\106\4\0\1\106"+ + "\1\0\1\107\2\106\1\107\1\106\1\0\1\107\1\0"+ + "\2\106\1\0\1\106\5\0\1\15\2\0\1\15\2\0"+ + "\33\15\42\0\1\22\3\0\1\22\53\0\1\110\41\0"+ + "\1\111\17\0\1\25\1\112\1\0\1\25\1\0\1\112"+ + "\15\25\1\113\15\25\1\0\1\26\3\0\1\26\34\0"+ + "\1\114\1\115\2\0\1\114\1\116\1\0\2\117\1\120"+ + "\4\117\1\0\1\121\1\117\1\121\1\117\1\122\1\0"+ + "\2\117\2\121\7\0\2\123\1\124\4\123\1\125\23\123"+ + "\1\126\5\123\2\33\1\0\36\33\36\0\1\127\2\0"+ + "\1\130\5\0\11\130\1\0\3\130\1\0\6\130\1\0"+ + "\1\130\1\0\1\130\1\0\1\130\1\0\2\131\1\132"+ + "\11\131\1\133\24\131\1\134\5\0\11\134\1\0\3\134"+ + "\1\0\6\134\1\0\1\134\1\0\1\134\1\0\1\134"+ + "\1\0\1\25\1\135\1\136\1\25\1\0\1\135\34\25"+ + "\2\0\1\25\2\0\33\25\16\0\1\137\1\0\1\137"+ + "\1\0\1\140\54\0\1\141\20\0\1\142\1\0\1\142"+ + "\1\0\1\143\16\0\1\51\1\144\1\0\1\51\1\0"+ + "\1\144\11\51\1\145\3\51\1\146\6\51\1\145\1\51"+ + "\1\145\1\51\1\145\1\51\1\145\20\0\1\147\1\150"+ + "\55\0\1\151\2\0\1\51\1\135\1\136\1\51\1\0"+ + "\1\135\11\51\1\0\12\51\1\0\1\51\1\0\1\51"+ + "\1\0\1\51\1\0\1\51\2\0\1\51\2\0\11\51"+ + "\1\0\12\51\1\0\1\51\1\0\1\51\1\0\1\51"+ + "\37\0\1\152\2\0\1\61\1\153\1\0\1\61\1\0"+ + "\1\153\15\61\1\154\15\61\1\63\1\155\1\0\1\63"+ + "\1\0\1\155\15\63\1\156\15\63\1\64\1\157\1\0"+ + "\1\64\1\160\1\157\1\64\1\161\13\64\1\162\7\64"+ + "\1\163\5\64\1\65\1\164\1\0\1\65\1\165\1\164"+ + "\6\65\1\166\6\65\1\167\15\65\1\61\1\155\1\0"+ + "\1\61\1\0\1\155\15\61\1\170\16\61\2\0\1\61"+ + "\2\0\33\61\1\70\5\0\11\70\1\0\3\70\1\0"+ + "\6\70\1\0\1\70\1\0\1\70\1\0\1\70\1\0"+ + "\1\71\5\0\11\71\1\0\3\71\1\0\6\71\1\0"+ + "\1\71\1\0\1\71\1\0\1\71\1\0\1\73\1\171"+ + "\1\0\2\73\1\171\33\73\2\75\1\0\36\75\1\172"+ + "\1\173\1\0\1\172\1\0\1\173\33\172\6\0\1\174"+ + "\1\0\2\175\1\176\4\175\1\0\1\177\1\175\1\177"+ + "\1\175\1\200\1\0\2\175\2\177\10\0\1\100\3\0"+ + "\1\100\33\0\2\102\1\0\4\102\1\201\23\102\1\202"+ + "\5\102\2\103\1\0\11\103\1\203\24\103\1\104\1\204"+ + "\1\0\1\104\1\0\1\204\15\104\1\205\16\104\2\0"+ + "\1\104\2\0\33\104\1\106\1\206\1\0\1\106\1\0"+ + "\1\206\11\106\1\207\3\106\1\210\6\106\1\207\1\106"+ + "\1\207\1\106\1\207\1\106\1\207\1\106\2\0\1\106"+ + "\2\0\11\106\1\0\12\106\1\0\1\106\1\0\1\106"+ + "\1\0\1\106\21\0\1\211\41\0\1\212\17\0\1\25"+ + "\1\112\1\0\1\25\1\0\1\112\2\25\1\213\12\25"+ + "\1\113\15\25\1\214\2\0\1\214\2\0\33\214\1\0"+ + "\1\114\3\0\1\114\43\0\2\117\1\120\4\117\1\0"+ + "\4\117\2\0\4\117\10\0\1\114\1\115\2\0\1\114"+ + "\2\0\2\117\1\120\4\117\1\0\4\117\2\0\4\117"+ + "\31\0\1\215\5\0\1\215\11\0\1\114\1\115\2\0"+ + "\1\114\1\116\1\0\2\117\1\120\4\117\1\0\1\121"+ + "\1\117\1\121\1\117\2\0\2\117\2\121\15\0\1\216"+ + "\1\0\2\216\1\217\11\216\2\0\5\216\1\0\1\216"+ + "\4\0\7\124\1\220\23\124\1\221\5\124\1\0\1\222"+ + "\3\0\1\222\15\0\1\223\15\0\2\123\1\124\36\123"+ + "\1\224\1\127\1\0\1\224\5\127\1\224\4\127\1\224"+ + "\1\127\1\225\2\224\1\225\1\224\1\127\1\225\1\127"+ + "\2\224\1\127\1\224\4\127\1\226\14\132\1\227\24\132"+ + "\1\0\1\222\3\0\1\222\6\0\1\131\6\0\1\223"+ + "\16\0\1\135\3\0\1\135\55\0\1\137\34\0\1\230"+ + "\1\0\1\230\1\0\1\140\16\0\2\231\1\0\2\231"+ + "\1\0\2\231\1\0\7\231\1\0\11\231\1\0\1\231"+ + "\1\0\1\231\1\0\1\231\23\0\1\142\34\0\1\232"+ + "\1\0\1\232\1\0\1\143\16\0\1\51\1\144\1\0"+ + "\1\51\1\0\1\144\2\51\1\145\6\51\1\145\3\51"+ + "\1\146\6\51\1\145\1\51\1\145\1\51\1\145\1\51"+ + "\1\145\10\0\1\233\30\0\1\233\2\0\1\233\2\0"+ + "\11\233\1\0\12\233\1\0\1\233\1\0\1\233\1\0"+ + "\1\233\21\0\1\234\41\0\1\235\17\0\1\236\1\151"+ + "\1\0\1\236\5\151\1\236\4\151\1\236\1\151\1\237"+ + "\2\236\1\237\1\236\1\151\1\237\1\151\2\236\1\151"+ + "\1\236\4\151\1\240\2\241\1\0\2\241\1\0\2\241"+ + "\1\0\7\241\1\0\11\241\1\0\1\241\1\0\1\241"+ + "\1\0\1\241\1\0\1\61\1\153\1\0\1\61\1\0"+ + "\1\153\2\61\1\242\12\61\1\154\15\61\1\243\2\0"+ + "\1\243\2\0\33\243\1\63\1\155\1\0\1\63\1\0"+ + "\1\155\2\63\1\244\12\63\1\156\15\63\1\245\2\0"+ + "\1\245\2\0\33\245\1\64\1\157\1\0\1\64\1\160"+ + "\1\157\1\64\1\161\1\246\12\64\1\162\7\64\1\163"+ + "\5\64\2\160\1\0\4\160\1\247\23\160\1\250\5\160"+ + "\1\63\1\251\1\0\1\63\1\0\1\251\15\63\1\252"+ + "\15\63\1\253\1\160\1\0\1\253\2\160\1\253\1\254"+ + "\23\253\1\255\5\253\1\64\1\157\1\0\1\64\1\160"+ + "\1\157\15\64\1\162\15\64\1\65\1\164\1\0\1\65"+ + "\1\165\1\164\2\65\1\256\3\65\1\166\6\65\1\167"+ + "\15\65\2\165\1\0\11\165\1\257\24\165\1\63\1\251"+ + "\1\0\1\63\1\0\1\251\6\63\1\65\6\63\1\252"+ + "\15\63\1\260\1\165\1\0\1\260\2\165\6\260\1\261"+ + "\24\260\1\262\1\263\1\0\1\262\1\0\1\263\15\262"+ + "\1\264\15\262\1\73\1\171\1\0\2\73\1\171\2\73"+ + "\1\0\30\73\10\0\2\175\1\176\4\175\1\0\4\175"+ + "\2\0\4\175\31\0\1\265\5\0\1\265\16\0\1\174"+ + "\1\0\2\175\1\176\4\175\1\0\1\177\1\175\1\177"+ + "\1\175\2\0\2\175\2\177\15\0\1\266\1\0\2\266"+ + "\1\267\11\266\2\0\5\266\1\0\1\266\4\0\2\102"+ + "\1\0\36\102\14\0\1\103\24\0\1\104\1\204\1\0"+ + "\1\104\1\0\1\204\2\104\1\270\12\104\1\205\15\104"+ + "\1\271\2\0\1\271\2\0\33\271\1\106\1\206\1\0"+ + "\1\106\1\0\1\206\2\106\1\207\6\106\1\207\3\106"+ + "\1\210\6\106\1\207\1\106\1\207\1\106\1\207\1\106"+ + "\1\207\10\0\1\272\30\0\1\272\2\0\1\272\2\0"+ + "\11\272\1\0\12\272\1\0\1\272\1\0\1\272\1\0"+ + "\1\272\1\0\1\273\2\0\1\273\2\0\33\273\10\0"+ + "\1\214\52\0\1\117\5\0\1\117\16\0\1\216\1\0"+ + "\2\216\1\217\11\216\1\0\1\274\5\216\1\0\1\216"+ + "\26\0\1\275\5\0\1\275\10\0\41\124\1\224\1\276"+ + "\1\0\1\224\1\127\1\276\12\224\1\277\2\224\1\225"+ + "\2\224\1\277\11\224\1\300\1\224\1\127\1\0\1\224"+ + "\2\127\12\224\1\277\2\224\1\277\2\224\1\277\11\224"+ + "\1\300\1\63\2\0\1\63\5\0\1\63\4\0\1\63"+ + "\1\0\1\301\2\63\1\301\1\63\1\0\1\301\1\0"+ + "\2\63\1\0\1\63\21\0\1\132\24\0\1\302\1\231"+ + "\1\0\1\302\4\231\1\0\1\302\4\231\1\302\1\231"+ + "\1\303\2\302\1\301\1\302\1\0\1\303\1\231\2\302"+ + "\1\0\1\302\1\0\1\231\1\0\1\231\1\304\20\0"+ + "\1\305\41\0\1\305\17\0\1\236\1\306\1\0\1\236"+ + "\1\151\1\306\11\236\1\307\1\310\2\236\1\237\2\236"+ + "\1\310\3\236\1\307\1\236\1\307\1\236\1\307\1\236"+ + "\1\311\1\236\1\151\1\0\1\236\2\151\11\236\1\151"+ + "\1\310\2\236\1\310\2\236\1\310\3\236\1\151\1\236"+ + "\1\151\1\236\1\151\1\236\1\240\1\312\2\0\1\312"+ + "\5\0\1\312\4\0\1\312\1\0\1\313\2\312\1\313"+ + "\1\312\1\0\1\313\1\0\2\312\1\0\1\312\5\0"+ + "\1\314\1\241\1\0\1\314\4\241\1\0\1\314\4\241"+ + "\1\314\1\241\1\315\2\314\1\313\1\314\1\0\1\315"+ + "\1\241\2\314\1\0\1\314\1\0\1\241\1\0\1\241"+ + "\1\316\10\0\1\317\40\0\1\245\30\0\2\160\1\0"+ + "\4\160\1\247\1\253\22\160\1\250\5\160\1\0\1\247"+ + "\3\0\1\247\15\0\1\320\15\0\2\160\1\0\36\160"+ + "\1\63\1\251\1\0\1\63\1\0\1\251\2\63\1\244"+ + "\12\63\1\252\15\63\1\64\1\157\1\0\1\64\1\160"+ + "\1\157\2\64\1\246\12\64\1\162\15\64\2\165\1\0"+ + "\5\165\1\260\3\165\1\257\24\165\1\0\1\247\3\0"+ + "\1\247\6\0\1\165\6\0\1\320\15\0\1\63\1\251"+ + "\1\0\1\63\1\0\1\251\2\63\1\244\3\63\1\65"+ + "\6\63\1\252\15\63\1\61\1\153\1\0\1\61\1\0"+ + "\1\153\2\61\1\321\12\61\1\154\15\61\1\322\1\263"+ + "\1\0\1\322\1\0\1\263\2\322\1\323\12\322\1\324"+ + "\15\322\1\325\1\155\1\0\1\325\1\0\1\155\2\325"+ + "\1\326\12\325\1\327\15\325\22\0\1\175\5\0\1\175"+ + "\16\0\1\266\1\0\2\266\1\267\11\266\1\0\1\201"+ + "\5\266\1\0\1\266\26\0\1\330\5\0\1\330\20\0"+ + "\1\271\31\0\1\114\1\115\2\0\1\114\55\0\1\216"+ + "\5\0\1\216\10\0\1\224\1\276\1\0\1\224\1\127"+ + "\1\276\2\224\1\331\7\224\1\277\2\224\1\225\2\224"+ + "\1\277\11\224\1\300\1\224\1\276\1\0\1\224\1\127"+ + "\1\276\12\224\1\277\2\224\1\277\2\224\1\277\11\224"+ + "\1\300\1\63\1\155\1\0\1\63\1\0\1\155\12\63"+ + "\1\332\2\63\1\301\2\63\1\332\13\63\2\0\1\63"+ + "\2\0\33\63\1\302\1\333\1\0\1\302\1\231\1\333"+ + "\2\302\1\63\7\302\1\334\2\302\1\301\1\302\1\63"+ + "\1\334\3\302\1\63\1\302\1\63\1\302\1\63\1\302"+ + "\1\335\1\302\1\231\1\0\1\302\2\231\2\302\1\63"+ + "\7\302\1\334\2\302\1\332\1\302\1\63\1\334\3\302"+ + "\1\63\1\302\1\63\1\302\1\63\1\302\1\335\1\63"+ + "\2\0\1\63\5\0\1\63\4\0\1\63\1\0\1\301"+ + "\2\63\1\301\1\63\1\0\1\301\1\0\2\63\1\0"+ + "\1\63\4\0\1\226\1\336\2\0\1\336\2\0\33\336"+ + "\1\236\1\306\1\0\1\236\1\151\1\306\2\236\1\307"+ + "\6\236\1\307\1\310\2\236\1\237\2\236\1\310\3\236"+ + "\1\307\1\236\1\307\1\236\1\307\1\236\1\311\1\236"+ + "\1\151\1\0\1\236\4\151\1\337\1\236\4\151\1\236"+ + "\1\151\1\237\2\236\1\237\1\236\1\151\1\237\1\151"+ + "\2\236\1\151\1\236\4\151\1\240\1\236\1\306\1\0"+ + "\1\236\1\151\1\306\11\236\1\307\1\310\2\236\1\310"+ + "\2\236\1\310\3\236\1\307\1\236\1\307\1\236\1\307"+ + "\1\236\1\311\1\312\2\0\1\312\4\0\1\340\1\312"+ + "\4\0\1\312\1\0\1\313\2\312\1\313\1\312\1\0"+ + "\1\313\1\0\2\312\1\0\1\312\5\0\1\312\1\341"+ + "\1\0\1\312\1\0\1\341\11\312\1\342\3\312\1\343"+ + "\6\312\1\342\1\312\1\342\1\312\1\342\1\312\1\342"+ + "\1\312\2\0\1\312\2\0\11\312\1\0\12\312\1\0"+ + "\1\312\1\0\1\312\1\0\1\312\1\0\1\314\1\344"+ + "\1\0\1\314\1\241\1\344\2\314\1\312\6\314\1\345"+ + "\1\346\2\314\1\313\1\314\1\312\1\346\3\314\1\342"+ + "\1\314\1\342\1\314\1\342\1\314\1\347\1\314\1\241"+ + "\1\0\1\314\2\241\2\314\1\312\6\314\1\241\1\346"+ + "\2\314\1\350\1\314\1\312\1\346\3\314\1\0\1\314"+ + "\1\0\1\314\1\0\1\314\1\316\1\312\2\0\1\312"+ + "\5\0\1\312\4\0\1\312\1\0\1\313\2\312\1\313"+ + "\1\312\1\0\1\313\1\0\2\312\1\0\1\312\4\0"+ + "\1\240\1\322\1\263\1\0\1\322\1\0\1\263\2\322"+ + "\1\262\12\322\1\324\16\322\1\263\1\0\1\322\1\0"+ + "\1\263\15\322\1\324\15\322\10\0\1\263\30\0\1\351"+ + "\2\0\1\351\2\0\33\351\1\61\1\153\1\0\1\61"+ + "\1\0\1\153\2\61\1\352\12\61\1\154\15\61\1\322"+ + "\1\263\1\0\1\322\1\0\1\263\2\322\1\353\12\322"+ + "\1\324\15\322\1\262\1\263\1\0\1\262\1\0\1\263"+ + "\2\262\1\353\12\262\1\264\15\262\22\0\1\266\5\0"+ + "\1\266\10\0\1\224\1\127\1\0\1\224\4\127\1\354"+ + "\1\224\4\127\1\224\1\127\1\225\2\224\1\225\1\224"+ + "\1\127\1\225\1\127\2\224\1\127\1\224\4\127\1\226"+ + "\1\63\1\155\1\0\1\63\1\0\1\155\15\63\1\332"+ + "\15\63\1\302\1\333\1\0\1\302\1\231\1\333\2\302"+ + "\1\244\7\302\1\334\2\302\1\301\1\302\1\63\1\334"+ + "\3\302\1\63\1\302\1\63\1\302\1\63\1\302\1\335"+ + "\1\302\1\333\1\0\1\302\1\231\1\333\2\302\1\63"+ + "\7\302\1\334\2\302\1\332\1\302\1\63\1\334\3\302"+ + "\1\63\1\302\1\63\1\302\1\63\1\302\1\335\1\63"+ + "\1\155\1\0\1\63\1\0\1\155\12\63\1\332\2\63"+ + "\1\301\2\63\1\332\11\63\1\300\1\312\1\341\1\0"+ + "\1\312\1\0\1\341\2\312\1\342\6\312\1\342\3\312"+ + "\1\343\6\312\1\342\1\312\1\342\1\312\1\342\1\312"+ + "\1\342\10\0\1\340\30\0\1\340\2\0\1\340\2\0"+ + "\11\340\1\0\12\340\1\0\1\340\1\0\1\340\1\0"+ + "\1\340\1\0\1\314\1\344\1\0\1\314\1\241\1\344"+ + "\2\314\1\342\6\314\1\345\1\346\2\314\1\313\1\314"+ + "\1\312\1\346\3\314\1\342\1\314\1\342\1\314\1\342"+ + "\1\314\1\347\1\314\1\241\1\0\1\314\4\241\1\340"+ + "\1\314\4\241\1\314\1\241\1\315\2\314\1\313\1\314"+ + "\1\0\1\315\1\241\2\314\1\0\1\314\1\0\1\241"+ + "\1\0\1\241\1\316\1\314\1\344\1\0\1\314\1\241"+ + "\1\344\2\314\1\312\6\314\1\345\1\346\2\314\1\350"+ + "\1\314\1\312\1\346\3\314\1\342\1\314\1\342\1\314"+ + "\1\342\1\314\1\347\1\312\2\0\1\312\4\0\1\340"+ + "\1\312\4\0\1\312\1\0\1\313\2\312\1\313\1\312"+ + "\1\0\1\313\1\0\2\312\1\0\1\312\4\0\1\240"+ + "\1\312\1\341\1\0\1\312\1\0\1\341\11\312\1\342"+ + "\3\312\1\350\6\312\1\342\1\312\1\342\1\312\1\342"+ + "\1\312\1\342\1\63\1\155\1\0\1\63\1\0\1\155"+ + "\2\63\1\355\12\63\1\156\16\63\1\155\1\0\1\63"+ + "\1\0\1\155\2\63\1\356\12\63\1\156\15\63"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[6270]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -438,26 +505,26 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\20\0\1\11\4\1\1\11\3\1\1\11\1\1\1\11"+ - "\3\1\1\11\6\1\1\11\2\1\1\11\12\1\1\11"+ - "\4\1\1\11\1\1\1\11\3\1\1\11\1\1\2\0"+ - "\1\1\1\0\1\1\3\0\1\1\1\0\1\11\3\1"+ - "\5\0\1\1\2\0\1\1\1\0\1\11\1\1\4\0"+ - "\4\1\1\0\1\1\5\0\1\1\7\0\2\1\3\0"+ - "\1\1\1\0\1\11\1\0\2\1\4\0\1\11\1\1"+ - "\5\0\3\1\1\0\1\11\1\0\1\1\3\0\2\11"+ - "\1\0\1\1\3\0\1\11\1\1\3\0\1\1\2\0"+ - "\1\1\1\0\1\1\1\0\2\1\3\0\3\1\1\0"+ - "\1\1\2\0\2\1\4\0\1\1\1\0\1\1\1\11"+ - "\1\1\3\0\1\1\1\0\1\1\2\0\2\1\4\0"+ - "\1\1\2\0\2\1\1\0\3\1\1\0\1\1\1\0"+ - "\1\11\1\0\1\1\1\0\2\1\1\0\1\11\1\0"+ - "\1\1\3\0\3\1\2\0\5\1\1\0"; + "\20\0\1\11\5\1\2\11\13\1\2\11\2\1\1\11"+ + "\3\1\1\11\5\1\1\11\7\1\1\11\1\1\1\11"+ + "\4\1\1\11\2\0\1\1\1\0\1\1\4\0\2\1"+ + "\1\11\7\0\1\1\2\0\1\1\2\0\3\1\1\11"+ + "\2\1\1\0\2\1\2\0\1\1\5\0\1\1\4\0"+ + "\1\1\1\0\1\1\2\0\1\1\3\0\1\11\2\0"+ + "\1\1\1\0\1\1\1\0\1\11\1\0\1\1\5\0"+ + "\2\1\1\0\1\1\3\0\1\11\2\0\1\11\1\1"+ + "\2\0\1\1\1\11\1\0\1\11\1\1\2\0\1\1"+ + "\4\0\1\1\1\0\1\1\4\0\4\1\2\0\3\1"+ + "\1\0\1\1\4\0\2\1\1\11\3\0\2\1\1\0"+ + "\1\1\2\0\1\1\2\0\1\1\1\0\1\1\1\0"+ + "\1\1\2\0\1\1\1\11\3\0\4\1\2\0\1\1"+ + "\1\0\2\1\1\11\2\1\5\0\1\1\1\0\6\1"+ + "\1\0"; private static int [] zzUnpackAttribute() { int [] result = new int[238]; @@ -504,24 +571,32 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** For the backwards DFA of general lookahead statements */ + private boolean [] zzFin = new boolean [Math.min(ZZ_BUFFERSIZE, zzMaxBufferLen())+1]; + + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; - /** For the backwards DFA of general lookahead statements */ - private boolean [] zzFin = new boolean [ZZ_BUFFERSIZE+1]; - /* user code: */ - /** The current column of the current line (starting with 0). It is standard field supported by the jflex. */ - protected int yycolumn = 0; - /** * The number of open but not closed braces. * Note: lexer does not distinguish braces from brackets while counting them. @@ -651,26 +726,22 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -802,7 +873,8 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -825,7 +897,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { for (zzCurrentPosL = zzStartRead ; zzCurrentPosL < zzMarkedPosL ; zzCurrentPosL += zzCharCount ) { - zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzMarkedPosL*/); + zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCharCount = Character.charCount(zzCh); switch (zzCh) { case '\u000B': // fall through @@ -870,7 +942,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -892,11 +964,11 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -919,46 +991,29 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { goToState(getStateAfterLineStart(0)); - } - // fall through + } + // fall through case 44: break; - case 2: + case 2: { yybegin(getStateAfterLineStart(yylength())); return getWhitespaceType(); - } - // fall through + } + // fall through case 45: break; - case 3: + case 3: { myPossiblePlainTextScalarContinue = true; return TEXT; - } - // fall through + } + // fall through case 46: break; - case 4: - { return TEXT; - } - // fall through + case 4: + { return getWhitespaceType(); + } + // fall through case 47: break; - case 5: - { myPrevElementIndent = yycolumn; - return QUESTION; - } - // fall through - case 48: break; - case 6: - { myPrevElementIndent = yycolumn; - return COLON; - } - // fall through - case 49: break; - case 7: - { return COMMENT; - } - // fall through - case 50: break; - case 8: + case 5: { if(!myPossiblePlainTextScalarContinue && myPrevElementIndent == 0) { // It is hard to find clean state in YAML lexer :( yybegin(YYINITIAL); @@ -967,122 +1022,143 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { yybegin(LINE_START_STATE); } return EOL; - } - // fall through + } + // fall through + case 48: break; + case 6: + { return TEXT; + } + // fall through + case 49: break; + case 7: + { return COMMENT; + } + // fall through + case 50: break; + case 8: + { myPrevElementIndent = yycolumn; + return COLON; + } + // fall through case 51: break; - case 9: - { return getWhitespaceType(); - } - // fall through - case 52: break; - case 10: - { closeBrace(); - return RBRACKET; - } - // fall through - case 53: break; - case 11: + case 9: { myReturnState = yystate(); yybegin(BS_HEADER_TAIL_STATE); myBlockScalarType = SCALAR_TEXT; return myBlockScalarType; - } - // fall through - case 54: break; - case 12: - { openBrace(); - return LBRACE; - } - // fall through - case 55: break; - case 13: - { closeBrace(); - return RBRACE; - } - // fall through - case 56: break; - case 14: + } + // fall through + case 52: break; + case 10: + { myPrevElementIndent = yycolumn; + return QUESTION; + } + // fall through + case 53: break; + case 11: { openBrace(); return LBRACKET; - } - // fall through - case 57: break; - case 15: + } + // fall through + case 54: break; + case 12: + { closeBrace(); + return RBRACKET; + } + // fall through + case 55: break; + case 13: + { openBrace(); + return LBRACE; + } + // fall through + case 56: break; + case 14: { myReturnState = yystate(); yybegin(BS_HEADER_TAIL_STATE); myBlockScalarType = SCALAR_LIST; return myBlockScalarType; - } - // fall through + } + // fall through + case 57: break; + case 15: + { closeBrace(); + return RBRACE; + } + // fall through case 58: break; - case 16: - { return COMMA; - } - // fall through - case 59: break; - case 17: + case 16: { return EOL; - } - // fall through + } + // fall through + case 59: break; + case 17: + { return COMMA; + } + // fall through case 60: break; - case 18: - { goToState(BLOCK_STATE); - } - // fall through - case 61: break; - case 19: + case 18: { yybegin(LINE_START_STATE); return EOL; - } - // fall through + } + // fall through + case 61: break; + case 19: + { goToState(BLOCK_STATE); + } + // fall through case 62: break; - case 20: + case 20: { yybegin(myReturnState); return ANCHOR; - } - // fall through + } + // fall through case 63: break; - case 21: + case 21: { yybegin(myReturnState); return ALIAS; - } - // fall through + } + // fall through case 64: break; - case 22: + case 22: { yybegin(myReturnState); return COLON; - } - // fall through + } + // fall through case 65: break; - case 23: + case 23: { goToState(BS_BODY_STATE); - } - // fall through + } + // fall through case 66: break; - case 24: + case 24: { assert yycolumn > myPrevElementIndent; return myBlockScalarType; - } - // fall through + } + // fall through case 67: break; - case 25: + case 25: { return SCALAR_EOL; - } - // fall through + } + // fall through case 68: break; - case 26: + case 26: // general lookahead, find correct zzMarkedPos { int zzFState = 13; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1090,48 +1166,33 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 12; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return processScalarKey(); - } - // fall through + } + // fall through case 69: break; - case 27: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { myPrevElementIndent = yycolumn; - return SEQUENCE_MARKER; - } - // fall through - case 70: break; - case 28: - { return SCALAR_DSTRING; - } - // fall through - case 71: break; - case 29: - { return SCALAR_STRING; - } - // fall through - case 72: break; - case 30: + case 27: // general lookahead, find correct zzMarkedPos { int zzFState = 9; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1139,49 +1200,72 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 10; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return TAG; - } - // fall through - case 73: break; - case 31: + } + // fall through + case 70: break; + case 28: + { return SCALAR_DSTRING; + } + // fall through + case 71: break; + case 29: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { myReturnState = yystate(); yybegin(ANCHOR_MODE); return AMPERSAND; - } - // fall through - case 74: break; - case 32: + } + // fall through + case 72: break; + case 30: + { return SCALAR_STRING; + } + // fall through + case 73: break; + case 31: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { myReturnState = yystate(); yybegin(ALIAS_MODE); return STAR; - } - // fall through + } + // fall through + case 74: break; + case 32: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, 1); + { myPrevElementIndent = yycolumn; + return SEQUENCE_MARKER; + } + // fall through case 75: break; - case 33: + case 33: // general lookahead, find correct zzMarkedPos { int zzFState = 14; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1189,29 +1273,33 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 12; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return processScalarKey(); - } - // fall through + } + // fall through case 76: break; - case 34: + case 34: // general lookahead, find correct zzMarkedPos { int zzFState = 13; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1219,20 +1307,20 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 12; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return processScalarKey(BLOCK_STATE); - } - // fall through + } + // fall through case 77: break; - case 35: + case 35: // lookahead expression with fixed lookahead length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzMarkedPos, -1); + (zzBufferL, zzMarkedPos, -1); { int indent = yylength() - 1; yypushback(indent); if (indent <= myPrevElementIndent) { @@ -1241,32 +1329,36 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { } else { return SCALAR_EOL; } - } - // fall through + } + // fall through case 78: break; - case 36: + case 36: { return DOCUMENT_MARKER; - } - // fall through + } + // fall through case 79: break; - case 37: + case 37: { return DOCUMENT_END; - } - // fall through + } + // fall through case 80: break; - case 38: + case 38: // general lookahead, find correct zzMarkedPos { int zzFState = 11; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1274,29 +1366,33 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 12; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return processScalarKey(); - } - // fall through + } + // fall through case 81: break; - case 39: + case 39: // general lookahead, find correct zzMarkedPos { int zzFState = 13; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1304,29 +1400,33 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 15; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return TEXT; - } - // fall through + } + // fall through case 82: break; - case 40: + case 40: // general lookahead, find correct zzMarkedPos { int zzFState = 11; int zzFPos = zzStartRead; - if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; } + if (zzFin.length <= zzBufferL.length()) { + zzFin = new boolean[zzBufferL.length()+1]; + } boolean zzFinL[] = zzFin; while (zzFState != -1 && zzFPos < zzMarkedPos) { zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1); - zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/); + zzInput = Character.codePointAt(zzBufferL, zzFPos); zzFPos += Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; + } + if (zzFState != -1) { + zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } - if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); } while (zzFPos <= zzMarkedPos) { zzFinL[zzFPos++] = false; } @@ -1334,39 +1434,39 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes { zzFState = 12; zzFPos = zzMarkedPos; while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) { - zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/); + zzInput = Character.codePointBefore(zzBufferL, zzFPos); zzFPos -= Character.charCount(zzInput); - zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ]; + zzFState = zzTransL[ zzRowMapL[zzFState] + zzCMap(zzInput) ]; }; zzMarkedPos = zzFPos; } { return processScalarKey(BLOCK_STATE); - } - // fall through + } + // fall through case 83: break; - case 41: + case 41: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 3); + (zzBufferL, zzStartRead, 3); { goToState(getStateAfterLineStart(0)); - } - // fall through + } + // fall through case 84: break; - case 42: + case 42: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { cleanMyState(); return EOL; - } - // fall through + } + // fall through case 85: break; - case 43: + case 43: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + (zzBufferL, zzStartRead, 1); { return EOL; - } - // fall through + } + // fall through case 86: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/python/gen/com/jetbrains/commandInterface/commandLine/_CommandLineLexer.java b/python/gen/com/jetbrains/commandInterface/commandLine/_CommandLineLexer.java index 572fbd86085a..057aa4faf889 100644 --- a/python/gen/com/jetbrains/commandInterface/commandLine/_CommandLineLexer.java +++ b/python/gen/com/jetbrains/commandInterface/commandLine/_CommandLineLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _CommandLineLexer.flex package com.jetbrains.commandInterface.commandLine; @@ -10,11 +11,6 @@ import static com.intellij.psi.TokenType.WHITE_SPACE; import static com.jetbrains.commandInterface.commandLine.CommandLineElementTypes.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _CommandLineLexer.flex - */ public class _CommandLineLexer implements FlexLexer { /** This character denotes the end of file */ @@ -32,140 +28,260 @@ public class _CommandLineLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14400 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\4\1\6\1\7\1\1\1\10\1\11\1\12\1\13\1\12\1\13\34"+ - "\12\1\14\1\15\1\16\10\1\1\17\1\20\1\12\1\21\4\12\1\22\10\12\1\23\12\12\1\24"+ - "\1\12\1\25\1\24\1\12\1\26\4\1\1\12\1\27\1\30\2\1\2\12\1\27\1\1\1\31\1\24\5"+ - "\12\1\32\1\33\1\34\1\1\1\35\1\12\1\1\1\36\5\12\1\37\1\40\1\41\1\12\1\27\1"+ - "\42\1\12\1\43\1\44\1\1\1\12\1\45\4\1\1\12\1\46\4\1\1\47\2\12\1\50\1\1\1\51"+ - "\1\52\1\24\1\53\1\54\1\55\1\56\1\57\1\60\1\52\1\15\1\61\1\54\1\55\1\62\1\1"+ - "\1\63\1\64\1\65\1\66\1\21\1\55\1\67\1\1\1\70\1\52\1\71\1\72\1\54\1\55\1\67"+ - "\1\1\1\60\1\52\1\40\1\73\1\74\1\75\1\76\1\1\1\70\1\64\1\1\1\77\1\35\1\55\1"+ - "\50\1\1\1\100\1\52\1\1\1\101\1\35\1\55\1\102\1\1\1\57\1\52\1\103\1\77\1\35"+ - "\1\12\1\104\1\57\1\105\1\52\1\106\1\107\1\110\1\12\1\111\1\112\1\1\1\64\1"+ - "\1\1\24\2\12\1\113\1\112\1\114\2\1\1\115\1\116\1\117\1\120\1\121\1\122\2\1"+ - "\1\70\1\1\1\114\1\1\1\123\1\12\1\124\1\1\1\125\7\1\2\12\1\27\1\126\1\114\1"+ - "\127\1\130\1\131\1\132\1\114\2\12\1\133\2\12\1\134\24\12\1\135\1\136\2\12"+ - "\1\135\2\12\1\137\1\140\1\13\3\12\1\140\3\12\1\27\2\1\1\12\1\1\5\12\1\141"+ - "\1\24\45\12\1\142\1\12\1\143\1\27\4\12\1\27\1\144\1\145\1\15\1\12\1\15\1\12"+ - "\1\15\1\145\1\70\3\12\1\146\1\1\1\147\1\114\2\1\1\114\5\12\1\26\1\150\1\12"+ - "\1\151\4\12\1\37\1\12\1\152\2\1\1\64\1\12\1\153\1\154\2\12\1\155\1\12\1\76"+ - "\1\114\2\1\1\12\1\112\3\12\1\154\2\1\2\114\1\156\5\1\1\107\2\12\1\146\1\157"+ - "\1\114\2\1\1\160\1\12\1\161\1\41\2\12\1\37\1\1\2\12\1\146\1\1\1\162\1\41\1"+ - "\12\1\153\1\45\5\1\1\163\1\164\14\12\4\1\21\12\1\141\2\12\1\141\1\165\1\12"+ - "\1\153\3\12\1\166\1\167\1\170\1\124\1\167\1\171\1\1\1\172\2\1\1\173\1\1\1"+ - "\174\1\1\1\124\6\1\1\175\1\176\1\177\1\200\1\201\3\1\1\202\147\1\2\12\1\152"+ - "\2\12\1\152\10\12\1\203\1\204\2\12\1\133\3\12\1\205\1\1\1\12\1\112\4\206\4"+ - "\1\1\126\35\1\1\207\2\1\1\210\1\24\4\12\1\211\1\24\4\12\1\134\1\107\1\12\1"+ - "\153\1\24\4\12\1\152\1\1\1\12\1\27\3\1\1\12\40\1\133\12\1\37\4\1\135\12\1"+ - "\37\2\1\10\12\1\124\4\1\2\12\1\153\20\12\1\124\1\12\1\212\1\1\2\12\1\152\1"+ - "\126\1\12\1\153\4\12\1\37\2\1\1\213\1\214\5\12\1\215\1\12\1\152\1\26\3\1\1"+ - "\213\1\216\1\12\1\30\1\1\3\12\1\146\1\214\2\12\1\146\1\1\1\114\1\1\1\217\1"+ - "\41\1\12\1\37\1\12\1\112\1\1\1\12\1\124\1\47\2\12\1\30\1\126\1\114\1\220\1"+ - "\221\2\12\1\45\1\1\1\222\1\114\1\12\1\223\3\12\1\224\1\225\1\226\1\27\1\65"+ - "\1\227\1\230\1\206\2\12\1\134\1\37\7\12\1\30\1\114\72\12\1\146\1\12\1\231"+ - "\2\12\1\155\20\1\26\12\1\153\6\12\1\76\2\1\1\112\1\232\1\55\1\233\1\234\6"+ - "\12\1\15\1\1\1\160\25\12\1\153\1\1\4\12\1\214\2\12\1\26\2\1\1\155\7\1\1\220"+ - "\7\12\1\124\1\1\1\114\1\24\1\27\1\24\1\27\1\235\4\12\1\152\1\236\1\237\2\1"+ - "\1\240\1\12\1\13\1\241\2\153\2\1\7\12\1\27\30\1\1\12\1\124\3\12\1\70\2\1\2"+ - "\12\1\1\1\12\1\242\2\12\1\37\1\12\1\153\2\12\1\243\3\1\11\12\1\153\1\114\2"+ - "\12\1\243\1\12\1\155\2\12\1\26\3\12\1\146\11\1\23\12\1\112\1\12\1\37\1\26"+ - "\11\1\1\244\2\12\1\245\1\12\1\37\1\12\1\112\1\12\1\152\4\1\1\12\1\246\1\12"+ - "\1\37\1\12\1\76\4\1\3\12\1\247\4\1\1\70\1\250\1\12\1\146\2\1\1\12\1\124\1"+ - "\12\1\124\2\1\1\123\1\12\1\154\1\1\3\12\1\37\1\12\1\37\1\12\1\30\1\12\1\15"+ - "\6\1\4\12\1\45\3\1\3\12\1\30\3\12\1\30\60\1\1\160\2\12\1\26\2\1\1\64\1\1\1"+ - "\160\2\12\2\1\1\12\1\45\1\114\1\160\1\12\1\112\1\64\1\1\2\12\1\251\1\160\2"+ - "\12\1\30\1\252\1\253\2\1\1\12\1\21\1\155\5\1\1\254\1\255\1\45\2\12\1\152\1"+ - "\1\1\114\1\72\1\54\1\55\1\67\1\1\1\256\1\15\11\1\3\12\1\154\1\257\1\114\2"+ - "\1\3\12\1\1\1\260\1\114\12\1\2\12\1\152\2\1\1\261\2\1\3\12\1\1\1\262\1\114"+ - "\2\1\2\12\1\27\1\1\1\114\3\1\1\12\1\76\1\1\1\114\26\1\4\12\1\114\1\126\34"+ - "\1\3\12\1\45\20\1\1\55\1\12\1\152\1\1\1\70\1\114\1\1\1\214\1\12\67\1\71\12"+ - "\1\76\16\1\14\12\1\146\53\1\2\12\1\152\75\1\44\12\1\112\33\1\43\12\1\45\1"+ - "\12\1\152\1\114\6\1\1\12\1\153\1\1\3\12\1\1\1\146\1\114\1\160\1\263\1\12\67"+ - "\1\4\12\1\154\1\70\3\1\1\160\4\1\1\70\1\1\76\12\1\124\1\1\57\12\1\30\20\1"+ - "\1\15\77\1\6\12\1\27\1\124\1\45\1\76\66\1\5\12\1\220\3\12\1\145\1\264\1\265"+ - "\1\266\3\12\1\267\1\270\1\12\1\271\1\272\1\35\24\12\1\273\1\12\1\35\1\134"+ - "\1\12\1\134\1\12\1\220\1\12\1\220\1\152\1\12\1\152\1\12\1\55\1\12\1\55\1\12"+ - "\1\274\3\275\14\12\1\154\3\1\4\12\1\146\1\114\112\1\1\266\1\12\1\276\1\277"+ - "\1\300\1\301\1\302\1\303\1\304\1\155\1\305\1\155\24\1\55\12\1\112\2\1\103"+ - "\12\1\154\15\12\1\153\150\12\1\15\25\1\41\12\1\153\36\1"); - /* The ZZ_CMAP_A table has 3168 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\5\2\22\0\1\2\1\7\1\14\4\0\1\15\2\0\1\7\2\0\1\10\2\7\12\12\1\6\2\0\1"+ - "\16\3\0\32\5\1\0\1\6\2\0\1\4\13\5\3\0\1\13\6\0\1\1\12\0\1\1\11\0\1\3\12\0"+ - "\1\3\4\0\1\3\5\0\27\3\1\0\12\3\4\0\14\3\16\0\5\3\7\0\1\3\1\0\1\3\1\0\5\3\1"+ - "\0\2\3\2\0\4\3\1\0\1\3\6\0\1\3\1\0\3\3\1\0\1\3\1\0\4\3\1\0\23\3\1\0\13\3\10"+ - "\0\6\3\1\0\26\3\2\0\1\3\6\0\10\3\10\0\13\3\5\0\3\3\15\0\12\11\4\0\6\3\1\0"+ - "\1\3\17\0\2\3\7\0\2\3\12\11\3\3\2\0\2\3\1\0\16\3\15\0\11\3\13\0\1\3\16\0\12"+ - "\11\6\3\4\0\2\3\4\0\1\3\5\0\6\3\4\0\1\3\11\0\1\3\3\0\1\3\7\0\11\3\7\0\5\3"+ - "\1\0\10\3\6\0\26\3\3\0\1\3\2\0\1\3\7\0\12\3\4\0\12\11\1\3\4\0\10\3\2\0\2\3"+ - "\2\0\26\3\1\0\7\3\1\0\1\3\3\0\4\3\3\0\1\3\20\0\1\3\15\0\2\3\1\0\1\3\5\0\6"+ - "\3\4\0\2\3\1\0\2\3\1\0\2\3\1\0\2\3\17\0\4\3\1\0\1\3\7\0\12\11\2\0\3\3\20\0"+ - "\11\3\1\0\2\3\1\0\2\3\1\0\5\3\3\0\1\3\2\0\1\3\30\0\1\3\13\0\10\3\2\0\1\3\3"+ - "\0\1\3\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0"+ - "\14\3\13\0\10\3\1\0\2\3\10\0\3\3\5\0\1\3\4\0\10\3\1\0\6\3\1\0\5\3\3\0\1\3"+ - "\3\0\2\3\15\0\13\3\2\0\1\3\6\0\3\3\10\0\1\3\12\0\6\3\5\0\22\3\3\0\10\3\1\0"+ - "\11\3\1\0\1\3\2\0\7\3\11\0\1\3\1\0\2\3\14\0\12\11\7\0\2\3\1\0\1\3\2\0\2\3"+ - "\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\4\3\1"+ - "\0\2\3\11\0\1\3\2\0\5\3\1\0\1\3\11\0\12\11\2\0\14\3\1\0\24\3\13\0\5\3\22\0"+ - "\7\3\4\0\4\3\3\0\1\3\3\0\2\3\7\0\3\3\4\0\15\3\14\0\1\3\1\0\6\3\1\0\1\3\5\0"+ - "\1\3\2\0\13\3\1\0\15\3\1\0\4\3\2\0\7\3\1\0\1\3\1\0\4\3\2\0\1\3\1\0\4\3\2\0"+ - "\7\3\1\0\1\3\1\0\4\3\2\0\16\3\2\0\6\3\2\0\15\3\2\0\1\3\1\1\17\3\1\0\10\3\7"+ - "\0\15\3\1\0\6\3\23\0\1\3\4\0\1\3\3\0\5\3\2\0\22\3\1\0\1\3\5\0\17\3\1\0\16"+ - "\3\2\0\5\3\13\0\14\3\13\0\1\3\15\0\7\3\7\0\16\3\15\0\2\3\12\11\3\0\3\3\11"+ - "\0\4\3\1\0\4\3\3\0\2\3\11\0\10\3\1\0\1\3\1\0\1\3\1\0\1\3\1\0\6\3\1\0\7\3\1"+ - "\0\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0\13\1\15\0\2\1\5\0\1\1\17\0\1\1"+ - "\1\0\1\3\15\0\1\3\2\0\1\3\4\0\1\3\2\0\12\3\1\0\1\3\3\0\5\3\6\0\1\3\1\0\1\3"+ - "\1\0\1\3\1\0\4\3\1\0\13\3\2\0\4\3\5\0\5\3\4\0\1\3\4\0\2\3\13\0\5\3\6\0\4\3"+ - "\3\0\2\3\14\0\10\3\7\0\10\3\1\0\7\3\1\0\1\1\4\0\2\3\12\0\5\3\5\0\2\3\3\0\7"+ - "\3\6\0\3\3\12\11\2\3\13\0\11\3\2\0\27\3\2\0\7\3\1\0\3\3\1\0\4\3\1\0\4\3\2"+ - "\0\6\3\3\0\1\3\1\0\1\3\2\0\5\3\1\0\12\3\12\11\5\3\1\0\3\3\1\0\10\3\4\0\7\3"+ - "\3\0\1\3\3\0\2\3\1\0\1\3\3\0\2\3\2\0\5\3\2\0\1\3\1\0\1\3\30\0\3\3\3\0\6\3"+ - "\2\0\6\3\2\0\6\3\11\0\7\3\4\0\5\3\3\0\5\3\5\0\1\3\1\0\10\3\1\0\5\3\1\0\1\3"+ - "\1\0\2\3\1\0\2\3\1\0\12\3\6\0\12\3\2\0\6\3\2\0\6\3\2\0\6\3\2\0\3\3\3\0\14"+ - "\3\1\0\16\3\1\0\2\3\1\0\2\3\1\0\10\3\6\0\4\3\4\0\16\3\2\0\1\3\1\0\14\3\1\0"+ - "\2\3\3\0\1\3\2\0\4\3\1\0\2\3\12\0\10\3\6\0\6\3\1\0\3\3\1\0\12\3\3\0\1\3\12"+ - "\0\4\3\13\0\12\11\1\3\1\0\1\3\3\0\7\3\1\0\1\3\1\0\4\3\1\0\17\3\1\0\2\3\14"+ - "\0\3\3\7\0\4\3\11\0\2\3\1\0\1\3\20\0\4\3\10\0\1\3\13\0\10\3\5\0\3\3\2\0\1"+ - "\3\2\0\2\3\2\0\4\3\1\0\14\3\1\0\1\3\1\0\7\3\1\0\21\3\1\0\4\3\2\0\10\3\1\0"+ - "\7\3\1\0\14\3\1\0\4\3\1\0\5\3\1\0\1\3\3\0\14\3\2\0\13\3\1\0\10\3\2\0\22\11"+ - "\1\0\2\3\1\0\1\3\2\0\1\3\1\0\12\3\1\0\4\3\1\0\1\3\1\0\1\3\6\0\1\3\4\0\1\3"+ - "\1\0\1\3\1\0\1\3\1\0\3\3\1\0\2\3\1\0\1\3\2\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3\1"+ - "\0\1\3\1\0\2\3\1\0\1\3\2\0\4\3\1\0\7\3\1\0\4\3\1\0\4\3\1\0\1\3\1\0\12\3\1"+ - "\0\5\3\1\0\3\3\1\0\5\3\1\0\5\3"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\5\1\22\0\1\1\1\2\1\3\4\0\1\4"+ + "\2\0\1\2\2\0\1\5\2\2\12\6\1\7\2\0"+ + "\1\10\3\0\32\11\1\0\1\7\2\0\1\12\1\0"+ + "\32\11\3\0\1\13\6\0\1\14\32\0\1\14\11\0"+ + "\1\15\12\0\1\15\4\0\1\15\5\0\27\15\1\0"+ + "\37\15\1\0\u01ca\15\4\0\14\15\16\0\5\15\7\0"+ + "\1\15\1\0\1\15\201\0\5\15\1\0\2\15\2\0"+ + "\4\15\1\0\1\15\6\0\1\15\1\0\3\15\1\0"+ + "\1\15\1\0\24\15\1\0\123\15\1\0\213\15\10\0"+ + "\246\15\1\0\46\15\2\0\1\15\6\0\51\15\107\0"+ + "\33\15\4\0\4\15\55\0\53\15\25\0\12\16\4\0"+ + "\2\15\1\0\143\15\1\0\1\15\17\0\2\15\7\0"+ + "\2\15\12\16\3\15\2\0\1\15\20\0\1\15\1\0"+ + "\36\15\35\0\131\15\13\0\1\15\16\0\12\16\41\15"+ + "\11\0\2\15\4\0\1\15\5\0\26\15\4\0\1\15"+ + "\11\0\1\15\3\0\1\15\27\0\31\15\7\0\13\15"+ + "\65\0\25\15\1\0\10\15\106\0\66\15\3\0\1\15"+ + "\22\0\1\15\7\0\12\15\4\0\12\16\1\0\20\15"+ + "\4\0\10\15\2\0\2\15\2\0\26\15\1\0\7\15"+ + "\1\0\1\15\3\0\4\15\3\0\1\15\20\0\1\15"+ + "\15\0\2\15\1\0\3\15\4\0\12\16\2\15\12\0"+ + "\1\15\10\0\6\15\4\0\2\15\2\0\26\15\1\0"+ + "\7\15\1\0\2\15\1\0\2\15\1\0\2\15\37\0"+ + "\4\15\1\0\1\15\7\0\12\16\2\0\3\15\20\0"+ + "\11\15\1\0\3\15\1\0\26\15\1\0\7\15\1\0"+ + "\2\15\1\0\5\15\3\0\1\15\22\0\1\15\17\0"+ + "\2\15\4\0\12\16\11\0\1\15\13\0\10\15\2\0"+ + "\2\15\2\0\26\15\1\0\7\15\1\0\2\15\1\0"+ + "\5\15\3\0\1\15\36\0\2\15\1\0\3\15\4\0"+ + "\12\16\1\0\1\15\21\0\1\15\1\0\6\15\3\0"+ + "\3\15\1\0\4\15\3\0\2\15\1\0\1\15\1\0"+ + "\2\15\3\0\2\15\3\0\3\15\3\0\14\15\26\0"+ + "\1\15\25\0\12\16\25\0\10\15\1\0\3\15\1\0"+ + "\27\15\1\0\20\15\3\0\1\15\32\0\3\15\5\0"+ + "\2\15\4\0\12\16\20\0\1\15\4\0\10\15\1\0"+ + "\3\15\1\0\27\15\1\0\12\15\1\0\5\15\3\0"+ + "\1\15\40\0\1\15\1\0\2\15\4\0\12\16\1\0"+ + "\2\15\22\0\10\15\1\0\3\15\1\0\51\15\2\0"+ + "\1\15\20\0\1\15\5\0\3\15\10\0\3\15\4\0"+ + "\12\16\12\0\6\15\5\0\22\15\3\0\30\15\1\0"+ + "\11\15\1\0\1\15\2\0\7\15\37\0\12\16\21\0"+ + "\60\15\1\0\2\15\14\0\7\15\11\0\12\16\47\0"+ + "\2\15\1\0\1\15\1\0\5\15\1\0\30\15\1\0"+ + "\1\15\1\0\12\15\1\0\2\15\11\0\1\15\2\0"+ + "\5\15\1\0\1\15\11\0\12\16\2\0\4\15\40\0"+ + "\1\15\37\0\12\16\26\0\10\15\1\0\44\15\33\0"+ + "\5\15\163\0\53\15\24\0\1\15\12\16\6\0\6\15"+ + "\4\0\4\15\3\0\1\15\3\0\2\15\7\0\3\15"+ + "\4\0\15\15\14\0\1\15\1\0\12\16\6\0\46\15"+ + "\1\0\1\15\5\0\1\15\2\0\53\15\1\0\115\15"+ + "\1\0\4\15\2\0\7\15\1\0\1\15\1\0\4\15"+ + "\2\0\51\15\1\0\4\15\2\0\41\15\1\0\4\15"+ + "\2\0\7\15\1\0\1\15\1\0\4\15\2\0\17\15"+ + "\1\0\71\15\1\0\4\15\2\0\103\15\45\0\20\15"+ + "\20\0\126\15\2\0\6\15\3\0\u016c\15\2\0\21\15"+ + "\1\14\32\15\5\0\113\15\6\0\10\15\7\0\15\15"+ + "\1\0\4\15\16\0\22\15\16\0\22\15\16\0\15\15"+ + "\1\0\3\15\17\0\64\15\43\0\1\15\4\0\1\15"+ + "\3\0\12\16\46\0\12\16\6\0\131\15\7\0\5\15"+ + "\2\0\42\15\1\0\1\15\5\0\106\15\12\0\37\15"+ + "\47\0\12\16\36\15\2\0\5\15\13\0\54\15\4\0"+ + "\32\15\6\0\12\16\46\0\27\15\11\0\65\15\53\0"+ + "\12\16\6\0\12\16\15\0\1\15\135\0\57\15\21\0"+ + "\7\15\4\0\12\16\51\0\36\15\15\0\2\15\12\16"+ + "\54\15\32\0\44\15\34\0\12\16\3\0\3\15\12\16"+ + "\44\15\2\0\11\15\7\0\53\15\2\0\3\15\51\0"+ + "\4\15\1\0\6\15\1\0\2\15\3\0\1\15\5\0"+ + "\300\15\100\0\26\15\2\0\6\15\2\0\46\15\2\0"+ + "\6\15\2\0\10\15\1\0\1\15\1\0\1\15\1\0"+ + "\1\15\1\0\37\15\2\0\65\15\1\0\7\15\1\0"+ + "\1\15\3\0\3\15\1\0\7\15\3\0\4\15\2\0"+ + "\6\15\4\0\15\15\5\0\3\15\1\0\7\15\3\0"+ + "\13\14\35\0\2\14\5\0\1\14\57\0\1\14\21\0"+ + "\1\15\15\0\1\15\20\0\15\15\145\0\1\15\4\0"+ + "\1\15\2\0\12\15\1\0\1\15\3\0\5\15\6\0"+ + "\1\15\1\0\1\15\1\0\1\15\1\0\4\15\1\0"+ + "\13\15\2\0\4\15\5\0\5\15\4\0\1\15\64\0"+ + "\2\15\u017b\0\57\15\1\0\57\15\1\0\205\15\6\0"+ + "\4\15\3\0\2\15\14\0\46\15\1\0\1\15\5\0"+ + "\1\15\2\0\70\15\7\0\1\15\20\0\27\15\11\0"+ + "\7\15\1\0\7\15\1\0\7\15\1\0\7\15\1\0"+ + "\7\15\1\0\7\15\1\0\7\15\1\0\7\15\120\0"+ + "\1\15\320\0\1\14\4\0\2\15\52\0\5\15\5\0"+ + "\2\15\4\0\126\15\6\0\3\15\1\0\132\15\1\0"+ + "\4\15\5\0\53\15\1\0\136\15\21\0\33\15\65\0"+ + "\306\15\112\0\360\15\20\0\215\15\103\0\56\15\2\0"+ + "\15\15\3\0\20\15\12\16\2\15\24\0\57\15\20\0"+ + "\37\15\2\0\106\15\61\0\11\15\2\0\147\15\2\0"+ + "\65\15\2\0\5\15\60\0\13\15\1\0\3\15\1\0"+ + "\4\15\1\0\27\15\35\0\64\15\16\0\62\15\34\0"+ + "\12\16\30\0\6\15\3\0\1\15\1\0\2\15\1\0"+ + "\12\16\34\15\12\0\27\15\31\0\35\15\7\0\57\15"+ + "\34\0\1\15\12\16\6\0\5\15\1\0\12\15\12\16"+ + "\5\15\1\0\51\15\27\0\3\15\1\0\10\15\4\0"+ + "\12\16\6\0\27\15\3\0\1\15\3\0\62\15\1\0"+ + "\1\15\3\0\2\15\2\0\5\15\2\0\1\15\1\0"+ + "\1\15\30\0\3\15\2\0\13\15\7\0\3\15\14\0"+ + "\6\15\2\0\6\15\2\0\6\15\11\0\7\15\1\0"+ + "\7\15\1\0\53\15\1\0\14\15\10\0\163\15\15\0"+ + "\12\16\6\0\244\15\14\0\27\15\4\0\61\15\4\0"+ + "\156\15\2\0\152\15\46\0\7\15\14\0\5\15\5\0"+ + "\1\15\1\0\12\15\1\0\15\15\1\0\5\15\1\0"+ + "\1\15\1\0\2\15\1\0\2\15\1\0\154\15\41\0"+ + "\153\15\22\0\100\15\2\0\66\15\50\0\14\15\164\0"+ + "\5\15\1\0\207\15\23\0\12\16\7\0\32\15\6\0"+ + "\32\15\13\0\131\15\3\0\6\15\2\0\6\15\2\0"+ + "\6\15\2\0\3\15\43\0\14\15\1\0\32\15\1\0"+ + "\23\15\1\0\2\15\1\0\17\15\2\0\16\15\42\0"+ + "\173\15\205\0\35\15\3\0\61\15\57\0\40\15\15\0"+ + "\24\15\1\0\10\15\6\0\46\15\12\0\36\15\2\0"+ + "\44\15\4\0\10\15\60\0\236\15\2\0\12\16\6\0"+ + "\44\15\4\0\44\15\4\0\50\15\10\0\64\15\234\0"+ + "\67\15\11\0\26\15\12\0\10\15\230\0\6\15\2\0"+ + "\1\15\1\0\54\15\1\0\2\15\3\0\1\15\2\0"+ + "\27\15\12\0\27\15\11\0\37\15\101\0\23\15\1\0"+ + "\2\15\12\0\26\15\12\0\32\15\106\0\70\15\6\0"+ + "\2\15\100\0\1\15\17\0\4\15\1\0\3\15\1\0"+ + "\35\15\52\0\35\15\3\0\35\15\43\0\10\15\1\0"+ + "\34\15\33\0\66\15\12\0\26\15\12\0\23\15\15\0"+ + "\22\15\156\0\111\15\67\0\63\15\15\0\63\15\15\0"+ + "\44\15\14\0\12\16\306\0\35\15\12\0\1\15\10\0"+ + "\26\15\232\0\27\15\14\0\65\15\56\0\12\16\23\0"+ + "\55\15\40\0\31\15\7\0\12\16\11\0\44\15\17\0"+ + "\12\16\4\0\1\15\13\0\43\15\3\0\1\15\14\0"+ + "\60\15\16\0\4\15\13\0\12\16\1\15\1\0\1\15"+ + "\43\0\22\15\1\0\31\15\124\0\7\15\1\0\1\15"+ + "\1\0\4\15\1\0\17\15\1\0\12\15\7\0\57\15"+ + "\21\0\12\16\13\0\10\15\2\0\2\15\2\0\26\15"+ + "\1\0\7\15\1\0\2\15\1\0\5\15\3\0\1\15"+ + "\22\0\1\15\14\0\5\15\236\0\65\15\22\0\4\15"+ + "\5\0\12\16\5\0\1\15\40\0\60\15\24\0\2\15"+ + "\1\0\1\15\10\0\12\16\246\0\57\15\51\0\4\15"+ + "\44\0\60\15\24\0\1\15\13\0\12\16\46\0\53\15"+ + "\15\0\1\15\7\0\12\16\66\0\33\15\25\0\12\16"+ + "\306\0\54\15\164\0\100\15\12\16\25\0\1\15\240\0"+ + "\10\15\2\0\47\15\20\0\1\15\1\0\1\15\34\0"+ + "\1\15\12\0\50\15\7\0\1\15\25\0\1\15\13\0"+ + "\56\15\23\0\1\15\42\0\71\15\7\0\11\15\1\0"+ + "\45\15\21\0\1\15\17\0\12\16\30\0\36\15\160\0"+ + "\7\15\1\0\2\15\1\0\46\15\25\0\1\15\11\0"+ + "\12\16\6\0\6\15\1\0\2\15\1\0\40\15\16\0"+ + "\1\15\7\0\12\16\u0136\0\23\15\15\0\232\15\346\0"+ + "\304\15\274\0\57\15\321\0\107\15\271\0\71\15\7\0"+ + "\37\15\1\0\12\16\146\0\36\15\22\0\60\15\20\0"+ + "\4\15\14\0\12\16\11\0\25\15\5\0\23\15\260\0"+ + "\100\15\200\0\113\15\5\0\1\15\102\0\15\15\100\0"+ + "\2\15\1\0\1\15\34\0\370\15\10\0\363\15\15\0"+ + "\37\15\61\0\3\15\21\0\4\15\10\0\u018c\15\4\0"+ + "\153\15\5\0\15\15\3\0\11\15\7\0\12\15\146\0"+ + "\125\15\1\0\107\15\1\0\2\15\2\0\1\15\2\0"+ + "\2\15\2\0\4\15\1\0\14\15\1\0\1\15\1\0"+ + "\7\15\1\0\101\15\1\0\4\15\2\0\10\15\1\0"+ + "\7\15\1\0\34\15\1\0\4\15\1\0\5\15\1\0"+ + "\1\15\3\0\7\15\1\0\u0154\15\2\0\31\15\1\0"+ + "\31\15\1\0\37\15\1\0\31\15\1\0\37\15\1\0"+ + "\31\15\1\0\37\15\1\0\31\15\1\0\37\15\1\0"+ + "\31\15\1\0\10\15\2\0\62\16\55\15\12\0\7\15"+ + "\2\0\12\16\4\0\1\15\u0171\0\54\15\4\0\12\16"+ + "\6\0\305\15\73\0\104\15\7\0\1\15\4\0\12\16"+ + "\246\0\4\15\1\0\33\15\1\0\2\15\1\0\1\15"+ + "\2\0\1\15\1\0\12\15\1\0\4\15\1\0\1\15"+ + "\1\0\1\15\6\0\1\15\4\0\1\15\1\0\1\15"+ + "\1\0\1\15\1\0\3\15\1\0\2\15\1\0\1\15"+ + "\2\0\1\15\1\0\1\15\1\0\1\15\1\0\1\15"+ + "\1\0\1\15\1\0\2\15\1\0\1\15\2\0\4\15"+ + "\1\0\7\15\1\0\4\15\1\0\4\15\1\0\1\15"+ + "\1\0\12\15\1\0\21\15\5\0\3\15\1\0\5\15"+ + "\1\0\21\15\104\0\327\15\51\0\65\15\13\0\336\15"+ + "\2\0\u0182\15\16\0\u0131\15\37\0\36\15\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\3\1\4\1\1\1\5\2\1"+ - "\1\6\1\7\7\0\1\10\1\11\1\12\1\13\1\14"+ - "\1\15\1\16"; + "\1\0\1\1\1\2\1\3\3\1\1\4\1\5\1\6"+ + "\7\0\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+ + "\1\16"; private static int [] zzUnpackAction() { int [] result = new int[25]; @@ -187,16 +303,16 @@ public class _CommandLineLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\17\0\36\0\55\0\74\0\113\0\132\0\151"+ - "\0\170\0\17\0\17\0\207\0\226\0\245\0\264\0\303"+ - "\0\322\0\341\0\360\0\17\0\17\0\17\0\17\0\17"+ - "\0\17"; + "\0\17\0\170\0\207\0\226\0\245\0\264\0\303\0\322"+ + "\0\341\0\17\0\17\0\17\0\17\0\17\0\17\0\17"+ + "\0\360"; private static int [] zzUnpackRowMap() { int [] result = new int[25]; @@ -208,7 +324,7 @@ public class _CommandLineLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -216,35 +332,36 @@ public class _CommandLineLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\2\3\1\4\1\2\1\4\1\2\1\5\1\6"+ - "\2\7\1\5\1\10\1\11\1\12\20\0\2\3\20\0"+ - "\5\4\1\0\1\4\10\0\5\5\1\0\1\5\7\0"+ - "\1\13\1\0\1\13\2\0\1\14\12\0\5\7\1\0"+ - "\1\7\7\0\1\15\1\0\1\15\1\0\1\16\1\0"+ - "\2\17\1\16\6\0\1\20\1\0\1\20\1\0\1\21"+ - "\1\0\2\22\1\21\6\0\1\23\1\0\1\23\13\0"+ - "\1\15\1\0\5\15\1\0\1\15\1\0\1\24\4\0"+ - "\1\16\1\0\5\16\1\0\1\16\1\0\1\25\4\0"+ - "\1\17\1\0\5\17\1\0\1\17\1\0\1\26\4\0"+ - "\1\20\1\0\5\20\1\0\1\20\2\0\1\27\3\0"+ - "\1\21\1\0\5\21\1\0\1\21\2\0\1\30\3\0"+ - "\1\22\1\0\5\22\1\0\1\22\2\0\1\31\5\0"+ - "\2\23\2\0\1\23\1\0\1\23\4\0"; + "\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\2"+ + "\1\11\1\12\1\2\1\4\1\3\1\12\1\10\20\0"+ + "\1\3\12\0\1\3\4\0\1\4\2\0\3\4\1\0"+ + "\2\4\6\0\1\13\3\0\1\14\2\0\1\15\1\0"+ + "\1\13\1\0\1\15\1\14\2\0\1\16\3\0\1\17"+ + "\2\0\1\20\1\0\1\16\1\0\1\20\1\17\5\0"+ + "\1\21\3\0\1\22\3\0\1\22\3\0\1\10\2\0"+ + "\3\10\1\0\2\10\6\0\1\12\2\0\3\12\1\0"+ + "\2\12\5\0\2\13\1\23\1\0\3\13\1\0\2\13"+ + "\5\0\2\14\1\24\1\0\3\14\1\0\2\14\5\0"+ + "\2\15\1\25\1\0\3\15\1\0\2\15\5\0\2\16"+ + "\1\0\1\26\3\16\1\0\2\16\5\0\2\17\1\0"+ + "\1\27\3\17\1\0\2\17\5\0\2\20\1\0\1\30"+ + "\3\20\1\0\2\20\15\0\1\31\3\0\1\31\6\0"+ + "\2\31\2\0\2\31\4\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[255]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -271,12 +388,12 @@ public class _CommandLineLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\7\1\2\11\7\0\1\1\6\11"; + "\1\0\1\11\6\1\1\11\1\1\7\0\7\11\1\1"; private static int [] zzUnpackAttribute() { int [] result = new int[25]; @@ -323,15 +440,27 @@ public class _CommandLineLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -350,26 +479,22 @@ public class _CommandLineLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -501,7 +626,8 @@ public class _CommandLineLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -535,7 +661,7 @@ public class _CommandLineLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -557,11 +683,11 @@ public class _CommandLineLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -584,75 +710,75 @@ public class _CommandLineLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return BAD_CHARACTER; - } - // fall through + } + // fall through case 15: break; - case 2: + case 2: { return WHITE_SPACE; - } - // fall through + } + // fall through case 16: break; - case 3: - { return LITERAL_STARTS_FROM_LETTER; - } - // fall through - case 17: break; - case 4: + case 3: { return LITERAL_STARTS_FROM_SYMBOL; - } - // fall through - case 18: break; - case 5: + } + // fall through + case 17: break; + case 4: { return LITERAL_STARTS_FROM_DIGIT; - } - // fall through - case 19: break; - case 6: + } + // fall through + case 18: break; + case 5: { return EQ; - } - // fall through + } + // fall through + case 19: break; + case 6: + { return LITERAL_STARTS_FROM_LETTER; + } + // fall through case 20: break; - case 7: + case 7: { return SHORT_OPTION_NAME_TOKEN; - } - // fall through + } + // fall through case 21: break; - case 8: - { return LONG_OPTION_NAME_TOKEN; - } - // fall through - case 22: break; - case 9: - { return SPACED_LITERAL_STARTS_FROM_LETTER; - } - // fall through - case 23: break; - case 10: + case 8: { return SPACED_LITERAL_STARTS_FROM_SYMBOL; - } - // fall through - case 24: break; - case 11: + } + // fall through + case 22: break; + case 9: { return SPACED_LITERAL_STARTS_FROM_DIGIT; - } - // fall through - case 25: break; - case 12: - { return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER; - } - // fall through - case 26: break; - case 13: + } + // fall through + case 23: break; + case 10: + { return SPACED_LITERAL_STARTS_FROM_LETTER; + } + // fall through + case 24: break; + case 11: { return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL; - } - // fall through - case 27: break; - case 14: + } + // fall through + case 25: break; + case 12: { return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT; - } - // fall through + } + // fall through + case 26: break; + case 13: + { return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER; + } + // fall through + case 27: break; + case 14: + { return LONG_OPTION_NAME_TOKEN; + } + // fall through case 28: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/python/python-psi-impl/gen/com/jetbrains/python/lexer/_PythonLexer.java b/python/python-psi-impl/gen/com/jetbrains/python/lexer/_PythonLexer.java index 3b4645530000..ef57793bc41a 100644 --- a/python/python-psi-impl/gen/com/jetbrains/python/lexer/_PythonLexer.java +++ b/python/python-psi-impl/gen/com/jetbrains/python/lexer/_PythonLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: Python.flex /* It's an automatically generated code. Do not modify it. */ package com.jetbrains.python.lexer; @@ -8,11 +9,6 @@ import com.jetbrains.python.PyTokenTypes; import com.intellij.openapi.util.text.StringUtil; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file Python.flex - */ class _PythonLexer implements FlexLexerEx { /** This character denotes the end of file */ @@ -35,184 +31,312 @@ class _PythonLexer implements FlexLexerEx { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 15680 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\2\u1f00\1\u2000\7\u1f00\1\u2100\1\u2200\1\u2300"+ + "\1\u1f00\1\u2400\1\u2500\2\u1f00\31\u0100\1\u2600\121\u0100\1\u2700"+ + "\4\u0100\1\u2800\1\u0100\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00"+ + "\1\u2e00\53\u0100\1\u2f00\10\u3000\31\u1f00\1\u0100\1\u3100\1\u3200"+ + "\1\u0100\1\u3300\1\u3400\1\u3500\1\u3600\1\u3700\1\u3800\1\u3900"+ + "\1\u3a00\1\u3b00\1\u0100\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000"+ + "\1\u4100\1\u4200\1\u1f00\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u4e00\1\u1f00"+ + "\1\u4f00\1\u5000\1\u5100\1\u1f00\3\u0100\1\u5200\1\u5300\1\u5400"+ + "\12\u1f00\4\u0100\1\u5500\17\u1f00\2\u0100\1\u5600\41\u1f00\2\u0100"+ + "\1\u5700\1\u5800\2\u1f00\1\u5900\1\u5a00\27\u0100\1\u5b00\2\u0100"+ + "\1\u5c00\45\u1f00\1\u0100\1\u5d00\1\u5e00\11\u1f00\1\u5f00\24\u1f00"+ + "\1\u6000\1\u6100\1\u1f00\1\u6200\1\u6300\1\u6400\1\u6500\2\u1f00"+ + "\1\u6600\5\u1f00\1\u6700\1\u6800\1\u6900\5\u1f00\1\u6a00\1\u6b00"+ + "\4\u1f00\1\u6c00\2\u1f00\1\u6d00\16\u1f00\246\u0100\1\u6e00\20\u0100"+ + "\1\u6f00\1\u7000\25\u0100\1\u7100\34\u0100\1\u7200\14\u1f00\2\u0100"+ + "\1\u7300\u0b06\u1f00\1\u2700\u02fe\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\6\15\1\16\23\15"+ - "\1\17\1\15\1\20\1\21\12\15\1\22\10\12\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\1\36\2\12\1\15\1\37\3\12\1\40\10\12\1\41\1\42\5\15\1\43"+ - "\1\44\11\12\1\45\2\12\1\46\4\12\1\47\1\50\1\51\1\12\1\52\1\12\1\53\1\54\1"+ - "\55\3\12\51\15\1\56\3\15\1\57\1\60\4\15\1\61\12\12\1\62\u02c1\12\1\63\277"+ - "\12"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 3328 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\1\1\7\13\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\22\12\13"+ - "\1\24\1\13\1\25\1\24\1\13\1\26\1\24\1\13\1\27\1\30\1\13\1\31\1\32\1\1\1\31"+ - "\4\13\1\33\6\13\1\34\1\35\1\36\1\1\3\13\1\37\6\13\1\16\1\40\2\13\1\41\2\13"+ - "\1\42\1\1\1\13\1\43\4\1\1\13\1\44\1\1\1\45\1\22\7\13\1\46\1\24\1\34\1\47\1"+ - "\35\1\50\1\51\1\52\1\46\1\16\1\53\1\47\1\35\1\54\1\55\1\56\1\57\1\60\1\61"+ - "\1\22\1\35\1\62\1\63\1\64\1\46\1\65\1\66\1\47\1\35\1\62\1\67\1\70\1\46\1\71"+ - "\1\72\1\73\1\74\1\75\1\76\1\77\1\57\1\1\1\100\1\101\1\35\1\102\1\103\1\104"+ - "\1\46\1\1\1\100\1\101\1\35\1\105\1\103\1\106\1\46\1\107\1\110\1\101\1\13\1"+ - "\37\1\111\1\112\1\46\1\113\1\114\1\115\1\13\1\116\1\117\1\120\1\57\1\121\1"+ - "\24\2\13\1\31\1\122\1\123\2\1\1\124\1\125\1\126\1\127\1\130\1\131\2\1\1\64"+ - "\1\132\1\123\1\133\1\134\1\13\1\135\1\24\1\136\1\134\1\13\1\135\1\137\3\1"+ - "\4\13\1\123\4\13\1\140\2\13\1\141\2\13\1\142\24\13\1\143\1\144\2\13\1\143"+ - "\2\13\1\145\1\146\1\14\3\13\1\146\3\13\1\37\2\1\1\13\1\1\5\13\1\147\1\24\45"+ - "\13\1\150\1\13\1\24\1\31\4\13\1\151\1\152\1\153\1\154\1\13\1\154\1\13\1\155"+ - "\1\153\1\156\5\13\1\157\1\123\1\1\1\160\1\123\5\13\1\26\2\13\1\31\4\13\1\60"+ - "\1\13\1\122\2\43\1\57\1\13\1\42\1\154\2\13\1\43\1\13\1\161\1\123\2\1\1\13"+ - "\1\43\3\13\1\122\1\13\1\150\2\123\1\162\1\122\4\1\4\13\1\43\1\123\1\163\1"+ - "\155\3\13\1\40\3\13\1\155\3\13\1\26\1\164\1\40\1\13\1\42\1\152\4\1\1\165\1"+ - "\13\1\166\17\13\1\167\21\13\1\147\2\13\1\147\1\170\1\13\1\42\3\13\1\171\1"+ - "\172\1\173\1\135\1\172\2\1\1\174\1\175\1\64\1\176\1\1\1\177\1\1\1\135\3\1"+ - "\2\13\1\64\1\200\1\201\1\202\1\203\1\204\1\1\2\13\1\152\62\1\1\205\2\13\1"+ - "\161\161\1\2\13\1\122\2\13\1\122\10\13\1\206\1\155\2\13\1\141\3\13\1\207\1"+ - "\175\1\13\1\210\4\211\2\13\2\1\1\175\35\1\1\212\1\1\1\24\1\213\1\24\4\13\1"+ - "\214\1\24\4\13\1\142\1\215\1\13\1\42\1\24\4\13\1\122\1\1\1\13\1\31\3\1\1\13"+ - "\40\1\133\13\1\60\4\1\135\13\1\60\2\1\10\13\1\135\4\1\2\13\1\42\20\13\1\135"+ - "\1\13\1\216\1\1\3\13\1\217\7\13\1\16\1\1\1\220\1\221\5\13\1\222\1\13\1\122"+ - "\1\26\3\1\1\220\2\13\1\26\1\1\3\13\1\155\4\13\1\60\1\123\1\13\1\223\1\40\1"+ - "\13\1\42\2\13\1\155\1\13\1\135\4\13\1\224\1\123\1\13\1\225\3\13\1\210\1\42"+ - "\1\123\1\13\1\115\4\13\1\32\1\160\1\13\1\226\1\227\1\230\1\211\2\13\1\142"+ - "\1\60\7\13\1\231\1\123\72\13\1\155\1\13\1\232\2\13\1\43\20\1\26\13\1\42\6"+ - "\13\1\161\2\1\1\210\1\233\1\35\1\234\1\235\6\13\1\16\1\1\1\236\25\13\1\42"+ - "\1\1\4\13\1\221\2\13\1\26\2\1\1\43\1\13\1\1\1\13\1\237\1\240\2\1\1\136\7\13"+ - "\1\135\1\1\1\123\1\24\1\241\1\24\1\31\1\205\4\13\1\122\1\242\1\243\2\1\1\244"+ - "\1\13\1\14\1\245\2\42\2\1\7\13\1\31\4\1\3\13\1\154\7\1\1\246\10\1\1\13\1\135"+ - "\3\13\2\64\1\1\2\13\1\1\1\13\1\31\2\13\1\31\1\13\1\42\2\13\1\247\1\250\2\1"+ - "\11\13\1\42\1\123\2\13\1\247\1\13\1\43\2\13\1\26\3\13\1\155\11\1\23\13\1\210"+ - "\1\13\1\60\1\26\11\1\1\251\2\13\1\252\1\13\1\60\1\13\1\210\1\13\1\122\4\1"+ - "\1\13\1\253\1\13\1\60\1\13\1\161\4\1\3\13\1\254\4\1\1\255\1\256\1\13\1\257"+ - "\2\1\1\13\1\135\1\13\1\135\2\1\1\134\1\13\1\210\1\1\3\13\1\60\1\13\1\60\1"+ - "\13\1\32\1\13\1\16\6\1\4\13\1\152\3\1\3\13\1\32\3\13\1\32\60\1\4\13\1\210"+ - "\1\1\1\57\1\175\3\13\1\31\1\1\1\13\1\152\1\123\3\13\1\260\1\1\2\13\1\261\4"+ - "\13\1\262\1\263\2\1\1\13\1\22\1\13\1\264\4\1\1\265\1\27\1\152\3\13\1\31\1"+ - "\123\1\34\1\47\1\35\1\62\1\67\1\266\1\267\1\154\10\1\4\13\1\31\1\123\2\1\4"+ - "\13\1\270\1\123\12\1\3\13\1\271\1\64\1\272\2\1\4\13\1\273\1\123\2\1\3\13\1"+ - "\26\1\123\3\1\1\13\1\102\1\43\1\123\26\1\4\13\1\123\1\175\34\1\3\13\1\152"+ - "\20\1\1\35\2\13\1\14\1\64\1\123\1\1\1\221\1\13\1\221\1\134\1\210\64\1\71\13"+ - "\1\161\6\1\6\13\1\122\1\1\14\13\1\155\53\1\2\13\1\122\75\1\44\13\1\210\33"+ - "\1\43\13\1\152\1\13\1\122\1\123\6\1\1\13\1\42\1\154\3\13\1\210\1\155\1\123"+ - "\1\236\1\274\1\13\67\1\4\13\1\154\2\13\1\122\1\175\1\13\4\1\1\64\1\1\76\13"+ - "\1\135\1\1\57\13\1\32\20\1\1\16\77\1\6\13\1\31\1\135\1\152\1\275\114\1\1\276"+ - "\1\277\1\300\1\1\1\301\11\1\1\302\33\1\5\13\1\136\3\13\1\153\1\303\1\304\1"+ - "\305\3\13\1\306\1\307\1\13\1\310\1\311\1\101\24\13\1\271\1\13\1\101\1\142"+ - "\1\13\1\142\1\13\1\136\1\13\1\136\1\122\1\13\1\122\1\13\1\35\1\13\1\35\1\13"+ - "\1\312\3\313\40\1\3\13\1\232\2\13\1\135\1\314\1\176\1\163\1\24\25\1\1\14\1"+ - "\222\1\315\75\1\14\13\1\154\1\210\2\1\4\13\1\31\1\123\112\1\1\305\1\13\1\316"+ - "\1\317\1\320\1\321\1\322\1\323\1\324\1\43\1\325\1\43\47\1\1\13\1\161\1\13"+ - "\1\161\1\13\1\161\47\1\55\13\1\210\2\1\103\13\1\154\15\13\1\42\150\13\1\16"+ - "\25\1\41\13\1\42\56\1\17\13\41\1"); - /* The ZZ_CMAP_A table has 3424 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\41\1\42\1\51\1\52\1\17\22\0\1\37\1\40\1\32\1\16\1\0\1\104\1\105\1"+ - "\30\1\43\1\44\1\101\1\100\1\113\1\24\1\22\1\103\1\1\1\5\6\3\2\2\1\47\1\53"+ - "\1\111\1\50\1\110\1\0\1\102\1\4\1\11\1\26\1\4\1\23\1\33\3\20\1\25\1\20\1\15"+ - "\1\20\1\36\1\10\2\20\1\27\2\20\1\14\2\20\1\6\2\20\1\45\1\31\1\46\1\107\1\7"+ - "\1\114\1\54\1\63\1\65\1\56\1\60\1\70\1\75\1\77\1\67\1\25\1\64\1\13\1\74\1"+ - "\55\1\66\1\72\1\20\1\61\1\57\1\62\1\12\1\20\1\76\1\71\1\73\1\20\1\34\1\106"+ - "\1\35\1\112\6\0\1\115\24\0\1\20\12\0\1\20\4\0\1\20\5\0\27\20\1\0\12\20\4\0"+ - "\14\20\16\0\5\20\7\0\1\20\1\0\1\20\1\0\5\20\1\0\2\20\2\0\4\20\1\0\1\20\6\0"+ - "\1\20\1\0\3\20\1\0\1\20\1\0\4\20\1\0\23\20\1\0\11\20\1\0\26\20\2\0\1\20\6"+ - "\0\10\20\10\0\16\20\1\0\1\20\1\0\2\20\1\0\2\20\1\0\1\20\10\0\13\20\5\0\3\20"+ - "\15\0\12\21\4\0\6\20\1\0\10\20\2\0\12\20\1\0\6\20\12\21\3\20\2\0\14\20\2\0"+ - "\3\20\12\21\14\20\4\0\1\20\5\0\16\20\2\0\14\20\4\0\5\20\1\0\10\20\6\0\20\20"+ - "\2\0\12\21\1\20\2\0\16\20\1\0\1\20\3\0\4\20\2\0\11\20\2\0\2\20\2\0\4\20\10"+ - "\0\1\20\4\0\2\20\1\0\1\20\1\0\3\20\1\0\6\20\4\0\2\20\1\0\2\20\1\0\2\20\1\0"+ - "\2\20\2\0\1\20\1\0\5\20\4\0\2\20\2\0\3\20\3\0\1\20\7\0\4\20\1\0\1\20\7\0\12"+ - "\21\6\20\13\0\3\20\1\0\11\20\1\0\2\20\1\0\2\20\1\0\5\20\2\0\12\20\1\0\3\20"+ - "\1\0\3\20\2\0\1\20\30\0\1\20\7\0\3\20\1\0\10\20\2\0\6\20\2\0\2\20\2\0\3\20"+ - "\10\0\2\20\4\0\2\20\1\0\1\20\1\0\1\20\20\0\2\20\1\0\6\20\3\0\3\20\1\0\4\20"+ - "\3\0\2\20\1\0\1\20\1\0\2\20\3\0\2\20\3\0\3\20\3\0\14\20\4\0\5\20\3\0\3\20"+ - "\1\0\4\20\2\0\1\20\6\0\1\20\10\0\4\20\1\0\10\20\1\0\3\20\1\0\30\20\3\0\10"+ - "\20\1\0\3\20\1\0\4\20\7\0\2\20\1\0\3\20\5\0\4\20\1\0\5\20\2\0\4\20\5\0\2\20"+ - "\7\0\1\20\2\0\2\20\16\0\3\20\1\0\10\20\1\0\7\20\1\0\3\20\1\0\5\20\5\0\4\20"+ - "\7\0\1\20\12\0\6\20\2\0\2\20\1\0\22\20\3\0\10\20\1\0\11\20\1\0\1\20\2\0\7"+ - "\20\3\0\1\20\4\0\6\20\1\0\1\20\1\0\10\20\2\0\2\20\14\0\17\20\1\0\12\21\7\0"+ - "\2\20\1\0\1\20\2\0\2\20\1\0\1\20\2\0\1\20\6\0\4\20\1\0\7\20\1\0\3\20\1\0\1"+ - "\20\1\0\1\20\2\0\2\20\1\0\15\20\1\0\3\20\2\0\5\20\1\0\1\20\1\0\6\20\2\0\12"+ - "\21\2\0\4\20\10\0\2\20\13\0\1\20\1\0\1\20\1\0\1\20\4\0\12\20\1\0\24\20\3\0"+ - "\5\20\1\0\12\20\6\0\1\20\11\0\12\21\4\20\2\0\6\20\1\0\1\20\5\0\1\20\2\0\13"+ - "\20\1\0\15\20\1\0\4\20\2\0\7\20\1\0\1\20\1\0\4\20\2\0\1\20\1\0\4\20\2\0\7"+ - "\20\1\0\1\20\1\0\4\20\2\0\16\20\2\0\6\20\2\0\15\20\2\0\14\20\3\0\13\20\7\0"+ - "\15\20\1\0\7\20\13\0\4\20\14\0\1\20\1\0\2\20\14\0\4\20\3\0\1\20\4\0\2\20\15"+ - "\0\3\20\2\0\12\20\15\0\1\20\23\0\5\20\12\21\3\0\6\20\1\0\23\20\1\0\2\20\6"+ - "\0\6\20\5\0\15\20\1\0\1\20\1\0\1\20\1\0\1\20\1\0\6\20\1\0\7\20\1\0\1\20\3"+ - "\0\3\20\1\0\7\20\3\0\4\20\2\0\6\20\14\0\2\115\25\0\1\20\4\0\1\20\14\0\1\20"+ - "\15\0\1\20\2\0\1\20\4\0\1\20\2\0\12\20\1\0\1\20\3\0\5\20\6\0\1\20\1\0\1\20"+ - "\1\0\1\20\1\0\4\20\1\0\13\20\2\0\4\20\5\0\5\20\4\0\1\20\7\0\17\20\6\0\15\20"+ - "\7\0\10\20\11\0\7\20\1\0\7\20\6\0\3\20\11\0\5\20\2\0\5\20\3\0\7\20\2\0\2\20"+ - "\2\0\3\20\5\0\13\20\12\21\2\20\4\0\3\20\1\0\12\20\1\0\1\20\7\0\11\20\2\0\27"+ - "\20\2\0\15\20\3\0\1\20\1\0\1\20\2\0\1\20\16\0\1\20\12\21\5\20\3\0\5\20\12"+ - "\0\6\20\2\0\6\20\2\0\6\20\11\0\13\20\1\0\2\20\2\0\7\20\4\0\5\20\3\0\5\20\5"+ - "\0\12\20\1\0\5\20\1\0\1\20\1\0\2\20\1\0\2\20\1\0\12\20\3\0\15\20\3\0\2\20"+ - "\30\0\16\20\4\0\1\20\2\0\6\20\2\0\6\20\2\0\6\20\2\0\3\20\3\0\14\20\1\0\16"+ - "\20\1\0\2\20\1\0\1\20\15\0\1\20\2\0\4\20\4\0\10\20\1\0\5\20\12\0\6\20\2\0"+ - "\1\20\1\0\14\20\1\0\2\20\3\0\1\20\2\0\4\20\1\0\2\20\12\0\10\20\6\0\6\20\1"+ - "\0\2\20\5\0\10\20\1\0\3\20\1\0\13\20\4\0\3\20\4\0\6\20\1\0\12\21\4\20\2\0"+ - "\1\20\11\0\5\20\5\0\3\20\3\0\12\21\1\20\1\0\1\20\3\0\10\20\6\0\1\20\1\0\7"+ - "\20\1\0\1\20\1\0\4\20\1\0\2\20\6\0\1\20\5\0\7\20\2\0\7\20\3\0\6\20\1\0\1\20"+ - "\10\0\6\20\2\0\10\20\10\0\6\20\2\0\1\20\3\0\1\20\13\0\10\20\5\0\15\20\3\0"+ - "\2\20\6\0\5\20\3\0\6\20\10\0\10\20\2\0\7\20\16\0\4\20\4\0\3\20\15\0\1\20\2"+ - "\0\2\20\2\0\4\20\1\0\14\20\1\0\1\20\1\0\7\20\1\0\21\20\1\0\4\20\2\0\10\20"+ - "\1\0\7\20\1\0\14\20\1\0\4\20\1\0\5\20\1\0\1\20\3\0\11\20\1\0\10\20\2\0\22"+ - "\21\5\0\1\20\12\0\2\20\1\0\2\20\1\0\5\20\6\0\2\20\1\0\1\20\2\0\1\20\1\0\12"+ - "\20\1\0\4\20\1\0\1\20\1\0\1\20\6\0\1\20\4\0\1\20\1\0\1\20\1\0\1\20\1\0\3\20"+ - "\1\0\2\20\1\0\1\20\2\0\1\20\1\0\1\20\1\0\1\20\1\0\1\20\1\0\1\20\1\0\2\20\1"+ - "\0\1\20\2\0\4\20\1\0\7\20\1\0\4\20\1\0\4\20\1\0\1\20\1\0\12\20\1\0\5\20\1"+ - "\0\3\20\1\0\5\20\1\0\5\20"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\4\1\5\22\0\1\6"+ + "\1\7\1\10\1\11\1\0\1\12\1\13\1\14\1\15"+ + "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ + "\1\26\6\27\2\30\1\31\1\32\1\33\1\34\1\35"+ + "\1\0\1\36\1\37\1\40\1\41\1\37\1\42\1\43"+ + "\3\44\1\45\1\44\1\46\1\44\1\47\1\50\2\44"+ + "\1\51\2\44\1\52\2\44\1\53\2\44\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\72\1\45\1\73\1\74"+ + "\1\75\1\76\1\77\1\100\1\44\1\101\1\102\1\103"+ + "\1\104\1\44\1\105\1\106\1\107\1\44\1\110\1\111"+ + "\1\112\1\113\6\0\1\114\44\0\1\44\12\0\1\44"+ + "\4\0\1\44\5\0\27\44\1\0\37\44\1\0\u01ca\44"+ + "\4\0\14\44\16\0\5\44\7\0\1\44\1\0\1\44"+ + "\21\0\165\44\1\0\2\44\2\0\4\44\1\0\1\44"+ + "\6\0\1\44\1\0\3\44\1\0\1\44\1\0\24\44"+ + "\1\0\123\44\1\0\213\44\1\0\255\44\1\0\46\44"+ + "\2\0\1\44\6\0\51\44\10\0\55\44\1\0\1\44"+ + "\1\0\2\44\1\0\2\44\1\0\1\44\10\0\33\44"+ + "\4\0\4\44\35\0\13\44\5\0\100\44\12\115\4\0"+ + "\146\44\1\0\10\44\2\0\12\44\1\0\6\44\12\115"+ + "\3\44\2\0\1\44\20\0\73\44\2\0\145\44\16\0"+ + "\12\115\54\44\4\0\1\44\2\0\1\44\2\0\56\44"+ + "\22\0\34\44\4\0\13\44\65\0\25\44\1\0\10\44"+ + "\25\0\17\44\1\0\201\44\2\0\12\115\1\0\23\44"+ + "\1\0\10\44\2\0\2\44\2\0\26\44\1\0\7\44"+ + "\1\0\1\44\3\0\4\44\2\0\11\44\2\0\2\44"+ + "\2\0\4\44\10\0\1\44\4\0\2\44\1\0\5\44"+ + "\2\0\12\115\2\44\12\0\1\44\1\0\1\44\2\0"+ + "\3\44\1\0\6\44\4\0\2\44\2\0\26\44\1\0"+ + "\7\44\1\0\2\44\1\0\2\44\1\0\2\44\2\0"+ + "\1\44\1\0\5\44\4\0\2\44\2\0\3\44\3\0"+ + "\1\44\7\0\4\44\1\0\1\44\7\0\12\115\6\44"+ + "\13\0\3\44\1\0\11\44\1\0\3\44\1\0\26\44"+ + "\1\0\7\44\1\0\2\44\1\0\5\44\2\0\12\44"+ + "\1\0\3\44\1\0\3\44\2\0\1\44\17\0\4\44"+ + "\2\0\12\115\11\0\7\44\1\0\3\44\1\0\10\44"+ + "\2\0\2\44\2\0\26\44\1\0\7\44\1\0\2\44"+ + "\1\0\5\44\2\0\11\44\2\0\2\44\2\0\3\44"+ + "\10\0\2\44\4\0\2\44\1\0\5\44\2\0\12\115"+ + "\1\0\1\44\20\0\2\44\1\0\6\44\3\0\3\44"+ + "\1\0\4\44\3\0\2\44\1\0\1\44\1\0\2\44"+ + "\3\0\2\44\3\0\3\44\3\0\14\44\4\0\5\44"+ + "\3\0\3\44\1\0\4\44\2\0\1\44\6\0\1\44"+ + "\16\0\12\115\20\0\15\44\1\0\3\44\1\0\27\44"+ + "\1\0\20\44\3\0\10\44\1\0\3\44\1\0\4\44"+ + "\7\0\2\44\1\0\3\44\5\0\4\44\2\0\12\115"+ + "\20\0\4\44\1\0\10\44\1\0\3\44\1\0\27\44"+ + "\1\0\12\44\1\0\5\44\2\0\11\44\1\0\3\44"+ + "\1\0\4\44\7\0\2\44\7\0\1\44\1\0\4\44"+ + "\2\0\12\115\1\0\2\44\15\0\4\44\1\0\10\44"+ + "\1\0\3\44\1\0\63\44\1\0\3\44\1\0\5\44"+ + "\5\0\4\44\7\0\5\44\2\0\12\115\12\0\6\44"+ + "\2\0\2\44\1\0\22\44\3\0\30\44\1\0\11\44"+ + "\1\0\1\44\2\0\7\44\3\0\1\44\4\0\6\44"+ + "\1\0\1\44\1\0\10\44\6\0\12\115\2\0\2\44"+ + "\15\0\72\44\5\0\17\44\1\0\12\115\47\0\2\44"+ + "\1\0\1\44\1\0\5\44\1\0\30\44\1\0\1\44"+ + "\1\0\27\44\2\0\5\44\1\0\1\44\1\0\6\44"+ + "\2\0\12\115\2\0\4\44\40\0\1\44\27\0\2\44"+ + "\6\0\12\115\13\0\1\44\1\0\1\44\1\0\1\44"+ + "\4\0\12\44\1\0\44\44\4\0\24\44\1\0\22\44"+ + "\1\0\44\44\11\0\1\44\71\0\100\44\12\115\6\0"+ + "\100\44\12\115\4\44\2\0\46\44\1\0\1\44\5\0"+ + "\1\44\2\0\53\44\1\0\115\44\1\0\4\44\2\0"+ + "\7\44\1\0\1\44\1\0\4\44\2\0\51\44\1\0"+ + "\4\44\2\0\41\44\1\0\4\44\2\0\7\44\1\0"+ + "\1\44\1\0\4\44\2\0\17\44\1\0\71\44\1\0"+ + "\4\44\2\0\103\44\2\0\3\44\40\0\20\44\20\0"+ + "\126\44\2\0\6\44\3\0\u016c\44\2\0\21\44\1\0"+ + "\32\44\5\0\113\44\3\0\13\44\7\0\15\44\1\0"+ + "\7\44\13\0\25\44\13\0\24\44\14\0\15\44\1\0"+ + "\3\44\1\0\2\44\14\0\124\44\3\0\1\44\4\0"+ + "\2\44\2\0\12\115\41\0\3\44\2\0\12\115\6\0"+ + "\131\44\7\0\53\44\5\0\106\44\12\0\37\44\1\0"+ + "\14\44\4\0\14\44\12\0\12\115\36\44\2\0\5\44"+ + "\13\0\54\44\4\0\32\44\6\0\12\115\46\0\34\44"+ + "\4\0\77\44\1\0\35\44\2\0\1\44\12\115\6\0"+ + "\12\115\15\0\1\44\10\0\17\44\101\0\114\44\4\0"+ + "\12\115\21\0\11\44\14\0\60\44\12\115\72\44\14\0"+ + "\70\44\10\0\12\115\3\0\3\44\12\115\44\44\2\0"+ + "\11\44\7\0\53\44\2\0\3\44\20\0\3\44\1\0"+ + "\47\44\5\0\372\44\1\0\33\44\2\0\6\44\2\0"+ + "\46\44\2\0\6\44\2\0\10\44\1\0\1\44\1\0"+ + "\1\44\1\0\1\44\1\0\37\44\2\0\65\44\1\0"+ + "\7\44\1\0\1\44\3\0\3\44\1\0\7\44\3\0"+ + "\4\44\2\0\6\44\4\0\15\44\5\0\3\44\1\0"+ + "\7\44\53\0\2\114\25\0\2\44\23\0\1\44\34\0"+ + "\1\44\15\0\1\44\20\0\15\44\63\0\41\44\21\0"+ + "\1\44\4\0\1\44\2\0\12\44\1\0\1\44\3\0"+ + "\5\44\6\0\1\44\1\0\1\44\1\0\1\44\1\0"+ + "\4\44\1\0\13\44\2\0\4\44\5\0\5\44\4\0"+ + "\1\44\21\0\51\44\u022d\0\64\44\26\0\57\44\1\0"+ + "\57\44\1\0\205\44\6\0\11\44\14\0\46\44\1\0"+ + "\1\44\5\0\1\44\2\0\70\44\7\0\1\44\17\0"+ + "\30\44\11\0\7\44\1\0\7\44\1\0\7\44\1\0"+ + "\7\44\1\0\7\44\1\0\7\44\1\0\7\44\1\0"+ + "\7\44\1\0\40\44\57\0\1\44\325\0\3\44\31\0"+ + "\17\44\1\0\5\44\2\0\5\44\4\0\126\44\2\0"+ + "\2\44\2\0\3\44\1\0\132\44\1\0\4\44\5\0"+ + "\53\44\1\0\136\44\21\0\33\44\65\0\306\44\112\0"+ + "\360\44\20\0\215\44\103\0\56\44\2\0\15\44\3\0"+ + "\20\44\12\115\2\44\24\0\63\44\1\0\12\44\1\0"+ + "\163\44\45\0\11\44\2\0\147\44\2\0\65\44\2\0"+ + "\5\44\60\0\61\44\30\0\64\44\14\0\106\44\12\0"+ + "\12\115\6\0\30\44\3\0\1\44\1\0\3\44\12\115"+ + "\44\44\2\0\44\44\14\0\35\44\3\0\101\44\16\0"+ + "\1\44\12\115\6\0\20\44\12\115\5\44\1\0\67\44"+ + "\11\0\16\44\2\0\12\115\6\0\27\44\3\0\111\44"+ + "\30\0\3\44\2\0\20\44\2\0\5\44\12\0\6\44"+ + "\2\0\6\44\2\0\6\44\11\0\7\44\1\0\7\44"+ + "\1\0\53\44\1\0\14\44\10\0\173\44\1\0\2\44"+ + "\2\0\12\115\6\0\244\44\14\0\27\44\4\0\61\44"+ + "\4\0\u0100\114\156\44\2\0\152\44\46\0\7\44\14\0"+ + "\5\44\5\0\14\44\1\0\15\44\1\0\5\44\1\0"+ + "\1\44\1\0\2\44\1\0\2\44\1\0\154\44\41\0"+ + "\153\44\22\0\100\44\2\0\66\44\50\0\14\44\4\0"+ + "\20\44\20\0\20\44\3\0\2\44\30\0\3\44\40\0"+ + "\5\44\1\0\207\44\23\0\12\115\7\0\32\44\4\0"+ + "\1\44\1\0\32\44\13\0\131\44\3\0\6\44\2\0"+ + "\6\44\2\0\6\44\2\0\3\44\43\0\14\44\1\0"+ + "\32\44\1\0\23\44\1\0\2\44\1\0\17\44\2\0"+ + "\16\44\42\0\173\44\105\0\65\44\210\0\1\44\202\0"+ + "\35\44\3\0\61\44\17\0\1\44\37\0\40\44\15\0"+ + "\36\44\5\0\53\44\5\0\36\44\2\0\44\44\4\0"+ + "\10\44\1\0\5\44\52\0\236\44\2\0\12\115\6\0"+ + "\44\44\4\0\44\44\4\0\50\44\10\0\64\44\234\0"+ + "\67\44\11\0\26\44\12\0\10\44\230\0\6\44\2\0"+ + "\1\44\1\0\54\44\1\0\2\44\3\0\1\44\2\0"+ + "\27\44\12\0\27\44\11\0\37\44\101\0\23\44\1\0"+ + "\2\44\12\0\26\44\12\0\32\44\106\0\70\44\6\0"+ + "\2\44\100\0\4\44\1\0\2\44\5\0\10\44\1\0"+ + "\3\44\1\0\35\44\2\0\3\44\4\0\1\44\40\0"+ + "\35\44\3\0\35\44\43\0\10\44\1\0\36\44\31\0"+ + "\66\44\12\0\26\44\12\0\23\44\15\0\22\44\156\0"+ + "\111\44\67\0\63\44\15\0\63\44\15\0\50\44\10\0"+ + "\12\115\306\0\35\44\12\0\1\44\10\0\41\44\217\0"+ + "\27\44\11\0\107\44\37\0\12\115\17\0\74\44\25\0"+ + "\31\44\7\0\12\115\6\0\65\44\1\0\12\115\4\0"+ + "\3\44\11\0\44\44\2\0\1\44\11\0\105\44\4\0"+ + "\4\44\3\0\12\115\1\44\1\0\1\44\43\0\22\44"+ + "\1\0\45\44\6\0\1\44\101\0\7\44\1\0\1\44"+ + "\1\0\4\44\1\0\17\44\1\0\12\44\7\0\73\44"+ + "\5\0\12\115\6\0\4\44\1\0\10\44\2\0\2\44"+ + "\2\0\26\44\1\0\7\44\1\0\2\44\1\0\5\44"+ + "\1\0\12\44\2\0\2\44\2\0\3\44\2\0\1\44"+ + "\6\0\1\44\5\0\7\44\2\0\7\44\3\0\5\44"+ + "\213\0\113\44\5\0\12\115\4\0\2\44\40\0\106\44"+ + "\1\0\1\44\10\0\12\115\246\0\66\44\2\0\11\44"+ + "\27\0\6\44\42\0\101\44\3\0\1\44\13\0\12\115"+ + "\46\0\71\44\7\0\12\115\66\0\33\44\2\0\17\44"+ + "\4\0\12\115\306\0\73\44\145\0\100\44\12\115\25\0"+ + "\1\44\240\0\10\44\2\0\56\44\2\0\10\44\1\0"+ + "\2\44\33\0\77\44\10\0\1\44\10\0\112\44\3\0"+ + "\1\44\42\0\71\44\7\0\11\44\1\0\55\44\1\0"+ + "\11\44\17\0\12\115\30\0\36\44\2\0\26\44\1\0"+ + "\16\44\111\0\7\44\1\0\2\44\1\0\54\44\3\0"+ + "\1\44\1\0\2\44\1\0\11\44\10\0\12\115\6\0"+ + "\6\44\1\0\2\44\1\0\45\44\1\0\2\44\1\0"+ + "\6\44\7\0\12\115\u0136\0\27\44\11\0\232\44\146\0"+ + "\157\44\21\0\304\44\274\0\57\44\321\0\107\44\271\0"+ + "\71\44\7\0\37\44\1\0\12\115\146\0\36\44\2\0"+ + "\5\44\13\0\67\44\11\0\4\44\14\0\12\115\11\0"+ + "\25\44\5\0\23\44\260\0\100\44\200\0\113\44\4\0"+ + "\71\44\7\0\21\44\100\0\2\44\1\0\1\44\34\0"+ + "\370\44\10\0\363\44\15\0\37\44\61\0\3\44\21\0"+ + "\4\44\10\0\u018c\44\4\0\153\44\5\0\15\44\3\0"+ + "\11\44\7\0\12\44\3\0\2\44\306\0\5\44\3\0"+ + "\6\44\10\0\10\44\2\0\7\44\36\0\4\44\224\0"+ + "\3\44\273\0\125\44\1\0\107\44\1\0\2\44\2\0"+ + "\1\44\2\0\2\44\2\0\4\44\1\0\14\44\1\0"+ + "\1\44\1\0\7\44\1\0\101\44\1\0\4\44\2\0"+ + "\10\44\1\0\7\44\1\0\34\44\1\0\4\44\1\0"+ + "\5\44\1\0\1\44\3\0\7\44\1\0\u0154\44\2\0"+ + "\31\44\1\0\31\44\1\0\37\44\1\0\31\44\1\0"+ + "\37\44\1\0\31\44\1\0\37\44\1\0\31\44\1\0"+ + "\37\44\1\0\31\44\1\0\10\44\2\0\62\115\67\44"+ + "\4\0\62\44\10\0\1\44\16\0\1\44\26\0\5\44"+ + "\1\0\17\44\120\0\7\44\1\0\21\44\2\0\7\44"+ + "\1\0\2\44\1\0\5\44\325\0\55\44\3\0\16\44"+ + "\2\0\12\115\4\0\1\44\u0171\0\60\44\12\115\6\0"+ + "\305\44\13\0\7\44\51\0\114\44\4\0\12\115\246\0"+ + "\4\44\1\0\33\44\1\0\2\44\1\0\1\44\2\0"+ + "\1\44\1\0\12\44\1\0\4\44\1\0\1\44\1\0"+ + "\1\44\6\0\1\44\4\0\1\44\1\0\1\44\1\0"+ + "\1\44\1\0\3\44\1\0\2\44\1\0\1\44\2\0"+ + "\1\44\1\0\1\44\1\0\1\44\1\0\1\44\1\0"+ + "\1\44\1\0\2\44\1\0\1\44\2\0\4\44\1\0"+ + "\7\44\1\0\4\44\1\0\4\44\1\0\1\44\1\0"+ + "\12\44\1\0\21\44\5\0\3\44\1\0\5\44\1\0"+ + "\21\44\164\0\32\44\6\0\32\44\6\0\32\44\166\0"+ + "\327\44\51\0\65\44\13\0\336\44\2\0\u0182\44\16\0"+ + "\u0131\44\37\0\36\44\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[29696]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\6\0\1\1\2\2\3\3\1\4\1\5\1\6\1\7"+ - "\1\10\1\7\1\3\1\11\1\12\1\13\1\1\1\14"+ - "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+ - "\1\25\17\3\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\35\1\36\1\37\1\40\1\41\1\42\2\43"+ - "\1\44\2\45\1\46\1\3\2\47\1\22\3\3\1\50"+ - "\1\51\1\50\1\51\1\52\1\53\1\3\2\54\1\3"+ - "\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64"+ - "\1\65\4\3\2\50\1\52\1\66\1\2\5\0\3\2"+ - "\1\67\1\0\1\70\1\0\2\3\1\67\1\71\1\72"+ - "\3\7\1\73\3\7\1\3\2\74\1\75\1\76\1\77"+ - "\14\3\1\100\1\101\1\102\1\103\10\3\1\104\1\105"+ - "\1\106\1\107\1\110\1\111\1\112\1\113\1\114\1\115"+ - "\1\116\1\117\1\120\1\121\1\122\1\0\3\45\1\123"+ - "\3\45\1\3\6\47\2\0\1\124\1\3\2\0\1\51"+ - "\1\50\1\51\1\3\6\54\1\3\2\125\1\57\1\126"+ - "\2\3\1\0\1\50\1\0\1\2\1\0\1\2\1\0"+ - "\1\2\1\0\4\2\1\67\1\0\2\3\1\0\1\7"+ - "\1\127\1\130\1\0\1\127\1\3\2\0\1\131\1\3"+ - "\1\132\1\133\1\134\5\3\1\135\5\3\1\136\5\3"+ - "\1\137\1\140\1\141\1\142\1\0\1\45\1\143\1\144"+ - "\1\0\1\143\1\3\1\47\2\145\1\51\1\3\1\54"+ - "\2\146\1\3\2\0\1\50\1\3\1\0\2\147\1\0"+ - "\1\3\1\74\1\3\1\150\1\151\7\3\1\152\1\3"+ - "\1\153\3\3\1\0\2\144\11\0\1\3\1\125\1\3"+ - "\4\0\2\3\1\154\1\3\1\155\1\156\3\3\1\157"+ - "\1\3\1\160\10\0\1\161\1\127\1\162\1\163\1\164"+ - "\1\3\1\165\1\3\1\166\1\143\1\145\1\146\1\147"+ - "\1\0\1\167\1\3\1\170\1\171"; + "\6\0\1\1\1\2\1\3\1\4\1\5\1\1\1\6"+ + "\1\7\1\10\1\11\1\6\1\12\1\13\1\14\1\15"+ + "\1\16\1\17\1\20\1\21\2\22\1\23\1\24\1\25"+ + "\1\26\1\27\1\30\3\31\1\32\1\33\1\34\1\35"+ + "\1\36\20\31\1\37\1\40\1\41\1\42\1\43\1\44"+ + "\1\45\1\46\1\45\1\43\2\47\1\23\4\31\1\50"+ + "\1\51\2\52\1\50\1\53\1\54\1\55\2\56\1\57"+ + "\1\60\1\61\2\31\1\62\1\63\4\31\1\64\1\65"+ + "\2\50\1\53\1\66\1\67\1\6\1\70\2\6\1\71"+ + "\1\72\3\6\1\73\1\74\1\75\1\76\1\77\1\100"+ + "\1\101\1\102\1\100\1\22\3\0\1\103\1\22\1\0"+ + "\1\22\2\0\1\22\1\0\1\104\1\105\1\106\1\107"+ + "\1\110\1\111\1\112\1\113\1\31\2\114\1\31\1\115"+ + "\14\31\1\116\1\31\1\117\1\120\2\31\1\121\6\31"+ + "\1\122\1\45\1\123\5\45\1\0\6\47\1\124\2\0"+ + "\2\31\2\0\2\52\1\50\1\55\6\56\1\125\1\31"+ + "\2\126\3\31\1\0\1\50\1\6\1\0\1\127\1\130"+ + "\1\127\1\131\1\0\1\132\1\0\1\22\2\0\1\100"+ + "\3\22\1\0\3\22\1\0\1\133\1\134\1\31\2\0"+ + "\1\31\1\135\4\31\1\136\1\137\4\31\1\140\4\31"+ + "\1\141\3\31\1\142\2\31\1\45\1\0\1\143\1\144"+ + "\1\143\1\0\1\47\2\145\1\31\1\52\1\56\2\146"+ + "\1\31\2\0\1\31\1\50\1\0\1\147\1\0\1\147"+ + "\1\114\5\31\1\150\1\151\2\31\1\152\3\31\1\153"+ + "\4\31\1\0\1\144\1\0\1\144\10\0\1\126\1\31"+ + "\4\0\1\31\1\154\1\155\6\31\1\156\1\31\1\157"+ + "\1\160\10\0\1\127\1\161\1\31\1\162\1\31\1\163"+ + "\1\164\1\165\1\166\1\143\1\145\1\146\1\0\1\167"+ + "\1\147\1\31\1\170\1\171"; private static int [] zzUnpackAction() { int [] result = new int[360]; @@ -234,57 +358,57 @@ class _PythonLexer implements FlexLexerEx { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"+ - "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492"+ - "\0\u01d4\0\u04e0\0\u052e\0\u01d4\0\u01d4\0\u01d4\0\u057c\0\u01d4"+ - "\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u05ca\0\u0618\0\u01d4"+ - "\0\u01d4\0\u0666\0\u06b4\0\u0702\0\u0750\0\u079e\0\u07ec\0\u083a"+ - "\0\u0888\0\u08d6\0\u0924\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa"+ + "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u01d4"+ + "\0\u01d4\0\u01d4\0\u01d4\0\u0222\0\u0270\0\u02be\0\u030c\0\u035a"+ + "\0\u03a8\0\u01d4\0\u01d4\0\u03f6\0\u0444\0\u01d4\0\u0492\0\u04e0"+ + "\0\u052e\0\u057c\0\u05ca\0\u0618\0\u01d4\0\u0666\0\u06b4\0\u0702"+ + "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u01d4\0\u01d4\0\u01d4\0\u0888"+ + "\0\u01d4\0\u08d6\0\u0924\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa"+ "\0\u0af8\0\u0b46\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc\0\u0d1a"+ - "\0\u0d68\0\u0db6\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u0e04\0\u0e52"+ - "\0\u0ea0\0\u0eee\0\u01d4\0\u0f3c\0\u0f8a\0\u0fd8\0\u1026\0\u1074"+ - "\0\u10c2\0\u1110\0\u115e\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u01d4"+ - "\0\u12e4\0\u1332\0\u1380\0\u13ce\0\u01d4\0\u01d4\0\u141c\0\u01d4"+ - "\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u146a\0\u14b8\0\u1506\0\u1554"+ - "\0\u15a2\0\u15f0\0\u163e\0\u01d4\0\u01d4\0\u168c\0\u16da\0\u1728"+ - "\0\u1776\0\u17c4\0\u1812\0\u1860\0\u18ae\0\u18fc\0\u194a\0\u1998"+ - "\0\u01d4\0\u19e6\0\u1a34\0\u1a82\0\u1ad0\0\u01d4\0\u01d4\0\u1b1e"+ - "\0\u1b6c\0\u1bba\0\u01d4\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2\0\u1d40"+ - "\0\u1d8e\0\u01d4\0\u01d4\0\u01d4\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6"+ - "\0\u1f14\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u2136"+ - "\0\u02be\0\u02be\0\u02be\0\u02be\0\u2184\0\u21d2\0\u2220\0\u226e"+ - "\0\u22bc\0\u230a\0\u2358\0\u23a6\0\u01d4\0\u01d4\0\u23f4\0\u01d4"+ - "\0\u01d4\0\u2442\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u2490"+ - "\0\u01d4\0\u01d4\0\u24de\0\u252c\0\u257a\0\u25c8\0\u2616\0\u01d4"+ + "\0\u0d68\0\u01d4\0\u0db6\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u0e04"+ + "\0\u0e52\0\u0ea0\0\u0eee\0\u0f3c\0\u0f8a\0\u0fd8\0\u1026\0\u1074"+ + "\0\u10c2\0\u1110\0\u115e\0\u01d4\0\u11ac\0\u11fa\0\u1248\0\u1296"+ + "\0\u01d4\0\u12e4\0\u1332\0\u1380\0\u01d4\0\u01d4\0\u13ce\0\u141c"+ + "\0\u146a\0\u01d4\0\u01d4\0\u14b8\0\u1506\0\u1554\0\u15a2\0\u01d4"+ + "\0\u01d4\0\u15f0\0\u163e\0\u01d4\0\u01d4\0\u01d4\0\u168c\0\u01d4"+ + "\0\u16da\0\u1728\0\u01d4\0\u01d4\0\u1776\0\u17c4\0\u1812\0\u1860"+ + "\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u18ae\0\u18fc\0\u01d4\0\u194a"+ + "\0\u1998\0\u19e6\0\u1a34\0\u1a82\0\u01d4\0\u1ad0\0\u1b1e\0\u1b6c"+ + "\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u01d4\0\u1cf2\0\u01d4\0\u01d4"+ + "\0\u01d4\0\u01d4\0\u1d40\0\u01d4\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78"+ + "\0\u01d4\0\u1ec6\0\u1f14\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a"+ + "\0\u20e8\0\u2136\0\u2184\0\u21d2\0\u2220\0\u079e\0\u226e\0\u079e"+ + "\0\u079e\0\u22bc\0\u230a\0\u079e\0\u2358\0\u23a6\0\u23f4\0\u2442"+ + "\0\u2490\0\u24de\0\u01d4\0\u252c\0\u01d4\0\u257a\0\u25c8\0\u2616"+ "\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea\0\u2838\0\u2886"+ - "\0\u28d4\0\u2922\0\u2970\0\u29be\0\u01d4\0\u2a0c\0\u11fa\0\u1296"+ + "\0\u28d4\0\u01d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u1248\0\u1296"+ "\0\u2a5a\0\u2aa8\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c"+ - "\0\u2cca\0\u2d18\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u01d4\0\u2e9e"+ - "\0\u2eec\0\u163e\0\u2f3a\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0"+ - "\0\u310e\0\u315c\0\u31aa\0\u31f8\0\u01d4\0\u3246\0\u3294\0\u32e2"+ - "\0\u3330\0\u337e\0\u03f6\0\u33cc\0\u341a\0\u01d4\0\u33cc\0\u3468"+ - "\0\u34b6\0\u3504\0\u3552\0\u02be\0\u35a0\0\u02be\0\u02be\0\u02be"+ - "\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u02be\0\u3774\0\u37c2"+ - "\0\u3810\0\u385e\0\u38ac\0\u02be\0\u38fa\0\u3948\0\u3996\0\u39e4"+ - "\0\u3a32\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u3a80\0\u3ace\0\u3b1c"+ - "\0\u01d4\0\u3ace\0\u3b6a\0\u3bb8\0\u01d4\0\u3c06\0\u3c54\0\u01d4"+ - "\0\u3ca2\0\u01d4\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76"+ - "\0\u3ec4\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u01d4\0\u4098"+ - "\0\u02be\0\u02be\0\u40e6\0\u4134\0\u4182\0\u41d0\0\u421e\0\u426c"+ - "\0\u42ba\0\u02be\0\u4308\0\u02be\0\u4356\0\u43a4\0\u43f2\0\u4440"+ + "\0\u2cca\0\u2d18\0\u01d4\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u2e9e"+ + "\0\u2eec\0\u163e\0\u2f3a\0\u2f88\0\u2f88\0\u2fd6\0\u01d4\0\u3024"+ + "\0\u01d4\0\u04e0\0\u01d4\0\u3072\0\u30c0\0\u310e\0\u315c\0\u31aa"+ + "\0\u31f8\0\u01d4\0\u3246\0\u3294\0\u32e2\0\u3330\0\u337e\0\u33cc"+ + "\0\u01d4\0\u01d4\0\u341a\0\u3468\0\u34b6\0\u3504\0\u079e\0\u3552"+ + "\0\u35a0\0\u35ee\0\u363c\0\u079e\0\u079e\0\u368a\0\u36d8\0\u3726"+ + "\0\u3774\0\u079e\0\u37c2\0\u3810\0\u385e\0\u38ac\0\u079e\0\u38fa"+ + "\0\u3948\0\u3996\0\u079e\0\u39e4\0\u3a32\0\u3a80\0\u3a80\0\u3ace"+ + "\0\u01d4\0\u3b1c\0\u3b6a\0\u01d4\0\u3bb8\0\u3c06\0\u3c54\0\u01d4"+ + "\0\u01d4\0\u3ca2\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76"+ + "\0\u3ec4\0\u3f12\0\u3f60\0\u3fae\0\u01d4\0\u3ffc\0\u404a\0\u4098"+ + "\0\u40e6\0\u4134\0\u079e\0\u079e\0\u4182\0\u41d0\0\u079e\0\u421e"+ + "\0\u426c\0\u42ba\0\u079e\0\u4308\0\u4356\0\u43a4\0\u43f2\0\u4440"+ "\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614\0\u4662\0\u46b0"+ - "\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u01d4\0\u4836\0\u4884\0\u3f60"+ - "\0\u3fae\0\u48d2\0\u4920\0\u496e\0\u02be\0\u49bc\0\u02be\0\u02be"+ - "\0\u4a0a\0\u4a58\0\u4aa6\0\u02be\0\u4af4\0\u02be\0\u4b42\0\u448e"+ - "\0\u44dc\0\u4b90\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8\0\u02be\0\u4d16"+ - "\0\u02be\0\u02be\0\u02be\0\u4d64\0\u02be\0\u4db2\0\u02be\0\u3ace"+ - "\0\u01d4\0\u01d4\0\u01d4\0\u4d16\0\u01d4\0\u4e00\0\u02be\0\u02be"; + "\0\u46fe\0\u474c\0\u479a\0\u01d4\0\u47e8\0\u4836\0\u3f12\0\u4884"+ + "\0\u3fae\0\u48d2\0\u079e\0\u079e\0\u4920\0\u496e\0\u49bc\0\u4a0a"+ + "\0\u4a58\0\u4aa6\0\u079e\0\u4af4\0\u079e\0\u079e\0\u4b42\0\u448e"+ + "\0\u4b90\0\u452a\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8\0\u4d16\0\u079e"+ + "\0\u4d64\0\u079e\0\u4db2\0\u079e\0\u079e\0\u079e\0\u079e\0\u3a80"+ + "\0\u01d4\0\u01d4\0\u4d16\0\u01d4\0\u01d4\0\u4e00\0\u079e\0\u079e"; private static int [] zzUnpackRowMap() { int [] result = new int[360]; @@ -296,7 +420,7 @@ class _PythonLexer implements FlexLexerEx { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -304,421 +428,376 @@ class _PythonLexer implements FlexLexerEx { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\7\1\10\2\11\1\12\1\11\3\12\2\13\1\14"+ - "\1\13\1\12\1\15\1\7\1\12\1\7\1\16\1\12"+ - "\1\17\1\12\2\13\1\20\1\21\1\22\1\23\1\24"+ - "\1\25\1\12\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\35\1\36\1\37\1\7\1\40\1\41\1\42"+ - "\1\43\1\44\1\12\1\45\1\46\1\47\1\50\1\12"+ - "\1\51\1\52\1\53\1\54\1\12\1\55\1\56\1\12"+ - "\1\57\1\60\1\12\1\61\1\62\1\63\1\64\1\65"+ - "\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75"+ - "\1\7\11\76\2\77\1\76\1\77\1\76\1\100\1\0"+ - "\6\76\2\77\1\101\1\21\1\102\4\76\1\26\1\76"+ - "\1\30\1\103\6\76\1\7\1\40\6\76\1\77\1\76"+ - "\1\77\1\76\1\77\27\76\1\0\1\7\1\10\2\11"+ - "\1\12\1\11\3\12\2\104\1\14\1\104\1\12\1\100"+ - "\1\7\1\12\1\7\1\16\1\12\1\17\1\12\2\104"+ - "\1\105\1\21\1\106\1\23\1\24\1\25\1\12\1\26"+ - "\1\27\1\30\1\103\1\32\1\33\1\34\1\35\1\107"+ - "\1\37\1\7\1\40\1\41\1\42\1\43\1\44\1\12"+ - "\1\45\1\110\1\47\1\111\1\12\1\112\1\52\1\53"+ - "\1\54\1\12\1\55\1\56\1\12\1\57\1\60\1\12"+ - "\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70"+ - "\1\71\1\72\1\73\1\74\1\75\1\7\17\113\1\7"+ - "\10\113\1\114\1\115\1\116\1\113\1\117\5\113\1\120"+ - "\53\113\1\7\1\10\2\11\1\12\1\11\3\12\2\121"+ - "\1\14\1\121\1\12\1\100\1\7\1\12\1\7\1\16"+ - "\1\12\1\17\1\12\2\121\1\122\1\21\1\123\1\124"+ - "\1\125\1\126\1\12\1\26\1\127\1\30\1\130\1\131"+ - "\1\132\1\133\1\134\1\135\1\37\1\7\1\40\1\41"+ - "\1\42\1\43\1\44\1\12\1\45\1\136\1\47\1\137"+ - "\1\12\1\140\1\52\1\53\1\141\1\12\1\55\1\56"+ - "\1\12\1\57\1\60\1\12\1\61\1\62\1\63\1\64"+ - "\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74"+ - "\1\75\1\7\17\142\1\7\10\142\1\114\1\143\1\116"+ - "\1\142\1\144\1\145\4\142\1\120\53\142\117\0\1\146"+ - "\1\147\1\146\1\0\1\146\1\150\1\151\1\152\1\153"+ - "\1\154\1\155\1\154\1\156\4\0\1\157\1\160\1\0"+ - "\1\161\32\0\1\160\2\0\1\153\2\0\1\152\2\0"+ - "\1\150\25\0\3\11\1\0\1\11\1\0\1\162\2\0"+ - "\1\154\1\155\1\154\1\156\4\0\1\157\1\160\1\0"+ - "\1\161\32\0\1\160\36\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\24\12\17\0\10\12\2\163\1\12\1\163\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\163\1\20\1\0"+ - "\1\22\1\23\2\0\1\12\15\0\5\12\1\163\1\12"+ - "\1\163\1\12\1\163\2\12\1\23\7\12\17\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\1\164\23\12\16\0\17\15\1\0"+ - "\22\15\1\0\53\15\1\0\3\165\1\0\1\165\160\0"+ - "\1\166\37\0\1\167\5\0\17\170\1\0\10\170\1\171"+ - "\1\172\10\170\1\173\53\170\17\174\1\0\11\174\1\175"+ - "\1\176\7\174\1\173\53\174\1\0\10\12\2\177\1\12"+ - "\1\177\1\12\2\0\2\12\1\0\1\12\1\0\1\12"+ - "\2\177\1\200\1\0\1\201\1\12\2\0\1\12\15\0"+ - "\5\12\1\177\1\12\1\177\1\12\1\177\12\12\66\0"+ - "\1\202\115\0\1\203\115\0\1\204\46\0\15\12\2\0"+ - "\2\12\1\0\1\12\1\0\3\12\3\0\1\12\2\0"+ - "\1\12\15\0\1\12\1\205\1\12\1\206\20\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\12\12\1\207\11\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\4\12\1\210\17\12\17\0"+ - "\12\12\1\211\2\12\2\0\2\12\1\0\1\12\1\0"+ - "\3\12\3\0\1\12\2\0\1\12\15\0\15\12\1\212"+ - "\6\12\17\0\10\12\2\163\1\12\1\163\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\163\1\20\1\0"+ - "\1\22\1\23\2\0\1\12\15\0\1\213\3\12\1\214"+ - "\1\163\1\12\1\163\1\12\1\163\2\12\1\23\7\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\5\12\1\215\16\12"+ - "\17\0\10\12\2\163\1\12\1\163\1\12\2\0\2\12"+ - "\1\0\1\12\1\0\1\12\2\163\1\20\1\0\1\22"+ - "\1\23\2\0\1\12\15\0\5\12\1\216\1\12\1\163"+ - "\1\12\1\163\2\12\1\23\7\12\17\0\10\12\2\163"+ - "\1\217\1\163\1\12\2\0\2\12\1\0\1\12\1\0"+ - "\1\12\2\163\1\20\1\0\1\22\1\23\2\0\1\12"+ - "\15\0\5\12\1\163\1\12\1\163\1\12\1\163\1\220"+ - "\1\12\1\23\7\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\5\12\1\221\16\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\1\12\1\222\1\12\1\223\10\12\1\224\3\12\1\225"+ - "\3\12\17\0\10\12\2\177\1\12\1\177\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\177\1\200\1\0"+ - "\1\201\1\12\2\0\1\12\15\0\5\12\1\226\1\12"+ - "\1\177\1\12\1\177\1\227\1\230\10\12\17\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\1\231\23\12\17\0\15\12\2\0"+ - "\2\12\1\0\1\12\1\0\3\12\3\0\1\12\2\0"+ - "\1\12\15\0\13\12\1\232\10\12\17\0\12\12\1\233"+ - "\2\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\24\12\17\0\15\12\2\0"+ - "\2\12\1\0\1\12\1\0\3\12\3\0\1\12\2\0"+ - "\1\12\15\0\23\12\1\234\66\0\1\235\115\0\1\236"+ - "\30\0\1\237\64\0\1\240\115\0\1\241\32\0\1\242"+ - "\62\0\1\243\115\0\1\244\115\0\1\245\115\0\1\246"+ - "\115\0\1\247\37\0\1\250\55\0\1\251\37\0\1\252"+ - "\1\253\15\0\2\254\1\0\1\254\11\0\2\254\1\101"+ - "\1\0\1\102\26\0\1\254\1\0\1\254\1\0\1\254"+ - "\30\0\17\100\1\0\22\100\1\0\53\100\17\255\1\0"+ - "\10\255\1\256\1\257\10\255\1\260\53\255\17\261\1\0"+ - "\11\261\1\262\1\263\7\261\1\260\53\261\1\0\10\12"+ - "\2\264\1\12\1\264\1\12\2\0\2\12\1\0\1\12"+ - "\1\0\1\12\2\264\1\105\1\0\1\106\1\23\2\0"+ - "\1\12\15\0\5\12\1\264\1\12\1\264\1\12\1\264"+ - "\2\12\1\23\7\12\16\0\17\265\1\0\10\265\1\266"+ - "\1\267\10\265\1\0\53\265\17\270\1\0\11\270\1\271"+ - "\1\272\7\270\1\0\53\270\16\0\1\273\20\0\1\274"+ - "\2\0\1\275\5\0\1\203\46\0\10\12\2\264\1\12"+ - "\1\264\1\12\2\0\2\12\1\0\1\12\1\0\1\12"+ - "\2\264\1\105\1\0\1\106\1\23\2\0\1\12\15\0"+ - "\1\213\3\12\1\214\1\264\1\12\1\264\1\12\1\264"+ - "\2\12\1\23\7\12\17\0\10\12\2\264\1\12\1\264"+ - "\1\12\2\0\2\12\1\0\1\12\1\0\1\12\2\264"+ - "\1\105\1\0\1\106\1\23\2\0\1\12\15\0\5\12"+ - "\1\276\1\12\1\264\1\12\1\264\2\12\1\23\7\12"+ - "\17\0\10\12\2\264\1\217\1\264\1\12\2\0\2\12"+ - "\1\0\1\12\1\0\1\12\2\264\1\105\1\0\1\106"+ - "\1\23\2\0\1\12\15\0\5\12\1\264\1\12\1\264"+ - "\1\12\1\264\1\220\1\12\1\23\7\12\16\0\17\113"+ - "\1\0\10\113\1\0\1\277\1\0\1\113\1\300\5\113"+ - "\1\0\53\113\30\0\1\301\65\0\34\113\2\0\1\302"+ - "\57\113\32\0\1\303\117\0\1\113\62\0\10\12\2\304"+ - "\1\12\1\304\1\12\2\0\2\12\1\0\1\12\1\0"+ - "\1\12\2\304\1\122\1\0\1\123\1\124\2\0\1\12"+ - "\15\0\5\12\1\304\1\12\1\304\1\12\1\304\2\12"+ - "\1\124\7\12\16\0\17\305\1\0\10\305\1\306\1\307"+ - "\10\305\1\0\53\305\17\310\1\0\11\310\1\311\1\312"+ - "\7\310\1\0\53\310\1\0\10\12\2\313\1\12\1\313"+ - "\1\12\2\0\2\12\1\0\1\12\1\0\1\12\2\313"+ - "\1\314\1\0\1\315\1\12\2\0\1\12\15\0\5\12"+ - "\1\313\1\12\1\313\1\12\1\313\12\12\16\0\17\316"+ - "\1\0\10\316\1\0\1\316\1\0\2\316\1\0\1\316"+ - "\1\0\1\316\2\0\4\316\1\0\1\202\45\316\50\0"+ - "\1\317\46\0\10\12\2\304\1\12\1\304\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\304\1\122\1\0"+ - "\1\123\1\124\2\0\1\12\15\0\1\213\3\12\1\214"+ - "\1\304\1\12\1\304\1\12\1\304\2\12\1\124\7\12"+ - "\17\0\10\12\2\304\1\12\1\304\1\12\2\0\2\12"+ - "\1\0\1\12\1\0\1\12\2\304\1\122\1\0\1\123"+ - "\1\124\2\0\1\12\15\0\5\12\1\320\1\12\1\304"+ - "\1\12\1\304\2\12\1\124\7\12\17\0\10\12\2\304"+ - "\1\217\1\304\1\12\2\0\2\12\1\0\1\12\1\0"+ - "\1\12\2\304\1\122\1\0\1\123\1\124\2\0\1\12"+ - "\15\0\5\12\1\304\1\12\1\304\1\12\1\304\1\220"+ - "\1\12\1\124\7\12\17\0\10\12\2\313\1\12\1\313"+ - "\1\12\2\0\2\12\1\0\1\12\1\0\1\12\2\313"+ - "\1\314\1\0\1\315\1\12\2\0\1\12\15\0\5\12"+ - "\1\321\1\12\1\313\1\12\1\313\1\227\1\230\10\12"+ - "\16\0\17\142\1\0\10\142\1\0\1\322\1\0\1\142"+ - "\2\0\4\142\1\0\107\142\2\0\1\323\57\142\1\0"+ - "\1\146\1\147\1\146\1\0\1\146\1\0\1\151\2\0"+ - "\1\154\1\155\1\154\1\156\4\0\1\157\1\160\1\0"+ - "\1\161\32\0\1\160\36\0\3\147\1\0\1\147\1\0"+ - "\1\324\12\0\1\157\1\160\1\0\1\161\32\0\1\160"+ - "\36\0\5\325\1\0\1\326\1\0\1\325\11\0\1\325"+ - "\2\0\1\325\4\0\1\325\20\0\1\325\1\0\1\325"+ - "\1\0\1\325\2\0\1\325\1\0\1\325\2\0\1\325"+ - "\26\0\1\146\1\147\1\146\1\0\1\146\111\0\1\327"+ - "\1\0\1\327\1\0\1\327\1\0\1\330\107\0\1\331"+ - "\3\0\1\331\1\0\1\332\121\0\1\333\1\0\1\334"+ - "\112\0\1\335\1\336\1\335\113\0\1\335\1\0\1\335"+ - "\1\336\101\0\3\165\1\0\1\165\15\0\1\160\1\0"+ - "\1\161\32\0\1\160\36\0\3\337\1\0\1\337\16\0"+ - "\1\340\53\0\1\340\16\0\3\11\1\0\1\11\111\0"+ - "\10\12\2\341\1\12\1\341\1\12\2\0\2\12\1\0"+ - "\1\12\1\0\1\12\2\341\1\20\1\0\1\22\1\23"+ - "\2\0\1\12\15\0\5\12\1\341\1\12\1\341\1\12"+ - "\1\341\2\12\1\23\7\12\17\0\15\12\2\0\2\12"+ - "\1\0\1\12\1\0\3\12\3\0\1\12\2\0\1\12"+ - "\15\0\20\12\1\342\3\12\17\0\3\165\1\0\1\165"+ - "\1\0\1\343\13\0\1\160\1\0\1\161\32\0\1\160"+ - "\35\0\17\170\1\0\10\170\1\344\1\172\10\170\1\173"+ - "\53\170\30\0\1\345\1\346\5\0\1\347\1\0\1\347"+ - "\1\173\10\0\1\173\42\0\116\170\17\174\1\0\11\174"+ - "\1\175\1\344\7\174\1\173\171\174\31\0\1\346\1\350"+ - "\4\0\1\347\1\0\1\347\1\173\10\0\1\173\43\0"+ - "\10\12\2\351\1\12\1\351\1\12\2\0\2\12\1\0"+ - "\1\12\1\0\1\12\2\351\1\200\1\0\1\201\1\12"+ - "\2\0\1\12\15\0\5\12\1\351\1\12\1\351\1\12"+ - "\1\351\12\12\46\0\1\352\117\0\1\353\64\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\2\12\1\354\21\12\17\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\3\12\1\355\20\12\17\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\6\12\1\356\15\12\17\0\12\12"+ - "\1\357\2\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\14\12\1\360\7\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\3\12\1\361\7\12"+ - "\1\362\10\12\17\0\15\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\11\12"+ - "\1\363\12\12\17\0\15\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\13\12"+ - "\1\364\10\12\17\0\15\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\6\12"+ - "\1\365\15\12\17\0\15\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\17\12"+ - "\1\366\4\12\17\0\10\12\2\341\1\12\1\341\1\12"+ - "\2\0\2\12\1\0\1\12\1\0\1\12\2\341\1\20"+ - "\1\0\1\22\1\23\2\0\1\12\15\0\4\12\1\367"+ - "\1\341\1\12\1\341\1\12\1\341\2\12\1\23\7\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\1\370\23\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\1\12\1\371\22\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\16\12\1\372\5\12\17\0"+ - "\10\12\2\351\1\12\1\351\1\12\2\0\2\12\1\0"+ - "\1\12\1\0\1\12\2\351\1\200\1\0\1\201\1\12"+ - "\2\0\1\12\15\0\5\12\1\351\1\12\1\351\1\12"+ - "\1\351\1\373\11\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\5\12\1\374\16\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\1\12\1\375\22\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\3\12\1\376\20\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\4\12\1\377\17\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\12\12\1\u0100\11\12\17\0\15\12\2\0\2\12\1\0"+ - "\1\12\1\0\3\12\3\0\1\12\2\0\1\12\15\0"+ - "\13\12\1\u0101\10\12\66\0\1\u0102\115\0\1\u0103\115\0"+ - "\1\u0104\115\0\1\u0105\56\0\2\u0106\1\0\1\u0106\11\0"+ - "\2\u0106\1\101\1\0\1\102\26\0\1\u0106\1\0\1\u0106"+ - "\1\0\1\u0106\30\0\17\255\1\0\10\255\1\u0107\1\257"+ - "\10\255\1\260\53\255\30\0\1\u0108\1\u0109\5\0\1\u010a"+ - "\1\0\1\u010a\1\260\10\0\1\260\42\0\116\255\17\261"+ - "\1\0\11\261\1\262\1\u0107\7\261\1\260\171\261\31\0"+ - "\1\u0109\1\u010b\4\0\1\u010a\1\0\1\u010a\1\260\10\0"+ - "\1\260\43\0\10\12\2\u010c\1\12\1\u010c\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\u010c\1\105\1\0"+ - "\1\106\1\23\2\0\1\12\15\0\5\12\1\u010c\1\12"+ - "\1\u010c\1\12\1\u010c\2\12\1\23\7\12\16\0\17\265"+ - "\1\0\10\265\1\u010d\1\267\10\265\1\0\53\265\30\0"+ - "\1\u010e\65\0\116\265\17\270\1\0\11\270\1\271\1\u010d"+ - "\7\270\1\0\171\270\32\0\1\u010f\63\0\17\273\1\0"+ - "\22\273\1\275\53\273\16\0\1\273\20\0\1\274\2\0"+ - "\1\275\54\0\10\12\2\u010c\1\12\1\u010c\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\u010c\1\105\1\0"+ - "\1\106\1\23\2\0\1\12\15\0\4\12\1\367\1\u010c"+ - "\1\12\1\u010c\1\12\1\u010c\2\12\1\23\7\12\46\0"+ - "\1\u0110\65\0\17\113\1\0\10\113\1\0\1\277\1\0"+ - "\1\113\1\302\5\113\1\0\53\113\32\0\1\u0110\64\0"+ - "\10\12\2\u0111\1\12\1\u0111\1\12\2\0\2\12\1\0"+ - "\1\12\1\0\1\12\2\u0111\1\122\1\0\1\123\1\124"+ - "\2\0\1\12\15\0\5\12\1\u0111\1\12\1\u0111\1\12"+ - "\1\u0111\2\12\1\124\7\12\16\0\17\305\1\0\10\305"+ - "\1\u0112\1\307\10\305\1\0\53\305\30\0\1\u0113\65\0"+ - "\116\305\17\310\1\0\11\310\1\311\1\u0112\7\310\1\0"+ - "\171\310\32\0\1\u0114\64\0\10\12\2\u0115\1\12\1\u0115"+ - "\1\12\2\0\2\12\1\0\1\12\1\0\1\12\2\u0115"+ - "\1\314\1\0\1\315\1\12\2\0\1\12\15\0\5\12"+ - "\1\u0115\1\12\1\u0115\1\12\1\u0115\12\12\46\0\1\u0116"+ - "\117\0\1\u0117\63\0\17\316\1\0\10\316\1\0\1\316"+ - "\1\0\2\316\1\0\1\316\1\0\1\316\2\0\4\316"+ - "\2\0\45\316\1\0\10\12\2\u0111\1\12\1\u0111\1\12"+ - "\2\0\2\12\1\0\1\12\1\0\1\12\2\u0111\1\122"+ - "\1\0\1\123\1\124\2\0\1\12\15\0\4\12\1\367"+ - "\1\u0111\1\12\1\u0111\1\12\1\u0111\2\12\1\124\7\12"+ - "\17\0\10\12\2\u0115\1\12\1\u0115\1\12\2\0\2\12"+ - "\1\0\1\12\1\0\1\12\2\u0115\1\314\1\0\1\315"+ - "\1\12\2\0\1\12\15\0\5\12\1\u0115\1\12\1\u0115"+ - "\1\12\1\u0115\1\373\11\12\16\0\17\142\1\0\10\142"+ - "\1\0\1\322\1\0\1\142\1\u0118\1\0\4\142\1\0"+ - "\53\142\1\0\3\147\1\0\1\147\111\0\5\325\1\0"+ - "\1\326\1\0\1\325\1\154\1\155\1\154\1\156\5\0"+ - "\1\325\2\0\1\325\4\0\1\325\20\0\1\325\1\0"+ - "\1\325\1\0\1\325\2\0\1\325\1\0\1\325\2\0"+ - "\1\325\26\0\5\325\3\0\1\325\11\0\1\325\2\0"+ - "\1\325\4\0\1\325\20\0\1\325\1\0\1\325\1\0"+ - "\1\325\2\0\1\325\1\0\1\325\2\0\1\325\26\0"+ - "\1\327\1\0\1\327\1\0\1\327\1\0\1\330\2\0"+ - "\1\154\1\155\1\154\1\156\101\0\1\327\1\0\1\327"+ - "\1\0\1\327\111\0\1\331\3\0\1\331\1\0\1\332"+ - "\2\0\1\154\1\155\1\154\1\156\101\0\1\331\3\0"+ - "\1\331\123\0\1\335\117\0\1\335\112\0\1\335\1\0"+ - "\1\335\102\0\3\337\1\0\1\337\1\0\1\340\15\0"+ - "\1\161\71\0\3\337\1\0\1\337\111\0\15\12\2\0"+ - "\2\12\1\0\1\12\1\0\3\12\1\20\1\0\1\22"+ - "\1\23\2\0\1\12\15\0\14\12\1\23\7\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\7\12\1\u0119\14\12\47\0"+ - "\1\346\5\0\1\347\1\0\1\347\1\173\10\0\1\173"+ - "\42\0\30\345\1\u011a\1\u011b\64\345\31\350\1\u011c\1\u011d"+ - "\63\350\1\0\10\12\2\u011e\1\12\1\u011e\1\12\2\0"+ - "\2\12\1\0\1\12\1\0\1\12\2\u011e\1\200\1\0"+ - "\1\201\1\12\2\0\1\12\15\0\5\12\1\u011e\1\12"+ - "\1\u011e\1\12\1\u011e\12\12\46\0\1\u011f\117\0\1\u011f"+ - "\64\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\4\12\1\u0120\17\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\4\12\1\u0121\17\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\14\12\1\u0122\7\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\4\12\1\u0123\17\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\3\12\1\u0124\20\12"+ - "\17\0\11\12\1\u0125\3\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\24\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\1\u0126\23\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\3\12\1\u0127\20\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\6\12\1\u0128\15\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\12\12\1\u0129\11\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\20\12\1\u012a\3\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\1\u012b\23\12\17\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\3\12\1\u012c\20\12\17\0\12\12"+ - "\1\u012d\2\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\24\12\17\0\15\12"+ - "\2\0\2\12\1\0\1\12\1\0\3\12\3\0\1\12"+ - "\2\0\1\12\15\0\7\12\1\u012e\14\12\17\0\12\12"+ - "\1\u012f\2\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\24\12\46\0\1\101"+ - "\1\0\1\102\114\0\1\u0109\5\0\1\u010a\1\0\1\u010a"+ - "\1\260\10\0\1\260\42\0\30\u0108\1\u0130\1\u0131\64\u0108"+ - "\31\u010b\1\u0132\1\u0133\63\u010b\1\0\15\12\2\0\2\12"+ - "\1\0\1\12\1\0\3\12\1\105\1\0\1\106\1\23"+ - "\2\0\1\12\15\0\14\12\1\23\7\12\16\0\30\u010e"+ - "\1\u0134\1\u0135\64\u010e\31\u010f\1\u0136\1\u0137\63\u010f\1\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\1\122"+ - "\1\0\1\123\1\124\2\0\1\12\15\0\14\12\1\124"+ - "\7\12\16\0\30\u0113\1\u0138\1\u0139\64\u0113\31\u0114\1\u013a"+ - "\1\u013b\63\u0114\1\0\10\12\2\u013c\1\12\1\u013c\1\12"+ - "\2\0\2\12\1\0\1\12\1\0\1\12\2\u013c\1\314"+ - "\1\0\1\315\1\12\2\0\1\12\15\0\5\12\1\u013c"+ - "\1\12\1\u013c\1\12\1\u013c\12\12\46\0\1\u013d\117\0"+ - "\1\u013d\63\0\1\142\15\u0118\1\142\1\0\2\u0118\1\142"+ - "\1\u0118\1\142\3\u0118\1\0\1\322\1\0\1\u0118\1\0"+ - "\1\142\2\u0118\2\142\1\0\11\142\24\u0118\16\142\1\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\2\12\1\u013e\21\12\16\0"+ - "\30\345\1\u013f\1\u0140\202\345\147\350\1\u0141\1\u0142\63\350"+ - "\1\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\1\200\1\0\1\201\1\12\2\0\1\12\15\0\24\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\5\12\1\u0143\16\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\16\12\1\u0144\5\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\4\12\1\u0145\17\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\5\12\1\u0146\16\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\10\12\1\u0147\13\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\3\12\1\u0148\20\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\13\12\1\u0149\10\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\5\12\1\u014a\16\12"+ - "\17\0\12\12\1\u014b\2\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\24\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\2\12\1\u014c\21\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\1\u014d\23\12\17\0"+ - "\15\12\2\0\2\12\1\0\1\12\1\0\3\12\3\0"+ - "\1\12\2\0\1\12\15\0\4\12\1\u014e\17\12\16\0"+ - "\30\u0108\1\u014f\1\u0150\202\u0108\147\u010b\1\u0151\1\u0152\63\u010b"+ - "\30\u010e\1\u0153\1\u0135\202\u010e\147\u010f\1\u0136\1\u0154\63\u010f"+ - "\30\u0113\1\u0155\1\u0139\202\u0113\147\u0114\1\u013a\1\u0156\63\u0114"+ - "\1\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\1\314\1\0\1\315\1\12\2\0\1\12\15\0\24\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\1\u0157\23\12\16\0"+ - "\30\345\1\u0158\1\u0140\64\345\31\350\1\u0141\1\u0158\63\350"+ - "\1\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\6\12\1\u0159\15\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\6\12\1\u015a\15\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\1\12\1\u015b\22\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\1\12\1\u015c\22\12"+ - "\17\0\15\12\2\0\2\12\1\0\1\12\1\0\3\12"+ - "\3\0\1\12\2\0\1\12\15\0\6\12\1\u015d\15\12"+ - "\17\0\12\12\1\u015e\2\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\24\12"+ - "\17\0\12\12\1\u015f\2\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\24\12"+ - "\16\0\30\u0108\1\u0160\1\u0150\64\u0108\31\u010b\1\u0151\1\u0160"+ - "\63\u010b\30\u010e\1\u0161\1\u0135\64\u010e\31\u010f\1\u0136\1\u0161"+ - "\63\u010f\30\u0113\1\u0162\1\u0139\64\u0113\31\u0114\1\u013a\1\u0162"+ - "\63\u0114\31\0\1\u0163\5\0\1\u0164\1\0\1\u0164\1\u0165"+ - "\10\0\1\u0165\43\0\11\12\1\u0166\3\12\2\0\2\12"+ - "\1\0\1\12\1\0\3\12\3\0\1\12\2\0\1\12"+ - "\15\0\24\12\17\0\15\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\17\12"+ - "\1\u0167\4\12\17\0\15\12\2\0\2\12\1\0\1\12"+ - "\1\0\3\12\3\0\1\12\2\0\1\12\15\0\4\12"+ - "\1\u0168\17\12\16\0"; + "\1\7\1\10\1\11\1\7\1\12\1\7\1\13\1\14"+ + "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+ + "\1\25\1\26\1\27\1\30\1\31\1\32\3\33\1\34"+ + "\1\35\1\36\1\37\1\40\1\41\1\42\2\43\1\42"+ + "\1\44\5\42\2\43\1\42\1\45\1\46\1\47\1\50"+ + "\1\42\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ + "\1\60\1\42\1\61\1\42\1\62\1\42\1\63\1\64"+ + "\1\65\1\66\1\42\1\67\1\43\1\70\1\42\1\71"+ + "\1\72\1\73\1\74\1\75\2\7\1\76\1\10\1\77"+ + "\1\7\1\12\1\0\1\13\1\76\1\100\1\101\2\76"+ + "\1\102\23\76\2\103\7\76\2\103\2\76\1\46\5\76"+ + "\2\103\14\76\1\103\2\76\1\103\7\76\1\0\1\76"+ + "\1\7\1\10\1\77\1\7\1\12\1\7\1\13\1\14"+ + "\1\104\1\101\1\17\1\20\1\105\1\22\1\23\1\24"+ + "\1\25\1\26\1\27\1\30\1\31\1\32\3\33\1\106"+ + "\1\35\1\36\1\37\1\40\1\41\1\42\2\107\1\42"+ + "\1\44\5\42\2\107\1\42\1\45\1\46\1\47\1\50"+ + "\1\42\1\51\1\52\1\110\1\111\1\55\1\56\1\57"+ + "\1\60\1\42\1\61\1\42\1\62\1\42\1\63\1\64"+ + "\1\65\1\112\1\42\1\67\1\107\1\70\1\42\1\71"+ + "\1\72\1\73\1\74\1\75\2\7\2\113\1\114\2\113"+ + "\1\7\2\113\1\115\3\113\1\116\40\113\1\117\32\113"+ + "\1\120\5\113\1\7\1\10\1\121\1\7\1\12\1\7"+ + "\1\13\1\122\1\123\1\101\1\17\1\20\1\124\1\125"+ + "\1\126\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ + "\3\33\1\127\1\35\1\36\1\37\1\40\1\41\1\42"+ + "\2\130\1\42\1\131\5\42\2\130\1\42\1\132\1\46"+ + "\1\133\1\50\1\42\1\51\1\52\1\134\1\135\1\55"+ + "\1\56\1\136\1\60\1\42\1\61\1\42\1\62\1\42"+ + "\1\63\1\64\1\65\1\137\1\42\1\67\1\130\1\70"+ + "\1\42\1\71\1\140\1\73\1\141\1\75\2\7\2\142"+ + "\1\114\2\142\1\7\2\142\1\115\3\142\1\116\40\142"+ + "\1\143\32\142\1\144\1\142\1\145\3\142\152\0\1\146"+ + "\61\0\2\147\1\150\2\147\1\0\2\147\1\151\44\147"+ + "\1\152\40\147\2\16\1\0\2\16\1\0\110\16\34\0"+ + "\1\153\115\0\1\154\61\0\2\155\1\150\2\155\1\0"+ + "\6\155\1\156\40\155\1\157\40\155\17\0\1\160\14\0"+ + "\1\161\115\0\1\162\115\0\1\163\1\164\105\0\4\165"+ + "\111\0\1\166\7\0\1\167\104\0\1\170\1\0\3\171"+ + "\1\172\7\0\1\173\1\0\1\174\2\0\1\175\1\176"+ + "\1\0\1\177\1\0\1\200\1\201\4\0\1\202\2\0"+ + "\1\173\2\0\1\174\5\0\1\203\2\0\1\177\4\0"+ + "\1\200\1\0\1\201\32\0\1\170\1\0\4\33\11\0"+ + "\1\174\2\0\1\175\1\176\3\0\1\200\5\0\1\204"+ + "\5\0\1\174\5\0\1\203\7\0\1\200\45\0\1\205"+ + "\114\0\1\206\1\207\1\210\114\0\1\211\115\0\1\212"+ + "\1\213\114\0\1\214\106\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\26\42\5\0\1\42\10\0\1\15\3\0"+ + "\1\21\10\0\4\42\6\0\1\42\2\215\1\42\1\44"+ + "\5\42\2\215\1\42\4\0\1\42\1\0\1\42\2\215"+ + "\2\42\1\44\11\42\1\215\2\42\1\215\3\42\5\0"+ + "\1\42\10\0\1\216\3\0\1\217\10\0\4\42\6\0"+ + "\1\42\2\220\7\42\2\220\1\42\4\0\1\42\1\0"+ + "\1\42\2\220\14\42\1\220\2\42\1\220\3\42\5\0"+ + "\1\42\34\0\1\221\106\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\14\42\1\222\3\42\1\223\5\42\5\0"+ + "\1\42\10\0\1\15\3\0\1\21\10\0\4\42\6\0"+ + "\1\42\2\215\1\42\1\44\5\42\2\215\1\42\4\0"+ + "\1\42\1\0\1\42\2\215\2\42\1\44\11\42\1\224"+ + "\2\42\1\215\3\42\5\0\1\42\10\0\1\15\3\0"+ + "\1\21\10\0\4\42\6\0\1\42\2\215\1\42\1\44"+ + "\5\42\2\215\1\42\4\0\1\42\1\0\1\42\2\215"+ + "\2\42\1\44\4\42\1\225\2\42\1\226\1\42\1\215"+ + "\2\42\1\215\3\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\4\42\1\227\21\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\12\42\1\230\11\42\1\231\1\42\5\0\1\42\10\0"+ + "\1\216\3\0\1\217\10\0\4\42\6\0\1\42\2\220"+ + "\7\42\2\220\1\42\4\0\1\42\1\0\1\42\2\220"+ + "\5\42\1\232\4\42\1\233\1\42\1\234\2\42\1\220"+ + "\3\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\12\42\1\235\13\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\5\42\1\236"+ + "\5\42\1\237\1\240\3\42\1\241\5\42\5\0\1\42"+ + "\25\0\4\42\6\0\15\42\4\0\1\42\1\0\1\242"+ + "\25\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\15\42\1\243\10\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\17\42\1\244"+ + "\6\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\1\245\25\42\5\0\1\42\10\0\1\15"+ + "\3\0\1\21\10\0\4\42\6\0\1\42\2\215\1\42"+ + "\1\44\5\42\2\215\1\42\4\0\1\42\1\0\1\246"+ + "\2\215\1\42\1\247\1\44\11\42\1\215\2\42\1\215"+ + "\3\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\17\42\1\250\6\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\7\42\1\251"+ + "\16\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\10\42\1\252\15\42\5\0\1\42\34\0"+ + "\1\253\61\0\2\254\1\255\2\254\1\0\2\254\1\256"+ + "\44\254\1\257\40\254\2\101\1\0\2\101\1\0\110\101"+ + "\2\260\1\255\2\260\1\0\6\260\1\261\40\260\1\262"+ + "\40\260\10\0\1\100\3\0\1\102\23\0\2\263\7\0"+ + "\2\263\10\0\2\263\14\0\1\263\2\0\1\263\11\0"+ + "\2\264\1\0\2\264\1\0\2\264\1\265\44\264\1\266"+ + "\40\264\2\267\1\0\2\267\1\0\6\267\1\270\40\267"+ + "\1\271\40\267\2\0\1\272\3\0\1\273\2\0\1\274"+ + "\22\0\1\205\71\0\1\104\3\0\1\105\10\0\4\42"+ + "\6\0\1\42\2\275\1\42\1\44\5\42\2\275\1\42"+ + "\4\0\1\42\1\0\1\42\2\275\2\42\1\44\11\42"+ + "\1\275\2\42\1\275\3\42\5\0\1\42\10\0\1\104"+ + "\3\0\1\105\10\0\4\42\6\0\1\42\2\275\1\42"+ + "\1\44\5\42\2\275\1\42\4\0\1\42\1\0\1\42"+ + "\2\275\2\42\1\44\11\42\1\276\2\42\1\275\3\42"+ + "\5\0\1\42\10\0\1\104\3\0\1\105\10\0\4\42"+ + "\6\0\1\42\2\275\1\42\1\44\5\42\2\275\1\42"+ + "\4\0\1\42\1\0\1\42\2\275\2\42\1\44\4\42"+ + "\1\225\2\42\1\226\1\42\1\275\2\42\1\275\3\42"+ + "\5\0\1\42\10\0\1\104\3\0\1\105\10\0\4\42"+ + "\6\0\1\42\2\275\1\42\1\44\5\42\2\275\1\42"+ + "\4\0\1\42\1\0\1\246\2\275\1\42\1\247\1\44"+ + "\11\42\1\275\2\42\1\275\3\42\5\0\1\42\2\113"+ + "\1\0\2\113\1\0\2\113\1\0\3\113\1\0\40\113"+ + "\1\277\32\113\1\300\5\113\10\0\1\301\121\0\1\302"+ + "\101\0\47\113\1\303\40\113\1\0\1\113\1\0\3\113"+ + "\110\0\1\113\5\0\1\304\2\0\2\304\2\0\1\304"+ + "\1\0\3\304\1\0\14\304\1\0\2\304\1\146\55\304"+ + "\1\0\3\304\2\305\1\0\2\305\1\0\2\305\1\306"+ + "\44\305\1\307\40\305\2\310\1\0\2\310\1\0\6\310"+ + "\1\311\40\310\1\312\40\310\34\0\1\313\71\0\1\123"+ + "\3\0\1\124\10\0\4\42\6\0\1\42\2\314\1\42"+ + "\1\131\5\42\2\314\1\42\4\0\1\42\1\0\1\42"+ + "\2\314\2\42\1\131\11\42\1\314\2\42\1\314\3\42"+ + "\5\0\1\42\10\0\1\315\3\0\1\316\10\0\4\42"+ + "\6\0\1\42\2\317\7\42\2\317\1\42\4\0\1\42"+ + "\1\0\1\42\2\317\14\42\1\317\2\42\1\317\3\42"+ + "\5\0\1\42\10\0\1\123\3\0\1\124\10\0\4\42"+ + "\6\0\1\42\2\314\1\42\1\131\5\42\2\314\1\42"+ + "\4\0\1\42\1\0\1\42\2\314\2\42\1\131\11\42"+ + "\1\320\2\42\1\314\3\42\5\0\1\42\10\0\1\123"+ + "\3\0\1\124\10\0\4\42\6\0\1\42\2\314\1\42"+ + "\1\131\5\42\2\314\1\42\4\0\1\42\1\0\1\42"+ + "\2\314\2\42\1\131\4\42\1\225\2\42\1\226\1\42"+ + "\1\314\2\42\1\314\3\42\5\0\1\42\10\0\1\315"+ + "\3\0\1\316\10\0\4\42\6\0\1\42\2\317\7\42"+ + "\2\317\1\42\4\0\1\42\1\0\1\42\2\317\5\42"+ + "\1\232\4\42\1\233\1\42\1\321\2\42\1\317\3\42"+ + "\5\0\1\42\10\0\1\123\3\0\1\124\10\0\4\42"+ + "\6\0\1\42\2\314\1\42\1\131\5\42\2\314\1\42"+ + "\4\0\1\42\1\0\1\246\2\314\1\42\1\247\1\131"+ + "\11\42\1\314\2\42\1\314\3\42\5\0\1\42\2\142"+ + "\1\0\2\142\1\0\2\142\1\0\3\142\1\0\40\142"+ + "\1\322\32\142\1\0\1\142\1\0\52\142\1\323\40\142"+ + "\1\0\1\142\1\0\3\142\2\147\1\150\2\147\1\0"+ + "\2\147\1\324\44\147\1\152\40\147\1\0\1\325\1\150"+ + "\3\0\1\325\1\0\1\326\21\0\1\150\22\0\1\327"+ + "\40\0\116\147\2\155\1\150\2\155\1\0\6\155\1\324"+ + "\40\155\1\157\40\155\1\0\1\325\1\150\3\0\1\325"+ + "\5\0\1\330\15\0\1\150\22\0\1\327\40\0\116\155"+ + "\34\0\1\331\106\0\4\165\11\0\1\174\2\0\1\175"+ + "\12\0\1\332\5\0\1\174\63\0\1\333\106\0\4\165"+ + "\11\0\1\174\2\0\1\175\20\0\1\174\52\0\1\170"+ + "\1\0\3\171\1\172\11\0\1\174\2\0\1\175\1\176"+ + "\3\0\1\200\5\0\1\202\5\0\1\174\5\0\1\203"+ + "\7\0\1\200\34\0\1\170\1\0\4\172\11\0\1\174"+ + "\2\0\1\175\12\0\1\334\5\0\1\174\54\0\2\335"+ + "\31\0\1\336\55\0\1\337\1\0\1\337\2\0\4\340"+ + "\133\0\1\341\3\0\1\342\31\0\1\342\36\0\3\343"+ + "\30\0\1\344\103\0\1\345\25\0\1\346\46\0\4\347"+ + "\6\0\5\347\14\0\1\350\1\0\6\347\53\0\3\171"+ + "\1\172\137\0\1\342\21\0\1\341\7\0\1\342\36\0"+ + "\4\33\121\0\1\351\115\0\1\352\71\0\1\15\3\0"+ + "\1\21\10\0\4\42\6\0\1\42\2\353\1\42\1\44"+ + "\5\42\2\353\1\42\4\0\1\42\1\0\1\42\2\353"+ + "\2\42\1\44\11\42\1\353\2\42\1\353\3\42\5\0"+ + "\1\42\10\0\1\354\121\0\1\355\111\0\1\216\3\0"+ + "\1\217\10\0\4\42\6\0\1\42\2\356\7\42\2\356"+ + "\1\42\4\0\1\42\1\0\1\42\2\356\14\42\1\356"+ + "\2\42\1\356\3\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\3\42\1\357\22\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\20\42\1\360\5\42\5\0\1\42\10\0\1\15\3\0"+ + "\1\21\10\0\4\42\6\0\1\42\2\353\1\42\1\44"+ + "\5\42\2\353\1\42\4\0\1\42\1\0\1\42\2\353"+ + "\1\42\1\361\1\44\11\42\1\353\2\42\1\353\3\42"+ + "\5\0\1\42\25\0\4\42\6\0\15\42\4\0\1\42"+ + "\1\0\1\362\25\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\14\42\1\363\11\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\5\42\1\364\4\42\1\365\13\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\10\42\1\366"+ + "\7\42\1\367\5\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\2\42\1\370\23\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\14\42\1\371\11\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\17\42\1\372\6\42\5\0"+ + "\1\42\10\0\1\216\3\0\1\217\10\0\4\42\6\0"+ + "\1\42\2\356\7\42\2\356\1\42\4\0\1\42\1\0"+ + "\1\42\2\356\12\42\1\373\1\42\1\356\2\42\1\356"+ + "\3\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\15\42\1\374\10\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\16\42\1\375"+ + "\7\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\13\42\1\376\12\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\21\42\1\377"+ + "\4\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\20\42\1\u0100\5\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\10\42\1\u0101"+ + "\15\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\21\42\1\u0102\4\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\25\42\1\u0103"+ + "\5\0\1\42\25\0\4\42\6\0\15\42\4\0\1\42"+ + "\1\0\10\42\1\u0104\15\42\5\0\1\42\25\0\4\42"+ + "\6\0\15\42\4\0\1\42\1\0\4\42\1\u0105\21\42"+ + "\5\0\1\42\2\254\1\255\2\254\1\0\2\254\1\u0106"+ + "\44\254\1\257\40\254\1\0\1\u0107\1\255\3\0\1\u0107"+ + "\1\0\1\u0108\21\0\1\255\22\0\1\u0109\40\0\116\254"+ + "\2\260\1\255\2\260\1\0\6\260\1\u0106\40\260\1\262"+ + "\40\260\1\0\1\u0107\1\255\3\0\1\u0107\5\0\1\u010a"+ + "\15\0\1\255\22\0\1\u0109\40\0\116\260\10\0\1\100"+ + "\3\0\1\102\23\0\2\u010b\7\0\2\u010b\10\0\2\u010b"+ + "\14\0\1\u010b\2\0\1\u010b\11\0\2\264\1\0\2\264"+ + "\1\0\2\264\1\u010c\44\264\1\266\40\264\10\0\1\u010d"+ + "\105\0\116\264\2\267\1\0\2\267\1\0\6\267\1\u010c"+ + "\40\267\1\271\40\267\14\0\1\u010e\101\0\116\267\2\0"+ + "\1\272\3\0\1\273\2\0\1\274\104\0\2\274\1\272"+ + "\2\274\1\0\110\274\10\0\1\104\3\0\1\105\10\0"+ + "\4\42\6\0\1\42\2\u010f\1\42\1\44\5\42\2\u010f"+ + "\1\42\4\0\1\42\1\0\1\42\2\u010f\2\42\1\44"+ + "\11\42\1\u010f\2\42\1\u010f\3\42\5\0\1\42\10\0"+ + "\1\104\3\0\1\105\10\0\4\42\6\0\1\42\2\u010f"+ + "\1\42\1\44\5\42\2\u010f\1\42\4\0\1\42\1\0"+ + "\1\42\2\u010f\1\42\1\361\1\44\11\42\1\u010f\2\42"+ + "\1\u010f\3\42\5\0\1\42\10\0\1\u0110\121\0\1\u0110"+ + "\101\0\2\113\1\0\2\113\1\0\2\113\1\0\3\113"+ + "\1\0\40\113\1\277\32\113\1\303\5\113\1\304\2\0"+ + "\2\304\2\0\1\304\1\0\3\304\1\0\14\304\1\0"+ + "\2\304\1\0\55\304\1\0\3\304\2\305\1\0\2\305"+ + "\1\0\2\305\1\u0111\44\305\1\307\40\305\10\0\1\u0112"+ + "\105\0\116\305\2\310\1\0\2\310\1\0\6\310\1\u0111"+ + "\40\310\1\312\40\310\14\0\1\u0113\101\0\116\310\10\0"+ + "\1\123\3\0\1\124\10\0\4\42\6\0\1\42\2\u0114"+ + "\1\42\1\131\5\42\2\u0114\1\42\4\0\1\42\1\0"+ + "\1\42\2\u0114\2\42\1\131\11\42\1\u0114\2\42\1\u0114"+ + "\3\42\5\0\1\42\10\0\1\u0115\121\0\1\u0116\111\0"+ + "\1\315\3\0\1\316\10\0\4\42\6\0\1\42\2\u0117"+ + "\7\42\2\u0117\1\42\4\0\1\42\1\0\1\42\2\u0117"+ + "\14\42\1\u0117\2\42\1\u0117\3\42\5\0\1\42\10\0"+ + "\1\123\3\0\1\124\10\0\4\42\6\0\1\42\2\u0114"+ + "\1\42\1\131\5\42\2\u0114\1\42\4\0\1\42\1\0"+ + "\1\42\2\u0114\1\42\1\361\1\131\11\42\1\u0114\2\42"+ + "\1\u0114\3\42\5\0\1\42\10\0\1\315\3\0\1\316"+ + "\10\0\4\42\6\0\1\42\2\u0117\7\42\2\u0117\1\42"+ + "\4\0\1\42\1\0\1\42\2\u0117\12\42\1\373\1\42"+ + "\1\u0117\2\42\1\u0117\3\42\5\0\1\42\2\142\1\0"+ + "\2\142\1\0\2\142\1\0\3\142\1\0\40\142\1\322"+ + "\32\142\1\u0118\1\142\1\0\3\142\1\0\1\325\1\150"+ + "\3\0\1\325\23\0\1\150\22\0\1\327\40\0\10\326"+ + "\1\u0119\44\326\1\u011a\40\326\14\330\1\u011b\40\330\1\u011c"+ + "\40\330\25\0\4\172\112\0\2\335\17\0\1\176\3\0"+ + "\1\200\5\0\1\336\13\0\1\203\7\0\1\200\36\0"+ + "\2\335\114\0\4\340\112\0\4\340\14\0\1\175\12\0"+ + "\1\337\107\0\1\342\31\0\1\342\36\0\3\343\16\0"+ + "\1\176\3\0\1\200\5\0\1\344\13\0\1\203\7\0"+ + "\1\200\36\0\3\343\134\0\1\342\143\0\1\342\46\0"+ + "\4\347\6\0\5\347\2\0\1\176\3\0\1\200\5\0"+ + "\1\350\1\0\6\347\4\0\1\203\7\0\1\200\36\0"+ + "\4\347\6\0\5\347\16\0\6\347\36\0\1\15\3\0"+ + "\1\21\10\0\4\42\6\0\4\42\1\44\10\42\4\0"+ + "\1\42\1\0\5\42\1\44\20\42\5\0\1\42\10\0"+ + "\1\u011d\121\0\1\u011d\111\0\1\216\3\0\1\217\10\0"+ + "\4\42\6\0\1\42\2\u011e\7\42\2\u011e\1\42\4\0"+ + "\1\42\1\0\1\42\2\u011e\14\42\1\u011e\2\42\1\u011e"+ + "\3\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\4\42\1\u011f\21\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\1\u0120\25\42"+ + "\5\0\1\42\25\0\4\42\6\0\15\42\4\0\1\42"+ + "\1\0\20\42\1\u0121\5\42\5\0\1\42\25\0\4\42"+ + "\6\0\15\42\4\0\1\42\1\0\21\42\1\u0122\4\42"+ + "\5\0\1\42\25\0\4\42\6\0\15\42\4\0\1\42"+ + "\1\0\5\42\1\u0123\20\42\5\0\1\42\25\0\4\42"+ + "\6\0\15\42\4\0\1\42\1\0\4\42\1\u0124\21\42"+ + "\5\0\1\42\25\0\4\42\6\0\15\42\4\0\1\42"+ + "\1\0\4\42\1\u0125\21\42\5\0\1\42\25\0\4\42"+ + "\6\0\15\42\4\0\1\42\1\0\1\u0126\25\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\13\42\1\u0127\12\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\1\42\1\u0128\24\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\15\42\1\u0129\10\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\1\42\1\u012a\24\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\20\42\1\u012b\5\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\20\42\1\u012c\5\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\22\42\1\u012d\3\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\12\42\1\u012e\13\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\12\42\1\u012f\13\42\5\0\1\42\1\0\1\u0107\1\255"+ + "\3\0\1\u0107\23\0\1\255\22\0\1\u0109\40\0\10\u0108"+ + "\1\u0130\44\u0108\1\u0131\40\u0108\14\u010a\1\u0132\40\u010a\1\u0133"+ + "\40\u010a\10\0\1\100\3\0\1\102\101\0\10\u010d\1\u0134"+ + "\44\u010d\1\u0135\40\u010d\14\u010e\1\u0136\40\u010e\1\u0137\40\u010e"+ + "\10\0\1\104\3\0\1\105\10\0\4\42\6\0\4\42"+ + "\1\44\10\42\4\0\1\42\1\0\5\42\1\44\20\42"+ + "\5\0\1\42\10\u0112\1\u0138\44\u0112\1\u0139\40\u0112\14\u0113"+ + "\1\u013a\40\u0113\1\u013b\40\u0113\10\0\1\123\3\0\1\124"+ + "\10\0\4\42\6\0\4\42\1\131\10\42\4\0\1\42"+ + "\1\0\5\42\1\131\20\42\5\0\1\42\10\0\1\u013c"+ + "\121\0\1\u013c\111\0\1\315\3\0\1\316\10\0\4\42"+ + "\6\0\1\42\2\u013d\7\42\2\u013d\1\42\4\0\1\42"+ + "\1\0\1\42\2\u013d\14\42\1\u013d\2\42\1\u013d\3\42"+ + "\5\0\1\42\2\142\1\0\2\142\1\0\1\u0118\1\142"+ + "\1\0\3\142\1\0\10\142\4\u0118\6\142\15\u0118\1\142"+ + "\1\322\2\142\1\u0118\1\142\26\u0118\1\0\4\142\1\u0118"+ + "\10\326\1\u013e\44\326\1\u013f\156\326\14\330\1\u0140\40\330"+ + "\1\u0141\156\330\10\0\1\216\3\0\1\217\10\0\4\42"+ + "\6\0\15\42\4\0\1\42\1\0\26\42\5\0\1\42"+ + "\25\0\4\42\6\0\15\42\4\0\1\42\1\0\17\42"+ + "\1\u0142\6\42\5\0\1\42\25\0\4\42\6\0\15\42"+ + "\4\0\1\42\1\0\11\42\1\u0143\14\42\5\0\1\42"+ + "\25\0\4\42\6\0\15\42\4\0\1\42\1\0\20\42"+ + "\1\u0144\5\42\5\0\1\42\25\0\4\42\6\0\15\42"+ + "\4\0\1\42\1\0\10\42\1\u0145\15\42\5\0\1\42"+ + "\25\0\4\42\6\0\15\42\4\0\1\42\1\0\16\42"+ + "\1\u0146\7\42\5\0\1\42\25\0\4\42\6\0\15\42"+ + "\4\0\1\42\1\0\12\42\1\u0147\13\42\5\0\1\42"+ + "\25\0\4\42\6\0\15\42\4\0\1\42\1\0\1\u0148"+ + "\25\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\17\42\1\u0149\6\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\3\42\1\u014a"+ + "\22\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\4\42\1\u014b\21\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\17\42\1\u014c"+ + "\6\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\4\42\1\u014d\21\42\5\0\1\42\25\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\3\42\1\u014e"+ + "\22\42\5\0\1\42\10\u0108\1\u014f\44\u0108\1\u0150\156\u0108"+ + "\14\u010a\1\u0151\40\u010a\1\u0152\156\u010a\10\u010d\1\u0153\44\u010d"+ + "\1\u0135\156\u010d\14\u010e\1\u0154\40\u010e\1\u0137\156\u010e\10\u0112"+ + "\1\u0155\44\u0112\1\u0139\156\u0112\14\u0113\1\u0156\40\u0113\1\u013b"+ + "\156\u0113\10\0\1\315\3\0\1\316\10\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\26\42\5\0\1\42\10\326"+ + "\1\u0157\44\326\1\u013f\40\326\14\330\1\u0157\40\330\1\u0141"+ + "\40\330\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\21\42\1\u0158\4\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\14\42\1\u0159\11\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\21\42\1\u015a\4\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\12\42\1\u015b\13\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\12\42\1\u015c\13\42\5\0\1\42\25\0\4\42\6\0"+ + "\15\42\4\0\1\42\1\0\21\42\1\u015d\4\42\5\0"+ + "\1\42\25\0\4\42\6\0\15\42\4\0\1\42\1\0"+ + "\1\u015e\25\42\5\0\1\42\25\0\4\42\6\0\15\42"+ + "\4\0\1\42\1\0\14\42\1\u015f\11\42\5\0\1\42"+ + "\10\u0108\1\u0160\44\u0108\1\u0150\40\u0108\14\u010a\1\u0160\40\u010a"+ + "\1\u0152\40\u010a\10\u010d\1\u0161\44\u010d\1\u0135\40\u010d\14\u010e"+ + "\1\u0161\40\u010e\1\u0137\40\u010e\10\u0112\1\u0162\44\u0112\1\u0139"+ + "\40\u0112\14\u0113\1\u0162\40\u0113\1\u013b\40\u0113\1\0\1\u0163"+ + "\1\u0164\3\0\1\u0163\23\0\1\u0164\22\0\1\u0165\65\0"+ + "\4\42\6\0\15\42\4\0\1\42\1\0\22\42\1\u0166"+ + "\3\42\5\0\1\42\25\0\4\42\6\0\15\42\4\0"+ + "\1\42\1\0\25\42\1\u0167\5\0\1\42\25\0\4\42"+ + "\6\0\15\42\4\0\1\42\1\0\4\42\1\u0168\21\42"+ + "\5\0\1\42"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[20046]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -745,25 +824,26 @@ class _PythonLexer implements FlexLexerEx { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\6\0\1\11\11\1\1\11\2\1\3\11\1\1\6\11"+ - "\2\1\2\11\31\1\4\11\4\1\1\11\14\1\1\11"+ - "\4\1\2\11\1\1\5\11\7\1\2\11\1\1\5\0"+ - "\4\1\1\0\1\11\1\0\3\1\2\11\3\1\1\11"+ - "\6\1\3\11\30\1\2\11\1\1\2\11\1\1\5\11"+ - "\1\1\2\11\1\1\1\0\3\1\1\11\12\1\2\0"+ - "\1\11\1\1\2\0\16\1\1\11\2\1\1\0\1\1"+ - "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\2\1"+ - "\1\11\2\1\1\0\2\1\1\0\2\1\1\11\1\0"+ - "\2\1\2\0\26\1\4\11\1\0\2\1\1\11\1\0"+ - "\2\1\1\11\2\1\1\11\1\1\1\11\3\1\2\0"+ - "\2\1\1\0\2\1\1\0\1\1\1\11\20\1\1\0"+ - "\2\1\11\0\1\1\1\11\1\1\4\0\14\1\10\0"+ - "\12\1\3\11\1\0\1\11\3\1"; + "\6\0\5\11\6\1\2\11\2\1\1\11\6\1\1\11"+ + "\7\1\3\11\1\1\1\11\20\1\1\11\1\1\4\11"+ + "\14\1\1\11\4\1\1\11\3\1\2\11\3\1\2\11"+ + "\4\1\2\11\2\1\3\11\1\1\1\11\2\1\2\11"+ + "\4\1\4\11\2\1\1\11\2\1\3\0\1\11\1\1"+ + "\1\0\1\1\2\0\1\1\1\0\1\11\1\1\4\11"+ + "\1\1\1\11\4\1\1\11\31\1\1\11\1\1\1\11"+ + "\5\1\1\0\6\1\1\11\2\0\2\1\2\0\12\1"+ + "\1\11\6\1\1\0\2\1\1\0\1\1\1\11\1\1"+ + "\1\11\1\0\1\11\1\0\1\1\2\0\2\1\1\11"+ + "\1\1\1\0\3\1\1\0\2\11\1\1\2\0\31\1"+ + "\1\0\1\1\1\11\1\1\1\0\1\11\3\1\2\11"+ + "\3\1\2\0\2\1\1\0\1\1\1\0\1\1\1\11"+ + "\22\1\1\0\1\1\1\0\1\1\10\0\1\11\1\1"+ + "\4\0\15\1\10\0\12\1\2\11\1\0\2\11\3\1"; private static int [] zzUnpackAttribute() { int [] result = new int[360]; @@ -810,15 +890,27 @@ class _PythonLexer implements FlexLexerEx { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -849,26 +941,22 @@ return yylength()-s.length(); } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -1001,7 +1089,8 @@ return yylength()-s.length(); * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -1035,7 +1124,7 @@ return yylength()-s.length(); while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -1057,11 +1146,11 @@ return yylength()-s.length(); break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -1084,618 +1173,618 @@ return yylength()-s.length(); } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return PyTokenTypes.BAD_CHARACTER; - } - // fall through + } + // fall through case 122: break; - case 2: - { return PyTokenTypes.INTEGER_LITERAL; - } - // fall through + case 2: + { return PyTokenTypes.TAB; + } + // fall through case 123: break; - case 3: - { return PyTokenTypes.IDENTIFIER; - } - // fall through + case 3: + { if (zzCurrentPos == 0 && !isConsole()) yybegin(PENDING_DOCSTRING); return PyTokenTypes.LINE_BREAK; + } + // fall through case 124: break; - case 4: - { if (zzCurrentPos == 0 && !isConsole()) yybegin(PENDING_DOCSTRING); return PyTokenTypes.END_OF_LINE_COMMENT; - } - // fall through + case 4: + { return PyTokenTypes.FORMFEED; + } + // fall through case 125: break; - case 5: - { return PyTokenTypes.DOT; - } - // fall through + case 5: + { return PyTokenTypes.SPACE; + } + // fall through case 126: break; - case 6: - { return PyTokenTypes.MINUS; - } - // fall through - case 127: break; - case 7: + case 6: { if (zzInput == YYEOF && zzStartRead == 0 && !isConsole()) return PyTokenTypes.DOCSTRING; else return PyTokenTypes.SINGLE_QUOTED_STRING; - } - // fall through + } + // fall through + case 127: break; + case 7: + { if (zzCurrentPos == 0 && !isConsole()) yybegin(PENDING_DOCSTRING); return PyTokenTypes.END_OF_LINE_COMMENT; + } + // fall through case 128: break; - case 8: - { return PyTokenTypes.BACKSLASH; - } - // fall through - case 129: break; - case 9: - { return PyTokenTypes.LBRACE; - } - // fall through - case 130: break; - case 10: - { return PyTokenTypes.RBRACE; - } - // fall through - case 131: break; - case 11: - { return PyTokenTypes.SPACE; - } - // fall through - case 132: break; - case 12: - { return PyTokenTypes.TAB; - } - // fall through - case 133: break; - case 13: - { if (zzCurrentPos == 0 && !isConsole()) yybegin(PENDING_DOCSTRING); return PyTokenTypes.LINE_BREAK; - } - // fall through - case 134: break; - case 14: - { return PyTokenTypes.LPAR; - } - // fall through - case 135: break; - case 15: - { return PyTokenTypes.RPAR; - } - // fall through - case 136: break; - case 16: - { return PyTokenTypes.LBRACKET; - } - // fall through - case 137: break; - case 17: - { return PyTokenTypes.RBRACKET; - } - // fall through - case 138: break; - case 18: - { return PyTokenTypes.COLON; - } - // fall through - case 139: break; - case 19: - { return PyTokenTypes.EQ; - } - // fall through - case 140: break; - case 20: - { return PyTokenTypes.FORMFEED; - } - // fall through - case 141: break; - case 21: - { return PyTokenTypes.SEMICOLON; - } - // fall through - case 142: break; - case 22: - { return PyTokenTypes.PLUS; - } - // fall through - case 143: break; - case 23: - { return PyTokenTypes.MULT; - } - // fall through - case 144: break; - case 24: - { return PyTokenTypes.AT; - } - // fall through - case 145: break; - case 25: - { return PyTokenTypes.DIV; - } - // fall through - case 146: break; - case 26: + case 8: { return PyTokenTypes.PERC; - } - // fall through - case 147: break; - case 27: + } + // fall through + case 129: break; + case 9: { return PyTokenTypes.AND; - } - // fall through - case 148: break; - case 28: - { return PyTokenTypes.OR; - } - // fall through - case 149: break; - case 29: - { return PyTokenTypes.XOR; - } - // fall through - case 150: break; - case 30: - { return PyTokenTypes.GT; - } - // fall through - case 151: break; - case 31: - { return PyTokenTypes.LT; - } - // fall through - case 152: break; - case 32: - { return PyTokenTypes.TILDE; - } - // fall through - case 153: break; - case 33: + } + // fall through + case 130: break; + case 10: + { return PyTokenTypes.LPAR; + } + // fall through + case 131: break; + case 11: + { return PyTokenTypes.RPAR; + } + // fall through + case 132: break; + case 12: + { return PyTokenTypes.MULT; + } + // fall through + case 133: break; + case 13: + { return PyTokenTypes.PLUS; + } + // fall through + case 134: break; + case 14: { return PyTokenTypes.COMMA; - } - // fall through - case 154: break; - case 34: + } + // fall through + case 135: break; + case 15: + { return PyTokenTypes.MINUS; + } + // fall through + case 136: break; + case 16: + { return PyTokenTypes.DOT; + } + // fall through + case 137: break; + case 17: + { return PyTokenTypes.DIV; + } + // fall through + case 138: break; + case 18: + { return PyTokenTypes.INTEGER_LITERAL; + } + // fall through + case 139: break; + case 19: + { return PyTokenTypes.COLON; + } + // fall through + case 140: break; + case 20: + { return PyTokenTypes.SEMICOLON; + } + // fall through + case 141: break; + case 21: + { return PyTokenTypes.LT; + } + // fall through + case 142: break; + case 22: + { return PyTokenTypes.EQ; + } + // fall through + case 143: break; + case 23: + { return PyTokenTypes.GT; + } + // fall through + case 144: break; + case 24: + { return PyTokenTypes.AT; + } + // fall through + case 145: break; + case 25: + { return PyTokenTypes.IDENTIFIER; + } + // fall through + case 146: break; + case 26: + { return PyTokenTypes.LBRACKET; + } + // fall through + case 147: break; + case 27: + { return PyTokenTypes.BACKSLASH; + } + // fall through + case 148: break; + case 28: + { return PyTokenTypes.RBRACKET; + } + // fall through + case 149: break; + case 29: + { return PyTokenTypes.XOR; + } + // fall through + case 150: break; + case 30: { return PyTokenTypes.TICK; - } - // fall through + } + // fall through + case 151: break; + case 31: + { return PyTokenTypes.LBRACE; + } + // fall through + case 152: break; + case 32: + { return PyTokenTypes.OR; + } + // fall through + case 153: break; + case 33: + { return PyTokenTypes.RBRACE; + } + // fall through + case 154: break; + case 34: + { return PyTokenTypes.TILDE; + } + // fall through case 155: break; - case 35: + case 35: { yypushback(1); yybegin(YYINITIAL); - } - // fall through + } + // fall through case 156: break; - case 36: - { return PyTokenTypes.END_OF_LINE_COMMENT; - } - // fall through + case 36: + { return PyTokenTypes.LINE_BREAK; + } + // fall through case 157: break; - case 37: + case 37: { if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING; else yybegin(YYINITIAL); return PyTokenTypes.SINGLE_QUOTED_STRING; - } - // fall through + } + // fall through case 158: break; - case 38: - { return PyTokenTypes.LINE_BREAK; - } - // fall through + case 38: + { return PyTokenTypes.END_OF_LINE_COMMENT; + } + // fall through case 159: break; - case 39: + case 39: { return PyTokenTypes.SINGLE_QUOTED_STRING; - } - // fall through + } + // fall through case 160: break; - case 40: + case 40: { return fStringHelper.getTextTokenType(); - } - // fall through + } + // fall through case 161: break; - case 41: - { return fStringHelper.handleFStringEnd(); - } - // fall through - case 162: break; - case 42: - { return fStringHelper.handleFragmentStart(); - } - // fall through - case 163: break; - case 43: + case 41: { return fStringHelper.handleLineBreakInLiteralText(); - } - // fall through + } + // fall through + case 162: break; + case 42: + { return fStringHelper.handleFStringEnd(); + } + // fall through + case 163: break; + case 43: + { return fStringHelper.handleFragmentStart(); + } + // fall through case 164: break; - case 44: - { return fStringHelper.handleStringLiteral(PyTokenTypes.SINGLE_QUOTED_STRING); - } - // fall through - case 165: break; - case 45: - { return fStringHelper.handleLeftBracketInFragment(PyTokenTypes.LBRACE); - } - // fall through - case 166: break; - case 46: - { return fStringHelper.handleRightBracketInFragment(PyTokenTypes.RBRACE); - } - // fall through - case 167: break; - case 47: - { return PyTokenTypes.FSTRING_FRAGMENT_TYPE_CONVERSION; - } - // fall through - case 168: break; - case 48: + case 44: { return fStringHelper.handleLineBreakInFragment(); - } - // fall through - case 169: break; - case 49: + } + // fall through + case 165: break; + case 45: + { return PyTokenTypes.FSTRING_FRAGMENT_TYPE_CONVERSION; + } + // fall through + case 166: break; + case 46: + { return fStringHelper.handleStringLiteral(PyTokenTypes.SINGLE_QUOTED_STRING); + } + // fall through + case 167: break; + case 47: { return fStringHelper.handleLeftBracketInFragment(PyTokenTypes.LPAR); - } - // fall through - case 170: break; - case 50: + } + // fall through + case 168: break; + case 48: { return fStringHelper.handleRightBracketInFragment(PyTokenTypes.RPAR); - } - // fall through - case 171: break; - case 51: - { return fStringHelper.handleLeftBracketInFragment(PyTokenTypes.LBRACKET); - } - // fall through - case 172: break; - case 52: - { return fStringHelper.handleRightBracketInFragment(PyTokenTypes.RBRACKET); - } - // fall through - case 173: break; - case 53: + } + // fall through + case 169: break; + case 49: { return fStringHelper.handleColonInFragment(); - } - // fall through + } + // fall through + case 170: break; + case 50: + { return fStringHelper.handleLeftBracketInFragment(PyTokenTypes.LBRACKET); + } + // fall through + case 171: break; + case 51: + { return fStringHelper.handleRightBracketInFragment(PyTokenTypes.RBRACKET); + } + // fall through + case 172: break; + case 52: + { return fStringHelper.handleLeftBracketInFragment(PyTokenTypes.LBRACE); + } + // fall through + case 173: break; + case 53: + { return fStringHelper.handleRightBracketInFragment(PyTokenTypes.RBRACE); + } + // fall through case 174: break; - case 54: + case 54: { return fStringHelper.handleFragmentEnd(); - } - // fall through + } + // fall through case 175: break; - case 55: - { return PyTokenTypes.FLOAT_LITERAL; - } - // fall through + case 55: + { return PyTokenTypes.NE; + } + // fall through case 176: break; - case 56: - { return PyTokenTypes.IMAGINARY_LITERAL; - } - // fall through - case 177: break; - case 57: - { return PyTokenTypes.MINUSEQ; - } - // fall through - case 178: break; - case 58: - { return PyTokenTypes.RARROW; - } - // fall through - case 179: break; - case 59: + case 56: { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0 || isConsole()) return PyTokenTypes.SINGLE_QUOTED_STRING; return PyTokenTypes.DOCSTRING; - } - // fall through - case 180: break; - case 60: - { return fStringHelper.handleFStringStart(); - } - // fall through - case 181: break; - case 61: - { return PyTokenTypes.NE; - } - // fall through - case 182: break; - case 62: - { return PyTokenTypes.COLONEQ; - } - // fall through - case 183: break; - case 63: - { return PyTokenTypes.EQEQ; - } - // fall through - case 184: break; - case 64: - { return PyTokenTypes.OR_KEYWORD; - } - // fall through - case 185: break; - case 65: - { return PyTokenTypes.IN_KEYWORD; - } - // fall through - case 186: break; - case 66: - { return PyTokenTypes.IS_KEYWORD; - } - // fall through - case 187: break; - case 67: - { return PyTokenTypes.IF_KEYWORD; - } - // fall through - case 188: break; - case 68: - { return PyTokenTypes.PLUSEQ; - } - // fall through - case 189: break; - case 69: - { return PyTokenTypes.MULTEQ; - } - // fall through - case 190: break; - case 70: - { return PyTokenTypes.EXP; - } - // fall through - case 191: break; - case 71: - { return PyTokenTypes.ATEQ; - } - // fall through - case 192: break; - case 72: - { return PyTokenTypes.DIVEQ; - } - // fall through - case 193: break; - case 73: - { return PyTokenTypes.FLOORDIV; - } - // fall through - case 194: break; - case 74: + } + // fall through + case 177: break; + case 57: { return PyTokenTypes.PERCEQ; - } - // fall through - case 195: break; - case 75: + } + // fall through + case 178: break; + case 58: { return PyTokenTypes.ANDEQ; - } - // fall through - case 196: break; - case 76: - { return PyTokenTypes.OREQ; - } - // fall through - case 197: break; - case 77: - { return PyTokenTypes.XOREQ; - } - // fall through - case 198: break; - case 78: - { return PyTokenTypes.GE; - } - // fall through - case 199: break; - case 79: - { return PyTokenTypes.GTGT; - } - // fall through - case 200: break; - case 80: - { return PyTokenTypes.LE; - } - // fall through - case 201: break; - case 81: - { return PyTokenTypes.NE_OLD; - } - // fall through - case 202: break; - case 82: + } + // fall through + case 179: break; + case 59: + { return PyTokenTypes.EXP; + } + // fall through + case 180: break; + case 60: + { return PyTokenTypes.MULTEQ; + } + // fall through + case 181: break; + case 61: + { return PyTokenTypes.PLUSEQ; + } + // fall through + case 182: break; + case 62: + { return PyTokenTypes.MINUSEQ; + } + // fall through + case 183: break; + case 63: + { return PyTokenTypes.RARROW; + } + // fall through + case 184: break; + case 64: + { return PyTokenTypes.FLOAT_LITERAL; + } + // fall through + case 185: break; + case 65: + { return PyTokenTypes.FLOORDIV; + } + // fall through + case 186: break; + case 66: + { return PyTokenTypes.DIVEQ; + } + // fall through + case 187: break; + case 67: + { return PyTokenTypes.IMAGINARY_LITERAL; + } + // fall through + case 188: break; + case 68: + { return PyTokenTypes.COLONEQ; + } + // fall through + case 189: break; + case 69: { return PyTokenTypes.LTLT; - } - // fall through + } + // fall through + case 190: break; + case 70: + { return PyTokenTypes.LE; + } + // fall through + case 191: break; + case 71: + { return PyTokenTypes.NE_OLD; + } + // fall through + case 192: break; + case 72: + { return PyTokenTypes.EQEQ; + } + // fall through + case 193: break; + case 73: + { return PyTokenTypes.GE; + } + // fall through + case 194: break; + case 74: + { return PyTokenTypes.GTGT; + } + // fall through + case 195: break; + case 75: + { return PyTokenTypes.ATEQ; + } + // fall through + case 196: break; + case 76: + { return fStringHelper.handleFStringStart(); + } + // fall through + case 197: break; + case 77: + { return PyTokenTypes.XOREQ; + } + // fall through + case 198: break; + case 78: + { return PyTokenTypes.IF_KEYWORD; + } + // fall through + case 199: break; + case 79: + { return PyTokenTypes.IN_KEYWORD; + } + // fall through + case 200: break; + case 80: + { return PyTokenTypes.IS_KEYWORD; + } + // fall through + case 201: break; + case 81: + { return PyTokenTypes.OR_KEYWORD; + } + // fall through + case 202: break; + case 82: + { return PyTokenTypes.OREQ; + } + // fall through case 203: break; - case 83: + case 83: { yypushback(getSpaceLength(yytext())); yybegin(YYINITIAL); return PyTokenTypes.DOCSTRING; - } - // fall through + } + // fall through case 204: break; - case 84: + case 84: { yypushback(yylength()-1); yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON; - } - // fall through + } + // fall through case 205: break; - case 85: - { return fStringHelper.handleFStringStartInFragment(); - } - // fall through - case 206: break; - case 86: + case 85: { return fStringHelper.handleColonEqInFragment(); - } - // fall through + } + // fall through + case 206: break; + case 86: + { return fStringHelper.handleFStringStartInFragment(); + } + // fall through case 207: break; - case 87: + case 87: { if (zzInput == YYEOF && zzStartRead == 0 && !isConsole()) return PyTokenTypes.DOCSTRING; else return PyTokenTypes.TRIPLE_QUOTED_STRING; - } - // fall through + } + // fall through case 208: break; - case 88: + case 88: { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0 || isConsole()) return PyTokenTypes.SINGLE_QUOTED_STRING; yybegin(PENDING_DOCSTRING); return PyTokenTypes.DOCSTRING; - } - // fall through + } + // fall through case 209: break; - case 89: - { return PyTokenTypes.AND_KEYWORD; - } - // fall through - case 210: break; - case 90: - { return PyTokenTypes.NOT_KEYWORD; - } - // fall through - case 211: break; - case 91: - { return PyTokenTypes.DEL_KEYWORD; - } - // fall through - case 212: break; - case 92: - { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.DEF_KEYWORD; - } - // fall through - case 213: break; - case 93: - { return PyTokenTypes.TRY_KEYWORD; - } - // fall through - case 214: break; - case 94: - { return PyTokenTypes.FOR_KEYWORD; - } - // fall through - case 215: break; - case 95: + case 89: { return PyTokenTypes.EXPEQ; - } - // fall through - case 216: break; - case 96: + } + // fall through + case 210: break; + case 90: { return PyTokenTypes.FLOORDIVEQ; - } - // fall through - case 217: break; - case 97: - { return PyTokenTypes.GTGTEQ; - } - // fall through - case 218: break; - case 98: + } + // fall through + case 211: break; + case 91: { return PyTokenTypes.LTLTEQ; - } - // fall through + } + // fall through + case 212: break; + case 92: + { return PyTokenTypes.GTGTEQ; + } + // fall through + case 213: break; + case 93: + { return PyTokenTypes.AND_KEYWORD; + } + // fall through + case 214: break; + case 94: + { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.DEF_KEYWORD; + } + // fall through + case 215: break; + case 95: + { return PyTokenTypes.DEL_KEYWORD; + } + // fall through + case 216: break; + case 96: + { return PyTokenTypes.FOR_KEYWORD; + } + // fall through + case 217: break; + case 97: + { return PyTokenTypes.NOT_KEYWORD; + } + // fall through + case 218: break; + case 98: + { return PyTokenTypes.TRY_KEYWORD; + } + // fall through case 219: break; - case 99: + case 99: { if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING; else yybegin(YYINITIAL); return PyTokenTypes.TRIPLE_QUOTED_STRING; - } - // fall through + } + // fall through case 220: break; - case 100: + case 100: { yypushback(getSpaceLength(yytext())); return PyTokenTypes.DOCSTRING; - } - // fall through + } + // fall through case 221: break; - case 101: + case 101: { return PyTokenTypes.TRIPLE_QUOTED_STRING; - } - // fall through + } + // fall through case 222: break; - case 102: + case 102: { return fStringHelper.handleStringLiteral(PyTokenTypes.TRIPLE_QUOTED_STRING); - } - // fall through + } + // fall through case 223: break; - case 103: + case 103: { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0 || isConsole()) return PyTokenTypes.TRIPLE_QUOTED_STRING; yybegin(PENDING_DOCSTRING); return PyTokenTypes.DOCSTRING; - } - // fall through + } + // fall through case 224: break; - case 104: - { return PyTokenTypes.ELSE_KEYWORD; - } - // fall through - case 225: break; - case 105: + case 104: { return PyTokenTypes.ELIF_KEYWORD; - } - // fall through + } + // fall through + case 225: break; + case 105: + { return PyTokenTypes.ELSE_KEYWORD; + } + // fall through case 226: break; - case 106: + case 106: { return PyTokenTypes.FROM_KEYWORD; - } - // fall through + } + // fall through case 227: break; - case 107: + case 107: { return PyTokenTypes.PASS_KEYWORD; - } - // fall through + } + // fall through case 228: break; - case 108: - { return PyTokenTypes.RAISE_KEYWORD; - } - // fall through - case 229: break; - case 109: + case 108: { return PyTokenTypes.BREAK_KEYWORD; - } - // fall through - case 230: break; - case 110: + } + // fall through + case 229: break; + case 109: { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.CLASS_KEYWORD; - } - // fall through + } + // fall through + case 230: break; + case 110: + { return PyTokenTypes.RAISE_KEYWORD; + } + // fall through case 231: break; - case 111: - { return PyTokenTypes.YIELD_KEYWORD; - } - // fall through - case 232: break; - case 112: + case 111: { return PyTokenTypes.WHILE_KEYWORD; - } - // fall through + } + // fall through + case 232: break; + case 112: + { return PyTokenTypes.YIELD_KEYWORD; + } + // fall through case 233: break; - case 113: - { return PyTokenTypes.LAMBDA_KEYWORD; - } - // fall through - case 234: break; - case 114: + case 113: { return PyTokenTypes.ASSERT_KEYWORD; - } - // fall through - case 235: break; - case 115: + } + // fall through + case 234: break; + case 114: { return PyTokenTypes.EXCEPT_KEYWORD; - } - // fall through - case 236: break; - case 116: - { return PyTokenTypes.RETURN_KEYWORD; - } - // fall through - case 237: break; - case 117: - { return PyTokenTypes.IMPORT_KEYWORD; - } - // fall through - case 238: break; - case 118: + } + // fall through + case 235: break; + case 115: { return PyTokenTypes.GLOBAL_KEYWORD; - } - // fall through + } + // fall through + case 236: break; + case 116: + { return PyTokenTypes.IMPORT_KEYWORD; + } + // fall through + case 237: break; + case 117: + { return PyTokenTypes.LAMBDA_KEYWORD; + } + // fall through + case 238: break; + case 118: + { return PyTokenTypes.RETURN_KEYWORD; + } + // fall through case 239: break; - case 119: + case 119: { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0 || isConsole()) return PyTokenTypes.TRIPLE_QUOTED_STRING; return PyTokenTypes.DOCSTRING; - } - // fall through + } + // fall through case 240: break; - case 120: + case 120: { return PyTokenTypes.FINALLY_KEYWORD; - } - // fall through + } + // fall through case 241: break; - case 121: + case 121: { return PyTokenTypes.CONTINUE_KEYWORD; - } - // fall through + } + // fall through case 242: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/python/python-psi-impl/gen/com/jetbrains/python/psi/types/_PyTypeLexer.java b/python/python-psi-impl/gen/com/jetbrains/python/psi/types/_PyTypeLexer.java index 6d87f2b2ff80..9fb1f06d1e2c 100644 --- a/python/python-psi-impl/gen/com/jetbrains/python/psi/types/_PyTypeLexer.java +++ b/python/python-psi-impl/gen/com/jetbrains/python/psi/types/_PyTypeLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: PyType.flex package com.jetbrains.python.psi.types; @@ -8,11 +9,6 @@ import static com.jetbrains.python.psi.types.PyTypeTokenTypes.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file PyType.flex - */ public class _PyTypeLexer implements FlexLexer { /** This character denotes the end of file */ @@ -30,43 +26,80 @@ public class _PyTypeLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0 }; - /** - * Translates characters to character classes - * Chosen bits are [8, 6, 7] - * Total runtime size is 1040 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>13]|((ch>>7)&0x3f)]|(ch&0x7f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\u10ff\u0100"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 136 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\207\100"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 128 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\177\200"); - /* The ZZ_CMAP_A table has 256 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\2\1\1\2\0\1\1\22\0\1\2\1\13\6\0\3\20\1\0\1\20\1\30\1\17\1\0\12\34"+ - "\1\3\1\0\1\26\1\27\1\31\2\0\23\14\7\32\1\20\1\0\1\20\1\0\1\33\1\12\1\10\1"+ - "\33\1\6\2\33\1\23\5\33\1\7\1\24\1\33\1\21\1\4\1\33\1\22\1\11\1\25\4\33\1\5"+ - "\1\33\1\15\1\20\1\16\1\13\201\0"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\2\0\1\2\22\0\1\1\1\3"+ + "\6\0\3\4\1\0\1\4\1\5\1\6\1\0\12\7"+ + "\1\10\1\0\1\11\1\12\1\13\2\0\23\14\7\15"+ + "\1\4\1\0\1\4\1\0\1\16\1\17\1\20\1\16"+ + "\1\21\2\16\1\22\5\16\1\23\1\24\1\16\1\25"+ + "\1\26\1\16\1\27\1\30\1\31\4\16\1\32\1\16"+ + "\1\33\1\4\1\34\1\3\u0181\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[512]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\0\1\3\1\4\1\3\2\5"+ - "\3\3\2\0\1\6\3\0\1\5\1\3\2\0\1\3"+ - "\5\0\1\4"; + "\1\0\1\1\1\2\1\3\1\0\1\3\2\0\1\4"+ + "\1\5\1\4\1\6\3\4\3\0\1\4\1\3\2\0"+ + "\1\4\5\0\1\6"; private static int [] zzUnpackAction() { int [] result = new int[29]; @@ -88,15 +121,15 @@ public class _PyTypeLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\35\0\72\0\127\0\164\0\72\0\221\0\256"+ - "\0\72\0\313\0\350\0\u0105\0\u0122\0\u013f\0\221\0\u015c"+ - "\0\u0179\0\u0196\0\164\0\u01b3\0\u01d0\0\u01ed\0\u020a\0\u0227"+ + "\0\0\0\35\0\72\0\35\0\127\0\164\0\221\0\256"+ + "\0\313\0\313\0\350\0\35\0\u0105\0\u0122\0\u013f\0\u015c"+ + "\0\u0179\0\u0196\0\u01b3\0\350\0\u01d0\0\u01ed\0\u020a\0\u0227"+ "\0\u0244\0\u0261\0\u027e\0\u029b\0\u02b8"; private static int [] zzUnpackRowMap() { @@ -109,7 +142,7 @@ public class _PyTypeLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -117,37 +150,36 @@ public class _PyTypeLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\0\1\2\1\3\1\4\6\5\1\6\1\0\1\7"+ - "\1\0\1\6\1\10\1\11\1\12\1\5\1\13\1\5"+ - "\1\14\1\15\1\0\1\16\1\0\1\17\1\5\2\0"+ - "\1\2\74\0\1\20\1\0\1\21\32\0\6\5\2\0"+ - "\1\5\4\0\5\5\4\0\3\5\4\0\6\5\2\0"+ - "\1\5\1\6\3\0\5\5\4\0\3\5\17\0\1\22"+ - "\21\0\6\5\2\0\1\5\4\0\1\5\2\23\2\5"+ - "\4\0\3\5\4\0\6\5\2\0\1\5\4\0\1\5"+ - "\1\24\3\5\4\0\3\5\4\0\6\5\2\0\1\5"+ - "\4\0\1\23\4\5\4\0\3\5\27\0\1\11\36\0"+ - "\1\11\10\0\1\25\36\0\1\26\44\0\1\11\21\0"+ - "\6\5\2\0\1\5\4\0\1\27\4\5\4\0\3\5"+ - "\3\0\1\30\41\0\1\31\30\0\6\5\2\0\1\5"+ - "\4\0\3\5\1\23\1\5\4\0\3\5\6\0\1\21"+ - "\37\0\1\32\34\0\1\33\26\0\1\34\43\0\1\35"+ - "\35\0\1\6\21\0"; + "\1\0\1\2\1\3\1\0\1\4\1\5\1\6\1\0"+ + "\1\7\1\10\2\0\1\11\1\12\1\13\1\14\2\13"+ + "\1\15\2\13\1\16\3\13\1\17\1\13\1\0\1\14"+ + "\37\0\1\3\45\0\1\4\27\0\1\20\47\0\1\21"+ + "\4\0\1\22\20\0\1\4\31\0\1\13\4\0\3\13"+ + "\1\0\13\13\1\14\10\0\1\13\4\0\3\13\1\0"+ + "\13\13\11\0\1\13\4\0\3\13\1\0\7\13\1\23"+ + "\3\13\11\0\1\13\4\0\3\13\1\0\2\13\1\24"+ + "\4\13\1\24\3\13\11\0\1\13\4\0\3\13\1\0"+ + "\5\13\1\24\5\13\10\0\1\4\51\0\1\25\43\0"+ + "\1\26\11\0\1\13\4\0\3\13\1\0\5\13\1\27"+ + "\5\13\22\0\1\30\24\0\1\31\33\0\1\13\4\0"+ + "\3\13\1\0\4\13\1\24\6\13\32\0\1\32\25\0"+ + "\1\21\43\0\1\33\14\0\1\34\43\0\1\35\20\0"+ + "\1\14\31\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[725]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -174,14 +206,13 @@ public class _PyTypeLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\1\1\11\1\0\1\1\1\11\2\1\1\11"+ - "\3\1\2\0\1\1\3\0\2\1\2\0\1\1\5\0"+ - "\1\1"; + "\1\0\1\11\1\1\1\11\1\0\1\1\2\0\3\1"+ + "\1\11\3\1\3\0\2\1\2\0\1\1\5\0\1\1"; private static int [] zzUnpackAttribute() { int [] result = new int[29]; @@ -228,15 +259,27 @@ public class _PyTypeLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; @@ -250,26 +293,22 @@ public class _PyTypeLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -401,7 +440,8 @@ public class _PyTypeLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public PyElementType advance() throws java.io.IOException { + public PyElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -435,7 +475,7 @@ public class _PyTypeLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -457,11 +497,11 @@ public class _PyTypeLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -484,35 +524,35 @@ public class _PyTypeLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: - { return NL; - } - // fall through - case 7: break; - case 2: + case 1: { return SPACE; - } - // fall through + } + // fall through + case 7: break; + case 2: + { return NL; + } + // fall through case 8: break; - case 3: - { return IDENTIFIER; - } - // fall through - case 9: break; - case 4: - { return MARKUP; - } - // fall through - case 10: break; - case 5: + case 3: { return OP; - } - // fall through - case 11: break; - case 6: + } + // fall through + case 9: break; + case 4: + { return IDENTIFIER; + } + // fall through + case 10: break; + case 5: { return PARAMETER; - } - // fall through + } + // fall through + case 11: break; + case 6: + { return MARKUP; + } + // fall through case 12: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/python/rest/gen/com/jetbrains/rest/lexer/_RestFlexLexer.java b/python/rest/gen/com/jetbrains/rest/lexer/_RestFlexLexer.java index 2b61bab152ce..a8c7e7a37b54 100644 --- a/python/rest/gen/com/jetbrains/rest/lexer/_RestFlexLexer.java +++ b/python/rest/gen/com/jetbrains/rest/lexer/_RestFlexLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: rest.flex package com.jetbrains.rest.lexer; @@ -8,11 +9,6 @@ import com.jetbrains.rest.RestTokenTypes; /* Auto generated File */ -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file rest.flex - */ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { /** This character denotes the end of file */ @@ -48,84 +44,125 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 3, 3, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 17 }; - /** - * Translates characters to character classes - * Chosen bits are [9, 6, 6] - * Total runtime size is 1952 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>12]|((ch>>6)&0x3f)]<<6)|(ch&0x3f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\36\u0200\1\u0300\1\u0400\266\u0200\10\u0500\u1020\u0200"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 272 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\100\1\200\u010d\100"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 192 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\172\3\1\6\3\3\1\7\73\3"); - /* The ZZ_CMAP_A table has 512 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\4\1\2\2\1\1\3\22\0\1\23\1\24\1\13\1\21\3\0\1\12\1\66\1\24\1\17\1\20"+ - "\1\24\1\6\1\11\1\62\12\64\1\10\1\24\1\0\1\5\1\22\2\0\1\25\1\46\1\33\1\35\1"+ - "\27\1\44\1\36\1\40\1\55\1\54\1\57\1\47\1\41\1\30\1\32\1\42\1\50\1\37\1\56"+ - "\1\26\1\34\1\51\1\43\1\52\2\54\1\63\1\60\1\65\1\15\1\16\1\7\1\25\1\46\1\33"+ - "\1\35\1\27\1\44\1\36\1\40\1\55\1\54\1\57\1\47\1\41\1\30\1\32\1\42\1\50\1\37"+ - "\1\56\1\26\1\34\1\51\1\43\1\52\2\54\1\66\1\61\1\24\1\14\6\0\1\1\252\0\2\31"+ - "\115\0\1\45\50\0\2\1\100\0\1\53\25\0"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\2\3\1\4\22\0\1\5\1\6"+ + "\1\7\1\10\3\0\1\11\1\12\1\6\1\13\1\14"+ + "\1\6\1\15\1\16\1\17\12\20\1\21\1\6\1\0"+ + "\1\22\1\23\2\0\1\24\1\25\1\26\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\43\1\44\1\45\1\46\1\47\1\50"+ + "\1\51\1\52\1\53\2\35\1\54\1\55\1\56\1\57"+ + "\1\60\1\61\1\24\1\25\1\26\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\43\1\44\1\45\1\46\1\47\1\50\1\51"+ + "\1\52\1\53\2\35\1\12\1\62\1\6\1\63\6\0"+ + "\1\3\252\0\2\64\115\0\1\65\u01a8\0\2\3\u0100\0"+ + "\1\66\325\0\u0100\67"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[1536]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = "\17\0\1\1\2\0\1\2\2\3\1\2\1\4\3\5"+ - "\2\4\6\6\1\4\12\6\1\4\5\6\1\7\5\5"+ - "\1\10\1\11\1\12\1\13\1\14\1\15\2\13\1\16"+ - "\1\17\1\13\2\20\1\21\1\5\1\21\1\22\1\2"+ - "\2\23\3\2\1\4\1\1\1\24\2\25\10\24\1\26"+ - "\2\24\2\25\20\24\1\26\1\24\1\0\3\27\1\5"+ - "\2\0\1\30\1\0\1\6\1\31\3\6\1\0\5\6"+ - "\2\0\1\6\1\0\1\6\1\0\13\6\1\0\5\6"+ - "\1\0\2\6\4\0\6\6\1\0\1\32\2\0\2\6"+ - "\1\33\2\27\1\0\1\27\1\0\2\34\5\0\1\31"+ - "\3\0\1\25\1\35\35\0\1\25\1\35\42\0\4\6"+ - "\2\0\3\6\1\0\2\6\3\0\1\6\1\0\3\6"+ - "\1\0\3\6\1\0\4\6\1\0\3\6\2\0\6\6"+ - "\1\0\2\6\4\0\7\6\1\32\1\36\26\0\1\37"+ - "\6\0\1\40\3\0\2\41\2\0\2\42\36\0\1\37"+ - "\2\0\1\37\57\0\1\40\22\0\3\41\21\0\1\43"+ - "\3\6\3\0\1\6\1\0\1\6\1\0\1\6\2\0"+ - "\1\6\1\0\3\6\2\0\2\6\2\0\4\6\1\0"+ - "\1\6\1\0\1\6\1\0\3\6\1\0\2\6\3\0"+ - "\5\6\1\40\2\0\1\44\14\0\3\45\1\46\1\47"+ - "\2\0\1\42\1\0\2\42\3\0\1\37\30\0\3\42"+ - "\37\0\1\42\1\0\3\45\1\46\1\47\12\0\1\47"+ - "\2\0\1\42\20\0\1\32\1\42\1\0\3\50\2\6"+ - "\2\51\1\0\1\6\3\0\1\6\1\0\2\6\1\0"+ - "\1\6\1\0\1\6\1\0\3\6\1\0\1\6\1\0"+ - "\1\6\1\0\1\6\2\0\2\6\4\0\5\6\2\0"+ - "\3\52\3\53\4\0\1\52\4\0\3\42\21\0\1\42"+ - "\1\0\1\52\1\42\1\0\1\52\1\42\17\0\1\42"+ - "\5\0\1\6\1\0\1\6\2\0\1\6\2\0\2\6"+ - "\1\0\1\6\1\0\1\6\1\0\1\6\1\0\1\6"+ - "\1\0\1\6\1\0\1\6\2\0\2\6\4\0\4\6"+ - "\3\54\1\55\1\56\2\0\1\55\1\42\1\0\1\55"+ - "\1\56\1\42\1\0\1\56\5\0\1\6\4\0\2\6"+ - "\1\0\1\6\1\0\1\6\1\0\1\6\3\0\1\6"+ - "\2\0\3\6\7\0\1\6\1\0\1\6\6\0\1\6"+ - "\3\57\5\0\1\6\1\0\1\6\5\0\1\6\15\57"+ - "\4\0\1\6\6\0\1\6\1\42\2\0\1\6\2\60"+ - "\5\0\1\6\5\0\1\6\5\0\1\6\3\0\1\6"+ - "\3\0\1\6\42\0"; + "\1\4\2\6\1\4\23\6\2\4\1\7\3\5\1\10"+ + "\2\5\1\11\1\12\1\13\1\14\1\15\2\14\1\16"+ + "\1\17\1\14\2\20\1\21\1\5\1\22\1\21\1\2"+ + "\2\23\3\2\1\4\1\1\2\24\2\25\6\24\1\26"+ + "\4\24\2\25\13\24\1\26\5\24\1\0\1\5\3\27"+ + "\2\0\1\30\7\6\2\0\6\6\1\0\2\6\1\0"+ + "\3\6\1\0\13\6\1\0\3\6\1\0\2\6\2\0"+ + "\2\6\1\31\1\0\1\6\1\32\1\0\1\33\4\0"+ + "\2\27\1\0\1\27\1\0\2\34\5\0\1\32\1\0"+ + "\1\35\2\0\1\25\20\0\1\35\15\0\1\25\41\0"+ + "\11\6\2\0\4\6\1\0\3\6\1\0\3\6\2\0"+ + "\4\6\1\0\6\6\1\0\4\6\1\0\2\6\2\0"+ + "\1\6\1\0\1\6\1\36\1\0\1\6\1\33\36\0"+ + "\1\37\2\40\5\0\1\41\3\0\2\42\55\0\1\37"+ + "\1\0\3\40\26\0\1\41\31\0\1\41\25\0\5\6"+ + "\1\0\3\6\3\0\3\6\1\0\3\6\1\0\1\6"+ + "\1\0\3\6\1\0\1\6\1\0\2\6\1\0\3\6"+ + "\1\0\2\6\3\0\1\6\1\0\1\6\1\43\4\0"+ + "\1\37\2\0\1\44\10\0\1\45\1\46\3\0\3\47"+ + "\3\0\1\42\1\0\2\42\1\0\1\45\1\46\3\0"+ + "\1\46\11\0\1\42\36\0\1\42\1\0\3\47\31\0"+ + "\1\41\2\0\2\42\1\0\1\42\17\0\1\33\1\42"+ + "\1\0\3\50\2\6\1\0\1\6\1\0\3\6\3\0"+ + "\2\6\1\0\2\6\1\0\3\6\2\0\1\51\2\6"+ + "\1\0\2\6\1\0\2\6\1\0\1\6\1\51\1\0"+ + "\1\6\6\0\3\52\3\53\3\0\1\52\5\0\1\42"+ + "\17\0\1\42\1\0\1\52\1\42\1\0\1\52\3\0"+ + "\2\42\1\0\1\42\20\0\1\42\2\0\1\6\1\0"+ + "\1\6\2\0\2\6\1\0\1\6\2\0\2\6\1\0"+ + "\2\6\1\0\2\6\2\0\1\6\1\0\2\6\1\0"+ + "\1\6\1\0\2\6\4\0\3\54\1\55\2\0\1\56"+ + "\1\55\1\42\1\0\1\55\2\0\1\56\1\42\1\0"+ + "\1\56\1\0\1\6\2\0\1\6\2\0\2\6\1\0"+ + "\2\6\1\0\1\6\3\0\1\6\1\0\1\6\1\0"+ + "\1\6\10\0\1\6\4\0\1\6\3\0\1\6\2\0"+ + "\3\57\3\0\1\6\3\0\1\6\3\0\1\6\2\0"+ + "\15\57\6\0\1\6\3\0\1\6\1\0\1\42\2\60"+ + "\2\0\1\6\6\0\1\6\5\0\1\6\3\0\1\6"+ + "\3\0\1\6\3\0\1\6\43\0"; private static int [] zzUnpackAction() { int [] result = new int[964]; @@ -147,133 +184,133 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\67\0\156\0\245\0\334\0\u0113\0\u014a\0\u0181"+ - "\0\u01b8\0\u01ef\0\u0226\0\u025d\0\u0294\0\u02cb\0\u0302\0\u0339"+ - "\0\u0370\0\u03a7\0\u03de\0\u03de\0\u0415\0\u044c\0\u03de\0\u0483"+ - "\0\u04ba\0\u04f1\0\u0528\0\u055f\0\u0596\0\u05cd\0\u0604\0\u063b"+ - "\0\u0672\0\u06a9\0\u06e0\0\u0717\0\u074e\0\u0785\0\u07bc\0\u07f3"+ - "\0\u082a\0\u0861\0\u0898\0\u08cf\0\u0906\0\u093d\0\u0974\0\u09ab"+ - "\0\u09e2\0\u0a19\0\u0a50\0\u03de\0\u0a87\0\u0abe\0\u0af5\0\u03de"+ - "\0\u0b2c\0\u0b63\0\u03de\0\u03de\0\u0b9a\0\u0bd1\0\u0c08\0\u03de"+ - "\0\u0c3f\0\u03de\0\u03de\0\u0c76\0\u03de\0\u0cad\0\u0ce4\0\u0ce4"+ - "\0\u03de\0\u03de\0\u0d1b\0\u0d52\0\u03de\0\u0d89\0\u0dc0\0\u0df7"+ - "\0\u0e2e\0\u0e65\0\u03de\0\u0e9c\0\u0ed3\0\u0f0a\0\u0f41\0\u0f78"+ - "\0\u0faf\0\u0fe6\0\u101d\0\u1054\0\u108b\0\u03de\0\u10c2\0\u10f9"+ - "\0\u1130\0\u1167\0\u119e\0\u11d5\0\u120c\0\u1243\0\u127a\0\u12b1"+ - "\0\u12e8\0\u131f\0\u1356\0\u138d\0\u13c4\0\u13fb\0\u1432\0\u1469"+ - "\0\u14a0\0\u14d7\0\u10f9\0\u150e\0\u1545\0\u157c\0\u15b3\0\u0483"+ - "\0\u157c\0\u0528\0\u055f\0\u055f\0\u15ea\0\u1621\0\u0596\0\u1658"+ - "\0\u168f\0\u16c6\0\u16fd\0\u1734\0\u176b\0\u17a2\0\u17d9\0\u1810"+ - "\0\u1847\0\u187e\0\u18b5\0\u18ec\0\u1923\0\u195a\0\u1991\0\u19c8"+ - "\0\u19ff\0\u1a36\0\u1a6d\0\u1aa4\0\u1adb\0\u1b12\0\u1b49\0\u1b80"+ - "\0\u1bb7\0\u1bee\0\u1c25\0\u1c5c\0\u1c93\0\u1cca\0\u1d01\0\u1d38"+ - "\0\u1d6f\0\u1da6\0\u1ddd\0\u1e14\0\u1e4b\0\u1e82\0\u1eb9\0\u1ef0"+ - "\0\u1f27\0\u1f5e\0\u1f95\0\u1fcc\0\u2003\0\u0596\0\u203a\0\u2071"+ - "\0\u20a8\0\u20df\0\u03de\0\u03de\0\u2116\0\u214d\0\u0a87\0\u2184"+ - "\0\u03de\0\u21bb\0\u0d1b\0\u21f2\0\u2229\0\u2260\0\u2297\0\u03de"+ - "\0\u22ce\0\u2305\0\u233c\0\u2373\0\u0f0a\0\u23aa\0\u23e1\0\u2418"+ - "\0\u244f\0\u2486\0\u24bd\0\u24f4\0\u252b\0\u2562\0\u1054\0\u2599"+ - "\0\u25d0\0\u2607\0\u10f9\0\u263e\0\u2675\0\u26ac\0\u26e3\0\u271a"+ - "\0\u2751\0\u2788\0\u27bf\0\u27f6\0\u282d\0\u2864\0\u289b\0\u28d2"+ - "\0\u2909\0\u2940\0\u2977\0\u119e\0\u29ae\0\u29e5\0\u11d5\0\u2a1c"+ - "\0\u120c\0\u2a53\0\u2a8a\0\u2ac1\0\u2af8\0\u2b2f\0\u2b66\0\u2b9d"+ - "\0\u2bd4\0\u2c0b\0\u2c42\0\u2c79\0\u2cb0\0\u2ce7\0\u1356\0\u138d"+ - "\0\u13c4\0\u2d1e\0\u2d55\0\u2d8c\0\u1432\0\u1469\0\u14a0\0\u2dc3"+ - "\0\u2dfa\0\u2e31\0\u2e68\0\u2e9f\0\u2ed6\0\u2f0d\0\u2f44\0\u2f7b"+ - "\0\u2fb2\0\u2fe9\0\u3020\0\u3057\0\u308e\0\u30c5\0\u30fc\0\u3133"+ - "\0\u316a\0\u31a1\0\u31d8\0\u320f\0\u3246\0\u327d\0\u32b4\0\u32eb"+ - "\0\u3322\0\u3359\0\u3390\0\u33c7\0\u33fe\0\u3435\0\u346c\0\u34a3"+ - "\0\u34da\0\u3511\0\u3548\0\u357f\0\u35b6\0\u35ed\0\u3624\0\u365b"+ - "\0\u3692\0\u36c9\0\u3700\0\u3737\0\u376e\0\u37a5\0\u37dc\0\u3813"+ - "\0\u384a\0\u3881\0\u38b8\0\u38ef\0\u3926\0\u395d\0\u3994\0\u39cb"+ - "\0\u3a02\0\u3a39\0\u3a70\0\u3aa7\0\u3ade\0\u03de\0\u03de\0\u3b15"+ - "\0\u3b4c\0\u3b83\0\u3bba\0\u3bf1\0\u3c28\0\u3c5f\0\u3c96\0\u3ccd"+ - "\0\u3d04\0\u3d3b\0\u3d72\0\u3da9\0\u3de0\0\u3e17\0\u3e4e\0\u3e85"+ - "\0\u3ebc\0\u3ef3\0\u3f2a\0\u3f61\0\u3f98\0\u3fcf\0\u3fcf\0\u4006"+ - "\0\u403d\0\u4074\0\u40ab\0\u40e2\0\u24bd\0\u4119\0\u4150\0\u4187"+ - "\0\u03de\0\u1054\0\u41be\0\u41f5\0\u03de\0\u422c\0\u4263\0\u429a"+ - "\0\u42d1\0\u4308\0\u433f\0\u4376\0\u43ad\0\u43e4\0\u441b\0\u4452"+ - "\0\u4489\0\u44c0\0\u44f7\0\u452e\0\u4565\0\u459c\0\u45d3\0\u460a"+ - "\0\u4641\0\u4678\0\u46af\0\u46e6\0\u471d\0\u4754\0\u478b\0\u47c2"+ - "\0\u47f9\0\u4830\0\u4867\0\u489e\0\u48d5\0\u490c\0\u4943\0\u497a"+ - "\0\u49b1\0\u49e8\0\u4a1f\0\u4a56\0\u4a8d\0\u4ac4\0\u4afb\0\u4b32"+ - "\0\u4b69\0\u4ba0\0\u4bd7\0\u4c0e\0\u4c45\0\u497a\0\u4c7c\0\u4cb3"+ - "\0\u4cea\0\u4d21\0\u4d58\0\u4d8f\0\u4dc6\0\u4dfd\0\u4e34\0\u4e6b"+ - "\0\u4ea2\0\u4ed9\0\u4f10\0\u48d5\0\u4f47\0\u4f7e\0\u4fb5\0\u4fec"+ - "\0\u5023\0\u505a\0\u5091\0\u50c8\0\u50ff\0\u5136\0\u516d\0\u51a4"+ - "\0\u51db\0\u5212\0\u5249\0\u5280\0\u52b7\0\u52ee\0\u5325\0\u535c"+ - "\0\u5393\0\u53ca\0\u5401\0\u5438\0\u546f\0\u54a6\0\u54dd\0\u5514"+ - "\0\u554b\0\u5582\0\u55b9\0\u55f0\0\u5627\0\u565e\0\u5695\0\u56cc"+ - "\0\u5703\0\u573a\0\u263e\0\u14a0\0\u10f9\0\u5771\0\u57a8\0\u57df"+ - "\0\u5816\0\u584d\0\u5884\0\u58bb\0\u58f2\0\u5929\0\u5960\0\u5997"+ - "\0\u59ce\0\u5a05\0\u5a3c\0\u5a73\0\u5aaa\0\u5ae1\0\u03de\0\u5b18"+ - "\0\u5b4f\0\u5b86\0\u5bbd\0\u5bf4\0\u5c2b\0\u5c62\0\u5c99\0\u5cd0"+ - "\0\u5d07\0\u5d3e\0\u5d75\0\u5dac\0\u5de3\0\u5e1a\0\u5e51\0\u5e88"+ - "\0\u5ebf\0\u5ef6\0\u5f2d\0\u5f64\0\u5f9b\0\u5fd2\0\u6009\0\u6040"+ - "\0\u6077\0\u60ae\0\u60e5\0\u611c\0\u6153\0\u618a\0\u61c1\0\u61f8"+ - "\0\u622f\0\u6266\0\u629d\0\u62d4\0\u630b\0\u6342\0\u6379\0\u63b0"+ - "\0\u63e7\0\u641e\0\u6455\0\u648c\0\u64c3\0\u64fa\0\u03de\0\u6531"+ - "\0\u6568\0\u03de\0\u659f\0\u65d6\0\u660d\0\u6644\0\u667b\0\u66b2"+ - "\0\u66e9\0\u6720\0\u6757\0\u678e\0\u67c5\0\u67fc\0\u03de\0\u6833"+ - "\0\u40ab\0\u03de\0\u03de\0\u686a\0\u68a1\0\u66e9\0\u68d8\0\u263e"+ - "\0\u690f\0\u6946\0\u697d\0\u69b4\0\u69eb\0\u6a22\0\u6a59\0\u6a90"+ - "\0\u6ac7\0\u6afe\0\u6b35\0\u6b6c\0\u6ba3\0\u6bda\0\u6c11\0\u6c48"+ - "\0\u6c7f\0\u69eb\0\u6cb6\0\u6ced\0\u6d24\0\u6d5b\0\u6d92\0\u6dc9"+ - "\0\u6e00\0\u6e37\0\u6e6e\0\u6ea5\0\u6edc\0\u4830\0\u4867\0\u6f13"+ - "\0\u6f4a\0\u6f81\0\u6fb8\0\u6fef\0\u7026\0\u705d\0\u7094\0\u70cb"+ - "\0\u7102\0\u7139\0\u7170\0\u71a7\0\u71de\0\u7215\0\u724c\0\u7283"+ - "\0\u72ba\0\u72f1\0\u7328\0\u735f\0\u7396\0\u73cd\0\u7404\0\u743b"+ - "\0\u7472\0\u74a9\0\u74e0\0\u7517\0\u754e\0\u7585\0\u75bc\0\u4f7e"+ - "\0\u75f3\0\u263e\0\u762a\0\u5280\0\u10f9\0\u10f9\0\u7661\0\u7698"+ - "\0\u76cf\0\u7706\0\u773d\0\u7774\0\u77ab\0\u77e2\0\u7819\0\u7850"+ - "\0\u28d2\0\u7887\0\u78be\0\u5401\0\u78f5\0\u792c\0\u7963\0\u799a"+ - "\0\u79d1\0\u7a08\0\u7a3f\0\u7a76\0\u7aad\0\u7ae4\0\u7b1b\0\u7b52"+ - "\0\u7b89\0\u7bc0\0\u7bf7\0\u7c2e\0\u10f9\0\u41f5\0\u7c65\0\u03de"+ - "\0\u2e9f\0\u1545\0\u7c9c\0\u7cd3\0\u03de\0\u055f\0\u7d0a\0\u7d41"+ - "\0\u7d78\0\u7daf\0\u7de6\0\u7e1d\0\u7e54\0\u7e8b\0\u7ec2\0\u7ef9"+ - "\0\u7f30\0\u7f67\0\u7f9e\0\u7fd5\0\u800c\0\u8043\0\u807a\0\u80b1"+ - "\0\u80e8\0\u811f\0\u8156\0\u818d\0\u81c4\0\u81fb\0\u8232\0\u8269"+ - "\0\u82a0\0\u82d7\0\u830e\0\u8345\0\u837c\0\u83b3\0\u83ea\0\u8421"+ - "\0\u8458\0\u848f\0\u84c6\0\u84fd\0\u03de\0\u3bba\0\u2297\0\u03de"+ - "\0\u3c28\0\u22ce\0\u8534\0\u856b\0\u85a2\0\u85d9\0\u403d\0\u8610"+ - "\0\u8647\0\u867e\0\u86b5\0\u23aa\0\u23e1\0\u86ec\0\u8723\0\u875a"+ - "\0\u8791\0\u87c8\0\u87ff\0\u8836\0\u886d\0\u88a4\0\u88db\0\u8912"+ - "\0\u8949\0\u8980\0\u89b7\0\u89ee\0\u8a25\0\u8a5c\0\u8a93\0\u6fef"+ - "\0\u8aca\0\u10f9\0\u403d\0\u8b01\0\u4f47\0\u4150\0\u8b38\0\u8b6f"+ - "\0\u8ba6\0\u8bdd\0\u8c14\0\u8c4b\0\u8c82\0\u8cb9\0\u8cf0\0\u8d27"+ - "\0\u8d5e\0\u8d95\0\u8dcc\0\u8e03\0\u8e3a\0\u7963\0\u8e71\0\u8ea8"+ - "\0\u8edf\0\u8f16\0\u8f4d\0\u8f84\0\u8fbb\0\u8ff2\0\u9029\0\u9060"+ - "\0\u9097\0\u90ce\0\u9105\0\u913c\0\u9173\0\u91aa\0\u91e1\0\u9218"+ - "\0\u924f\0\u9286\0\u92bd\0\u92f4\0\u932b\0\u9362\0\u9399\0\u93d0"+ - "\0\u9407\0\u943e\0\u9475\0\u94ac\0\u94e3\0\u951a\0\u9551\0\u9588"+ - "\0\u95bf\0\u95f6\0\u962d\0\u9664\0\u969b\0\u03de\0\u6531\0\u3b4c"+ - "\0\u03de\0\u03de\0\u96d2\0\u9709\0\u10f9\0\u678e\0\u9740\0\u271a"+ - "\0\u10f9\0\u686a\0\u9777\0\u28d2\0\u97ae\0\u97e5\0\u981c\0\u9853"+ - "\0\u988a\0\u98c1\0\u98f8\0\u992f\0\u9966\0\u999d\0\u99d4\0\u9a0b"+ - "\0\u9a42\0\u9a79\0\u9ab0\0\u9ae7\0\u9b1e\0\u9b55\0\u9b8c\0\u9bc3"+ - "\0\u9bfa\0\u9c31\0\u9c68\0\u9c9f\0\u9cd6\0\u9d0d\0\u9d44\0\u9d7b"+ - "\0\u9db2\0\u9de9\0\u9e20\0\u9e57\0\u9e8e\0\u9ec5\0\u9efc\0\u9f33"+ - "\0\u9f6a\0\u9fa1\0\u9fd8\0\ua00f\0\ua046\0\ua07d\0\ua0b4\0\ua0eb"+ - "\0\u9d7b\0\u9db2\0\ua122\0\ua159\0\ua190\0\ua1c7\0\ua1fe\0\ua235"+ - "\0\ua26c\0\ua2a3\0\ua2da\0\ua311\0\ua348\0\ua37f\0\ua3b6\0\ua3ed"+ - "\0\ua424\0\ua45b\0\ua492\0\ua4c9\0\ua500\0\ua537\0\ua56e\0\ua5a5"+ - "\0\ua5dc\0\ua613\0\ua64a\0\ua681\0\ua6b8\0\ua6ef\0\ua726\0\ua75d"+ - "\0\ua794\0\ua7cb\0\ua802\0\ua839\0\ua870\0\ua8a7\0\ua8de\0\ua915"+ - "\0\ua94c\0\ua983\0\u9d7b\0\ua9ba\0\ua9f1\0\uaa28\0\u03de\0\u055f"+ - "\0\uaa5f\0\uaa96\0\uaacd\0\uab04\0\uab3b\0\uab72\0\uaba9\0\uabe0"+ - "\0\uac17\0\uac4e\0\uac85\0\uacbc\0\uacf3\0\uad2a\0\uad61\0\uad98"+ - "\0\uadcf\0\uae06\0\uae3d\0\uae74\0\uaeab\0\uaee2\0\uaf19\0\uaf50"+ - "\0\uaf87\0\uafbe\0\uaff5\0\ub02c\0\ub063\0\ub09a\0\ub0d1\0\ub108"+ - "\0\ub13f\0\ub176\0\ub1ad\0\ub1e4\0\ub21b\0\ub252\0\ub289\0\ub2c0"+ - "\0\ub2f7\0\ub32e\0\ub365\0\ub39c\0\ub3d3\0\ub40a\0\ub441\0\ub478"+ - "\0\ub4af\0\ub4e6\0\ub51d\0\ub554\0\ub58b\0\ub5c2\0\ub5f9\0\ub630"+ - "\0\ub667\0\ub69e\0\ub6d5\0\ub70c"; + "\0\0\0\70\0\160\0\250\0\340\0\u0118\0\u0150\0\u0188"+ + "\0\u01c0\0\u01f8\0\u0230\0\u0268\0\u02a0\0\u02d8\0\u0310\0\u0348"+ + "\0\u0380\0\u03b8\0\u03f0\0\u03f0\0\u0428\0\u0460\0\u03f0\0\u0498"+ + "\0\u04d0\0\u0508\0\u0540\0\u0578\0\u05b0\0\u05e8\0\u0620\0\u0658"+ + "\0\u0690\0\u06c8\0\u0700\0\u0738\0\u0770\0\u07a8\0\u07e0\0\u0818"+ + "\0\u0850\0\u0888\0\u08c0\0\u08f8\0\u0930\0\u0968\0\u09a0\0\u09d8"+ + "\0\u0a10\0\u0a48\0\u0a80\0\u03f0\0\u0ab8\0\u0af0\0\u0b28\0\u0b60"+ + "\0\u03f0\0\u0b98\0\u03f0\0\u03f0\0\u0bd0\0\u0c08\0\u0c40\0\u03f0"+ + "\0\u0c78\0\u03f0\0\u03f0\0\u0cb0\0\u03f0\0\u0ce8\0\u0d20\0\u0d20"+ + "\0\u03f0\0\u03f0\0\u0d58\0\u0d90\0\u03f0\0\u0dc8\0\u0e00\0\u0e38"+ + "\0\u0e70\0\u0ea8\0\u03f0\0\u0ee0\0\u0f18\0\u0f50\0\u0f88\0\u0fc0"+ + "\0\u0ff8\0\u1030\0\u1068\0\u10a0\0\u03f0\0\u10d8\0\u1110\0\u1148"+ + "\0\u1180\0\u11b8\0\u11f0\0\u1228\0\u1260\0\u1298\0\u12d0\0\u1308"+ + "\0\u1340\0\u1378\0\u13b0\0\u13e8\0\u1420\0\u1458\0\u1148\0\u1490"+ + "\0\u14c8\0\u1500\0\u1538\0\u1570\0\u15a8\0\u15e0\0\u15e0\0\u1618"+ + "\0\u04d0\0\u0540\0\u05e8\0\u05e8\0\u1650\0\u1688\0\u16c0\0\u16f8"+ + "\0\u1730\0\u1768\0\u17a0\0\u17d8\0\u1810\0\u1848\0\u1880\0\u18b8"+ + "\0\u18f0\0\u1928\0\u1960\0\u1998\0\u19d0\0\u1a08\0\u1a40\0\u1a78"+ + "\0\u1ab0\0\u1ae8\0\u1b20\0\u1b58\0\u1b90\0\u1bc8\0\u1c00\0\u1c38"+ + "\0\u1c70\0\u1ca8\0\u1ce0\0\u1d18\0\u1d50\0\u1d88\0\u1dc0\0\u1df8"+ + "\0\u1e30\0\u1e68\0\u1ea0\0\u1ed8\0\u1f10\0\u1f48\0\u1f80\0\u1fb8"+ + "\0\u1ff0\0\u03f0\0\u2028\0\u2060\0\u0578\0\u2098\0\u0578\0\u20d0"+ + "\0\u2108\0\u2140\0\u2178\0\u03f0\0\u21b0\0\u21e8\0\u0af0\0\u2220"+ + "\0\u03f0\0\u2258\0\u0d58\0\u2290\0\u22c8\0\u2300\0\u2338\0\u03f0"+ + "\0\u2370\0\u0ee0\0\u23a8\0\u23e0\0\u2418\0\u2450\0\u2488\0\u24c0"+ + "\0\u24f8\0\u1030\0\u2530\0\u2568\0\u25a0\0\u25d8\0\u2610\0\u2648"+ + "\0\u2680\0\u26b8\0\u1148\0\u26f0\0\u2728\0\u1180\0\u2760\0\u2798"+ + "\0\u27d0\0\u2808\0\u2840\0\u2878\0\u28b0\0\u28e8\0\u2920\0\u2958"+ + "\0\u2990\0\u29c8\0\u2a00\0\u2a38\0\u2a70\0\u2aa8\0\u2ae0\0\u2b18"+ + "\0\u2b50\0\u1260\0\u2b88\0\u2bc0\0\u2bf8\0\u2c30\0\u1308\0\u1340"+ + "\0\u2c68\0\u13b0\0\u2ca0\0\u2cd8\0\u2d10\0\u2d48\0\u1420\0\u2d80"+ + "\0\u1490\0\u14c8\0\u2db8\0\u2df0\0\u2e28\0\u2e60\0\u2e98\0\u2ed0"+ + "\0\u2f08\0\u2f40\0\u1570\0\u2f78\0\u2fb0\0\u2fe8\0\u3020\0\u3058"+ + "\0\u3090\0\u30c8\0\u3100\0\u3138\0\u3170\0\u31a8\0\u31e0\0\u3218"+ + "\0\u3250\0\u3288\0\u32c0\0\u32f8\0\u3330\0\u3368\0\u33a0\0\u33d8"+ + "\0\u3410\0\u3448\0\u3480\0\u34b8\0\u34f0\0\u3528\0\u3560\0\u3598"+ + "\0\u35d0\0\u3608\0\u3640\0\u3678\0\u36b0\0\u36e8\0\u3720\0\u3758"+ + "\0\u3790\0\u37c8\0\u3800\0\u3838\0\u3870\0\u38a8\0\u38e0\0\u3918"+ + "\0\u3950\0\u3988\0\u39c0\0\u39f8\0\u3a30\0\u3a68\0\u03f0\0\u3aa0"+ + "\0\u3ad8\0\u03f0\0\u3b10\0\u3b48\0\u3b80\0\u3bb8\0\u3bf0\0\u3c28"+ + "\0\u3c60\0\u3c98\0\u3cd0\0\u3d08\0\u3d40\0\u3d78\0\u3db0\0\u3de8"+ + "\0\u3e20\0\u3e58\0\u3e90\0\u3ec8\0\u3f00\0\u3f38\0\u3f70\0\u3fa8"+ + "\0\u3fe0\0\u4018\0\u4050\0\u4088\0\u40c0\0\u40f8\0\u4130\0\u4168"+ + "\0\u24f8\0\u03f0\0\u1030\0\u41a0\0\u41d8\0\u4210\0\u4248\0\u4280"+ + "\0\u42b8\0\u42b8\0\u42f0\0\u4328\0\u03f0\0\u4360\0\u4398\0\u43d0"+ + "\0\u4408\0\u4440\0\u4478\0\u44b0\0\u44e8\0\u4520\0\u4558\0\u4590"+ + "\0\u45c8\0\u4600\0\u4638\0\u4670\0\u46a8\0\u46e0\0\u4718\0\u4750"+ + "\0\u4788\0\u47c0\0\u47f8\0\u4830\0\u4868\0\u48a0\0\u48d8\0\u4910"+ + "\0\u4948\0\u4980\0\u49b8\0\u49f0\0\u4a28\0\u4a60\0\u4a98\0\u4ad0"+ + "\0\u4b08\0\u4b40\0\u4b78\0\u4bb0\0\u4be8\0\u4c20\0\u4c58\0\u4c90"+ + "\0\u4cc8\0\u4d00\0\u4d38\0\u4d70\0\u4da8\0\u26f0\0\u1148\0\u13b0"+ + "\0\u4de0\0\u4e18\0\u4e50\0\u4e88\0\u4ec0\0\u4ef8\0\u4f30\0\u4f68"+ + "\0\u4fa0\0\u4fd8\0\u5010\0\u5048\0\u5080\0\u50b8\0\u50f0\0\u5128"+ + "\0\u5160\0\u5198\0\u51d0\0\u5208\0\u5240\0\u5278\0\u52b0\0\u52e8"+ + "\0\u5320\0\u5358\0\u5390\0\u53c8\0\u5400\0\u5438\0\u5470\0\u54a8"+ + "\0\u54e0\0\u5518\0\u5550\0\u5588\0\u55c0\0\u55f8\0\u5630\0\u5668"+ + "\0\u56a0\0\u56d8\0\u5710\0\u5748\0\u5780\0\u57b8\0\u57f0\0\u5828"+ + "\0\u5588\0\u5860\0\u52b0\0\u5898\0\u58d0\0\u5908\0\u5940\0\u5978"+ + "\0\u59b0\0\u59e8\0\u5a20\0\u5a58\0\u5a90\0\u5ac8\0\u5b00\0\u5b38"+ + "\0\u5b70\0\u5ba8\0\u5be0\0\u5c18\0\u5c50\0\u5c88\0\u5cc0\0\u5cf8"+ + "\0\u5d30\0\u5d68\0\u5da0\0\u5dd8\0\u5e10\0\u5e48\0\u5e80\0\u5eb8"+ + "\0\u5ef0\0\u5f28\0\u5f60\0\u5f98\0\u5fd0\0\u6008\0\u6040\0\u6078"+ + "\0\u60b0\0\u60e8\0\u6120\0\u6158\0\u6190\0\u61c8\0\u6200\0\u6238"+ + "\0\u6270\0\u62a8\0\u62e0\0\u6318\0\u6350\0\u6388\0\u63c0\0\u63f8"+ + "\0\u6430\0\u6468\0\u64a0\0\u64d8\0\u6510\0\u6548\0\u6580\0\u65b8"+ + "\0\u65f0\0\u03f0\0\u6628\0\u6660\0\u6698\0\u66d0\0\u03f0\0\u6708"+ + "\0\u6740\0\u03f0\0\u6778\0\u67b0\0\u67e8\0\u6820\0\u6858\0\u6890"+ + "\0\u68c8\0\u6900\0\u03f0\0\u03f0\0\u6938\0\u6970\0\u69a8\0\u03f0"+ + "\0\u69e0\0\u4210\0\u6a18\0\u6a50\0\u6a88\0\u68c8\0\u6ac0\0\u26f0"+ + "\0\u6af8\0\u6b30\0\u1148\0\u1148\0\u6b68\0\u6ba0\0\u6bd8\0\u2808"+ + "\0\u6c10\0\u6c48\0\u6c80\0\u6cb8\0\u6cf0\0\u6d28\0\u6d60\0\u6d98"+ + "\0\u6dd0\0\u49f0\0\u6e08\0\u6e40\0\u6e78\0\u6eb0\0\u6ee8\0\u6f20"+ + "\0\u6f58\0\u6f90\0\u6fc8\0\u7000\0\u7038\0\u7070\0\u70a8\0\u70e0"+ + "\0\u7118\0\u7150\0\u7188\0\u71c0\0\u71f8\0\u7230\0\u7268\0\u72a0"+ + "\0\u72d8\0\u7310\0\u7348\0\u7380\0\u73b8\0\u73f0\0\u7428\0\u7460"+ + "\0\u4e18\0\u7498\0\u26f0\0\u74d0\0\u5128\0\u7508\0\u7540\0\u7578"+ + "\0\u75b0\0\u75e8\0\u7620\0\u7658\0\u7690\0\u76c8\0\u7700\0\u7738"+ + "\0\u7770\0\u77a8\0\u77e0\0\u7818\0\u7850\0\u7888\0\u78c0\0\u78f8"+ + "\0\u7930\0\u7968\0\u79a0\0\u79d8\0\u7a10\0\u7a48\0\u77a8\0\u7a80"+ + "\0\u7ab8\0\u5208\0\u7af0\0\u7b28\0\u5240\0\u7b60\0\u7b98\0\u7bd0"+ + "\0\u7c08\0\u7c40\0\u7c78\0\u7cb0\0\u7ce8\0\u7d20\0\u7d58\0\u7d90"+ + "\0\u7dc8\0\u7e00\0\u7e38\0\u7e70\0\u1148\0\u4328\0\u7ea8\0\u03f0"+ + "\0\u15a8\0\u2f78\0\u7ee0\0\u7f18\0\u7f50\0\u7f88\0\u7fc0\0\u7ff8"+ + "\0\u8030\0\u8068\0\u80a0\0\u80d8\0\u8110\0\u8148\0\u8180\0\u81b8"+ + "\0\u81f0\0\u8228\0\u8260\0\u8298\0\u82d0\0\u8308\0\u8340\0\u8378"+ + "\0\u05e8\0\u83b0\0\u83e8\0\u8420\0\u8458\0\u8490\0\u84c8\0\u8500"+ + "\0\u8538\0\u8570\0\u85a8\0\u03f0\0\u85e0\0\u8618\0\u8650\0\u8688"+ + "\0\u86c0\0\u86f8\0\u8730\0\u8768\0\u03f0\0\u2338\0\u3cd0\0\u03f0"+ + "\0\u2370\0\u3d40\0\u87a0\0\u87d8\0\u8810\0\u41a0\0\u8848\0\u8880"+ + "\0\u88b8\0\u88f0\0\u8928\0\u4130\0\u8960\0\u8998\0\u89d0\0\u8a08"+ + "\0\u8a40\0\u8a78\0\u8ab0\0\u8ae8\0\u8b20\0\u8b58\0\u8b90\0\u8bc8"+ + "\0\u8c00\0\u8c38\0\u8c70\0\u6e78\0\u8ca8\0\u1148\0\u41a0\0\u8ce0"+ + "\0\u4de0\0\u8d18\0\u8d50\0\u8d88\0\u2648\0\u8dc0\0\u8df8\0\u2610"+ + "\0\u8e30\0\u8e68\0\u8ea0\0\u8ed8\0\u8f10\0\u8f48\0\u8f80\0\u8fb8"+ + "\0\u8ff0\0\u9028\0\u9060\0\u9098\0\u90d0\0\u9108\0\u9140\0\u9178"+ + "\0\u7bd0\0\u91b0\0\u91e8\0\u9220\0\u9258\0\u9290\0\u92c8\0\u9300"+ + "\0\u9338\0\u9370\0\u93a8\0\u93e0\0\u9418\0\u9450\0\u9488\0\u94c0"+ + "\0\u94f8\0\u9530\0\u9568\0\u95a0\0\u95d8\0\u9610\0\u9648\0\u9680"+ + "\0\u96b8\0\u96f0\0\u9728\0\u9760\0\u9798\0\u97d0\0\u9808\0\u9840"+ + "\0\u9878\0\u98b0\0\u98e8\0\u9920\0\u9958\0\u03f0\0\u3c60\0\u6708"+ + "\0\u03f0\0\u9990\0\u99c8\0\u03f0\0\u1148\0\u6938\0\u9a00\0\u2808"+ + "\0\u9a38\0\u9a70\0\u1148\0\u6a88\0\u9aa8\0\u29c8\0\u9ae0\0\u9b18"+ + "\0\u9b50\0\u9b88\0\u9bc0\0\u9bf8\0\u9c30\0\u9c68\0\u9ca0\0\u9cd8"+ + "\0\u9d10\0\u9d48\0\u9d80\0\u9db8\0\u9df0\0\u9e28\0\u9e60\0\u9e98"+ + "\0\u9ed0\0\u9f08\0\u9f40\0\u9f78\0\u9fb0\0\u9fe8\0\ua020\0\ua058"+ + "\0\ua090\0\ua0c8\0\ua100\0\ua138\0\ua170\0\ua1a8\0\ua1e0\0\ua218"+ + "\0\ua250\0\ua288\0\ua2c0\0\ua2f8\0\ua330\0\ua368\0\ua3a0\0\ua3d8"+ + "\0\ua058\0\ua090\0\ua410\0\ua448\0\ua480\0\ua4b8\0\ua4f0\0\ua528"+ + "\0\ua560\0\ua598\0\ua5d0\0\ua608\0\ua640\0\ua678\0\ua6b0\0\ua6e8"+ + "\0\ua720\0\ua758\0\ua790\0\ua7c8\0\ua800\0\ua838\0\ua870\0\ua8a8"+ + "\0\ua8e0\0\ua918\0\ua950\0\ua988\0\ua9c0\0\ua9f8\0\uaa30\0\uaa68"+ + "\0\uaaa0\0\uaad8\0\uab10\0\uab48\0\uab80\0\uabb8\0\uabf0\0\uac28"+ + "\0\uac60\0\uac98\0\ua058\0\u05e8\0\u03f0\0\uacd0\0\uad08\0\uad40"+ + "\0\uad78\0\uadb0\0\uade8\0\uae20\0\uae58\0\uae90\0\uaec8\0\uaf00"+ + "\0\uaf38\0\uaf70\0\uafa8\0\uafe0\0\ub018\0\ub050\0\ub088\0\ub0c0"+ + "\0\ub0f8\0\ub130\0\ub168\0\ub1a0\0\ub1d8\0\ub210\0\ub248\0\ub280"+ + "\0\ub2b8\0\ub2f0\0\ub328\0\ub360\0\ub398\0\ub3d0\0\ub408\0\ub440"+ + "\0\ub478\0\ub4b0\0\ub4e8\0\ub520\0\ub558\0\ub590\0\ub5c8\0\ub600"+ + "\0\ub638\0\ub670\0\ub6a8\0\ub6e0\0\ub718\0\ub750\0\ub788\0\ub7c0"+ + "\0\ub7f8\0\ub830\0\ub868\0\ub8a0\0\ub8d8\0\ub910\0\ub948\0\ub980"+ + "\0\ub9b8\0\ub9f0\0\uba28\0\uba60"; private static int [] zzUnpackRowMap() { int [] result = new int[964]; @@ -285,7 +322,7 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -293,1263 +330,1060 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\23\2\24\1\25\4\23\1\26\56\23\1\27\2\30"+ - "\1\31\1\32\1\27\1\33\1\27\1\34\1\35\4\27"+ - "\1\36\4\27\1\32\1\27\1\37\1\40\1\41\1\42"+ - "\1\43\1\44\1\45\1\46\1\47\1\44\1\50\1\51"+ - "\1\52\1\53\1\54\1\55\1\56\1\44\1\57\3\44"+ - "\1\27\1\44\1\60\1\61\1\44\1\27\1\62\1\27"+ - "\1\63\1\44\2\27\1\64\2\65\1\66\1\67\16\64"+ - "\1\67\43\64\1\27\2\24\1\25\64\27\2\70\1\71"+ - "\1\72\16\73\1\72\43\27\1\74\3\75\1\76\16\74"+ - "\1\76\43\74\1\77\2\100\1\101\63\77\1\102\2\24"+ - "\1\25\1\102\16\103\44\102\1\104\2\105\1\106\63\104"+ - "\1\107\1\110\1\70\1\71\3\107\2\111\6\107\1\111"+ - "\3\107\1\112\35\107\1\111\1\107\1\112\2\107\1\112"+ - "\1\23\2\24\1\25\1\67\13\23\1\113\2\23\1\67"+ - "\1\23\4\113\1\23\13\113\1\23\5\113\1\23\4\113"+ - "\7\23\1\114\2\24\1\25\63\114\1\23\2\70\1\71"+ - "\1\115\16\23\1\115\37\23\1\116\4\23\2\70\1\71"+ - "\1\115\3\23\1\117\5\23\1\120\4\23\1\115\37\23"+ - "\1\116\3\23\1\27\2\24\1\25\1\67\3\27\1\121"+ - "\12\27\1\67\43\27\1\122\2\24\1\25\63\122\1\123"+ - "\2\124\1\125\1\126\2\123\1\127\1\130\1\131\2\132"+ - "\3\123\1\133\3\123\1\126\1\123\4\134\1\123\6\134"+ - "\1\135\4\134\1\123\5\134\1\123\4\134\1\136\1\137"+ - "\2\123\1\134\2\123\1\140\2\141\1\142\1\143\1\144"+ - "\1\145\1\146\1\147\1\150\1\151\1\152\1\153\1\154"+ - "\1\155\1\156\1\157\1\160\1\140\1\143\1\140\4\161"+ - "\1\140\6\161\1\162\4\161\1\140\5\161\1\140\4\161"+ - "\1\163\1\164\2\140\1\161\2\140\71\0\1\24\64\0"+ - "\2\165\2\0\4\165\1\0\12\165\1\0\43\165\1\0"+ - "\2\166\1\167\64\0\1\166\1\170\1\167\64\0\3\171"+ - "\1\32\16\0\1\32\51\0\1\172\1\0\1\173\14\0"+ - "\4\172\1\0\13\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\174\14\0\4\172\1\0"+ - "\13\172\1\0\5\172\1\0\4\172\4\0\1\172\13\0"+ - "\1\35\4\0\1\35\6\0\4\35\1\0\13\35\1\0"+ - "\5\35\1\0\4\35\1\0\1\35\1\0\2\35\2\0"+ - "\2\175\2\0\4\175\1\0\1\176\4\175\1\177\6\175"+ - "\4\176\1\175\13\176\1\175\5\176\1\175\4\176\1\175"+ - "\1\176\1\175\2\176\2\175\6\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\1\44\1\200\2\44\1\0"+ - "\3\44\1\201\7\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\1\202\3\44\1\203\1\204"+ - "\12\44\1\0\5\44\1\0\1\44\1\205\2\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\5\44\1\206"+ - "\2\44\1\207\2\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\1\210\12\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\32\0\1\211\10\0\1\212\33\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\1\213\3\44\1\214\1\215\12\44\1\216\1\44"+ - "\1\217\3\44\1\0\1\44\1\220\1\221\1\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\3\44\1\222\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\1\223\1\44\1\224\1\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\1\225\1\44\1\226\1\44\1\0\1\227\1\44\1\230"+ - "\10\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\2\44\1\231\1\44\1\232\13\44\1\0"+ - "\5\44\1\0\1\44\1\233\2\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\2\44\1\234\1\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\1\235\3\44\1\0\2\44\1\236\10\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\1\237"+ - "\3\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\240\1\241\12\44"+ - "\1\0\5\44\1\0\1\44\1\242\2\44\1\0\1\35"+ - "\1\0\1\35\1\44\31\0\1\243\1\0\1\244\1\245"+ - "\22\0\1\244\17\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\246\13\44\1\0\5\44\1\0"+ - "\1\44\1\247\2\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\3\44\1\250\1\0\7\44\1\251\3\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\2\44"+ - "\1\252\1\44\1\244\1\253\12\44\1\0\5\44\1\0"+ - "\1\44\1\254\2\44\1\0\1\35\1\0\1\35\1\44"+ - "\2\0\11\255\1\62\4\255\1\62\6\255\4\62\1\255"+ - "\13\62\1\255\5\62\1\255\4\62\1\255\1\256\1\255"+ - "\2\62\2\255\11\0\1\35\4\0\1\35\1\257\1\0"+ - "\1\260\3\0\4\261\1\0\13\261\1\0\5\261\1\0"+ - "\4\261\1\0\1\35\1\0\1\35\1\262\1\263\2\0"+ - "\2\264\1\265\5\0\1\266\56\0\1\264\1\267\1\265"+ - "\5\0\1\266\61\0\1\67\16\0\1\67\45\0\1\70"+ - "\70\0\1\72\3\0\1\270\12\0\1\72\44\0\3\75"+ - "\64\0\3\75\1\76\16\0\1\76\43\0\1\77\3\0"+ - "\63\77\2\0\1\100\64\0\1\104\3\0\63\104\2\0"+ - "\1\105\64\0\2\107\2\0\3\107\2\0\6\107\1\0"+ - "\3\107\1\0\35\107\1\0\1\107\1\0\2\107\2\0"+ - "\2\271\1\272\14\0\1\273\4\0\4\273\1\0\13\273"+ - "\1\0\5\273\1\0\4\273\7\0\1\114\3\0\63\114"+ - "\17\0\1\274\1\0\1\275\3\0\4\275\1\0\13\275"+ - "\1\0\5\275\1\0\4\275\4\0\1\275\1\276\1\0"+ - "\2\277\2\0\4\277\1\0\12\277\1\0\43\277\16\0"+ - "\1\300\50\0\2\301\2\0\4\301\1\0\12\301\1\0"+ - "\43\301\1\122\3\0\63\122\1\0\2\302\1\303\64\0"+ - "\1\302\1\304\1\303\67\0\1\305\16\0\1\305\43\0"+ - "\2\306\2\307\3\306\1\310\13\306\1\307\43\306\2\311"+ - "\2\0\4\311\1\312\12\311\1\0\43\311\11\0\1\313"+ - "\102\0\4\314\1\0\13\314\1\0\5\314\1\0\4\314"+ - "\4\0\1\314\2\0\2\315\2\0\13\315\1\316\3\315"+ - "\1\0\43\315\6\0\1\317\1\0\1\317\5\0\1\320"+ - "\1\0\1\317\4\0\4\317\1\0\13\317\1\0\5\317"+ - "\1\0\4\317\4\0\1\317\10\0\1\317\1\0\1\317"+ - "\5\0\1\320\1\0\1\317\4\0\1\317\1\321\2\317"+ - "\1\0\13\317\1\0\5\317\1\0\4\317\4\0\1\317"+ - "\2\0\2\322\2\0\13\322\1\0\3\322\1\0\35\322"+ - "\1\0\5\322\1\323\2\324\1\325\63\323\1\0\2\302"+ - "\1\303\1\0\1\326\1\327\1\330\1\331\1\332\1\333"+ - "\1\334\1\335\1\336\1\337\1\340\1\341\1\342\46\0"+ - "\1\302\1\343\1\303\1\0\1\326\1\327\1\330\1\331"+ - "\1\332\1\333\1\334\1\335\1\336\1\337\1\340\1\341"+ - "\1\342\45\0\1\323\2\324\1\325\1\344\16\323\1\344"+ - "\44\323\2\345\1\346\1\323\1\347\15\323\1\350\44\323"+ - "\2\345\1\346\2\323\1\351\14\323\1\350\43\323\1\352"+ - "\1\353\1\354\1\355\3\352\1\356\13\352\1\357\43\352"+ - "\1\360\1\361\1\345\1\346\4\360\1\362\12\360\1\350"+ - "\43\360\1\323\2\345\1\346\5\323\1\363\11\323\1\350"+ - "\44\323\2\345\1\346\6\323\1\364\10\323\1\350\1\323"+ - "\4\365\1\323\13\365\1\323\5\365\1\323\4\365\4\323"+ - "\1\365\3\323\2\345\1\346\7\323\1\366\7\323\1\350"+ - "\1\323\4\365\1\323\13\365\1\323\5\365\1\323\4\365"+ - "\4\323\1\365\3\323\2\345\1\346\10\323\1\367\6\323"+ - "\1\350\44\323\2\345\1\346\11\323\1\370\5\323\1\350"+ - "\44\323\2\345\1\346\12\323\1\371\4\323\1\350\43\323"+ - "\1\372\1\373\1\345\1\346\13\372\1\374\3\372\1\350"+ - "\43\372\1\323\2\345\1\346\14\323\1\375\2\323\1\350"+ - "\44\323\2\345\1\346\15\323\1\376\1\323\1\350\44\323"+ - "\2\324\1\325\2\323\1\377\1\323\1\377\5\323\1\u0100"+ - "\1\323\1\377\4\323\4\377\1\323\13\377\1\323\5\377"+ - "\1\323\4\377\4\323\1\377\3\323\2\324\1\325\2\323"+ - "\1\377\1\323\1\377\5\323\1\u0100\1\323\1\377\4\323"+ - "\1\377\1\u0101\2\377\1\323\13\377\1\323\5\377\1\323"+ - "\4\377\4\323\1\377\2\323\1\u0102\1\u0103\1\324\1\325"+ - "\13\u0102\1\323\3\u0102\1\323\35\u0102\1\323\5\u0102\2\u0104"+ - "\2\0\4\u0104\1\0\12\u0104\1\165\34\u0104\1\u0105\6\u0104"+ - "\1\0\3\171\64\0\1\171\1\166\1\171\63\0\2\u0106"+ - "\2\0\4\u0106\1\0\60\u0106\2\0\4\u0106\1\0\1\u0107"+ - "\4\u0106\1\u0107\6\u0106\4\u0107\1\u0106\13\u0107\1\u0106\5\u0107"+ - "\1\u0106\4\u0107\1\u0106\1\u0107\1\u0106\2\u0107\2\u0106\6\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\1\44"+ - "\1\u0108\2\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\7\44"+ - "\1\u0109\3\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\5\44\1\u010a\5\44"+ - "\1\0\1\227\4\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\30\0\1\u010b\13\0\1\u010c\32\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\4\44\1\0"+ - "\10\44\1\u010d\2\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\1\44\1\227\2\44\1\0"+ - "\10\44\1\u010e\2\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\5\44\1\u010f"+ - "\5\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\u0110\13\44\1\0\5\44\1\0"+ - "\1\44\1\u0111\2\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\1\44\1\u0112\2\44\1\0\13\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\35\0\1\u0113"+ - "\60\0\1\u0114\14\0\1\u0115\32\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\2\44\1\u0116"+ - "\10\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\30\0\1\u0117\46\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\3\44\1\u0118\1\0\3\44"+ - "\1\u0119\3\44\1\u011a\3\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\53\0\1\u011b\23\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\1\u011c"+ - "\3\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\1\44\1\u011d\2\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\13\44\1\0\3\44\1\u011e"+ - "\1\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\u011f\13\44\1\0\5\44\1\0\1\44\1\u0120"+ - "\2\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\1\44\1\u0112"+ - "\1\44\1\u0121\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\12\44"+ - "\1\u0122\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\11\44\1\u010e\1\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\10\44\1\u0123\2\44\1\u0124\5\44\1\0"+ - "\2\44\1\u0125\1\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\13\44\1\0\1\44\1\u0112\3\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\4\44\1\0"+ - "\13\44\1\0\1\u0126\4\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\1\u0127\3\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\32\0\1\u0128\5\0\1\u0129\36\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\3\44\1\u012a\1\0\4\44"+ - "\1\u012b\6\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\1\44\1\u012c\2\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\5\44\1\u012d\5\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\13\44\1\0\1\44\1\u012e\3\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\5\44"+ - "\1\u012f\5\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\40\0\1\u0130\36\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\1\u0131"+ - "\12\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\4\44\1\u0132\6\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\35\0\1\u0133\70\0\1\u0134\65\0\1\u0135\77\0\1\u0136"+ - "\10\0\1\u0136\16\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\13\44\1\u0136\5\44\1\0"+ - "\2\44\1\u0137\1\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\1\44\1\u0138\11\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\1\u0139\3\44"+ - "\1\0\10\44\1\u013a\2\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\1\44"+ - "\1\u013b\11\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\2\44\1\u013c\10\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\3\44\1\u013d\7\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\2\0"+ - "\61\255\1\u013e\5\255\65\0\1\263\26\0\4\260\1\0"+ - "\13\260\1\0\5\260\1\0\4\260\4\0\1\260\1\263"+ - "\12\0\1\35\4\0\1\35\6\0\4\261\1\0\13\261"+ - "\1\0\5\261\1\0\4\261\1\0\1\35\1\0\1\35"+ - "\1\261\1\u013f\12\0\1\35\4\0\1\35\6\0\4\261"+ - "\1\0\13\261\1\0\5\261\1\0\4\261\1\0\1\35"+ - "\1\0\1\35\1\262\1\263\3\0\1\264\75\0\1\u0140"+ - "\55\0\2\u0141\2\0\4\u0141\1\0\12\u0141\1\0\43\u0141"+ - "\2\0\1\271\151\0\1\276\26\0\4\275\1\0\13\275"+ - "\1\0\5\275\1\0\4\275\4\0\1\275\1\276\17\0"+ - "\1\u0142\50\0\2\u0143\2\0\4\u0143\1\0\12\u0143\1\277"+ - "\34\u0143\1\u0144\6\u0143\2\u0145\2\0\4\u0145\1\0\12\u0145"+ - "\1\301\34\u0145\1\u0146\6\u0145\1\0\2\u0147\1\u0148\1\0"+ - "\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d\1\u014e\1\u014f\1\u0150"+ - "\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155\46\0\1\u0147\1\302"+ - "\1\u0148\1\0\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d\1\u014e"+ - "\1\u014f\1\u0150\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155\46\0"+ - "\2\302\1\303\1\0\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d"+ - "\1\u014e\1\u014f\1\u0150\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155"+ - "\45\0\2\306\2\307\3\306\1\u0156\57\306\7\307\1\u0157"+ - "\57\307\2\u0158\2\0\3\u0158\1\0\13\u0158\1\0\43\u0158"+ - "\2\u0159\2\0\4\u0159\1\0\12\u0159\1\311\34\u0159\1\u015a"+ - "\6\u0159\1\0\2\u015b\1\u015c\106\0\1\u015d\51\0\1\314"+ - "\1\0\1\314\5\0\1\u015e\1\0\1\314\4\0\4\314"+ - "\1\0\13\314\1\0\5\314\1\0\4\314\4\0\1\314"+ - "\2\0\2\u015f\2\0\13\u015f\1\0\3\u015f\1\315\43\u015f"+ - "\2\u0160\2\0\13\u0160\1\0\3\u0160\1\0\43\u0160\2\0"+ - "\1\u0161\3\0\1\u0162\1\0\1\u0162\3\u0161\2\0\1\320"+ - "\1\0\1\317\2\0\2\u0161\4\317\1\0\13\317\1\0"+ - "\5\317\1\0\4\317\1\u0161\1\0\2\u0161\1\317\2\u0161"+ - "\6\0\1\317\1\0\1\317\5\0\1\320\1\0\1\317"+ - "\4\0\1\317\1\u0163\2\317\1\0\13\317\1\0\5\317"+ - "\1\0\4\317\4\0\1\317\2\0\2\u0164\2\0\13\u0164"+ - "\1\0\3\u0164\1\322\35\u0164\1\0\5\u0164\5\0\1\326"+ - "\1\327\1\330\1\331\1\332\1\333\1\334\1\335\1\336"+ - "\1\337\1\340\1\341\1\342\47\0\1\324\2\0\1\326"+ - "\1\327\1\330\1\331\1\332\1\333\1\334\1\335\1\336"+ - "\1\337\1\340\1\341\1\342\46\0\2\u0165\1\u0166\1\0"+ - "\1\326\15\0\1\u0167\44\0\2\u0165\1\u0166\2\0\1\327"+ - "\14\0\1\u0167\44\0\2\u0165\1\u0166\3\0\1\330\13\0"+ - "\1\u0167\44\0\2\u0165\1\u0166\4\0\1\331\12\0\1\u0167"+ - "\44\0\2\u0165\1\u0166\5\0\1\332\11\0\1\u0167\44\0"+ - "\2\u0165\1\u0166\6\0\1\333\10\0\1\u0167\44\0\2\u0165"+ - "\1\u0166\7\0\1\334\7\0\1\u0167\44\0\2\u0165\1\u0166"+ - "\10\0\1\335\6\0\1\u0167\44\0\2\u0165\1\u0166\11\0"+ - "\1\336\5\0\1\u0167\44\0\2\u0165\1\u0166\12\0\1\337"+ - "\4\0\1\u0167\44\0\2\u0165\1\u0166\13\0\1\340\3\0"+ - "\1\u0167\44\0\2\u0165\1\u0166\14\0\1\341\2\0\1\u0167"+ - "\44\0\2\u0165\1\u0166\15\0\1\342\1\0\1\u0167\44\0"+ - "\2\302\1\303\1\0\1\u0168\1\u0169\1\u016a\1\u016b\1\u016c"+ - "\1\u016d\1\u016e\1\u016f\1\u0170\1\u0171\1\u0172\1\u0173\1\u0174"+ - "\45\0\1\323\2\324\1\325\1\323\1\u0175\1\u0176\1\u0177"+ - "\1\u0178\1\u0179\1\u017a\1\u017b\1\u017c\1\u017d\1\u017e\1\u017f"+ - "\1\u0180\1\u0181\46\323\1\324\1\345\1\325\1\323\1\u0175"+ - "\1\u0176\1\u0177\1\u0178\1\u0179\1\u017a\1\u017b\1\u017c\1\u017d"+ - "\1\u017e\1\u017f\1\u0180\1\u0181\46\323\2\345\1\346\17\323"+ - "\1\350\43\323\1\352\1\u0182\1\u0183\1\u0184\3\352\1\u0185"+ - "\60\352\1\u0182\1\u0183\1\u0184\1\352\1\u0186\1\u0187\1\u0188"+ - "\1\u0189\1\u018a\1\u018b\1\u018c\1\u018d\1\u018e\1\u018f\1\u0190"+ - "\1\u0191\1\u0192\45\352\1\u0193\2\u0183\1\u0184\1\u0193\1\u0194"+ - "\1\u0195\1\u0196\1\u0197\1\u0198\1\u0199\1\u019a\1\u019b\1\u019c"+ - "\1\u019d\1\u019e\1\u019f\1\u01a0\46\u0193\1\u0183\1\354\1\u0184"+ - "\1\u0193\1\u0194\1\u0195\1\u0196\1\u0197\1\u0198\1\u0199\1\u019a"+ - "\1\u019b\1\u019c\1\u019d\1\u019e\1\u019f\1\u01a0\45\u0193\1\u01a1"+ - "\1\u01a2\1\345\1\346\3\u01a1\1\u01a3\13\u01a1\1\350\43\u01a1"+ - "\1\u0193\2\354\1\355\3\u0193\1\u01a4\13\u0193\1\357\43\u0193"+ - "\1\u01a5\1\u01a6\1\324\1\325\4\u01a5\1\323\12\u01a5\1\360"+ - "\34\u01a5\1\u01a7\7\u01a5\1\u01a6\1\324\1\325\1\u01a5\1\u01a8"+ - "\1\u01a9\1\u01aa\1\u0178\1\u01ab\1\u01ac\1\u01ad\1\u01ae\1\u01af"+ - "\1\u01b0\1\u01b1\1\u01b2\1\u01b3\1\u01a5\1\360\34\u01a5\1\u01a7"+ - "\6\u01a5\1\323\2\u01b4\1\u01b5\4\323\1\u01b6\12\323\1\350"+ - "\44\323\2\345\1\346\5\323\1\u01b7\11\323\1\u01b8\44\323"+ - "\2\345\1\346\6\323\1\364\10\323\1\350\44\323\2\324"+ - "\1\325\2\323\1\365\1\323\1\365\5\323\1\u01b9\1\323"+ - "\1\365\4\323\4\365\1\323\13\365\1\323\5\365\1\323"+ - "\4\365\4\323\1\365\3\323\2\345\1\346\7\323\1\366"+ - "\7\323\1\350\43\323\1\u01ba\1\u01bb\1\324\1\325\13\u01ba"+ - "\1\323\3\u01ba\1\372\44\u01ba\1\u01bb\1\324\1\325\1\u01ba"+ - "\1\u01bc\1\u01bd\1\u01be\1\u01bf\1\u01c0\1\u01c1\1\u01c2\1\u01c3"+ - "\1\u01c4\1\u01c5\1\u017f\1\u01c6\1\u01c7\1\u01ba\1\372\43\u01ba"+ - "\1\u01c8\1\u01c9\1\345\1\346\13\u01c8\1\u01ca\3\u01c8\1\350"+ - "\43\u01c8\1\323\1\324\1\u01cb\1\325\2\323\1\u01cc\1\323"+ - "\1\u01cc\3\u01cd\2\323\1\u0100\1\323\1\377\2\323\2\u01cd"+ - "\4\377\1\323\13\377\1\323\5\377\1\323\4\377\1\u01cd"+ - "\1\323\2\u01cd\1\377\2\u01cd\1\323\2\324\1\325\2\323"+ - "\1\377\1\323\1\377\5\323\1\u0100\1\323\1\377\4\323"+ - "\1\377\1\u01ce\2\377\1\323\13\377\1\323\5\377\1\323"+ - "\4\377\4\323\1\377\2\323\1\u01cf\1\u01d0\1\324\1\325"+ - "\13\u01cf\1\323\3\u01cf\1\u0102\35\u01cf\1\323\5\u01cf\2\u0164"+ - "\2\0\1\u0164\1\u01d1\1\u01d2\1\u01d3\1\u01d4\1\u01d5\1\u01d6"+ - "\1\u01d7\1\u01d8\1\u01d9\1\u01da\1\340\1\u01db\1\u01dc\1\u0164"+ - "\1\322\35\u0164\1\0\5\u0164\2\u0104\2\0\4\u0104\1\u01dd"+ - "\12\u0104\1\165\34\u0104\1\u0105\10\u0104\2\0\4\u0104\1\u01de"+ - "\12\u0104\1\165\34\u0104\1\u0105\6\u0104\2\u0106\2\0\4\u0106"+ - "\1\u01df\60\u0106\2\0\4\u0106\1\u01df\1\u0107\4\u0106\1\u0107"+ - "\6\u0106\4\u0107\1\u0106\13\u0107\1\u0106\5\u0107\1\u0106\4\u0107"+ - "\1\u0106\1\u0107\1\u0106\2\u0107\2\u0106\6\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\2\44\1\u01e0\1\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\1\u01e1\12\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\4\44\1\u01e2\6\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\51\0\1\u01e3"+ - "\27\0\1\u01e4\64\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\u01e5\13\44\1\0\5\44\1\0"+ - "\1\44\1\u01e6\2\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\u01e7\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\1\u01e8\12\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\40\0\1\u01e9\36\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\4\44\1\u01ea\6\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\2\44\1\u010e\1\44\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\51\0"+ - "\1\u01eb\55\0\1\u01e3\62\0\1\u01ec\42\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\1\44\1\u01ed\2\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\27\0\1\u01ee\47\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\1\44\1\u01ef\2\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\2\44\1\u01f0\1\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\10\44\1\u01f1\2\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\u01f2\66\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\13\44\1\u01f3\5\44\1\0\2\44"+ - "\1\u01f4\1\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\1\u01f5"+ - "\3\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\u01f6\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\35\0\1\u01f7\41\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\1\44\1\u01f8\11\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\4\44\1\u01f9\6\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\1\u01fa\3\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\13\44\1\0\1\44"+ - "\1\u01fb\3\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\30\0\1\u01fc\46\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\1\44\1\u01fd\2\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\5\44\1\u010d\5\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\3\44\1\u01f9\7\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\30\0\1\u010c\100\0"+ - "\1\u01fe\34\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\1\44\1\u010e\2\44\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\6\44\1\u01ff\4\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\1\u010e\3\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\13\44\1\u0200\5\44\1\0"+ - "\2\44\1\u0201\1\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\13\44\1\0\1\44\1\u0202\3\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\3\44\1\u0203"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\36\0\1\u0204\40\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\1\44\1\u0205\2\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\2\44\1\u0206\10\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\30\0\1\u0207\67\0\1\u0208\76\0\1\u0209\55\0"+ - "\1\u011b\46\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\1\44\1\u011e\2\44\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\13\44\1\0\1\44\1\u020a\3\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\4\44"+ - "\1\u0112\6\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\1\u020b\12\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\1\44\1\u020c\2\44\1\0\13\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\4\44\1\0"+ - "\5\44\1\u020d\5\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\2\44\1\u020e\1\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\25\0\1\u020f\43\0\2\u0210\2\0\4\u0210"+ - "\1\0\12\u0210\1\u0141\34\u0210\1\u0211\6\u0210\2\0\1\u0212"+ - "\3\0\1\u0212\1\0\4\u0212\7\0\2\u0212\33\0\1\u0212"+ - "\1\0\2\u0212\1\0\2\u0212\2\u0143\2\0\4\u0143\1\u0213"+ - "\12\u0143\1\277\34\u0143\1\u0144\10\u0143\2\0\4\u0143\1\u0214"+ - "\12\u0143\1\277\34\u0143\1\u0144\6\u0143\2\u0145\2\0\4\u0145"+ - "\1\u0215\12\u0145\1\301\34\u0145\1\u0146\10\u0145\2\0\4\u0145"+ - "\1\u0216\12\u0145\1\301\34\u0145\1\u0146\6\u0145\1\0\2\u0217"+ - "\1\u0218\1\0\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d\1\u014e"+ - "\1\u014f\1\u0150\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155\46\0"+ - "\1\u0217\1\u0147\1\u0218\1\0\1\u0149\1\u014a\1\u014b\1\u014c"+ - "\1\u014d\1\u014e\1\u014f\1\u0150\1\u0151\1\u0152\1\u0153\1\u0154"+ - "\1\u0155\46\0\3\u0219\1\0\1\u0149\15\0\1\u021a\44\0"+ - "\3\u0219\2\0\1\u014a\14\0\1\u021a\44\0\3\u0219\3\0"+ - "\1\u014b\13\0\1\u021a\44\0\3\u0219\4\0\1\u014c\12\0"+ - "\1\u021a\44\0\3\u0219\5\0\1\u014d\11\0\1\u021a\44\0"+ - "\3\u0219\6\0\1\u014e\10\0\1\u021a\44\0\3\u0219\7\0"+ - "\1\u014f\7\0\1\u021a\44\0\3\u0219\10\0\1\u0150\6\0"+ - "\1\u021a\44\0\3\u0219\11\0\1\u0151\5\0\1\u021a\44\0"+ - "\3\u0219\12\0\1\u0152\4\0\1\u021a\44\0\3\u0219\13\0"+ - "\1\u0153\3\0\1\u021a\44\0\3\u0219\14\0\1\u0154\2\0"+ - "\1\u021a\44\0\3\u0219\15\0\1\u0155\1\0\1\u021a\61\0"+ - "\1\u021b\50\0\2\u021c\2\0\3\u021c\1\0\13\u021c\1\u0158"+ - "\43\u021c\2\u0159\2\0\4\u0159\1\u021d\12\u0159\1\311\34\u0159"+ - "\1\u015a\10\u0159\2\0\4\u0159\1\u021e\12\u0159\1\311\34\u0159"+ - "\1\u015a\6\u0159\1\0\2\u021f\1\u0220\64\0\1\u021f\1\u0221"+ - "\1\u0220\71\0\1\314\1\0\1\314\1\0\2\u0222\2\0"+ - "\1\u015e\1\0\1\314\4\0\4\314\1\0\13\314\1\0"+ - "\5\314\1\0\4\314\4\0\1\314\2\0\2\u015f\2\0"+ - "\13\u015f\1\u0223\3\u015f\1\315\43\u015f\2\u0224\2\0\13\u0224"+ - "\1\0\3\u0224\1\u0160\43\u0224\6\0\1\317\1\0\1\317"+ - "\5\0\1\320\1\0\1\317\4\0\4\317\1\0\10\317"+ - "\1\u0225\2\317\1\0\5\317\1\0\4\317\4\0\1\317"+ - "\2\0\2\u0164\2\0\13\u0164\1\0\3\u0164\1\322\35\u0164"+ - "\1\u013e\5\u0164\2\0\1\u0165\65\0\2\u0165\1\u0166\17\0"+ - "\1\u0167\44\0\3\u0226\1\0\1\u0168\15\0\1\u0227\44\0"+ - "\3\u0226\2\0\1\u0169\14\0\1\u0227\44\0\3\u0226\3\0"+ - "\1\u016a\13\0\1\u0227\44\0\3\u0226\4\0\1\u016b\12\0"+ - "\1\u0227\44\0\3\u0226\5\0\1\u016c\11\0\1\u0227\44\0"+ - "\3\u0226\6\0\1\u016d\10\0\1\u0227\44\0\3\u0226\7\0"+ - "\1\u016e\7\0\1\u0227\44\0\3\u0226\10\0\1\u016f\6\0"+ - "\1\u0227\44\0\3\u0226\11\0\1\u0170\5\0\1\u0227\44\0"+ - "\3\u0226\12\0\1\u0171\4\0\1\u0227\44\0\3\u0226\13\0"+ - "\1\u0172\3\0\1\u0227\44\0\3\u0226\14\0\1\u0173\2\0"+ - "\1\u0227\44\0\3\u0226\15\0\1\u0174\1\0\1\u0227\43\0"+ - "\1\323\2\u0228\1\u0229\1\323\1\u0175\15\323\1\u022a\44\323"+ - "\2\u0228\1\u0229\2\323\1\u0176\14\323\1\u022a\44\323\2\u0228"+ - "\1\u0229\3\323\1\u0177\13\323\1\u022a\44\323\2\u0228\1\u0229"+ - "\4\323\1\u0178\12\323\1\u022a\44\323\2\u0228\1\u0229\5\323"+ - "\1\u0179\11\323\1\u022a\44\323\2\u0228\1\u0229\6\323\1\u017a"+ - "\10\323\1\u022a\44\323\2\u0228\1\u0229\7\323\1\u017b\7\323"+ - "\1\u022a\44\323\2\u0228\1\u0229\10\323\1\u017c\6\323\1\u022a"+ - "\44\323\2\u0228\1\u0229\11\323\1\u017d\5\323\1\u022a\44\323"+ - "\2\u0228\1\u0229\12\323\1\u017e\4\323\1\u022a\44\323\2\u0228"+ - "\1\u0229\13\323\1\u017f\3\323\1\u022a\44\323\2\u0228\1\u0229"+ - "\14\323\1\u0180\2\323\1\u022a\44\323\2\u0228\1\u0229\15\323"+ - "\1\u0181\1\323\1\u022a\43\323\2\306\2\307\1\306\1\u022b"+ - "\1\u022c\1\u022d\1\u022e\1\u022f\1\u0230\1\u0231\1\u0232\1\u0233"+ - "\1\u0234\1\u0235\1\u0236\1\u0237\45\306\5\307\1\u0238\1\u0239"+ - "\1\u023a\1\u023b\1\u023c\1\u023d\1\u023e\1\u023f\1\u0240\1\u0241"+ - "\1\u0242\1\u0243\1\u0244\47\307\1\u0183\2\307\1\u0238\1\u0239"+ - "\1\u023a\1\u023b\1\u023c\1\u023d\1\u023e\1\u023f\1\u0240\1\u0241"+ - "\1\u0242\1\u0243\1\u0244\45\307\1\323\2\324\1\325\12\323"+ - "\1\u0245\50\323\1\352\1\u0246\1\u0247\1\u0248\1\352\1\u0186"+ - "\1\352\1\u0185\13\352\1\u0249\44\352\1\u0246\1\u0247\1\u0248"+ - "\2\352\1\u0187\1\u0185\13\352\1\u0249\43\352\1\323\2\u0228"+ - "\1\u0229\3\323\1\u0177\6\323\1\u0245\4\323\1\u022a\43\323"+ - "\1\352\1\u0246\1\u0247\1\u0248\3\352\1\u0185\1\u0189\12\352"+ - "\1\u0249\44\352\1\u0246\1\u0247\1\u0248\3\352\1\u0185\1\352"+ - "\1\u018a\11\352\1\u0249\44\352\1\u0246\1\u0247\1\u0248\3\352"+ - "\1\u0185\2\352\1\u018b\10\352\1\u0249\44\352\1\u0246\1\u0247"+ - "\1\u0248\3\352\1\u0185\3\352\1\u018c\7\352\1\u0249\44\352"+ - "\1\u0246\1\u0247\1\u0248\3\352\1\u0185\4\352\1\u018d\6\352"+ - "\1\u0249\44\352\1\u0246\1\u0247\1\u0248\3\352\1\u0185\5\352"+ - "\1\u018e\5\352\1\u0249\44\352\1\u0246\1\u0247\1\u0248\3\352"+ - "\1\u0185\6\352\1\u018f\4\352\1\u0249\44\352\1\u0246\1\u0247"+ - "\1\u0248\3\352\1\u0185\7\352\1\u0190\3\352\1\u0249\44\352"+ - "\1\u0246\1\u0247\1\u0248\3\352\1\u0185\10\352\1\u0191\2\352"+ - "\1\u0249\44\352\1\u0246\1\u0247\1\u0248\3\352\1\u0185\11\352"+ - "\1\u0192\1\352\1\u0249\43\352\1\u0193\2\u0183\1\u0184\3\u0193"+ - "\1\u01a4\60\u0193\2\u0247\1\u0248\1\u0193\1\u0194\1\u0193\1\u01a4"+ - "\13\u0193\1\u024a\44\u0193\2\u0247\1\u0248\2\u0193\1\u0195\1\u01a4"+ - "\13\u0193\1\u024a\44\u0193\2\u0247\1\u0248\3\u0193\1\u01a4\1\u0197"+ - "\12\u0193\1\u024a\44\u0193\2\u0247\1\u0248\3\u0193\1\u01a4\1\u0193"+ - "\1\u0198\11\u0193\1\u024a\44\u0193\2\u0247\1\u0248\3\u0193\1\u01a4"+ - "\2\u0193\1\u0199\10\u0193\1\u024a\44\u0193\2\u0247\1\u0248\3\u0193"+ - "\1\u01a4\3\u0193\1\u019a\7\u0193\1\u024a\44\u0193\2\u0247\1\u0248"+ - "\3\u0193\1\u01a4\4\u0193\1\u019b\6\u0193\1\u024a\44\u0193\2\u0247"+ - "\1\u0248\3\u0193\1\u01a4\5\u0193\1\u019c\5\u0193\1\u024a\44\u0193"+ - "\2\u0247\1\u0248\3\u0193\1\u01a4\6\u0193\1\u019d\4\u0193\1\u024a"+ - "\44\u0193\2\u0247\1\u0248\3\u0193\1\u01a4\7\u0193\1\u019e\3\u0193"+ - "\1\u024a\44\u0193\2\u0247\1\u0248\3\u0193\1\u01a4\10\u0193\1\u019f"+ - "\2\u0193\1\u024a\44\u0193\2\u0247\1\u0248\3\u0193\1\u01a4\11\u0193"+ - "\1\u01a0\1\u0193\1\u024a\43\u0193\1\u024b\1\u024c\1\324\1\325"+ - "\3\u024b\1\323\13\u024b\1\u01a1\44\u024b\1\u024c\1\324\1\325"+ - "\1\u024b\1\u024d\1\u024e\1\u0177\1\u024f\1\u0250\1\u0251\1\u0252"+ - "\1\u0253\1\u0254\1\u0255\1\u0256\1\u0257\1\u0258\1\u024b\1\u01a1"+ - "\43\u024b\1\323\2\345\1\346\3\323\1\u01a3\13\323\1\350"+ - "\43\323\1\u01a5\1\u01a6\1\324\1\325\4\u01a5\1\u0259\12\u01a5"+ - "\1\360\34\u01a5\1\u01a7\6\u01a5\2\u0159\2\0\1\u0159\1\u025a"+ - "\1\u025b\1\u025c\1\u025d\1\u025e\1\u025f\1\u0260\1\u0261\1\u0262"+ - "\1\u0263\1\u0264\1\u0265\1\u0266\1\u0159\1\311\34\u0159\1\u015a"+ - "\6\u0159\1\u01a5\1\u01a6\1\324\1\325\4\u01a5\1\u0267\12\u01a5"+ - "\1\360\34\u01a5\1\u01a7\7\u01a5\1\u0268\1\u0228\1\u0229\1\u01a5"+ - "\1\u01a8\2\u01a5\1\u0259\12\u01a5\1\u0269\34\u01a5\1\u01a7\7\u01a5"+ - "\1\u0268\1\u0228\1\u0229\2\u01a5\1\u01a9\1\u01a5\1\u0259\12\u01a5"+ - "\1\u0269\34\u01a5\1\u01a7\7\u01a5\1\u0268\1\u0228\1\u0229\3\u01a5"+ - "\1\u01aa\1\u0259\12\u01a5\1\u0269\34\u01a5\1\u01a7\7\u01a5\1\u0268"+ - "\1\u0228\1\u0229\4\u01a5\1\u0259\1\u01ab\11\u01a5\1\u0269\34\u01a5"+ - "\1\u01a7\7\u01a5\1\u0268\1\u0228\1\u0229\4\u01a5\1\u0259\1\u01a5"+ - "\1\u01ac\10\u01a5\1\u0269\34\u01a5\1\u01a7\7\u01a5\1\u0268\1\u0228"+ - "\1\u0229\4\u01a5\1\u0259\2\u01a5\1\u01ad\7\u01a5\1\u0269\34\u01a5"+ - "\1\u01a7\7\u01a5\1\u0268\1\u0228\1\u0229\4\u01a5\1\u0259\3\u01a5"+ - "\1\u01ae\6\u01a5\1\u0269\34\u01a5\1\u01a7\7\u01a5\1\u0268\1\u0228"+ - "\1\u0229\4\u01a5\1\u0259\4\u01a5\1\u01af\5\u01a5\1\u0269\34\u01a5"+ - "\1\u01a7\7\u01a5\1\u0268\1\u0228\1\u0229\4\u01a5\1\u0259\5\u01a5"+ - "\1\u01b0\4\u01a5\1\u0269\34\u01a5\1\u01a7\7\u01a5\1\u0268\1\u0228"+ - "\1\u0229\4\u01a5\1\u0259\6\u01a5\1\u01b1\3\u01a5\1\u0269\34\u01a5"+ - "\1\u01a7\7\u01a5\1\u0268\1\u0228\1\u0229\4\u01a5\1\u0259\7\u01a5"+ - "\1\u01b2\2\u01a5\1\u0269\34\u01a5\1\u01a7\7\u01a5\1\u0268\1\u0228"+ - "\1\u0229\4\u01a5\1\u0259\10\u01a5\1\u01b3\1\u01a5\1\u0269\34\u01a5"+ - "\1\u01a7\6\u01a5\1\323\2\u026a\1\u026b\1\323\1\u0175\1\u0176"+ - "\1\u0177\1\u0178\1\u0179\1\u017a\1\u017b\1\u017c\1\u017d\1\u017e"+ - "\1\u017f\1\u0180\1\u0181\46\323\1\u026a\1\u026c\1\u026b\1\323"+ - "\1\u0175\1\u0176\1\u0177\1\u0178\1\u0179\1\u017a\1\u017b\1\u017c"+ - "\1\u017d\1\u017e\1\u017f\1\u0180\1\u0181\46\323\2\345\1\346"+ - "\4\323\1\u01b6\12\323\1\350\44\323\2\345\1\346\5\323"+ - "\1\u01b7\11\323\1\350\44\323\2\345\1\346\17\323\1\u01b8"+ - "\44\323\2\324\1\325\2\323\1\365\1\323\1\365\1\323"+ - "\2\u026d\2\323\1\u01b9\1\323\1\365\4\323\4\365\1\323"+ - "\13\365\1\323\5\365\1\323\4\365\4\323\1\365\2\323"+ - "\1\u01ba\1\u01bb\1\324\1\325\13\u01ba\1\u026e\3\u01ba\1\372"+ - "\43\u01ba\2\u015f\2\0\1\u015f\1\u026f\1\u0270\1\u0271\1\u0272"+ - "\1\u0273\1\u0274\1\u0275\1\u0276\1\u0277\1\u0278\1\u0279\1\u027a"+ - "\1\u027b\1\u015f\1\315\43\u015f\1\u01ba\1\u027c\1\u0228\1\u0229"+ - "\1\u01ba\1\u01bc\11\u01ba\1\u026e\3\u01ba\1\u027d\44\u01ba\1\u027c"+ - "\1\u0228\1\u0229\2\u01ba\1\u01bd\10\u01ba\1\u026e\3\u01ba\1\u027d"+ - "\44\u01ba\1\u027c\1\u0228\1\u0229\3\u01ba\1\u01be\7\u01ba\1\u026e"+ - "\3\u01ba\1\u027d\44\u01ba\1\u027c\1\u0228\1\u0229\4\u01ba\1\u01bf"+ - "\6\u01ba\1\u026e\3\u01ba\1\u027d\44\u01ba\1\u027c\1\u0228\1\u0229"+ - "\5\u01ba\1\u01c0\5\u01ba\1\u026e\3\u01ba\1\u027d\44\u01ba\1\u027c"+ - "\1\u0228\1\u0229\6\u01ba\1\u01c1\4\u01ba\1\u026e\3\u01ba\1\u027d"+ - "\44\u01ba\1\u027c\1\u0228\1\u0229\7\u01ba\1\u01c2\3\u01ba\1\u026e"+ - "\3\u01ba\1\u027d\44\u01ba\1\u027c\1\u0228\1\u0229\10\u01ba\1\u01c3"+ - "\2\u01ba\1\u026e\3\u01ba\1\u027d\44\u01ba\1\u027c\1\u0228\1\u0229"+ - "\11\u01ba\1\u01c4\1\u01ba\1\u026e\3\u01ba\1\u027d\44\u01ba\1\u027c"+ - "\1\u0228\1\u0229\12\u01ba\1\u01c5\1\u026e\3\u01ba\1\u027d\44\u01ba"+ - "\1\u027c\1\u0228\1\u0229\13\u01ba\1\u026e\1\u01c6\2\u01ba\1\u027d"+ - "\44\u01ba\1\u027c\1\u0228\1\u0229\13\u01ba\1\u026e\1\u01ba\1\u01c7"+ - "\1\u01ba\1\u027d\43\u01ba\1\u027e\1\u027f\1\324\1\325\13\u027e"+ - "\1\323\3\u027e\1\u01c8\44\u027e\1\u027f\1\324\1\325\1\u027e"+ - "\1\u0280\1\u0281\1\u0282\1\u0283\1\u0284\1\u0285\1\u0286\1\u0287"+ - "\1\u0288\1\u0289\1\u017f\1\u028a\1\u028b\1\u027e\1\u01c8\43\u027e"+ - "\1\323\2\345\1\346\13\323\1\u01ca\3\323\1\350\44\323"+ - "\2\324\1\325\2\323\1\377\1\323\1\377\5\323\1\u0100"+ - "\1\323\1\377\4\323\4\377\1\323\10\377\1\u028c\2\377"+ - "\1\323\5\377\1\323\4\377\4\323\1\377\2\323\1\u01cf"+ - "\1\u01d0\1\324\1\325\13\u01cf\1\323\3\u01cf\1\u0102\35\u01cf"+ - "\1\u028d\5\u01cf\2\u0164\2\0\1\u0164\1\u01d1\1\u01d2\1\u01d3"+ - "\1\u01d4\1\u01d5\1\u01d6\1\u01d7\1\u01d8\1\u01d9\1\u01da\1\340"+ - "\1\u01db\1\u01dc\1\u0164\1\322\35\u0164\1\u013e\6\u0164\1\u028e"+ - "\1\u0165\1\u0166\1\u0164\1\u01d1\11\u0164\1\0\3\u0164\1\u028f"+ - "\35\u0164\1\u013e\6\u0164\1\u028e\1\u0165\1\u0166\2\u0164\1\u01d2"+ - "\10\u0164\1\0\3\u0164\1\u028f\35\u0164\1\u013e\6\u0164\1\u028e"+ - "\1\u0165\1\u0166\3\u0164\1\u01d3\7\u0164\1\0\3\u0164\1\u028f"+ - "\35\u0164\1\u013e\6\u0164\1\u028e\1\u0165\1\u0166\4\u0164\1\u01d4"+ - "\6\u0164\1\0\3\u0164\1\u028f\35\u0164\1\u013e\6\u0164\1\u028e"+ - "\1\u0165\1\u0166\5\u0164\1\u01d5\5\u0164\1\0\3\u0164\1\u028f"+ - "\35\u0164\1\u013e\6\u0164\1\u028e\1\u0165\1\u0166\6\u0164\1\u01d6"+ - "\4\u0164\1\0\3\u0164\1\u028f\35\u0164\1\u013e\6\u0164\1\u028e"+ - "\1\u0165\1\u0166\7\u0164\1\u01d7\3\u0164\1\0\3\u0164\1\u028f"+ - "\35\u0164\1\u013e\6\u0164\1\u028e\1\u0165\1\u0166\10\u0164\1\u01d8"+ - "\2\u0164\1\0\3\u0164\1\u028f\35\u0164\1\u013e\6\u0164\1\u028e"+ - "\1\u0165\1\u0166\11\u0164\1\u01d9\1\u0164\1\0\3\u0164\1\u028f"+ - "\35\u0164\1\u013e\6\u0164\1\u028e\1\u0165\1\u0166\12\u0164\1\u01da"+ - "\1\0\3\u0164\1\u028f\35\u0164\1\u013e\6\u0164\1\u028e\1\u0165"+ - "\1\u0166\13\u0164\1\0\1\u01db\2\u0164\1\u028f\35\u0164\1\u013e"+ - "\6\u0164\1\u028e\1\u0165\1\u0166\13\u0164\1\0\1\u0164\1\u01dc"+ - "\1\u0164\1\u028f\35\u0164\1\u013e\5\u0164\2\0\1\u0290\4\0"+ - "\1\u0290\13\0\1\u0290\43\0\2\u0104\1\u0290\1\0\3\u0104"+ - "\1\u0291\1\0\12\u0104\1\u0292\34\u0104\1\u0105\6\u0104\6\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\3\44"+ - "\1\u0116\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\3\44\1\u0293\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\2\44\1\u0294\1\44\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\31\0"+ - "\1\u010c\47\0\1\u0295\111\0\1\u010c\41\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\1\44"+ - "\1\u010e\11\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\u0296\14\0"+ - "\4\172\1\0\13\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\5\44\1\u010e\5\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\41\0"+ - "\1\u0297\35\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\5\44\1\u0298\5\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\36\0"+ - "\1\u0299\71\0\1\u029a\35\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\u029b\13\44\1\0\5\44"+ - "\1\0\1\44\1\u029c\2\44\1\0\1\35\1\0\1\35"+ - "\1\44\30\0\1\u029d\46\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\1\u029e\1\44\1\u029f\1\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\u02a0\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\13\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\4\44\1\0"+ - "\1\u02a1\12\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\30\0\1\u02a2\105\0\1\u010c\10\0"+ - "\1\u010c\16\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\13\44\1\u010c\5\44\1\0\2\44"+ - "\1\u010e\1\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\1\44"+ - "\1\u02a3\2\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\14\0\1\172\1\u02a4\2\172\1\0\13\172\1\0"+ - "\5\172\1\0\4\172\4\0\1\172\34\0\1\u0299\42\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\1\u02a5\12\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\2\44\1\u01e8\1\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\2\44\1\u02a6\10\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\1\u02a7\3\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\41\0\1\u02a8\35\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\5\44\1\u02a9\5\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\51\0\1\u02aa\25\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\13\44\1\0\1\44\1\u02ab\3\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\31\0\1\u02ac\45\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\2\44"+ - "\1\u02ad\1\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\u02ae\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\u02af\13\44\1\0\5\44\1\0\1\44"+ - "\1\u02b0\2\44\1\0\1\35\1\0\1\35\1\44\41\0"+ - "\1\u01e3\35\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\2\44\1\u01e8\1\u02b1\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\5\44\1\u0112\5\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\32\0\1\u02b2\1\u02b3"+ - "\23\0\1\u02b3\57\0\1\u02b4\53\0\1\u02b5\41\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\4\44\1\0"+ - "\2\44\1\u02a5\10\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\5\44\1\u02b6"+ - "\5\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\3\44\1\u02b7\1\u02b3\13\44\1\0\5\44"+ - "\1\0\1\44\1\u02b8\2\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\1\44\1\u02b9\11\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\13\44\1\0\1\u02ba\4\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\2\0\2\u0210\2\0\4\u0210"+ - "\1\u02bb\12\u0210\1\u0141\34\u0210\1\u0211\10\u0210\2\0\4\u0210"+ - "\1\u02bc\12\u0210\1\u0141\34\u0210\1\u0211\6\u0210\2\0\1\u02bd"+ - "\4\0\1\u02bd\13\0\1\u02bd\43\0\2\u0143\1\u02bd\1\0"+ - "\3\u0143\1\u02be\1\0\12\u0143\1\u02bf\34\u0143\1\u0144\6\u0143"+ - "\2\0\1\u02c0\4\0\1\u02c0\13\0\1\u02c0\43\0\2\u0145"+ - "\1\u02c0\1\0\3\u0145\1\u02c1\1\0\12\u0145\1\u02c2\34\u0145"+ - "\1\u0146\6\u0145\1\0\2\u02c3\1\u02c4\1\0\1\u0149\1\u014a"+ - "\1\u014b\1\u014c\1\u014d\1\u014e\1\u014f\1\u0150\1\u0151\1\u0152"+ - "\1\u0153\1\u0154\1\u0155\46\0\1\u02c3\1\u0217\1\u02c4\1\0"+ - "\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d\1\u014e\1\u014f\1\u0150"+ - "\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155\46\0\3\u0226\64\0"+ - "\3\u0219\17\0\1\u021a\45\0\1\u0161\3\0\1\u0161\1\0"+ - "\4\u0161\2\0\1\u02c5\4\0\2\u0161\33\0\1\u0161\1\0"+ - "\2\u0161\1\0\2\u0161\2\u021c\2\0\3\u021c\1\u02c6\13\u021c"+ - "\1\u0158\43\u021c\7\0\1\u02bd\57\0\2\u0159\2\0\3\u0159"+ - "\1\u02c7\1\0\12\u0159\1\311\34\u0159\1\u015a\6\u0159\2\0"+ - "\1\u021f\64\0\2\u0224\2\0\13\u0224\1\u02c8\3\u0224\1\u0160"+ - "\43\u0224\6\0\1\317\1\0\1\u02c9\5\0\1\320\1\0"+ - "\1\317\4\0\4\317\1\0\13\317\1\u02ca\5\317\1\0"+ - "\2\317\1\u02cb\1\317\4\0\1\317\3\0\3\u0226\17\0"+ - "\1\u0227\45\0\1\u0228\2\0\1\326\1\327\1\330\1\331"+ - "\1\332\1\333\1\334\1\335\1\336\1\337\1\340\1\341"+ - "\1\342\45\0\1\323\2\u0228\1\u0229\17\323\1\u022a\43\323"+ - "\1\306\1\u02cc\1\u02cd\1\u02ce\1\306\1\u022b\1\306\1\u0156"+ - "\13\306\1\u02cf\44\306\1\u02cc\1\u02cd\1\u02ce\2\306\1\u022c"+ - "\1\u0156\13\306\1\u02cf\43\306\1\0\2\u0165\1\u0166\3\0"+ - "\1\330\6\0\1\u021b\4\0\1\u0167\43\0\1\306\1\u02cc"+ - "\1\u02cd\1\u02ce\3\306\1\u0156\1\u022e\12\306\1\u02cf\44\306"+ - "\1\u02cc\1\u02cd\1\u02ce\3\306\1\u0156\1\306\1\u022f\11\306"+ - "\1\u02cf\44\306\1\u02cc\1\u02cd\1\u02ce\3\306\1\u0156\2\306"+ - "\1\u0230\10\306\1\u02cf\44\306\1\u02cc\1\u02cd\1\u02ce\3\306"+ - "\1\u0156\3\306\1\u0231\7\306\1\u02cf\44\306\1\u02cc\1\u02cd"+ - "\1\u02ce\3\306\1\u0156\4\306\1\u0232\6\306\1\u02cf\44\306"+ - "\1\u02cc\1\u02cd\1\u02ce\3\306\1\u0156\5\306\1\u0233\5\306"+ - "\1\u02cf\44\306\1\u02cc\1\u02cd\1\u02ce\3\306\1\u0156\6\306"+ - "\1\u0234\4\306\1\u02cf\44\306\1\u02cc\1\u02cd\1\u02ce\3\306"+ - "\1\u0156\7\306\1\u0235\3\306\1\u02cf\44\306\1\u02cc\1\u02cd"+ - "\1\u02ce\3\306\1\u0156\10\306\1\u0236\2\306\1\u02cf\44\306"+ - "\1\u02cc\1\u02cd\1\u02ce\3\306\1\u0156\11\306\1\u0237\1\306"+ - "\1\u02cf\43\306\1\307\2\u02cd\1\u02ce\1\307\1\u0238\1\307"+ - "\1\u0157\13\307\1\u02d0\44\307\2\u02cd\1\u02ce\2\307\1\u0239"+ - "\1\u0157\13\307\1\u02d0\44\307\2\u02cd\1\u02ce\3\307\1\u0157"+ - "\1\u023b\12\307\1\u02d0\44\307\2\u02cd\1\u02ce\3\307\1\u0157"+ - "\1\307\1\u023c\11\307\1\u02d0\44\307\2\u02cd\1\u02ce\3\307"+ - "\1\u0157\2\307\1\u023d\10\307\1\u02d0\44\307\2\u02cd\1\u02ce"+ - "\3\307\1\u0157\3\307\1\u023e\7\307\1\u02d0\44\307\2\u02cd"+ - "\1\u02ce\3\307\1\u0157\4\307\1\u023f\6\307\1\u02d0\44\307"+ - "\2\u02cd\1\u02ce\3\307\1\u0157\5\307\1\u0240\5\307\1\u02d0"+ - "\44\307\2\u02cd\1\u02ce\3\307\1\u0157\6\307\1\u0241\4\307"+ - "\1\u02d0\44\307\2\u02cd\1\u02ce\3\307\1\u0157\7\307\1\u0242"+ - "\3\307\1\u02d0\44\307\2\u02cd\1\u02ce\3\307\1\u0157\10\307"+ - "\1\u0243\2\307\1\u02d0\44\307\2\u02cd\1\u02ce\3\307\1\u0157"+ - "\11\307\1\u0244\1\307\1\u02d0\43\307\1\323\1\324\1\u01cb"+ - "\1\325\2\323\1\u01cd\1\323\4\u01cd\2\323\1\u02d1\4\323"+ - "\2\u01cd\33\323\1\u01cd\1\323\2\u01cd\1\323\2\u01cd\2\307"+ - "\1\u0247\2\307\1\u0238\1\u0239\1\u023a\1\u023b\1\u023c\1\u023d"+ - "\1\u023e\1\u023f\1\u0240\1\u0241\1\u0242\1\u0243\1\u0244\45\307"+ - "\1\352\1\u0246\1\u0247\1\u0248\3\352\1\u0185\13\352\1\u0249"+ - "\43\352\1\u0193\2\u0247\1\u0248\3\u0193\1\u01a4\13\u0193\1\u024a"+ - "\43\u0193\1\u024b\1\u024c\1\324\1\325\3\u024b\1\u02d2\13\u024b"+ - "\1\u01a1\43\u024b\2\u021c\2\0\1\u021c\1\u02d3\1\u02d4\1\u02d5"+ - "\1\u02d6\1\u02d7\1\u02d8\1\u02d9\1\u02da\1\u02db\1\u02dc\1\u02dd"+ - "\1\u02de\1\u02df\1\u021c\1\u0158\43\u021c\1\u024b\1\u02e0\1\u0228"+ - "\1\u0229\1\u024b\1\u024d\1\u024b\1\u02d2\13\u024b\1\u02e1\44\u024b"+ - "\1\u02e0\1\u0228\1\u0229\2\u024b\1\u024e\1\u02d2\13\u024b\1\u02e1"+ - "\44\u024b\1\u02e0\1\u0228\1\u0229\3\u024b\1\u02d2\1\u024f\12\u024b"+ - "\1\u02e1\44\u024b\1\u02e0\1\u0228\1\u0229\3\u024b\1\u02d2\1\u024b"+ - "\1\u0250\11\u024b\1\u02e1\44\u024b\1\u02e0\1\u0228\1\u0229\3\u024b"+ - "\1\u02d2\2\u024b\1\u0251\10\u024b\1\u02e1\44\u024b\1\u02e0\1\u0228"+ - "\1\u0229\3\u024b\1\u02d2\3\u024b\1\u0252\7\u024b\1\u02e1\44\u024b"+ - "\1\u02e0\1\u0228\1\u0229\3\u024b\1\u02d2\4\u024b\1\u0253\6\u024b"+ - "\1\u02e1\44\u024b\1\u02e0\1\u0228\1\u0229\3\u024b\1\u02d2\5\u024b"+ - "\1\u0254\5\u024b\1\u02e1\44\u024b\1\u02e0\1\u0228\1\u0229\3\u024b"+ - "\1\u02d2\6\u024b\1\u0255\4\u024b\1\u02e1\44\u024b\1\u02e0\1\u0228"+ - "\1\u0229\3\u024b\1\u02d2\7\u024b\1\u0256\3\u024b\1\u02e1\44\u024b"+ - "\1\u02e0\1\u0228\1\u0229\3\u024b\1\u02d2\10\u024b\1\u0257\2\u024b"+ - "\1\u02e1\44\u024b\1\u02e0\1\u0228\1\u0229\3\u024b\1\u02d2\11\u024b"+ - "\1\u0258\1\u024b\1\u02e1\43\u024b\1\323\2\324\1\325\3\323"+ - "\1\u02e2\57\323\1\u0159\1\u02e3\1\u0165\1\u0166\1\u0159\1\u025a"+ - "\2\u0159\1\u021d\12\u0159\1\u02e4\34\u0159\1\u015a\7\u0159\1\u02e3"+ - "\1\u0165\1\u0166\2\u0159\1\u025b\1\u0159\1\u021d\12\u0159\1\u02e4"+ - "\34\u0159\1\u015a\7\u0159\1\u02e3\1\u0165\1\u0166\3\u0159\1\u025c"+ - "\1\u021d\12\u0159\1\u02e4\34\u0159\1\u015a\6\u0159\1\0\2\u0165"+ - "\1\u0166\3\0\1\u02bd\1\331\12\0\1\u0167\43\0\1\u0159"+ - "\1\u02e3\1\u0165\1\u0166\4\u0159\1\u021d\1\u025e\11\u0159\1\u02e4"+ - "\34\u0159\1\u015a\7\u0159\1\u02e3\1\u0165\1\u0166\4\u0159\1\u021d"+ - "\1\u0159\1\u025f\10\u0159\1\u02e4\34\u0159\1\u015a\7\u0159\1\u02e3"+ - "\1\u0165\1\u0166\4\u0159\1\u021d\2\u0159\1\u0260\7\u0159\1\u02e4"+ - "\34\u0159\1\u015a\7\u0159\1\u02e3\1\u0165\1\u0166\4\u0159\1\u021d"+ - "\3\u0159\1\u0261\6\u0159\1\u02e4\34\u0159\1\u015a\7\u0159\1\u02e3"+ - "\1\u0165\1\u0166\4\u0159\1\u021d\4\u0159\1\u0262\5\u0159\1\u02e4"+ - "\34\u0159\1\u015a\7\u0159\1\u02e3\1\u0165\1\u0166\4\u0159\1\u021d"+ - "\5\u0159\1\u0263\4\u0159\1\u02e4\34\u0159\1\u015a\7\u0159\1\u02e3"+ - "\1\u0165\1\u0166\4\u0159\1\u021d\6\u0159\1\u0264\3\u0159\1\u02e4"+ - "\34\u0159\1\u015a\7\u0159\1\u02e3\1\u0165\1\u0166\4\u0159\1\u021d"+ - "\7\u0159\1\u0265\2\u0159\1\u02e4\34\u0159\1\u015a\7\u0159\1\u02e3"+ - "\1\u0165\1\u0166\4\u0159\1\u021d\10\u0159\1\u0266\1\u0159\1\u02e4"+ - "\34\u0159\1\u015a\6\u0159\1\u01a5\1\u01a6\1\324\1\325\3\u01a5"+ - "\1\u02e5\1\323\12\u01a5\1\360\34\u01a5\1\u01a7\7\u01a5\1\u0268"+ - "\1\u0228\1\u0229\4\u01a5\1\323\12\u01a5\1\u0269\34\u01a5\1\u01a7"+ - "\6\u01a5\2\0\1\u026a\2\0\1\326\1\327\1\330\1\331"+ - "\1\332\1\333\1\334\1\335\1\336\1\337\1\340\1\341"+ - "\1\342\45\0\1\u015f\1\u02e6\1\u0165\1\u0166\1\u015f\1\u026f"+ - "\11\u015f\1\u0223\3\u015f\1\u02e7\44\u015f\1\u02e6\1\u0165\1\u0166"+ - "\2\u015f\1\u0270\10\u015f\1\u0223\3\u015f\1\u02e7\44\u015f\1\u02e6"+ - "\1\u0165\1\u0166\3\u015f\1\u0271\7\u015f\1\u0223\3\u015f\1\u02e7"+ - "\44\u015f\1\u02e6\1\u0165\1\u0166\4\u015f\1\u0272\6\u015f\1\u0223"+ - "\3\u015f\1\u02e7\44\u015f\1\u02e6\1\u0165\1\u0166\5\u015f\1\u0273"+ - "\5\u015f\1\u0223\3\u015f\1\u02e7\44\u015f\1\u02e6\1\u0165\1\u0166"+ - "\6\u015f\1\u0274\4\u015f\1\u0223\3\u015f\1\u02e7\44\u015f\1\u02e6"+ - "\1\u0165\1\u0166\7\u015f\1\u0275\3\u015f\1\u0223\3\u015f\1\u02e7"+ - "\44\u015f\1\u02e6\1\u0165\1\u0166\10\u015f\1\u0276\2\u015f\1\u0223"+ - "\3\u015f\1\u02e7\44\u015f\1\u02e6\1\u0165\1\u0166\11\u015f\1\u0277"+ - "\1\u015f\1\u0223\3\u015f\1\u02e7\44\u015f\1\u02e6\1\u0165\1\u0166"+ - "\12\u015f\1\u0278\1\u0223\3\u015f\1\u02e7\44\u015f\1\u02e6\1\u0165"+ - "\1\u0166\13\u015f\1\u0223\1\u027a\2\u015f\1\u02e7\44\u015f\1\u02e6"+ - "\1\u0165\1\u0166\13\u015f\1\u0223\1\u015f\1\u027b\1\u015f\1\u02e7"+ - "\43\u015f\1\u01ba\1\u027c\1\u0228\1\u0229\13\u01ba\1\323\3\u01ba"+ - "\1\u027d\43\u01ba\1\u027e\1\u027f\1\324\1\325\13\u027e\1\u02e8"+ - "\3\u027e\1\u01c8\43\u027e\2\u0224\2\0\1\u0224\1\u02e9\1\u02ea"+ - "\1\u02eb\1\u02ec\1\u02ed\1\u02ee\1\u02ef\1\u02f0\1\u02f1\1\u02f2"+ - "\1\u02f3\1\u02f4\1\u02f5\1\u0224\1\u0160\43\u0224\1\u027e\1\u02f6"+ - "\1\u0228\1\u0229\1\u027e\1\u0280\11\u027e\1\u02e8\3\u027e\1\u02f7"+ - "\44\u027e\1\u02f6\1\u0228\1\u0229\2\u027e\1\u0281\10\u027e\1\u02e8"+ - "\3\u027e\1\u02f7\44\u027e\1\u02f6\1\u0228\1\u0229\3\u027e\1\u0282"+ - "\7\u027e\1\u02e8\3\u027e\1\u02f7\44\u027e\1\u02f6\1\u0228\1\u0229"+ - "\4\u027e\1\u0283\6\u027e\1\u02e8\3\u027e\1\u02f7\44\u027e\1\u02f6"+ - "\1\u0228\1\u0229\5\u027e\1\u0284\5\u027e\1\u02e8\3\u027e\1\u02f7"+ - "\44\u027e\1\u02f6\1\u0228\1\u0229\6\u027e\1\u0285\4\u027e\1\u02e8"+ - "\3\u027e\1\u02f7\44\u027e\1\u02f6\1\u0228\1\u0229\7\u027e\1\u0286"+ - "\3\u027e\1\u02e8\3\u027e\1\u02f7\44\u027e\1\u02f6\1\u0228\1\u0229"+ - "\10\u027e\1\u0287\2\u027e\1\u02e8\3\u027e\1\u02f7\44\u027e\1\u02f6"+ - "\1\u0228\1\u0229\11\u027e\1\u0288\1\u027e\1\u02e8\3\u027e\1\u02f7"+ - "\44\u027e\1\u02f6\1\u0228\1\u0229\12\u027e\1\u0289\1\u02e8\3\u027e"+ - "\1\u02f7\44\u027e\1\u02f6\1\u0228\1\u0229\13\u027e\1\u02e8\1\u028a"+ - "\2\u027e\1\u02f7\44\u027e\1\u02f6\1\u0228\1\u0229\13\u027e\1\u02e8"+ - "\1\u027e\1\u028b\1\u027e\1\u02f7\43\u027e\1\323\2\324\1\325"+ - "\2\323\1\377\1\323\1\u02f8\5\323\1\u0100\1\323\1\377"+ - "\4\323\4\377\1\323\13\377\1\u02f9\5\377\1\323\2\377"+ - "\1\u02fa\1\377\4\323\1\377\2\323\1\u0164\1\u028e\1\u0165"+ - "\1\u0166\13\u0164\1\0\3\u0164\1\u028f\35\u0164\1\0\5\u0164"+ - "\6\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\u02fb\13\44\1\0\5\44\1\0\1\44\1\u0116"+ - "\2\44\1\0\1\35\1\0\1\35\1\44\10\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\1\44\1\u02fc"+ - "\2\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\27\0\1\u02fd\47\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\1\u02fe\3\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\37\0\1\u01e3\57\0\1\u02ff\72\0"+ - "\1\u0300\42\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\1\u0301\12\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\33\0\1\u0302"+ - "\23\0\1\u0302\17\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\u0303\13\44\1\0\5\44\1\0"+ - "\1\44\1\u0304\2\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\3\44\1\u0305\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\14\0\4\172\1\0\13\172\1\0\1\u0306\4\172"+ - "\1\0\4\172\4\0\1\172\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\2\44\1\u0307"+ - "\10\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\27\0\1\u0308\47\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\u0302\13\44\1\0"+ - "\5\44\1\0\1\44\1\u0309\2\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\14\0\1\u030a"+ - "\3\172\1\0\13\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\3\44\1\u0112\7\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\13\44\1\0\1\44\1\u030b\3\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\1\44"+ - "\1\u0112\11\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\36\0\1\u030c\40\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\2\44"+ - "\1\u030d\10\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\33\0\1\u030e\23\0\1\u030e\17\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\u030e\13\44\1\0\5\44\1\0\1\44\1\u030f\2\44"+ - "\1\0\1\35\1\0\1\35\1\44\37\0\1\u0310\37\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\3\44\1\u0311\7\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\14\0\4\172\1\0\13\172\1\0\2\172\1\u0312"+ - "\2\172\1\0\4\172\4\0\1\172\32\0\1\u0313\44\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\3\44"+ - "\1\u0314\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\1\u0315\12\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\36\0\1\u0316\64\0\1\u0317\61\0\1\u0318\70\0"+ - "\1\u0319\45\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\1\44\1\u031a\2\44\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\2\44\1\u031b\10\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\1\u031c"+ - "\12\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\2\44\1\u031d\1\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\1\u01e8\3\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\4\0\1\u031e\4\0"+ - "\1\u031e\13\0\1\u031e\43\0\2\u0210\1\u031e\1\0\3\u0210"+ - "\1\u031f\1\0\12\u0210\1\u0320\34\u0210\1\u0211\6\u0210\5\0"+ - "\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d\1\u014e\1\u014f\1\u0150"+ - "\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155\47\0\1\u02c3\2\0"+ - "\1\u0149\1\u014a\1\u014b\1\u014c\1\u014d\1\u014e\1\u014f\1\u0150"+ - "\1\u0151\1\u0152\1\u0153\1\u0154\1\u0155\47\0\1\u0161\3\0"+ - "\1\u0161\1\0\4\u0161\7\0\2\u0161\33\0\1\u0161\1\0"+ - "\2\u0161\1\0\2\u0161\7\0\1\u0321\76\0\1\u0322\55\0"+ - "\1\317\1\0\1\317\5\0\1\320\1\0\1\317\4\0"+ - "\4\317\1\0\13\317\1\0\5\317\1\0\4\317\2\0"+ - "\1\u0323\1\0\1\317\12\0\1\u0324\64\0\1\317\1\0"+ - "\1\u02c9\5\0\1\320\1\0\1\317\4\0\4\317\1\0"+ - "\13\317\1\0\5\317\1\0\4\317\4\0\1\317\2\0"+ - "\2\307\1\u02cd\4\307\1\u0157\57\307\1\306\1\u02cc\1\u02cd"+ - "\1\u02ce\3\306\1\u0156\13\306\1\u02cf\43\306\1\307\2\u02cd"+ - "\1\u02ce\3\307\1\u0157\13\307\1\u02d0\43\307\1\323\1\324"+ - "\1\u01cb\1\325\2\323\1\u01cd\1\323\4\u01cd\7\323\2\u01cd"+ - "\33\323\1\u01cd\1\323\2\u01cd\1\323\2\u01cd\1\323\2\324"+ - "\1\325\3\323\1\u0325\57\323\1\u021c\1\u0326\1\u0165\1\u0166"+ - "\1\u021c\1\u02d3\1\u021c\1\u02c6\13\u021c\1\u0327\44\u021c\1\u0326"+ - "\1\u0165\1\u0166\2\u021c\1\u02d4\1\u02c6\13\u021c\1\u0327\43\u021c"+ - "\1\0\2\u0165\1\u0166\3\0\1\u0328\13\0\1\u0167\43\0"+ - "\1\u021c\1\u0326\1\u0165\1\u0166\3\u021c\1\u02c6\1\u02d6\12\u021c"+ - "\1\u0327\44\u021c\1\u0326\1\u0165\1\u0166\3\u021c\1\u02c6\1\u021c"+ - "\1\u02d7\11\u021c\1\u0327\44\u021c\1\u0326\1\u0165\1\u0166\3\u021c"+ - "\1\u02c6\2\u021c\1\u02d8\10\u021c\1\u0327\44\u021c\1\u0326\1\u0165"+ - "\1\u0166\3\u021c\1\u02c6\3\u021c\1\u02d9\7\u021c\1\u0327\44\u021c"+ - "\1\u0326\1\u0165\1\u0166\3\u021c\1\u02c6\4\u021c\1\u02da\6\u021c"+ - "\1\u0327\44\u021c\1\u0326\1\u0165\1\u0166\3\u021c\1\u02c6\5\u021c"+ - "\1\u02db\5\u021c\1\u0327\44\u021c\1\u0326\1\u0165\1\u0166\3\u021c"+ - "\1\u02c6\6\u021c\1\u02dc\4\u021c\1\u0327\44\u021c\1\u0326\1\u0165"+ - "\1\u0166\3\u021c\1\u02c6\7\u021c\1\u02dd\3\u021c\1\u0327\44\u021c"+ - "\1\u0326\1\u0165\1\u0166\3\u021c\1\u02c6\10\u021c\1\u02de\2\u021c"+ - "\1\u0327\44\u021c\1\u0326\1\u0165\1\u0166\3\u021c\1\u02c6\11\u021c"+ - "\1\u02df\1\u021c\1\u0327\43\u021c\1\u024b\1\u02e0\1\u0228\1\u0229"+ - "\3\u024b\1\323\13\u024b\1\u02e1\43\u024b\1\u0159\1\u02e3\1\u0165"+ - "\1\u0166\4\u0159\1\0\12\u0159\1\u02e4\34\u0159\1\u015a\6\u0159"+ - "\1\u015f\1\u02e6\1\u0165\1\u0166\13\u015f\1\0\3\u015f\1\u02e7"+ - "\43\u015f\1\323\2\324\1\325\13\323\1\u0329\47\323\1\u0224"+ - "\1\u032a\1\u0165\1\u0166\1\u0224\1\u02e9\11\u0224\1\u02c8\3\u0224"+ - "\1\u032b\44\u0224\1\u032a\1\u0165\1\u0166\2\u0224\1\u02ea\10\u0224"+ - "\1\u02c8\3\u0224\1\u032b\44\u0224\1\u032a\1\u0165\1\u0166\3\u0224"+ - "\1\u02eb\7\u0224\1\u02c8\3\u0224\1\u032b\44\u0224\1\u032a\1\u0165"+ - "\1\u0166\4\u0224\1\u02ec\6\u0224\1\u02c8\3\u0224\1\u032b\44\u0224"+ - "\1\u032a\1\u0165\1\u0166\5\u0224\1\u02ed\5\u0224\1\u02c8\3\u0224"+ - "\1\u032b\44\u0224\1\u032a\1\u0165\1\u0166\6\u0224\1\u02ee\4\u0224"+ - "\1\u02c8\3\u0224\1\u032b\44\u0224\1\u032a\1\u0165\1\u0166\7\u0224"+ - "\1\u02ef\3\u0224\1\u02c8\3\u0224\1\u032b\44\u0224\1\u032a\1\u0165"+ - "\1\u0166\10\u0224\1\u02f0\2\u0224\1\u02c8\3\u0224\1\u032b\44\u0224"+ - "\1\u032a\1\u0165\1\u0166\11\u0224\1\u02f1\1\u0224\1\u02c8\3\u0224"+ - "\1\u032b\44\u0224\1\u032a\1\u0165\1\u0166\12\u0224\1\u02f2\1\u02c8"+ - "\3\u0224\1\u032b\43\u0224\1\0\2\u0165\1\u0166\13\0\1\u032c"+ - "\3\0\1\u0167\43\0\1\u0224\1\u032a\1\u0165\1\u0166\13\u0224"+ - "\1\u02c8\1\u02f4\2\u0224\1\u032b\44\u0224\1\u032a\1\u0165\1\u0166"+ - "\13\u0224\1\u02c8\1\u0224\1\u02f5\1\u0224\1\u032b\43\u0224\1\u027e"+ - "\1\u02f6\1\u0228\1\u0229\13\u027e\1\323\3\u027e\1\u02f7\43\u027e"+ - "\1\323\2\324\1\325\2\323\1\377\1\323\1\377\5\323"+ - "\1\u0100\1\323\1\377\4\323\4\377\1\323\13\377\1\323"+ - "\5\377\1\323\4\377\2\323\1\u032d\1\323\1\377\3\323"+ - "\2\324\1\325\4\323\1\u032e\57\323\2\324\1\325\2\323"+ - "\1\377\1\323\1\u02f8\5\323\1\u0100\1\323\1\377\4\323"+ - "\4\377\1\323\13\377\1\323\5\377\1\323\4\377\4\323"+ - "\1\377\2\323\26\0\1\u032f\46\0\1\u0330\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\44\0\1\u0331\32\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\10\44\1\u0332\2\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\27\0\1\u0333\71\0\1\u010c\44\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\3\44\1\u010e\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\34\0\1\u0334\64\0\1\u0335\44\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\3\44\1\u01f9\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\1\44\1\u01f4\2\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\14\0\4\172\1\0\13\172"+ - "\1\0\1\172\1\u0336\3\172\1\0\4\172\4\0\1\172"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\3\44\1\u0337\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\50\0\1\u010b\26\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\4\44"+ - "\1\0\1\u0338\12\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\172\1\0\1\173"+ - "\14\0\4\172\1\0\13\172\1\0\1\u0339\4\172\1\0"+ - "\4\172\4\0\1\172\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\1\44\1\u033a\2\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\35\0\1\u033b\41\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\1\44\1\u033c\11\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\40\0\1\u033d\36\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\4\44\1\u033e\6\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\10\0\1\u033f\66\0\1\u0340\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\13\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\14\0\4\172\1\0\2\172\1\u0341"+ - "\10\172\1\0\5\172\1\0\4\172\4\0\1\172\40\0"+ - "\1\u010c\36\0\1\172\1\0\1\173\1\35\4\0\1\35"+ - "\6\0\4\44\1\0\4\44\1\u010e\6\44\1\0\5\44"+ - "\1\0\4\44\1\0\1\35\1\0\1\35\1\44\10\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\1\44"+ - "\1\u0342\2\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\43\0\1\u010c\55\0"+ - "\1\u0343\75\0\1\u010c\62\0\1\u0344\41\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\1\u0345\3\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\10\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\7\44\1\u010e\3\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\3\44\1\u0346\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\1\44"+ - "\1\u0347\11\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\64\0\1\u0348\66\0\1\u0323\4\0"+ - "\1\u021c\1\u0326\1\u0165\1\u0166\3\u021c\1\0\13\u021c\1\u0327"+ - "\43\u021c\1\u0224\1\u032a\1\u0165\1\u0166\13\u0224\1\0\3\u0224"+ - "\1\u032b\43\u0224\1\323\2\324\1\325\56\323\1\u0349\5\323"+ - "\2\324\1\325\56\323\1\u032d\4\323\31\0\1\u029b\23\0"+ - "\1\u029b\17\0\1\172\1\0\1\173\14\0\3\172\1\u034a"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\42\0\1\u010c\34\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\6\44\1\u010e\4\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\32\0\1\u0128\66\0\1\u01f3\65\0\1\u0318\45\0\1\172"+ - "\1\0\1\173\14\0\4\172\1\0\1\u034b\12\172\1\0"+ - "\5\172\1\0\4\172\4\0\1\172\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\3\44"+ - "\1\u010e\7\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\3\44\1\u01f4\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\14\0\4\172\1\0\13\172"+ - "\1\0\1\172\1\u034c\3\172\1\0\4\172\4\0\1\172"+ - "\10\0\1\u034d\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\30\0\1\u034e\46\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\1\44\1\u034f"+ - "\2\44\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\42\0\1\u0350\34\0\1\172"+ - "\1\0\1\173\1\35\4\0\1\35\6\0\4\44\1\0"+ - "\6\44\1\u0351\4\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\51\0\1\u0352\25\0\1\172"+ - "\1\0\1\173\14\0\4\172\1\0\13\172\1\0\1\172"+ - "\1\u0353\3\172\1\0\4\172\4\0\1\172\10\0\1\172"+ - "\1\0\1\173\14\0\4\172\1\0\1\u0354\12\172\1\0"+ - "\5\172\1\0\4\172\4\0\1\172\10\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\2\44\1\u01f4\1\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\10\0\1\u0355\112\0\1\u0356\42\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\3\44"+ - "\1\u012a\1\0\13\44\1\0\5\44\1\0\4\44\1\0"+ - "\1\35\1\0\1\35\1\44\10\0\1\u0357\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\1\u0358\12\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\2\0\2\u0359\2\0"+ - "\17\u0359\1\0\43\u0359\1\u035a\1\u035b\1\324\1\325\17\u035a"+ - "\1\323\43\u035a\6\0\1\172\1\0\1\173\14\0\4\172"+ - "\1\0\1\u035c\12\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\173\14\0\4\172\1\0"+ - "\1\172\1\u035d\11\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\173\14\0\2\172\1\u035e"+ - "\1\172\1\0\13\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\173\14\0\4\172\1\0"+ - "\5\172\1\u035f\5\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\36\0\1\u0360\40\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\2\44\1\u0361\10\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\30\0\1\u0362\46\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\1\44\1\u0363\2\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\33\0\1\u0364\23\0\1\u0364\17\0\1\172\1\0"+ - "\1\173\14\0\4\172\1\u0364\13\172\1\0\5\172\1\0"+ - "\1\172\1\u0365\2\172\4\0\1\172\10\0\1\172\1\0"+ - "\1\173\14\0\1\172\1\u034c\2\172\1\0\13\172\1\0"+ - "\5\172\1\0\4\172\4\0\1\172\27\0\1\u0366\76\0"+ - "\1\u0367\37\0\1\172\1\0\1\173\14\0\1\u0368\3\172"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\3\44\1\u0369\7\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\2\0\2\u0359"+ - "\2\0\1\u0359\1\u036a\1\u036b\1\u036c\1\u036d\1\u036e\1\u036f"+ - "\1\u0370\1\u0371\1\u0372\1\u0373\1\u0374\1\u0375\1\u0376\1\u0359"+ - "\1\0\43\u0359\6\0\1\172\1\0\1\173\14\0\1\172"+ - "\1\u0377\2\172\1\0\13\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\10\0\1\172\1\0\1\173\14\0\4\172"+ - "\1\0\13\172\1\0\5\172\1\u0378\3\172\1\u0379\4\0"+ - "\1\172\10\0\1\172\1\0\1\u01e7\14\0\4\172\1\0"+ - "\13\172\1\0\5\172\1\0\4\172\4\0\1\172\10\0"+ - "\1\172\1\0\1\173\14\0\4\172\1\0\1\u0339\12\172"+ - "\1\0\5\172\1\0\4\172\4\0\1\172\41\0\1\u037a"+ - "\35\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\4\44\1\0\5\44\1\u037b\5\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\12\0\1\u037c"+ - "\34\0\1\u010c\10\0\1\u010c\16\0\1\172\1\0\1\u037d"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\13\44\1\u010c"+ - "\5\44\1\0\2\44\1\u010e\1\44\1\0\1\35\1\0"+ - "\1\35\1\44\30\0\1\u037e\46\0\1\172\1\0\1\173"+ - "\14\0\1\172\1\u037f\2\172\1\0\13\172\1\0\5\172"+ - "\1\0\4\172\4\0\1\172\36\0\1\u0380\61\0\1\u0378"+ - "\45\0\1\172\1\0\1\173\14\0\4\172\1\0\2\172"+ - "\1\u0381\10\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\10\0\1\172\1\0\1\173\1\35\4\0\1\35\6\0"+ - "\2\44\1\u0382\1\44\1\0\13\44\1\0\5\44\1\0"+ - "\4\44\1\0\1\35\1\0\1\35\1\44\2\0\1\u0359"+ - "\1\u0383\1\u0165\1\u0166\1\u0359\1\u036a\15\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\2\u0359\1\u036b\14\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\3\u0359\1\u036c\13\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\4\u0359\1\u036d\12\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\5\u0359\1\u036e\11\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\6\u0359\1\u036f\10\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\7\u0359\1\u0370\7\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\10\u0359\1\u0371\6\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\11\u0359\1\u0372\5\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\12\u0359\1\u0373\4\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\13\u0359\1\u0374\3\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\14\u0359\1\u0375\2\u0359\1\u0167\44\u0359"+ - "\1\u0383\1\u0165\1\u0166\15\u0359\1\u0376\1\u0359\1\u0167\43\u0359"+ - "\6\0\1\172\1\0\1\173\14\0\2\172\1\u0384\1\172"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\12\0\1\u037c\64\0\1\172\1\0\1\u037d\14\0\4\172"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\31\0\1\u0385\45\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\2\44\1\u0386\1\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\12\0\1\u0387\64\0\1\172\1\0\1\u0388\14\0\4\172"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\31\0\1\u0389\45\0\1\172\1\0\1\173\14\0\2\172"+ - "\1\u038a\1\172\1\0\13\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\30\0\1\u038b\46\0\1\172\1\0\1\173"+ - "\14\0\1\172\1\u038c\2\172\1\0\13\172\1\0\5\172"+ - "\1\0\4\172\4\0\1\172\10\0\1\172\1\0\1\u037d"+ - "\1\35\4\0\1\35\6\0\4\44\1\0\13\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\10\0\1\172\1\0\1\173\14\0\4\172\1\0\13\172"+ - "\1\u010c\5\172\1\0\2\172\1\u035e\1\172\4\0\1\172"+ - "\37\0\1\u038d\37\0\1\172\1\0\1\173\1\35\4\0"+ - "\1\35\6\0\4\44\1\0\3\44\1\u038e\7\44\1\0"+ - "\5\44\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\41\0\1\u038f\35\0\1\172\1\0\1\173\14\0\4\172"+ - "\1\0\5\172\1\u0390\5\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\34\0\1\u0391\42\0\1\172\1\0\1\173"+ - "\14\0\4\172\1\0\1\u0392\12\172\1\0\5\172\1\0"+ - "\4\172\4\0\1\172\30\0\1\u0393\46\0\1\172\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\1\44\1\u0394\2\44"+ - "\1\0\13\44\1\0\5\44\1\0\4\44\1\0\1\35"+ - "\1\0\1\35\1\44\27\0\1\u0395\47\0\1\172\1\0"+ - "\1\173\14\0\1\u0396\3\172\1\0\13\172\1\0\5\172"+ - "\1\0\4\172\4\0\1\172\32\0\1\u0397\44\0\1\172"+ - "\1\0\1\173\14\0\3\172\1\u0398\1\0\13\172\1\0"+ - "\5\172\1\0\4\172\4\0\1\172\31\0\1\u0399\45\0"+ - "\1\172\1\0\1\173\1\35\4\0\1\35\6\0\2\44"+ - "\1\u039a\1\44\1\0\13\44\1\0\5\44\1\0\4\44"+ - "\1\0\1\35\1\0\1\35\1\44\51\0\1\u010c\25\0"+ - "\1\172\1\0\1\173\14\0\4\172\1\0\13\172\1\0"+ - "\1\172\1\u035e\3\172\1\0\4\172\4\0\1\172\36\0"+ - "\1\u039b\40\0\1\172\1\0\1\173\14\0\4\172\1\0"+ - "\2\172\1\u039c\10\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\54\0\1\u039d\22\0\1\172\1\0\1\173\1\35"+ - "\4\0\1\35\6\0\4\44\1\0\13\44\1\0\4\44"+ - "\1\u039e\1\0\4\44\1\0\1\35\1\0\1\35\1\44"+ - "\43\0\1\u039f\33\0\1\172\1\0\1\173\14\0\4\172"+ - "\1\0\7\172\1\u03a0\3\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\30\0\1\u03a1\46\0\1\172\1\0\1\173"+ - "\1\35\4\0\1\35\6\0\1\44\1\u03a2\2\44\1\0"+ - "\13\44\1\0\5\44\1\0\4\44\1\0\1\35\1\0"+ - "\1\35\1\44\50\0\1\u03a3\26\0\1\172\1\0\1\173"+ - "\14\0\4\172\1\0\13\172\1\0\1\u03a4\4\172\1\0"+ - "\4\172\4\0\1\172\10\0\1\u03a5\66\0\1\u03a6\1\0"+ - "\1\173\1\35\4\0\1\35\6\0\4\44\1\0\13\44"+ - "\1\0\5\44\1\0\4\44\1\0\1\35\1\0\1\35"+ - "\1\44\31\0\1\u03a7\45\0\1\172\1\0\1\173\14\0"+ - "\2\172\1\u03a8\1\172\1\0\13\172\1\0\5\172\1\0"+ - "\4\172\4\0\1\172\30\0\1\u03a9\46\0\1\172\1\0"+ - "\1\173\14\0\1\172\1\u03aa\2\172\1\0\13\172\1\0"+ - "\5\172\1\0\4\172\4\0\1\172\41\0\1\u03ab\35\0"+ - "\1\172\1\0\1\173\14\0\4\172\1\0\5\172\1\u03ac"+ - "\5\172\1\0\5\172\1\0\4\172\4\0\1\172\31\0"+ - "\1\u03ad\45\0\1\172\1\0\1\173\14\0\2\172\1\u03ae"+ - "\1\172\1\0\13\172\1\0\5\172\1\0\4\172\4\0"+ - "\1\172\33\0\1\u02af\23\0\1\u02af\17\0\1\172\1\0"+ - "\1\173\14\0\4\172\1\u02af\13\172\1\0\5\172\1\0"+ - "\1\172\1\u03af\2\172\4\0\1\172\47\0\1\u03b0\10\0"+ - "\1\u03b0\16\0\1\172\1\0\1\173\14\0\4\172\1\0"+ - "\13\172\1\u03b0\5\172\1\0\2\172\1\u03b1\1\172\4\0"+ - "\1\172\10\0\1\172\1\0\1\173\14\0\3\172\1\u03b2"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\30\0\1\u03b3\46\0\1\172\1\0\1\173\14\0\1\172"+ - "\1\u03b4\2\172\1\0\13\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\10\0\1\172\1\0\1\173\14\0\4\172"+ - "\1\0\4\172\1\u035e\6\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\10\0\1\u03b5\66\0\1\u03b6\1\0\1\173"+ - "\14\0\4\172\1\0\13\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\37\0\1\u03b7\37\0\1\172\1\0\1\173"+ - "\14\0\4\172\1\0\3\172\1\u03b8\7\172\1\0\5\172"+ - "\1\0\4\172\4\0\1\172\33\0\1\u03b9\23\0\1\u03b9"+ - "\17\0\1\172\1\0\1\173\14\0\4\172\1\u03b9\13\172"+ - "\1\0\5\172\1\0\1\172\1\u03ba\2\172\4\0\1\172"+ - "\41\0\1\u03bb\35\0\1\172\1\0\1\173\14\0\4\172"+ - "\1\0\5\172\1\u03bc\5\172\1\0\5\172\1\0\4\172"+ - "\4\0\1\172\31\0\1\u03bd\45\0\1\172\1\0\1\173"+ - "\14\0\2\172\1\u03be\1\172\1\0\13\172\1\0\5\172"+ - "\1\0\4\172\4\0\1\172\35\0\1\u03bf\41\0\1\172"+ - "\1\0\1\173\14\0\4\172\1\0\1\172\1\u03c0\11\172"+ - "\1\0\5\172\1\0\4\172\4\0\1\172\30\0\1\u03c1"+ - "\46\0\1\172\1\0\1\173\14\0\1\172\1\u03c2\2\172"+ - "\1\0\13\172\1\0\5\172\1\0\4\172\4\0\1\172"+ - "\33\0\1\u03c3\23\0\1\u03c3\17\0\1\172\1\0\1\173"+ - "\14\0\4\172\1\u03c3\13\172\1\0\5\172\1\0\1\172"+ - "\1\u03c4\2\172\4\0\1\172\53\0\1\u01e3\23\0\1\172"+ - "\1\0\1\173\14\0\4\172\1\0\13\172\1\0\3\172"+ - "\1\u034c\1\172\1\0\4\172\4\0\1\172\2\0"; + "\2\23\2\24\1\25\14\23\1\26\45\23\1\0\1\27"+ + "\1\30\2\31\1\32\1\30\7\27\1\33\1\34\1\27"+ + "\1\35\1\36\2\27\1\37\1\35\1\40\1\41\1\42"+ + "\1\43\1\35\1\44\1\45\2\35\1\46\1\47\1\50"+ + "\1\35\1\51\1\35\1\52\1\53\1\54\1\55\1\35"+ + "\1\56\1\35\1\57\3\27\1\60\1\27\1\61\1\27"+ + "\1\62\1\63\1\27\1\0\1\64\1\65\2\66\1\67"+ + "\1\65\61\64\1\0\2\27\2\24\1\25\62\27\1\0"+ + "\1\27\1\70\2\71\1\72\1\70\1\27\3\73\1\27"+ + "\4\73\2\27\3\73\33\27\3\73\1\27\1\73\3\27"+ + "\1\0\1\74\1\75\3\76\1\75\61\74\1\0\2\77"+ + "\2\100\1\101\62\77\1\0\2\102\2\24\1\25\2\102"+ + "\3\103\1\102\4\103\2\102\3\103\33\102\3\103\1\102"+ + "\1\103\3\102\1\0\2\104\2\105\1\106\62\104\1\0"+ + "\2\107\1\71\1\110\1\72\1\111\4\107\1\111\1\112"+ + "\5\107\1\112\32\107\1\111\4\107\2\112\5\107\1\23"+ + "\1\65\2\24\1\25\1\65\6\23\1\113\7\23\30\113"+ + "\13\23\1\0\2\114\2\24\1\25\62\114\1\0\1\23"+ + "\1\115\2\71\1\72\1\115\46\23\1\116\12\23\1\0"+ + "\1\23\1\115\2\71\1\72\1\115\13\23\1\117\32\23"+ + "\1\116\3\23\1\120\6\23\1\0\1\27\1\65\2\24"+ + "\1\25\1\65\13\27\1\121\45\27\1\0\2\122\2\24"+ + "\1\25\62\122\1\0\1\123\1\124\2\125\1\126\1\124"+ + "\1\123\1\127\1\123\1\127\1\123\1\130\2\123\1\131"+ + "\1\123\1\132\1\133\2\123\7\132\1\134\20\132\1\123"+ + "\1\135\3\123\1\136\1\137\4\123\1\0\1\140\1\141"+ + "\2\142\1\143\1\141\1\140\1\144\1\145\1\146\1\140"+ + "\1\147\1\150\1\151\1\152\1\140\1\153\1\154\1\155"+ + "\1\140\7\153\1\156\20\153\1\140\1\157\1\140\1\160"+ + "\1\161\1\162\1\163\1\164\3\140\73\0\1\24\65\0"+ + "\2\165\1\0\1\165\2\0\13\165\1\0\46\165\1\0"+ + "\1\30\3\166\1\30\64\0\2\167\1\170\65\0\1\171"+ + "\1\167\1\170\100\0\1\172\2\0\1\172\1\173\2\0"+ + "\30\172\32\0\1\34\1\0\1\34\3\0\31\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\30\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\2\0\1\172\1\174\2\0\30\172\31\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\3\35\1\175"+ + "\17\35\1\176\4\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\1\177"+ + "\7\35\1\200\2\35\1\201\2\35\1\202\3\35\1\203"+ + "\5\35\1\34\3\0\1\34\1\0\1\34\1\0\1\204"+ + "\1\205\17\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\1\206\3\35\1\207\23\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\17\35\1\210\1\35\1\211\6\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\10\35\1\212\5\35\1\213\11\35\1\34\3\0"+ + "\1\34\1\0\1\34\1\0\1\214\20\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\4\35\1\215\3\35\1\216"+ + "\17\35\1\34\3\0\1\34\1\0\1\34\1\0\1\217"+ + "\20\0\1\172\1\34\1\0\1\35\1\173\2\0\14\35"+ + "\1\220\1\221\12\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\10\35"+ + "\1\222\17\35\1\34\3\0\1\34\1\0\1\34\1\0"+ + "\1\223\20\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\4\35\1\224\23\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\16\35"+ + "\1\225\11\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\1\226\23\35"+ + "\1\227\3\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\1\230\3\35"+ + "\1\231\11\35\1\232\5\35\1\233\3\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\4\35\1\234\3\35\1\235\5\35\1\236"+ + "\11\35\1\34\3\0\1\34\1\0\1\34\1\0\1\237"+ + "\20\0\1\172\1\34\1\0\1\35\1\173\2\0\1\240"+ + "\7\35\1\241\5\35\1\242\11\35\1\34\3\0\1\34"+ + "\1\0\1\34\1\0\1\243\20\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\15\35\1\244\12\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\1\245\27\35\1\34\3\0\1\34\1\0"+ + "\1\34\15\0\1\246\2\0\1\247\2\0\1\34\1\0"+ + "\1\250\3\0\30\251\1\34\1\0\1\252\1\0\1\34"+ + "\1\0\1\34\5\0\2\253\1\0\1\253\1\0\11\253"+ + "\1\254\1\253\1\254\1\0\2\253\31\254\3\253\1\255"+ + "\1\253\1\254\5\253\16\256\1\61\1\256\1\61\3\256"+ + "\31\61\3\256\1\61\1\256\1\257\5\256\40\0\1\260"+ + "\1\261\56\0\1\262\3\0\1\237\5\0\1\263\21\0"+ + "\1\237\4\0\1\65\3\0\1\65\64\0\2\264\1\265"+ + "\11\0\1\266\53\0\1\267\1\264\1\265\11\0\1\266"+ + "\52\0\1\70\3\0\1\70\13\0\1\270\50\0\1\71"+ + "\66\0\1\75\3\76\1\75\64\0\3\76\63\0\2\77"+ + "\3\0\62\77\3\0\1\100\65\0\2\104\3\0\62\104"+ + "\3\0\1\105\65\0\2\107\1\0\1\107\2\0\4\107"+ + "\2\0\5\107\1\0\32\107\1\0\4\107\2\0\5\107"+ + "\2\0\2\271\1\272\7\0\1\273\7\0\30\273\14\0"+ + "\2\114\3\0\62\114\11\0\1\274\2\0\1\275\4\0"+ + "\1\274\3\0\30\274\2\0\1\276\11\0\2\277\1\0"+ + "\1\277\2\0\13\277\1\0\46\277\60\0\1\300\7\0"+ + "\2\301\1\0\1\301\2\0\13\301\1\0\46\301\2\122"+ + "\3\0\62\122\2\0\1\302\3\0\1\302\64\0\2\303"+ + "\1\304\65\0\1\305\1\303\1\304\103\0\1\306\3\0"+ + "\30\306\14\0\2\307\1\0\1\307\2\0\5\307\1\310"+ + "\54\307\16\0\1\311\65\0\2\312\2\0\2\312\2\0"+ + "\30\312\4\0\1\313\7\0\2\314\1\0\1\314\2\0"+ + "\13\314\1\315\46\314\14\0\2\312\2\0\2\312\2\0"+ + "\23\312\1\316\4\312\4\0\1\313\7\0\2\317\1\320"+ + "\1\317\2\320\53\317\1\321\6\317\2\322\1\0\1\322"+ + "\2\0\5\322\1\0\46\322\1\0\5\322\2\323\2\324"+ + "\1\325\62\323\1\0\1\323\1\326\2\324\1\325\1\326"+ + "\61\323\3\0\2\303\1\304\2\0\1\327\1\330\1\331"+ + "\1\0\1\332\1\333\1\334\1\335\2\0\1\336\1\337"+ + "\34\0\1\340\1\341\1\342\1\0\1\343\6\0\1\344"+ + "\1\303\1\304\2\0\1\327\1\330\1\331\1\0\1\332"+ + "\1\333\1\334\1\335\2\0\1\336\1\337\34\0\1\340"+ + "\1\341\1\342\1\0\1\343\4\0\2\323\2\345\1\346"+ + "\1\347\1\323\1\350\10\323\1\351\3\323\30\351\13\323"+ + "\1\0\2\323\2\345\1\346\1\347\2\323\1\352\56\323"+ + "\1\0\2\323\2\345\1\346\1\347\3\323\1\353\6\323"+ + "\1\351\3\323\30\351\13\323\1\0\2\354\1\345\1\355"+ + "\1\346\1\347\5\354\1\356\53\354\1\307\2\323\2\345"+ + "\1\346\1\347\6\323\1\357\52\323\1\0\2\323\2\345"+ + "\1\346\1\347\7\323\1\360\51\323\1\0\2\323\2\345"+ + "\1\346\1\347\10\323\1\361\50\323\1\0\2\323\2\324"+ + "\1\325\7\323\2\362\2\323\2\362\2\323\30\362\4\323"+ + "\1\363\6\323\1\0\2\364\1\345\1\365\1\346\1\347"+ + "\13\364\1\366\45\364\1\314\2\323\2\345\1\346\1\347"+ + "\14\323\1\367\44\323\1\0\2\323\2\324\1\325\7\323"+ + "\2\362\2\323\2\362\2\323\23\362\1\370\4\362\4\323"+ + "\1\363\6\323\1\0\2\323\2\345\1\346\1\347\51\323"+ + "\1\371\7\323\1\0\2\323\2\345\1\346\1\347\52\323"+ + "\1\372\6\323\1\0\2\373\1\374\1\375\1\376\1\377"+ + "\53\373\1\u0100\5\373\1\317\2\u0101\1\324\1\u0102\1\325"+ + "\1\323\5\u0101\1\323\46\u0101\1\323\4\u0101\1\322\2\323"+ + "\2\345\1\346\1\347\55\323\1\u0103\3\323\1\0\2\u0104"+ + "\1\0\1\u0104\1\0\1\165\13\u0104\1\0\33\u0104\1\u0105"+ + "\12\u0104\2\0\3\166\65\0\1\167\2\166\100\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\14\35\1\u0106\13\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\23\35\1\u0107\4\35\1\34"+ + "\3\0\1\34\1\0\1\34\22\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\24\35\1\u0108\3\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\23\35\1\u0109\4\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\1\u010a\27\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\3\35"+ + "\1\u010b\10\35\1\u010c\1\u010d\12\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\25\35\1\u010e\2\35\1\34\3\0\1\34\1\0"+ + "\1\34\54\0\1\u010f\71\0\1\u0110\33\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\15\35\1\u0111\5\35\1\u0112"+ + "\4\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\5\35\1\u0113\22\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\10\35\1\u0114\17\35\1\34"+ + "\3\0\1\34\1\0\1\34\1\0\1\u0115\20\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\21\35\1\u0116\6\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\6\35\1\u0117\21\35\1\34"+ + "\3\0\1\34\1\0\1\34\22\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\16\35\1\u0118\11\35\1\34\3\0"+ + "\1\34\1\0\1\34\37\0\1\u0119\52\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\1\u011a\27\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\6\35\1\u011b\6\35\1\u011c\12\35\1\34"+ + "\3\0\1\34\1\0\1\34\37\0\1\u011d\6\0\1\u011e"+ + "\43\0\1\172\1\34\1\0\1\35\1\173\2\0\1\u011f"+ + "\16\35\1\u0120\10\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\2\35"+ + "\1\u0121\25\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\22\35\1\u0122"+ + "\5\35\1\34\3\0\1\34\1\0\1\34\2\0\1\u0123"+ + "\50\0\1\u0123\16\0\1\u0123\17\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\23\35\1\u0124\4\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\23\35\1\u0112\4\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\21\35\1\u0125\6\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\13\35\1\u0126\14\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\26\35"+ + "\1\u0127\1\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\17\35\1\u0128"+ + "\2\35\1\u0129\5\35\1\34\3\0\1\34\1\0\1\34"+ + "\2\0\1\u012a\17\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\13\35\1\u0112\14\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\1\35\1\u012b\26\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\2\35"+ + "\1\u012c\25\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\3\35\1\u012d"+ + "\24\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\24\35\1\u012e\3\35"+ + "\1\34\3\0\1\34\1\0\1\34\34\0\1\u012f\55\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\1\35\1\232"+ + "\17\35\1\u0130\6\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\17\35"+ + "\1\u0127\3\35\1\232\4\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\17\35\1\u0131\10\35\1\34\3\0\1\34\1\0\1\34"+ + "\50\0\1\u0132\3\0\1\u0133\35\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\10\35\1\u0134\17\35\1\34\3\0"+ + "\1\34\1\0\1\34\1\0\1\u0135\20\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\21\35\1\u0136\6\35\1\34"+ + "\3\0\1\34\1\0\1\34\25\0\1\246\3\0\30\246"+ + "\2\0\1\252\67\0\1\252\27\0\1\34\1\0\1\250"+ + "\3\0\30\251\1\34\1\0\1\252\1\0\1\34\1\0"+ + "\1\34\23\0\1\34\1\0\1\251\3\0\30\251\1\34"+ + "\1\0\1\u0137\1\0\1\34\1\0\1\34\5\0\2\u0138"+ + "\1\0\1\u0138\1\0\14\u0138\1\0\50\u0138\1\0\1\u0138"+ + "\1\0\11\u0138\1\u0139\1\u0138\1\u0139\1\0\2\u0138\31\u0139"+ + "\3\u0138\1\u0139\1\u0138\1\u0139\5\u0138\62\256\1\u013a\5\256"+ + "\24\0\1\u013b\16\0\1\u013c\52\0\1\u013d\67\0\1\u013e"+ + "\111\0\1\u013f\21\0\1\264\103\0\1\u0140\51\0\2\u0141"+ + "\1\0\1\u0141\2\0\13\u0141\1\0\46\u0141\2\0\1\271"+ + "\105\0\1\274\3\0\30\274\2\0\1\276\67\0\1\276"+ + "\71\0\1\u0142\7\0\2\u0143\1\0\1\u0143\1\0\1\277"+ + "\13\u0143\1\0\33\u0143\1\u0144\12\u0143\2\u0145\1\0\1\u0145"+ + "\1\0\1\301\13\u0145\1\0\33\u0145\1\u0146\12\u0145\2\0"+ + "\2\u0147\1\u0148\2\0\1\u0149\1\u014a\1\u014b\1\0\1\u014c"+ + "\1\u014d\1\u014e\1\u014f\2\0\1\u0150\1\u0151\34\0\1\u0152"+ + "\1\u0153\1\u0154\1\0\1\u0155\6\0\1\303\1\u0147\1\u0148"+ + "\2\0\1\u0149\1\u014a\1\u014b\1\0\1\u014c\1\u014d\1\u014e"+ + "\1\u014f\2\0\1\u0150\1\u0151\34\0\1\u0152\1\u0153\1\u0154"+ + "\1\0\1\u0155\6\0\2\303\1\304\2\0\1\u0149\1\u014a"+ + "\1\u014b\1\0\1\u014c\1\u014d\1\u014e\1\u014f\2\0\1\u0150"+ + "\1\u0151\34\0\1\u0152\1\u0153\1\u0154\1\0\1\u0155\20\0"+ + "\2\306\2\0\2\306\2\0\30\306\4\0\1\u0156\7\0"+ + "\2\u0157\1\0\1\u0157\1\0\1\307\5\u0157\1\0\54\u0157"+ + "\2\u0158\1\0\1\u0158\2\0\5\u0158\1\0\54\u0158\5\0"+ + "\1\u0159\64\0\1\u015a\2\0\3\u015a\1\0\2\u015a\1\0"+ + "\1\312\1\u015b\2\u015a\1\312\1\u015b\2\0\30\312\3\u015a"+ + "\1\0\1\313\7\0\2\u015c\1\0\1\u015c\1\0\1\314"+ + "\13\u015c\1\0\33\u015c\1\u015d\12\u015c\2\0\2\u015e\1\u015f"+ + "\77\0\2\312\2\0\2\312\2\0\23\312\1\u0160\4\312"+ + "\4\0\1\313\7\0\2\317\1\320\1\317\1\320\54\317"+ + "\1\u0161\6\317\61\320\1\u0162\6\320\2\u0163\1\0\1\u0163"+ + "\2\0\53\u0163\1\0\6\u0163\2\u0164\1\0\1\u0164\1\0"+ + "\1\322\5\u0164\1\0\46\u0164\1\0\5\u0164\7\0\1\327"+ + "\1\330\1\331\1\0\1\332\1\333\1\334\1\335\2\0"+ + "\1\336\1\337\34\0\1\340\1\341\1\342\1\0\1\343"+ + "\6\0\1\324\4\0\1\327\1\330\1\331\1\0\1\332"+ + "\1\333\1\334\1\335\2\0\1\336\1\337\34\0\1\340"+ + "\1\341\1\342\1\0\1\343\6\0\2\u0165\1\u0166\1\u0167"+ + "\1\0\1\327\62\0\2\u0165\1\u0166\1\u0167\2\0\1\330"+ + "\61\0\2\u0165\1\u0166\1\u0167\3\0\1\331\60\0\2\u0165"+ + "\1\u0166\1\u0167\5\0\1\332\56\0\2\u0165\1\u0166\1\u0167"+ + "\6\0\1\333\55\0\2\u0165\1\u0166\1\u0167\7\0\1\334"+ + "\54\0\2\u0165\1\u0166\1\u0167\10\0\1\335\53\0\2\u0165"+ + "\1\u0166\1\u0167\13\0\1\336\50\0\2\u0165\1\u0166\1\u0167"+ + "\14\0\1\337\47\0\2\u0165\1\u0166\1\u0167\51\0\1\340"+ + "\12\0\2\u0165\1\u0166\1\u0167\52\0\1\341\11\0\2\u0165"+ + "\1\u0166\1\u0167\53\0\1\342\10\0\2\u0165\1\u0166\1\u0167"+ + "\55\0\1\343\6\0\2\303\1\304\2\0\1\u0168\1\u0169"+ + "\1\u016a\1\0\1\u016b\1\u016c\1\u016d\1\u016e\2\0\1\u016f"+ + "\1\u0170\34\0\1\u0171\1\u0172\1\u0173\1\0\1\u0174\4\0"+ + "\2\323\2\324\1\325\2\323\1\u0175\1\u0176\1\u0177\1\323"+ + "\1\u0178\1\u0179\1\u017a\1\u017b\2\323\1\u017c\1\u017d\34\323"+ + "\1\u017e\1\u017f\1\u0180\1\323\1\u0181\3\323\1\0\2\323"+ + "\1\345\1\324\1\325\2\323\1\u0175\1\u0176\1\u0177\1\323"+ + "\1\u0178\1\u0179\1\u017a\1\u017b\2\323\1\u017c\1\u017d\34\323"+ + "\1\u017e\1\u017f\1\u0180\1\323\1\u0181\3\323\1\0\2\323"+ + "\2\345\1\346\1\347\61\323\1\0\2\323\2\345\1\346"+ + "\1\347\1\323\1\350\57\323\1\0\2\323\2\324\1\325"+ + "\7\323\2\351\2\323\2\351\2\323\30\351\4\323\1\u0182"+ + "\6\323\1\0\2\323\2\345\1\346\1\347\3\323\1\353"+ + "\55\323\1\0\2\u0183\1\324\1\u0184\1\325\1\354\5\u0183"+ + "\1\323\53\u0183\1\u0157\2\u0183\1\324\1\u0184\1\325\1\354"+ + "\1\u0183\1\u0185\1\u0186\1\u0187\1\u0183\1\u0178\1\u0188\1\u0189"+ + "\1\u018a\2\u0183\1\u018b\1\u018c\34\u0183\1\u018d\1\u018e\1\u018f"+ + "\1\u0183\1\u0190\3\u0183\1\u0157\2\u0191\1\345\1\u0192\1\346"+ + "\1\347\5\u0191\1\u0193\53\u0191\1\u0158\2\323\2\345\1\346"+ + "\1\u0194\10\323\1\u0195\50\323\1\0\2\323\1\u0196\1\324"+ + "\1\325\3\u0197\1\323\2\u0197\1\323\1\362\1\u0198\2\u0197"+ + "\1\362\1\u0198\2\323\30\362\3\u0197\1\323\1\363\6\323"+ + "\1\0\2\u0199\1\324\1\u019a\1\325\1\364\13\u0199\1\323"+ + "\33\u0199\1\u019b\11\u0199\1\u015c\2\u0199\1\324\1\u019a\1\325"+ + "\1\364\1\u0199\1\u019c\1\u019d\1\u019e\1\u0199\1\u019f\1\u01a0"+ + "\1\u01a1\1\u01a2\2\u0199\1\u017c\1\u01a3\32\u0199\1\u019b\1\u0199"+ + "\1\u01a4\1\u01a5\1\u01a6\1\u0199\1\u01a7\3\u0199\1\u015c\2\323"+ + "\2\u01a8\1\u01a9\1\347\13\323\1\u01aa\45\323\1\0\2\323"+ + "\2\324\1\325\7\323\2\362\2\323\2\362\2\323\23\362"+ + "\1\u01ab\4\362\4\323\1\363\6\323\1\0\2\373\1\u01ac"+ + "\1\u01ad\1\u01ae\54\373\1\u01af\5\373\1\317\2\u01b0\2\u01ac"+ + "\1\u01ae\2\u01b0\1\u01b1\1\u01b2\1\u01b3\1\u01b0\1\u01b4\1\u01b5"+ + "\1\u01b6\1\u01b7\2\u01b0\1\u01b8\1\u01b9\34\u01b0\1\u01ba\1\u01bb"+ + "\1\u01bc\1\u01b0\1\u01bd\3\u01b0\1\320\2\373\1\u01ac\1\u01ad"+ + "\1\u01ae\2\373\1\u01be\1\u01bf\1\u01c0\1\373\1\u01c1\1\u01c2"+ + "\1\u01c3\1\u01c4\2\373\1\u01c5\1\u01c6\34\373\1\u01c7\1\u01c8"+ + "\1\u01c9\1\373\1\u01ca\3\373\1\317\2\u01b0\1\374\1\u01ac"+ + "\1\u01ae\2\u01b0\1\u01b1\1\u01b2\1\u01b3\1\u01b0\1\u01b4\1\u01b5"+ + "\1\u01b6\1\u01b7\2\u01b0\1\u01b8\1\u01b9\34\u01b0\1\u01ba\1\u01bb"+ + "\1\u01bc\1\u01b0\1\u01bd\3\u01b0\1\320\2\u01b0\2\374\1\376"+ + "\1\377\53\u01b0\1\u01cb\5\u01b0\1\320\2\u01cc\1\345\1\u01cd"+ + "\1\346\1\347\53\u01cc\1\u01ce\5\u01cc\1\u0163\2\u01cf\1\324"+ + "\1\u01d0\1\325\1\u0101\5\u01cf\1\323\46\u01cf\1\323\4\u01cf"+ + "\3\u0164\1\0\1\u0164\1\0\1\322\1\u0164\1\u01d1\1\u01d2"+ + "\1\u01d3\1\u0164\1\332\1\u01d4\1\u01d5\1\u01d6\2\u0164\1\u01d7"+ + "\1\u01d8\34\u0164\1\u01d9\1\u01da\1\u01db\1\0\1\u01dc\4\u0164"+ + "\2\u0104\1\0\1\u0104\1\0\1\165\13\u0104\1\u01dd\33\u0104"+ + "\1\u0105\14\u0104\1\0\1\u0104\1\0\1\165\13\u0104\1\u01de"+ + "\33\u0104\1\u0105\12\u0104\15\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\16\35\1\u01df\11\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\4\35\1\u01e0\23\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\23\35\1\u01e1\4\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\1\u01e2"+ + "\27\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\22\35\1\u01e3\5\35"+ + "\1\34\3\0\1\34\1\0\1\34\2\0\1\u01e4\17\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\4\35\1\u01e5"+ + "\23\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\17\35\1\u01e6\10\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\23\35\1\u01e7\4\35\1\34"+ + "\3\0\1\34\1\0\1\34\22\0\1\u01e8\1\34\1\0"+ + "\1\35\1\173\2\0\30\35\1\34\3\0\1\34\1\0"+ + "\1\34\31\0\1\u01e9\60\0\1\u01ea\67\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\6\35\1\u01eb\21\35\1\34"+ + "\3\0\1\34\1\0\1\34\22\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\4\35\1\u0127\23\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\1\u01ec\27\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\6\35\1\u01ed\21\35\1\34\3\0\1\34\1\0\1\34"+ + "\37\0\1\u01ee\52\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\16\35\1\u01ef\11\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\24\35\1\u01f0\3\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\23\35"+ + "\1\u01f1\4\35\1\34\3\0\1\34\1\0\1\34\55\0"+ + "\1\u01f2\34\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\3\35\1\u01eb\24\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\7\35"+ + "\1\u01f3\20\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\23\35\1\u0127"+ + "\4\35\1\34\3\0\1\34\1\0\1\34\40\0\1\u01f4"+ + "\103\0\1\u0132\35\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\6\35\1\u0112\21\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\16\35\1\u01f5\11\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\13\35"+ + "\1\u01f6\14\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\23\35\1\u010e"+ + "\4\35\1\34\3\0\1\34\1\0\1\34\54\0\1\u0110"+ + "\35\0\1\172\1\34\1\0\1\35\1\173\2\0\1\u0127"+ + "\27\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\22\35\1\u01f7\5\35"+ + "\1\34\3\0\1\34\1\0\1\34\2\0\1\u01f8\17\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\13\35\1\u01f9"+ + "\14\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\u01fa\2\0\30\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\13\35\1\u01fb\14\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\23\35\1\u01fc\4\35\1\34\3\0\1\34\1\0"+ + "\1\34\54\0\1\u01fd\35\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\21\35\1\u0131\6\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\23\35\1\u01fe\4\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\4\35\1\u01ff\23\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\21\35"+ + "\1\u0200\6\35\1\34\3\0\1\34\1\0\1\34\35\0"+ + "\1\u0201\54\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\6\35\1\u0202\21\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\10\35"+ + "\1\u0203\17\35\1\34\3\0\1\34\1\0\1\34\1\0"+ + "\1\u0204\24\0\1\u0205\105\0\1\u0206\45\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\2\35\1\u0207\25\35\1\34"+ + "\3\0\1\34\1\0\1\34\33\0\1\u0208\56\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\15\35\1\u0209\12\35"+ + "\1\34\3\0\1\34\1\0\1\34\5\0\2\u0138\1\0"+ + "\1\u0138\1\0\14\u0138\1\u020a\50\u0138\1\0\1\u0138\1\0"+ + "\11\u0138\1\u0139\1\u0138\1\u0139\1\u020a\2\u0138\31\u0139\3\u0138"+ + "\1\u0139\1\u0138\1\u0139\5\u0138\32\0\1\u0206\77\0\1\u020b"+ + "\64\0\1\u020c\77\0\1\u020d\65\0\1\u020e\27\0\1\u020f"+ + "\62\0\2\u0210\1\0\1\u0210\1\0\1\u0141\13\u0210\1\0"+ + "\33\u0210\1\u0211\12\u0210\2\0\1\u0212\2\0\3\u0212\1\0"+ + "\2\u0212\2\0\3\u0212\1\0\1\u0212\32\0\3\u0212\11\0"+ + "\2\u0143\1\0\1\u0143\1\0\1\277\13\u0143\1\u0213\33\u0143"+ + "\1\u0144\14\u0143\1\0\1\u0143\1\0\1\277\13\u0143\1\u0214"+ + "\33\u0143\1\u0144\12\u0143\2\u0145\1\0\1\u0145\1\0\1\301"+ + "\13\u0145\1\u0215\33\u0145\1\u0146\14\u0145\1\0\1\u0145\1\0"+ + "\1\301\13\u0145\1\u0216\33\u0145\1\u0146\12\u0145\2\0\2\u0217"+ + "\1\u0218\2\0\1\u0149\1\u014a\1\u014b\1\0\1\u014c\1\u014d"+ + "\1\u014e\1\u014f\2\0\1\u0150\1\u0151\34\0\1\u0152\1\u0153"+ + "\1\u0154\1\0\1\u0155\6\0\1\u0147\1\u0217\1\u0218\2\0"+ + "\1\u0149\1\u014a\1\u014b\1\0\1\u014c\1\u014d\1\u014e\1\u014f"+ + "\2\0\1\u0150\1\u0151\34\0\1\u0152\1\u0153\1\u0154\1\0"+ + "\1\u0155\6\0\3\u0219\1\u021a\1\0\1\u0149\62\0\3\u0219"+ + "\1\u021a\2\0\1\u014a\61\0\3\u0219\1\u021a\3\0\1\u014b"+ + "\60\0\3\u0219\1\u021a\5\0\1\u014c\56\0\3\u0219\1\u021a"+ + "\6\0\1\u014d\55\0\3\u0219\1\u021a\7\0\1\u014e\54\0"+ + "\3\u0219\1\u021a\10\0\1\u014f\53\0\3\u0219\1\u021a\13\0"+ + "\1\u0150\50\0\3\u0219\1\u021a\14\0\1\u0151\47\0\3\u0219"+ + "\1\u021a\51\0\1\u0152\12\0\3\u0219\1\u021a\52\0\1\u0153"+ + "\11\0\3\u0219\1\u021a\53\0\1\u0154\10\0\3\u0219\1\u021a"+ + "\55\0\1\u0155\13\0\1\u021b\1\0\1\u021b\2\0\2\306"+ + "\2\0\2\306\2\0\30\306\4\0\1\u0156\7\0\2\u0157"+ + "\1\0\1\u0157\1\0\1\307\5\u0157\1\u021c\54\u0157\2\u021d"+ + "\1\0\1\u021d\1\0\1\u0158\5\u021d\1\0\54\u021d\2\u015c"+ + "\1\0\1\u015c\1\0\1\314\13\u015c\1\u021e\33\u015c\1\u015d"+ + "\14\u015c\1\0\1\u015c\1\0\1\314\13\u015c\1\u021f\33\u015c"+ + "\1\u015d\12\u015c\2\0\2\u0220\1\u0221\65\0\1\u0222\1\u0220"+ + "\1\u0221\77\0\2\312\2\0\2\312\2\0\17\312\1\u0223"+ + "\10\312\4\0\1\313\67\0\1\u0224\7\0\2\u0225\1\0"+ + "\1\u0225\1\0\1\u0163\53\u0225\1\0\6\u0225\2\u0164\1\0"+ + "\1\u0164\1\0\1\322\5\u0164\1\0\46\u0164\1\u013a\5\u0164"+ + "\2\0\1\u0165\67\0\2\u0165\1\u0166\1\u0167\64\0\3\u0226"+ + "\1\u0227\1\0\1\u0168\62\0\3\u0226\1\u0227\2\0\1\u0169"+ + "\61\0\3\u0226\1\u0227\3\0\1\u016a\60\0\3\u0226\1\u0227"+ + "\5\0\1\u016b\56\0\3\u0226\1\u0227\6\0\1\u016c\55\0"+ + "\3\u0226\1\u0227\7\0\1\u016d\54\0\3\u0226\1\u0227\10\0"+ + "\1\u016e\53\0\3\u0226\1\u0227\13\0\1\u016f\50\0\3\u0226"+ + "\1\u0227\14\0\1\u0170\47\0\3\u0226\1\u0227\51\0\1\u0171"+ + "\12\0\3\u0226\1\u0227\52\0\1\u0172\11\0\3\u0226\1\u0227"+ + "\53\0\1\u0173\10\0\3\u0226\1\u0227\55\0\1\u0174\4\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\1\323\1\u0175\57\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\2\323\1\u0176\56\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\3\323\1\u0177\55\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\5\323\1\u0178\53\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\6\323\1\u0179\52\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\7\323\1\u017a\51\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\10\323\1\u017b\50\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\13\323\1\u017c\45\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\14\323\1\u017d\44\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\51\323\1\u017e\7\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\52\323\1\u017f\6\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\53\323\1\u0180\5\323\1\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\55\323\1\u0181\3\323\1\0"+ + "\2\323\2\324\1\325\2\323\1\u022b\1\323\1\u022b\2\323"+ + "\2\351\2\323\2\351\2\323\30\351\4\323\1\u0182\6\323"+ + "\1\0\2\u0183\1\324\1\u0184\1\325\1\354\5\u0183\1\u022c"+ + "\53\u0183\3\u0157\1\0\1\u0157\1\0\1\307\1\u0157\1\u022d"+ + "\1\u022e\1\u022f\1\u0157\1\u0230\1\u0231\1\u0232\1\u0233\2\u0157"+ + "\1\u0234\1\u0235\34\u0157\1\u0236\1\u0237\1\u0238\1\u0157\1\u0239"+ + "\4\u0157\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b\1\u0183\1\u0185"+ + "\3\u0183\1\u022c\53\u0183\1\u0157\2\u0183\1\u0228\1\u023a\1\u0229"+ + "\1\u023b\2\u0183\1\u0186\2\u0183\1\u022c\53\u0183\1\u0157\2\u0183"+ + "\1\u0228\1\u023a\1\u0229\1\u023b\3\u0183\1\u0187\1\u0183\1\u022c"+ + "\53\u0183\1\u0157\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b\5\u0183"+ + "\1\u022c\1\u0188\52\u0183\1\u0157\2\u0183\1\u0228\1\u023a\1\u0229"+ + "\1\u023b\5\u0183\1\u022c\1\u0183\1\u0189\51\u0183\1\u0157\2\u0183"+ + "\1\u0228\1\u023a\1\u0229\1\u023b\5\u0183\1\u022c\2\u0183\1\u018a"+ + "\50\u0183\1\u0157\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b\5\u0183"+ + "\1\u022c\5\u0183\1\u018b\45\u0183\1\u0157\2\u0183\1\u0228\1\u023a"+ + "\1\u0229\1\u023b\5\u0183\1\u022c\6\u0183\1\u018c\44\u0183\1\u0157"+ + "\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b\5\u0183\1\u022c\43\u0183"+ + "\1\u018d\7\u0183\1\u0157\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b"+ + "\5\u0183\1\u022c\44\u0183\1\u018e\6\u0183\1\u0157\2\u0183\1\u0228"+ + "\1\u023a\1\u0229\1\u023b\5\u0183\1\u022c\45\u0183\1\u018f\5\u0183"+ + "\1\u0157\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b\5\u0183\1\u022c"+ + "\47\u0183\1\u0190\3\u0183\1\u0157\2\u023c\1\324\1\u023d\1\325"+ + "\1\u0191\5\u023c\1\323\53\u023c\1\u021d\2\u023c\1\324\1\u023d"+ + "\1\325\1\u0191\1\u023c\1\u023e\1\u023f\1\u0240\1\u023c\1\u0178"+ + "\1\u0241\1\u0242\1\u0243\2\u023c\1\u0244\1\u0245\34\u023c\1\u0246"+ + "\1\u0247\1\u0248\1\u023c\1\u0249\3\u023c\1\u021d\2\323\2\345"+ + "\1\346\1\347\5\323\1\u0193\53\323\1\0\2\323\2\345"+ + "\1\346\1\u0194\61\323\1\0\2\323\2\345\1\346\1\347"+ + "\10\323\1\u0195\50\323\1\0\2\u0199\1\324\1\u019a\1\325"+ + "\1\364\13\u0199\1\u024a\33\u0199\1\u019b\11\u0199\3\u015c\1\0"+ + "\1\u015c\1\0\1\314\1\u015c\1\u024b\1\u024c\1\u024d\1\u015c"+ + "\1\u024e\1\u024f\1\u0250\1\u0251\2\u015c\1\u0252\1\u0253\32\u015c"+ + "\1\u015d\1\u015c\1\u0254\1\u0255\1\u0256\1\u015c\1\u0257\4\u015c"+ + "\2\u0199\1\324\1\u019a\1\325\1\364\13\u0199\1\u0258\33\u0199"+ + "\1\u019b\11\u0199\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a"+ + "\1\u0199\1\u019c\11\u0199\1\u024a\33\u0199\1\u019b\11\u0199\1\u015c"+ + "\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a\2\u0199\1\u019d\10\u0199"+ + "\1\u024a\33\u0199\1\u019b\11\u0199\1\u015c\2\u0199\1\u0228\1\u0259"+ + "\1\u0229\1\u025a\3\u0199\1\u019e\7\u0199\1\u024a\33\u0199\1\u019b"+ + "\11\u0199\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a\5\u0199"+ + "\1\u019f\5\u0199\1\u024a\33\u0199\1\u019b\11\u0199\1\u015c\2\u0199"+ + "\1\u0228\1\u0259\1\u0229\1\u025a\6\u0199\1\u01a0\4\u0199\1\u024a"+ + "\33\u0199\1\u019b\11\u0199\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229"+ + "\1\u025a\7\u0199\1\u01a1\3\u0199\1\u024a\33\u0199\1\u019b\11\u0199"+ + "\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a\10\u0199\1\u01a2"+ + "\2\u0199\1\u024a\33\u0199\1\u019b\11\u0199\1\u015c\2\u0199\1\u0228"+ + "\1\u0259\1\u0229\1\u025a\13\u0199\1\u024a\1\u01a3\32\u0199\1\u019b"+ + "\11\u0199\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a\13\u0199"+ + "\1\u024a\33\u0199\1\u019b\1\u0199\1\u01a4\7\u0199\1\u015c\2\u0199"+ + "\1\u0228\1\u0259\1\u0229\1\u025a\13\u0199\1\u024a\33\u0199\1\u019b"+ + "\2\u0199\1\u01a5\6\u0199\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229"+ + "\1\u025a\13\u0199\1\u024a\33\u0199\1\u019b\3\u0199\1\u01a6\5\u0199"+ + "\1\u015c\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a\13\u0199\1\u024a"+ + "\33\u0199\1\u019b\5\u0199\1\u01a7\3\u0199\1\u015c\2\323\2\u025b"+ + "\1\u025c\2\323\1\u0175\1\u0176\1\u0177\1\323\1\u0178\1\u0179"+ + "\1\u017a\1\u017b\2\323\1\u017c\1\u017d\34\323\1\u017e\1\u017f"+ + "\1\u0180\1\323\1\u0181\3\323\1\0\2\323\1\u025d\1\u025b"+ + "\1\u025c\2\323\1\u0175\1\u0176\1\u0177\1\323\1\u0178\1\u0179"+ + "\1\u017a\1\u017b\2\323\1\u017c\1\u017d\34\323\1\u017e\1\u017f"+ + "\1\u0180\1\323\1\u0181\3\323\1\0\2\323\2\345\1\346"+ + "\1\347\13\323\1\u01aa\45\323\1\0\2\323\2\324\1\325"+ + "\7\323\2\362\2\323\2\362\2\323\17\362\1\u025e\10\362"+ + "\4\323\1\363\6\323\1\0\7\320\1\u025f\1\u0260\1\u0261"+ + "\1\320\1\u0262\1\u0263\1\u0264\1\u0265\2\320\1\u0266\1\u0267"+ + "\34\320\1\u0268\1\u0269\1\u026a\1\320\1\u026b\4\320\2\317"+ + "\1\320\1\317\1\320\2\317\1\u026c\1\u026d\1\u026e\1\317"+ + "\1\u026f\1\u0270\1\u0271\1\u0272\2\317\1\u0273\1\u0274\34\317"+ + "\1\u0275\1\u0276\1\u0277\1\317\1\u0278\4\317\2\320\1\u01ac"+ + "\4\320\1\u025f\1\u0260\1\u0261\1\320\1\u0262\1\u0263\1\u0264"+ + "\1\u0265\2\320\1\u0266\1\u0267\34\320\1\u0268\1\u0269\1\u026a"+ + "\1\320\1\u026b\4\320\2\323\2\324\1\325\53\323\1\u0279"+ + "\6\323\1\0\2\u01b0\2\u01ac\1\u01ae\54\u01b0\1\u01cb\5\u01b0"+ + "\1\320\2\u01b0\2\u027a\1\u027b\1\u027c\1\u01b0\1\u01b1\51\u01b0"+ + "\1\u01cb\5\u01b0\1\320\2\u01b0\2\u027a\1\u027b\1\u027c\2\u01b0"+ + "\1\u01b2\50\u01b0\1\u01cb\5\u01b0\1\320\2\u01b0\2\u027a\1\u027b"+ + "\1\u027c\3\u01b0\1\u01b3\47\u01b0\1\u01cb\5\u01b0\1\320\2\u01b0"+ + "\2\u027a\1\u027b\1\u027c\5\u01b0\1\u01b4\45\u01b0\1\u01cb\5\u01b0"+ + "\1\320\2\u01b0\2\u027a\1\u027b\1\u027c\6\u01b0\1\u01b5\44\u01b0"+ + "\1\u01cb\5\u01b0\1\320\2\u01b0\2\u027a\1\u027b\1\u027c\7\u01b0"+ + "\1\u01b6\43\u01b0\1\u01cb\5\u01b0\1\320\2\u01b0\2\u027a\1\u027b"+ + "\1\u027c\10\u01b0\1\u01b7\42\u01b0\1\u01cb\5\u01b0\1\320\2\u01b0"+ + "\2\u027a\1\u027b\1\u027c\13\u01b0\1\u01b8\37\u01b0\1\u01cb\5\u01b0"+ + "\1\320\2\u01b0\2\u027a\1\u027b\1\u027c\14\u01b0\1\u01b9\36\u01b0"+ + "\1\u01cb\5\u01b0\1\320\2\u01b0\2\u027a\1\u027b\1\u027c\51\u01b0"+ + "\1\u01ba\1\u01b0\1\u01cb\5\u01b0\1\320\2\u01b0\2\u027a\1\u027b"+ + "\1\u027c\52\u01b0\1\u01bb\1\u01cb\5\u01b0\1\320\2\323\2\u0228"+ + "\1\u0229\1\u022a\52\323\1\u0279\1\u0180\5\323\1\0\2\u01b0"+ + "\2\u027a\1\u027b\1\u027c\53\u01b0\1\u01cb\1\u01b0\1\u01bd\3\u01b0"+ + "\1\320\2\373\1\u027a\1\u027d\1\u027b\1\u027e\1\373\1\u01be"+ + "\51\373\1\u01af\5\373\1\317\2\373\1\u027a\1\u027d\1\u027b"+ + "\1\u027e\2\373\1\u01bf\50\373\1\u01af\5\373\1\317\2\373"+ + "\1\u027a\1\u027d\1\u027b\1\u027e\3\373\1\u01c0\47\373\1\u01af"+ + "\5\373\1\317\2\373\1\u027a\1\u027d\1\u027b\1\u027e\5\373"+ + "\1\u01c1\45\373\1\u01af\5\373\1\317\2\373\1\u027a\1\u027d"+ + "\1\u027b\1\u027e\6\373\1\u01c2\44\373\1\u01af\5\373\1\317"+ + "\2\373\1\u027a\1\u027d\1\u027b\1\u027e\7\373\1\u01c3\43\373"+ + "\1\u01af\5\373\1\317\2\373\1\u027a\1\u027d\1\u027b\1\u027e"+ + "\10\373\1\u01c4\42\373\1\u01af\5\373\1\317\2\373\1\u027a"+ + "\1\u027d\1\u027b\1\u027e\13\373\1\u01c5\37\373\1\u01af\5\373"+ + "\1\317\2\373\1\u027a\1\u027d\1\u027b\1\u027e\14\373\1\u01c6"+ + "\36\373\1\u01af\5\373\1\317\2\373\1\u027a\1\u027d\1\u027b"+ + "\1\u027e\51\373\1\u01c7\1\373\1\u01af\5\373\1\317\2\373"+ + "\1\u027a\1\u027d\1\u027b\1\u027e\52\373\1\u01c8\1\u01af\5\373"+ + "\1\317\2\373\1\u027a\1\u027d\1\u027b\1\u027e\53\373\1\u01af"+ + "\1\373\1\u01ca\3\373\1\317\2\u027f\1\324\1\u0280\1\325"+ + "\1\u01cc\53\u027f\1\323\5\u027f\1\u0225\2\u027f\1\324\1\u0280"+ + "\1\325\1\u01cc\1\u027f\1\u0281\1\u0282\1\u0283\1\u027f\1\u0284"+ + "\1\u0285\1\u0286\1\u0287\2\u027f\1\u0288\1\u0289\34\u027f\1\u028a"+ + "\1\u028b\1\u0180\1\u027f\1\u028c\3\u027f\1\u0225\2\323\2\345"+ + "\1\346\1\347\53\323\1\u01ce\5\323\1\0\2\u01cf\1\324"+ + "\1\u01d0\1\325\1\u0101\5\u01cf\1\323\46\u01cf\1\u028d\4\u01cf"+ + "\3\u0164\1\0\1\u0164\1\0\1\322\1\u0164\1\u01d1\1\u01d2"+ + "\1\u01d3\1\u0164\1\332\1\u01d4\1\u01d5\1\u01d6\2\u0164\1\u01d7"+ + "\1\u01d8\34\u0164\1\u01d9\1\u01da\1\u01db\1\u013a\1\u01dc\6\u0164"+ + "\1\u0165\1\u028e\1\u0166\1\u028f\1\u0164\1\u01d1\3\u0164\1\0"+ + "\46\u0164\1\u013a\7\u0164\1\u0165\1\u028e\1\u0166\1\u028f\2\u0164"+ + "\1\u01d2\2\u0164\1\0\46\u0164\1\u013a\7\u0164\1\u0165\1\u028e"+ + "\1\u0166\1\u028f\3\u0164\1\u01d3\1\u0164\1\0\46\u0164\1\u013a"+ + "\7\u0164\1\u0165\1\u028e\1\u0166\1\u028f\5\u0164\1\0\1\u01d4"+ + "\45\u0164\1\u013a\7\u0164\1\u0165\1\u028e\1\u0166\1\u028f\5\u0164"+ + "\1\0\1\u0164\1\u01d5\44\u0164\1\u013a\7\u0164\1\u0165\1\u028e"+ + "\1\u0166\1\u028f\5\u0164\1\0\2\u0164\1\u01d6\43\u0164\1\u013a"+ + "\7\u0164\1\u0165\1\u028e\1\u0166\1\u028f\5\u0164\1\0\5\u0164"+ + "\1\u01d7\40\u0164\1\u013a\7\u0164\1\u0165\1\u028e\1\u0166\1\u028f"+ + "\5\u0164\1\0\6\u0164\1\u01d8\37\u0164\1\u013a\7\u0164\1\u0165"+ + "\1\u028e\1\u0166\1\u028f\5\u0164\1\0\43\u0164\1\u01d9\2\u0164"+ + "\1\u013a\7\u0164\1\u0165\1\u028e\1\u0166\1\u028f\5\u0164\1\0"+ + "\44\u0164\1\u01da\1\u0164\1\u013a\7\u0164\1\u0165\1\u028e\1\u0166"+ + "\1\u028f\5\u0164\1\0\45\u0164\1\u01db\1\u013a\7\u0164\1\u0165"+ + "\1\u028e\1\u0166\1\u028f\5\u0164\1\0\46\u0164\1\u013a\1\u01dc"+ + "\4\u0164\2\0\1\u0290\2\0\1\u0290\53\0\1\u0290\6\0"+ + "\2\u0104\1\u0290\1\u0104\1\0\1\u0291\13\u0104\1\0\33\u0104"+ + "\1\u0105\3\u0104\1\u0292\6\u0104\15\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\15\35\1\u0293\12\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\15\35\1\u0108\12\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\10\35\1\u0294\17\35\1\34\3\0\1\34\1\0"+ + "\1\34\1\0\1\u0295\20\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\23\35\1\u0296\4\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\22\35\1\u0127\5\35\1\34\3\0\1\34\1\0"+ + "\1\34\2\0\1\u0132\50\0\1\u0132\16\0\1\u0132\17\0"+ + "\1\u0297\1\34\1\0\1\35\1\173\2\0\30\35\1\34"+ + "\3\0\1\34\1\0\1\34\22\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\16\35\1\u0298\11\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\1\u0299\3\35\1\u029a\23\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\2\0\1\172\1\173"+ + "\2\0\23\172\1\u029b\4\172\63\0\1\u029c\67\0\1\u029d"+ + "\35\0\1\172\1\34\1\0\1\35\1\173\2\0\4\35"+ + "\1\u01ef\23\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\24\35\1\u029e"+ + "\3\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\21\35\1\u029f\6\35"+ + "\1\34\3\0\1\34\1\0\1\34\52\0\1\u02a0\37\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\21\35\1\u0127"+ + "\6\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\21\35\1\u0112\6\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\4\35\1\u01ef\10\35\1\u02a1"+ + "\12\35\1\34\3\0\1\34\1\0\1\34\52\0\1\u0206"+ + "\37\0\1\172\1\34\1\0\1\35\1\173\2\0\13\35"+ + "\1\u02a2\14\35\1\34\3\0\1\34\1\0\1\34\44\0"+ + "\1\u02a3\45\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\21\35\1\u02a4\6\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\24\35"+ + "\1\u02a5\3\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\4\35\1\u02a6"+ + "\23\35\1\34\3\0\1\34\1\0\1\34\35\0\1\u02a7"+ + "\54\0\1\u02a8\1\34\1\0\1\35\1\173\2\0\30\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\2\0"+ + "\1\172\1\u02a9\2\0\30\172\31\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\1\u02aa\27\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\21\35\1\u02ab\6\35\1\34\3\0\1\34\1\0"+ + "\1\34\52\0\1\u02ac\37\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\10\35\1\u02ad\4\35\1\u02ae\12\35\1\34"+ + "\3\0\1\34\1\0\1\34\1\0\1\u02af\20\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\1\35\1\u02b0\26\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\2\35\1\u02b1\25\35\1\34"+ + "\3\0\1\34\1\0\1\34\32\0\1\u02b2\57\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\4\35\1\u02b3\23\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\2\35\1\u0127\25\35\1\34"+ + "\3\0\1\34\1\0\1\34\33\0\1\u0132\62\0\1\u02b4"+ + "\76\0\1\u0132\54\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\16\35\1\u02a5\11\35\1\34\3\0\1\34\1\0"+ + "\1\34\47\0\1\u02b5\42\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\10\35\1\u02b6\17\35\1\34\3\0\1\34"+ + "\1\0\1\34\1\0\1\u02b7\50\0\1\u02b8\72\0\1\u02b5"+ + "\53\0\1\u02af\4\0\1\u02b9\22\0\1\u02af\31\0\1\u02ba"+ + "\41\0\2\u0210\1\0\1\u0210\1\0\1\u0141\13\u0210\1\u02bb"+ + "\33\u0210\1\u0211\14\u0210\1\0\1\u0210\1\0\1\u0141\13\u0210"+ + "\1\u02bc\33\u0210\1\u0211\12\u0210\2\0\1\u02bd\2\0\1\u02bd"+ + "\53\0\1\u02bd\6\0\2\u0143\1\u02bd\1\u0143\1\0\1\u02be"+ + "\13\u0143\1\0\33\u0143\1\u0144\3\u0143\1\u02bf\6\u0143\2\0"+ + "\1\u02c0\2\0\1\u02c0\53\0\1\u02c0\6\0\2\u0145\1\u02c0"+ + "\1\u0145\1\0\1\u02c1\13\u0145\1\0\33\u0145\1\u0146\3\u0145"+ + "\1\u02c2\6\u0145\2\0\2\u02c3\1\u02c4\2\0\1\u0149\1\u014a"+ + "\1\u014b\1\0\1\u014c\1\u014d\1\u014e\1\u014f\2\0\1\u0150"+ + "\1\u0151\34\0\1\u0152\1\u0153\1\u0154\1\0\1\u0155\6\0"+ + "\1\u0217\1\u02c3\1\u02c4\2\0\1\u0149\1\u014a\1\u014b\1\0"+ + "\1\u014c\1\u014d\1\u014e\1\u014f\2\0\1\u0150\1\u0151\34\0"+ + "\1\u0152\1\u0153\1\u0154\1\0\1\u0155\6\0\3\u0226\65\0"+ + "\3\u0219\1\u021a\62\0\2\u021d\1\0\1\u021d\1\0\1\u0158"+ + "\5\u021d\1\u02c5\54\u021d\61\0\1\u02bd\6\0\2\u015c\1\0"+ + "\1\u015c\1\0\1\314\13\u015c\1\0\33\u015c\1\u015d\3\u015c"+ + "\1\u02c6\6\u015c\2\0\1\u0220\101\0\2\312\2\0\1\312"+ + "\1\u02c7\2\0\22\312\1\u02c8\5\312\4\0\1\313\4\0"+ + "\1\u02c9\4\0\1\u015a\2\0\3\u015a\1\0\2\u015a\2\0"+ + "\3\u015a\1\0\1\u015a\32\0\3\u015a\1\0\1\u02ca\7\0"+ + "\2\u0225\1\0\1\u0225\1\0\1\u0163\53\u0225\1\u02cb\6\u0225"+ + "\2\0\3\u0226\1\u0227\64\0\1\u0228\4\0\1\327\1\330"+ + "\1\331\1\0\1\332\1\333\1\334\1\335\2\0\1\336"+ + "\1\337\34\0\1\340\1\341\1\342\1\0\1\343\4\0"+ + "\2\323\2\u0228\1\u0229\1\u022a\61\323\1\0\2\u0157\1\u0165"+ + "\1\u02cc\1\u0166\1\u02cd\1\u0157\1\u022d\3\u0157\1\u021c\56\u0157"+ + "\1\u0165\1\u02cc\1\u0166\1\u02cd\2\u0157\1\u022e\2\u0157\1\u021c"+ + "\56\u0157\1\u0165\1\u02cc\1\u0166\1\u02cd\3\u0157\1\u022f\1\u0157"+ + "\1\u021c\56\u0157\1\u0165\1\u02cc\1\u0166\1\u02cd\5\u0157\1\u021c"+ + "\1\u0231\55\u0157\1\u0165\1\u02cc\1\u0166\1\u02cd\5\u0157\1\u021c"+ + "\1\u0157\1\u0232\54\u0157\1\u0165\1\u02cc\1\u0166\1\u02cd\5\u0157"+ + "\1\u021c\2\u0157\1\u0233\53\u0157\1\u0165\1\u02cc\1\u0166\1\u02cd"+ + "\5\u0157\1\u021c\5\u0157\1\u0234\50\u0157\1\u0165\1\u02cc\1\u0166"+ + "\1\u02cd\5\u0157\1\u021c\6\u0157\1\u0235\47\u0157\1\u0165\1\u02cc"+ + "\1\u0166\1\u02cd\5\u0157\1\u021c\43\u0157\1\u0236\12\u0157\1\u0165"+ + "\1\u02cc\1\u0166\1\u02cd\5\u0157\1\u021c\44\u0157\1\u0237\11\u0157"+ + "\1\u0165\1\u02cc\1\u0166\1\u02cd\5\u0157\1\u021c\45\u0157\1\u0238"+ + "\10\u0157\1\u0165\1\u02cc\1\u0166\1\u02cd\5\u0157\1\u021c\47\u0157"+ + "\1\u0239\4\u0157\2\u0183\1\u0228\1\u023a\1\u0229\1\u023b\5\u0183"+ + "\1\323\53\u0183\1\u0157\2\u023c\1\324\1\u023d\1\325\1\u0191"+ + "\5\u023c\1\u02ce\53\u023c\3\u021d\1\0\1\u021d\1\0\1\u0158"+ + "\1\u021d\1\u02cf\1\u02d0\1\u02d1\1\u021d\1\u02d2\1\u02d3\1\u02d4"+ + "\1\u02d5\2\u021d\1\u02d6\1\u02d7\34\u021d\1\u02d8\1\u02d9\1\u02da"+ + "\1\u021d\1\u02db\4\u021d\2\u023c\1\u0228\1\u02dc\1\u0229\1\u02dd"+ + "\1\u023c\1\u023e\3\u023c\1\u02ce\53\u023c\1\u021d\2\u023c\1\u0228"+ + "\1\u02dc\1\u0229\1\u02dd\2\u023c\1\u023f\2\u023c\1\u02ce\53\u023c"+ + "\1\u021d\2\u023c\1\u0228\1\u02dc\1\u0229\1\u02dd\3\u023c\1\u0240"+ + "\1\u023c\1\u02ce\53\u023c\1\u021d\2\u023c\1\u0228\1\u02dc\1\u0229"+ + "\1\u02dd\5\u023c\1\u02ce\1\u0241\52\u023c\1\u021d\2\u023c\1\u0228"+ + "\1\u02dc\1\u0229\1\u02dd\5\u023c\1\u02ce\1\u023c\1\u0242\51\u023c"+ + "\1\u021d\2\u023c\1\u0228\1\u02dc\1\u0229\1\u02dd\5\u023c\1\u02ce"+ + "\2\u023c\1\u0243\50\u023c\1\u021d\2\u023c\1\u0228\1\u02dc\1\u0229"+ + "\1\u02dd\5\u023c\1\u02ce\5\u023c\1\u0244\45\u023c\1\u021d\2\u023c"+ + "\1\u0228\1\u02dc\1\u0229\1\u02dd\5\u023c\1\u02ce\6\u023c\1\u0245"+ + "\44\u023c\1\u021d\2\u023c\1\u0228\1\u02dc\1\u0229\1\u02dd\5\u023c"+ + "\1\u02ce\43\u023c\1\u0246\7\u023c\1\u021d\2\u023c\1\u0228\1\u02dc"+ + "\1\u0229\1\u02dd\5\u023c\1\u02ce\44\u023c\1\u0247\6\u023c\1\u021d"+ + "\2\u023c\1\u0228\1\u02dc\1\u0229\1\u02dd\5\u023c\1\u02ce\45\u023c"+ + "\1\u0248\5\u023c\1\u021d\2\u023c\1\u0228\1\u02dc\1\u0229\1\u02dd"+ + "\5\u023c\1\u02ce\47\u023c\1\u0249\3\u023c\1\u021d\2\323\2\324"+ + "\1\325\54\323\1\u02de\5\323\1\0\2\u015c\1\u0165\1\u02df"+ + "\1\u0166\1\u02e0\1\u015c\1\u024b\11\u015c\1\u021e\33\u015c\1\u015d"+ + "\14\u015c\1\u0165\1\u02df\1\u0166\1\u02e0\2\u015c\1\u024c\10\u015c"+ + "\1\u021e\33\u015c\1\u015d\14\u015c\1\u0165\1\u02df\1\u0166\1\u02e0"+ + "\3\u015c\1\u024d\7\u015c\1\u021e\33\u015c\1\u015d\14\u015c\1\u0165"+ + "\1\u02df\1\u0166\1\u02e0\5\u015c\1\u024e\5\u015c\1\u021e\33\u015c"+ + "\1\u015d\14\u015c\1\u0165\1\u02df\1\u0166\1\u02e0\6\u015c\1\u024f"+ + "\4\u015c\1\u021e\33\u015c\1\u015d\14\u015c\1\u0165\1\u02df\1\u0166"+ + "\1\u02e0\7\u015c\1\u0250\3\u015c\1\u021e\33\u015c\1\u015d\14\u015c"+ + "\1\u0165\1\u02df\1\u0166\1\u02e0\10\u015c\1\u0251\2\u015c\1\u021e"+ + "\33\u015c\1\u015d\12\u015c\2\0\2\u0165\1\u0166\1\u0167\13\0"+ + "\1\336\37\0\1\u02bd\6\0\2\u015c\1\u0165\1\u02df\1\u0166"+ + "\1\u02e0\13\u015c\1\u021e\1\u0253\32\u015c\1\u015d\14\u015c\1\u0165"+ + "\1\u02df\1\u0166\1\u02e0\13\u015c\1\u021e\33\u015c\1\u015d\1\u015c"+ + "\1\u0254\12\u015c\1\u0165\1\u02df\1\u0166\1\u02e0\13\u015c\1\u021e"+ + "\33\u015c\1\u015d\2\u015c\1\u0255\11\u015c\1\u0165\1\u02df\1\u0166"+ + "\1\u02e0\13\u015c\1\u021e\33\u015c\1\u015d\3\u015c\1\u0256\10\u015c"+ + "\1\u0165\1\u02df\1\u0166\1\u02e0\13\u015c\1\u021e\33\u015c\1\u015d"+ + "\5\u015c\1\u0257\4\u015c\2\u0199\1\324\1\u019a\1\325\1\364"+ + "\13\u0199\1\323\33\u0199\1\u019b\3\u0199\1\u02e1\5\u0199\1\u015c"+ + "\2\u0199\1\u0228\1\u0259\1\u0229\1\u025a\13\u0199\1\323\33\u0199"+ + "\1\u019b\11\u0199\1\u015c\2\0\1\u025b\4\0\1\327\1\330"+ + "\1\331\1\0\1\332\1\333\1\334\1\335\2\0\1\336"+ + "\1\337\34\0\1\340\1\341\1\342\1\0\1\343\4\0"+ + "\2\323\2\324\1\325\7\323\2\362\2\323\1\362\1\u02e2"+ + "\2\323\22\362\1\u02e3\5\362\4\323\1\363\4\323\1\u02e4"+ + "\1\323\1\0\2\320\2\u02e5\1\u02e6\1\u02e7\1\320\1\u025f"+ + "\51\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\2\320\1\u0260"+ + "\50\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\3\320\1\u0261"+ + "\47\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\5\320\1\u0262"+ + "\45\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\6\320\1\u0263"+ + "\44\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\7\320\1\u0264"+ + "\43\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\10\320\1\u0265"+ + "\42\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\13\320\1\u0266"+ + "\37\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\14\320\1\u0267"+ + "\36\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\51\320\1\u0268"+ + "\1\320\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\52\320\1\u0269"+ + "\1\u0162\6\320\2\0\2\u0165\1\u0166\1\u0167\52\0\1\u0224"+ + "\1\342\6\0\2\320\2\u02e5\1\u02e6\1\u02e7\53\320\1\u0162"+ + "\1\320\1\u026b\4\320\2\317\1\u02e5\1\u02e8\1\u02e6\1\u02e9"+ + "\1\317\1\u026c\51\317\1\u0161\10\317\1\u02e5\1\u02e8\1\u02e6"+ + "\1\u02e9\2\317\1\u026d\50\317\1\u0161\10\317\1\u02e5\1\u02e8"+ + "\1\u02e6\1\u02e9\3\317\1\u026e\47\317\1\u0161\10\317\1\u02e5"+ + "\1\u02e8\1\u02e6\1\u02e9\5\317\1\u026f\45\317\1\u0161\10\317"+ + "\1\u02e5\1\u02e8\1\u02e6\1\u02e9\6\317\1\u0270\44\317\1\u0161"+ + "\10\317\1\u02e5\1\u02e8\1\u02e6\1\u02e9\7\317\1\u0271\43\317"+ + "\1\u0161\10\317\1\u02e5\1\u02e8\1\u02e6\1\u02e9\10\317\1\u0272"+ + "\42\317\1\u0161\10\317\1\u02e5\1\u02e8\1\u02e6\1\u02e9\13\317"+ + "\1\u0273\37\317\1\u0161\10\317\1\u02e5\1\u02e8\1\u02e6\1\u02e9"+ + "\14\317\1\u0274\36\317\1\u0161\10\317\1\u02e5\1\u02e8\1\u02e6"+ + "\1\u02e9\51\317\1\u0275\1\317\1\u0161\10\317\1\u02e5\1\u02e8"+ + "\1\u02e6\1\u02e9\52\317\1\u0276\1\u0161\10\317\1\u02e5\1\u02e8"+ + "\1\u02e6\1\u02e9\53\317\1\u0161\1\317\1\u0278\4\317\2\323"+ + "\1\u0196\1\324\1\325\3\u0197\1\323\2\u0197\2\323\3\u0197"+ + "\1\323\1\u0197\32\323\3\u0197\1\323\1\u02ea\6\323\1\0"+ + "\2\320\1\u027a\4\320\1\u025f\1\u0260\1\u0261\1\320\1\u0262"+ + "\1\u0263\1\u0264\1\u0265\2\320\1\u0266\1\u0267\34\320\1\u0268"+ + "\1\u0269\1\u026a\1\320\1\u026b\4\320\2\u01b0\2\u027a\1\u027b"+ + "\1\u027c\53\u01b0\1\u01cb\5\u01b0\1\320\2\373\1\u027a\1\u027d"+ + "\1\u027b\1\u027e\53\373\1\u01af\5\373\1\317\2\u027f\1\324"+ + "\1\u0280\1\325\1\u01cc\53\u027f\1\u02eb\5\u027f\3\u0225\1\0"+ + "\1\u0225\1\0\1\u0163\1\u0225\1\u02ec\1\u02ed\1\u02ee\1\u0225"+ + "\1\u02ef\1\u02f0\1\u02f1\1\u02f2\2\u0225\1\u02f3\1\u02f4\34\u0225"+ + "\1\u02f5\1\u02f6\1\u02f7\1\u0225\1\u02f8\4\u0225\2\u027f\1\u0228"+ + "\1\u02f9\1\u0229\1\u02fa\1\u027f\1\u0281\51\u027f\1\u02eb\5\u027f"+ + "\1\u0225\2\u027f\1\u0228\1\u02f9\1\u0229\1\u02fa\2\u027f\1\u0282"+ + "\50\u027f\1\u02eb\5\u027f\1\u0225\2\u027f\1\u0228\1\u02f9\1\u0229"+ + "\1\u02fa\3\u027f\1\u0283\47\u027f\1\u02eb\5\u027f\1\u0225\2\u027f"+ + "\1\u0228\1\u02f9\1\u0229\1\u02fa\5\u027f\1\u0284\45\u027f\1\u02eb"+ + "\5\u027f\1\u0225\2\u027f\1\u0228\1\u02f9\1\u0229\1\u02fa\6\u027f"+ + "\1\u0285\44\u027f\1\u02eb\5\u027f\1\u0225\2\u027f\1\u0228\1\u02f9"+ + "\1\u0229\1\u02fa\7\u027f\1\u0286\43\u027f\1\u02eb\5\u027f\1\u0225"+ + "\2\u027f\1\u0228\1\u02f9\1\u0229\1\u02fa\10\u027f\1\u0287\42\u027f"+ + "\1\u02eb\5\u027f\1\u0225\2\u027f\1\u0228\1\u02f9\1\u0229\1\u02fa"+ + "\13\u027f\1\u0288\37\u027f\1\u02eb\5\u027f\1\u0225\2\u027f\1\u0228"+ + "\1\u02f9\1\u0229\1\u02fa\14\u027f\1\u0289\36\u027f\1\u02eb\5\u027f"+ + "\1\u0225\2\u027f\1\u0228\1\u02f9\1\u0229\1\u02fa\51\u027f\1\u028a"+ + "\1\u027f\1\u02eb\5\u027f\1\u0225\2\u027f\1\u0228\1\u02f9\1\u0229"+ + "\1\u02fa\52\u027f\1\u028b\1\u02eb\5\u027f\1\u0225\2\u027f\1\u0228"+ + "\1\u02f9\1\u0229\1\u02fa\53\u027f\1\u02eb\1\u027f\1\u028c\3\u027f"+ + "\1\u0225\2\u0164\1\u0165\1\u028e\1\u0166\1\u028f\5\u0164\1\0"+ + "\46\u0164\1\0\5\u0164\15\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\10\35\1\u0108\17\35\1\34\3\0\1\34"+ + "\1\0\1\34\1\0\1\u02fb\20\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\16\35\1\u02fc\11\35\1\34\3\0"+ + "\1\34\1\0\1\34\47\0\1\u02fd\42\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\10\35\1\u02fe\17\35\1\34"+ + "\3\0\1\34\1\0\1\34\1\0\1\u02ff\20\0\1\172"+ + "\2\0\1\172\1\173\2\0\1\172\1\u0300\26\172\31\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\24\35\1\u0301"+ + "\3\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\10\35\1\u0302\17\35"+ + "\1\34\3\0\1\34\1\0\1\34\1\0\1\u0303\20\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\15\35\1\u0304"+ + "\12\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\2\0\1\172\1\173\2\0\1\u0305\27\172\50\0\1\u02ff"+ + "\27\0\1\u02ff\27\0\1\u0306\60\0\1\172\1\34\1\0"+ + "\1\35\1\173\2\0\13\35\1\u0307\14\35\1\34\3\0"+ + "\1\34\1\0\1\34\22\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\1\u0308\27\35\1\34\3\0\1\34\1\0"+ + "\1\34\31\0\1\u0309\60\0\1\172\1\34\1\0\1\35"+ + "\1\173\2\0\16\35\1\u030a\11\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\10\35\1\u030b\17\35\1\34\3\0\1\34\1\0"+ + "\1\34\1\0\1\u030c\37\0\1\u030c\27\0\1\u030c\20\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\23\35\1\u030d"+ + "\4\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\3\35\1\u0112\24\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\3\35\1\u030e\24\35\1\34"+ + "\3\0\1\34\1\0\1\34\34\0\1\u030f\55\0\1\172"+ + "\2\0\1\172\1\173\2\0\20\172\1\u0310\7\172\31\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\2\35\1\u0112"+ + "\25\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\24\35\1\u0311\3\35"+ + "\1\34\3\0\1\34\1\0\1\34\55\0\1\u0312\34\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\16\35\1\u0313"+ + "\11\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\24\35\1\u0314\3\35"+ + "\1\34\3\0\1\34\1\0\1\34\47\0\1\u0315\42\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\1\u01ef\27\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\4\35\1\u0316\23\35\1\34"+ + "\3\0\1\34\1\0\1\34\31\0\1\u0317\60\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\23\35\1\u0318\4\35"+ + "\1\34\3\0\1\34\1\0\1\34\34\0\1\u0206\55\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\15\35\1\u0319"+ + "\12\35\1\34\3\0\1\34\1\0\1\34\46\0\1\u031a"+ + "\75\0\1\u031b\70\0\1\u031c\47\0\1\u031d\41\0\1\u031e"+ + "\2\0\1\u031e\53\0\1\u031e\6\0\2\u0210\1\u031e\1\u0210"+ + "\1\0\1\u031f\13\u0210\1\0\33\u0210\1\u0211\3\u0210\1\u0320"+ + "\6\u0210\7\0\1\u0149\1\u014a\1\u014b\1\0\1\u014c\1\u014d"+ + "\1\u014e\1\u014f\2\0\1\u0150\1\u0151\34\0\1\u0152\1\u0153"+ + "\1\u0154\1\0\1\u0155\6\0\1\u02c3\4\0\1\u0149\1\u014a"+ + "\1\u014b\1\0\1\u014c\1\u014d\1\u014e\1\u014f\2\0\1\u0150"+ + "\1\u0151\34\0\1\u0152\1\u0153\1\u0154\1\0\1\u0155\17\0"+ + "\1\u0321\70\0\2\312\1\0\1\u0322\2\312\2\0\30\312"+ + "\4\0\1\313\23\0\2\312\2\0\1\312\1\u02c7\2\0"+ + "\30\312\4\0\1\313\30\0\1\u0323\50\0\1\u015a\2\0"+ + "\3\u015a\1\0\2\u015a\2\0\3\u015a\1\0\1\u015a\32\0"+ + "\3\u015a\72\0\1\u0324\6\0\2\u0157\1\u0165\1\u02cc\1\u0166"+ + "\1\u02cd\5\u0157\1\0\54\u0157\2\323\2\324\1\325\6\323"+ + "\1\u0325\53\323\1\0\2\u021d\1\u0165\1\u0326\1\u0166\1\u0327"+ + "\1\u021d\1\u02cf\3\u021d\1\u02c5\56\u021d\1\u0165\1\u0326\1\u0166"+ + "\1\u0327\2\u021d\1\u02d0\2\u021d\1\u02c5\56\u021d\1\u0165\1\u0326"+ + "\1\u0166\1\u0327\3\u021d\1\u02d1\1\u021d\1\u02c5\54\u021d\2\0"+ + "\2\u0165\1\u0166\1\u0167\5\0\1\u0328\54\0\2\u021d\1\u0165"+ + "\1\u0326\1\u0166\1\u0327\5\u021d\1\u02c5\1\u02d3\55\u021d\1\u0165"+ + "\1\u0326\1\u0166\1\u0327\5\u021d\1\u02c5\1\u021d\1\u02d4\54\u021d"+ + "\1\u0165\1\u0326\1\u0166\1\u0327\5\u021d\1\u02c5\2\u021d\1\u02d5"+ + "\53\u021d\1\u0165\1\u0326\1\u0166\1\u0327\5\u021d\1\u02c5\5\u021d"+ + "\1\u02d6\50\u021d\1\u0165\1\u0326\1\u0166\1\u0327\5\u021d\1\u02c5"+ + "\6\u021d\1\u02d7\47\u021d\1\u0165\1\u0326\1\u0166\1\u0327\5\u021d"+ + "\1\u02c5\43\u021d\1\u02d8\12\u021d\1\u0165\1\u0326\1\u0166\1\u0327"+ + "\5\u021d\1\u02c5\44\u021d\1\u02d9\11\u021d\1\u0165\1\u0326\1\u0166"+ + "\1\u0327\5\u021d\1\u02c5\45\u021d\1\u02da\10\u021d\1\u0165\1\u0326"+ + "\1\u0166\1\u0327\5\u021d\1\u02c5\47\u021d\1\u02db\4\u021d\2\u023c"+ + "\1\u0228\1\u02dc\1\u0229\1\u02dd\5\u023c\1\323\53\u023c\1\u021d"+ + "\2\u015c\1\u0165\1\u02df\1\u0166\1\u02e0\13\u015c\1\0\33\u015c"+ + "\1\u015d\12\u015c\2\323\2\324\1\325\7\323\2\362\1\323"+ + "\1\u0329\2\362\2\323\30\362\4\323\1\363\6\323\1\0"+ + "\2\323\2\324\1\325\7\323\2\362\2\323\1\362\1\u02e2"+ + "\2\323\30\362\4\323\1\363\6\323\1\0\2\323\2\324"+ + "\1\325\14\323\1\u032a\45\323\1\0\2\320\1\u02e5\56\320"+ + "\1\u0162\10\320\2\u02e5\1\u02e6\1\u02e7\53\320\1\u0162\6\320"+ + "\2\317\1\u02e5\1\u02e8\1\u02e6\1\u02e9\53\317\1\u0161\6\317"+ + "\2\323\1\u0196\1\324\1\325\3\u0197\1\323\2\u0197\2\323"+ + "\3\u0197\1\323\1\u0197\32\323\3\u0197\10\323\1\0\2\323"+ + "\2\324\1\325\54\323\1\u032b\5\323\1\0\2\u0225\1\u0165"+ + "\1\u032c\1\u0166\1\u032d\1\u0225\1\u02ec\51\u0225\1\u02cb\10\u0225"+ + "\1\u0165\1\u032c\1\u0166\1\u032d\2\u0225\1\u02ed\50\u0225\1\u02cb"+ + "\10\u0225\1\u0165\1\u032c\1\u0166\1\u032d\3\u0225\1\u02ee\47\u0225"+ + "\1\u02cb\10\u0225\1\u0165\1\u032c\1\u0166\1\u032d\5\u0225\1\u02ef"+ + "\45\u0225\1\u02cb\10\u0225\1\u0165\1\u032c\1\u0166\1\u032d\6\u0225"+ + "\1\u02f0\44\u0225\1\u02cb\10\u0225\1\u0165\1\u032c\1\u0166\1\u032d"+ + "\7\u0225\1\u02f1\43\u0225\1\u02cb\10\u0225\1\u0165\1\u032c\1\u0166"+ + "\1\u032d\10\u0225\1\u02f2\42\u0225\1\u02cb\10\u0225\1\u0165\1\u032c"+ + "\1\u0166\1\u032d\13\u0225\1\u02f3\37\u0225\1\u02cb\10\u0225\1\u0165"+ + "\1\u032c\1\u0166\1\u032d\14\u0225\1\u02f4\36\u0225\1\u02cb\10\u0225"+ + "\1\u0165\1\u032c\1\u0166\1\u032d\51\u0225\1\u02f5\1\u0225\1\u02cb"+ + "\10\u0225\1\u0165\1\u032c\1\u0166\1\u032d\52\u0225\1\u02f6\1\u02cb"+ + "\6\u0225\2\0\2\u0165\1\u0166\1\u0167\53\0\1\u032e\6\0"+ + "\2\u0225\1\u0165\1\u032c\1\u0166\1\u032d\53\u0225\1\u02cb\1\u0225"+ + "\1\u02f8\4\u0225\2\u027f\1\u0228\1\u02f9\1\u0229\1\u02fa\53\u027f"+ + "\1\323\5\u027f\1\u0225\47\0\1\u032f\35\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\15\35\1\u0127\12\35\1\34"+ + "\3\0\1\34\1\0\1\34\46\0\1\u0132\43\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\16\35\1\u0330\11\35"+ + "\1\34\3\0\1\34\1\0\1\34\47\0\1\u0331\42\0"+ + "\1\172\2\0\1\172\1\173\2\0\13\172\1\u0332\14\172"+ + "\31\0\1\172\1\34\1\0\1\35\1\173\2\0\15\35"+ + "\1\u0333\12\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\15\35\1\u01eb"+ + "\12\35\1\34\3\0\1\34\1\0\1\34\46\0\1\u0334"+ + "\43\0\1\172\1\34\1\0\1\35\1\173\2\0\23\35"+ + "\1\u01e3\4\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\2\0\1\172\1\173\2\0\1\172\1\u0335\26\172"+ + "\41\0\1\u0133\57\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\23\35\1\u0336\4\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\17\35\1\u0337\10\35\1\34\3\0\1\34\1\0\1\34"+ + "\50\0\1\u0338\41\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\23\35\1\u0339\4\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\6\35\1\u033a\21\35\1\34\3\0\1\34\1\0\1\34"+ + "\37\0\1\u033b\52\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\1\u033c\27\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\u033d\1\34\1\0\1\35\1\173\2\0\30\35"+ + "\1\34\3\0\1\34\1\0\1\34\22\0\1\u033e\67\0"+ + "\1\172\2\0\1\172\1\173\2\0\24\172\1\u033f\3\172"+ + "\31\0\1\172\1\34\1\0\1\35\1\173\2\0\2\35"+ + "\1\u0340\25\35\1\34\3\0\1\34\1\0\1\34\33\0"+ + "\1\u0341\56\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\15\35\1\u0342\12\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\172\1\34\1\0\1\35\1\173\2\0\14\35"+ + "\1\u0127\13\35\1\34\3\0\1\34\1\0\1\34\46\0"+ + "\1\u0343\43\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\2\35\1\u0344\25\35\1\34\3\0\1\34\1\0\1\34"+ + "\52\0\1\u0132\37\0\1\u0345\1\34\1\0\1\35\1\173"+ + "\2\0\30\35\1\34\3\0\1\34\1\0\1\34\22\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\6\35\1\u0127"+ + "\21\35\1\34\3\0\1\34\1\0\1\34\37\0\1\u0132"+ + "\61\0\1\u0346\103\0\1\u0132\55\0\1\u0347\60\0\1\u0348"+ + "\67\0\1\u0322\50\0\2\u021d\1\u0165\1\u0326\1\u0166\1\u0327"+ + "\5\u021d\1\0\54\u021d\2\323\2\324\1\325\12\323\1\u0349"+ + "\47\323\1\0\2\323\2\324\1\325\12\323\1\u0329\47\323"+ + "\1\0\2\u0225\1\u0165\1\u032c\1\u0166\1\u032d\53\u0225\1\0"+ + "\6\u0225\34\0\1\u0295\27\0\1\u0295\20\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\15\35\1\u01e3\12\35\1\34"+ + "\3\0\1\34\1\0\1\34\46\0\1\u01e4\43\0\1\172"+ + "\2\0\1\172\1\173\2\0\16\172\1\u034a\11\172\31\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\3\35\1\u0127"+ + "\24\35\1\34\3\0\1\34\1\0\1\34\35\0\1\u0317"+ + "\54\0\1\172\2\0\1\172\1\173\2\0\13\172\1\u034b"+ + "\14\172\31\0\1\u034c\1\34\1\0\1\35\1\173\2\0"+ + "\30\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\7\35\1\u0127\20\35"+ + "\1\34\3\0\1\34\1\0\1\34\40\0\1\u0132\51\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\4\35\1\u01e3"+ + "\23\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\7\35\1\u034d\20\35"+ + "\1\34\3\0\1\34\1\0\1\34\40\0\1\u034e\51\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\15\35\1\u011c"+ + "\12\35\1\34\3\0\1\34\1\0\1\34\22\0\1\172"+ + "\2\0\1\172\1\173\2\0\13\172\1\u034f\14\172\53\0"+ + "\1\u0350\45\0\1\172\2\0\1\172\1\173\2\0\16\172"+ + "\1\u0351\11\172\31\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\23\35\1\u0352\4\35\1\34\3\0\1\34\1\0"+ + "\1\34\54\0\1\u0353\35\0\1\u0354\1\34\1\0\1\35"+ + "\1\173\2\0\30\35\1\34\3\0\1\34\1\0\1\34"+ + "\22\0\1\u0355\67\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\16\35\1\u0356\11\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\2\0\1\172\1\173\2\0\15\172"+ + "\1\u0357\12\172\55\0\1\u011e\70\0\1\u0358\25\0\2\u0359"+ + "\1\0\1\u0359\2\0\62\u0359\2\u035a\1\324\1\u035b\1\325"+ + "\1\323\61\u035a\1\u0359\15\0\1\172\2\0\1\172\1\173"+ + "\2\0\2\172\1\u035c\25\172\31\0\1\172\2\0\1\172"+ + "\1\173\2\0\4\172\1\u035d\23\172\31\0\1\172\2\0"+ + "\1\172\1\173\2\0\21\172\1\u035e\6\172\31\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\23\35\1\u035f\4\35"+ + "\1\34\3\0\1\34\1\0\1\34\54\0\1\u0360\35\0"+ + "\1\172\2\0\1\172\1\173\2\0\10\172\1\u0361\17\172"+ + "\10\0\1\u0362\37\0\1\u0362\27\0\1\u0362\20\0\1\172"+ + "\2\0\1\172\1\173\2\0\23\172\1\u034b\4\172\31\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\24\35\1\u0363"+ + "\3\35\1\34\3\0\1\34\1\0\1\34\55\0\1\u0364"+ + "\34\0\1\172\2\0\1\172\1\173\2\0\1\u0365\27\172"+ + "\40\0\1\u0366\60\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\3\35\1\u0367\24\35\1\34\3\0\1\34\1\0"+ + "\1\34\22\0\1\172\2\0\1\172\1\173\2\0\16\172"+ + "\1\u0368\11\172\43\0\1\u0369\40\0\2\u0359\1\0\1\u0359"+ + "\2\0\1\u0359\1\u036a\1\u036b\1\u036c\1\u0359\1\u036d\1\u036e"+ + "\1\u036f\1\u0370\2\u0359\1\u0371\1\u0372\34\u0359\1\u0373\1\u0374"+ + "\1\u0375\1\u0359\1\u0376\4\u0359\15\0\1\172\2\0\1\172"+ + "\1\173\2\0\12\172\1\u0377\15\172\12\0\1\u0378\16\0"+ + "\1\172\2\0\1\172\1\u01fa\2\0\30\172\31\0\1\172"+ + "\2\0\1\172\1\173\2\0\16\172\1\u0335\11\172\31\0"+ + "\1\172\1\34\1\0\1\35\1\u0379\2\0\22\35\1\u0127"+ + "\5\35\1\34\3\0\1\34\1\0\1\34\2\0\1\u0132"+ + "\23\0\1\u037a\24\0\1\u0132\16\0\1\u0132\17\0\1\172"+ + "\2\0\1\172\1\173\2\0\23\172\1\u037b\4\172\63\0"+ + "\1\u037c\35\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\21\35\1\u037d\6\35\1\34\3\0\1\34\1\0\1\34"+ + "\52\0\1\u037e\37\0\1\172\2\0\1\172\1\173\2\0"+ + "\24\172\1\u037f\3\172\64\0\1\u0380\34\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\4\35\1\u0381\23\35\1\34"+ + "\3\0\1\34\1\0\1\34\22\0\1\172\2\0\1\172"+ + "\1\173\2\0\23\172\1\u0382\4\172\44\0\1\u0378\37\0"+ + "\2\u0359\1\u0165\1\u0383\1\u0166\1\u0167\1\u0359\1\u036a\62\u0359"+ + "\1\u0165\1\u0383\1\u0166\1\u0167\2\u0359\1\u036b\61\u0359\1\u0165"+ + "\1\u0383\1\u0166\1\u0167\3\u0359\1\u036c\60\u0359\1\u0165\1\u0383"+ + "\1\u0166\1\u0167\5\u0359\1\u036d\56\u0359\1\u0165\1\u0383\1\u0166"+ + "\1\u0167\6\u0359\1\u036e\55\u0359\1\u0165\1\u0383\1\u0166\1\u0167"+ + "\7\u0359\1\u036f\54\u0359\1\u0165\1\u0383\1\u0166\1\u0167\10\u0359"+ + "\1\u0370\53\u0359\1\u0165\1\u0383\1\u0166\1\u0167\13\u0359\1\u0371"+ + "\50\u0359\1\u0165\1\u0383\1\u0166\1\u0167\14\u0359\1\u0372\47\u0359"+ + "\1\u0165\1\u0383\1\u0166\1\u0167\51\u0359\1\u0373\12\u0359\1\u0165"+ + "\1\u0383\1\u0166\1\u0167\52\u0359\1\u0374\11\u0359\1\u0165\1\u0383"+ + "\1\u0166\1\u0167\53\u0359\1\u0375\10\u0359\1\u0165\1\u0383\1\u0166"+ + "\1\u0167\55\u0359\1\u0376\4\u0359\15\0\1\172\2\0\1\172"+ + "\1\u0379\2\0\30\172\35\0\1\u037a\63\0\1\172\2\0"+ + "\1\172\1\u0384\2\0\30\172\35\0\1\u0385\63\0\1\172"+ + "\2\0\1\172\1\173\2\0\4\172\1\u0386\23\172\44\0"+ + "\1\u0387\54\0\1\172\1\34\1\0\1\35\1\173\2\0"+ + "\4\35\1\u0388\23\35\1\34\3\0\1\34\1\0\1\34"+ + "\35\0\1\u0389\54\0\1\172\2\0\1\172\1\173\2\0"+ + "\23\172\1\u038a\4\172\63\0\1\u038b\35\0\1\172\1\34"+ + "\1\0\1\35\1\u0379\2\0\30\35\1\34\3\0\1\34"+ + "\1\0\1\34\22\0\1\172\2\0\1\172\1\173\2\0"+ + "\4\172\1\u038c\23\172\31\0\1\172\2\0\1\172\1\173"+ + "\2\0\21\172\1\u038d\6\172\61\0\1\u038e\37\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\3\35\1\u038f\24\35"+ + "\1\34\3\0\1\34\1\0\1\34\34\0\1\u0390\55\0"+ + "\1\172\2\0\1\172\1\173\2\0\16\172\1\u0391\11\172"+ + "\56\0\1\u0392\42\0\1\172\2\0\1\172\1\173\2\0"+ + "\22\172\1\u035d\5\172\11\0\1\u0132\17\0\1\172\2\0"+ + "\1\172\1\173\2\0\1\u0393\27\172\40\0\1\u0394\60\0"+ + "\1\172\1\34\1\0\1\35\1\173\2\0\23\35\1\u0395"+ + "\4\35\1\34\3\0\1\34\1\0\1\34\54\0\1\u0396"+ + "\35\0\1\172\2\0\1\172\1\173\2\0\15\172\1\u0397"+ + "\12\172\55\0\1\u0398\43\0\1\172\2\0\1\172\1\173"+ + "\2\0\13\172\1\u035d\14\172\53\0\1\u0132\45\0\1\172"+ + "\1\34\1\0\1\35\1\173\2\0\4\35\1\u0399\23\35"+ + "\1\34\3\0\1\34\1\0\1\34\35\0\1\u039a\54\0"+ + "\1\172\2\0\1\172\1\173\2\0\24\172\1\u039b\3\172"+ + "\64\0\1\u039c\34\0\1\172\1\34\1\0\1\35\1\173"+ + "\2\0\27\35\1\u039d\1\34\3\0\1\34\1\0\1\34"+ + "\60\0\1\u039e\31\0\1\172\2\0\1\172\1\173\2\0"+ + "\14\172\1\u039f\13\172\54\0\1\u03a0\44\0\1\172\1\34"+ + "\1\0\1\35\1\173\2\0\23\35\1\u03a1\4\35\1\34"+ + "\3\0\1\34\1\0\1\34\54\0\1\u03a2\35\0\1\172"+ + "\2\0\1\172\1\173\2\0\1\172\1\u03a3\26\172\41\0"+ + "\1\u03a4\57\0\1\u03a5\1\34\1\0\1\35\1\173\2\0"+ + "\30\35\1\34\3\0\1\34\1\0\1\34\22\0\1\u03a6"+ + "\67\0\1\172\2\0\1\172\1\173\2\0\4\172\1\u03a7"+ + "\23\172\44\0\1\u03a8\54\0\1\172\2\0\1\172\1\173"+ + "\2\0\23\172\1\u03a9\4\172\63\0\1\u03aa\35\0\1\172"+ + "\2\0\1\172\1\173\2\0\21\172\1\u03ab\6\172\61\0"+ + "\1\u03ac\37\0\1\172\2\0\1\172\1\173\2\0\4\172"+ + "\1\u03ad\23\172\44\0\1\u03ae\54\0\1\172\2\0\1\172"+ + "\1\173\2\0\10\172\1\u03af\17\172\10\0\1\u02b7\37\0"+ + "\1\u02b7\27\0\1\u02b7\20\0\1\172\2\0\1\172\1\173"+ + "\2\0\22\172\1\u03b0\5\172\11\0\1\u03b1\50\0\1\u03b1"+ + "\16\0\1\u03b1\17\0\1\172\2\0\1\172\1\173\2\0"+ + "\15\172\1\u03b2\12\172\31\0\1\172\2\0\1\172\1\173"+ + "\2\0\23\172\1\u03b3\4\172\63\0\1\u03b4\35\0\1\172"+ + "\2\0\1\172\1\173\2\0\6\172\1\u035d\21\172\31\0"+ + "\1\u03b5\2\0\1\172\1\173\2\0\30\172\31\0\1\u03b6"+ + "\67\0\1\172\2\0\1\172\1\173\2\0\3\172\1\u03b7"+ + "\24\172\43\0\1\u03b8\55\0\1\172\2\0\1\172\1\173"+ + "\2\0\10\172\1\u03b9\17\172\10\0\1\u03ba\37\0\1\u03ba"+ + "\27\0\1\u03ba\20\0\1\172\2\0\1\172\1\173\2\0"+ + "\21\172\1\u03bb\6\172\61\0\1\u03bc\37\0\1\172\2\0"+ + "\1\172\1\173\2\0\4\172\1\u03bd\23\172\44\0\1\u03be"+ + "\54\0\1\172\2\0\1\172\1\173\2\0\2\172\1\u03bf"+ + "\25\172\42\0\1\u03c0\56\0\1\172\2\0\1\172\1\173"+ + "\2\0\23\172\1\u03c1\4\172\63\0\1\u03c2\35\0\1\172"+ + "\2\0\1\172\1\173\2\0\10\172\1\u03c3\17\172\10\0"+ + "\1\u03c4\37\0\1\u03c4\27\0\1\u03c4\20\0\1\172\2\0"+ + "\1\172\1\173\2\0\25\172\1\u034b\2\172\65\0\1\u0206"+ + "\16\0"; - private static int [] zzUnpackTrans() { - int [] result = new int[46915]; + private static int [] zzUnpacktrans() { + int [] result = new int[47768]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -1576,46 +1410,49 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = "\17\0\1\1\2\0\2\11\2\1\1\11\34\1\1\11"+ - "\3\1\1\11\2\1\2\11\3\1\1\11\1\1\2\11"+ + "\4\1\1\11\1\1\2\11\3\1\1\11\1\1\2\11"+ "\1\1\1\11\3\1\2\11\2\1\1\11\5\1\1\11"+ - "\12\1\1\11\26\1\1\0\4\1\2\0\1\1\1\0"+ - "\5\1\1\0\5\1\2\0\1\1\1\0\1\1\1\0"+ - "\13\1\1\0\5\1\1\0\2\1\4\0\6\1\1\0"+ - "\1\1\2\0\2\1\2\11\1\1\1\0\1\1\1\0"+ - "\1\11\1\1\5\0\1\11\3\0\2\1\35\0\2\1"+ - "\42\0\4\1\2\0\3\1\1\0\2\1\3\0\1\1"+ - "\1\0\3\1\1\0\3\1\1\0\4\1\1\0\3\1"+ - "\2\0\6\1\1\0\2\1\4\0\7\1\2\11\26\0"+ - "\1\1\6\0\1\1\3\0\1\11\1\1\2\0\1\11"+ - "\1\1\36\0\1\1\2\0\1\1\57\0\1\1\22\0"+ - "\3\1\21\0\1\11\3\1\3\0\1\1\1\0\1\1"+ - "\1\0\1\1\2\0\1\1\1\0\3\1\2\0\2\1"+ - "\2\0\4\1\1\0\1\1\1\0\1\1\1\0\3\1"+ - "\1\0\2\1\3\0\5\1\1\11\2\0\1\11\14\0"+ - "\1\11\2\1\2\11\2\0\1\1\1\0\2\1\3\0"+ - "\1\1\30\0\3\1\37\0\1\1\1\0\5\1\12\0"+ - "\1\1\2\0\1\1\20\0\2\1\1\0\1\11\4\1"+ - "\1\11\1\1\1\0\1\1\3\0\1\1\1\0\2\1"+ - "\1\0\1\1\1\0\1\1\1\0\3\1\1\0\1\1"+ - "\1\0\1\1\1\0\1\1\2\0\2\1\4\0\5\1"+ - "\2\0\1\11\2\1\1\11\2\1\4\0\1\1\4\0"+ - "\3\1\21\0\1\1\1\0\2\1\1\0\2\1\17\0"+ - "\1\1\5\0\1\1\1\0\1\1\2\0\1\1\2\0"+ - "\2\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"+ - "\1\1\1\0\1\1\1\0\1\1\2\0\2\1\4\0"+ - "\4\1\1\11\2\1\2\11\2\0\2\1\1\0\3\1"+ - "\1\0\1\1\5\0\1\1\4\0\2\1\1\0\1\1"+ - "\1\0\1\1\1\0\1\1\3\0\1\1\2\0\3\1"+ - "\7\0\1\1\1\0\1\1\6\0\4\1\5\0\1\1"+ - "\1\0\1\1\5\0\16\1\4\0\1\1\6\0\2\1"+ - "\2\0\1\1\1\11\1\1\5\0\1\1\5\0\1\1"+ - "\5\0\1\1\3\0\1\1\3\0\1\1\42\0"; + "\11\1\1\11\27\1\1\0\4\1\2\0\10\1\2\0"+ + "\6\1\1\0\2\1\1\0\3\1\1\0\13\1\1\0"+ + "\3\1\1\0\2\1\2\0\2\1\1\11\1\0\2\1"+ + "\1\0\1\1\4\0\1\11\1\1\1\0\1\1\1\0"+ + "\1\11\1\1\5\0\1\11\1\0\1\1\2\0\1\1"+ + "\20\0\1\1\15\0\1\1\41\0\11\1\2\0\4\1"+ + "\1\0\3\1\1\0\3\1\2\0\4\1\1\0\6\1"+ + "\1\0\4\1\1\0\2\1\2\0\1\1\1\0\1\1"+ + "\1\11\1\0\1\1\1\11\36\0\1\1\1\11\1\1"+ + "\5\0\1\1\3\0\1\11\1\1\55\0\1\1\1\0"+ + "\3\1\26\0\1\1\31\0\1\1\25\0\5\1\1\0"+ + "\3\1\3\0\3\1\1\0\3\1\1\0\1\1\1\0"+ + "\3\1\1\0\1\1\1\0\2\1\1\0\3\1\1\0"+ + "\2\1\3\0\1\1\1\0\1\1\1\11\4\0\1\11"+ + "\2\0\1\11\10\0\2\11\3\0\1\11\2\1\3\0"+ + "\1\1\1\0\2\1\1\0\2\1\3\0\1\1\11\0"+ + "\1\1\36\0\1\1\1\0\3\1\31\0\1\1\2\0"+ + "\2\1\1\0\1\1\17\0\2\1\1\0\1\11\4\1"+ + "\1\0\1\1\1\0\3\1\3\0\2\1\1\0\2\1"+ + "\1\0\3\1\2\0\3\1\1\0\2\1\1\0\2\1"+ + "\1\0\1\1\1\11\1\0\1\1\6\0\1\11\2\1"+ + "\1\11\2\1\3\0\1\1\5\0\1\1\17\0\1\1"+ + "\1\0\2\1\1\0\1\1\3\0\2\1\1\0\1\1"+ + "\20\0\1\1\2\0\1\1\1\0\1\1\2\0\2\1"+ + "\1\0\1\1\2\0\2\1\1\0\2\1\1\0\2\1"+ + "\2\0\1\1\1\0\2\1\1\0\1\1\1\0\2\1"+ + "\4\0\1\11\2\1\1\11\2\0\1\11\2\1\1\0"+ + "\1\1\2\0\2\1\1\0\1\1\1\0\1\1\2\0"+ + "\1\1\2\0\2\1\1\0\2\1\1\0\1\1\3\0"+ + "\1\1\1\0\1\1\1\0\1\1\10\0\1\1\4\0"+ + "\1\1\3\0\1\1\2\0\3\1\3\0\1\1\3\0"+ + "\1\1\3\0\1\1\2\0\15\1\6\0\1\1\3\0"+ + "\1\1\1\0\2\1\1\11\2\0\1\1\6\0\1\1"+ + "\5\0\1\1\3\0\1\1\3\0\1\1\3\0\1\1"+ + "\43\0"; private static int [] zzUnpackAttribute() { int [] result = new int[964]; @@ -1662,15 +1499,26 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -1697,26 +1545,22 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -1848,7 +1692,8 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -1915,7 +1760,7 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -1937,11 +1782,11 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -1964,146 +1809,146 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { yybegin(IN_INLINE); return LINE; - } - // fall through + } + // fall through case 49: break; - case 2: + case 2: { yypushback(1); yybegin(INIT); - } - // fall through + } + // fall through case 50: break; - case 3: + case 3: { yybegin(INIT); return WHITESPACE; - } - // fall through + } + // fall through case 51: break; - case 4: + case 4: { yybegin(INIT); return ERROR; - } - // fall through + } + // fall through case 52: break; - case 5: + case 5: { return WHITESPACE; - } - // fall through + } + // fall through case 53: break; - case 6: + case 6: { yybegin(IN_COMMENT); return COMMENT; - } - // fall through + } + // fall through case 54: break; - case 7: + case 7: { return COMMENT; - } - // fall through + } + // fall through case 55: break; - case 8: + case 8: { yybegin(PRE_INDENTED); myIndent = yylength(); return chooseType(); - } - // fall through + } + // fall through case 56: break; - case 9: + case 9: { yybegin(PRE_QUOTED); return SPEC_SYMBOL; - } - // fall through + } + // fall through case 57: break; - case 10: + case 10: { yypushback(1); myIndent = 0; myState = 0; yybegin(INIT); - } - // fall through + } + // fall through case 58: break; - case 11: - { return chooseType(); - } - // fall through - case 59: break; - case 12: + case 11: { if (yylength() >= myIndent) { yybegin(PRE_INDENTED); return chooseType();} else { myIndent = 0; yypushback(yylength()); yybegin(INIT); } - } - // fall through + } + // fall through + case 59: break; + case 12: + { return chooseType(); + } + // fall through case 60: break; - case 13: + case 13: { yybegin(INDENTED); return chooseType(); - } - // fall through + } + // fall through case 61: break; - case 14: + case 14: { yypushback(1); myState = 0; yybegin(INIT); - } - // fall through + } + // fall through case 62: break; - case 15: + case 15: { yybegin(PRE_QUOTED); return chooseType(); - } - // fall through + } + // fall through case 63: break; - case 16: + case 16: { yybegin(QUOTED); return chooseType(); - } - // fall through + } + // fall through case 64: break; - case 17: + case 17: { yybegin(INIT); return LINE; - } - // fall through + } + // fall through case 65: break; - case 18: + case 18: { yybegin(IN_FOOTNOTE); return LINE; - } - // fall through + } + // fall through case 66: break; - case 19: + case 19: { return LINE; - } - // fall through + } + // fall through case 67: break; - case 20: + case 20: { yypushback(1); yybegin(IN_LINE); - } - // fall through + } + // fall through case 68: break; - case 21: + case 21: { yybegin(IN_LINEBEGIN); return WHITESPACE; - } - // fall through + } + // fall through case 69: break; - case 22: + case 22: { yybegin(IN_LINE); return SPEC_SYMBOL; - } - // fall through + } + // fall through case 70: break; - case 23: + case 23: { yybegin(INIT); return COMMENT; - } - // fall through + } + // fall through case 71: break; - case 24: + case 24: { yybegin(IN_VALUE); return CUSTOM_DIRECTIVE; - } - // fall through + } + // fall through case 72: break; - case 25: - { yybegin(IN_VALUE); return ANONYMOUS_HYPERLINK; - } - // fall through - case 73: break; - case 26: - { return SUBSTITUTION; - } - // fall through - case 74: break; - case 27: + case 25: { yybegin(INIT); return FOOTNOTE; - } - // fall through + } + // fall through + case 73: break; + case 26: + { yybegin(IN_VALUE); return ANONYMOUS_HYPERLINK; + } + // fall through + case 74: break; + case 27: + { return SUBSTITUTION; + } + // fall through case 75: break; - case 28: + case 28: { String value = yytext().toString().trim(); if ("python".equalsIgnoreCase(value)) { myState = 1; @@ -2122,108 +1967,108 @@ public class _RestFlexLexer implements FlexLexer, RestTokenTypes { yybegin(INIT); } return LINE; - } - // fall through + } + // fall through case 76: break; - case 29: + case 29: { yybegin(IN_LINEBEGIN); return LINE; - } - // fall through + } + // fall through case 77: break; - case 30: + case 30: { yybegin(INIT); return CITATION; - } - // fall through + } + // fall through case 78: break; - case 31: - { return INTERPRETED; - } - // fall through - case 79: break; - case 32: + case 31: { yybegin(IN_EXPLISIT_MARKUP); return EXPLISIT_MARKUP_START; - } - // fall through - case 80: break; - case 33: + } + // fall through + case 79: break; + case 32: { yypushback(1); return REFERENCE_NAME; - } - // fall through + } + // fall through + case 80: break; + case 33: + { return INTERPRETED; + } + // fall through case 81: break; - case 34: + case 34: { return TITLE; - } - // fall through + } + // fall through case 82: break; - case 35: + case 35: { yybegin(INIT); return HYPERLINK; - } - // fall through + } + // fall through case 83: break; - case 36: + case 36: { yypushback(1); yybegin(INIT); return REFERENCE_NAME; - } - // fall through + } + // fall through case 84: break; - case 37: - { yybegin(IN_INLINE);return LITERAL_BLOCK_START; - } - // fall through - case 85: break; - case 38: + case 37: { yypushback(yylength()-1); return LINE; - } - // fall through - case 86: break; - case 39: + } + // fall through + case 85: break; + case 38: { return ITALIC; - } - // fall through + } + // fall through + case 86: break; + case 39: + { yybegin(IN_INLINE);return LITERAL_BLOCK_START; + } + // fall through case 87: break; - case 40: + case 40: { yypushback(1); return FIELD; - } - // fall through + } + // fall through case 88: break; - case 41: + case 41: { yybegin(IN_VALUE); return DIRECTIVE; - } - // fall through + } + // fall through case 89: break; - case 42: + case 42: { yypushback(1); yybegin(INIT); return FIELD; - } - // fall through + } + // fall through case 90: break; - case 43: + case 43: { yypushback(1); yybegin(FIELD_LINE); return FIELD; - } - // fall through + } + // fall through case 91: break; - case 44: + case 44: { yypushback(yylength()-1); yybegin(FIELD_IN_INLINE); return WHITESPACE; - } - // fall through + } + // fall through case 92: break; - case 45: - { return FIXED; - } - // fall through - case 93: break; - case 46: + case 45: { return BOLD; - } - // fall through + } + // fall through + case 93: break; + case 46: + { return FIXED; + } + // fall through case 94: break; - case 47: + case 47: { return DIRECT_HYPERLINK; - } - // fall through + } + // fall through case 95: break; - case 48: + case 48: { yybegin(IN_HIGHLIGHT); return CUSTOM_DIRECTIVE; - } - // fall through + } + // fall through case 96: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/xml/xml-psi-impl/gen/com/intellij/lexer/_DtdLexer.java b/xml/xml-psi-impl/gen/com/intellij/lexer/_DtdLexer.java index 20f9b0fac033..c1ed4dfa69ce 100644 --- a/xml/xml-psi-impl/gen/com/intellij/lexer/_DtdLexer.java +++ b/xml/xml-psi-impl/gen/com/intellij/lexer/_DtdLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _DtdLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.lexer; @@ -8,11 +9,6 @@ import com.intellij.psi.*; import com.intellij.psi.xml.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _DtdLexer.flex - */ public class _DtdLexer implements FlexLexer { /** This character denotes the end of file */ @@ -50,158 +46,272 @@ public class _DtdLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14048 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\1\1\10\1\11\1\12\1\13\1\12\1\13\34\12\1"+ - "\14\1\15\1\16\10\1\1\17\1\20\1\12\1\21\4\12\1\22\10\12\1\23\12\12\1\24\1\12"+ - "\1\25\1\24\1\12\1\26\4\1\1\12\1\27\1\30\2\1\2\12\1\27\1\1\1\31\1\24\5\12\1"+ - "\32\1\33\1\34\1\1\1\35\1\12\1\1\1\36\5\12\1\37\1\40\1\41\1\12\1\27\1\42\1"+ - "\12\1\43\1\44\1\1\1\12\1\45\4\1\1\12\1\46\4\1\1\47\2\12\1\50\1\1\1\51\1\15"+ - "\1\24\1\52\1\53\1\54\1\55\1\56\1\57\2\15\1\60\1\53\1\54\1\61\1\1\1\62\1\1"+ - "\1\63\1\64\1\21\1\54\1\65\1\1\1\66\1\15\1\67\1\70\1\53\1\54\1\65\1\1\1\57"+ - "\1\15\1\40\1\71\1\72\1\73\1\74\1\1\1\66\2\1\1\75\1\35\1\54\1\50\1\1\1\76\1"+ - "\15\1\1\1\77\1\35\1\54\1\100\1\1\1\56\1\15\1\101\1\75\1\35\1\12\1\102\1\56"+ - "\1\103\1\15\1\41\1\104\1\105\1\12\1\106\1\107\3\1\1\24\2\12\1\110\1\107\3"+ - "\1\1\111\1\112\1\113\1\114\1\115\1\116\2\1\1\66\3\1\1\117\1\12\1\120\1\1\1"+ - "\121\7\1\2\12\1\27\1\122\1\1\1\123\1\124\1\125\1\126\1\1\2\12\1\127\2\12\1"+ - "\130\24\12\1\131\1\132\2\12\1\131\2\12\1\133\1\134\1\13\3\12\1\134\3\12\1"+ - "\27\2\1\1\12\1\1\5\12\1\135\1\24\45\12\1\136\1\12\1\24\1\27\4\12\1\27\1\137"+ - "\1\140\1\15\1\12\1\15\1\12\1\15\1\140\1\66\3\12\1\141\1\1\1\142\4\1\5\12\1"+ - "\26\1\143\1\12\1\144\4\12\1\37\1\12\1\145\3\1\1\12\1\146\1\147\2\12\1\150"+ - "\1\12\1\74\3\1\1\12\1\107\3\12\1\147\4\1\1\151\5\1\1\104\2\12\1\141\1\152"+ - "\3\1\1\153\1\12\1\154\1\41\2\12\1\37\1\1\2\12\1\141\1\1\1\36\1\41\1\12\1\146"+ - "\1\45\5\1\1\155\1\156\14\12\4\1\21\12\1\135\2\12\1\135\1\157\1\12\1\146\3"+ - "\12\1\160\1\161\1\162\1\120\1\161\7\1\1\163\1\1\1\120\6\1\1\164\1\165\1\166"+ - "\1\167\1\170\3\1\1\171\147\1\2\12\1\145\2\12\1\145\10\12\1\172\1\173\2\12"+ - "\1\127\3\12\1\174\1\1\1\12\1\107\4\175\4\1\1\122\35\1\1\176\2\1\1\177\1\24"+ - "\4\12\1\200\1\24\4\12\1\130\1\104\1\12\1\146\1\24\4\12\1\145\1\1\1\12\1\27"+ - "\3\1\1\12\40\1\133\12\1\37\4\1\135\12\1\37\2\1\10\12\1\120\4\1\2\12\1\146"+ - "\20\12\1\120\1\12\1\201\1\1\2\12\1\145\1\122\1\12\1\146\4\12\1\37\2\1\1\202"+ - "\1\203\5\12\1\204\1\12\1\145\1\26\3\1\1\202\1\205\1\12\1\30\1\1\3\12\1\141"+ - "\1\203\2\12\1\141\3\1\1\206\1\41\1\12\1\37\1\12\1\107\1\1\1\12\1\120\1\47"+ - "\2\12\1\30\1\122\1\1\1\207\1\210\2\12\1\45\1\1\1\211\1\1\1\12\1\212\3\12\1"+ - "\213\1\214\1\215\1\27\1\63\1\216\1\217\1\175\2\12\1\130\1\37\7\12\1\30\1\1"+ - "\72\12\1\141\1\12\1\220\2\12\1\150\20\1\26\12\1\146\6\12\1\74\2\1\1\107\1"+ - "\221\1\54\1\222\1\223\6\12\1\15\1\1\1\153\25\12\1\146\1\1\4\12\1\203\2\12"+ - "\1\26\2\1\1\150\7\1\1\207\7\12\1\120\2\1\1\24\1\27\1\24\1\27\1\224\4\12\1"+ - "\145\1\225\1\226\2\1\1\227\1\12\1\13\1\230\2\146\2\1\7\12\1\27\30\1\1\12\1"+ - "\120\3\12\1\66\2\1\2\12\1\1\1\12\1\231\2\12\1\37\1\12\1\146\2\12\1\232\3\1"+ - "\11\12\1\146\1\1\2\12\1\232\1\12\1\150\2\12\1\26\3\12\1\141\11\1\23\12\1\107"+ - "\1\12\1\37\1\26\11\1\1\233\2\12\1\234\1\12\1\37\1\12\1\107\1\12\1\145\4\1"+ - "\1\12\1\235\1\12\1\37\1\12\1\74\4\1\3\12\1\236\4\1\1\66\1\237\1\12\1\141\2"+ - "\1\1\12\1\120\1\12\1\120\2\1\1\117\1\12\1\147\1\1\3\12\1\37\1\12\1\37\1\12"+ - "\1\30\1\12\1\15\6\1\4\12\1\45\3\1\3\12\1\30\3\12\1\30\60\1\1\153\2\12\1\26"+ - "\4\1\1\153\2\12\2\1\1\12\1\45\1\1\1\153\1\12\1\107\2\1\2\12\1\240\1\153\2"+ - "\12\1\30\1\241\1\242\2\1\1\12\1\21\1\150\5\1\1\243\1\244\1\45\2\12\1\145\2"+ - "\1\1\70\1\53\1\54\1\65\1\1\1\245\1\15\11\1\3\12\1\147\1\246\3\1\3\12\1\1\1"+ - "\247\13\1\2\12\1\145\2\1\1\250\2\1\3\12\1\1\1\251\3\1\2\12\1\27\5\1\1\12\1"+ - "\74\30\1\4\12\1\1\1\122\34\1\3\12\1\45\20\1\1\54\1\12\1\145\1\1\1\66\2\1\1"+ - "\203\1\12\67\1\71\12\1\74\16\1\14\12\1\141\53\1\2\12\1\145\75\1\44\12\1\107"+ - "\33\1\43\12\1\45\1\12\1\145\7\1\1\12\1\146\1\1\3\12\1\1\1\141\1\1\1\153\1"+ - "\252\1\12\67\1\4\12\1\147\1\66\3\1\1\153\4\1\1\66\1\1\76\12\1\120\1\1\57\12"+ - "\1\30\20\1\1\15\77\1\6\12\1\27\1\120\1\45\1\74\66\1\5\12\1\207\3\12\1\140"+ - "\1\253\1\254\1\255\3\12\1\256\1\257\1\12\1\260\1\261\1\35\24\12\1\262\1\12"+ - "\1\35\1\130\1\12\1\130\1\12\1\207\1\12\1\207\1\145\1\12\1\145\1\12\1\54\1"+ - "\12\1\54\1\12\1\211\3\1\14\12\1\147\3\1\4\12\1\141\113\1\1\255\1\12\1\263"+ - "\1\264\1\265\1\266\1\267\1\270\1\271\1\150\1\272\1\150\24\1\55\12\1\107\2"+ - "\1\103\12\1\147\15\12\1\146\150\12\1\15\25\1\41\12\1\146\36\1"); - /* The ZZ_CMAP_A table has 2992 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\2\3\1\0\2\3\22\0\1\40\1\7\1\43\1\32\1\0\1\31\1\27\1\42\1\51\1\52\1\54"+ - "\1\53\1\56\1\5\1\4\1\62\12\2\1\1\1\30\1\6\1\41\1\16\1\35\1\0\1\13\1\50\1\11"+ - "\1\12\1\23\1\60\1\24\1\1\1\17\2\1\1\21\1\47\1\20\1\25\1\45\1\57\1\26\1\46"+ - "\1\14\1\22\2\1\1\61\1\44\1\1\1\10\1\0\1\15\1\0\1\1\1\0\6\34\5\1\1\37\1\36"+ - "\12\1\1\33\2\1\1\0\1\55\15\0\1\1\12\0\1\1\4\0\1\1\5\0\27\1\1\0\12\1\4\0\14"+ - "\1\16\0\5\1\7\0\1\1\1\0\1\1\1\0\5\1\1\0\2\1\2\0\4\1\1\0\1\1\6\0\1\1\1\0\3"+ - "\1\1\0\1\1\1\0\4\1\1\0\23\1\1\0\13\1\10\0\6\1\1\0\26\1\2\0\1\1\6\0\10\1\10"+ - "\0\13\1\5\0\3\1\33\0\6\1\1\0\1\1\17\0\2\1\7\0\2\1\12\0\3\1\2\0\2\1\1\0\16"+ - "\1\15\0\11\1\13\0\1\1\30\0\6\1\4\0\2\1\4\0\1\1\5\0\6\1\4\0\1\1\11\0\1\1\3"+ - "\0\1\1\7\0\11\1\7\0\5\1\1\0\10\1\6\0\26\1\3\0\1\1\2\0\1\1\7\0\11\1\4\0\10"+ - "\1\2\0\2\1\2\0\26\1\1\0\7\1\1\0\1\1\3\0\4\1\3\0\1\1\20\0\1\1\15\0\2\1\1\0"+ - "\1\1\5\0\6\1\4\0\2\1\1\0\2\1\1\0\2\1\1\0\2\1\17\0\4\1\1\0\1\1\3\0\3\1\20\0"+ - "\11\1\1\0\2\1\1\0\2\1\1\0\5\1\3\0\1\1\2\0\1\1\30\0\1\1\13\0\10\1\2\0\1\1\3"+ - "\0\1\1\1\0\6\1\3\0\3\1\1\0\4\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0\2\1\3\0\3\1\3\0"+ - "\14\1\13\0\10\1\1\0\2\1\10\0\3\1\5\0\1\1\4\0\10\1\1\0\6\1\1\0\5\1\3\0\1\1"+ - "\3\0\2\1\15\0\13\1\2\0\1\1\6\0\3\1\10\0\1\1\5\0\22\1\3\0\10\1\1\0\11\1\1\0"+ - "\1\1\2\0\7\1\11\0\1\1\1\0\2\1\15\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1\2\0\1\1\6\0"+ - "\4\1\1\0\7\1\1\0\3\1\1\0\1\1\1\0\1\1\2\0\2\1\1\0\4\1\1\0\2\1\11\0\1\1\2\0"+ - "\5\1\1\0\1\1\25\0\14\1\1\0\24\1\13\0\5\1\22\0\7\1\4\0\4\1\3\0\1\1\3\0\2\1"+ - "\7\0\3\1\4\0\15\1\14\0\1\1\1\0\6\1\1\0\1\1\5\0\1\1\2\0\13\1\1\0\15\1\1\0\4"+ - "\1\2\0\7\1\1\0\1\1\1\0\4\1\2\0\1\1\1\0\4\1\2\0\7\1\1\0\1\1\1\0\4\1\2\0\16"+ - "\1\2\0\6\1\2\0\15\1\2\0\1\1\1\0\10\1\7\0\15\1\1\0\6\1\23\0\1\1\4\0\1\1\3\0"+ - "\5\1\2\0\22\1\1\0\1\1\5\0\17\1\1\0\16\1\2\0\5\1\13\0\14\1\13\0\1\1\15\0\7"+ - "\1\7\0\16\1\15\0\2\1\11\0\4\1\1\0\4\1\3\0\2\1\11\0\10\1\1\0\1\1\1\0\1\1\1"+ - "\0\1\1\1\0\6\1\1\0\7\1\1\0\1\1\3\0\3\1\1\0\7\1\3\0\4\1\2\0\6\1\5\0\1\1\15"+ - "\0\1\1\2\0\1\1\4\0\1\1\2\0\12\1\1\0\1\1\3\0\5\1\6\0\1\1\1\0\1\1\1\0\1\1\1"+ - "\0\4\1\1\0\13\1\2\0\4\1\5\0\5\1\4\0\1\1\4\0\2\1\13\0\5\1\6\0\4\1\3\0\2\1\14"+ - "\0\10\1\7\0\10\1\1\0\7\1\6\0\2\1\12\0\5\1\5\0\2\1\3\0\7\1\6\0\3\1\12\0\2\1"+ - "\13\0\11\1\2\0\27\1\2\0\7\1\1\0\3\1\1\0\4\1\1\0\4\1\2\0\6\1\3\0\1\1\1\0\1"+ - "\1\2\0\5\1\1\0\12\1\12\0\5\1\1\0\3\1\1\0\10\1\4\0\7\1\3\0\1\1\3\0\2\1\1\0"+ - "\1\1\3\0\2\1\2\0\5\1\2\0\1\1\1\0\1\1\30\0\3\1\3\0\6\1\2\0\6\1\2\0\6\1\11\0"+ - "\7\1\4\0\5\1\3\0\5\1\5\0\1\1\1\0\10\1\1\0\5\1\1\0\1\1\1\0\2\1\1\0\2\1\1\0"+ - "\12\1\6\0\12\1\2\0\6\1\2\0\6\1\2\0\6\1\2\0\3\1\3\0\14\1\1\0\16\1\1\0\2\1\1"+ - "\0\2\1\1\0\10\1\6\0\4\1\4\0\16\1\2\0\1\1\1\0\14\1\1\0\2\1\3\0\1\1\2\0\4\1"+ - "\1\0\2\1\12\0\10\1\6\0\6\1\1\0\3\1\1\0\12\1\3\0\1\1\12\0\4\1\25\0\1\1\1\0"+ - "\1\1\3\0\7\1\1\0\1\1\1\0\4\1\1\0\17\1\1\0\2\1\14\0\3\1\7\0\4\1\11\0\2\1\1"+ - "\0\1\1\20\0\4\1\10\0\1\1\13\0\10\1\5\0\3\1\2\0\1\1\2\0\2\1\2\0\4\1\1\0\14"+ - "\1\1\0\1\1\1\0\7\1\1\0\21\1\1\0\4\1\2\0\10\1\1\0\7\1\1\0\14\1\1\0\4\1\1\0"+ - "\5\1\1\0\1\1\3\0\14\1\2\0\10\1\1\0\2\1\1\0\1\1\2\0\1\1\1\0\12\1\1\0\4\1\1"+ - "\0\1\1\1\0\1\1\6\0\1\1\4\0\1\1\1\0\1\1\1\0\1\1\1\0\3\1\1\0\2\1\1\0\1\1\2\0"+ - "\1\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0\2\1\1\0\1\1\2\0\4\1\1\0\7\1\1\0\4"+ - "\1\1\0\4\1\1\0\1\1\1\0\12\1\1\0\5\1\1\0\3\1\1\0\5\1\1\0\5\1"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\2\1\1\0\2\1\22\0\1\2\1\3\1\4"+ + "\1\5\1\0\1\6\1\7\1\10\1\11\1\12\1\13"+ + "\1\14\1\15\1\16\1\17\1\20\12\21\1\22\1\23"+ + "\1\24\1\25\1\26\1\27\1\0\1\30\1\31\1\32"+ + "\1\33\1\34\1\35\1\36\1\22\1\37\2\22\1\40"+ + "\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1\50"+ + "\1\51\2\22\1\52\1\53\1\22\1\54\1\0\1\55"+ + "\1\0\1\22\1\0\6\56\5\22\1\57\1\60\12\22"+ + "\1\61\2\22\1\0\1\62\55\0\1\22\12\0\1\22"+ + "\4\0\1\22\5\0\27\22\1\0\37\22\1\0\u01ca\22"+ + "\4\0\14\22\16\0\5\22\7\0\1\22\1\0\1\22"+ + "\201\0\5\22\1\0\2\22\2\0\4\22\1\0\1\22"+ + "\6\0\1\22\1\0\3\22\1\0\1\22\1\0\24\22"+ + "\1\0\123\22\1\0\213\22\10\0\246\22\1\0\46\22"+ + "\2\0\1\22\6\0\51\22\107\0\33\22\4\0\4\22"+ + "\55\0\53\22\43\0\2\22\1\0\143\22\1\0\1\22"+ + "\17\0\2\22\7\0\2\22\12\0\3\22\2\0\1\22"+ + "\20\0\1\22\1\0\36\22\35\0\131\22\13\0\1\22"+ + "\30\0\41\22\11\0\2\22\4\0\1\22\5\0\26\22"+ + "\4\0\1\22\11\0\1\22\3\0\1\22\27\0\31\22"+ + "\7\0\13\22\65\0\25\22\1\0\10\22\106\0\66\22"+ + "\3\0\1\22\22\0\1\22\7\0\12\22\17\0\20\22"+ + "\4\0\10\22\2\0\2\22\2\0\26\22\1\0\7\22"+ + "\1\0\1\22\3\0\4\22\3\0\1\22\20\0\1\22"+ + "\15\0\2\22\1\0\3\22\16\0\2\22\12\0\1\22"+ + "\10\0\6\22\4\0\2\22\2\0\26\22\1\0\7\22"+ + "\1\0\2\22\1\0\2\22\1\0\2\22\37\0\4\22"+ + "\1\0\1\22\23\0\3\22\20\0\11\22\1\0\3\22"+ + "\1\0\26\22\1\0\7\22\1\0\2\22\1\0\5\22"+ + "\3\0\1\22\22\0\1\22\17\0\2\22\27\0\1\22"+ + "\13\0\10\22\2\0\2\22\2\0\26\22\1\0\7\22"+ + "\1\0\2\22\1\0\5\22\3\0\1\22\36\0\2\22"+ + "\1\0\3\22\17\0\1\22\21\0\1\22\1\0\6\22"+ + "\3\0\3\22\1\0\4\22\3\0\2\22\1\0\1\22"+ + "\1\0\2\22\3\0\2\22\3\0\3\22\3\0\14\22"+ + "\26\0\1\22\64\0\10\22\1\0\3\22\1\0\27\22"+ + "\1\0\20\22\3\0\1\22\32\0\3\22\5\0\2\22"+ + "\36\0\1\22\4\0\10\22\1\0\3\22\1\0\27\22"+ + "\1\0\12\22\1\0\5\22\3\0\1\22\40\0\1\22"+ + "\1\0\2\22\17\0\2\22\22\0\10\22\1\0\3\22"+ + "\1\0\51\22\2\0\1\22\20\0\1\22\5\0\3\22"+ + "\10\0\3\22\30\0\6\22\5\0\22\22\3\0\30\22"+ + "\1\0\11\22\1\0\1\22\2\0\7\22\72\0\60\22"+ + "\1\0\2\22\14\0\7\22\72\0\2\22\1\0\1\22"+ + "\1\0\5\22\1\0\30\22\1\0\1\22\1\0\12\22"+ + "\1\0\2\22\11\0\1\22\2\0\5\22\1\0\1\22"+ + "\25\0\4\22\40\0\1\22\77\0\10\22\1\0\44\22"+ + "\33\0\5\22\163\0\53\22\24\0\1\22\20\0\6\22"+ + "\4\0\4\22\3\0\1\22\3\0\2\22\7\0\3\22"+ + "\4\0\15\22\14\0\1\22\21\0\46\22\1\0\1\22"+ + "\5\0\1\22\2\0\53\22\1\0\115\22\1\0\4\22"+ + "\2\0\7\22\1\0\1\22\1\0\4\22\2\0\51\22"+ + "\1\0\4\22\2\0\41\22\1\0\4\22\2\0\7\22"+ + "\1\0\1\22\1\0\4\22\2\0\17\22\1\0\71\22"+ + "\1\0\4\22\2\0\103\22\45\0\20\22\20\0\126\22"+ + "\2\0\6\22\3\0\u016c\22\2\0\21\22\1\0\32\22"+ + "\5\0\113\22\6\0\10\22\7\0\15\22\1\0\4\22"+ + "\16\0\22\22\16\0\22\22\16\0\15\22\1\0\3\22"+ + "\17\0\64\22\43\0\1\22\4\0\1\22\103\0\131\22"+ + "\7\0\5\22\2\0\42\22\1\0\1\22\5\0\106\22"+ + "\12\0\37\22\61\0\36\22\2\0\5\22\13\0\54\22"+ + "\4\0\32\22\66\0\27\22\11\0\65\22\122\0\1\22"+ + "\135\0\57\22\21\0\7\22\67\0\36\22\15\0\2\22"+ + "\12\0\54\22\32\0\44\22\51\0\3\22\12\0\44\22"+ + "\2\0\11\22\7\0\53\22\2\0\3\22\51\0\4\22"+ + "\1\0\6\22\1\0\2\22\3\0\1\22\5\0\300\22"+ + "\100\0\26\22\2\0\6\22\2\0\46\22\2\0\6\22"+ + "\2\0\10\22\1\0\1\22\1\0\1\22\1\0\1\22"+ + "\1\0\37\22\2\0\65\22\1\0\7\22\1\0\1\22"+ + "\3\0\3\22\1\0\7\22\3\0\4\22\2\0\6\22"+ + "\4\0\15\22\5\0\3\22\1\0\7\22\164\0\1\22"+ + "\15\0\1\22\20\0\15\22\145\0\1\22\4\0\1\22"+ + "\2\0\12\22\1\0\1\22\3\0\5\22\6\0\1\22"+ + "\1\0\1\22\1\0\1\22\1\0\4\22\1\0\13\22"+ + "\2\0\4\22\5\0\5\22\4\0\1\22\64\0\2\22"+ + "\u017b\0\57\22\1\0\57\22\1\0\205\22\6\0\4\22"+ + "\3\0\2\22\14\0\46\22\1\0\1\22\5\0\1\22"+ + "\2\0\70\22\7\0\1\22\20\0\27\22\11\0\7\22"+ + "\1\0\7\22\1\0\7\22\1\0\7\22\1\0\7\22"+ + "\1\0\7\22\1\0\7\22\1\0\7\22\120\0\1\22"+ + "\325\0\2\22\52\0\5\22\5\0\2\22\4\0\126\22"+ + "\6\0\3\22\1\0\132\22\1\0\4\22\5\0\53\22"+ + "\1\0\136\22\21\0\33\22\65\0\306\22\112\0\360\22"+ + "\20\0\215\22\103\0\56\22\2\0\15\22\3\0\20\22"+ + "\12\0\2\22\24\0\57\22\20\0\37\22\2\0\106\22"+ + "\61\0\11\22\2\0\147\22\2\0\65\22\2\0\5\22"+ + "\60\0\13\22\1\0\3\22\1\0\4\22\1\0\27\22"+ + "\35\0\64\22\16\0\62\22\76\0\6\22\3\0\1\22"+ + "\1\0\2\22\13\0\34\22\12\0\27\22\31\0\35\22"+ + "\7\0\57\22\34\0\1\22\20\0\5\22\1\0\12\22"+ + "\12\0\5\22\1\0\51\22\27\0\3\22\1\0\10\22"+ + "\24\0\27\22\3\0\1\22\3\0\62\22\1\0\1\22"+ + "\3\0\2\22\2\0\5\22\2\0\1\22\1\0\1\22"+ + "\30\0\3\22\2\0\13\22\7\0\3\22\14\0\6\22"+ + "\2\0\6\22\2\0\6\22\11\0\7\22\1\0\7\22"+ + "\1\0\53\22\1\0\14\22\10\0\163\22\35\0\244\22"+ + "\14\0\27\22\4\0\61\22\4\0\156\22\2\0\152\22"+ + "\46\0\7\22\14\0\5\22\5\0\1\22\1\0\12\22"+ + "\1\0\15\22\1\0\5\22\1\0\1\22\1\0\2\22"+ + "\1\0\2\22\1\0\154\22\41\0\153\22\22\0\100\22"+ + "\2\0\66\22\50\0\14\22\164\0\5\22\1\0\207\22"+ + "\44\0\32\22\6\0\32\22\13\0\131\22\3\0\6\22"+ + "\2\0\6\22\2\0\6\22\2\0\3\22\43\0\14\22"+ + "\1\0\32\22\1\0\23\22\1\0\2\22\1\0\17\22"+ + "\2\0\16\22\42\0\173\22\205\0\35\22\3\0\61\22"+ + "\57\0\40\22\15\0\24\22\1\0\10\22\6\0\46\22"+ + "\12\0\36\22\2\0\44\22\4\0\10\22\60\0\236\22"+ + "\22\0\44\22\4\0\44\22\4\0\50\22\10\0\64\22"+ + "\234\0\67\22\11\0\26\22\12\0\10\22\230\0\6\22"+ + "\2\0\1\22\1\0\54\22\1\0\2\22\3\0\1\22"+ + "\2\0\27\22\12\0\27\22\11\0\37\22\101\0\23\22"+ + "\1\0\2\22\12\0\26\22\12\0\32\22\106\0\70\22"+ + "\6\0\2\22\100\0\1\22\17\0\4\22\1\0\3\22"+ + "\1\0\35\22\52\0\35\22\3\0\35\22\43\0\10\22"+ + "\1\0\34\22\33\0\66\22\12\0\26\22\12\0\23\22"+ + "\15\0\22\22\156\0\111\22\67\0\63\22\15\0\63\22"+ + "\15\0\44\22\334\0\35\22\12\0\1\22\10\0\26\22"+ + "\232\0\27\22\14\0\65\22\113\0\55\22\40\0\31\22"+ + "\32\0\44\22\35\0\1\22\13\0\43\22\3\0\1\22"+ + "\14\0\60\22\16\0\4\22\25\0\1\22\1\0\1\22"+ + "\43\0\22\22\1\0\31\22\124\0\7\22\1\0\1\22"+ + "\1\0\4\22\1\0\17\22\1\0\12\22\7\0\57\22"+ + "\46\0\10\22\2\0\2\22\2\0\26\22\1\0\7\22"+ + "\1\0\2\22\1\0\5\22\3\0\1\22\22\0\1\22"+ + "\14\0\5\22\236\0\65\22\22\0\4\22\24\0\1\22"+ + "\40\0\60\22\24\0\2\22\1\0\1\22\270\0\57\22"+ + "\51\0\4\22\44\0\60\22\24\0\1\22\73\0\53\22"+ + "\15\0\1\22\107\0\33\22\345\0\54\22\164\0\100\22"+ + "\37\0\1\22\240\0\10\22\2\0\47\22\20\0\1\22"+ + "\1\0\1\22\34\0\1\22\12\0\50\22\7\0\1\22"+ + "\25\0\1\22\13\0\56\22\23\0\1\22\42\0\71\22"+ + "\7\0\11\22\1\0\45\22\21\0\1\22\61\0\36\22"+ + "\160\0\7\22\1\0\2\22\1\0\46\22\25\0\1\22"+ + "\31\0\6\22\1\0\2\22\1\0\40\22\16\0\1\22"+ + "\u0147\0\23\22\15\0\232\22\346\0\304\22\274\0\57\22"+ + "\321\0\107\22\271\0\71\22\7\0\37\22\161\0\36\22"+ + "\22\0\60\22\20\0\4\22\37\0\25\22\5\0\23\22"+ + "\260\0\100\22\200\0\113\22\5\0\1\22\102\0\15\22"+ + "\100\0\2\22\1\0\1\22\34\0\370\22\10\0\363\22"+ + "\15\0\37\22\61\0\3\22\21\0\4\22\10\0\u018c\22"+ + "\4\0\153\22\5\0\15\22\3\0\11\22\7\0\12\22"+ + "\146\0\125\22\1\0\107\22\1\0\2\22\2\0\1\22"+ + "\2\0\2\22\2\0\4\22\1\0\14\22\1\0\1\22"+ + "\1\0\7\22\1\0\101\22\1\0\4\22\2\0\10\22"+ + "\1\0\7\22\1\0\34\22\1\0\4\22\1\0\5\22"+ + "\1\0\1\22\3\0\7\22\1\0\u0154\22\2\0\31\22"+ + "\1\0\31\22\1\0\37\22\1\0\31\22\1\0\37\22"+ + "\1\0\31\22\1\0\37\22\1\0\31\22\1\0\37\22"+ + "\1\0\31\22\1\0\10\22\64\0\55\22\12\0\7\22"+ + "\20\0\1\22\u0171\0\54\22\24\0\305\22\73\0\104\22"+ + "\7\0\1\22\264\0\4\22\1\0\33\22\1\0\2\22"+ + "\1\0\1\22\2\0\1\22\1\0\12\22\1\0\4\22"+ + "\1\0\1\22\1\0\1\22\6\0\1\22\4\0\1\22"+ + "\1\0\1\22\1\0\1\22\1\0\3\22\1\0\2\22"+ + "\1\0\1\22\2\0\1\22\1\0\1\22\1\0\1\22"+ + "\1\0\1\22\1\0\1\22\1\0\2\22\1\0\1\22"+ + "\2\0\4\22\1\0\7\22\1\0\4\22\1\0\4\22"+ + "\1\0\1\22\1\0\12\22\1\0\21\22\5\0\3\22"+ + "\1\0\5\22\1\0\21\22\104\0\327\22\51\0\65\22"+ + "\13\0\336\22\2\0\u0182\22\16\0\u0131\22\37\0\36\22"+ + "\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = "\3\0\2\1\2\0\1\2\14\0\1\2\1\3\1\4"+ - "\1\5\1\3\1\6\1\3\1\6\1\7\2\6\1\10"+ - "\2\6\1\11\1\12\1\13\5\1\1\14\5\1\1\15"+ - "\1\5\1\16\1\17\1\20\1\6\1\2\1\6\4\2"+ - "\1\21\1\22\4\1\1\23\6\24\1\6\1\25\1\26"+ - "\2\16\2\6\1\16\1\6\1\16\1\27\1\30\1\16"+ - "\1\31\1\32\1\33\1\6\1\34\1\35\1\36\2\16"+ - "\1\37\1\40\1\41\1\42\1\43\1\44\1\45\3\3"+ - "\2\6\1\0\1\46\1\47\4\0\1\50\10\1\1\51"+ - "\2\0\4\2\1\52\1\53\2\16\2\0\1\16\1\0"+ - "\2\16\4\0\2\16\4\0\1\54\1\0\1\55\5\0"+ - "\1\56\1\57\2\0\1\55\1\56\1\57\2\1\1\55"+ - "\1\56\1\57\2\1\1\60\1\0\1\55\1\56\1\0"+ - "\1\57\2\2\2\16\1\0\1\16\1\61\1\16\4\0"+ - "\2\16\1\0\1\62\2\0\1\63\7\0\1\64\1\0"+ - "\1\1\1\64\2\1\1\64\1\1\1\2\1\64\1\2"+ - "\2\16\1\0\1\65\1\16\4\0\2\16\11\0\2\1"+ - "\1\2\2\16\1\65\1\66\4\0\2\16\10\0\1\67"+ - "\2\1\1\2\1\70\1\71\3\0\1\72\1\73\1\74"+ - "\1\0\1\75\6\0\2\1\1\2\2\0\1\76\1\77"+ - "\4\0\1\100\1\0\2\1\1\2\1\101\1\0\1\102"+ - "\1\103\1\104\1\0\1\105\3\102\1\106\1\107"; + "\1\3\1\5\1\6\1\3\2\5\1\7\1\5\1\10"+ + "\2\5\1\11\1\12\1\13\1\1\1\14\11\1\1\15"+ + "\1\6\1\5\1\16\1\17\1\20\3\2\1\5\2\2"+ + "\1\21\1\22\1\1\1\23\3\1\6\24\1\5\1\25"+ + "\2\16\1\26\2\5\1\27\1\5\1\30\1\31\1\32"+ + "\1\33\1\34\1\35\1\36\1\37\1\16\1\40\1\5"+ + "\1\41\1\42\4\16\1\43\1\44\1\45\3\3\2\5"+ + "\3\0\1\46\1\47\2\0\1\50\10\1\1\51\1\0"+ + "\2\2\1\0\2\2\1\52\1\53\2\16\6\0\1\16"+ + "\1\0\4\16\4\0\1\54\1\55\7\0\1\56\1\0"+ + "\1\57\1\55\2\1\1\56\1\57\1\55\2\1\1\56"+ + "\1\57\1\0\1\55\2\2\1\60\1\0\1\56\1\57"+ + "\2\16\5\0\1\16\1\61\3\16\1\0\1\62\2\0"+ + "\1\63\1\0\1\64\7\0\1\63\2\1\1\63\2\1"+ + "\1\63\2\2\2\16\5\0\1\65\3\16\11\0\2\1"+ + "\1\2\2\16\4\0\1\65\1\66\2\16\10\0\1\67"+ + "\2\1\1\2\1\70\1\71\1\72\3\0\1\73\1\74"+ + "\1\75\7\0\2\1\1\2\1\0\1\76\1\0\1\77"+ + "\3\0\1\100\2\0\2\1\1\2\1\101\1\0\1\102"+ + "\1\103\1\104\1\0\4\105\1\106\1\107"; private static int [] zzUnpackAction() { int [] result = new int[304]; @@ -223,7 +333,7 @@ public class _DtdLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -232,39 +342,39 @@ public class _DtdLexer implements FlexLexer { "\0\0\0\63\0\146\0\231\0\314\0\377\0\u0132\0\u0165"+ "\0\u0198\0\u01cb\0\u01fe\0\u0231\0\u0264\0\u0297\0\u02ca\0\u02fd"+ "\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u042f\0\u0462\0\u0495"+ - "\0\u04c8\0\u04fb\0\u052e\0\u042f\0\u0561\0\u0594\0\u04c8\0\u042f"+ - "\0\u052e\0\u05c7\0\u042f\0\u042f\0\u042f\0\u05fa\0\u062d\0\u0660"+ - "\0\u0693\0\u06c6\0\u042f\0\u06f9\0\u072c\0\u075f\0\u0792\0\u07c5"+ - "\0\u07f8\0\u082b\0\u085e\0\u042f\0\u042f\0\u0891\0\u08c4\0\u08f7"+ - "\0\u092a\0\u095d\0\u0990\0\u09c3\0\u042f\0\u042f\0\u042f\0\u04c8"+ - "\0\u04fb\0\u052e\0\u042f\0\u042f\0\u0594\0\u04c8\0\u04fb\0\u052e"+ - "\0\u09f6\0\u0a29\0\u042f\0\u042f\0\u0a5c\0\u0a8f\0\u0ac2\0\u0af5"+ - "\0\u0b28\0\u0b5b\0\u0b8e\0\u04c8\0\u042f\0\u0bc1\0\u04fb\0\u042f"+ - "\0\u052e\0\u0bf4\0\u042f\0\u042f\0\u042f\0\u0c27\0\u0c5a\0\u042f"+ - "\0\u042f\0\u042f\0\u042f\0\u042f\0\u042f\0\u042f\0\u0c8d\0\u0cc0"+ - "\0\u04fb\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u042f\0\u0dbf\0\u0df2"+ + "\0\u04c8\0\u04fb\0\u052e\0\u042f\0\u0495\0\u0561\0\u0594\0\u042f"+ + "\0\u05c7\0\u052e\0\u042f\0\u042f\0\u042f\0\u05fa\0\u042f\0\u062d"+ + "\0\u0660\0\u0693\0\u06c6\0\u06f9\0\u072c\0\u075f\0\u0792\0\u07c5"+ + "\0\u07f8\0\u082b\0\u085e\0\u0891\0\u042f\0\u042f\0\u08c4\0\u08f7"+ + "\0\u092a\0\u095d\0\u0990\0\u09c3\0\u042f\0\u042f\0\u042f\0\u042f"+ + "\0\u0495\0\u04c8\0\u052e\0\u042f\0\u0495\0\u04c8\0\u0594\0\u09f6"+ + "\0\u052e\0\u0a29\0\u042f\0\u0a5c\0\u0a8f\0\u042f\0\u0ac2\0\u0af5"+ + "\0\u042f\0\u0b28\0\u0495\0\u04c8\0\u042f\0\u042f\0\u042f\0\u042f"+ + "\0\u042f\0\u042f\0\u0b5b\0\u042f\0\u0b8e\0\u042f\0\u042f\0\u0bc1"+ + "\0\u0bf4\0\u0c27\0\u0c5a\0\u052e\0\u042f\0\u042f\0\u04c8\0\u0c8d"+ + "\0\u0cc0\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u042f\0\u0df2"+ "\0\u0e25\0\u0e58\0\u042f\0\u0e8b\0\u0ebe\0\u0ef1\0\u0f24\0\u0f57"+ "\0\u0f8a\0\u0fbd\0\u0ff0\0\u042f\0\u1023\0\u1056\0\u1089\0\u10bc"+ "\0\u10ef\0\u1122\0\u042f\0\u042f\0\u1155\0\u1188\0\u0ac2\0\u0af5"+ "\0\u11bb\0\u11ee\0\u1221\0\u1254\0\u1287\0\u12ba\0\u12ed\0\u1320"+ - "\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f\0\u1452\0\u042f\0\u1485"+ - "\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7\0\u042f\0\u042f"+ - "\0\u15ea\0\u161d\0\u1650\0\u05fa\0\u05fa\0\u1683\0\u16b6\0\u16e9"+ - "\0\u06f9\0\u06f9\0\u171c\0\u174f\0\u042f\0\u1782\0\u17b5\0\u08c4"+ - "\0\u17e8\0\u08c4\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7\0\u191a"+ - "\0\u085e\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u1a19\0\u1a4c\0\u1a7f"+ - "\0\u1ab2\0\u042f\0\u1ae5\0\u1b18\0\u042f\0\u1b4b\0\u1b7e\0\u1bb1"+ - "\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d\0\u042f\0\u1cb0\0\u1ce3\0\u05fa"+ - "\0\u1d16\0\u1d49\0\u06f9\0\u1d7c\0\u1daf\0\u08c4\0\u1de2\0\u1e15"+ - "\0\u1e48\0\u1e7b\0\u085e\0\u1eae\0\u1ee1\0\u1f14\0\u1f47\0\u1f7a"+ + "\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f\0\u1452\0\u042f\0\u042f"+ + "\0\u1485\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7\0\u15ea"+ + "\0\u161d\0\u042f\0\u05fa\0\u1650\0\u1683\0\u16b6\0\u05fa\0\u06f9"+ + "\0\u16e9\0\u171c\0\u174f\0\u06f9\0\u1782\0\u08c4\0\u17b5\0\u17e8"+ + "\0\u042f\0\u181b\0\u184e\0\u08c4\0\u1881\0\u18b4\0\u18e7\0\u191a"+ + "\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u0891\0\u1a19\0\u1a4c\0\u1a7f"+ + "\0\u1ab2\0\u042f\0\u1ae5\0\u1b18\0\u042f\0\u1b4b\0\u042f\0\u1b7e"+ + "\0\u1bb1\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d\0\u1cb0\0\u05fa\0\u1ce3"+ + "\0\u1d16\0\u06f9\0\u1d49\0\u1d7c\0\u08c4\0\u1daf\0\u1de2\0\u1e15"+ + "\0\u1e48\0\u1e7b\0\u1eae\0\u1ee1\0\u1f14\0\u1f47\0\u0891\0\u1f7a"+ "\0\u1fad\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df\0\u2112"+ "\0\u2145\0\u2178\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277\0\u22aa"+ - "\0\u042f\0\u085e\0\u22dd\0\u2310\0\u2343\0\u2376\0\u23a9\0\u23dc"+ + "\0\u22dd\0\u2310\0\u2343\0\u2376\0\u042f\0\u0891\0\u23a9\0\u23dc"+ "\0\u240f\0\u2442\0\u2475\0\u24a8\0\u24db\0\u250e\0\u2541\0\u2574"+ - "\0\u042f\0\u25a7\0\u25da\0\u260d\0\u085e\0\u085e\0\u2640\0\u2673"+ - "\0\u26a6\0\u042f\0\u085e\0\u085e\0\u26d9\0\u042f\0\u270c\0\u273f"+ + "\0\u042f\0\u25a7\0\u25da\0\u260d\0\u0891\0\u0891\0\u042f\0\u2640"+ + "\0\u2673\0\u26a6\0\u0891\0\u0891\0\u042f\0\u26d9\0\u270c\0\u273f"+ "\0\u2772\0\u27a5\0\u27d8\0\u280b\0\u283e\0\u2871\0\u28a4\0\u28d7"+ - "\0\u290a\0\u042f\0\u042f\0\u293d\0\u2970\0\u29a3\0\u29d6\0\u042f"+ + "\0\u042f\0\u290a\0\u042f\0\u293d\0\u2970\0\u29a3\0\u042f\0\u29d6"+ "\0\u2a09\0\u2a3c\0\u2a6f\0\u2aa2\0\u042f\0\u2ad5\0\u042f\0\u042f"+ "\0\u042f\0\u2b08\0\u042f\0\u05fa\0\u06f9\0\u08c4\0\u042f\0\u042f"; @@ -278,7 +388,7 @@ public class _DtdLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -286,231 +396,174 @@ public class _DtdLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\3\26\1\27\2\26\1\30\6\26\1\31\11\26\1\32"+ - "\1\26\1\33\6\26\1\27\22\26\1\34\1\35\1\34"+ - "\1\27\2\34\1\36\2\34\4\35\1\37\1\40\10\35"+ - "\1\32\1\34\1\41\1\34\2\35\1\42\2\35\1\27"+ - "\3\34\5\35\6\34\3\35\4\34\1\27\2\34\1\36"+ - "\6\34\1\37\11\34\1\32\1\34\1\41\6\34\1\27"+ - "\1\43\1\44\1\45\17\34\6\46\1\47\6\46\1\50"+ - "\11\46\1\51\1\46\1\52\11\46\1\53\17\46\6\54"+ - "\1\55\6\54\1\56\11\54\1\57\1\54\1\60\10\54"+ - "\1\53\20\54\1\34\1\61\1\34\1\27\2\34\1\62"+ - "\2\34\4\61\1\37\1\34\10\61\1\32\1\34\1\41"+ - "\1\34\2\61\1\34\2\61\1\27\3\34\5\61\6\34"+ - "\3\61\2\34\1\63\1\34\1\27\2\34\1\62\2\34"+ - "\4\63\1\37\1\64\10\63\1\32\1\34\1\41\1\34"+ - "\2\63\1\34\2\63\1\27\1\65\2\34\5\63\6\34"+ - "\3\63\1\66\5\67\1\70\1\71\6\67\1\72\11\67"+ - "\1\73\1\67\1\74\31\67\3\34\1\27\2\34\1\62"+ - "\6\34\1\37\1\64\10\34\1\32\1\34\1\41\6\34"+ - "\1\27\1\34\1\75\1\76\16\34\1\66\6\77\1\62"+ - "\6\77\1\100\11\77\1\101\1\77\1\102\11\77\1\103"+ - "\25\77\1\62\6\77\1\100\11\77\1\101\1\77\1\102"+ - "\10\77\1\103\20\77\6\104\1\105\6\104\1\106\11\104"+ - "\1\107\1\104\1\110\3\104\1\111\25\104\5\34\1\112"+ - "\1\36\6\34\1\37\11\34\1\32\1\34\1\41\32\34"+ - "\1\63\1\34\1\27\2\34\1\36\1\34\1\113\4\63"+ - "\1\37\1\114\10\63\1\32\1\34\1\41\1\34\2\63"+ - "\1\34\2\63\1\27\3\34\1\63\1\115\1\116\2\63"+ - "\6\34\3\63\4\34\1\27\2\34\1\36\1\34\1\113"+ - "\4\34\1\37\1\114\10\34\1\32\1\34\1\41\6\34"+ - "\1\27\1\34\1\117\1\120\20\34\2\63\1\27\1\63"+ - "\1\121\1\122\2\34\2\63\1\123\1\63\1\124\1\125"+ - "\4\63\1\126\3\63\1\127\1\130\1\131\1\132\2\63"+ - "\1\133\2\63\1\27\1\34\1\134\1\135\1\63\1\136"+ - "\1\137\2\63\1\140\1\141\1\142\1\143\1\144\1\145"+ - "\3\63\1\34\6\46\1\47\6\46\1\50\11\46\1\51"+ - "\1\46\1\52\11\46\1\146\17\46\6\54\1\55\6\54"+ - "\1\56\11\54\1\57\1\54\1\60\10\54\1\146\20\54"+ - "\6\26\1\147\6\26\1\150\11\26\1\151\1\26\1\33"+ - "\31\26\3\34\1\27\2\34\1\36\1\34\1\113\4\34"+ - "\1\37\1\34\1\152\7\34\1\32\1\34\1\41\6\34"+ - "\1\27\22\34\5\67\1\153\1\71\6\67\1\72\11\67"+ - "\1\73\1\67\1\74\31\67\66\0\1\27\34\0\1\27"+ - "\31\0\1\154\25\0\1\155\24\0\1\156\15\0\1\157"+ - "\46\0\1\160\7\0\4\160\2\0\10\160\3\0\1\161"+ - "\2\160\1\0\2\160\4\0\5\160\6\0\3\160\2\0"+ - "\1\160\7\0\4\160\2\0\10\160\4\0\2\160\1\0"+ - "\2\160\4\0\5\160\6\0\3\160\2\0\2\35\1\0"+ - "\2\35\3\0\4\35\2\0\10\35\4\0\2\35\1\0"+ - "\2\35\4\0\5\35\6\0\3\35\10\0\1\162\71\0"+ - "\1\163\44\0\43\46\1\0\26\46\1\164\33\46\1\0"+ - "\34\46\1\165\25\46\1\0\20\46\1\166\7\46\4\166"+ - "\2\46\10\166\3\46\1\167\2\166\1\46\2\166\3\46"+ - "\1\0\5\166\6\46\3\166\2\46\1\166\7\46\4\166"+ - "\2\46\10\166\4\46\2\166\1\46\2\166\3\46\1\0"+ - "\5\166\6\46\3\166\1\46\42\54\1\0\27\54\1\170"+ - "\32\54\1\0\35\54\1\171\24\54\1\0\21\54\1\172"+ - "\7\54\4\172\2\54\10\172\3\54\1\173\2\172\1\54"+ - "\2\172\2\54\1\0\1\54\5\172\6\54\3\172\2\54"+ - "\1\172\7\54\4\172\2\54\10\172\4\54\2\172\1\54"+ - "\2\172\2\54\1\0\1\54\5\172\6\54\3\172\1\54"+ - "\1\0\2\61\1\0\2\61\3\0\4\61\2\0\10\61"+ - "\4\0\2\61\1\0\2\61\4\0\5\61\6\0\3\61"+ - "\10\0\1\162\52\0\1\156\1\0\2\63\1\0\2\63"+ - "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\5\63\6\0\3\63\17\0\1\174\44\0\5\67"+ - "\1\175\62\67\1\176\62\67\1\175\1\67\1\177\60\67"+ - "\1\175\7\67\1\200\46\67\1\201\3\67\1\175\3\67"+ - "\4\201\2\67\10\201\3\67\1\202\2\201\1\67\2\201"+ - "\4\67\5\201\6\67\3\201\2\67\1\201\3\67\1\175"+ - "\3\67\4\201\2\67\10\201\4\67\2\201\1\67\2\201"+ - "\4\67\5\201\6\67\3\201\1\67\16\0\1\203\51\0"+ - "\1\204\56\0\2\63\1\0\2\63\3\0\4\63\2\0"+ - "\3\63\1\205\4\63\4\0\2\63\1\0\2\63\4\0"+ - "\5\63\6\0\3\63\2\0\2\63\1\0\2\63\3\0"+ - "\4\63\2\0\10\63\4\0\2\63\1\0\2\63\4\0"+ - "\1\206\4\63\6\0\3\63\1\0\42\207\1\77\20\207"+ - "\43\210\1\77\17\210\1\0\2\63\1\0\1\63\1\211"+ - "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\5\63\6\0\3\63\10\0\1\212\54\0\2\63"+ - "\1\0\2\63\3\0\4\63\2\0\1\63\1\213\6\63"+ - "\4\0\2\63\1\0\2\63\4\0\5\63\6\0\3\63"+ - "\2\0\2\63\1\0\2\63\3\0\4\63\2\0\10\63"+ - "\4\0\2\63\1\0\2\63\4\0\3\63\1\214\1\63"+ - "\6\0\3\63\20\0\1\215\6\0\1\216\16\0\1\217"+ - "\12\0\1\220\3\0\2\63\1\0\2\63\3\0\4\63"+ - "\2\0\3\63\1\221\4\63\4\0\2\63\1\0\2\63"+ - "\4\0\5\63\6\0\3\63\2\0\2\63\1\0\2\63"+ - "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\1\222\4\63\6\0\3\63\10\0\1\223\70\0"+ - "\1\224\65\0\1\225\3\0\1\226\36\0\5\67\1\227"+ - "\55\67\5\0\1\230\2\0\1\231\1\0\1\232\1\233"+ - "\4\0\1\234\2\0\1\235\72\0\1\236\45\0\1\237"+ - "\45\0\2\160\1\0\2\160\3\0\4\160\2\0\10\160"+ - "\1\0\1\240\2\0\2\160\1\0\2\160\4\0\5\160"+ - "\6\0\3\160\3\0\1\241\30\0\1\242\34\0\1\230"+ - "\2\0\1\231\52\0\10\46\1\243\32\46\1\0\35\46"+ - "\1\244\24\46\1\0\20\46\2\166\1\46\2\166\3\46"+ - "\4\166\2\46\10\166\1\46\1\245\2\46\2\166\1\46"+ - "\2\166\3\46\1\0\5\166\6\46\3\166\3\46\1\246"+ - "\30\46\1\247\7\46\1\0\17\46\10\54\1\250\31\54"+ - "\1\0\36\54\1\251\23\54\1\0\21\54\2\172\1\54"+ - "\2\172\3\54\4\172\2\54\10\172\1\54\1\252\2\54"+ - "\2\172\1\54\2\172\2\54\1\0\1\54\5\172\6\54"+ - "\3\172\3\54\1\253\30\54\1\254\6\54\1\0\20\54"+ - "\5\67\1\0\55\67\16\0\1\255\44\0\5\67\1\256"+ - "\2\67\1\257\57\67\1\175\10\67\1\260\45\67\2\201"+ - "\1\67\1\201\1\261\3\67\4\201\2\67\10\201\1\67"+ - "\1\262\2\67\2\201\1\67\2\201\4\67\5\201\6\67"+ - "\3\201\3\67\1\263\2\67\1\175\25\67\1\264\27\67"+ - "\1\0\2\63\1\0\2\63\3\0\4\63\2\0\10\63"+ - "\4\0\2\63\1\0\2\63\4\0\4\63\1\265\6\0"+ - "\3\63\2\0\2\63\1\0\2\63\3\0\4\63\2\0"+ - "\10\63\4\0\2\63\1\0\2\63\4\0\2\63\1\266"+ - "\2\63\6\0\3\63\1\0\1\267\2\211\1\267\1\211"+ - "\1\270\3\267\4\211\2\267\10\211\4\267\2\211\1\267"+ - "\2\211\4\267\5\211\6\267\3\211\1\267\5\0\1\230"+ - "\2\0\1\231\2\0\1\233\4\0\1\234\2\0\1\235"+ - "\40\0\2\63\1\0\2\63\3\0\4\63\2\0\10\63"+ - "\4\0\2\63\1\0\2\63\4\0\1\271\4\63\6\0"+ - "\3\63\2\0\2\63\1\0\2\63\3\0\4\63\2\0"+ - "\10\63\4\0\2\63\1\0\2\63\4\0\1\63\1\272"+ - "\3\63\6\0\3\63\50\0\1\273\36\0\1\274\50\0"+ - "\1\275\70\0\1\276\44\0\2\63\1\0\2\63\3\0"+ - "\4\63\2\0\10\63\4\0\2\63\1\0\2\63\4\0"+ - "\4\63\1\277\6\0\3\63\2\0\2\63\1\0\2\63"+ - "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\2\63\1\300\2\63\6\0\3\63\6\0\1\301"+ - "\2\0\1\231\70\0\1\302\55\0\1\303\71\0\1\304"+ - "\47\0\1\305\66\0\1\306\76\0\1\307\51\0\1\310"+ - "\73\0\1\311\55\0\1\312\1\313\77\0\1\314\26\0"+ - "\1\241\25\0\1\315\34\0\1\316\6\0\3\316\7\0"+ - "\1\316\10\0\1\316\13\0\1\316\7\0\1\316\2\0"+ - "\11\46\1\317\31\46\1\0\21\46\1\246\25\46\1\320"+ - "\12\46\1\0\21\46\1\321\6\46\3\321\7\46\1\321"+ - "\10\46\1\321\6\46\1\0\4\46\1\321\7\46\1\321"+ - "\2\46\11\54\1\322\30\54\1\0\22\54\1\253\25\54"+ - "\1\323\11\54\1\0\22\54\1\324\6\54\3\324\7\54"+ - "\1\324\10\54\1\324\5\54\1\0\5\54\1\324\7\54"+ - "\1\324\2\54\5\67\1\305\62\67\1\175\3\67\1\325"+ - "\52\67\2\201\1\67\1\201\1\160\3\67\4\201\2\67"+ - "\10\201\1\67\1\262\2\67\2\201\1\67\2\201\4\67"+ - "\5\201\6\67\3\201\3\67\1\263\2\67\1\175\22\67"+ - "\1\326\34\67\1\327\2\67\1\175\3\67\3\327\7\67"+ - "\1\327\10\67\1\327\13\67\1\327\7\67\1\327\2\67"+ - "\1\0\2\63\1\0\2\63\3\0\4\63\2\0\2\63"+ - "\1\330\5\63\4\0\2\63\1\0\2\63\4\0\5\63"+ - "\6\0\3\63\2\0\2\63\1\0\2\63\3\0\3\63"+ - "\1\331\2\0\10\63\4\0\2\63\1\0\2\63\4\0"+ - "\5\63\6\0\3\63\1\0\5\267\1\332\56\267\2\211"+ - "\1\267\1\211\1\333\3\267\4\211\2\267\10\211\4\267"+ - "\2\211\1\267\2\211\4\267\5\211\6\267\3\211\1\267"+ - "\1\0\2\63\1\0\2\63\3\0\3\63\1\334\2\0"+ - "\10\63\4\0\2\63\1\0\2\63\4\0\5\63\6\0"+ - "\3\63\46\0\1\335\74\0\1\336\15\0\1\337\131\0"+ - "\1\340\2\0\2\63\1\0\2\63\3\0\4\63\2\0"+ - "\2\63\1\341\5\63\4\0\2\63\1\0\2\63\4\0"+ - "\5\63\6\0\3\63\2\0\2\63\1\0\2\63\3\0"+ - "\3\63\1\342\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\5\63\6\0\3\63\6\0\1\26\76\0\1\343"+ - "\66\0\1\344\47\0\1\345\61\0\1\346\65\0\1\347"+ - "\62\0\1\350\62\0\1\351\71\0\1\352\76\0\1\353"+ - "\25\0\1\316\6\0\3\316\7\0\1\316\4\0\1\315"+ - "\3\0\1\316\13\0\1\316\7\0\1\316\2\0\12\46"+ - "\1\354\30\46\1\0\21\46\1\321\6\46\3\321\7\46"+ - "\1\321\4\46\1\320\3\46\1\321\6\46\1\0\4\46"+ - "\1\321\7\46\1\321\2\46\12\54\1\355\27\54\1\0"+ - "\22\54\1\324\6\54\3\324\7\54\1\324\4\54\1\323"+ - "\3\54\1\324\5\54\1\0\5\54\1\324\7\54\1\324"+ - "\2\54\5\67\1\175\4\67\1\356\52\67\1\327\2\67"+ - "\1\175\3\67\3\327\7\67\1\327\4\67\1\326\3\67"+ - "\1\327\13\67\1\327\7\67\1\327\2\67\1\0\2\63"+ - "\1\0\2\63\3\0\4\63\2\0\1\357\7\63\4\0"+ - "\2\63\1\0\2\63\4\0\5\63\6\0\3\63\2\0"+ - "\2\63\1\0\2\63\3\0\4\63\2\0\4\63\1\360"+ - "\3\63\4\0\2\63\1\0\2\63\4\0\5\63\6\0"+ - "\3\63\1\0\5\267\1\361\55\267\1\0\2\63\1\0"+ - "\2\63\3\0\4\63\2\0\10\63\4\0\2\63\1\0"+ - "\2\63\4\0\1\362\4\63\6\0\3\63\22\0\1\363"+ - "\63\0\1\364\53\0\1\365\72\0\1\366\40\0\2\63"+ - "\1\0\2\63\3\0\4\63\2\0\1\367\7\63\4\0"+ - "\2\63\1\0\2\63\4\0\5\63\6\0\3\63\2\0"+ - "\2\63\1\0\2\63\3\0\4\63\2\0\4\63\1\370"+ - "\3\63\4\0\2\63\1\0\2\63\4\0\5\63\6\0"+ - "\3\63\23\0\1\371\66\0\1\372\47\0\1\373\63\0"+ - "\1\374\67\0\1\375\54\0\1\376\66\0\1\377\112\0"+ - "\1\u0100\53\0\1\u0101\22\0\13\46\1\u0102\27\46\1\0"+ - "\17\46\13\54\1\u0103\26\54\1\0\20\54\5\67\1\175"+ - "\5\67\1\u0104\47\67\1\0\2\63\1\0\2\63\3\0"+ - "\1\u0105\3\63\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\5\63\6\0\3\63\2\0\2\63\1\0\2\63"+ - "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+ - "\4\0\3\63\1\u0106\1\63\6\0\3\63\20\0\1\u0107"+ - "\62\0\1\u0108\57\0\1\u0109\60\0\1\u010a\51\0\2\63"+ - "\1\0\2\63\3\0\1\u010b\3\63\2\0\10\63\4\0"+ - "\2\63\1\0\2\63\4\0\5\63\6\0\3\63\2\0"+ - "\2\63\1\0\2\63\3\0\4\63\2\0\10\63\4\0"+ - "\2\63\1\0\2\63\4\0\3\63\1\u010c\1\63\6\0"+ - "\3\63\13\0\1\u010d\73\0\1\u010e\53\0\1\u010f\112\0"+ - "\1\u0110\35\0\1\u0111\57\0\1\u0112\62\0\1\u0113\71\0"+ - "\1\u0114\37\0\14\46\1\u0115\26\46\1\0\17\46\14\54"+ - "\1\u0116\25\54\1\0\20\54\5\67\1\175\6\67\1\u0117"+ - "\46\67\23\0\1\u0118\65\0\1\u0119\47\0\1\u011a\72\0"+ - "\1\u011b\52\0\1\u011c\114\0\1\u011d\63\0\1\u011e\33\0"+ - "\1\u011f\107\0\1\u0120\36\0\1\u0121\42\0\13\46\1\u0122"+ - "\27\46\1\0\17\46\13\54\1\u0123\26\54\1\0\20\54"+ - "\5\67\1\175\5\67\1\u0124\47\67\12\0\1\u0125\73\0"+ - "\1\u0126\47\0\1\u0127\75\0\1\u0128\53\0\1\u0129\73\0"+ - "\1\u012a\51\0\1\u012b\46\0\10\46\1\u012c\32\46\1\0"+ - "\17\46\10\54\1\u012d\31\54\1\0\20\54\5\67\1\175"+ - "\2\67\1\u012e\52\67\12\0\1\u012f\70\0\1\u0130\42\0"; + "\1\26\2\27\3\26\1\30\1\31\14\26\1\32\30\26"+ + "\1\33\5\26\1\34\2\27\3\34\1\35\1\31\12\34"+ + "\1\36\1\34\1\37\1\34\1\40\1\41\24\36\1\34"+ + "\1\42\4\36\2\34\2\27\1\34\1\43\1\34\1\35"+ + "\1\31\1\44\13\34\1\37\1\45\27\34\1\42\5\34"+ + "\4\46\1\47\1\46\1\50\1\51\14\46\1\52\30\46"+ + "\1\53\5\46\6\54\1\55\1\56\1\47\13\54\1\57"+ + "\30\54\1\60\5\54\1\34\2\27\3\34\1\35\1\31"+ + "\12\34\1\61\1\34\1\62\3\34\24\61\1\34\1\42"+ + "\4\61\2\34\2\27\3\34\1\35\1\31\10\34\1\63"+ + "\1\34\1\64\1\34\1\62\1\65\1\66\1\34\24\64"+ + "\1\34\1\42\4\64\1\34\6\67\1\70\1\71\6\67"+ + "\1\72\5\67\1\73\30\67\1\74\5\67\1\34\2\27"+ + "\1\34\1\75\1\34\1\35\1\31\1\76\7\34\1\63"+ + "\3\34\1\62\1\34\1\66\26\34\1\42\5\34\4\77"+ + "\1\100\1\77\1\101\1\102\14\77\1\62\30\77\1\103"+ + "\13\77\1\101\1\102\1\100\13\77\1\62\30\77\1\103"+ + "\5\77\6\104\1\105\1\106\14\104\1\107\2\104\1\110"+ + "\25\104\1\111\5\104\6\34\1\35\1\31\6\34\1\112"+ + "\5\34\1\37\30\34\1\42\6\34\2\27\3\34\1\35"+ + "\1\31\12\34\1\64\1\34\1\37\1\34\1\113\1\34"+ + "\14\64\1\114\2\64\1\115\4\64\1\116\1\42\4\64"+ + "\2\34\2\27\1\34\1\117\1\34\1\35\1\31\1\120"+ + "\13\34\1\37\1\34\1\113\25\34\1\116\1\42\6\34"+ + "\2\27\1\34\1\121\1\122\1\123\1\124\1\125\1\126"+ + "\1\127\1\130\1\131\1\132\1\133\1\64\1\34\2\64"+ + "\1\134\1\135\1\34\1\136\1\137\1\140\3\64\1\141"+ + "\7\64\1\142\2\64\1\143\4\64\1\34\1\144\4\64"+ + "\1\145\4\46\1\146\1\46\1\50\1\51\14\46\1\52"+ + "\30\46\1\53\5\46\6\54\1\55\1\56\1\146\13\54"+ + "\1\57\30\54\1\60\5\54\6\26\1\30\1\147\14\26"+ + "\1\150\30\26\1\151\5\26\1\34\2\27\3\34\1\35"+ + "\1\31\14\34\1\37\12\34\1\152\14\34\1\116\1\42"+ + "\5\34\6\67\1\70\1\71\6\67\1\153\5\67\1\73"+ + "\30\67\1\74\5\67\64\0\2\27\102\0\1\154\5\0"+ + "\24\154\2\0\4\154\6\0\1\155\14\0\1\154\5\0"+ + "\24\154\2\0\4\154\4\0\1\156\14\0\1\157\6\0"+ + "\1\160\110\0\1\161\23\0\2\36\1\0\2\36\5\0"+ + "\24\36\2\0\4\36\4\0\1\162\105\0\1\163\34\0"+ + "\4\46\1\0\62\46\1\0\15\46\1\164\5\46\24\164"+ + "\2\46\4\164\5\46\1\0\1\165\14\46\1\164\5\46"+ + "\24\164\2\46\4\164\4\46\1\166\1\0\62\46\1\0"+ + "\50\46\1\167\5\46\10\54\1\0\62\54\1\0\11\54"+ + "\1\170\5\54\24\170\2\54\4\170\6\54\1\171\2\54"+ + "\1\0\11\54\1\170\5\54\24\170\2\54\4\170\4\54"+ + "\1\172\4\54\1\0\62\54\1\0\44\54\1\173\5\54"+ + "\16\0\2\61\1\0\2\61\5\0\24\61\2\0\4\61"+ + "\4\0\1\162\14\0\1\157\70\0\1\174\52\0\2\64"+ + "\1\0\2\64\5\0\24\64\2\0\4\64\1\0\16\67"+ + "\1\175\62\67\1\175\3\67\1\176\5\67\24\176\2\67"+ + "\4\176\6\67\1\177\10\67\1\175\3\67\1\176\5\67"+ + "\24\176\2\67\4\176\17\67\1\200\47\67\1\201\12\67"+ + "\1\175\62\67\1\175\36\67\1\202\5\67\26\0\1\203"+ + "\52\0\1\204\62\0\2\64\1\0\2\64\5\0\21\64"+ + "\1\205\2\64\2\0\4\64\17\0\2\64\1\0\2\64"+ + "\5\0\23\64\1\206\2\0\4\64\1\0\4\207\1\77"+ + "\56\207\10\210\1\77\52\210\35\0\1\211\1\0\1\212"+ + "\4\0\1\213\1\0\1\214\32\0\1\215\1\64\1\0"+ + "\2\64\5\0\24\64\2\0\4\64\4\0\1\216\75\0"+ + "\2\64\1\0\2\64\5\0\12\64\1\217\11\64\2\0"+ + "\4\64\17\0\2\64\1\0\2\64\5\0\11\64\1\220"+ + "\12\64\2\0\4\64\17\0\2\64\1\0\2\64\5\0"+ + "\21\64\1\221\2\64\2\0\4\64\17\0\2\64\1\0"+ + "\2\64\5\0\23\64\1\222\2\0\4\64\4\0\1\223"+ + "\134\0\1\224\43\0\1\225\3\0\1\226\20\0\16\67"+ + "\1\227\44\67\16\0\2\154\1\0\2\154\1\230\4\0"+ + "\24\154\2\0\4\154\22\0\1\231\37\0\1\232\17\0"+ + "\1\233\11\0\1\234\2\0\1\235\1\236\5\0\1\237"+ + "\11\0\1\240\67\0\1\241\27\0\1\242\52\0\1\233"+ + "\35\0\1\240\6\0\4\46\1\0\11\46\2\164\1\46"+ + "\2\164\1\243\4\46\24\164\2\46\4\164\5\46\1\0"+ + "\14\46\1\244\37\46\1\245\5\46\1\0\47\46\1\246"+ + "\12\46\1\0\21\46\1\247\34\46\10\54\1\0\5\54"+ + "\2\170\1\54\2\170\1\250\4\54\24\170\2\54\4\170"+ + "\11\54\1\0\10\54\1\251\37\54\1\252\11\54\1\0"+ + "\43\54\1\253\16\54\1\0\15\54\1\254\34\54\16\67"+ + "\1\0\62\67\1\255\1\176\1\67\2\176\1\256\4\67"+ + "\24\176\2\67\4\176\17\67\1\175\2\67\1\257\37\67"+ + "\1\260\1\67\26\0\1\261\34\0\16\67\1\262\35\67"+ + "\1\263\24\67\1\175\7\67\1\264\34\67\16\0\2\64"+ + "\1\0\2\64\5\0\1\64\1\265\22\64\2\0\4\64"+ + "\17\0\2\64\1\0\2\64\5\0\17\64\1\266\4\64"+ + "\2\0\4\64\40\0\1\267\64\0\1\270\53\0\1\271"+ + "\64\0\1\272\26\0\16\273\1\274\1\215\1\273\2\215"+ + "\5\273\24\215\2\273\4\215\1\273\16\0\1\233\11\0"+ + "\1\234\3\0\1\236\5\0\1\237\11\0\1\240\24\0"+ + "\2\64\1\0\2\64\5\0\23\64\1\275\2\0\4\64"+ + "\17\0\2\64\1\0\2\64\5\0\14\64\1\276\7\64"+ + "\2\0\4\64\17\0\2\64\1\0\2\64\5\0\1\64"+ + "\1\277\22\64\2\0\4\64\17\0\2\64\1\0\2\64"+ + "\5\0\17\64\1\300\4\64\2\0\4\64\17\0\1\301"+ + "\35\0\1\240\34\0\1\302\76\0\1\303\52\0\1\304"+ + "\51\0\1\231\1\0\1\305\60\0\1\306\6\0\6\306"+ + "\20\0\1\306\22\0\1\307\114\0\1\310\55\0\1\311"+ + "\57\0\1\312\1\0\1\313\63\0\1\314\51\0\1\315"+ + "\110\0\1\316\2\0\4\46\1\0\14\46\1\244\1\46"+ + "\1\317\43\46\1\0\14\46\1\320\6\46\6\320\20\46"+ + "\1\320\10\46\1\0\25\46\1\321\30\46\10\54\1\0"+ + "\10\54\1\251\1\54\1\322\47\54\1\0\10\54\1\323"+ + "\6\54\6\323\20\54\1\323\14\54\1\0\21\54\1\324"+ + "\30\54\16\67\1\154\1\176\1\67\2\176\1\256\4\67"+ + "\24\176\2\67\4\176\17\67\1\175\2\67\1\257\1\67"+ + "\1\325\55\67\1\175\2\67\1\326\6\67\6\326\20\67"+ + "\1\326\22\67\1\307\62\67\1\175\13\67\1\327\30\67"+ + "\16\0\2\64\1\0\2\64\5\0\10\64\1\330\13\64"+ + "\2\0\4\64\17\0\2\64\1\0\2\64\5\0\20\64"+ + "\1\331\3\64\2\0\4\64\53\0\1\332\54\0\1\333"+ + "\51\0\1\334\74\0\1\335\15\0\16\273\1\336\62\273"+ + "\1\337\1\215\1\273\2\215\5\273\24\215\2\273\4\215"+ + "\1\273\16\0\2\64\1\0\2\64\5\0\20\64\1\340"+ + "\3\64\2\0\4\64\17\0\2\64\1\0\2\64\5\0"+ + "\10\64\1\341\13\64\2\0\4\64\17\0\2\64\1\0"+ + "\2\64\5\0\20\64\1\342\3\64\2\0\4\64\17\0"+ + "\1\26\107\0\1\343\57\0\1\344\43\0\1\306\1\0"+ + "\1\305\4\0\6\306\20\0\1\306\54\0\1\345\44\0"+ + "\1\346\64\0\1\347\76\0\1\350\62\0\1\351\45\0"+ + "\1\352\106\0\1\353\3\0\4\46\1\0\14\46\1\320"+ + "\1\46\1\317\4\46\6\320\20\46\1\320\10\46\1\0"+ + "\26\46\1\354\27\46\10\54\1\0\10\54\1\323\1\54"+ + "\1\322\4\54\6\323\20\54\1\323\14\54\1\0\22\54"+ + "\1\355\27\54\16\67\1\175\2\67\1\326\1\67\1\325"+ + "\4\67\6\326\20\67\1\326\22\67\1\175\14\67\1\356"+ + "\27\67\16\0\2\64\1\0\2\64\5\0\7\64\1\357"+ + "\14\64\2\0\4\64\17\0\2\64\1\0\2\64\5\0"+ + "\4\64\1\360\17\64\2\0\4\64\35\0\1\361\66\0"+ + "\1\362\52\0\1\363\103\0\1\364\11\0\16\273\1\365"+ + "\44\273\16\0\2\64\1\0\2\64\5\0\23\64\1\366"+ + "\2\0\4\64\17\0\2\64\1\0\2\64\5\0\7\64"+ + "\1\367\14\64\2\0\4\64\17\0\2\64\1\0\2\64"+ + "\5\0\4\64\1\370\17\64\2\0\4\64\47\0\1\371"+ + "\65\0\1\372\51\0\1\373\72\0\1\374\53\0\1\375"+ + "\60\0\1\376\53\0\1\377\62\0\1\u0100\34\0\1\u0101"+ + "\60\0\4\46\1\0\23\46\1\u0102\32\46\10\54\1\0"+ + "\17\54\1\u0103\32\54\16\67\1\175\11\67\1\u0104\32\67"+ + "\16\0\2\64\1\0\2\64\5\0\2\64\1\u0105\21\64"+ + "\2\0\4\64\17\0\2\64\1\0\2\64\5\0\11\64"+ + "\1\u0106\12\64\2\0\4\64\34\0\1\u0107\66\0\1\u0108"+ + "\73\0\1\u0109\51\0\1\u010a\41\0\2\64\1\0\2\64"+ + "\5\0\2\64\1\u010b\21\64\2\0\4\64\17\0\2\64"+ + "\1\0\2\64\5\0\11\64\1\u010c\12\64\2\0\4\64"+ + "\35\0\1\u010d\61\0\1\u010e\66\0\1\u010f\76\0\1\u0110"+ + "\43\0\1\u0111\76\0\1\u0112\62\0\1\u0113\62\0\1\u0114"+ + "\12\0\4\46\1\0\43\46\1\u0115\12\46\10\54\1\0"+ + "\37\54\1\u0116\12\54\16\67\1\175\31\67\1\u0117\12\67"+ + "\34\0\1\u0118\56\0\1\u0119\100\0\1\u011a\50\0\1\u011b"+ + "\75\0\1\u011c\57\0\1\u011d\60\0\1\u011e\73\0\1\u011f"+ + "\46\0\1\u0120\53\0\1\u0121\32\0\4\46\1\0\23\46"+ + "\1\u0122\32\46\10\54\1\0\17\54\1\u0123\32\54\16\67"+ + "\1\175\11\67\1\u0124\32\67\33\0\1\u0125\63\0\1\u0126"+ + "\76\0\1\u0127\46\0\1\u0128\76\0\1\u0129\55\0\1\u012a"+ + "\73\0\1\u012b\6\0\4\46\1\0\47\46\1\u012c\6\46"+ + "\10\54\1\0\43\54\1\u012d\6\54\16\67\1\175\35\67"+ + "\1\u012e\6\67\33\0\1\u012f\71\0\1\u0130\20\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[11067]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -537,25 +590,25 @@ public class _DtdLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\2\1\2\0\1\1\14\0\1\1\1\11\5\1"+ - "\1\11\3\1\1\11\2\1\3\11\5\1\1\11\10\1"+ - "\2\11\7\1\3\11\3\1\2\11\6\1\2\11\10\1"+ - "\1\11\2\1\1\11\2\1\3\11\2\1\7\11\5\1"+ - "\1\0\1\1\1\11\4\0\1\11\10\1\1\11\2\0"+ - "\4\1\2\11\2\1\2\0\1\1\1\0\2\1\4\0"+ - "\2\1\4\0\1\11\1\0\1\1\5\0\2\11\2\0"+ - "\12\1\1\11\1\0\2\1\1\0\5\1\1\0\3\1"+ - "\4\0\2\1\1\0\1\11\2\0\1\11\7\0\1\11"+ - "\1\0\13\1\1\0\2\1\4\0\2\1\11\0\5\1"+ - "\1\11\1\1\4\0\2\1\10\0\1\11\5\1\3\0"+ - "\1\11\2\1\1\0\1\11\6\0\3\1\2\0\2\11"+ - "\4\0\1\11\1\0\3\1\1\11\1\0\3\11\1\0"+ - "\1\11\3\1\2\11"; + "\1\11\3\1\1\11\2\1\3\11\1\1\1\11\15\1"+ + "\2\11\6\1\4\11\3\1\1\11\6\1\1\11\2\1"+ + "\1\11\2\1\1\11\3\1\6\11\1\1\1\11\1\1"+ + "\2\11\5\1\2\11\5\1\3\0\1\11\1\1\2\0"+ + "\1\11\10\1\1\11\1\0\2\1\1\0\2\1\2\11"+ + "\2\1\6\0\1\1\1\0\4\1\4\0\2\11\7\0"+ + "\1\1\1\0\1\11\12\1\1\0\3\1\1\11\1\0"+ + "\4\1\5\0\5\1\1\0\1\11\2\0\1\11\1\0"+ + "\1\11\7\0\13\1\5\0\4\1\11\0\5\1\4\0"+ + "\1\11\3\1\10\0\1\11\5\1\1\11\3\0\2\1"+ + "\1\11\7\0\3\1\1\0\1\11\1\0\1\11\3\0"+ + "\1\11\2\0\3\1\1\11\1\0\3\11\1\0\1\11"+ + "\3\1\2\11"; private static int [] zzUnpackAttribute() { int [] result = new int[304]; @@ -602,15 +655,27 @@ public class _DtdLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -632,26 +697,22 @@ public class _DtdLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -783,7 +844,8 @@ public class _DtdLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -817,7 +879,7 @@ public class _DtdLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -839,11 +901,11 @@ public class _DtdLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -866,360 +928,360 @@ public class _DtdLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; - } - // fall through + } + // fall through case 72: break; - case 2: + case 2: { return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 73: break; - case 3: + case 3: { return XmlTokenType.XML_DATA_CHARACTERS; - } - // fall through + } + // fall through case 74: break; - case 4: + case 4: { return XmlTokenType.XML_WHITE_SPACE; - } - // fall through + } + // fall through case 75: break; - case 5: - { yybegin(TAG_NAME); return XmlTokenType.XML_START_TAG_START; - } - // fall through - case 76: break; - case 6: + case 5: { return XmlTokenType.XML_BAD_CHARACTER; - } - // fall through + } + // fall through + case 76: break; + case 6: + { yybegin(TAG_NAME); return XmlTokenType.XML_START_TAG_START; + } + // fall through case 77: break; - case 7: + case 7: { yybegin(DECL_ATTR); return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 78: break; - case 8: + case 8: { yybegin(YYINITIAL); return XmlTokenType.XML_BAD_CHARACTER; - } - // fall through + } + // fall through case 79: break; - case 9: - { return XmlTokenType.XML_EQ; - } - // fall through - case 80: break; - case 10: - { yybegin(DECL_ATTR_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through - case 81: break; - case 11: + case 9: { yybegin(DECL_ATTR_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through + } + // fall through + case 80: break; + case 10: + { yybegin(DECL_ATTR_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; + } + // fall through + case 81: break; + case 11: + { return XmlTokenType.XML_EQ; + } + // fall through case 82: break; - case 12: + case 12: { yybegin(DECL); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; - } - // fall through + } + // fall through case 83: break; - case 13: + case 13: { yybegin(TAG_ATTRIBUTES); return isHighlightModeOn ? XmlTokenType.XML_TAG_NAME:XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 84: break; - case 14: + case 14: { return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 85: break; - case 15: - { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END; - } - // fall through - case 86: break; - case 16: + case 15: { yybegin(ATTRIBUTE_VALUE_START); return XmlTokenType.XML_EQ; - } - // fall through + } + // fall through + case 86: break; + case 16: + { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END; + } + // fall through case 87: break; - case 17: - { yybegin(ATTRIBUTE_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through - case 88: break; - case 18: + case 17: { yybegin(ATTRIBUTE_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through + } + // fall through + case 88: break; + case 18: + { yybegin(ATTRIBUTE_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; + } + // fall through case 89: break; - case 19: + case 19: { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; - } - // fall through + } + // fall through case 90: break; - case 20: + case 20: { return XmlTokenType.XML_PI_TARGET; - } - // fall through + } + // fall through case 91: break; - case 21: - { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_MARKUP_START; - } - // fall through - case 92: break; - case 22: + case 21: { yybegin(YYINITIAL); return XmlTokenType.XML_DOCTYPE_END; - } - // fall through + } + // fall through + case 92: break; + case 22: + { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_MARKUP_START; + } + // fall through case 93: break; - case 23: - { yybegin(DOCTYPE); return XmlTokenType.XML_MARKUP_END; - } - // fall through - case 94: break; - case 24: - { return XmlTokenType.XML_TAG_END; - } - // fall through - case 95: break; - case 25: - { return XmlTokenType.XML_AMP; - } - // fall through - case 96: break; - case 26: - { return XmlTokenType.XML_SEMI; - } - // fall through - case 97: break; - case 27: - { return XmlTokenType.XML_PERCENT; - } - // fall through - case 98: break; - case 28: - { return XmlTokenType.XML_QUESTION; - } - // fall through - case 99: break; - case 29: - { yybegin(DOCTYPE_MARKUP_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through - case 100: break; - case 30: + case 23: { yybegin(DOCTYPE_MARKUP_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through - case 101: break; - case 31: + } + // fall through + case 94: break; + case 24: + { return XmlTokenType.XML_PERCENT; + } + // fall through + case 95: break; + case 25: + { return XmlTokenType.XML_AMP; + } + // fall through + case 96: break; + case 26: + { yybegin(DOCTYPE_MARKUP_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; + } + // fall through + case 97: break; + case 27: { return XmlTokenType.XML_LEFT_PAREN; - } - // fall through - case 102: break; - case 32: + } + // fall through + case 98: break; + case 28: { return XmlTokenType.XML_RIGHT_PAREN; - } - // fall through - case 103: break; - case 33: - { return XmlTokenType.XML_PLUS; - } - // fall through - case 104: break; - case 34: + } + // fall through + case 99: break; + case 29: { return XmlTokenType.XML_STAR; - } - // fall through - case 105: break; - case 35: - { return XmlTokenType.XML_BAR; - } - // fall through - case 106: break; - case 36: + } + // fall through + case 100: break; + case 30: + { return XmlTokenType.XML_PLUS; + } + // fall through + case 101: break; + case 31: { return XmlTokenType.XML_COMMA; - } - // fall through + } + // fall through + case 102: break; + case 32: + { return XmlTokenType.XML_SEMI; + } + // fall through + case 103: break; + case 33: + { return XmlTokenType.XML_TAG_END; + } + // fall through + case 104: break; + case 34: + { return XmlTokenType.XML_QUESTION; + } + // fall through + case 105: break; + case 35: + { yybegin(DOCTYPE); return XmlTokenType.XML_MARKUP_END; + } + // fall through + case 106: break; + case 36: + { return XmlTokenType.XML_BAR; + } + // fall through case 107: break; - case 37: + case 37: { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; - } - // fall through + } + // fall through case 108: break; - case 38: - { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START; - } - // fall through - case 109: break; - case 39: + case 38: { yybegin(TAG_NAME); return XmlTokenType.XML_END_TAG_START; - } - // fall through + } + // fall through + case 109: break; + case 39: + { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START; + } + // fall through case 110: break; - case 40: + case 40: { yybegin(YYINITIAL); return XmlTokenType.XML_DECL_END; - } - // fall through + } + // fall through case 111: break; - case 41: + case 41: { yybegin(YYINITIAL); return XmlTokenType.XML_EMPTY_ELEMENT_END; - } - // fall through + } + // fall through case 112: break; - case 42: + case 42: { yybegin(YYINITIAL); return XmlTokenType.XML_PI_END; - } - // fall through + } + // fall through case 113: break; - case 43: + case 43: { yybegin(DOCTYPE_COMMENT); return XmlTokenType.XML_COMMENT_START; - } - // fall through + } + // fall through case 114: break; - case 44: + case 44: { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_COMMENT_END; - } - // fall through + } + // fall through case 115: break; - case 45: - { yybegin(CONDITIONAL); return XmlTokenType.XML_CONDITIONAL_SECTION_START; - } - // fall through - case 116: break; - case 46: - { yybegin(YYINITIAL); return XmlTokenType.XML_CONDITIONAL_SECTION_END; - } - // fall through - case 117: break; - case 47: + case 45: { return XmlTokenType.XML_ENTITY_REF_TOKEN; - } - // fall through + } + // fall through + case 116: break; + case 46: + { yybegin(CONDITIONAL); return XmlTokenType.XML_CONDITIONAL_SECTION_START; + } + // fall through + case 117: break; + case 47: + { yybegin(YYINITIAL); return XmlTokenType.XML_CONDITIONAL_SECTION_END; + } + // fall through case 118: break; - case 48: + case 48: { yybegin(YYINITIAL); return XmlTokenType.XML_COMMENT_END; - } - // fall through + } + // fall through case 119: break; - case 49: + case 49: { return XmlTokenType.XML_CONTENT_ANY; - } - // fall through + } + // fall through case 120: break; - case 50: + case 50: { yybegin(YYINITIAL); return XmlTokenType.XML_CDATA_END; - } - // fall through + } + // fall through case 121: break; - case 51: - { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START; - } - // fall through - case 122: break; - case 52: + case 51: { return XmlTokenType.XML_CHAR_ENTITY_REF; - } - // fall through + } + // fall through + case 122: break; + case 52: + { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START; + } + // fall through case 123: break; - case 53: + case 53: { yybegin(DOCTYPE_MARKUP_STARTED); yypushback(yylength()); - } - // fall through + } + // fall through case 124: break; - case 54: + case 54: { return XmlTokenType.XML_CONTENT_EMPTY; - } - // fall through + } + // fall through case 125: break; - case 55: + case 55: { yybegin(DECL); return XmlTokenType.XML_DECL_START; - } - // fall through + } + // fall through case 126: break; - case 56: + case 56: { yybegin(DOCTYPE_EXTERNAL_ID); return XmlTokenType.XML_DOCTYPE_PUBLIC; - } - // fall through + } + // fall through case 127: break; - case 57: + case 57: { yybegin(DOCTYPE_EXTERNAL_ID); return XmlTokenType.XML_DOCTYPE_SYSTEM; - } - // fall through + } + // fall through case 128: break; - case 58: + case 58: { return XmlTokenType.XML_ATT_FIXED; - } - // fall through + } + // fall through case 129: break; - case 59: + case 59: { return XmlTokenType.XML_DOCTYPE_PUBLIC; - } - // fall through + } + // fall through case 130: break; - case 60: + case 60: { return XmlTokenType.XML_DOCTYPE_SYSTEM; - } - // fall through + } + // fall through case 131: break; - case 61: + case 61: { return XmlTokenType.XML_CONDITIONAL_IGNORE; - } - // fall through + } + // fall through case 132: break; - case 62: + case 62: { return XmlTokenType.XML_PCDATA; - } - // fall through + } + // fall through case 133: break; - case 63: + case 63: { return XmlTokenType.XML_CONDITIONAL_INCLUDE; - } - // fall through + } + // fall through case 134: break; - case 64: + case 64: { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ENTITY_DECL_START; - } - // fall through + } + // fall through case 135: break; - case 65: + case 65: { return XmlTokenType.XML_ATT_IMPLIED; - } - // fall through + } + // fall through case 136: break; - case 66: - { yybegin(CDATA); return XmlTokenType.XML_CDATA_START; - } - // fall through - case 137: break; - case 67: - { yybegin(DOCTYPE); return XmlTokenType.XML_DOCTYPE_START; - } - // fall through - case 138: break; - case 68: + case 66: { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ATTLIST_DECL_START; - } - // fall through - case 139: break; - case 69: + } + // fall through + case 137: break; + case 67: + { yybegin(DOCTYPE); return XmlTokenType.XML_DOCTYPE_START; + } + // fall through + case 138: break; + case 68: { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ELEMENT_DECL_START; - } - // fall through + } + // fall through + case 139: break; + case 69: + { yybegin(CDATA); return XmlTokenType.XML_CDATA_START; + } + // fall through case 140: break; - case 70: + case 70: { return XmlTokenType.XML_ATT_REQUIRED; - } - // fall through + } + // fall through case 141: break; - case 71: + case 71: { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_NOTATION_DECL_START; - } - // fall through + } + // fall through case 142: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/xml/xml-psi-impl/gen/com/intellij/lexer/_HtmlLexer.java b/xml/xml-psi-impl/gen/com/intellij/lexer/_HtmlLexer.java index 98981f80ffc4..3739d68d310a 100644 --- a/xml/xml-psi-impl/gen/com/intellij/lexer/_HtmlLexer.java +++ b/xml/xml-psi-impl/gen/com/intellij/lexer/_HtmlLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _HtmlLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.lexer; @@ -8,11 +9,6 @@ import com.intellij.psi.*; import com.intellij.psi.xml.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _HtmlLexer.flex - */ public class _HtmlLexer implements FlexLexer { /** This character denotes the end of file */ @@ -43,145 +39,261 @@ public class _HtmlLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14112 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\2\1\2\13\1\30\1\1\1\32\1\25\5"+ - "\13\1\33\1\34\1\35\1\1\1\36\1\13\1\1\1\37\5\13\1\40\1\41\1\42\1\13\1\30\1"+ - "\43\1\13\1\44\1\45\1\1\1\13\1\46\4\1\1\13\1\47\4\1\1\50\2\13\1\51\1\1\1\52"+ - "\1\16\1\25\1\53\1\54\1\55\1\56\1\57\1\60\2\16\1\61\1\54\1\55\1\62\1\1\1\63"+ - "\1\1\1\64\1\65\1\22\1\55\1\66\1\1\1\67\1\16\1\70\1\71\1\54\1\55\1\66\1\1\1"+ - "\60\1\16\1\41\1\72\1\73\1\74\1\75\1\1\1\67\2\1\1\76\1\36\1\55\1\51\1\1\1\77"+ - "\1\16\1\1\1\100\1\36\1\55\1\101\1\1\1\57\1\16\1\102\1\76\1\36\1\13\1\103\1"+ - "\57\1\104\1\16\1\42\1\105\1\106\1\13\1\107\1\110\3\1\1\25\2\13\1\111\1\110"+ - "\3\1\1\112\1\113\1\114\1\115\1\116\1\117\2\1\1\67\3\1\1\120\1\13\1\121\1\1"+ - "\1\122\7\1\2\13\1\30\1\123\1\1\1\124\1\125\1\126\1\127\1\1\2\13\1\130\2\13"+ - "\1\131\24\13\1\132\1\133\2\13\1\132\2\13\1\134\1\135\1\14\3\13\1\135\3\13"+ - "\1\30\2\1\1\13\1\1\5\13\1\136\1\25\45\13\1\137\1\13\1\25\1\30\4\13\1\30\1"+ - "\140\1\141\1\16\1\13\1\16\1\13\1\16\1\141\1\67\3\13\1\142\1\1\1\143\4\1\5"+ - "\13\1\27\1\144\1\13\1\145\4\13\1\40\1\13\1\146\3\1\1\13\1\147\1\150\2\13\1"+ - "\151\1\13\1\75\3\1\1\13\1\110\3\13\1\150\4\1\1\152\5\1\1\105\2\13\1\142\1"+ - "\153\3\1\1\154\1\13\1\155\1\42\2\13\1\40\1\1\2\13\1\142\1\1\1\37\1\42\1\13"+ - "\1\147\1\46\5\1\1\156\1\157\14\13\4\1\21\13\1\136\2\13\1\136\1\160\1\13\1"+ - "\147\3\13\1\161\1\162\1\163\1\121\1\162\2\1\1\164\4\1\1\165\1\1\1\121\6\1"+ - "\1\166\1\167\1\170\1\171\1\172\3\1\1\173\147\1\2\13\1\146\2\13\1\146\10\13"+ - "\1\174\1\175\2\13\1\130\3\13\1\176\1\1\1\13\1\110\4\177\4\1\1\123\35\1\1\200"+ - "\2\1\1\201\1\25\4\13\1\202\1\25\4\13\1\131\1\105\1\13\1\147\1\25\4\13\1\146"+ - "\1\1\1\13\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1\121\4"+ - "\1\2\13\1\147\20\13\1\121\1\13\1\203\1\1\2\13\1\146\1\123\1\13\1\147\4\13"+ - "\1\40\2\1\1\204\1\205\5\13\1\206\1\13\1\146\1\27\3\1\1\204\1\207\1\13\1\31"+ - "\1\1\3\13\1\142\1\205\2\13\1\142\3\1\1\210\1\42\1\13\1\40\1\13\1\110\1\1\1"+ - "\13\1\121\1\50\2\13\1\31\1\123\1\1\1\211\1\212\2\13\1\46\1\1\1\213\1\1\1\13"+ - "\1\214\3\13\1\215\1\216\1\217\1\30\1\64\1\220\1\221\1\177\2\13\1\131\1\40"+ - "\7\13\1\31\1\1\72\13\1\142\1\13\1\222\2\13\1\151\20\1\26\13\1\147\6\13\1\75"+ - "\2\1\1\110\1\223\1\55\1\224\1\225\6\13\1\16\1\1\1\154\25\13\1\147\1\1\4\13"+ - "\1\205\2\13\1\27\2\1\1\151\7\1\1\211\7\13\1\121\2\1\1\25\1\30\1\25\1\30\1"+ - "\226\4\13\1\146\1\227\1\230\2\1\1\231\1\13\1\14\1\232\2\147\2\1\7\13\1\30"+ - "\30\1\1\13\1\121\3\13\1\67\2\1\2\13\1\1\1\13\1\233\2\13\1\40\1\13\1\147\2"+ - "\13\1\234\3\1\11\13\1\147\1\1\2\13\1\234\1\13\1\151\2\13\1\27\3\13\1\142\11"+ - "\1\23\13\1\110\1\13\1\40\1\27\11\1\1\235\2\13\1\236\1\13\1\40\1\13\1\110\1"+ - "\13\1\146\4\1\1\13\1\237\1\13\1\40\1\13\1\75\4\1\3\13\1\240\4\1\1\67\1\241"+ - "\1\13\1\142\2\1\1\13\1\121\1\13\1\121\2\1\1\120\1\13\1\150\1\1\3\13\1\40\1"+ - "\13\1\40\1\13\1\31\1\13\1\16\6\1\4\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1"+ - "\154\2\13\1\27\4\1\1\154\2\13\2\1\1\13\1\46\1\1\1\154\1\13\1\110\2\1\2\13"+ - "\1\242\1\154\2\13\1\31\1\243\1\244\2\1\1\13\1\22\1\151\5\1\1\245\1\246\1\46"+ - "\2\13\1\146\2\1\1\71\1\54\1\55\1\66\1\1\1\247\1\16\11\1\3\13\1\150\1\250\3"+ - "\1\3\13\1\1\1\251\13\1\2\13\1\146\2\1\1\252\2\1\3\13\1\1\1\253\3\1\2\13\1"+ - "\30\5\1\1\13\1\75\30\1\4\13\1\1\1\123\34\1\3\13\1\46\20\1\1\55\1\13\1\146"+ - "\1\1\1\67\2\1\1\205\1\13\67\1\71\13\1\75\16\1\14\13\1\142\53\1\2\13\1\146"+ - "\75\1\44\13\1\110\33\1\43\13\1\46\1\13\1\146\7\1\1\13\1\147\1\1\3\13\1\1\1"+ - "\142\1\1\1\154\1\254\1\13\67\1\4\13\1\150\1\67\3\1\1\154\4\1\1\67\1\1\76\13"+ - "\1\121\1\1\57\13\1\31\20\1\1\16\77\1\6\13\1\30\1\121\1\46\1\75\66\1\5\13\1"+ - "\211\3\13\1\141\1\255\1\256\1\257\3\13\1\260\1\261\1\13\1\262\1\263\1\36\24"+ - "\13\1\264\1\13\1\36\1\131\1\13\1\131\1\13\1\211\1\13\1\211\1\146\1\13\1\146"+ - "\1\13\1\55\1\13\1\55\1\13\1\213\3\1\14\13\1\150\3\1\4\13\1\142\113\1\1\257"+ - "\1\13\1\265\1\266\1\267\1\270\1\271\1\272\1\273\1\151\1\274\1\151\24\1\55"+ - "\13\1\110\2\1\103\13\1\150\15\13\1\147\150\13\1\16\25\1\41\13\1\147\36\1"); - /* The ZZ_CMAP_A table has 3024 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\2\10\1\0\2\10\22\0\1\10\1\14\1\11\1\60\1\51\1\0\1\43\1\12\2\42\3\0\1"+ - "\6\1\5\1\45\12\2\1\4\1\52\1\13\1\7\1\41\1\44\1\0\1\62\1\36\1\20\1\15\1\26"+ - "\1\62\1\1\1\27\1\40\2\1\1\32\1\30\1\1\1\16\1\24\3\1\1\21\1\34\2\1\1\61\1\23"+ - "\1\1\1\46\1\50\1\47\1\0\1\4\1\0\1\54\1\37\1\20\1\15\1\26\1\62\1\53\1\27\1"+ - "\40\2\1\1\33\1\31\1\57\1\17\1\25\1\56\1\1\1\55\1\22\1\35\2\1\1\61\1\23\1\1"+ - "\1\0\1\42\10\0\1\3\24\0\1\1\12\0\1\1\4\0\1\1\5\0\27\1\1\0\12\1\4\0\14\1\16"+ - "\0\5\1\7\0\1\1\1\0\1\1\1\0\5\1\1\0\2\1\2\0\4\1\1\0\1\1\6\0\1\1\1\0\3\1\1\0"+ - "\1\1\1\0\4\1\1\0\23\1\1\0\13\1\10\0\6\1\1\0\26\1\2\0\1\1\6\0\10\1\10\0\13"+ - "\1\5\0\3\1\33\0\6\1\1\0\1\1\17\0\2\1\7\0\2\1\12\0\3\1\2\0\2\1\1\0\16\1\15"+ - "\0\11\1\13\0\1\1\30\0\6\1\4\0\2\1\4\0\1\1\5\0\6\1\4\0\1\1\11\0\1\1\3\0\1\1"+ - "\7\0\11\1\7\0\5\1\1\0\10\1\6\0\26\1\3\0\1\1\2\0\1\1\7\0\11\1\4\0\10\1\2\0"+ - "\2\1\2\0\26\1\1\0\7\1\1\0\1\1\3\0\4\1\3\0\1\1\20\0\1\1\15\0\2\1\1\0\1\1\5"+ - "\0\6\1\4\0\2\1\1\0\2\1\1\0\2\1\1\0\2\1\17\0\4\1\1\0\1\1\3\0\3\1\20\0\11\1"+ - "\1\0\2\1\1\0\2\1\1\0\5\1\3\0\1\1\2\0\1\1\30\0\1\1\13\0\10\1\2\0\1\1\3\0\1"+ - "\1\1\0\6\1\3\0\3\1\1\0\4\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0\2\1\3\0\3\1\3\0\14"+ - "\1\13\0\10\1\1\0\2\1\10\0\3\1\5\0\1\1\4\0\10\1\1\0\6\1\1\0\5\1\3\0\1\1\3\0"+ - "\2\1\15\0\13\1\2\0\1\1\6\0\3\1\10\0\1\1\5\0\22\1\3\0\10\1\1\0\11\1\1\0\1\1"+ - "\2\0\7\1\11\0\1\1\1\0\2\1\15\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1\2\0\1\1\6\0\4\1"+ - "\1\0\7\1\1\0\3\1\1\0\1\1\1\0\1\1\2\0\2\1\1\0\4\1\1\0\2\1\11\0\1\1\2\0\5\1"+ - "\1\0\1\1\25\0\14\1\1\0\24\1\13\0\5\1\22\0\7\1\4\0\4\1\3\0\1\1\3\0\2\1\7\0"+ - "\3\1\4\0\15\1\14\0\1\1\1\0\6\1\1\0\1\1\5\0\1\1\2\0\13\1\1\0\15\1\1\0\4\1\2"+ - "\0\7\1\1\0\1\1\1\0\4\1\2\0\1\1\1\0\4\1\2\0\7\1\1\0\1\1\1\0\4\1\2\0\16\1\2"+ - "\0\6\1\2\0\15\1\2\0\1\1\1\0\10\1\7\0\15\1\1\0\6\1\23\0\1\1\4\0\1\1\3\0\5\1"+ - "\2\0\22\1\1\0\1\1\5\0\17\1\1\0\16\1\2\0\5\1\13\0\14\1\13\0\1\1\15\0\7\1\7"+ - "\0\16\1\15\0\2\1\11\0\4\1\1\0\4\1\3\0\2\1\11\0\10\1\1\0\1\1\1\0\1\1\1\0\1"+ - "\1\1\0\6\1\1\0\7\1\1\0\1\1\3\0\3\1\1\0\7\1\3\0\4\1\2\0\6\1\14\0\2\3\7\0\1"+ - "\1\15\0\1\1\2\0\1\1\4\0\1\1\2\0\12\1\1\0\1\1\3\0\5\1\6\0\1\1\1\0\1\1\1\0\1"+ - "\1\1\0\4\1\1\0\13\1\2\0\4\1\5\0\5\1\4\0\1\1\4\0\2\1\13\0\5\1\6\0\4\1\3\0\2"+ - "\1\14\0\10\1\7\0\10\1\1\0\7\1\6\0\2\1\12\0\5\1\5\0\2\1\3\0\7\1\6\0\3\1\12"+ - "\0\2\1\13\0\11\1\2\0\27\1\2\0\7\1\1\0\3\1\1\0\4\1\1\0\4\1\2\0\6\1\3\0\1\1"+ - "\1\0\1\1\2\0\5\1\1\0\12\1\12\0\5\1\1\0\3\1\1\0\10\1\4\0\7\1\3\0\1\1\3\0\2"+ - "\1\1\0\1\1\3\0\2\1\2\0\5\1\2\0\1\1\1\0\1\1\30\0\3\1\3\0\6\1\2\0\6\1\2\0\6"+ - "\1\11\0\7\1\4\0\5\1\3\0\5\1\5\0\1\1\1\0\10\1\1\0\5\1\1\0\1\1\1\0\2\1\1\0\2"+ - "\1\1\0\12\1\6\0\12\1\2\0\6\1\2\0\6\1\2\0\6\1\2\0\3\1\3\0\14\1\1\0\16\1\1\0"+ - "\2\1\1\0\2\1\1\0\10\1\6\0\4\1\4\0\16\1\2\0\1\1\1\0\14\1\1\0\2\1\3\0\1\1\2"+ - "\0\4\1\1\0\2\1\12\0\10\1\6\0\6\1\1\0\3\1\1\0\12\1\3\0\1\1\12\0\4\1\25\0\1"+ - "\1\1\0\1\1\3\0\7\1\1\0\1\1\1\0\4\1\1\0\17\1\1\0\2\1\14\0\3\1\7\0\4\1\11\0"+ - "\2\1\1\0\1\1\20\0\4\1\10\0\1\1\13\0\10\1\5\0\3\1\2\0\1\1\2\0\2\1\2\0\4\1\1"+ - "\0\14\1\1\0\1\1\1\0\7\1\1\0\21\1\1\0\4\1\2\0\10\1\1\0\7\1\1\0\14\1\1\0\4\1"+ - "\1\0\5\1\1\0\1\1\3\0\14\1\2\0\10\1\1\0\2\1\1\0\1\1\2\0\1\1\1\0\12\1\1\0\4"+ - "\1\1\0\1\1\1\0\1\1\6\0\1\1\4\0\1\1\1\0\1\1\1\0\1\1\1\0\3\1\1\0\2\1\1\0\1\1"+ - "\2\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0\2\1\1\0\1\1\2\0\4\1\1\0\7\1\1"+ - "\0\4\1\1\0\4\1\1\0\1\1\1\0\12\1\1\0\5\1\1\0\3\1\1\0\5\1\1\0\5\1"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\2\1\1\0\2\1\22\0\1\1\1\2\1\3"+ + "\1\4\1\5\1\0\1\6\1\7\2\10\3\0\1\11"+ + "\1\12\1\13\12\14\1\15\1\16\1\17\1\20\1\21"+ + "\1\22\1\0\1\23\1\24\1\25\1\26\1\27\1\23"+ + "\1\30\1\31\1\32\2\30\1\33\1\34\1\30\1\35"+ + "\1\36\3\30\1\37\1\40\2\30\1\41\1\42\1\30"+ + "\1\43\1\44\1\45\1\0\1\15\1\0\1\46\1\47"+ + "\1\25\1\26\1\27\1\23\1\50\1\31\1\32\2\30"+ + "\1\51\1\52\1\53\1\54\1\55\1\56\1\30\1\57"+ + "\1\60\1\61\2\30\1\41\1\42\1\30\1\0\1\10"+ + "\10\0\1\62\44\0\1\30\12\0\1\30\4\0\1\30"+ + "\5\0\27\30\1\0\37\30\1\0\u01ca\30\4\0\14\30"+ + "\16\0\5\30\7\0\1\30\1\0\1\30\201\0\5\30"+ + "\1\0\2\30\2\0\4\30\1\0\1\30\6\0\1\30"+ + "\1\0\3\30\1\0\1\30\1\0\24\30\1\0\123\30"+ + "\1\0\213\30\10\0\246\30\1\0\46\30\2\0\1\30"+ + "\6\0\51\30\107\0\33\30\4\0\4\30\55\0\53\30"+ + "\43\0\2\30\1\0\143\30\1\0\1\30\17\0\2\30"+ + "\7\0\2\30\12\0\3\30\2\0\1\30\20\0\1\30"+ + "\1\0\36\30\35\0\131\30\13\0\1\30\30\0\41\30"+ + "\11\0\2\30\4\0\1\30\5\0\26\30\4\0\1\30"+ + "\11\0\1\30\3\0\1\30\27\0\31\30\7\0\13\30"+ + "\65\0\25\30\1\0\10\30\106\0\66\30\3\0\1\30"+ + "\22\0\1\30\7\0\12\30\17\0\20\30\4\0\10\30"+ + "\2\0\2\30\2\0\26\30\1\0\7\30\1\0\1\30"+ + "\3\0\4\30\3\0\1\30\20\0\1\30\15\0\2\30"+ + "\1\0\3\30\16\0\2\30\12\0\1\30\10\0\6\30"+ + "\4\0\2\30\2\0\26\30\1\0\7\30\1\0\2\30"+ + "\1\0\2\30\1\0\2\30\37\0\4\30\1\0\1\30"+ + "\23\0\3\30\20\0\11\30\1\0\3\30\1\0\26\30"+ + "\1\0\7\30\1\0\2\30\1\0\5\30\3\0\1\30"+ + "\22\0\1\30\17\0\2\30\27\0\1\30\13\0\10\30"+ + "\2\0\2\30\2\0\26\30\1\0\7\30\1\0\2\30"+ + "\1\0\5\30\3\0\1\30\36\0\2\30\1\0\3\30"+ + "\17\0\1\30\21\0\1\30\1\0\6\30\3\0\3\30"+ + "\1\0\4\30\3\0\2\30\1\0\1\30\1\0\2\30"+ + "\3\0\2\30\3\0\3\30\3\0\14\30\26\0\1\30"+ + "\64\0\10\30\1\0\3\30\1\0\27\30\1\0\20\30"+ + "\3\0\1\30\32\0\3\30\5\0\2\30\36\0\1\30"+ + "\4\0\10\30\1\0\3\30\1\0\27\30\1\0\12\30"+ + "\1\0\5\30\3\0\1\30\40\0\1\30\1\0\2\30"+ + "\17\0\2\30\22\0\10\30\1\0\3\30\1\0\51\30"+ + "\2\0\1\30\20\0\1\30\5\0\3\30\10\0\3\30"+ + "\30\0\6\30\5\0\22\30\3\0\30\30\1\0\11\30"+ + "\1\0\1\30\2\0\7\30\72\0\60\30\1\0\2\30"+ + "\14\0\7\30\72\0\2\30\1\0\1\30\1\0\5\30"+ + "\1\0\30\30\1\0\1\30\1\0\12\30\1\0\2\30"+ + "\11\0\1\30\2\0\5\30\1\0\1\30\25\0\4\30"+ + "\40\0\1\30\77\0\10\30\1\0\44\30\33\0\5\30"+ + "\163\0\53\30\24\0\1\30\20\0\6\30\4\0\4\30"+ + "\3\0\1\30\3\0\2\30\7\0\3\30\4\0\15\30"+ + "\14\0\1\30\21\0\46\30\1\0\1\30\5\0\1\30"+ + "\2\0\53\30\1\0\115\30\1\0\4\30\2\0\7\30"+ + "\1\0\1\30\1\0\4\30\2\0\51\30\1\0\4\30"+ + "\2\0\41\30\1\0\4\30\2\0\7\30\1\0\1\30"+ + "\1\0\4\30\2\0\17\30\1\0\71\30\1\0\4\30"+ + "\2\0\103\30\45\0\20\30\20\0\126\30\2\0\6\30"+ + "\3\0\u016c\30\2\0\21\30\1\0\32\30\5\0\113\30"+ + "\6\0\10\30\7\0\15\30\1\0\4\30\16\0\22\30"+ + "\16\0\22\30\16\0\15\30\1\0\3\30\17\0\64\30"+ + "\43\0\1\30\4\0\1\30\103\0\131\30\7\0\5\30"+ + "\2\0\42\30\1\0\1\30\5\0\106\30\12\0\37\30"+ + "\61\0\36\30\2\0\5\30\13\0\54\30\4\0\32\30"+ + "\66\0\27\30\11\0\65\30\122\0\1\30\135\0\57\30"+ + "\21\0\7\30\67\0\36\30\15\0\2\30\12\0\54\30"+ + "\32\0\44\30\51\0\3\30\12\0\44\30\2\0\11\30"+ + "\7\0\53\30\2\0\3\30\51\0\4\30\1\0\6\30"+ + "\1\0\2\30\3\0\1\30\5\0\300\30\100\0\26\30"+ + "\2\0\6\30\2\0\46\30\2\0\6\30\2\0\10\30"+ + "\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30"+ + "\2\0\65\30\1\0\7\30\1\0\1\30\3\0\3\30"+ + "\1\0\7\30\3\0\4\30\2\0\6\30\4\0\15\30"+ + "\5\0\3\30\1\0\7\30\53\0\2\62\107\0\1\30"+ + "\15\0\1\30\20\0\15\30\145\0\1\30\4\0\1\30"+ + "\2\0\12\30\1\0\1\30\3\0\5\30\6\0\1\30"+ + "\1\0\1\30\1\0\1\30\1\0\4\30\1\0\13\30"+ + "\2\0\4\30\5\0\5\30\4\0\1\30\64\0\2\30"+ + "\u017b\0\57\30\1\0\57\30\1\0\205\30\6\0\4\30"+ + "\3\0\2\30\14\0\46\30\1\0\1\30\5\0\1\30"+ + "\2\0\70\30\7\0\1\30\20\0\27\30\11\0\7\30"+ + "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ + "\1\0\7\30\1\0\7\30\1\0\7\30\120\0\1\30"+ + "\325\0\2\30\52\0\5\30\5\0\2\30\4\0\126\30"+ + "\6\0\3\30\1\0\132\30\1\0\4\30\5\0\53\30"+ + "\1\0\136\30\21\0\33\30\65\0\306\30\112\0\360\30"+ + "\20\0\215\30\103\0\56\30\2\0\15\30\3\0\20\30"+ + "\12\0\2\30\24\0\57\30\20\0\37\30\2\0\106\30"+ + "\61\0\11\30\2\0\147\30\2\0\65\30\2\0\5\30"+ + "\60\0\13\30\1\0\3\30\1\0\4\30\1\0\27\30"+ + "\35\0\64\30\16\0\62\30\76\0\6\30\3\0\1\30"+ + "\1\0\2\30\13\0\34\30\12\0\27\30\31\0\35\30"+ + "\7\0\57\30\34\0\1\30\20\0\5\30\1\0\12\30"+ + "\12\0\5\30\1\0\51\30\27\0\3\30\1\0\10\30"+ + "\24\0\27\30\3\0\1\30\3\0\62\30\1\0\1\30"+ + "\3\0\2\30\2\0\5\30\2\0\1\30\1\0\1\30"+ + "\30\0\3\30\2\0\13\30\7\0\3\30\14\0\6\30"+ + "\2\0\6\30\2\0\6\30\11\0\7\30\1\0\7\30"+ + "\1\0\53\30\1\0\14\30\10\0\163\30\35\0\244\30"+ + "\14\0\27\30\4\0\61\30\4\0\156\30\2\0\152\30"+ + "\46\0\7\30\14\0\5\30\5\0\1\30\1\0\12\30"+ + "\1\0\15\30\1\0\5\30\1\0\1\30\1\0\2\30"+ + "\1\0\2\30\1\0\154\30\41\0\153\30\22\0\100\30"+ + "\2\0\66\30\50\0\14\30\164\0\5\30\1\0\207\30"+ + "\44\0\32\30\6\0\32\30\13\0\131\30\3\0\6\30"+ + "\2\0\6\30\2\0\6\30\2\0\3\30\43\0\14\30"+ + "\1\0\32\30\1\0\23\30\1\0\2\30\1\0\17\30"+ + "\2\0\16\30\42\0\173\30\205\0\35\30\3\0\61\30"+ + "\57\0\40\30\15\0\24\30\1\0\10\30\6\0\46\30"+ + "\12\0\36\30\2\0\44\30\4\0\10\30\60\0\236\30"+ + "\22\0\44\30\4\0\44\30\4\0\50\30\10\0\64\30"+ + "\234\0\67\30\11\0\26\30\12\0\10\30\230\0\6\30"+ + "\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30"+ + "\2\0\27\30\12\0\27\30\11\0\37\30\101\0\23\30"+ + "\1\0\2\30\12\0\26\30\12\0\32\30\106\0\70\30"+ + "\6\0\2\30\100\0\1\30\17\0\4\30\1\0\3\30"+ + "\1\0\35\30\52\0\35\30\3\0\35\30\43\0\10\30"+ + "\1\0\34\30\33\0\66\30\12\0\26\30\12\0\23\30"+ + "\15\0\22\30\156\0\111\30\67\0\63\30\15\0\63\30"+ + "\15\0\44\30\334\0\35\30\12\0\1\30\10\0\26\30"+ + "\232\0\27\30\14\0\65\30\113\0\55\30\40\0\31\30"+ + "\32\0\44\30\35\0\1\30\13\0\43\30\3\0\1\30"+ + "\14\0\60\30\16\0\4\30\25\0\1\30\1\0\1\30"+ + "\43\0\22\30\1\0\31\30\124\0\7\30\1\0\1\30"+ + "\1\0\4\30\1\0\17\30\1\0\12\30\7\0\57\30"+ + "\46\0\10\30\2\0\2\30\2\0\26\30\1\0\7\30"+ + "\1\0\2\30\1\0\5\30\3\0\1\30\22\0\1\30"+ + "\14\0\5\30\236\0\65\30\22\0\4\30\24\0\1\30"+ + "\40\0\60\30\24\0\2\30\1\0\1\30\270\0\57\30"+ + "\51\0\4\30\44\0\60\30\24\0\1\30\73\0\53\30"+ + "\15\0\1\30\107\0\33\30\345\0\54\30\164\0\100\30"+ + "\37\0\1\30\240\0\10\30\2\0\47\30\20\0\1\30"+ + "\1\0\1\30\34\0\1\30\12\0\50\30\7\0\1\30"+ + "\25\0\1\30\13\0\56\30\23\0\1\30\42\0\71\30"+ + "\7\0\11\30\1\0\45\30\21\0\1\30\61\0\36\30"+ + "\160\0\7\30\1\0\2\30\1\0\46\30\25\0\1\30"+ + "\31\0\6\30\1\0\2\30\1\0\40\30\16\0\1\30"+ + "\u0147\0\23\30\15\0\232\30\346\0\304\30\274\0\57\30"+ + "\321\0\107\30\271\0\71\30\7\0\37\30\161\0\36\30"+ + "\22\0\60\30\20\0\4\30\37\0\25\30\5\0\23\30"+ + "\260\0\100\30\200\0\113\30\5\0\1\30\102\0\15\30"+ + "\100\0\2\30\1\0\1\30\34\0\370\30\10\0\363\30"+ + "\15\0\37\30\61\0\3\30\21\0\4\30\10\0\u018c\30"+ + "\4\0\153\30\5\0\15\30\3\0\11\30\7\0\12\30"+ + "\146\0\125\30\1\0\107\30\1\0\2\30\2\0\1\30"+ + "\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30"+ + "\1\0\7\30\1\0\101\30\1\0\4\30\2\0\10\30"+ + "\1\0\7\30\1\0\34\30\1\0\4\30\1\0\5\30"+ + "\1\0\1\30\3\0\7\30\1\0\u0154\30\2\0\31\30"+ + "\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30"+ + "\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30"+ + "\1\0\31\30\1\0\10\30\64\0\55\30\12\0\7\30"+ + "\20\0\1\30\u0171\0\54\30\24\0\305\30\73\0\104\30"+ + "\7\0\1\30\264\0\4\30\1\0\33\30\1\0\2\30"+ + "\1\0\1\30\2\0\1\30\1\0\12\30\1\0\4\30"+ + "\1\0\1\30\1\0\1\30\6\0\1\30\4\0\1\30"+ + "\1\0\1\30\1\0\1\30\1\0\3\30\1\0\2\30"+ + "\1\0\1\30\2\0\1\30\1\0\1\30\1\0\1\30"+ + "\1\0\1\30\1\0\1\30\1\0\2\30\1\0\1\30"+ + "\2\0\4\30\1\0\7\30\1\0\4\30\1\0\4\30"+ + "\1\0\1\30\1\0\12\30\1\0\21\30\5\0\3\30"+ + "\1\0\5\30\1\0\21\30\104\0\327\30\51\0\65\30"+ + "\13\0\336\30\2\0\u0182\30\16\0\u0131\30\37\0\36\30"+ + "\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\1\11\0\1\2\3\0\1\1\2\3\4\1\1\4"+ - "\1\5\4\4\1\6\1\4\3\7\1\10\1\7\1\11"+ - "\1\12\1\13\1\14\2\12\1\15\1\16\1\12\1\17"+ - "\1\5\1\20\1\21\1\5\1\22\1\23\1\21\1\24"+ - "\1\25\2\24\1\2\1\26\1\4\3\27\1\30\1\7"+ - "\3\30\1\31\1\32\1\0\1\33\1\34\14\0\1\34"+ - "\1\35\1\21\2\0\1\36\2\0\1\37\1\40\12\0"+ - "\1\41\1\0\1\42\1\43\1\0\1\44\3\0\1\17"+ - "\1\45\1\4\3\0\1\46\2\0\1\47"; + "\1\1\11\0\1\2\3\0\1\1\1\3\4\1\1\3"+ + "\1\4\1\5\3\4\1\6\2\4\4\7\1\10\1\11"+ + "\2\12\1\13\1\14\1\12\1\15\1\12\1\16\1\17"+ + "\1\20\1\5\1\21\1\22\1\23\1\21\1\5\1\24"+ + "\1\25\2\24\1\2\1\26\1\4\3\27\3\30\1\7"+ + "\1\30\1\31\7\0\1\32\1\33\1\34\6\0\1\32"+ + "\1\35\1\21\2\0\1\36\2\0\1\37\7\0\1\40"+ + "\3\0\1\41\1\0\1\42\1\43\2\0\1\44\1\0"+ + "\1\17\1\0\1\45\1\4\3\0\1\46\2\0\1\47"; private static int [] zzUnpackAction() { int [] result = new int[122]; @@ -203,7 +315,7 @@ public class _HtmlLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -211,20 +323,20 @@ public class _HtmlLexer implements FlexLexer { private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\63\0\146\0\231\0\314\0\377\0\u0132\0\u0165"+ "\0\u0198\0\u01cb\0\u01fe\0\u0231\0\u0264\0\u0297\0\u02ca\0\u02fd"+ - "\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u03fc\0\u042f\0\u0462"+ - "\0\u0495\0\u04c8\0\u04fb\0\u03fc\0\u0396\0\u03fc\0\u052e\0\u0561"+ - "\0\u03fc\0\u0396\0\u03fc\0\u03fc\0\u0594\0\u03fc\0\u0396\0\u05c7"+ - "\0\u05fa\0\u03fc\0\u062d\0\u0660\0\u0693\0\u03fc\0\u06c6\0\u06f9"+ - "\0\u03fc\0\u03fc\0\u072c\0\u03fc\0\u03fc\0\u0396\0\u075f\0\u0792"+ - "\0\u03fc\0\u07c5\0\u03fc\0\u0396\0\u062d\0\u03fc\0\u07f8\0\u082b"+ - "\0\u0396\0\u085e\0\u03fc\0\u0891\0\u08c4\0\u03fc\0\u08f7\0\u092a"+ - "\0\u095d\0\u0990\0\u09c3\0\u09f6\0\u0a29\0\u0462\0\u0495\0\u0a5c"+ - "\0\u0a8f\0\u0ac2\0\u0af5\0\u03fc\0\u03fc\0\u0b28\0\u0b5b\0\u0b8e"+ - "\0\u03fc\0\u0bc1\0\u0bf4\0\u0c27\0\u03fc\0\u0c5a\0\u0c8d\0\u0cc0"+ - "\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2\0\u0e25\0\u03fc"+ - "\0\u0e58\0\u03fc\0\u03fc\0\u0e8b\0\u03fc\0\u0ebe\0\u0ef1\0\u0f24"+ - "\0\u03fc\0\u03fc\0\u0f57\0\u0f8a\0\u0fbd\0\u0ff0\0\u03fc\0\u1023"+ - "\0\u1056\0\u03fc"; + "\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u0330\0\u042f\0\u0462"+ + "\0\u0363\0\u0495\0\u0330\0\u04c8\0\u04fb\0\u0330\0\u0363\0\u052e"+ + "\0\u0561\0\u0330\0\u0330\0\u0330\0\u0363\0\u0594\0\u0330\0\u05c7"+ + "\0\u05fa\0\u062d\0\u0330\0\u0660\0\u0330\0\u0693\0\u06c6\0\u0330"+ + "\0\u0330\0\u06f9\0\u072c\0\u0330\0\u0330\0\u0363\0\u075f\0\u0792"+ + "\0\u0330\0\u07c5\0\u0330\0\u0363\0\u062d\0\u0330\0\u0363\0\u07f8"+ + "\0\u082b\0\u085e\0\u0330\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d"+ + "\0\u0990\0\u09c3\0\u09f6\0\u0a29\0\u0330\0\u0462\0\u0495\0\u0a5c"+ + "\0\u0a8f\0\u0ac2\0\u0af5\0\u0330\0\u0330\0\u0b28\0\u0b5b\0\u0b8e"+ + "\0\u0330\0\u0bc1\0\u0bf4\0\u0330\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0"+ + "\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2\0\u0e25\0\u0330"+ + "\0\u0e58\0\u0330\0\u0330\0\u0e8b\0\u0ebe\0\u0330\0\u0ef1\0\u0330"+ + "\0\u0f24\0\u0330\0\u0f57\0\u0f8a\0\u0fbd\0\u0ff0\0\u0330\0\u1023"+ + "\0\u1056\0\u0330"; private static int [] zzUnpackRowMap() { int [] result = new int[122]; @@ -236,7 +348,7 @@ public class _HtmlLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -244,97 +356,90 @@ public class _HtmlLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\3\17\1\20\4\17\1\21\2\17\1\22\27\17\1\23"+ - "\4\17\1\24\1\25\6\17\1\25\2\17\3\26\1\27"+ - "\4\26\1\27\1\30\1\31\11\26\2\32\1\26\1\33"+ - "\11\26\1\34\1\26\1\35\17\26\6\36\1\37\4\36"+ - "\1\40\25\36\1\41\1\36\1\42\2\36\1\43\14\36"+ - "\1\44\1\45\1\44\1\27\1\45\3\44\1\27\2\44"+ - "\1\46\1\44\24\45\2\44\1\47\7\44\5\45\1\44"+ - "\2\45\1\44\1\45\1\44\1\27\1\45\3\44\1\27"+ - "\2\44\1\50\1\44\24\45\2\44\1\47\7\44\5\45"+ - "\1\44\2\45\3\44\1\51\4\44\1\51\30\44\1\52"+ - "\1\44\1\47\1\44\1\53\15\44\3\54\1\55\3\54"+ - "\1\56\1\27\3\44\25\54\1\52\3\54\1\53\15\54"+ - "\3\57\1\60\4\57\1\27\1\61\1\62\26\57\1\52"+ - "\3\57\1\63\15\57\11\64\1\65\31\64\1\66\4\64"+ - "\1\67\24\64\1\65\30\64\1\66\4\64\1\67\12\64"+ - "\41\70\1\71\2\70\1\72\16\70\3\73\1\27\4\73"+ - "\1\27\2\73\1\46\25\73\1\52\1\73\1\74\1\73"+ - "\1\75\15\73\1\76\1\77\4\76\1\100\6\76\24\77"+ - "\2\76\1\101\3\76\1\102\3\76\5\77\1\76\2\77"+ - "\1\76\1\77\4\76\1\100\6\76\24\77\2\76\1\101"+ - "\3\76\1\103\3\76\5\77\1\76\2\77\10\17\1\0"+ - "\2\17\1\0\27\17\1\0\4\17\1\24\1\0\6\17"+ - "\1\0\5\17\1\20\4\17\1\21\2\17\1\0\27\17"+ - "\1\0\4\17\1\24\1\0\6\17\1\0\2\17\3\0"+ - "\1\21\4\0\1\21\53\0\1\104\2\0\1\104\7\0"+ - "\1\105\24\104\3\0\1\106\1\107\5\0\5\104\1\0"+ - "\2\104\1\0\1\110\2\0\1\110\10\0\16\110\1\111"+ - "\5\110\12\0\1\111\1\112\1\110\1\113\1\114\1\115"+ - "\2\110\10\17\1\0\2\17\1\0\27\17\1\0\4\17"+ - "\1\24\12\17\66\0\1\27\4\0\1\27\52\0\11\116"+ - "\1\64\51\116\12\117\1\64\50\117\34\0\2\120\46\0"+ - "\2\121\46\0\1\122\70\0\1\123\47\0\2\45\1\0"+ - "\3\45\6\0\24\45\12\0\5\45\1\0\2\45\45\0"+ - "\1\124\20\0\1\51\4\0\1\51\113\0\1\125\21\0"+ - "\7\54\5\0\25\54\1\0\3\54\1\0\20\54\1\55"+ - "\3\54\1\0\1\27\3\0\25\54\1\0\3\54\1\0"+ - "\15\54\10\57\1\0\30\57\1\0\3\57\1\126\20\57"+ - "\1\60\4\57\1\27\30\57\1\0\3\57\1\126\25\57"+ - "\1\0\30\57\1\125\3\57\1\126\15\57\51\0\1\64"+ - "\11\0\41\70\1\0\2\70\1\127\57\70\1\71\21\70"+ - "\1\0\3\77\1\0\1\77\2\0\1\77\3\0\25\77"+ - "\1\0\2\77\7\0\5\77\1\0\2\77\6\0\1\130"+ - "\115\0\1\131\22\0\2\104\1\0\3\104\6\0\24\104"+ - "\12\0\5\104\1\0\2\104\6\0\1\132\6\0\1\133"+ - "\46\0\1\134\2\0\1\134\10\0\24\134\12\0\5\134"+ - "\1\0\2\134\1\0\2\110\1\0\3\110\6\0\24\110"+ - "\11\0\1\135\5\110\1\0\2\110\1\0\2\110\1\0"+ - "\3\110\6\0\5\110\1\136\16\110\11\0\1\135\5\110"+ - "\1\0\2\110\1\0\2\110\1\0\3\110\6\0\10\110"+ - "\1\137\3\110\1\140\7\110\11\0\1\135\5\110\1\0"+ - "\2\110\1\0\2\110\1\0\3\110\6\0\20\110\1\141"+ - "\3\110\11\0\1\135\5\110\1\0\2\110\1\0\2\110"+ - "\1\0\3\110\6\0\22\110\1\142\1\110\11\0\1\135"+ - "\5\110\1\0\2\110\2\0\1\143\56\0\1\144\37\0"+ - "\2\145\53\0\2\146\45\0\1\147\24\0\1\150\27\0"+ - "\1\151\37\0\1\152\14\0\41\57\1\0\3\57\1\126"+ - "\15\57\41\70\1\0\21\70\41\0\1\150\27\0\1\153"+ - "\72\0\2\154\44\0\2\134\1\0\3\134\6\0\24\134"+ - "\12\0\5\134\1\0\2\134\1\0\2\110\1\0\3\110"+ - "\6\0\24\110\11\0\1\155\5\110\1\0\2\110\1\0"+ - "\2\110\1\0\3\110\6\0\2\110\1\156\21\110\11\0"+ - "\1\135\5\110\1\0\2\110\1\0\2\110\1\0\3\110"+ - "\6\0\10\110\1\136\13\110\11\0\1\135\5\110\1\0"+ - "\2\110\1\0\2\110\1\0\3\110\6\0\2\110\1\111"+ - "\21\110\11\0\1\135\5\110\1\0\2\110\1\0\2\110"+ - "\1\0\3\110\6\0\24\110\11\0\1\135\2\110\1\140"+ - "\2\110\1\0\2\110\2\0\1\143\47\0\1\155\12\0"+ - "\1\157\12\0\1\157\2\0\1\157\5\0\1\157\7\0"+ - "\2\157\14\0\1\157\5\0\1\157\32\0\2\160\61\0"+ - "\2\161\70\0\1\162\27\0\1\163\74\0\1\164\43\0"+ - "\2\110\1\0\3\110\6\0\24\110\11\0\1\135\2\110"+ - "\1\136\2\110\1\0\2\110\2\0\1\157\12\0\1\157"+ - "\2\0\1\157\5\0\1\157\7\0\2\157\12\0\1\155"+ - "\1\0\1\157\5\0\1\157\40\0\1\165\30\0\1\147"+ - "\32\0\1\150\42\0\2\166\60\0\1\167\65\0\1\170"+ - "\63\0\2\171\63\0\1\172\34\0"; + "\1\17\1\20\2\17\2\21\1\22\10\17\1\23\24\17"+ + "\1\24\15\17\1\25\1\26\1\27\1\26\1\30\2\26"+ + "\1\31\1\32\11\26\1\33\7\26\1\34\4\26\1\35"+ + "\16\26\1\35\4\26\1\27\6\36\1\37\2\36\1\40"+ + "\5\36\1\41\1\36\1\42\21\36\1\43\17\36\1\44"+ + "\1\27\4\44\1\45\6\44\1\46\1\44\1\47\3\44"+ + "\20\46\3\44\14\46\1\27\1\44\1\27\4\44\1\45"+ + "\6\44\1\46\1\44\1\50\3\44\20\46\3\44\14\46"+ + "\1\27\1\44\1\51\4\44\1\45\4\44\1\52\5\44"+ + "\1\53\40\44\1\51\1\54\1\27\1\54\1\44\3\54"+ + "\1\44\3\54\1\52\3\54\1\44\1\55\1\53\40\54"+ + "\1\56\1\57\1\27\1\57\1\60\3\57\1\61\3\57"+ + "\1\62\5\57\1\53\40\57\1\63\3\64\1\65\2\64"+ + "\1\66\35\64\1\67\24\64\1\66\1\65\34\64\1\67"+ + "\16\64\21\70\1\71\1\72\40\70\1\73\1\27\4\73"+ + "\1\74\4\73\1\75\3\73\1\47\1\73\1\53\40\73"+ + "\1\27\6\76\1\77\2\76\1\100\11\76\20\101\2\76"+ + "\1\102\14\101\7\76\1\77\2\76\1\100\11\76\20\101"+ + "\2\76\1\103\14\101\1\76\1\17\1\0\2\17\3\0"+ + "\10\17\1\0\24\17\1\24\16\17\1\0\1\20\60\0"+ + "\1\20\67\0\1\104\10\0\1\105\5\0\20\105\3\0"+ + "\1\106\1\105\2\107\1\105\1\110\2\105\1\111\3\105"+ + "\3\0\1\112\10\0\1\113\1\0\1\114\4\0\1\115"+ + "\20\114\3\0\14\114\1\0\1\17\1\0\4\17\1\0"+ + "\10\17\1\0\24\17\1\24\17\17\1\20\2\17\3\0"+ + "\10\17\1\0\24\17\1\24\15\17\1\25\1\0\1\27"+ + "\60\0\1\27\3\116\1\64\57\116\7\117\1\64\53\117"+ + "\37\0\1\120\20\0\1\120\42\0\1\121\20\0\1\121"+ + "\12\0\1\122\53\0\1\123\71\0\2\46\1\0\2\46"+ + "\5\0\20\46\3\0\14\46\14\0\1\124\50\0\1\51"+ + "\60\0\1\51\21\0\1\125\41\0\1\54\1\0\1\54"+ + "\1\0\3\54\1\0\3\54\1\0\3\54\3\0\42\54"+ + "\1\27\1\54\1\0\3\54\1\0\3\54\1\0\3\54"+ + "\3\0\40\54\1\56\1\57\1\0\11\57\1\126\5\57"+ + "\1\0\42\57\1\0\11\57\1\126\5\57\1\125\42\57"+ + "\1\27\11\57\1\126\5\57\1\0\40\57\1\63\5\0"+ + "\1\64\55\0\21\70\1\0\1\127\61\70\1\71\41\70"+ + "\11\0\1\130\52\0\2\101\3\0\1\101\1\0\1\101"+ + "\1\0\1\101\1\0\1\101\6\0\20\101\3\0\15\101"+ + "\21\0\1\131\55\0\1\132\24\0\1\133\32\0\2\105"+ + "\1\0\2\105\1\134\4\0\20\105\3\0\14\105\12\0"+ + "\2\105\1\0\2\105\1\134\4\0\20\105\3\0\4\105"+ + "\1\135\2\105\1\136\4\105\12\0\2\105\1\0\2\105"+ + "\1\134\4\0\20\105\3\0\12\105\1\137\1\105\12\0"+ + "\2\105\1\0\2\105\1\134\4\0\20\105\3\0\1\105"+ + "\1\140\12\105\12\0\2\105\1\0\2\105\1\134\4\0"+ + "\20\105\3\0\13\105\1\141\12\0\1\142\14\0\1\143"+ + "\51\0\1\144\5\0\20\144\3\0\14\144\12\0\2\114"+ + "\1\0\2\114\5\0\20\114\3\0\14\114\35\0\1\145"+ + "\15\0\1\145\34\0\1\146\22\0\1\146\15\0\1\147"+ + "\16\0\1\150\52\0\1\151\31\0\1\152\17\0\13\57"+ + "\1\126\5\57\1\0\41\57\21\70\1\0\41\70\21\0"+ + "\1\150\55\0\1\132\1\0\1\153\60\0\1\154\6\0"+ + "\5\154\16\0\2\154\24\0\2\105\1\0\2\105\1\134"+ + "\4\0\20\105\3\0\7\105\1\137\4\105\12\0\2\105"+ + "\1\0\2\105\1\134\4\0\20\105\3\0\6\105\1\155"+ + "\5\105\12\0\2\105\1\0\2\105\1\153\4\0\20\105"+ + "\3\0\14\105\12\0\2\105\1\0\2\105\1\134\4\0"+ + "\20\105\3\0\11\105\1\135\2\105\12\0\2\105\1\0"+ + "\2\105\1\134\4\0\20\105\3\0\6\105\1\107\5\105"+ + "\12\0\1\156\106\0\1\157\16\0\1\157\17\0\2\144"+ + "\1\0\2\144\5\0\20\144\3\0\14\144\34\0\1\160"+ + "\15\0\1\160\44\0\1\161\15\0\1\161\32\0\1\162"+ + "\52\0\1\163\65\0\1\154\1\0\1\153\4\0\5\154"+ + "\16\0\2\154\24\0\2\105\1\0\2\105\1\134\4\0"+ + "\20\105\3\0\11\105\1\137\2\105\26\0\1\164\67\0"+ + "\1\165\41\0\1\147\7\0\1\150\100\0\1\166\20\0"+ + "\1\166\27\0\1\167\77\0\1\170\56\0\1\171\16\0"+ + "\1\171\34\0\1\172\33\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[4233]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -361,19 +466,19 @@ public class _HtmlLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\11\0\1\1\3\0\6\1\2\11\5\1\1\11"+ - "\1\1\1\11\2\1\1\11\1\1\2\11\1\1\1\11"+ - "\3\1\1\11\3\1\1\11\2\1\2\11\1\1\2\11"+ + "\1\1\11\0\1\1\3\0\2\1\1\11\4\1\1\11"+ + "\4\1\1\11\2\1\1\11\3\1\3\11\2\1\1\11"+ + "\3\1\1\11\1\1\1\11\2\1\2\11\2\1\2\11"+ "\3\1\1\11\1\1\1\11\2\1\1\11\4\1\1\11"+ - "\1\1\1\0\1\11\1\1\14\0\2\11\1\1\2\0"+ - "\1\11\2\0\1\1\1\11\12\0\1\11\1\0\2\11"+ - "\1\0\1\11\3\0\2\11\1\1\3\0\1\11\2\0"+ - "\1\11"; + "\7\0\2\1\1\11\6\0\2\11\1\1\2\0\1\11"+ + "\2\0\1\11\7\0\1\1\3\0\1\11\1\0\2\11"+ + "\2\0\1\11\1\0\1\11\1\0\1\11\1\1\3\0"+ + "\1\11\2\0\1\11"; private static int [] zzUnpackAttribute() { int [] result = new int[122]; @@ -420,15 +525,27 @@ public class _HtmlLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -447,26 +564,22 @@ public class _HtmlLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -598,7 +711,8 @@ public class _HtmlLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -632,7 +746,7 @@ public class _HtmlLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -654,11 +768,11 @@ public class _HtmlLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -681,42 +795,42 @@ public class _HtmlLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return XmlTokenType.XML_DATA_CHARACTERS; - } - // fall through + } + // fall through case 40: break; - case 2: + case 2: { return XmlTokenType.XML_PI_TARGET; - } - // fall through + } + // fall through case 41: break; - case 3: + case 3: { return XmlTokenType.XML_REAL_WHITE_SPACE; - } - // fall through + } + // fall through case 42: break; - case 4: + case 4: { return XmlTokenType.XML_BAD_CHARACTER; - } - // fall through + } + // fall through case 43: break; - case 5: + case 5: { return XmlTokenType.XML_WHITE_SPACE; - } - // fall through + } + // fall through case 44: break; - case 6: + case 6: { yybegin(YYINITIAL); return XmlTokenType.XML_DOCTYPE_END; - } - // fall through + } + // fall through case 45: break; - case 7: + case 7: { return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 46: break; - case 8: + case 8: { // according to HTML spec (http://www.w3.org/html/wg/drafts/html/master/syntax.html#comments) // comments should start with . The comment is not valid, but should terminate // comment token. Please note that it's not true for XML (http://www.w3.org/TR/REC-xml/#sec-comments) @@ -727,163 +841,163 @@ public class _HtmlLexer implements FlexLexer { yybegin(YYINITIAL); return XmlTokenType.XML_BAD_CHARACTER; } return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 47: break; - case 9: + case 9: { yybegin(C_COMMENT_START); return XmlTokenType.XML_CONDITIONAL_COMMENT_START; - } - // fall through + } + // fall through case 48: break; - case 10: + case 10: { yybegin(YYINITIAL); yypushback(1); break; - } - // fall through + } + // fall through case 49: break; - case 11: + case 11: { yybegin(BEFORE_TAG_ATTRIBUTES); return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 50: break; - case 12: + case 12: { return XmlTokenType.XML_START_TAG_START; - } - // fall through + } + // fall through case 51: break; - case 13: + case 13: { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_WHITE_SPACE; - } - // fall through + } + // fall through case 52: break; - case 14: + case 14: { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END; - } - // fall through + } + // fall through case 53: break; - case 15: + case 15: { return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 54: break; - case 16: + case 16: { yybegin(ATTRIBUTE_VALUE_START); return XmlTokenType.XML_EQ; - } - // fall through + } + // fall through case 55: break; - case 17: + case 17: { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; - } - // fall through + } + // fall through case 56: break; - case 18: + case 18: { yybegin(ATTRIBUTE_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through + } + // fall through case 57: break; - case 19: + case 19: { yybegin(ATTRIBUTE_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through + } + // fall through case 58: break; - case 20: + case 20: { return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; - } - // fall through + } + // fall through case 59: break; - case 21: + case 21: { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; - } - // fall through + } + // fall through case 60: break; - case 22: + case 22: { yybegin(YYINITIAL); return XmlTokenType.XML_PI_END; - } - // fall through + } + // fall through case 61: break; - case 23: + case 23: { return XmlTokenType.XML_TAG_CHARACTERS; - } - // fall through + } + // fall through case 62: break; - case 24: + case 24: { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 63: break; - case 25: + case 25: { yybegin(COMMENT); return XmlTokenType.XML_CONDITIONAL_COMMENT_END; - } - // fall through + } + // fall through case 64: break; - case 26: - { yybegin(START_TAG_NAME); yypushback(yylength()); - } - // fall through - case 65: break; - case 27: - { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START; - } - // fall through - case 66: break; - case 28: + case 26: { return XmlTokenType.XML_END_TAG_START; - } - // fall through + } + // fall through + case 65: break; + case 27: + { yybegin(START_TAG_NAME); yypushback(yylength()); + } + // fall through + case 66: break; + case 28: + { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START; + } + // fall through case 67: break; - case 29: + case 29: { yybegin(YYINITIAL); return XmlTokenType.XML_EMPTY_ELEMENT_END; - } - // fall through + } + // fall through case 68: break; - case 30: + case 30: { yybegin(COMMENT); return XmlTokenType.XML_CONDITIONAL_COMMENT_START_END; - } - // fall through + } + // fall through case 69: break; - case 31: - { yybegin(END_TAG_NAME); yypushback(yylength()); - } - // fall through - case 70: break; - case 32: + case 31: { return XmlTokenType.XML_ENTITY_REF_TOKEN; - } - // fall through + } + // fall through + case 70: break; + case 32: + { yybegin(END_TAG_NAME); yypushback(yylength()); + } + // fall through case 71: break; - case 33: + case 33: { yybegin(YYINITIAL); return XmlTokenType.XML_COMMENT_END; - } - // fall through + } + // fall through case 72: break; - case 34: + case 34: { yybegin(C_COMMENT_END); return XmlTokenType.XML_CONDITIONAL_COMMENT_END_START; - } - // fall through + } + // fall through case 73: break; - case 35: - { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START; - } - // fall through - case 74: break; - case 36: + case 35: { return XmlTokenType.XML_CHAR_ENTITY_REF; - } - // fall through + } + // fall through + case 74: break; + case 36: + { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START; + } + // fall through case 75: break; - case 37: + case 37: { yybegin(YYINITIAL); return XmlTokenType.XML_BAD_CHARACTER; - } - // fall through + } + // fall through case 76: break; - case 38: + case 38: { return XmlTokenType.XML_DOCTYPE_PUBLIC; - } - // fall through + } + // fall through case 77: break; - case 39: + case 39: { yybegin(DOC_TYPE); return XmlTokenType.XML_DOCTYPE_START; - } - // fall through + } + // fall through case 78: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/xml/xml-psi-impl/gen/com/intellij/lexer/__XmlLexer.java b/xml/xml-psi-impl/gen/com/intellij/lexer/__XmlLexer.java index 672f88c17060..07e3584b71f6 100644 --- a/xml/xml-psi-impl/gen/com/intellij/lexer/__XmlLexer.java +++ b/xml/xml-psi-impl/gen/com/intellij/lexer/__XmlLexer.java @@ -1,4 +1,5 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.0 http://jflex.de/ (tweaked for IntelliJ platform) +// source: _XmlLexer.flex /* It's an automatically generated code. Do not modify it. */ package com.intellij.lexer; @@ -8,11 +9,6 @@ import com.intellij.psi.*; import com.intellij.psi.xml.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file _XmlLexer.flex - */ public class __XmlLexer implements FlexLexer { /** This character denotes the end of file */ @@ -45,147 +41,262 @@ public class __XmlLexer implements FlexLexer { * 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[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 8, 8, 11, 11, 12, 12, 13, 13, 14, 14 }; - /** - * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 14112 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\12\u1f00\1\u2000\1\u2100\1\u2200\1\u1f00\1\u2300"+ + "\1\u2400\2\u1f00\31\u0100\1\u2500\121\u0100\1\u2600\4\u0100\1\u2700"+ + "\1\u0100\1\u2800\1\u2900\1\u2a00\1\u2b00\1\u2c00\1\u2d00\53\u0100"+ + "\1\u2e00\41\u1f00\1\u0100\1\u2f00\1\u3000\1\u0100\1\u3100\1\u3200"+ + "\1\u3300\1\u3400\1\u1f00\1\u3500\1\u3600\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u1f00"+ + "\1\u4000\1\u4100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u4900\1\u4a00\1\u4b00\1\u1f00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u1f00\3\u0100\1\u4f00\1\u5000\1\u5100\12\u1f00\4\u0100\1\u5200"+ + "\17\u1f00\2\u0100\1\u5300\41\u1f00\2\u0100\1\u5400\1\u5500\2\u1f00"+ + "\1\u5600\1\u5700\27\u0100\1\u5800\2\u0100\1\u5900\45\u1f00\1\u0100"+ + "\1\u5a00\1\u5b00\11\u1f00\1\u5c00\27\u1f00\1\u5d00\1\u5e00\1\u5f00"+ + "\1\u6000\11\u1f00\1\u6100\1\u6200\5\u1f00\1\u6300\1\u6400\4\u1f00"+ + "\1\u6500\21\u1f00\246\u0100\1\u6600\20\u0100\1\u6700\1\u6800\25\u0100"+ + "\1\u6900\34\u0100\1\u6a00\14\u1f00\2\u0100\1\u6b00\u0e05\u1f00"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; } - /* The ZZ_CMAP_Z table has 1088 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ - "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ - "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ - "\53\4\14\1\54\12\11\1\55\u0381\11"); + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /* The ZZ_CMAP_Y table has 2944 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\2\1\2\13\1\30\1\1\1\32\1\25\5"+ - "\13\1\33\1\34\1\35\1\1\1\36\1\13\1\1\1\37\5\13\1\40\1\41\1\42\1\13\1\30\1"+ - "\43\1\13\1\44\1\45\1\1\1\13\1\46\4\1\1\13\1\47\4\1\1\50\2\13\1\51\1\1\1\52"+ - "\1\16\1\25\1\53\1\54\1\55\1\56\1\57\1\60\2\16\1\61\1\54\1\55\1\62\1\1\1\63"+ - "\1\1\1\64\1\65\1\22\1\55\1\66\1\1\1\67\1\16\1\70\1\71\1\54\1\55\1\66\1\1\1"+ - "\60\1\16\1\41\1\72\1\73\1\74\1\75\1\1\1\67\2\1\1\76\1\36\1\55\1\51\1\1\1\77"+ - "\1\16\1\1\1\100\1\36\1\55\1\101\1\1\1\57\1\16\1\102\1\76\1\36\1\13\1\103\1"+ - "\57\1\104\1\16\1\42\1\105\1\106\1\13\1\107\1\110\3\1\1\25\2\13\1\111\1\110"+ - "\3\1\1\112\1\113\1\114\1\115\1\116\1\117\2\1\1\67\3\1\1\120\1\13\1\121\1\1"+ - "\1\122\7\1\2\13\1\30\1\123\1\1\1\124\1\125\1\126\1\127\1\1\2\13\1\130\2\13"+ - "\1\131\24\13\1\132\1\133\2\13\1\132\2\13\1\134\1\135\1\14\3\13\1\135\3\13"+ - "\1\30\2\1\1\13\1\1\5\13\1\136\1\25\45\13\1\137\1\13\1\25\1\30\4\13\1\30\1"+ - "\140\1\141\1\16\1\13\1\16\1\13\1\16\1\141\1\67\3\13\1\142\1\1\1\143\4\1\5"+ - "\13\1\27\1\144\1\13\1\145\4\13\1\40\1\13\1\146\3\1\1\13\1\147\1\150\2\13\1"+ - "\151\1\13\1\75\3\1\1\13\1\110\3\13\1\150\4\1\1\152\5\1\1\105\2\13\1\142\1"+ - "\153\3\1\1\154\1\13\1\155\1\42\2\13\1\40\1\1\2\13\1\142\1\1\1\37\1\42\1\13"+ - "\1\147\1\46\5\1\1\156\1\157\14\13\4\1\21\13\1\136\2\13\1\136\1\160\1\13\1"+ - "\147\3\13\1\161\1\162\1\163\1\121\1\162\2\1\1\164\4\1\1\165\1\1\1\121\6\1"+ - "\1\166\1\167\1\170\1\171\1\172\3\1\1\173\147\1\2\13\1\146\2\13\1\146\10\13"+ - "\1\174\1\175\2\13\1\130\3\13\1\176\1\1\1\13\1\110\4\177\4\1\1\123\35\1\1\200"+ - "\2\1\1\201\1\25\4\13\1\202\1\25\4\13\1\131\1\105\1\13\1\147\1\25\4\13\1\146"+ - "\1\1\1\13\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1\121\4"+ - "\1\2\13\1\147\20\13\1\121\1\13\1\203\1\1\2\13\1\146\1\123\1\13\1\147\4\13"+ - "\1\40\2\1\1\204\1\205\5\13\1\206\1\13\1\146\1\27\3\1\1\204\1\207\1\13\1\31"+ - "\1\1\3\13\1\142\1\205\2\13\1\142\3\1\1\210\1\42\1\13\1\40\1\13\1\110\1\1\1"+ - "\13\1\121\1\50\2\13\1\31\1\123\1\1\1\211\1\212\2\13\1\46\1\1\1\213\1\1\1\13"+ - "\1\214\3\13\1\215\1\216\1\217\1\30\1\64\1\220\1\221\1\177\2\13\1\131\1\40"+ - "\7\13\1\31\1\1\72\13\1\142\1\13\1\222\2\13\1\151\20\1\26\13\1\147\6\13\1\75"+ - "\2\1\1\110\1\223\1\55\1\224\1\225\6\13\1\16\1\1\1\154\25\13\1\147\1\1\4\13"+ - "\1\205\2\13\1\27\2\1\1\151\7\1\1\211\7\13\1\121\2\1\1\25\1\30\1\25\1\30\1"+ - "\226\4\13\1\146\1\227\1\230\2\1\1\231\1\13\1\14\1\232\2\147\2\1\7\13\1\30"+ - "\30\1\1\13\1\121\3\13\1\67\2\1\2\13\1\1\1\13\1\233\2\13\1\40\1\13\1\147\2"+ - "\13\1\234\3\1\11\13\1\147\1\1\2\13\1\234\1\13\1\151\2\13\1\27\3\13\1\142\11"+ - "\1\23\13\1\110\1\13\1\40\1\27\11\1\1\235\2\13\1\236\1\13\1\40\1\13\1\110\1"+ - "\13\1\146\4\1\1\13\1\237\1\13\1\40\1\13\1\75\4\1\3\13\1\240\4\1\1\67\1\241"+ - "\1\13\1\142\2\1\1\13\1\121\1\13\1\121\2\1\1\120\1\13\1\150\1\1\3\13\1\40\1"+ - "\13\1\40\1\13\1\31\1\13\1\16\6\1\4\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1"+ - "\154\2\13\1\27\4\1\1\154\2\13\2\1\1\13\1\46\1\1\1\154\1\13\1\110\2\1\2\13"+ - "\1\242\1\154\2\13\1\31\1\243\1\244\2\1\1\13\1\22\1\151\5\1\1\245\1\246\1\46"+ - "\2\13\1\146\2\1\1\71\1\54\1\55\1\66\1\1\1\247\1\16\11\1\3\13\1\150\1\250\3"+ - "\1\3\13\1\1\1\251\13\1\2\13\1\146\2\1\1\252\2\1\3\13\1\1\1\253\3\1\2\13\1"+ - "\30\5\1\1\13\1\75\30\1\4\13\1\1\1\123\34\1\3\13\1\46\20\1\1\55\1\13\1\146"+ - "\1\1\1\67\2\1\1\205\1\13\67\1\71\13\1\75\16\1\14\13\1\142\53\1\2\13\1\146"+ - "\75\1\44\13\1\110\33\1\43\13\1\46\1\13\1\146\7\1\1\13\1\147\1\1\3\13\1\1\1"+ - "\142\1\1\1\154\1\254\1\13\67\1\4\13\1\150\1\67\3\1\1\154\4\1\1\67\1\1\76\13"+ - "\1\121\1\1\57\13\1\31\20\1\1\16\77\1\6\13\1\30\1\121\1\46\1\75\66\1\5\13\1"+ - "\211\3\13\1\141\1\255\1\256\1\257\3\13\1\260\1\261\1\13\1\262\1\263\1\36\24"+ - "\13\1\264\1\13\1\36\1\131\1\13\1\131\1\13\1\211\1\13\1\211\1\146\1\13\1\146"+ - "\1\13\1\55\1\13\1\55\1\13\1\213\3\1\14\13\1\150\3\1\4\13\1\142\113\1\1\257"+ - "\1\13\1\265\1\266\1\267\1\270\1\271\1\272\1\273\1\151\1\274\1\151\24\1\55"+ - "\13\1\110\2\1\103\13\1\150\15\13\1\147\150\13\1\16\25\1\41\13\1\147\36\1"); - /* The ZZ_CMAP_A table has 3024 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\2\65\1\0\2\65\22\0\1\65\1\15\1\57\1\6\1\4\1\66\1\16\1\60\2\14\3\0\1"+ - "\12\1\11\1\63\12\2\1\10\1\30\1\17\1\64\1\13\1\61\1\0\1\23\1\54\1\21\1\22\1"+ - "\50\1\44\2\1\1\56\2\1\1\55\1\52\1\1\1\45\1\47\2\1\1\51\1\24\1\53\3\1\1\46"+ - "\1\1\1\20\1\67\1\25\1\0\1\7\1\0\1\32\1\41\4\44\1\31\4\1\1\26\1\42\1\40\1\34"+ - "\1\33\1\36\1\1\1\35\1\27\1\37\2\1\1\43\2\1\1\5\1\14\1\62\7\0\1\3\24\0\1\1"+ - "\12\0\1\1\4\0\1\1\5\0\27\1\1\0\12\1\4\0\14\1\16\0\5\1\7\0\1\1\1\0\1\1\1\0"+ - "\5\1\1\0\2\1\2\0\4\1\1\0\1\1\6\0\1\1\1\0\3\1\1\0\1\1\1\0\4\1\1\0\23\1\1\0"+ - "\13\1\10\0\6\1\1\0\26\1\2\0\1\1\6\0\10\1\10\0\13\1\5\0\3\1\33\0\6\1\1\0\1"+ - "\1\17\0\2\1\7\0\2\1\12\0\3\1\2\0\2\1\1\0\16\1\15\0\11\1\13\0\1\1\30\0\6\1"+ - "\4\0\2\1\4\0\1\1\5\0\6\1\4\0\1\1\11\0\1\1\3\0\1\1\7\0\11\1\7\0\5\1\1\0\10"+ - "\1\6\0\26\1\3\0\1\1\2\0\1\1\7\0\11\1\4\0\10\1\2\0\2\1\2\0\26\1\1\0\7\1\1\0"+ - "\1\1\3\0\4\1\3\0\1\1\20\0\1\1\15\0\2\1\1\0\1\1\5\0\6\1\4\0\2\1\1\0\2\1\1\0"+ - "\2\1\1\0\2\1\17\0\4\1\1\0\1\1\3\0\3\1\20\0\11\1\1\0\2\1\1\0\2\1\1\0\5\1\3"+ - "\0\1\1\2\0\1\1\30\0\1\1\13\0\10\1\2\0\1\1\3\0\1\1\1\0\6\1\3\0\3\1\1\0\4\1"+ - "\3\0\2\1\1\0\1\1\1\0\2\1\3\0\2\1\3\0\3\1\3\0\14\1\13\0\10\1\1\0\2\1\10\0\3"+ - "\1\5\0\1\1\4\0\10\1\1\0\6\1\1\0\5\1\3\0\1\1\3\0\2\1\15\0\13\1\2\0\1\1\6\0"+ - "\3\1\10\0\1\1\5\0\22\1\3\0\10\1\1\0\11\1\1\0\1\1\2\0\7\1\11\0\1\1\1\0\2\1"+ - "\15\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1\2\0\1\1\6\0\4\1\1\0\7\1\1\0\3\1\1\0\1\1"+ - "\1\0\1\1\2\0\2\1\1\0\4\1\1\0\2\1\11\0\1\1\2\0\5\1\1\0\1\1\25\0\14\1\1\0\24"+ - "\1\13\0\5\1\22\0\7\1\4\0\4\1\3\0\1\1\3\0\2\1\7\0\3\1\4\0\15\1\14\0\1\1\1\0"+ - "\6\1\1\0\1\1\5\0\1\1\2\0\13\1\1\0\15\1\1\0\4\1\2\0\7\1\1\0\1\1\1\0\4\1\2\0"+ - "\1\1\1\0\4\1\2\0\7\1\1\0\1\1\1\0\4\1\2\0\16\1\2\0\6\1\2\0\15\1\2\0\1\1\1\0"+ - "\10\1\7\0\15\1\1\0\6\1\23\0\1\1\4\0\1\1\3\0\5\1\2\0\22\1\1\0\1\1\5\0\17\1"+ - "\1\0\16\1\2\0\5\1\13\0\14\1\13\0\1\1\15\0\7\1\7\0\16\1\15\0\2\1\11\0\4\1\1"+ - "\0\4\1\3\0\2\1\11\0\10\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0\6\1\1\0\7\1\1\0\1\1\3"+ - "\0\3\1\1\0\7\1\3\0\4\1\2\0\6\1\14\0\2\3\7\0\1\1\15\0\1\1\2\0\1\1\4\0\1\1\2"+ - "\0\12\1\1\0\1\1\3\0\5\1\6\0\1\1\1\0\1\1\1\0\1\1\1\0\4\1\1\0\13\1\2\0\4\1\5"+ - "\0\5\1\4\0\1\1\4\0\2\1\13\0\5\1\6\0\4\1\3\0\2\1\14\0\10\1\7\0\10\1\1\0\7\1"+ - "\6\0\2\1\12\0\5\1\5\0\2\1\3\0\7\1\6\0\3\1\12\0\2\1\13\0\11\1\2\0\27\1\2\0"+ - "\7\1\1\0\3\1\1\0\4\1\1\0\4\1\2\0\6\1\3\0\1\1\1\0\1\1\2\0\5\1\1\0\12\1\12\0"+ - "\5\1\1\0\3\1\1\0\10\1\4\0\7\1\3\0\1\1\3\0\2\1\1\0\1\1\3\0\2\1\2\0\5\1\2\0"+ - "\1\1\1\0\1\1\30\0\3\1\3\0\6\1\2\0\6\1\2\0\6\1\11\0\7\1\4\0\5\1\3\0\5\1\5\0"+ - "\1\1\1\0\10\1\1\0\5\1\1\0\1\1\1\0\2\1\1\0\2\1\1\0\12\1\6\0\12\1\2\0\6\1\2"+ - "\0\6\1\2\0\6\1\2\0\3\1\3\0\14\1\1\0\16\1\1\0\2\1\1\0\2\1\1\0\10\1\6\0\4\1"+ - "\4\0\16\1\2\0\1\1\1\0\14\1\1\0\2\1\3\0\1\1\2\0\4\1\1\0\2\1\12\0\10\1\6\0\6"+ - "\1\1\0\3\1\1\0\12\1\3\0\1\1\12\0\4\1\25\0\1\1\1\0\1\1\3\0\7\1\1\0\1\1\1\0"+ - "\4\1\1\0\17\1\1\0\2\1\14\0\3\1\7\0\4\1\11\0\2\1\1\0\1\1\20\0\4\1\10\0\1\1"+ - "\13\0\10\1\5\0\3\1\2\0\1\1\2\0\2\1\2\0\4\1\1\0\14\1\1\0\1\1\1\0\7\1\1\0\21"+ - "\1\1\0\4\1\2\0\10\1\1\0\7\1\1\0\14\1\1\0\4\1\1\0\5\1\1\0\1\1\3\0\14\1\2\0"+ - "\10\1\1\0\2\1\1\0\1\1\2\0\1\1\1\0\12\1\1\0\4\1\1\0\1\1\1\0\1\1\6\0\1\1\4\0"+ - "\1\1\1\0\1\1\1\0\1\1\1\0\3\1\1\0\2\1\1\0\1\1\2\0\1\1\1\0\1\1\1\0\1\1\1\0\1"+ - "\1\1\0\1\1\1\0\2\1\1\0\1\1\2\0\4\1\1\0\7\1\1\0\4\1\1\0\4\1\1\0\1\1\1\0\12"+ - "\1\1\0\5\1\1\0\3\1\1\0\5\1\1\0\5\1"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); - /** + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\2\1\1\0\2\1\22\0\1\1\1\2\1\3"+ + "\1\4\1\5\1\6\1\7\1\10\2\11\3\0\1\12"+ + "\1\13\1\14\12\15\1\16\1\17\1\20\1\21\1\22"+ + "\1\23\1\0\1\24\1\25\1\26\1\27\1\30\1\31"+ + "\2\32\1\33\2\32\1\34\1\35\1\32\1\36\1\37"+ + "\2\32\1\40\1\41\1\42\3\32\1\43\1\32\1\44"+ + "\1\45\1\46\1\0\1\47\1\0\1\50\1\51\4\31"+ + "\1\52\4\32\1\53\1\54\1\55\1\56\1\57\1\60"+ + "\1\32\1\61\1\62\1\63\2\32\1\64\2\32\1\65"+ + "\1\11\1\66\7\0\1\67\44\0\1\32\12\0\1\32"+ + "\4\0\1\32\5\0\27\32\1\0\37\32\1\0\u01ca\32"+ + "\4\0\14\32\16\0\5\32\7\0\1\32\1\0\1\32"+ + "\201\0\5\32\1\0\2\32\2\0\4\32\1\0\1\32"+ + "\6\0\1\32\1\0\3\32\1\0\1\32\1\0\24\32"+ + "\1\0\123\32\1\0\213\32\10\0\246\32\1\0\46\32"+ + "\2\0\1\32\6\0\51\32\107\0\33\32\4\0\4\32"+ + "\55\0\53\32\43\0\2\32\1\0\143\32\1\0\1\32"+ + "\17\0\2\32\7\0\2\32\12\0\3\32\2\0\1\32"+ + "\20\0\1\32\1\0\36\32\35\0\131\32\13\0\1\32"+ + "\30\0\41\32\11\0\2\32\4\0\1\32\5\0\26\32"+ + "\4\0\1\32\11\0\1\32\3\0\1\32\27\0\31\32"+ + "\7\0\13\32\65\0\25\32\1\0\10\32\106\0\66\32"+ + "\3\0\1\32\22\0\1\32\7\0\12\32\17\0\20\32"+ + "\4\0\10\32\2\0\2\32\2\0\26\32\1\0\7\32"+ + "\1\0\1\32\3\0\4\32\3\0\1\32\20\0\1\32"+ + "\15\0\2\32\1\0\3\32\16\0\2\32\12\0\1\32"+ + "\10\0\6\32\4\0\2\32\2\0\26\32\1\0\7\32"+ + "\1\0\2\32\1\0\2\32\1\0\2\32\37\0\4\32"+ + "\1\0\1\32\23\0\3\32\20\0\11\32\1\0\3\32"+ + "\1\0\26\32\1\0\7\32\1\0\2\32\1\0\5\32"+ + "\3\0\1\32\22\0\1\32\17\0\2\32\27\0\1\32"+ + "\13\0\10\32\2\0\2\32\2\0\26\32\1\0\7\32"+ + "\1\0\2\32\1\0\5\32\3\0\1\32\36\0\2\32"+ + "\1\0\3\32\17\0\1\32\21\0\1\32\1\0\6\32"+ + "\3\0\3\32\1\0\4\32\3\0\2\32\1\0\1\32"+ + "\1\0\2\32\3\0\2\32\3\0\3\32\3\0\14\32"+ + "\26\0\1\32\64\0\10\32\1\0\3\32\1\0\27\32"+ + "\1\0\20\32\3\0\1\32\32\0\3\32\5\0\2\32"+ + "\36\0\1\32\4\0\10\32\1\0\3\32\1\0\27\32"+ + "\1\0\12\32\1\0\5\32\3\0\1\32\40\0\1\32"+ + "\1\0\2\32\17\0\2\32\22\0\10\32\1\0\3\32"+ + "\1\0\51\32\2\0\1\32\20\0\1\32\5\0\3\32"+ + "\10\0\3\32\30\0\6\32\5\0\22\32\3\0\30\32"+ + "\1\0\11\32\1\0\1\32\2\0\7\32\72\0\60\32"+ + "\1\0\2\32\14\0\7\32\72\0\2\32\1\0\1\32"+ + "\1\0\5\32\1\0\30\32\1\0\1\32\1\0\12\32"+ + "\1\0\2\32\11\0\1\32\2\0\5\32\1\0\1\32"+ + "\25\0\4\32\40\0\1\32\77\0\10\32\1\0\44\32"+ + "\33\0\5\32\163\0\53\32\24\0\1\32\20\0\6\32"+ + "\4\0\4\32\3\0\1\32\3\0\2\32\7\0\3\32"+ + "\4\0\15\32\14\0\1\32\21\0\46\32\1\0\1\32"+ + "\5\0\1\32\2\0\53\32\1\0\115\32\1\0\4\32"+ + "\2\0\7\32\1\0\1\32\1\0\4\32\2\0\51\32"+ + "\1\0\4\32\2\0\41\32\1\0\4\32\2\0\7\32"+ + "\1\0\1\32\1\0\4\32\2\0\17\32\1\0\71\32"+ + "\1\0\4\32\2\0\103\32\45\0\20\32\20\0\126\32"+ + "\2\0\6\32\3\0\u016c\32\2\0\21\32\1\0\32\32"+ + "\5\0\113\32\6\0\10\32\7\0\15\32\1\0\4\32"+ + "\16\0\22\32\16\0\22\32\16\0\15\32\1\0\3\32"+ + "\17\0\64\32\43\0\1\32\4\0\1\32\103\0\131\32"+ + "\7\0\5\32\2\0\42\32\1\0\1\32\5\0\106\32"+ + "\12\0\37\32\61\0\36\32\2\0\5\32\13\0\54\32"+ + "\4\0\32\32\66\0\27\32\11\0\65\32\122\0\1\32"+ + "\135\0\57\32\21\0\7\32\67\0\36\32\15\0\2\32"+ + "\12\0\54\32\32\0\44\32\51\0\3\32\12\0\44\32"+ + "\2\0\11\32\7\0\53\32\2\0\3\32\51\0\4\32"+ + "\1\0\6\32\1\0\2\32\3\0\1\32\5\0\300\32"+ + "\100\0\26\32\2\0\6\32\2\0\46\32\2\0\6\32"+ + "\2\0\10\32\1\0\1\32\1\0\1\32\1\0\1\32"+ + "\1\0\37\32\2\0\65\32\1\0\7\32\1\0\1\32"+ + "\3\0\3\32\1\0\7\32\3\0\4\32\2\0\6\32"+ + "\4\0\15\32\5\0\3\32\1\0\7\32\53\0\2\67"+ + "\107\0\1\32\15\0\1\32\20\0\15\32\145\0\1\32"+ + "\4\0\1\32\2\0\12\32\1\0\1\32\3\0\5\32"+ + "\6\0\1\32\1\0\1\32\1\0\1\32\1\0\4\32"+ + "\1\0\13\32\2\0\4\32\5\0\5\32\4\0\1\32"+ + "\64\0\2\32\u017b\0\57\32\1\0\57\32\1\0\205\32"+ + "\6\0\4\32\3\0\2\32\14\0\46\32\1\0\1\32"+ + "\5\0\1\32\2\0\70\32\7\0\1\32\20\0\27\32"+ + "\11\0\7\32\1\0\7\32\1\0\7\32\1\0\7\32"+ + "\1\0\7\32\1\0\7\32\1\0\7\32\1\0\7\32"+ + "\120\0\1\32\325\0\2\32\52\0\5\32\5\0\2\32"+ + "\4\0\126\32\6\0\3\32\1\0\132\32\1\0\4\32"+ + "\5\0\53\32\1\0\136\32\21\0\33\32\65\0\306\32"+ + "\112\0\360\32\20\0\215\32\103\0\56\32\2\0\15\32"+ + "\3\0\20\32\12\0\2\32\24\0\57\32\20\0\37\32"+ + "\2\0\106\32\61\0\11\32\2\0\147\32\2\0\65\32"+ + "\2\0\5\32\60\0\13\32\1\0\3\32\1\0\4\32"+ + "\1\0\27\32\35\0\64\32\16\0\62\32\76\0\6\32"+ + "\3\0\1\32\1\0\2\32\13\0\34\32\12\0\27\32"+ + "\31\0\35\32\7\0\57\32\34\0\1\32\20\0\5\32"+ + "\1\0\12\32\12\0\5\32\1\0\51\32\27\0\3\32"+ + "\1\0\10\32\24\0\27\32\3\0\1\32\3\0\62\32"+ + "\1\0\1\32\3\0\2\32\2\0\5\32\2\0\1\32"+ + "\1\0\1\32\30\0\3\32\2\0\13\32\7\0\3\32"+ + "\14\0\6\32\2\0\6\32\2\0\6\32\11\0\7\32"+ + "\1\0\7\32\1\0\53\32\1\0\14\32\10\0\163\32"+ + "\35\0\244\32\14\0\27\32\4\0\61\32\4\0\156\32"+ + "\2\0\152\32\46\0\7\32\14\0\5\32\5\0\1\32"+ + "\1\0\12\32\1\0\15\32\1\0\5\32\1\0\1\32"+ + "\1\0\2\32\1\0\2\32\1\0\154\32\41\0\153\32"+ + "\22\0\100\32\2\0\66\32\50\0\14\32\164\0\5\32"+ + "\1\0\207\32\44\0\32\32\6\0\32\32\13\0\131\32"+ + "\3\0\6\32\2\0\6\32\2\0\6\32\2\0\3\32"+ + "\43\0\14\32\1\0\32\32\1\0\23\32\1\0\2\32"+ + "\1\0\17\32\2\0\16\32\42\0\173\32\205\0\35\32"+ + "\3\0\61\32\57\0\40\32\15\0\24\32\1\0\10\32"+ + "\6\0\46\32\12\0\36\32\2\0\44\32\4\0\10\32"+ + "\60\0\236\32\22\0\44\32\4\0\44\32\4\0\50\32"+ + "\10\0\64\32\234\0\67\32\11\0\26\32\12\0\10\32"+ + "\230\0\6\32\2\0\1\32\1\0\54\32\1\0\2\32"+ + "\3\0\1\32\2\0\27\32\12\0\27\32\11\0\37\32"+ + "\101\0\23\32\1\0\2\32\12\0\26\32\12\0\32\32"+ + "\106\0\70\32\6\0\2\32\100\0\1\32\17\0\4\32"+ + "\1\0\3\32\1\0\35\32\52\0\35\32\3\0\35\32"+ + "\43\0\10\32\1\0\34\32\33\0\66\32\12\0\26\32"+ + "\12\0\23\32\15\0\22\32\156\0\111\32\67\0\63\32"+ + "\15\0\63\32\15\0\44\32\334\0\35\32\12\0\1\32"+ + "\10\0\26\32\232\0\27\32\14\0\65\32\113\0\55\32"+ + "\40\0\31\32\32\0\44\32\35\0\1\32\13\0\43\32"+ + "\3\0\1\32\14\0\60\32\16\0\4\32\25\0\1\32"+ + "\1\0\1\32\43\0\22\32\1\0\31\32\124\0\7\32"+ + "\1\0\1\32\1\0\4\32\1\0\17\32\1\0\12\32"+ + "\7\0\57\32\46\0\10\32\2\0\2\32\2\0\26\32"+ + "\1\0\7\32\1\0\2\32\1\0\5\32\3\0\1\32"+ + "\22\0\1\32\14\0\5\32\236\0\65\32\22\0\4\32"+ + "\24\0\1\32\40\0\60\32\24\0\2\32\1\0\1\32"+ + "\270\0\57\32\51\0\4\32\44\0\60\32\24\0\1\32"+ + "\73\0\53\32\15\0\1\32\107\0\33\32\345\0\54\32"+ + "\164\0\100\32\37\0\1\32\240\0\10\32\2\0\47\32"+ + "\20\0\1\32\1\0\1\32\34\0\1\32\12\0\50\32"+ + "\7\0\1\32\25\0\1\32\13\0\56\32\23\0\1\32"+ + "\42\0\71\32\7\0\11\32\1\0\45\32\21\0\1\32"+ + "\61\0\36\32\160\0\7\32\1\0\2\32\1\0\46\32"+ + "\25\0\1\32\31\0\6\32\1\0\2\32\1\0\40\32"+ + "\16\0\1\32\u0147\0\23\32\15\0\232\32\346\0\304\32"+ + "\274\0\57\32\321\0\107\32\271\0\71\32\7\0\37\32"+ + "\161\0\36\32\22\0\60\32\20\0\4\32\37\0\25\32"+ + "\5\0\23\32\260\0\100\32\200\0\113\32\5\0\1\32"+ + "\102\0\15\32\100\0\2\32\1\0\1\32\34\0\370\32"+ + "\10\0\363\32\15\0\37\32\61\0\3\32\21\0\4\32"+ + "\10\0\u018c\32\4\0\153\32\5\0\15\32\3\0\11\32"+ + "\7\0\12\32\146\0\125\32\1\0\107\32\1\0\2\32"+ + "\2\0\1\32\2\0\2\32\2\0\4\32\1\0\14\32"+ + "\1\0\1\32\1\0\7\32\1\0\101\32\1\0\4\32"+ + "\2\0\10\32\1\0\7\32\1\0\34\32\1\0\4\32"+ + "\1\0\5\32\1\0\1\32\3\0\7\32\1\0\u0154\32"+ + "\2\0\31\32\1\0\31\32\1\0\37\32\1\0\31\32"+ + "\1\0\37\32\1\0\31\32\1\0\37\32\1\0\31\32"+ + "\1\0\37\32\1\0\31\32\1\0\10\32\64\0\55\32"+ + "\12\0\7\32\20\0\1\32\u0171\0\54\32\24\0\305\32"+ + "\73\0\104\32\7\0\1\32\264\0\4\32\1\0\33\32"+ + "\1\0\2\32\1\0\1\32\2\0\1\32\1\0\12\32"+ + "\1\0\4\32\1\0\1\32\1\0\1\32\6\0\1\32"+ + "\4\0\1\32\1\0\1\32\1\0\1\32\1\0\3\32"+ + "\1\0\2\32\1\0\1\32\2\0\1\32\1\0\1\32"+ + "\1\0\1\32\1\0\1\32\1\0\1\32\1\0\2\32"+ + "\1\0\1\32\2\0\4\32\1\0\7\32\1\0\4\32"+ + "\1\0\4\32\1\0\1\32\1\0\12\32\1\0\21\32"+ + "\5\0\3\32\1\0\5\32\1\0\21\32\104\0\327\32"+ + "\51\0\65\32\13\0\336\32\2\0\u0182\32\16\0\u0131\32"+ + "\37\0\36\32\342\0"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[27648]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\1\16\0\1\1\1\2\1\1\1\3\1\4\1\2"+ - "\1\1\1\3\1\5\1\6\1\7\2\3\2\10\1\3"+ - "\4\11\1\12\1\13\1\14\1\13\1\15\1\16\4\17"+ - "\1\20\1\21\1\22\2\23\1\14\1\23\1\24\3\23"+ - "\1\25\1\3\2\12\2\3\2\1\1\26\1\13\4\26"+ - "\1\27\10\0\1\30\1\31\1\5\1\0\1\32\2\10"+ - "\1\33\1\12\2\0\1\16\5\0\1\34\1\0\2\12"+ - "\3\0\1\35\1\36\1\0\1\37\12\0\1\40\1\41"+ - "\1\42\1\43\1\44\2\12\1\45\1\46\2\0\1\47"+ - "\2\0\2\12\2\0\2\12\2\0\1\50\1\51\4\0"+ - "\1\52\1\53"; + "\1\1\16\0\1\1\1\2\1\1\1\3\1\4\1\1"+ + "\1\2\1\3\1\5\1\3\1\6\1\3\1\7\1\10"+ + "\1\3\1\10\4\11\1\12\1\13\1\14\1\13\1\15"+ + "\1\16\1\17\1\20\1\17\1\21\1\17\1\22\1\17"+ + "\1\23\1\24\2\23\1\14\3\23\2\3\1\25\2\12"+ + "\1\3\2\1\4\26\1\13\1\26\1\27\10\0\1\30"+ + "\1\31\1\32\1\6\1\0\1\10\1\33\1\10\1\12"+ + "\2\0\1\16\6\0\2\12\2\0\1\34\1\0\1\35"+ + "\1\36\3\0\1\37\10\0\1\40\1\41\1\42\1\43"+ + "\1\44\2\12\1\45\1\46\2\0\1\47\2\0\2\12"+ + "\2\0\2\12\2\0\1\50\1\51\4\0\1\52\1\53"; private static int [] zzUnpackAction() { int [] result = new int[147]; @@ -207,7 +318,7 @@ public class __XmlLexer implements FlexLexer { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); @@ -216,17 +327,17 @@ public class __XmlLexer implements FlexLexer { "\0\0\0\70\0\160\0\250\0\340\0\u0118\0\u0150\0\u0188"+ "\0\u01c0\0\u01f8\0\u0230\0\u0268\0\u02a0\0\u02d8\0\u0310\0\u0348"+ "\0\u0380\0\u03b8\0\u03f0\0\u0428\0\u0460\0\u0498\0\u04d0\0\u0508"+ - "\0\u0540\0\u04d0\0\u0578\0\u05b0\0\u05e8\0\u0620\0\u0658\0\u04d0"+ - "\0\u03f0\0\u0578\0\u0658\0\u0690\0\u04d0\0\u06c8\0\u0700\0\u04d0"+ - "\0\u0738\0\u04d0\0\u0540\0\u03f0\0\u0578\0\u04d0\0\u04d0\0\u04d0"+ - "\0\u04d0\0\u0770\0\u03f0\0\u0578\0\u04d0\0\u07a8\0\u07e0\0\u0818"+ - "\0\u04d0\0\u0850\0\u0888\0\u08c0\0\u08f8\0\u0930\0\u04d0\0\u0968"+ - "\0\u04d0\0\u09a0\0\u09d8\0\u03f0\0\u0578\0\u0a10\0\u04d0\0\u0a48"+ + "\0\u0540\0\u0578\0\u05b0\0\u04d0\0\u05e8\0\u0620\0\u0658\0\u04d0"+ + "\0\u03f0\0\u05b0\0\u0620\0\u0690\0\u04d0\0\u06c8\0\u0700\0\u04d0"+ + "\0\u0738\0\u04d0\0\u04d0\0\u03f0\0\u04d0\0\u05b0\0\u04d0\0\u0508"+ + "\0\u04d0\0\u04d0\0\u0770\0\u07a8\0\u03f0\0\u05b0\0\u07e0\0\u0818"+ + "\0\u0850\0\u0888\0\u04d0\0\u08c0\0\u08f8\0\u0930\0\u04d0\0\u0968"+ + "\0\u04d0\0\u03f0\0\u09a0\0\u05b0\0\u09d8\0\u0a10\0\u04d0\0\u0a48"+ "\0\u0a80\0\u0ab8\0\u0af0\0\u0b28\0\u0b60\0\u0b98\0\u0bd0\0\u04d0"+ - "\0\u04d0\0\u0c08\0\u0c40\0\u04d0\0\u0c78\0\u0cb0\0\u04d0\0\u0ce8"+ + "\0\u04d0\0\u04d0\0\u0c08\0\u0c40\0\u0c78\0\u04d0\0\u0cb0\0\u0ce8"+ "\0\u0d20\0\u0d58\0\u0d90\0\u0dc8\0\u0e00\0\u0e38\0\u0e70\0\u0850"+ - "\0\u04d0\0\u0ea8\0\u0ee0\0\u0f18\0\u08f8\0\u0930\0\u0f50\0\u04d0"+ - "\0\u04d0\0\u0f88\0\u04d0\0\u0fc0\0\u0ff8\0\u1030\0\u1068\0\u10a0"+ + "\0\u0888\0\u0ea8\0\u0ee0\0\u0930\0\u0f18\0\u04d0\0\u0f50\0\u04d0"+ + "\0\u04d0\0\u0f88\0\u0fc0\0\u0ff8\0\u04d0\0\u1030\0\u1068\0\u10a0"+ "\0\u10d8\0\u1110\0\u1148\0\u1180\0\u11b8\0\u05e8\0\u04d0\0\u04d0"+ "\0\u04d0\0\u04d0\0\u11f0\0\u1228\0\u04d0\0\u04d0\0\u1260\0\u1298"+ "\0\u04d0\0\u12d0\0\u1308\0\u1340\0\u1378\0\u13b0\0\u13e8\0\u1420"+ @@ -243,7 +354,7 @@ public class __XmlLexer implements FlexLexer { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -251,128 +362,112 @@ public class __XmlLexer implements FlexLexer { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\3\20\1\21\1\22\1\20\1\22\7\20\1\23\1\24"+ - "\45\20\1\25\1\20\1\26\1\27\1\30\1\27\1\31"+ - "\3\27\2\30\2\27\1\32\2\27\1\23\1\33\1\27"+ - "\4\30\1\27\2\30\1\27\26\30\4\27\1\34\1\27"+ - "\1\31\3\27\1\35\5\27\2\35\5\27\1\23\1\33"+ - "\1\27\4\35\1\27\2\35\1\27\12\35\1\36\13\35"+ - "\2\27\1\37\6\27\3\40\1\31\12\40\1\41\1\42"+ - "\41\40\1\43\3\40\1\31\2\40\1\27\1\44\1\27"+ - "\1\31\3\27\2\44\2\27\1\32\2\27\1\23\1\33"+ - "\1\27\4\44\1\27\2\44\1\27\26\44\6\27\1\31"+ - "\2\27\12\45\1\46\4\45\1\47\1\50\47\45\1\27"+ - "\1\51\1\27\1\31\3\27\2\51\5\27\1\23\1\33"+ - "\1\27\4\51\1\27\2\51\1\27\26\51\6\27\1\31"+ - "\2\27\3\52\1\53\12\52\1\54\1\55\37\52\1\56"+ - "\1\57\3\52\1\60\1\31\2\52\16\27\1\23\1\33"+ - "\50\27\4\61\1\62\1\61\1\62\7\61\1\63\1\64"+ - "\37\61\1\65\6\61\1\66\5\61\1\67\1\61\1\67"+ - "\7\61\1\63\1\64\40\61\1\65\5\61\1\70\1\61"+ - "\1\27\1\44\1\27\1\31\3\27\2\44\2\27\1\71"+ - "\2\27\1\23\1\33\1\72\4\44\1\27\2\44\1\27"+ - "\16\44\1\73\1\44\1\74\5\44\1\75\1\76\4\27"+ - "\1\31\2\27\25\77\1\100\42\77\1\101\1\102\10\101"+ - "\1\103\3\101\1\104\1\105\1\101\4\102\1\106\2\102"+ - "\1\101\26\102\12\101\1\102\10\101\1\103\3\101\1\104"+ - "\1\105\1\101\4\102\1\107\2\102\1\101\26\102\11\101"+ - "\4\20\1\0\1\20\1\0\7\20\2\0\45\20\1\0"+ - "\1\20\1\26\3\20\1\21\1\0\1\20\1\0\7\20"+ - "\2\0\45\20\1\25\1\20\1\26\5\0\1\110\63\0"+ - "\1\111\4\0\1\112\2\111\10\0\4\111\1\0\1\113"+ - "\1\111\1\0\1\113\1\114\3\111\1\115\1\111\1\116"+ - "\16\111\26\0\1\117\43\0\1\120\1\0\1\121\7\0"+ - "\1\25\61\0\1\25\2\0\16\20\2\0\45\20\1\0"+ - "\1\20\1\26\71\0\2\30\4\0\1\30\1\122\2\30"+ - "\6\0\4\30\1\0\2\30\1\0\26\30\14\0\1\31"+ - "\61\0\1\31\17\0\1\123\65\0\1\124\55\0\2\35"+ - "\4\0\1\35\1\125\2\35\6\0\4\35\1\0\2\35"+ - "\1\0\26\35\12\0\2\35\4\0\1\35\1\125\2\35"+ - "\6\0\4\35\1\0\2\35\1\0\11\35\1\126\14\35"+ - "\24\0\1\127\55\0\2\44\4\0\1\44\1\130\2\44"+ - "\6\0\4\44\1\0\2\44\1\0\26\44\11\0\12\45"+ - "\1\131\55\45\15\0\1\132\53\0\2\51\4\0\1\51"+ - "\1\133\2\51\6\0\4\51\1\0\2\51\1\0\26\51"+ - "\16\0\1\134\146\0\1\135\10\0\1\136\146\0\1\137"+ - "\3\0\25\140\1\141\31\140\1\142\10\140\1\0\2\44"+ - "\4\0\1\44\1\130\2\44\6\0\4\44\1\0\2\44"+ - "\1\0\22\44\1\143\3\44\12\0\2\44\4\0\1\44"+ - "\1\130\2\44\6\0\4\44\1\0\2\44\1\0\15\44"+ - "\1\144\10\44\11\0\57\145\1\61\10\145\60\146\1\61"+ - "\7\146\25\0\1\147\43\0\3\102\5\0\1\102\2\0"+ - "\3\102\2\0\4\102\1\0\2\102\1\0\26\102\6\0"+ - "\1\102\14\0\1\131\70\0\1\150\54\0\17\110\1\0"+ - "\42\110\1\151\5\110\1\0\2\111\4\0\1\111\1\152"+ - "\2\111\6\0\4\111\1\0\2\111\1\153\26\111\13\0"+ - "\1\154\40\0\1\155\25\0\2\111\4\0\1\111\1\152"+ - "\2\111\6\0\4\111\1\0\1\111\1\156\1\153\26\111"+ - "\12\0\2\111\4\0\1\111\1\152\2\111\6\0\4\111"+ - "\1\0\2\111\1\153\2\111\1\157\6\111\1\160\14\111"+ - "\12\0\2\111\4\0\1\111\1\152\2\111\6\0\4\111"+ - "\1\0\2\111\1\153\6\111\1\161\17\111\12\0\2\111"+ - "\4\0\1\111\1\152\2\111\6\0\4\111\1\0\2\111"+ - "\1\153\10\111\1\162\15\111\23\0\1\163\5\0\1\164"+ - "\1\0\1\165\46\0\2\122\4\0\1\122\1\0\2\122"+ - "\6\0\4\122\1\0\2\122\1\0\26\122\23\0\1\163"+ - "\5\0\1\164\50\0\2\125\4\0\1\125\1\0\2\125"+ - "\6\0\4\125\1\0\2\125\1\0\26\125\12\0\2\35"+ - "\4\0\1\35\1\125\2\35\6\0\4\35\1\0\1\166"+ - "\1\35\1\0\26\35\12\0\2\130\4\0\1\130\1\0"+ - "\2\130\6\0\4\130\1\0\2\130\1\0\26\130\24\0"+ - "\1\167\74\0\1\170\50\0\2\133\4\0\1\133\1\0"+ - "\2\133\6\0\4\133\1\0\2\133\1\0\26\133\11\0"+ - "\57\134\1\0\2\134\1\171\5\134\57\135\1\0\6\135"+ - "\1\172\1\135\60\136\1\0\1\136\1\171\5\136\60\137"+ - "\1\0\5\137\1\172\1\137\57\142\1\140\10\142\1\0"+ - "\2\44\4\0\1\44\1\130\2\44\6\0\4\44\1\0"+ - "\2\44\1\0\23\44\1\173\2\44\12\0\2\44\4\0"+ - "\1\44\1\130\2\44\6\0\4\44\1\0\2\44\1\0"+ - "\20\44\1\174\5\44\24\0\1\175\55\0\2\152\4\0"+ - "\1\152\1\0\2\152\6\0\4\152\1\0\2\152\1\153"+ - "\26\152\13\0\1\154\25\0\1\176\41\0\1\177\16\0"+ - "\3\177\6\0\1\177\6\0\1\177\2\0\1\177\3\0"+ - "\1\177\3\0\1\177\14\0\2\111\4\0\1\111\1\152"+ - "\2\111\6\0\4\111\1\0\2\111\1\176\26\111\12\0"+ - "\2\111\4\0\1\111\1\152\2\111\6\0\4\111\1\0"+ - "\2\111\1\153\3\111\1\200\22\111\12\0\2\111\4\0"+ - "\1\111\1\152\2\111\6\0\4\111\1\0\2\111\1\153"+ - "\2\111\1\156\23\111\12\0\2\111\4\0\1\111\1\152"+ - "\2\111\6\0\4\111\1\0\2\111\1\153\3\111\1\113"+ - "\22\111\12\0\2\111\4\0\1\111\1\152\2\111\6\0"+ - "\4\111\1\0\2\111\1\153\4\111\1\160\21\111\23\0"+ - "\1\201\76\0\1\202\113\0\1\203\23\0\2\44\4\0"+ - "\1\44\1\130\2\44\6\0\4\44\1\0\2\44\1\0"+ - "\24\44\1\204\1\44\12\0\2\44\4\0\1\44\1\130"+ - "\2\44\6\0\3\44\1\205\1\0\2\44\1\0\26\44"+ - "\13\0\1\177\16\0\3\177\4\0\1\176\1\0\1\177"+ - "\6\0\1\177\2\0\1\177\3\0\1\177\3\0\1\177"+ - "\14\0\2\111\4\0\1\111\1\152\2\111\6\0\4\111"+ - "\1\0\2\111\1\153\4\111\1\156\21\111\33\0\1\206"+ - "\66\0\1\207\47\0\2\44\4\0\1\44\1\130\2\44"+ - "\6\0\4\44\1\0\2\44\1\0\25\44\1\210\12\0"+ - "\2\44\4\0\1\44\1\130\2\44\6\0\4\44\1\0"+ - "\2\44\1\0\17\44\1\211\6\44\34\0\1\212\70\0"+ - "\1\213\44\0\2\44\4\0\1\44\1\130\2\44\6\0"+ - "\1\214\3\44\1\0\2\44\1\0\26\44\12\0\2\44"+ - "\4\0\1\44\1\130\2\44\6\0\4\44\1\0\2\44"+ - "\1\0\21\44\1\215\4\44\35\0\1\216\111\0\1\217"+ - "\44\0\1\220\113\0\1\221\40\0\1\222\117\0\1\223"+ - "\17\0"; + "\1\20\1\21\2\20\2\22\1\20\1\23\10\20\1\24"+ + "\24\20\1\25\21\20\1\26\1\27\1\30\5\27\1\23"+ + "\4\27\1\31\1\27\1\32\1\27\1\33\1\27\1\34"+ + "\1\27\20\32\3\27\16\32\2\27\1\30\7\27\1\23"+ + "\6\27\1\35\1\27\1\33\2\27\1\36\20\35\3\27"+ + "\15\35\1\37\3\27\1\40\1\30\5\40\1\41\10\40"+ + "\1\42\2\40\1\43\43\40\1\30\1\27\1\30\5\27"+ + "\1\23\6\27\1\44\1\27\1\33\1\27\1\34\1\27"+ + "\20\44\3\27\16\44\2\27\1\30\12\45\1\46\5\45"+ + "\1\47\23\45\1\50\23\45\1\27\1\30\5\27\1\23"+ + "\6\27\1\51\1\27\1\33\3\27\20\51\3\27\16\51"+ + "\2\27\1\30\1\52\1\30\1\52\1\53\3\52\1\54"+ + "\1\55\7\52\1\56\1\57\45\52\1\60\7\27\1\23"+ + "\10\27\1\33\47\27\3\61\1\62\2\63\1\64\1\65"+ + "\10\61\1\66\53\61\2\67\1\70\1\65\1\62\7\61"+ + "\1\66\47\61\1\27\1\30\1\27\1\71\3\27\1\23"+ + "\1\72\5\27\1\44\1\27\1\33\1\27\1\73\1\27"+ + "\13\44\1\74\1\75\3\44\1\76\2\27\16\44\2\27"+ + "\1\30\46\77\1\100\21\77\7\101\1\102\2\101\1\103"+ + "\5\101\1\104\3\101\20\105\2\101\1\106\1\101\15\105"+ + "\12\101\1\102\2\101\1\103\5\101\1\104\3\101\20\105"+ + "\2\101\1\107\1\101\15\105\3\101\1\20\1\0\2\20"+ + "\2\0\1\20\1\0\10\20\1\0\24\20\1\25\22\20"+ + "\1\0\1\21\65\0\1\21\65\0\1\110\6\0\1\111"+ + "\11\0\1\112\5\0\20\112\3\0\1\112\1\113\1\112"+ + "\2\114\1\112\1\115\2\112\1\116\4\112\5\0\1\117"+ + "\11\0\1\120\6\0\1\121\44\0\1\20\1\0\5\20"+ + "\1\0\10\20\1\0\24\20\1\25\23\20\1\21\2\20"+ + "\2\0\1\20\1\0\10\20\1\0\24\20\1\25\21\20"+ + "\1\26\71\0\1\30\65\0\1\30\22\0\1\122\57\0"+ + "\2\32\1\0\1\32\1\123\5\0\20\32\3\0\16\32"+ + "\5\0\1\124\77\0\2\35\1\0\1\35\1\125\5\0"+ + "\20\35\3\0\16\35\25\0\1\126\57\0\2\35\1\0"+ + "\1\35\1\125\5\0\20\35\3\0\5\35\1\127\10\35"+ + "\15\0\2\44\1\0\1\44\1\130\5\0\20\44\3\0"+ + "\16\44\3\0\12\45\1\131\55\45\2\0\1\132\77\0"+ + "\2\51\1\0\1\51\1\133\5\0\20\51\3\0\16\51"+ + "\70\0\1\134\23\0\1\135\133\0\1\136\23\0\1\137"+ + "\46\0\3\140\1\61\64\140\10\141\1\61\57\141\12\0"+ + "\2\44\1\0\1\44\1\130\5\0\16\44\1\142\1\44"+ + "\3\0\16\44\15\0\2\44\1\0\1\44\1\130\5\0"+ + "\17\44\1\143\3\0\16\44\3\0\3\144\1\145\42\144"+ + "\1\146\21\144\46\0\1\147\33\0\1\131\56\0\2\105"+ + "\4\0\1\105\1\0\1\105\1\0\1\105\1\0\1\105"+ + "\6\0\20\105\4\0\15\105\2\0\1\105\22\0\1\150"+ + "\45\0\20\110\1\0\45\110\1\151\1\110\15\0\1\152"+ + "\46\0\1\153\15\0\2\112\1\0\1\112\1\154\1\155"+ + "\4\0\20\112\3\0\16\112\15\0\2\112\1\0\1\112"+ + "\1\154\1\155\4\0\20\112\3\0\5\112\1\156\2\112"+ + "\1\157\5\112\15\0\2\112\1\0\1\112\1\154\1\155"+ + "\4\0\20\112\3\0\13\112\1\160\2\112\15\0\2\112"+ + "\1\0\1\112\1\154\1\155\4\0\20\112\3\0\2\112"+ + "\1\161\13\112\15\0\2\112\1\0\1\112\1\154\1\155"+ + "\4\0\20\112\3\0\14\112\1\162\1\112\15\0\1\163"+ + "\14\0\1\164\14\0\1\165\35\0\2\123\1\0\1\123"+ + "\6\0\20\123\3\0\16\123\15\0\1\163\31\0\1\165"+ + "\35\0\2\125\1\0\1\125\6\0\20\125\3\0\16\125"+ + "\15\0\2\35\1\0\1\35\1\125\5\0\20\35\3\0"+ + "\4\35\1\166\11\35\15\0\2\130\1\0\1\130\6\0"+ + "\20\130\3\0\16\130\25\0\1\167\111\0\1\170\35\0"+ + "\2\133\1\0\1\133\6\0\20\133\3\0\16\133\3\0"+ + "\3\134\1\0\62\134\1\171\1\134\3\135\1\0\2\135"+ + "\1\172\61\135\10\136\1\0\55\136\1\171\1\136\6\137"+ + "\1\172\1\137\1\0\57\137\12\0\2\44\1\0\1\44"+ + "\1\130\5\0\1\44\1\173\16\44\3\0\16\44\15\0"+ + "\2\44\1\0\1\44\1\130\5\0\14\44\1\174\3\44"+ + "\3\0\16\44\3\0\3\145\1\144\64\145\22\0\1\175"+ + "\62\0\1\152\1\0\1\176\65\0\1\177\6\0\6\177"+ + "\16\0\2\177\30\0\2\154\1\0\1\154\1\0\1\155"+ + "\4\0\20\154\3\0\16\154\15\0\2\112\1\0\1\112"+ + "\1\154\1\155\4\0\20\112\3\0\10\112\1\160\5\112"+ + "\15\0\2\112\1\0\1\112\1\154\1\155\4\0\20\112"+ + "\3\0\7\112\1\200\6\112\15\0\2\112\1\0\1\112"+ + "\1\154\1\176\4\0\20\112\3\0\16\112\15\0\2\112"+ + "\1\0\1\112\1\154\1\155\4\0\20\112\3\0\12\112"+ + "\1\156\3\112\15\0\2\112\1\0\1\112\1\154\1\155"+ + "\4\0\20\112\3\0\7\112\1\114\6\112\15\0\1\201"+ + "\113\0\1\202\57\0\1\203\53\0\2\44\1\0\1\44"+ + "\1\130\5\0\10\44\1\204\7\44\3\0\16\44\15\0"+ + "\2\44\1\0\1\44\1\130\5\0\15\44\1\205\2\44"+ + "\3\0\16\44\20\0\1\177\1\0\1\176\4\0\6\177"+ + "\16\0\2\177\30\0\2\112\1\0\1\112\1\154\1\155"+ + "\4\0\20\112\3\0\12\112\1\160\3\112\31\0\1\206"+ + "\70\0\1\207\52\0\2\44\1\0\1\44\1\130\5\0"+ + "\7\44\1\210\10\44\3\0\16\44\15\0\2\44\1\0"+ + "\1\44\1\130\5\0\4\44\1\211\13\44\3\0\16\44"+ + "\44\0\1\212\52\0\1\213\55\0\2\44\1\0\1\44"+ + "\1\130\5\0\2\44\1\214\15\44\3\0\16\44\15\0"+ + "\2\44\1\0\1\44\1\130\5\0\11\44\1\215\6\44"+ + "\3\0\16\44\46\0\1\216\65\0\1\217\65\0\1\220"+ + "\54\0\1\221\73\0\1\222\103\0\1\223\23\0"; - private static int [] zzUnpackTrans() { + private static int [] zzUnpacktrans() { int [] result = new int[5600]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -399,19 +494,19 @@ public class __XmlLexer implements FlexLexer { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\16\0\7\1\1\11\2\1\1\11\5\1\1\11"+ - "\4\1\1\11\2\1\1\11\1\1\1\11\3\1\4\11"+ - "\3\1\1\11\3\1\1\11\5\1\1\11\1\1\1\11"+ - "\5\1\1\11\10\0\2\11\1\1\1\0\1\11\2\1"+ - "\1\11\1\1\2\0\1\1\5\0\1\11\1\0\2\1"+ - "\3\0\2\11\1\0\1\11\12\0\1\1\4\11\2\1"+ - "\2\11\2\0\1\11\2\0\2\1\2\0\2\1\2\0"+ - "\2\1\4\0\2\11"; + "\1\1\16\0\7\1\1\11\4\1\1\11\3\1\1\11"+ + "\4\1\1\11\2\1\1\11\1\1\2\11\1\1\1\11"+ + "\1\1\1\11\1\1\2\11\10\1\1\11\3\1\1\11"+ + "\1\1\1\11\5\1\1\11\10\0\3\11\1\1\1\0"+ + "\1\1\1\11\2\1\2\0\1\1\6\0\2\1\2\0"+ + "\1\11\1\0\2\11\3\0\1\11\10\0\1\1\4\11"+ + "\2\1\2\11\2\0\1\11\2\0\2\1\2\0\2\1"+ + "\2\0\2\1\4\0\2\11"; private static int [] zzUnpackAttribute() { int [] result = new int[147]; @@ -458,15 +553,27 @@ public class __XmlLexer implements FlexLexer { from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ + @SuppressWarnings("unused") private boolean zzEOFDone; /* user code: */ @@ -515,26 +622,22 @@ public class __XmlLexer implements FlexLexer { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - private static char [] zzUnpackCMap(String packed) { - int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) { - size += packed.charAt(i); - } - char[] map = new char[size]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -666,7 +769,8 @@ public class __XmlLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -700,7 +804,7 @@ public class __XmlLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -722,11 +826,11 @@ public class __XmlLexer implements FlexLexer { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -749,229 +853,229 @@ public class __XmlLexer implements FlexLexer { } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return XmlTokenType.XML_DATA_CHARACTERS; - } - // fall through + } + // fall through case 44: break; - case 2: + case 2: { return XmlTokenType.XML_REAL_WHITE_SPACE; - } - // fall through + } + // fall through case 45: break; - case 3: + case 3: { if(yystate() == YYINITIAL){ return XmlTokenType.XML_BAD_CHARACTER; } else yybegin(popState()); yypushback(yylength()); - } - // fall through + } + // fall through case 46: break; - case 4: + case 4: { yybegin(TAG); return XmlTokenType.XML_START_TAG_START; - } - // fall through + } + // fall through case 47: break; - case 5: - { yybegin(ATTR_LIST); pushState(TAG); return XmlTokenType.XML_NAME; - } - // fall through - case 48: break; - case 6: + case 5: { return XmlTokenType.XML_WHITE_SPACE; - } - // fall through + } + // fall through + case 48: break; + case 6: + { yybegin(ATTR_LIST); pushState(TAG); return XmlTokenType.XML_NAME; + } + // fall through case 49: break; - case 7: + case 7: { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END; - } - // fall through + } + // fall through case 50: break; - case 8: + case 8: { yybegin(PI_ANY); return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 51: break; - case 9: + case 9: { return XmlTokenType.XML_TAG_CHARACTERS; - } - // fall through + } + // fall through case 52: break; - case 10: + case 10: { return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 53: break; - case 11: + case 11: { return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 54: break; - case 12: + case 12: { return XmlTokenType.XML_BAD_CHARACTER; - } - // fall through + } + // fall through case 55: break; - case 13: + case 13: { if (myConditionalCommentsSupport) { yybegin(C_COMMENT_START); return XmlTokenType.XML_CONDITIONAL_COMMENT_START; } else return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 56: break; - case 14: + case 14: { yybegin(ATTR); return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 57: break; - case 15: + case 15: { yybegin(ATTR_LIST); yypushback(yylength()); - } - // fall through + } + // fall through case 58: break; - case 16: + case 16: { yybegin(ATTR_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through + } + // fall through case 59: break; - case 17: + case 17: { yybegin(ATTR_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; - } - // fall through + } + // fall through case 60: break; - case 18: + case 18: { return XmlTokenType.XML_EQ; - } - // fall through + } + // fall through case 61: break; - case 19: + case 19: { return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; - } - // fall through + } + // fall through case 62: break; - case 20: + case 20: { yybegin(ATTR_LIST); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; - } - // fall through + } + // fall through case 63: break; - case 21: + case 21: { yybegin(YYINITIAL); return XmlTokenType.XML_DOCTYPE_END; - } - // fall through + } + // fall through case 64: break; - case 22: + case 22: { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 65: break; - case 23: + case 23: { yybegin(COMMENT); return XmlTokenType.XML_CONDITIONAL_COMMENT_END; - } - // fall through + } + // fall through case 66: break; - case 24: - { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START; - } - // fall through - case 67: break; - case 25: + case 24: { yybegin(END_TAG); return XmlTokenType.XML_END_TAG_START; - } - // fall through + } + // fall through + case 67: break; + case 25: + { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START; + } + // fall through case 68: break; - case 26: + case 26: { yybegin(YYINITIAL); return XmlTokenType.XML_EMPTY_ELEMENT_END; - } - // fall through + } + // fall through case 69: break; - case 27: + case 27: { yybegin(YYINITIAL); return XmlTokenType.XML_PI_END; - } - // fall through + } + // fall through case 70: break; - case 28: + case 28: { return XmlElementType.XML_MARKUP_DECL; - } - // fall through + } + // fall through case 71: break; - case 29: + case 29: { yybegin(COMMENT); return XmlTokenType.XML_CONDITIONAL_COMMENT_START_END; - } - // fall through + } + // fall through case 72: break; - case 30: + case 30: { return elTokenType; - } - // fall through + } + // fall through case 73: break; - case 31: + case 31: { return XmlTokenType.XML_ENTITY_REF_TOKEN; - } - // fall through + } + // fall through case 74: break; - case 32: + case 32: { yybegin(ATTR_LIST); pushState(PROCESSING_INSTRUCTION); return XmlTokenType.XML_NAME; - } - // fall through + } + // fall through case 75: break; - case 33: + case 33: { yybegin(YYINITIAL); return XmlTokenType.XML_COMMENT_END; - } - // fall through + } + // fall through case 76: break; - case 34: + case 34: { if (myConditionalCommentsSupport) { yybegin(C_COMMENT_END); return XmlTokenType.XML_CONDITIONAL_COMMENT_END_START; } else return XmlTokenType.XML_COMMENT_CHARACTERS; - } - // fall through + } + // fall through case 77: break; - case 35: + case 35: { return elTokenType2; - } - // fall through + } + // fall through case 78: break; - case 36: + case 36: { return javaEmbeddedTokenType; - } - // fall through + } + // fall through case 79: break; - case 37: + case 37: { yybegin(YYINITIAL); return XmlTokenType.XML_CDATA_END; - } - // fall through + } + // fall through case 80: break; - case 38: + case 38: { return XmlTokenType.XML_CHAR_ENTITY_REF; - } - // fall through + } + // fall through case 81: break; - case 39: + case 39: { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START; - } - // fall through + } + // fall through case 82: break; - case 40: + case 40: { return XmlTokenType.XML_DOCTYPE_PUBLIC; - } - // fall through + } + // fall through case 83: break; - case 41: + case 41: { return XmlTokenType.XML_DOCTYPE_SYSTEM; - } - // fall through + } + // fall through case 84: break; - case 42: - { yybegin(CDATA); return XmlTokenType.XML_CDATA_START; - } - // fall through - case 85: break; - case 43: + case 42: { yybegin(DOCTYPE); return XmlTokenType.XML_DOCTYPE_START; - } - // fall through + } + // fall through + case 85: break; + case 43: + { yybegin(CDATA); return XmlTokenType.XML_CDATA_START; + } + // fall through case 86: break; default: zzScanError(ZZ_NO_MATCH);