/* The following code was generated by JFlex 1.4.3 on 1/17/12 6:49 PM */
package jsyntaxpane.lexers;
import jsyntaxpane.Token;
import jsyntaxpane.TokenType;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 1/17/12 6:49 PM from the specification file
* <tt>sparql.flex</tt>
*/
public final class CLexer extends DefaultJFlexLexer {
/** This character denotes the end of file */
public static final int YYEOF = -1;
/** initial size of the lookahead buffer */
private static final int ZZ_BUFFERSIZE = 16384;
/** lexical states */
public static final int IRI_REF_END = 10;
public static final int YYINITIAL = 0;
public static final int IRI_REF_BODY = 8;
public static final int PNAME_LN2 = 6;
public static final int PNAME_NS = 2;
public static final int PNAME_LN = 4;
/**
* ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
* ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
* at the beginning of a line
* l is of the form l = 2*k, k a non negative integer
*/
private static final int ZZ_LEXSTATE[] = {
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
};
/**
* Translates characters to character classes
*/
private static final String ZZ_CMAP_PACKED =
"\11\1\1\25\1\101\2\1\1\17\22\1\1\25\1\74\1\20\1\100"+
"\1\6\1\0\1\72\1\16\1\23\1\24\1\75\1\14\1\70\1\11"+
"\1\13\1\76\12\12\1\4\1\67\1\2\1\73\1\3\1\6\1\7"+
"\1\34\1\32\1\46\1\54\1\15\1\41\1\62\1\61\1\43\1\10"+
"\1\55\1\45\1\57\1\52\1\51\1\36\1\10\1\37\1\35\1\47"+
"\1\53\1\10\1\60\1\44\1\56\1\10\1\26\1\21\1\27\1\77"+
"\1\5\1\1\1\63\1\33\1\46\1\54\1\15\1\42\1\62\1\61"+
"\1\43\1\10\1\55\1\45\1\57\1\22\1\51\1\36\1\10\1\40"+
"\1\64\1\50\1\53\1\10\1\60\1\44\1\56\1\10\1\65\1\71"+
"\1\66\54\0\1\102\12\0\1\102\1\0\1\31\2\0\1\102\5\0"+
"\27\103\1\0\3\102\34\103\1\0\u013f\103\31\30\162\103\4\30\14\103"+
"\16\30\5\103\11\30\1\103\21\30\160\31\12\30\1\103\3\30\1\0"+
"\7\30\1\103\1\30\3\103\1\30\1\103\1\30\24\103\1\30\54\103"+
"\1\30\46\103\1\30\5\103\4\30\202\103\10\30\105\103\1\30\46\103"+
"\2\30\2\103\6\30\20\103\41\30\46\103\2\30\1\103\7\30\47\103"+
"\110\30\33\103\5\30\3\103\56\30\32\103\5\30\13\103\43\30\2\103"+
"\1\30\143\103\1\30\1\103\17\30\2\103\7\30\2\103\12\30\3\103"+
"\2\30\1\103\20\30\1\103\1\30\36\103\35\30\3\103\60\30\46\103"+
"\13\30\1\103\u0152\30\66\103\3\30\1\103\22\30\1\103\7\30\12\103"+
"\43\30\10\103\2\30\2\103\2\30\26\103\1\30\7\103\1\30\1\103"+
"\3\30\4\103\3\30\1\103\36\30\2\103\1\30\3\103\16\30\2\103"+
"\23\30\6\103\4\30\2\103\2\30\26\103\1\30\7\103\1\30\2\103"+
"\1\30\2\103\1\30\2\103\37\30\4\103\1\30\1\103\23\30\3\103"+
"\20\30\11\103\1\30\3\103\1\30\26\103\1\30\7\103\1\30\2\103"+
"\1\30\5\103\3\30\1\103\22\30\1\103\17\30\2\103\43\30\10\103"+
"\2\30\2\103\2\30\26\103\1\30\7\103\1\30\2\103\1\30\5\103"+
"\3\30\1\103\36\30\2\103\1\30\3\103\17\30\1\103\21\30\1\103"+
"\1\30\6\103\3\30\3\103\1\30\4\103\3\30\2\103\1\30\1\103"+
"\1\30\2\103\3\30\2\103\3\30\3\103\3\30\10\103\1\30\3\103"+
"\113\30\10\103\1\30\3\103\1\30\27\103\1\30\12\103\1\30\5\103"+
"\46\30\2\103\43\30\10\103\1\30\3\103\1\30\27\103\1\30\12\103"+
"\1\30\5\103\3\30\1\103\40\30\1\103\1\30\2\103\43\30\10\103"+
"\1\30\3\103\1\30\27\103\1\30\20\103\46\30\2\103\43\30\22\103"+
"\3\30\30\103\1\30\11\103\1\30\1\103\2\30\7\103\72\30\60\103"+
"\1\30\2\103\14\30\7\103\72\30\2\103\1\30\1\103\2\30\2\103"+
"\1\30\1\103\2\30\1\103\6\30\4\103\1\30\7\103\1\30\3\103"+
"\1\30\1\103\1\30\1\103\2\30\2\103\1\30\4\103\1\30\2\103"+
"\11\30\1\103\2\30\5\103\1\30\1\103\25\30\2\103\42\30\1\103"+
"\77\30\10\103\1\30\42\103\35\30\4\103\164\30\42\103\1\30\5\103"+
"\1\30\2\103\45\30\6\103\112\30\46\103\12\30\51\103\7\30\132\103"+
"\5\30\104\103\5\30\122\103\6\30\7\103\1\30\77\103\1\30\1\103"+
"\1\30\4\103\2\30\7\103\1\30\1\103\1\30\4\103\2\30\47\103"+
"\1\30\1\103\1\30\4\103\2\30\37\103\1\30\1\103\1\30\4\103"+
"\2\30\7\103\1\30\1\103\1\30\4\103\2\30\7\103\1\30\7\103"+
"\1\30\27\103\1\30\37\103\1\30\1\103\1\30\4\103\2\30\7\103"+
"\1\30\47\103\1\30\23\103\105\30\125\103\14\30\u026c\103\2\30\10\103"+
"\12\30\32\103\5\30\113\103\25\30\15\103\1\30\4\103\16\30\22\103"+
"\16\30\22\103\16\30\15\103\1\30\3\103\17\30\64\103\43\30\1\103"+
"\4\30\1\103\103\30\130\103\10\30\51\103\127\30\35\103\63\30\36\103"+
"\2\30\5\103\u038b\30\154\103\224\30\234\103\4\30\132\103\6\30\26\103"+
"\2\30\6\103\2\30\46\103\2\30\6\103\2\30\10\103\1\30\1\103"+
"\1\30\1\103\1\30\1\103\1\30\37\103\2\30\65\103\1\30\7\103"+
"\1\30\1\103\3\30\3\103\1\30\7\103\3\30\4\103\2\30\6\103"+
"\4\30\15\103\5\30\3\103\1\30\7\103\3\30\14\0\2\30\61\0"+
"\2\31\57\0\1\30\1\103\15\30\1\103\202\30\1\103\4\30\1\103"+
"\2\30\12\103\1\30\1\103\3\30\5\103\6\30\1\103\1\30\1\103"+
"\1\30\1\103\1\30\4\103\1\30\3\103\1\30\7\103\3\30\3\103"+
"\5\30\5\103\106\30\u0a70\0\u03f0\30\21\0\4\30\2\103\52\30\5\103"+
"\5\30\2\103\4\30\126\103\6\30\3\103\1\30\132\103\1\30\4\103"+
"\5\30\50\103\4\30\136\103\21\30\30\103\70\30\20\103\u0200\30\u19b6\103"+
"\112\30\u51a6\103\132\30\u048d\103\u0773\30\u2ba4\103\134\30\u2100\0\u012e\103\2\30"+
"\73\103\225\30\7\103\14\30\5\103\5\30\1\103\1\30\12\103\1\30"+
"\15\103\1\30\5\103\1\30\1\103\1\30\2\103\1\30\2\103\1\30"+
"\154\103\41\30\u016b\103\22\30\100\103\2\30\66\103\10\30\40\0\14\103"+
"\164\30\5\103\1\30\207\103\44\30\32\103\6\30\32\103\13\30\131\103"+
"\3\30\6\103\2\30\6\103\2\30\6\103\2\30\3\103\41\30\2\0";
/**
* Translates characters to character classes
*/
private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
/**
* 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\0\1\2\1\3\1\4\1\5\3\2"+
"\1\6\1\7\1\10\1\11\1\12\1\2\1\13\1\2"+
"\1\6\1\14\1\15\1\16\1\17\1\2\17\6\1\20"+
"\1\21\1\22\1\23\1\24\2\2\1\25\1\26\1\27"+
"\1\30\1\2\1\31\1\6\1\32\1\33\1\32\1\34"+
"\1\35\1\1\1\36\1\0\1\37\1\40\1\41\1\42"+
"\1\0\1\43\1\44\2\0\1\45\1\0\1\46\1\0"+
"\1\47\2\0\1\50\2\0\1\50\1\0\1\6\1\0"+
"\1\51\1\0\1\52\2\6\1\53\27\6\1\54\1\55"+
"\1\56\1\57\1\60\4\0\1\61\1\0\1\62\2\0"+
"\1\63\1\64\1\0\1\50\2\0\3\6\1\65\2\6"+
"\1\66\27\6\1\0\1\44\1\0\1\67\1\0\1\70"+
"\4\0\1\6\1\71\7\6\1\72\5\6\1\73\2\6"+
"\1\74\4\6\1\75\4\6\2\0\1\76\1\77\4\6"+
"\1\100\1\101\2\6\1\102\1\6\1\103\1\6\1\104"+
"\2\6\1\105\1\6\1\106\3\6\1\107\1\110\1\111"+
"\1\6\1\112\1\6\1\113\5\6\1\114\4\6\1\115"+
"\1\116\7\6\1\117\3\6\1\120\1\121\1\122\1\123"+
"\1\124\1\6\1\125\1\6\1\126";
private static int [] zzUnpackAction() {
int [] result = new int[268];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
}
private static int zzUnpackAction(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 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\104\0\210\0\314\0\u0110\0\u0154\0\u0198\0\u01dc"+
"\0\u0220\0\u0264\0\u02a8\0\u02ec\0\u0330\0\u0374\0\u03b8\0\u03fc"+
"\0\u0440\0\u0484\0\u04c8\0\u0198\0\u050c\0\u0550\0\u0594\0\u0198"+
"\0\u05d8\0\u0198\0\u061c\0\u0660\0\u06a4\0\u06e8\0\u072c\0\u0770"+
"\0\u07b4\0\u07f8\0\u083c\0\u0880\0\u08c4\0\u0908\0\u094c\0\u0990"+
"\0\u09d4\0\u0a18\0\u06a4\0\u0198\0\u0198\0\u0198\0\u0198\0\u0a5c"+
"\0\u0aa0\0\u0198\0\u0ae4\0\u0198\0\u0198\0\u0b28\0\u0b6c\0\u0bb0"+
"\0\u0198\0\u0198\0\u0bf4\0\u0198\0\u0c38\0\u0c7c\0\u0198\0\u0cc0"+
"\0\u0198\0\u0cc0\0\u0198\0\u0d04\0\u0d48\0\u0d8c\0\u0dd0\0\u061c"+
"\0\u0e14\0\u0e58\0\u0e9c\0\u0ee0\0\u0f24\0\u0f68\0\u0fac\0\u0ff0"+
"\0\u1034\0\u1078\0\u10bc\0\u1100\0\u1144\0\u1188\0\u0594\0\u0198"+
"\0\u05d8\0\u0198\0\u11cc\0\u1210\0\u0374\0\u1254\0\u1298\0\u12dc"+
"\0\u1320\0\u1364\0\u13a8\0\u13ec\0\u1430\0\u1474\0\u14b8\0\u14fc"+
"\0\u1540\0\u1584\0\u15c8\0\u160c\0\u1650\0\u1694\0\u16d8\0\u171c"+
"\0\u1760\0\u17a4\0\u17e8\0\u182c\0\u0198\0\u0198\0\u0198\0\u0198"+
"\0\u0198\0\u0bf4\0\u1870\0\u0c38\0\u0d04\0\u18b4\0\u18f8\0\u193c"+
"\0\u1980\0\u19c4\0\u19c4\0\u1a08\0\u1a4c\0\u0198\0\u1a90\0\u1ad4"+
"\0\u1b18\0\u1b5c\0\u1ba0\0\u0374\0\u1be4\0\u1c28\0\u0374\0\u1c6c"+
"\0\u1cb0\0\u1cf4\0\u1d38\0\u1d7c\0\u1dc0\0\u1e04\0\u1e48\0\u1e8c"+
"\0\u1ed0\0\u1f14\0\u1f58\0\u1f9c\0\u1fe0\0\u2024\0\u2068\0\u20ac"+
"\0\u20f0\0\u2134\0\u2178\0\u21bc\0\u2200\0\u2244\0\u18b4\0\u2288"+
"\0\u22cc\0\u22cc\0\u2310\0\u2310\0\u2354\0\u2398\0\u23dc\0\u2420"+
"\0\u2464\0\u0374\0\u24a8\0\u24ec\0\u2530\0\u2574\0\u25b8\0\u25fc"+
"\0\u2640\0\u0374\0\u2684\0\u26c8\0\u270c\0\u2750\0\u2794\0\u27d8"+
"\0\u281c\0\u2860\0\u0374\0\u28a4\0\u28e8\0\u292c\0\u2970\0\u29b4"+
"\0\u29f8\0\u2a3c\0\u2a80\0\u2ac4\0\u2b08\0\u2b4c\0\u0374\0\u0374"+
"\0\u2b90\0\u2bd4\0\u2c18\0\u2c5c\0\u0374\0\u0374\0\u2ca0\0\u2ce4"+
"\0\u0374\0\u2d28\0\u0374\0\u2d6c\0\u0374\0\u2db0\0\u2df4\0\u0374"+
"\0\u2e38\0\u0374\0\u2e7c\0\u2ec0\0\u2f04\0\u0374\0\u0374\0\u0374"+
"\0\u2f48\0\u0374\0\u2f8c\0\u0374\0\u2fd0\0\u3014\0\u3058\0\u309c"+
"\0\u30e0\0\u0374\0\u3124\0\u3168\0\u31ac\0\u31f0\0\u0374\0\u0374"+
"\0\u3234\0\u3278\0\u32bc\0\u3300\0\u3344\0\u3388\0\u33cc\0\u0374"+
"\0\u3410\0\u3454\0\u3498\0\u0374\0\u0374\0\u0374\0\u0374\0\u0374"+
"\0\u34dc\0\u0374\0\u3520\0\u0374";
private static int [] zzUnpackRowMap() {
int [] result = new int[268];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
}
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();
while (i < l) {
int high = packed.charAt(i++) << 16;
result[j++] = high | packed.charAt(i++);
}
return j;
}
/**
* The transition table of the DFA
*/
private static final int [] ZZ_TRANS = zzUnpackTrans();
private static final String ZZ_TRANS_PACKED_0 =
"\2\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+
"\1\17\1\20\1\21\1\22\1\16\1\23\1\24\1\25"+
"\1\7\1\26\1\27\1\30\1\24\1\31\1\32\1\33"+
"\1\7\2\34\1\35\1\36\1\37\2\40\2\41\1\42"+
"\1\16\1\43\1\44\2\45\1\46\1\26\1\47\1\50"+
"\3\16\1\51\1\16\1\52\1\53\1\36\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\24\1\70\1\16\4\71\1\72\3\71"+
"\1\73\4\71\1\73\4\71\1\73\5\71\1\73\1\71"+
"\33\73\16\71\1\73\4\71\1\74\3\71\1\73\4\71"+
"\1\73\4\71\1\73\5\71\1\73\1\71\33\73\16\71"+
"\1\73\5\71\1\75\2\71\1\75\1\71\1\75\2\71"+
"\1\75\4\71\1\75\5\71\1\75\1\71\33\75\16\71"+
"\1\75\1\76\2\71\1\77\13\76\3\71\3\76\1\71"+
"\37\76\2\71\2\76\1\71\5\76\1\71\1\76\1\71"+
"\2\76\3\71\1\77\100\71\104\0\1\100\2\0\1\101"+
"\13\100\3\0\3\100\1\0\37\100\2\0\2\100\1\0"+
"\1\100\1\102\3\100\1\0\1\100\1\0\2\100\73\0"+
"\1\103\15\0\1\104\2\0\1\104\1\0\1\104\2\0"+
"\1\104\4\0\1\104\5\0\1\104\1\0\33\104\16\0"+
"\1\104\4\0\1\105\104\0\1\106\2\0\1\106\1\0"+
"\1\106\2\0\1\106\4\0\1\106\5\0\1\106\1\0"+
"\33\106\16\0\1\106\10\0\1\107\4\0\1\107\4\0"+
"\1\107\7\0\33\107\23\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\33\16\15\0\1\70\1\16\12\0\1\112\1\113\102\0"+
"\1\20\1\114\1\0\1\115\100\0\1\114\103\0\1\116"+
"\1\117\70\0\16\120\1\121\1\0\1\120\1\122\57\120"+
"\1\0\2\120\17\123\1\0\1\124\1\125\57\123\1\0"+
"\2\123\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\2\16\1\126"+
"\26\16\1\126\1\16\15\0\1\70\1\16\17\0\1\127"+
"\4\0\1\130\1\127\53\0\1\127\21\0\1\131\5\0"+
"\1\131\1\0\1\132\51\0\1\131\6\0\1\12\1\110"+
"\2\0\3\110\1\111\1\0\1\110\4\0\1\110\5\0"+
"\35\110\16\0\1\110\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\2\16\1\133\14\16\1\134\4\16\1\135\4\16\1\133"+
"\1\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\3\16\1\136\26\16\1\136\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\137\4\0\1\16\5\0\2\110\2\16\1\140\12\16"+
"\2\141\12\16\1\140\1\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\5\16\2\142\24\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\143\4\0\1\16\5\0\2\110\33\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\2\16\1\144\2\16\2\145\2\16\1\146\17\16\1\144"+
"\1\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\3\16\1\147\26\16\1\147\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\2\16\1\150\6\16"+
"\1\151\17\16\1\150\1\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\17\16\1\152\13\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\5\16"+
"\2\153\24\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\4\16\1\154\2\155\2\156\22\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\157\5\0\2\110\20\16"+
"\1\157\12\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\160\4\0\1\16"+
"\5\0\2\110\2\16\1\161\6\16\1\162\17\16\1\161"+
"\1\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\27\16\1\163\3\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\5\16\2\164\24\16\15\0"+
"\1\70\1\16\71\0\1\165\104\0\1\166\104\0\1\167"+
"\107\0\1\170\4\0\101\67\1\0\2\67\10\0\1\70"+
"\4\0\1\70\4\0\1\70\7\0\33\70\15\0\2\70"+
"\4\0\1\171\1\172\2\0\3\172\1\173\1\0\1\172"+
"\4\0\1\172\5\0\35\172\16\0\1\172\5\0\1\75"+
"\2\0\3\75\1\174\1\0\1\75\4\0\1\75\5\0"+
"\35\75\16\0\1\75\1\76\3\0\13\76\3\0\3\76"+
"\1\0\37\76\2\0\2\76\1\0\5\76\1\0\1\76"+
"\1\0\2\76\1\100\2\0\1\101\13\100\3\0\3\100"+
"\1\0\37\100\2\0\2\100\1\0\5\100\1\0\1\100"+
"\1\0\2\100\5\0\1\104\2\0\3\104\1\175\1\0"+
"\1\104\4\0\1\104\5\0\35\104\16\0\1\104\5\0"+
"\1\176\2\0\1\176\1\0\1\176\2\0\1\176\4\0"+
"\1\176\5\0\1\176\1\0\33\176\16\0\1\176\5\0"+
"\1\106\2\0\1\106\1\0\1\106\2\0\1\106\4\0"+
"\1\106\5\0\35\106\16\0\1\106\10\0\1\107\1\177"+
"\3\0\1\107\4\0\1\107\7\0\33\107\24\0\1\110"+
"\2\0\3\110\1\111\1\0\1\110\4\0\1\110\5\0"+
"\35\110\16\0\1\110\12\0\1\112\1\200\1\0\1\201"+
"\100\0\1\200\103\0\1\114\2\0\1\115\77\0\1\202"+
"\1\203\1\0\1\202\101\0\1\116\1\204\1\0\1\205"+
"\100\0\1\204\71\0\16\120\1\206\1\0\1\120\1\122"+
"\57\120\1\0\2\120\16\0\1\207\103\0\1\120\1\0"+
"\3\120\10\0\1\120\4\0\1\120\1\0\1\120\5\0"+
"\1\120\33\0\17\123\1\0\1\206\1\125\57\123\1\0"+
"\2\123\20\0\1\210\101\0\1\123\1\0\3\123\10\0"+
"\1\123\4\0\1\123\1\0\1\123\5\0\1\123\37\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\25\16\1\211\5\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\3\16"+
"\1\212\26\16\1\212\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\21\16\1\213\11\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\23\16\1\214"+
"\7\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\13\16\1\215\17\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\25\16\1\216\5\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\5\16"+
"\2\217\24\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\220\4\0\1\16"+
"\5\0\2\110\33\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\22\16\1\221\5\16\1\222\2\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\13\16\1\223\17\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\17\16\1\224\13\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\13\16\1\225"+
"\17\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\2\226\7\16\1\227\1\16\1\230\5\16\1\231"+
"\11\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\232\5\0"+
"\2\110\20\16\1\232\12\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\25\16\1\233\5\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\234\5\0\2\110\20\16"+
"\1\234\12\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\21\16\1\235\11\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\15\16\2\236\14\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\22\16\1\237\10\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\7\16\2\240\22\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\11\16\1\241"+
"\21\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\3\16\1\242\26\16\1\242\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\15\16\2\243\14\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\3\16\1\244\26\16\1\244\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\245"+
"\4\0\1\16\5\0\2\110\33\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\2\16\1\246\26\16"+
"\1\246\1\16\15\0\1\70\1\16\5\0\1\172\2\0"+
"\3\172\1\173\1\0\1\172\4\0\1\172\5\0\35\172"+
"\16\0\1\172\5\0\1\176\2\0\3\176\1\247\1\0"+
"\1\176\4\0\1\176\5\0\35\176\16\0\1\176\10\0"+
"\1\250\1\0\1\250\2\0\1\250\4\0\1\250\7\0"+
"\33\250\31\0\1\200\2\0\1\201\77\0\1\251\1\252"+
"\1\0\1\251\101\0\1\203\103\0\1\204\2\0\1\205"+
"\77\0\1\253\1\254\1\0\1\253\67\0\16\207\1\255"+
"\2\207\1\256\62\207\20\210\1\257\1\260\62\210\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\261"+
"\4\0\1\16\5\0\2\110\33\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\262\4\0\1\16\5\0\2\110\33\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\263\5\0\2\110\20\16\1\263"+
"\12\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\264\4\0\1\16\5\0"+
"\2\110\33\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\265\4\0\1\16"+
"\5\0\2\110\33\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\7\16\2\266\22\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\21\16\1\267"+
"\11\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\270\4\0\1\16\5\0"+
"\2\110\33\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\3\16\1\271\26\16\1\271\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\25\16\1\272"+
"\5\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\15\16\2\273\14\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\13\16\1\274\17\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\5\16"+
"\2\275\24\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\11\16\1\276\21\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\5\16\2\277\24\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\30\16\1\300\2\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\11\16\1\301\21\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\3\16\1\302"+
"\26\16\1\302\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\303\4\0\1\16"+
"\5\0\2\110\33\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\11\16\1\304\21\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\305\4\0\1\16\5\0\2\110\33\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\3\16"+
"\1\306\26\16\1\306\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\17\16\1\307\13\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\14\16\1\310"+
"\16\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\2\16\1\311\26\16\1\311\1\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\15\16\2\312"+
"\14\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\5\16\2\313\24\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\4\16\1\314\26\16\15\0"+
"\1\70\1\16\10\0\1\250\1\177\1\250\2\0\1\250"+
"\4\0\1\250\7\0\33\250\31\0\1\252\103\0\1\254"+
"\71\0\16\207\1\315\2\207\1\256\62\207\16\0\1\207"+
"\1\0\3\207\10\0\1\207\4\0\1\207\1\0\1\207"+
"\5\0\1\207\33\0\20\210\1\316\1\260\62\210\16\0"+
"\1\210\1\0\3\210\10\0\1\210\4\0\1\210\1\0"+
"\1\210\5\0\1\210\37\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\22\16\1\317\10\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\22\16\1\320\10\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\14\16\1\321"+
"\16\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\15\16\2\322\14\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\11\16\1\323\21\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\14\16"+
"\1\324\16\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\12\16\1\325\20\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\326\4\0\1\16\5\0\2\110\33\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\327\4\0\1\16\5\0\2\110\33\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\2\16"+
"\1\330\26\16\1\330\1\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\11\16\1\331\21\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\15\16"+
"\2\332\14\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\11\16\1\333\21\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\25\16\1\334\5\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\15\16\2\335\14\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\15\16\2\336\14\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\17\16\1\337"+
"\13\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\5\16\2\340\24\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\341"+
"\4\0\1\16\5\0\2\110\33\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\342\5\0\2\110\20\16\1\342\12\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\5\16\2\343\24\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\15\16\2\344\14\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\11\16\1\345"+
"\21\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\346\4\0\1\16\5\0"+
"\2\110\33\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\27\16\1\347\3\16\15\0\1\70\1\16"+
"\16\207\1\206\2\207\1\256\62\207\20\210\1\206\1\260"+
"\62\210\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\15\16\2\350"+
"\14\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\351\4\0\1\16\5\0"+
"\2\110\33\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\12\16\1\352\20\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\353\4\0\1\16\5\0\2\110\33\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\5\16\2\354"+
"\24\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\355\5\0"+
"\2\110\20\16\1\355\12\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\356"+
"\4\0\1\16\5\0\2\110\33\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\2\16\1\357\27\16"+
"\1\357\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\5\16\2\360\24\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\361\5\0\2\110\20\16\1\361\12\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\15\16"+
"\2\362\14\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\11\16\1\363\21\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\24\16\1\364\6\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\365\5\0\2\110"+
"\20\16\1\365\12\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\5\16\2\366\24\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\22\16\1\367"+
"\10\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\16\4\0\1\16\5\0"+
"\2\110\23\16\1\370\7\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\5\16\2\371\24\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\15\16"+
"\2\372\14\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\21\16\1\373\11\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\2\16\1\374\26\16"+
"\1\374\1\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\2\375\31\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\16"+
"\4\0\1\16\5\0\2\110\4\16\1\376\26\16\15\0"+
"\1\70\1\16\4\0\1\12\1\110\2\0\1\16\2\110"+
"\1\111\1\0\1\16\4\0\1\16\5\0\2\110\14\16"+
"\1\377\16\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\25\16\1\u0100\5\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\2\16\1\u0101\26\16"+
"\1\u0101\1\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\14\16\1\u0102\16\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\14\16\1\u0103\16\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\13\16\1\u0104\17\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\u0105\4\0"+
"\1\16\5\0\2\110\33\16\15\0\1\70\1\16\4\0"+
"\1\12\1\110\2\0\1\16\2\110\1\111\1\0\1\u0106"+
"\4\0\1\16\5\0\2\110\33\16\15\0\1\70\1\16"+
"\4\0\1\12\1\110\2\0\1\16\2\110\1\111\1\0"+
"\1\16\4\0\1\16\5\0\2\110\15\16\2\u0107\14\16"+
"\15\0\1\70\1\16\4\0\1\12\1\110\2\0\1\16"+
"\2\110\1\111\1\0\1\16\4\0\1\16\5\0\2\110"+
"\13\16\1\u0108\17\16\15\0\1\70\1\16\4\0\1\12"+
"\1\110\2\0\1\16\2\110\1\111\1\0\1\16\4\0"+
"\1\16\5\0\2\110\27\16\1\u0109\3\16\15\0\1\70"+
"\1\16\4\0\1\12\1\110\2\0\1\16\2\110\1\111"+
"\1\0\1\16\4\0\1\16\5\0\2\110\15\16\2\u010a"+
"\14\16\15\0\1\70\1\16\4\0\1\12\1\110\2\0"+
"\1\16\2\110\1\111\1\0\1\u010b\4\0\1\16\5\0"+
"\2\110\33\16\15\0\1\70\1\16\4\0\1\12\1\110"+
"\2\0\1\16\2\110\1\111\1\0\1\16\4\0\1\16"+
"\5\0\2\110\3\16\1\u010c\26\16\1\u010c\15\0\1\70"+
"\1\16";
private static int [] zzUnpackTrans() {
int [] result = new int[13668];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return 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();
while (i < l) {
int count = packed.charAt(i++);
int value = packed.charAt(i++);
value--;
do result[j++] = value; while (--count > 0);
}
return j;
}
/* error codes */
private static final int ZZ_UNKNOWN_ERROR = 0;
private static final int ZZ_NO_MATCH = 1;
private static final int ZZ_PUSHBACK_2BIG = 2;
/* error messages for the codes above */
private static final String ZZ_ERROR_MSG[] = {
"Unkown internal scanner error",
"Error: could not match input",
"Error: pushback value was too large"
};
/**
* ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
*/
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\4\0\1\1\1\0\1\11\14\1\1\11\3\1\1\11"+
"\1\1\1\11\21\1\4\11\2\1\1\11\1\1\2\11"+
"\3\1\2\11\1\1\1\11\2\1\1\11\1\0\1\11"+
"\1\1\1\11\1\1\1\0\2\1\2\0\1\1\1\0"+
"\1\1\1\0\1\1\2\0\1\1\2\0\1\1\1\0"+
"\1\1\1\0\1\11\1\0\1\11\32\1\5\11\4\0"+
"\1\1\1\0\1\1\2\0\2\1\1\0\1\11\2\0"+
"\36\1\1\0\1\1\1\0\1\1\1\0\1\1\4\0"+
"\34\1\2\0\76\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[268];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
}
private static int zzUnpackAttribute(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 input device */
private java.io.Reader zzReader;
/** the current state of the DFA */
private int zzState;
/** the current lexical state */
private int zzLexicalState = YYINITIAL;
/** this buffer contains the current text to be matched and is
the source of the yytext() string */
private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
/** the textposition at the last accepting state */
private int zzMarkedPos;
/** the current text position in the buffer */
private int zzCurrentPos;
/** startRead marks the beginning of the yytext() string in the buffer */
private int zzStartRead;
/** endRead marks the last character in the buffer, that has been read
from input */
private int zzEndRead;
/** number of newlines encountered up to the start of the matched text */
private int yyline;
/** the number of characters up to the start of the matched text */
private int yychar;
/**
* the number of characters from the last newline up to the start of the
* matched text
*/
private int yycolumn;
/**
* 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;
/* user code: */
/**
* Default constructor is needed as we will always call the yyreset
*/
public SparqlLexer() {
super();
}
@Override
public int yychar() {
return yychar;
}
/**
* Creates a new scanner
* There is also a java.io.InputStream version of this constructor.
*
* @param in the java.io.Reader to read input from.
*/
public CLexer(java.io.Reader in) {
this.zzReader = in;
}
/**
* Creates a new scanner.
* There is also java.io.Reader version of this constructor.
*
* @param in the java.io.Inputstream to read input from.
*/
public CLexer(java.io.InputStream in) {
this(new java.io.InputStreamReader(in));
}
/**
* Unpacks the compressed character translation table.
*
* @param packed the packed character translation table
* @return the unpacked character translation table
*/
private static char [] zzUnpackCMap(String packed) {
char [] map = new char[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < 1320) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
}
return map;
}
/**
* Refills the input buffer.
*
* @return <code>false</code>, iff there was new input.
*
* @exception java.io.IOException if any I/O-Error occurs
*/
private boolean zzRefill() throws java.io.IOException {
/* first: make room (if you can) */
if (zzStartRead > 0) {
System.arraycopy(zzBuffer, zzStartRead,
zzBuffer, 0,
zzEndRead-zzStartRead);
/* translate stored positions */
zzEndRead-= zzStartRead;
zzCurrentPos-= zzStartRead;
zzMarkedPos-= zzStartRead;
zzStartRead = 0;
}
/* is the buffer big enough? */
if (zzCurrentPos >= zzBuffer.length) {
/* if not: blow it up */
char newBuffer[] = new char[zzCurrentPos*2];
System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
zzBuffer = newBuffer;
}
/* finally: fill the buffer with new input */
int numRead = zzReader.read(zzBuffer, zzEndRead,
zzBuffer.length-zzEndRead);
if (numRead > 0) {
zzEndRead+= numRead;
return false;
}
// unlikely but not impossible: read 0 characters, but not at end of stream
if (numRead == 0) {
int c = zzReader.read();
if (c == -1) {
return true;
} else {
zzBuffer[zzEndRead++] = (char) c;
return false;
}
}
// numRead < 0
return true;
}
/**
* Closes the input stream.
*/
public final void yyclose() throws java.io.IOException {
zzAtEOF = true; /* indicate end of file */
zzEndRead = zzStartRead; /* invalidate buffer */
if (zzReader != null)
zzReader.close();
}
/**
* Resets the scanner to read from a new input stream.
* Does not close the old reader.
*
* All internal variables are reset, the old input stream
* <b>cannot</b> be reused (internal buffer is discarded and lost).
* Lexical state is set to <tt>ZZ_INITIAL</tt>.
*
* @param reader the new input stream
*/
public final void yyreset(java.io.Reader reader) {
zzReader = reader;
zzAtBOL = true;
zzAtEOF = false;
zzEOFDone = false;
zzEndRead = zzStartRead = 0;
zzCurrentPos = zzMarkedPos = 0;
yyline = yychar = yycolumn = 0;
zzLexicalState = YYINITIAL;
}
/**
* Returns the current lexical state.
*/
public final int yystate() {
return zzLexicalState;
}
/**
* Enters a new lexical state
*
* @param newState the new lexical state
*/
public final void yybegin(int newState) {
zzLexicalState = newState;
}
/**
* Returns the text matched by the current regular expression.
*/
public final String yytext() {
return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
}
/**
* Returns the character at position <tt>pos</tt> from the
* matched text.
*
* It is equivalent to yytext().charAt(pos), but faster
*
* @param pos the position of the character to fetch.
* A value from 0 to yylength()-1.
*
* @return the character at position pos
*/
public final char yycharat(int pos) {
return zzBuffer[zzStartRead+pos];
}
/**
* Returns the length of the matched text region.
*/
public final int yylength() {
return zzMarkedPos-zzStartRead;
}
/**
* Reports an error that occured while scanning.
*
* In a wellformed scanner (no or only correct usage of
* yypushback(int) and a match-all fallback rule) this method
* will only be called with things that "Can't Possibly Happen".
* If this method is called, something is seriously wrong
* (e.g. a JFlex bug producing a faulty scanner etc.).
*
* Usual syntax/scanner level error handling should be done
* in error fallback rules.
*
* @param errorCode the code of the errormessage to display
*/
private void zzScanError(int errorCode) {
String message;
try {
message = ZZ_ERROR_MSG[errorCode];
}
catch (ArrayIndexOutOfBoundsException e) {
message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
}
throw new Error(message);
}
/**
* Pushes the specified amount of characters back into the input stream.
*
* They will be read again by then next call of the scanning method
*
* @param number the number of characters to be read again.
* This number must not be greater than yylength()!
*/
public void yypushback(int number) {
if ( number > yylength() )
zzScanError(ZZ_PUSHBACK_2BIG);
zzMarkedPos -= number;
}
/**
* Resumes scanning until the next regular expression is matched,
* the end of input is encountered or an I/O-Error occurs.
*
* @return the next token
* @exception java.io.IOException if any I/O-Error occurs
*/
public Token yylex() throws java.io.IOException {
int zzInput;
int zzAction;
// cached fields:
int zzCurrentPosL;
int zzMarkedPosL;
int zzEndReadL = zzEndRead;
char [] zzBufferL = zzBuffer;
char [] zzCMapL = ZZ_CMAP;
int [] zzTransL = ZZ_TRANS;
int [] zzRowMapL = ZZ_ROWMAP;
int [] zzAttrL = ZZ_ATTRIBUTE;
while (true) {
zzMarkedPosL = zzMarkedPos;
yychar+= zzMarkedPosL-zzStartRead;
zzAction = -1;
zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
zzState = ZZ_LEXSTATE[zzLexicalState];
zzForAction: {
while (true) {
if (zzCurrentPosL < zzEndReadL)
zzInput = zzBufferL[zzCurrentPosL++];
else if (zzAtEOF) {
zzInput = YYEOF;
break zzForAction;
}
else {
// store back cached positions
zzCurrentPos = zzCurrentPosL;
zzMarkedPos = zzMarkedPosL;
boolean eof = zzRefill();
// get translated positions and possibly new buffer
zzCurrentPosL = zzCurrentPos;
zzMarkedPosL = zzMarkedPos;
zzBufferL = zzBuffer;
zzEndReadL = zzEndRead;
if (eof) {
zzInput = YYEOF;
break zzForAction;
}
else {
zzInput = zzBufferL[zzCurrentPosL++];
}
}
int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
if (zzNext == -1) break zzForAction;
zzState = zzNext;
int zzAttributes = zzAttrL[zzState];
if ( (zzAttributes & 1) == 1 ) {
zzAction = zzState;
zzMarkedPosL = zzCurrentPosL;
if ( (zzAttributes & 8) == 8 ) break zzForAction;
}
}
}
// store back cached position
zzMarkedPos = zzMarkedPosL;
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 37:
{ return LIT_INTEGER_NEG;
}
case 87: break;
case 33:
{ return OP_GE;
}
case 88: break;
case 77:
{ return KW_REDUCED;
}
case 89: break;
case 85:
{ return KW_CONSTRUCT;
}
case 90: break;
case 9:
{ return OP_DOT;
}
case 91: break;
case 80:
{ return KW_OPTIONAL;
}
case 92: break;
case 21:
{ return OP_EQ;
}
case 93: break;
case 73:
{ return KW_SELECT;
}
case 94: break;
case 1:
{ yybegin(IRI_REF_END); return LIT_IRI_BODY;
}
case 95: break;
case 41:
{ return LIT_NIL;
}
case 96: break;
case 74:
{ return KW_PREFIX;
}
case 97: break;
case 53:
{ return KW_ASK;
}
case 98: break;
case 16:
{ return KW_A;
}
case 99: break;
case 65:
{ return LIT_FALSE;
}
case 100: break;
case 67:
{ return KW_IS_URI;
}
case 101: break;
case 45:
{ return OP_ANDAND;
}
case 102: break;
case 23:
{ return OP_MULT;
}
case 103: break;
case 62:
{ return KW_NAMED;
}
case 104: break;
case 7:
{ return OP_MINUS;
}
case 105: break;
case 49:
{ return LIT_BLANK_NODE;
}
case 106: break;
case 13:
{ return OP_RROUND;
}
case 107: break;
case 12:
{ return OP_LROUND;
}
case 108: break;
case 22:
{ return OP_NOT;
}
case 109: break;
case 10:
{ return OP_PLUS;
}
case 110: break;
case 84:
{ return KW_IS_LITERAL;
}
case 111: break;
case 31:
// lookahead expression with fixed base length
zzMarkedPos = zzStartRead + 1;
{ yybegin(IRI_REF_BODY); return LIT_IRI_START;
}
case 112: break;
case 56:
{ return LIT_DOUBLE_POS;
}
case 113: break;
case 18:
{ return OP_RCURLY;
}
case 114: break;
case 58:
{ return KW_FROM;
}
case 115: break;
case 83:
{ return KW_DISTINCT;
}
case 116: break;
case 2:
{ return BAD_CHARACTER;
}
case 117: break;
case 51:
{ return LIT_DOUBLE;
}
case 118: break;
case 3:
{ return OP_LT;
}
case 119: break;
case 52:
{ return LIT_DECIMAL_POS;
}
case 120: break;
case 81:
{ return KW_DESCRIBE;
}
case 121: break;
case 19:
{ return OP_SEMI;
}
case 122: break;
case 76:
{ return KW_OFFSET;
}
case 123: break;
case 36:
{ return LANGTAG;
}
case 124: break;
case 54:
{ return KW_STR;
}
case 125: break;
case 48:
// lookahead expression with fixed lookahead length
yypushback(1);
{ return NAME_NS;
}
case 126: break;
case 25:
{ return COMMENT;
}
case 127: break;
case 17:
{ return OP_LCURLY;
}
case 128: break;
case 79:
{ return KW_SAME_TERM;
}
case 129: break;
case 6:
{ return UNKNOWN;
}
case 130: break;
case 4:
{ return OP_GT;
}
case 131: break;
case 71:
{ return KW_WHERE;
}
case 132: break;
case 55:
{ return LIT_DOUBLE_NEG;
}
case 133: break;
case 5:
{ yypushback(yylength()); yybegin(PNAME_NS);
}
case 134: break;
case 78:
{ return KW_IS_BLANK;
}
case 135: break;
case 72:
{ return KW_GRAPH;
}
case 136: break;
case 50:
{ return LIT_DECIMAL_NEG;
}
case 137: break;
case 8:
{ return LIT_INTEGER;
}
case 138: break;
case 63:
{ return KW_BOUND;
}
case 139: break;
case 34:
{ yypushback(yylength()); yybegin(PNAME_LN);
}
case 140: break;
case 69:
{ return KW_ORDER;
}
case 141: break;
case 26:
{ yybegin(YYINITIAL); return BAD_CHARACTER;
}
case 142: break;
case 35:
{ return VAR;
}
case 143: break;
case 68:
{ return KW_LIMIT;
}
case 144: break;
case 82:
{ return KW_DATATYPE;
}
case 145: break;
case 64:
{ return KW_REGEX;
}
case 146: break;
case 20:
{ return OP_COMMA;
}
case 147: break;
case 60:
{ return LIT_TRUE;
}
case 148: break;
case 11:
{ return WHITE_SPACE;
}
case 149: break;
case 39:
{ return LIT_INTEGER_POS;
}
case 150: break;
case 27:
{ yybegin(YYINITIAL); return NAME_COLON;
}
case 151: break;
case 46:
{ return OP_NE;
}
case 152: break;
case 38:
{ return LIT_DECIMAL;
}
case 153: break;
case 75:
{ return KW_FILTER;
}
case 154: break;
case 28:
{ yybegin(PNAME_LN2); return NAME_COLON;
}
case 155: break;
case 59:
{ return KW_LANG;
}
case 156: break;
case 15:
{ return OP_RSQUARE;
}
case 157: break;
case 29:
{ yybegin(YYINITIAL); return NAME_LN;
}
case 158: break;
case 32:
{ return OP_LE;
}
case 159: break;
case 57:
{ return KW_BASE;
}
case 160: break;
case 70:
{ return KW_UNION;
}
case 161: break;
case 40:
{ return LIT_STRING;
}
case 162: break;
case 30:
{ yybegin(YYINITIAL); return LIT_IRI_END;
}
case 163: break;
case 61:
{ return KW_DESC;
}
case 164: break;
case 14:
{ return OP_LSQUARE;
}
case 165: break;
case 47:
{ return OP_HATHAT;
}
case 166: break;
case 66:
{ return KW_IS_IRI;
}
case 167: break;
case 44:
{ return OP_PIPEPIPE;
}
case 168: break;
case 24:
{ return OP_DIV;
}
case 169: break;
case 42:
{ return LIT_ANON;
}
case 170: break;
case 86:
{ return KW_LANGMATCHES;
}
case 171: break;
case 43:
{ return KW_BY;
}
case 172: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
return null;
}
else {
zzScanError(ZZ_NO_MATCH);
}
}
}
}
}