From a10ebc86825f4d00be5618a0b2471959c8efd8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=F8=EDk?= Date: Sun, 2 Mar 2014 10:11:26 +0100 Subject: [PATCH] Issue #306 AS1/2 direct editing - reserved words handling --- .../jpexs/decompiler/flash/action/Action.java | 19 + .../flash/action/ActionDeobfuscation.java | 20 +- .../action/model/GetMemberActionItem.java | 21 +- .../action/model/SetMemberActionItem.java | 22 +- .../parser/script/ActionScriptLexer.java | 3225 +++++++++-------- .../parser/script/ActionScriptParser.java | 6 +- .../action/parser/script/ParsedSymbol.java | 15 +- .../action/parser/script/actionscript.flex | 2 +- 8 files changed, 1745 insertions(+), 1585 deletions(-) diff --git a/trunk/src/com/jpexs/decompiler/flash/action/Action.java b/trunk/src/com/jpexs/decompiler/flash/action/Action.java index a8d9fee09..a3a613d76 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/Action.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/Action.java @@ -109,7 +109,26 @@ public class Action implements GraphSourceItem { public int actionLength; public long containerSWFOffset; private long address; + + public static final String[] reservedWords = { + "as", "break", "case", "catch", "class", "const", "continue", "default", "delete", "do", "each", "else", + "extends", "false", "finally", "for", "function", "get", "if", "implements", "import", "in", "instanceof", + "interface", "internal", "is", "native", "new", "null", "override", "package", "private", "protected", "public", + "return", "set", "super", "switch", "this", "throw", "true", "try", "typeof", "use", "var", /*"void",*/ "while", + "with", "dynamic", "default", "final", "in"}; + public static boolean isReservedWord(String s) { + if(s == null){ + return false; + } + for (String rw : reservedWords) { + if (rw.equals(s.trim())) { + return true; + } + } + return false; + } + public long getFileAddress() { return containerSWFOffset + getAddress(); } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/ActionDeobfuscation.java b/trunk/src/com/jpexs/decompiler/flash/action/ActionDeobfuscation.java index ffa261c27..5f0e790b0 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/ActionDeobfuscation.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/ActionDeobfuscation.java @@ -39,25 +39,13 @@ public class ActionDeobfuscation { public HashSet allVariableNamesStr = new HashSet<>(); private final HashMap typeCounts = new HashMap<>(); - public static final String[] reservedWords = { - "as", "break", "case", "catch", "class", "const", "continue", "default", "delete", "do", "each", "else", - "extends", "false", "finally", "for", "function", "get", "if", "implements", "import", "in", "instanceof", - "interface", "internal", "is", "native", "new", "null", "override", "package", "private", "protected", "public", - "return", "set", "super", "switch", "this", "throw", "true", "try", "typeof", "use", "var", /*"void",*/ "while", - "with", "dynamic", "default", "final", "in"}; + public static final String VALID_FIRST_CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_"; public static final String VALID_NEXT_CHARACTERS = VALID_FIRST_CHARACTERS + "0123456789"; public static final String FOO_CHARACTERS = "bcdfghjklmnpqrstvwz"; public static final String FOO_JOIN_CHARACTERS = "aeiouy"; - private boolean isReserved(String s) { - for (String rw : reservedWords) { - if (rw.equals(s.trim())) { - return true; - } - } - return false; - } + private String fooString(HashMap deobfuscated, String orig, boolean firstUppercase, int rndSize) { boolean exists; @@ -84,7 +72,7 @@ public class ActionDeobfuscation { rndSize += 1; continue loopfoo; } - if (isReserved(ret)) { + if (Action.isReservedWord(ret)) { exists = true; rndSize += 1; continue; @@ -200,7 +188,7 @@ public class ActionDeobfuscation { } } - if (isReserved(s)) { + if (Action.isReservedWord(s)) { isValid = false; } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java index ff7e7dd3f..6953e594d 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java @@ -17,6 +17,7 @@ package com.jpexs.decompiler.flash.action.model; import com.jpexs.decompiler.flash.SourceGeneratorLocalData; +import com.jpexs.decompiler.flash.action.Action; import com.jpexs.decompiler.flash.action.swf5.ActionGetMember; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.GraphSourceItem; @@ -47,16 +48,18 @@ public class GetMemberActionItem extends ActionItem { @Override public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException { - if (!((memberName instanceof DirectValueActionItem) && (((DirectValueActionItem) memberName).value instanceof String))) { - //if(!(functionName instanceof GetVariableActionItem)) - object.toString(writer, localData); - writer.append("["); - stripQuotes(memberName, localData, writer); - return writer.append("]"); - } object.toString(writer, localData); - writer.append("."); - return stripQuotes(memberName, localData, writer); + if ((memberName instanceof DirectValueActionItem) && (((DirectValueActionItem) memberName).value instanceof String)) { + String memNameStr = (String) ((DirectValueActionItem) memberName).value; + if (!Action.isReservedWord(memNameStr)) { + writer.append("."); + return stripQuotes(memberName, localData, writer); + } + } + writer.append("["); + memberName.toString(writer, localData); + return writer.append("]"); + } @Override diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java index 9e3e12521..475d36e47 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java @@ -17,6 +17,7 @@ package com.jpexs.decompiler.flash.action.model; import com.jpexs.decompiler.flash.SourceGeneratorLocalData; +import com.jpexs.decompiler.flash.action.Action; import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator; import com.jpexs.decompiler.flash.action.swf4.ActionPush; import com.jpexs.decompiler.flash.action.swf4.RegisterNumber; @@ -81,20 +82,19 @@ public class SetMemberActionItem extends ActionItem implements SetTypeActionItem @Override public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException { - if (!((objectName instanceof DirectValueActionItem) && (((DirectValueActionItem) objectName).value instanceof String))) { - //if(!(functionName instanceof GetVariableActionItem)) - object.toString(writer, localData); - writer.append("["); - stripQuotes(objectName, localData, writer); - writer.append("]"); - writer.append(" = "); - return value.toString(writer, localData); - } object.toString(writer, localData); - writer.append("."); - stripQuotes(objectName, localData, writer); + if ((objectName instanceof DirectValueActionItem) && (((DirectValueActionItem) objectName).value instanceof String) && !Action.isReservedWord((String) ((DirectValueActionItem) objectName).value)) { + writer.append("."); + stripQuotes(objectName, localData, writer); + } else { + writer.append("["); + objectName.toString(writer, localData); + writer.append("]"); + + } writer.append(" = "); return value.toString(writer, localData); + } @Override diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java index a0c747ebd..414fed133 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java @@ -1,33 +1,33 @@ -/* The following code was generated by JFlex 1.4.3 on 15.7.13 17:22 */ +/* The following code was generated by JFlex 1.5.0-SNAPSHOT */ /* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ package com.jpexs.decompiler.flash.action.parser.script; import com.jpexs.decompiler.flash.action.parser.ParseException; -import java.util.ArrayList; -import java.util.List; import java.util.Stack; +import java.util.List; +import java.util.ArrayList; /** * This class is a scanner generated by - * JFlex 1.4.3 on 15.7.13 17:22 from the + * JFlex 1.5.0-SNAPSHOT from the * specification file - * D:/Dokumenty/Programovani/JavaSE/FFDec/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex + * D:/Dropbox/Programovani/JavaSE/FFDec/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex */ public final class ActionScriptLexer { @@ -35,18 +35,21 @@ public final class ActionScriptLexer { * 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 XML = 8; - public static final int XMLSTARTTAG = 6; - public static final int STRING = 2; public static final int YYINITIAL = 0; + public static final int STRING = 2; public static final int CHARLITERAL = 4; + public static final int XMLSTARTTAG = 6; + public static final int XML = 8; + /** * 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 @@ -55,11 +58,12 @@ public final class ActionScriptLexer { private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4 }; + /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED - = "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\14\1\107" + = "\11\7\1\3\1\2\1\120\1\121\1\1\16\7\4\0\1\14\1\107" + "\1\16\1\0\1\6\1\116\1\112\1\30\1\77\1\100\1\5\1\114" + "\1\106\1\26\1\11\1\4\1\17\3\23\4\24\2\20\1\10\1\105" + "\1\12\1\15\1\13\1\111\1\117\1\61\1\22\1\71\1\72\1\25" @@ -68,119 +72,122 @@ public final class ActionScriptLexer { + "\1\27\1\104\1\115\1\6\1\0\1\34\1\31\1\36\1\45\1\33" + "\1\46\1\57\1\51\1\43\1\6\1\35\1\47\1\54\1\41\1\40" + "\1\52\1\6\1\32\1\37\1\42\1\44\1\55\1\50\1\56\1\53" - + "\1\6\1\101\1\113\1\102\1\110\41\7\2\0\4\6\4\0\1\6" - + "\2\0\1\7\7\0\1\6\4\0\1\6\5\0\27\6\1\0\37\6" - + "\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0\1\6\1\0\1\6" - + "\21\0\160\7\5\6\1\0\2\6\2\0\4\6\10\0\1\6\1\0" - + "\3\6\1\0\1\6\1\0\24\6\1\0\123\6\1\0\213\6\1\0" - + "\5\7\2\0\236\6\11\0\46\6\2\0\1\6\7\0\47\6\11\0" - + "\55\7\1\0\1\7\1\0\2\7\1\0\2\7\1\0\1\7\10\0" - + "\33\6\5\0\3\6\15\0\4\7\7\0\1\6\4\0\13\7\5\0" - + "\53\6\37\7\4\0\2\6\1\7\143\6\1\0\1\6\10\7\1\0" - + "\6\7\2\6\2\7\1\0\4\7\2\6\12\7\3\6\2\0\1\6" - + "\17\0\1\7\1\6\1\7\36\6\33\7\2\0\131\6\13\7\1\6" - + "\16\0\12\7\41\6\11\7\2\6\4\0\1\6\5\0\26\6\4\7" - + "\1\6\11\7\1\6\3\7\1\6\5\7\22\0\31\6\3\7\244\0" - + "\4\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6\2\7\2\0" - + "\12\7\1\0\7\6\1\0\7\6\1\0\3\7\1\0\10\6\2\0" - + "\2\6\2\0\26\6\1\0\7\6\1\0\1\6\3\0\4\6\2\0" - + "\1\7\1\6\7\7\2\0\2\7\2\0\3\7\1\6\10\0\1\7" - + "\4\0\2\6\1\0\3\6\2\7\2\0\12\7\4\6\7\0\1\6" - + "\5\0\3\7\1\0\6\6\4\0\2\6\2\0\26\6\1\0\7\6" - + "\1\0\2\6\1\0\2\6\1\0\2\6\2\0\1\7\1\0\5\7" - + "\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\6\1\0\1\6" - + "\7\0\14\7\3\6\1\7\13\0\3\7\1\0\11\6\1\0\3\6" - + "\1\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6\2\0\1\7" - + "\1\6\10\7\1\0\3\7\1\0\3\7\2\0\1\6\17\0\2\6" - + "\2\7\2\0\12\7\1\0\1\6\17\0\3\7\1\0\10\6\2\0" - + "\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6\2\0" - + "\1\7\1\6\7\7\2\0\2\7\2\0\3\7\10\0\2\7\4\0" - + "\2\6\1\0\3\6\2\7\2\0\12\7\1\0\1\6\20\0\1\7" - + "\1\6\1\0\6\6\3\0\3\6\1\0\4\6\3\0\2\6\1\0" - + "\1\6\1\0\2\6\3\0\2\6\3\0\3\6\3\0\14\6\4\0" - + "\5\7\3\0\3\7\1\0\4\7\2\0\1\6\6\0\1\7\16\0" - + "\12\7\11\0\1\6\7\0\3\7\1\0\10\6\1\0\3\6\1\0" - + "\27\6\1\0\12\6\1\0\5\6\3\0\1\6\7\7\1\0\3\7" - + "\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6\2\7\2\0" - + "\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0\27\6\1\0" - + "\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0\3\7\1\0" - + "\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7\2\0\12\7" - + "\1\0\2\6\17\0\2\7\1\0\10\6\1\0\3\6\1\0\51\6" - + "\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6\10\0\1\7" - + "\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0\2\7\1\0" - + "\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0\7\6\3\0" - + "\1\7\4\0\6\7\1\0\1\7\1\0\10\7\22\0\2\7\15\0" - + "\60\6\1\7\2\6\7\7\4\0\10\6\10\7\1\0\12\7\47\0" - + "\2\6\1\0\1\6\2\0\2\6\1\0\1\6\2\0\1\6\6\0" - + "\4\6\1\0\7\6\1\0\3\6\1\0\1\6\1\0\1\6\2\0" - + "\2\6\1\0\4\6\1\7\2\6\6\7\1\0\2\7\1\6\2\0" - + "\5\6\1\0\1\6\1\0\6\7\2\0\12\7\2\0\2\6\42\0" - + "\1\6\27\0\2\7\6\0\12\7\13\0\1\7\1\0\1\7\1\0" - + "\1\7\4\0\2\7\10\6\1\0\44\6\4\0\24\7\1\0\2\7" - + "\5\6\13\7\1\0\44\7\11\0\1\7\71\0\53\6\24\7\1\6" - + "\12\7\6\0\6\6\4\7\4\6\3\7\1\6\3\7\2\6\7\7" - + "\3\6\4\7\15\6\14\7\1\6\17\7\2\0\46\6\12\0\53\6" - + "\1\0\1\6\3\0\u0149\6\1\0\4\6\2\0\7\6\1\0\1\6" - + "\1\0\4\6\2\0\51\6\1\0\4\6\2\0\41\6\1\0\4\6" - + "\2\0\7\6\1\0\1\6\1\0\4\6\2\0\17\6\1\0\71\6" - + "\1\0\4\6\2\0\103\6\2\0\3\7\40\0\20\6\20\0\125\6" - + "\14\0\u026c\6\2\0\21\6\1\0\32\6\5\0\113\6\3\0\3\6" - + "\17\0\15\6\1\0\4\6\3\7\13\0\22\6\3\7\13\0\22\6" - + "\2\7\14\0\15\6\1\0\3\6\1\0\2\7\14\0\64\6\40\7" - + "\3\0\1\6\3\0\2\6\1\7\2\0\12\7\41\0\3\7\2\0" - + "\12\7\6\0\130\6\10\0\51\6\1\7\1\6\5\0\106\6\12\0" - + "\35\6\3\0\14\7\4\0\14\7\12\0\12\7\36\6\2\0\5\6" - + "\13\0\54\6\4\0\21\7\7\6\2\7\6\0\12\7\46\0\27\6" - + "\5\7\4\0\65\6\12\7\1\0\35\7\2\0\13\7\6\0\12\7" - + "\15\0\1\6\130\0\5\7\57\6\21\7\7\6\4\0\12\7\21\0" - + "\11\7\14\0\3\7\36\6\12\7\3\0\2\6\12\7\6\0\46\6" - + "\16\7\14\0\44\6\24\7\10\0\12\7\3\0\3\6\12\7\44\6" - + "\122\0\3\7\1\0\25\7\4\6\1\7\4\6\1\7\15\0\300\6" - + "\47\7\25\0\4\7\u0116\6\2\0\6\6\2\0\46\6\2\0\6\6" - + "\2\0\10\6\1\0\1\6\1\0\1\6\1\0\1\6\1\0\37\6" - + "\2\0\65\6\1\0\7\6\1\0\1\6\3\0\3\6\1\0\7\6" - + "\3\0\4\6\2\0\6\6\4\0\15\6\5\0\3\6\1\0\7\6" - + "\16\0\5\7\32\0\5\7\20\0\2\6\23\0\1\6\13\0\5\7" - + "\5\0\6\7\1\0\1\6\15\0\1\6\20\0\15\6\3\0\32\6" - + "\26\0\15\7\4\0\1\7\3\0\14\7\21\0\1\6\4\0\1\6" - + "\2\0\12\6\1\0\1\6\3\0\5\6\6\0\1\6\1\0\1\6" - + "\1\0\1\6\1\0\4\6\1\0\13\6\2\0\4\6\5\0\5\6" - + "\4\0\1\6\21\0\51\6\u0a77\0\57\6\1\0\57\6\1\0\205\6" - + "\6\0\4\6\3\7\16\0\46\6\12\0\66\6\11\0\1\6\17\0" - + "\1\7\27\6\11\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6" - + "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\40\7" - + "\57\0\1\6\u01d5\0\3\6\31\0\11\6\6\7\1\0\5\6\2\0" - + "\5\6\4\0\126\6\2\0\2\7\2\0\3\6\1\0\132\6\1\0" - + "\4\6\5\0\51\6\3\0\136\6\21\0\33\6\65\0\20\6\u0200\0" - + "\u19b6\6\112\0\u51cc\6\64\0\u048d\6\103\0\56\6\2\0\u010d\6\3\0" - + "\20\6\12\7\2\6\24\0\57\6\1\7\14\0\2\7\1\0\31\6" - + "\10\0\120\6\2\7\45\0\11\6\2\0\147\6\2\0\4\6\1\0" - + "\2\6\16\0\12\6\120\0\10\6\1\7\3\6\1\7\4\6\1\7" - + "\27\6\5\7\20\0\1\6\7\0\64\6\14\0\2\7\62\6\21\7" - + "\13\0\12\7\6\0\22\7\6\6\3\0\1\6\4\0\12\7\34\6" - + "\10\7\2\0\27\6\15\7\14\0\35\6\3\0\4\7\57\6\16\7" - + "\16\0\1\6\12\7\46\0\51\6\16\7\11\0\3\6\1\7\10\6" - + "\2\7\2\0\12\7\6\0\27\6\3\0\1\6\1\7\4\0\60\6" - + "\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6\1\7\1\6" - + "\30\0\3\6\43\0\6\6\2\0\6\6\2\0\6\6\11\0\7\6" - + "\1\0\7\6\221\0\43\6\10\7\1\0\2\7\2\0\12\7\6\0" - + "\u2ba4\6\14\0\27\6\4\0\61\6\u2104\0\u012e\6\2\0\76\6\2\0" - + "\152\6\46\0\7\6\14\0\5\6\5\0\1\6\1\7\12\6\1\0" - + "\15\6\1\0\5\6\1\0\1\6\1\0\2\6\1\0\2\6\1\0" - + "\154\6\41\0\u016b\6\22\0\100\6\2\0\66\6\50\0\15\6\3\0" - + "\20\7\20\0\7\7\14\0\2\6\30\0\3\6\31\0\1\6\6\0" - + "\5\6\1\0\207\6\2\0\1\7\4\0\1\6\13\0\12\7\7\0" - + "\32\6\4\0\1\6\1\0\32\6\13\0\131\6\3\0\6\6\2\0" - + "\6\6\2\0\6\6\2\0\3\6\3\0\2\6\3\0\2\6\22\0" - + "\3\7\4\0"; + + "\1\6\1\101\1\113\1\102\1\110\6\7\1\122\32\7\2\0\4\6" + + "\4\0\1\6\2\0\1\7\7\0\1\6\4\0\1\6\5\0\27\6" + + "\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0\1\6" + + "\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0\4\6\10\0" + + "\1\6\1\0\3\6\1\0\1\6\1\0\24\6\1\0\123\6\1\0" + + "\213\6\1\0\5\7\2\0\236\6\11\0\46\6\2\0\1\6\7\0" + + "\47\6\11\0\55\7\1\0\1\7\1\0\2\7\1\0\2\7\1\0" + + "\1\7\10\0\33\6\5\0\3\6\15\0\4\7\7\0\1\6\4\0" + + "\13\7\5\0\53\6\37\7\4\0\2\6\1\7\143\6\1\0\1\6" + + "\10\7\1\0\6\7\2\6\2\7\1\0\4\7\2\6\12\7\3\6" + + "\2\0\1\6\17\0\1\7\1\6\1\7\36\6\33\7\2\0\131\6" + + "\13\7\1\6\16\0\12\7\41\6\11\7\2\6\4\0\1\6\5\0" + + "\26\6\4\7\1\6\11\7\1\6\3\7\1\6\5\7\22\0\31\6" + + "\3\7\244\0\4\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6" + + "\2\7\2\0\12\7\1\0\7\6\1\0\7\6\1\0\3\7\1\0" + + "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\1\6\3\0" + + "\4\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\1\6" + + "\10\0\1\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\4\6" + + "\7\0\1\6\5\0\3\7\1\0\6\6\4\0\2\6\2\0\26\6" + + "\1\0\7\6\1\0\2\6\1\0\2\6\1\0\2\6\2\0\1\7" + + "\1\0\5\7\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\6" + + "\1\0\1\6\7\0\14\7\3\6\1\7\13\0\3\7\1\0\11\6" + + "\1\0\3\6\1\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6" + + "\2\0\1\7\1\6\10\7\1\0\3\7\1\0\3\7\2\0\1\6" + + "\17\0\2\6\2\7\2\0\12\7\1\0\1\6\17\0\3\7\1\0" + + "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0" + + "\5\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\10\0" + + "\2\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\1\0\1\6" + + "\20\0\1\7\1\6\1\0\6\6\3\0\3\6\1\0\4\6\3\0" + + "\2\6\1\0\1\6\1\0\2\6\3\0\2\6\3\0\3\6\3\0" + + "\14\6\4\0\5\7\3\0\3\7\1\0\4\7\2\0\1\6\6\0" + + "\1\7\16\0\12\7\11\0\1\6\7\0\3\7\1\0\10\6\1\0" + + "\3\6\1\0\27\6\1\0\12\6\1\0\5\6\3\0\1\6\7\7" + + "\1\0\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6" + + "\2\7\2\0\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0" + + "\27\6\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0" + + "\3\7\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7" + + "\2\0\12\7\1\0\2\6\17\0\2\7\1\0\10\6\1\0\3\6" + + "\1\0\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6" + + "\10\0\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0" + + "\2\7\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0" + + "\7\6\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\22\0" + + "\2\7\15\0\60\6\1\7\2\6\7\7\4\0\10\6\10\7\1\0" + + "\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6\2\0" + + "\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6\1\0" + + "\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0\2\7" + + "\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7\2\0" + + "\2\6\42\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7\1\0" + + "\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0\24\7" + + "\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0\53\6" + + "\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6\3\7" + + "\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0\46\6" + + "\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0\4\6\2\0\7\6" + + "\1\0\1\6\1\0\4\6\2\0\51\6\1\0\4\6\2\0\41\6" + + "\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\17\6" + + "\1\0\71\6\1\0\4\6\2\0\103\6\2\0\3\7\40\0\20\6" + + "\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0\32\6\5\0\113\6" + + "\3\0\3\6\17\0\15\6\1\0\4\6\3\7\13\0\22\6\3\7" + + "\13\0\22\6\2\7\14\0\15\6\1\0\3\6\1\0\2\7\14\0" + + "\64\6\40\7\3\0\1\6\3\0\2\6\1\7\2\0\12\7\41\0" + + "\3\7\2\0\12\7\6\0\130\6\10\0\51\6\1\7\1\6\5\0" + + "\106\6\12\0\35\6\3\0\14\7\4\0\14\7\12\0\12\7\36\6" + + "\2\0\5\6\13\0\54\6\4\0\21\7\7\6\2\7\6\0\12\7" + + "\46\0\27\6\5\7\4\0\65\6\12\7\1\0\35\7\2\0\13\7" + + "\6\0\12\7\15\0\1\6\130\0\5\7\57\6\21\7\7\6\4\0" + + "\12\7\21\0\11\7\14\0\3\7\36\6\12\7\3\0\2\6\12\7" + + "\6\0\46\6\16\7\14\0\44\6\24\7\10\0\12\7\3\0\3\6" + + "\12\7\44\6\122\0\3\7\1\0\25\7\4\6\1\7\4\6\1\7" + + "\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0\6\6\2\0\46\6" + + "\2\0\6\6\2\0\10\6\1\0\1\6\1\0\1\6\1\0\1\6" + + "\1\0\37\6\2\0\65\6\1\0\7\6\1\0\1\6\3\0\3\6" + + "\1\0\7\6\3\0\4\6\2\0\6\6\4\0\15\6\5\0\3\6" + + "\1\0\7\6\16\0\5\7\30\0\1\120\1\120\5\7\20\0\2\6" + + "\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0\1\6" + + "\20\0\15\6\3\0\32\6\26\0\15\7\4\0\1\7\3\0\14\7" + + "\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0\5\6" + + "\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0\13\6" + + "\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0\57\6" + + "\1\0\57\6\1\0\205\6\6\0\4\6\3\7\16\0\46\6\12\0" + + "\66\6\11\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0\7\6" + + "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6" + + "\1\0\7\6\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0\11\6" + + "\6\7\1\0\5\6\2\0\5\6\4\0\126\6\2\0\2\7\2\0" + + "\3\6\1\0\132\6\1\0\4\6\5\0\51\6\3\0\136\6\21\0" + + "\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6\103\0" + + "\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6\1\7" + + "\14\0\2\7\1\0\31\6\10\0\120\6\2\7\45\0\11\6\2\0" + + "\147\6\2\0\4\6\1\0\2\6\16\0\12\6\120\0\10\6\1\7" + + "\3\6\1\7\4\6\1\7\27\6\5\7\20\0\1\6\7\0\64\6" + + "\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7\6\6\3\0" + + "\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7\14\0\35\6" + + "\3\0\4\7\57\6\16\7\16\0\1\6\12\7\46\0\51\6\16\7" + + "\11\0\3\6\1\7\10\6\2\7\2\0\12\7\6\0\27\6\3\0" + + "\1\6\1\7\4\0\60\6\1\7\1\6\3\7\2\6\2\7\5\6" + + "\2\7\1\6\1\7\1\6\30\0\3\6\43\0\6\6\2\0\6\6" + + "\2\0\6\6\11\0\7\6\1\0\7\6\221\0\43\6\10\7\1\0" + + "\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6\u2104\0" + + "\u012e\6\2\0\76\6\2\0\152\6\46\0\7\6\14\0\5\6\5\0" + + "\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6\1\0" + + "\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6\2\0" + + "\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6\30\0" + + "\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7\4\0" + + "\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6\13\0" + + "\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6\3\0" + + "\2\6\3\0\2\6\22\0\3\7\4\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 = "\5\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7" + "\1\10\1\11\1\12\1\13\1\14\2\15\1\16\1\17" @@ -245,96 +252,98 @@ public final class ActionScriptLexer { } 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\120\0\240\0\360\0\u0140\0\u0190\0\u01e0\0\u0190" - + "\0\u0230\0\u0280\0\u02d0\0\u0320\0\u0370\0\u03c0\0\u0410\0\u0460" - + "\0\u04b0\0\u0190\0\u0500\0\u0550\0\u05a0\0\u0190\0\u05f0\0\u0640" - + "\0\u0690\0\u06e0\0\u0730\0\u0780\0\u07d0\0\u0820\0\u0870\0\u08c0" - + "\0\u0910\0\u0960\0\u09b0\0\u0a00\0\u0a50\0\u0aa0\0\u0af0\0\u0b40" - + "\0\u0b90\0\u0be0\0\u0c30\0\u0c80\0\u0190\0\u0190\0\u0190\0\u0190" - + "\0\u0190\0\u0190\0\u0190\0\u0190\0\u0cd0\0\u0190\0\u0190\0\u0d20" - + "\0\u0d70\0\u0dc0\0\u0e10\0\u0e60\0\u0190\0\u0eb0\0\u0f00\0\u0190" - + "\0\u0190\0\u0f50\0\u0fa0\0\u0ff0\0\u0190\0\u1040\0\u1090\0\u0190" - + "\0\u10e0\0\u0190\0\u1130\0\u1180\0\u11d0\0\u0190\0\u0190\0\u0190" - + "\0\u1220\0\u1270\0\u12c0\0\u1310\0\u1360\0\u0190\0\u13b0\0\u0190" - + "\0\u1400\0\u1450\0\u14a0\0\u14f0\0\u1540\0\u1590\0\u15e0\0\u0190" - + "\0\u0190\0\u1630\0\u1680\0\u16d0\0\u1720\0\u1770\0\u17c0\0\u1810" - + "\0\u0320\0\u1860\0\u18b0\0\u1900\0\u1950\0\u19a0\0\u19f0\0\u1a40" - + "\0\u1a90\0\u1ae0\0\u1b30\0\u1b80\0\u1bd0\0\u1c20\0\u1c70\0\u1cc0" - + "\0\u1d10\0\u1d60\0\u1db0\0\u1e00\0\u0320\0\u1e50\0\u1ea0\0\u1ef0" - + "\0\u1f40\0\u1f90\0\u1fe0\0\u0320\0\u2030\0\u2080\0\u20d0\0\u2120" - + "\0\u2170\0\u21c0\0\u2210\0\u2260\0\u22b0\0\u2300\0\u2350\0\u23a0" - + "\0\u23f0\0\u2440\0\u2490\0\u24e0\0\u2530\0\u2580\0\u25d0\0\u2620" - + "\0\u2670\0\u26c0\0\u2710\0\u2760\0\u0190\0\u0190\0\u0190\0\u0190" - + "\0\u0190\0\u0190\0\u0190\0\u0190\0\u0190\0\u0190\0\u27b0\0\u2800" - + "\0\u0190\0\u0190\0\u0190\0\u0190\0\u0190\0\u0190\0\u0190\0\u1090" - + "\0\u2850\0\u28a0\0\u28f0\0\u2940\0\u2990\0\u29e0\0\u0190\0\u2a30" - + "\0\u2a80\0\u0190\0\u2ad0\0\u2b20\0\u2b70\0\u0190\0\u2bc0\0\u0190" - + "\0\u2c10\0\u0190\0\u0190\0\u14f0\0\u2c60\0\u2cb0\0\u2d00\0\u2d00" - + "\0\u2d50\0\u2da0\0\u2df0\0\u2e40\0\u2e90\0\u2ee0\0\u2f30\0\u2f80" - + "\0\u2fd0\0\u3020\0\u3070\0\u30c0\0\u3110\0\u0320\0\u0320\0\u3160" - + "\0\u31b0\0\u3200\0\u3250\0\u32a0\0\u0320\0\u32f0\0\u3340\0\u3390" - + "\0\u33e0\0\u3430\0\u3480\0\u34d0\0\u0320\0\u3520\0\u3570\0\u35c0" - + "\0\u3610\0\u3660\0\u36b0\0\u3700\0\u3750\0\u37a0\0\u37f0\0\u0320" - + "\0\u3840\0\u3890\0\u38e0\0\u3930\0\u3980\0\u39d0\0\u3a20\0\u0320" - + "\0\u3a70\0\u3ac0\0\u3b10\0\u3b60\0\u3bb0\0\u3c00\0\u3c50\0\u3ca0" - + "\0\u3cf0\0\u3d40\0\u3d90\0\u3de0\0\u3e30\0\u3e80\0\u3ed0\0\u3f20" - + "\0\u0320\0\u3f70\0\u3fc0\0\u4010\0\u4060\0\u0320\0\u40b0\0\u4100" - + "\0\u0190\0\u0190\0\u4150\0\u41a0\0\u41f0\0\u4240\0\u4290\0\u42e0" - + "\0\u4330\0\u0190\0\u4380\0\u43d0\0\u4420\0\u4470\0\u44c0\0\u0190" - + "\0\u4510\0\u4560\0\u45b0\0\u4600\0\u4650\0\u46a0\0\u0320\0\u0320" - + "\0\u0320\0\u46f0\0\u0320\0\u4740\0\u0320\0\u4790\0\u47e0\0\u4830" - + "\0\u4880\0\u48d0\0\u4920\0\u4970\0\u49c0\0\u4a10\0\u4a60\0\u4ab0" - + "\0\u4b00\0\u4b50\0\u0320\0\u4ba0\0\u0320\0\u4bf0\0\u4c40\0\u4c90" - + "\0\u4ce0\0\u0320\0\u4d30\0\u4d80\0\u4dd0\0\u4e20\0\u4e70\0\u4ec0" - + "\0\u4f10\0\u4f60\0\u4fb0\0\u5000\0\u5050\0\u50a0\0\u50f0\0\u5140" - + "\0\u5190\0\u51e0\0\u5230\0\u0320\0\u5280\0\u52d0\0\u5320\0\u5370" - + "\0\u53c0\0\u5410\0\u5460\0\u0320\0\u54b0\0\u5500\0\u5550\0\u55a0" - + "\0\u0320\0\u55f0\0\u5640\0\u5690\0\u56e0\0\u5730\0\u5780\0\u57d0" - + "\0\u5820\0\u5870\0\u0190\0\u58c0\0\u5910\0\u5960\0\u59b0\0\u5a00" - + "\0\u5a50\0\u5aa0\0\u5af0\0\u5b40\0\u5b90\0\u5be0\0\u5c30\0\u0320" - + "\0\u5c80\0\u5cd0\0\u5d20\0\u5d70\0\u0320\0\u0320\0\u5dc0\0\u0320" - + "\0\u5e10\0\u5e60\0\u5eb0\0\u5f00\0\u5f50\0\u0320\0\u5fa0\0\u5ff0" - + "\0\u6040\0\u6090\0\u60e0\0\u0320\0\u6130\0\u6180\0\u61d0\0\u0320" - + "\0\u6220\0\u6270\0\u62c0\0\u6310\0\u6360\0\u63b0\0\u6400\0\u6450" - + "\0\u64a0\0\u64f0\0\u6540\0\u6590\0\u0320\0\u65e0\0\u6630\0\u6680" - + "\0\u66d0\0\u6720\0\u0320\0\u6770\0\u67c0\0\u6810\0\u6860\0\u68b0" - + "\0\u6900\0\u0320\0\u6950\0\u0320\0\u69a0\0\u69f0\0\u6a40\0\u6a90" - + "\0\u6ae0\0\u6b30\0\u6b80\0\u6bd0\0\u6c20\0\u6c70\0\u6cc0\0\u6d10" - + "\0\u6d60\0\u6db0\0\u6e00\0\u6e50\0\u6ea0\0\u6ef0\0\u0320\0\u6f40" - + "\0\u0320\0\u6f90\0\u6fe0\0\u7030\0\u0320\0\u7080\0\u70d0\0\u0320" - + "\0\u0320\0\u7120\0\u7170\0\u71c0\0\u7210\0\u7260\0\u72b0\0\u7300" - + "\0\u0320\0\u7350\0\u73a0\0\u73f0\0\u7440\0\u0320\0\u7490\0\u74e0" - + "\0\u7530\0\u7580\0\u0320\0\u75d0\0\u7620\0\u7670\0\u76c0\0\u0320" - + "\0\u7710\0\u7760\0\u77b0\0\u7800\0\u7850\0\u78a0\0\u78f0\0\u7940" - + "\0\u0320\0\u7990\0\u79e0\0\u0320\0\u7a30\0\u7a80\0\u7ad0\0\u0320" - + "\0\u0320\0\u7b20\0\u7b70\0\u7bc0\0\u5aa0\0\u7c10\0\u7c60\0\u7cb0" - + "\0\u0320\0\u7d00\0\u7d50\0\u7da0\0\u7df0\0\u7e40\0\u0320\0\u7e90" - + "\0\u7ee0\0\u7f30\0\u7f80\0\u7fd0\0\u8020\0\u8070\0\u80c0\0\u8110" - + "\0\u8160\0\u81b0\0\u8200\0\u0320\0\u8250\0\u0320\0\u0320\0\u82a0" - + "\0\u82f0\0\u8340\0\u8390\0\u83e0\0\u8430\0\u8480\0\u0320\0\u0320" - + "\0\u84d0\0\u8520\0\u8570\0\u85c0\0\u8610\0\u8660\0\u6cc0\0\u86b0" - + "\0\u8700\0\u8750\0\u0320\0\u87a0\0\u87f0\0\u0320\0\u0320\0\u8840" - + "\0\u8890\0\u88e0\0\u8930\0\u8980\0\u89d0\0\u0320\0\u8a20\0\u8a70" - + "\0\u8ac0\0\u8b10\0\u8b60\0\u8bb0\0\u0320\0\u8c00\0\u8c50\0\u8ca0" - + "\0\u8cf0\0\u8d40\0\u0320\0\u8d90\0\u0320\0\u0320\0\u8de0\0\u8e30" - + "\0\u8e80\0\u0320\0\u8ed0\0\u8f20\0\u8f70\0\u0320\0\u8fc0\0\u0320" - + "\0\u0320\0\u9010\0\u9060\0\u90b0\0\u9100\0\u0320\0\u9150\0\u91a0" - + "\0\u0320\0\u91f0\0\u9240\0\u9290\0\u92e0\0\u0320\0\u0320\0\u9330" - + "\0\u9380\0\u93d0\0\u9420\0\u9470\0\u0190\0\u94c0\0\u9510\0\u9560" - + "\0\u0320\0\u0320\0\u95b0\0\u0320\0\u9600\0\u0320\0\u9650\0\u96a0" - + "\0\u96f0\0\u9740\0\u9790\0\u97e0\0\u0320\0\u9830\0\u9880\0\u98d0" - + "\0\u9920\0\u9970\0\u99c0\0\u9a10\0\u9a60\0\u9ab0\0\u9b00\0\u9b50" - + "\0\u9ba0\0\u0320\0\u0320\0\u0320\0\u9bf0\0\u9c40\0\u9c90\0\u9ce0" - + "\0\u9d30\0\u9d80\0\u9dd0\0\u0320\0\u9e20\0\u9e70\0\u9ec0\0\u9f10" - + "\0\u0320\0\u9f60\0\u0320\0\u9fb0\0\ua000\0\ua050\0\ua0a0\0\ua0f0" - + "\0\ua140\0\ua190\0\u0320\0\ua1e0\0\ua230\0\ua280\0\ua2d0\0\u0320" - + "\0\ua320\0\ua370\0\ua3c0\0\ua410\0\u14a0\0\ua460\0\ua4b0\0\u0320" - + "\0\u0320\0\u0320\0\ua500\0\u0320"; + = "\0\0\0\123\0\246\0\371\0\u014c\0\u019f\0\u01f2\0\u019f" + + "\0\u0245\0\u0298\0\u02eb\0\u033e\0\u0391\0\u03e4\0\u0437\0\u048a" + + "\0\u04dd\0\u019f\0\u0530\0\u0583\0\u05d6\0\u019f\0\u0629\0\u067c" + + "\0\u06cf\0\u0722\0\u0775\0\u07c8\0\u081b\0\u086e\0\u08c1\0\u0914" + + "\0\u0967\0\u09ba\0\u0a0d\0\u0a60\0\u0ab3\0\u0b06\0\u0b59\0\u0bac" + + "\0\u0bff\0\u0c52\0\u0ca5\0\u0cf8\0\u019f\0\u019f\0\u019f\0\u019f" + + "\0\u019f\0\u019f\0\u019f\0\u019f\0\u0d4b\0\u019f\0\u019f\0\u0d9e" + + "\0\u0df1\0\u0e44\0\u0e97\0\u0eea\0\u019f\0\u0f3d\0\u0f90\0\u019f" + + "\0\u019f\0\u0fe3\0\u1036\0\u1089\0\u019f\0\u10dc\0\u112f\0\u019f" + + "\0\u1182\0\u019f\0\u11d5\0\u1228\0\u127b\0\u019f\0\u019f\0\u019f" + + "\0\u12ce\0\u1321\0\u1374\0\u13c7\0\u141a\0\u019f\0\u146d\0\u019f" + + "\0\u14c0\0\u1513\0\u1566\0\u15b9\0\u160c\0\u165f\0\u16b2\0\u019f" + + "\0\u019f\0\u1705\0\u1758\0\u17ab\0\u17fe\0\u1851\0\u18a4\0\u18f7" + + "\0\u033e\0\u194a\0\u199d\0\u19f0\0\u1a43\0\u1a96\0\u1ae9\0\u1b3c" + + "\0\u1b8f\0\u1be2\0\u1c35\0\u1c88\0\u1cdb\0\u1d2e\0\u1d81\0\u1dd4" + + "\0\u1e27\0\u1e7a\0\u1ecd\0\u1f20\0\u033e\0\u1f73\0\u1fc6\0\u2019" + + "\0\u206c\0\u20bf\0\u2112\0\u033e\0\u2165\0\u21b8\0\u220b\0\u225e" + + "\0\u22b1\0\u2304\0\u2357\0\u23aa\0\u23fd\0\u2450\0\u24a3\0\u24f6" + + "\0\u2549\0\u259c\0\u25ef\0\u2642\0\u2695\0\u26e8\0\u273b\0\u278e" + + "\0\u27e1\0\u2834\0\u2887\0\u28da\0\u019f\0\u019f\0\u019f\0\u019f" + + "\0\u019f\0\u019f\0\u019f\0\u019f\0\u019f\0\u019f\0\u292d\0\u2980" + + "\0\u019f\0\u019f\0\u019f\0\u019f\0\u019f\0\u019f\0\u019f\0\u112f" + + "\0\u29d3\0\u2a26\0\u2a79\0\u2acc\0\u2b1f\0\u2b72\0\u019f\0\u2bc5" + + "\0\u2c18\0\u019f\0\u2c6b\0\u2cbe\0\u2d11\0\u019f\0\u2d64\0\u019f" + + "\0\u2db7\0\u019f\0\u019f\0\u15b9\0\u2e0a\0\u2e5d\0\u2eb0\0\u2eb0" + + "\0\u2f03\0\u2f56\0\u2fa9\0\u2ffc\0\u304f\0\u30a2\0\u30f5\0\u3148" + + "\0\u319b\0\u31ee\0\u3241\0\u3294\0\u32e7\0\u033e\0\u033e\0\u333a" + + "\0\u338d\0\u33e0\0\u3433\0\u3486\0\u033e\0\u34d9\0\u352c\0\u357f" + + "\0\u35d2\0\u3625\0\u3678\0\u36cb\0\u033e\0\u371e\0\u3771\0\u37c4" + + "\0\u3817\0\u386a\0\u38bd\0\u3910\0\u3963\0\u39b6\0\u3a09\0\u033e" + + "\0\u3a5c\0\u3aaf\0\u3b02\0\u3b55\0\u3ba8\0\u3bfb\0\u3c4e\0\u033e" + + "\0\u3ca1\0\u3cf4\0\u3d47\0\u3d9a\0\u3ded\0\u3e40\0\u3e93\0\u3ee6" + + "\0\u3f39\0\u3f8c\0\u3fdf\0\u4032\0\u4085\0\u40d8\0\u412b\0\u417e" + + "\0\u033e\0\u41d1\0\u4224\0\u4277\0\u42ca\0\u033e\0\u431d\0\u4370" + + "\0\u019f\0\u019f\0\u43c3\0\u4416\0\u4469\0\u44bc\0\u450f\0\u4562" + + "\0\u45b5\0\u019f\0\u4608\0\u465b\0\u46ae\0\u4701\0\u4754\0\u019f" + + "\0\u47a7\0\u47fa\0\u484d\0\u48a0\0\u48f3\0\u4946\0\u033e\0\u033e" + + "\0\u033e\0\u4999\0\u033e\0\u49ec\0\u033e\0\u4a3f\0\u4a92\0\u4ae5" + + "\0\u4b38\0\u4b8b\0\u4bde\0\u4c31\0\u4c84\0\u4cd7\0\u4d2a\0\u4d7d" + + "\0\u4dd0\0\u4e23\0\u033e\0\u4e76\0\u033e\0\u4ec9\0\u4f1c\0\u4f6f" + + "\0\u4fc2\0\u033e\0\u5015\0\u5068\0\u50bb\0\u510e\0\u5161\0\u51b4" + + "\0\u5207\0\u525a\0\u52ad\0\u5300\0\u5353\0\u53a6\0\u53f9\0\u544c" + + "\0\u549f\0\u54f2\0\u5545\0\u033e\0\u5598\0\u55eb\0\u563e\0\u5691" + + "\0\u56e4\0\u5737\0\u578a\0\u033e\0\u57dd\0\u5830\0\u5883\0\u58d6" + + "\0\u033e\0\u5929\0\u597c\0\u59cf\0\u5a22\0\u5a75\0\u5ac8\0\u5b1b" + + "\0\u5b6e\0\u5bc1\0\u019f\0\u5c14\0\u5c67\0\u5cba\0\u5d0d\0\u5d60" + + "\0\u5db3\0\u5e06\0\u5e59\0\u5eac\0\u5eff\0\u5f52\0\u5fa5\0\u033e" + + "\0\u5ff8\0\u604b\0\u609e\0\u60f1\0\u033e\0\u033e\0\u6144\0\u033e" + + "\0\u6197\0\u61ea\0\u623d\0\u6290\0\u62e3\0\u033e\0\u6336\0\u6389" + + "\0\u63dc\0\u642f\0\u6482\0\u033e\0\u64d5\0\u6528\0\u657b\0\u033e" + + "\0\u65ce\0\u6621\0\u6674\0\u66c7\0\u671a\0\u676d\0\u67c0\0\u6813" + + "\0\u6866\0\u68b9\0\u690c\0\u695f\0\u033e\0\u69b2\0\u6a05\0\u6a58" + + "\0\u6aab\0\u6afe\0\u033e\0\u6b51\0\u6ba4\0\u6bf7\0\u6c4a\0\u6c9d" + + "\0\u6cf0\0\u033e\0\u6d43\0\u033e\0\u6d96\0\u6de9\0\u6e3c\0\u6e8f" + + "\0\u6ee2\0\u6f35\0\u6f88\0\u6fdb\0\u702e\0\u7081\0\u70d4\0\u7127" + + "\0\u717a\0\u71cd\0\u7220\0\u7273\0\u72c6\0\u7319\0\u033e\0\u736c" + + "\0\u033e\0\u73bf\0\u7412\0\u7465\0\u033e\0\u74b8\0\u750b\0\u033e" + + "\0\u033e\0\u755e\0\u75b1\0\u7604\0\u7657\0\u76aa\0\u76fd\0\u7750" + + "\0\u033e\0\u77a3\0\u77f6\0\u7849\0\u789c\0\u033e\0\u78ef\0\u7942" + + "\0\u7995\0\u79e8\0\u033e\0\u7a3b\0\u7a8e\0\u7ae1\0\u7b34\0\u033e" + + "\0\u7b87\0\u7bda\0\u7c2d\0\u7c80\0\u7cd3\0\u7d26\0\u7d79\0\u7dcc" + + "\0\u033e\0\u7e1f\0\u7e72\0\u033e\0\u7ec5\0\u7f18\0\u7f6b\0\u033e" + + "\0\u033e\0\u7fbe\0\u8011\0\u8064\0\u5e06\0\u80b7\0\u810a\0\u815d" + + "\0\u033e\0\u81b0\0\u8203\0\u8256\0\u82a9\0\u82fc\0\u033e\0\u834f" + + "\0\u83a2\0\u83f5\0\u8448\0\u849b\0\u84ee\0\u8541\0\u8594\0\u85e7" + + "\0\u863a\0\u868d\0\u86e0\0\u033e\0\u8733\0\u033e\0\u033e\0\u8786" + + "\0\u87d9\0\u882c\0\u887f\0\u88d2\0\u8925\0\u8978\0\u033e\0\u033e" + + "\0\u89cb\0\u8a1e\0\u8a71\0\u8ac4\0\u8b17\0\u8b6a\0\u70d4\0\u8bbd" + + "\0\u8c10\0\u8c63\0\u033e\0\u8cb6\0\u8d09\0\u033e\0\u033e\0\u8d5c" + + "\0\u8daf\0\u8e02\0\u8e55\0\u8ea8\0\u8efb\0\u033e\0\u8f4e\0\u8fa1" + + "\0\u8ff4\0\u9047\0\u909a\0\u90ed\0\u033e\0\u9140\0\u9193\0\u91e6" + + "\0\u9239\0\u928c\0\u033e\0\u92df\0\u033e\0\u033e\0\u9332\0\u9385" + + "\0\u93d8\0\u033e\0\u942b\0\u947e\0\u94d1\0\u033e\0\u9524\0\u033e" + + "\0\u033e\0\u9577\0\u95ca\0\u961d\0\u9670\0\u033e\0\u96c3\0\u9716" + + "\0\u033e\0\u9769\0\u97bc\0\u980f\0\u9862\0\u033e\0\u033e\0\u98b5" + + "\0\u9908\0\u995b\0\u99ae\0\u9a01\0\u019f\0\u9a54\0\u9aa7\0\u9afa" + + "\0\u033e\0\u033e\0\u9b4d\0\u033e\0\u9ba0\0\u033e\0\u9bf3\0\u9c46" + + "\0\u9c99\0\u9cec\0\u9d3f\0\u9d92\0\u033e\0\u9de5\0\u9e38\0\u9e8b" + + "\0\u9ede\0\u9f31\0\u9f84\0\u9fd7\0\ua02a\0\ua07d\0\ua0d0\0\ua123" + + "\0\ua176\0\u033e\0\u033e\0\u033e\0\ua1c9\0\ua21c\0\ua26f\0\ua2c2" + + "\0\ua315\0\ua368\0\ua3bb\0\u033e\0\ua40e\0\ua461\0\ua4b4\0\ua507" + + "\0\u033e\0\ua55a\0\u033e\0\ua5ad\0\ua600\0\ua653\0\ua6a6\0\ua6f9" + + "\0\ua74c\0\ua79f\0\u033e\0\ua7f2\0\ua845\0\ua898\0\ua8eb\0\u033e" + + "\0\ua93e\0\ua991\0\ua9e4\0\uaa37\0\u1566\0\uaa8a\0\uaadd\0\u033e" + + "\0\u033e\0\u033e\0\uab30\0\u033e"; private static int[] zzUnpackRowMap() { int[] result = new int[676]; @@ -355,10 +364,12 @@ public final class ActionScriptLexer { } return j; } + /** * The transition table of the DFA */ private static final int[] ZZ_TRANS = zzUnpackTrans(); + private static final String ZZ_TRANS_PACKED_0 = "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\6" + "\1\15\1\16\1\17\1\20\1\11\1\21\1\22\1\23" @@ -368,554 +379,662 @@ public final class ActionScriptLexer { + "\1\46\1\14\1\47\1\50\1\14\1\51\2\14\1\52" + "\12\14\1\53\1\54\1\55\1\56\1\57\1\60\1\61" + "\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71" - + "\1\72\1\73\1\74\1\75\1\76\1\77\1\100\13\76" - + "\1\101\10\76\1\102\70\76\1\103\1\77\1\100\24\103" - + "\1\102\1\101\67\103\1\6\1\104\1\105\1\106\2\6" - + "\1\107\4\6\1\110\1\111\4\6\2\107\2\6\1\107" - + "\3\6\46\107\21\6\1\112\1\104\1\105\7\112\1\113" - + "\105\112\122\0\1\10\120\0\1\11\10\0\1\11\107\0" - + "\1\114\1\115\7\0\1\116\117\0\1\117\110\0\2\14" - + "\7\0\7\14\3\0\46\14\31\0\1\120\120\0\1\121" - + "\1\122\4\0\2\123\2\0\2\123\101\0\1\124\3\0" - + "\1\125\2\0\1\126\3\0\2\124\2\0\1\124\3\0" - + "\46\124\34\0\1\127\1\0\1\130\117\0\1\131\113\0" - + "\1\123\5\0\1\132\1\133\1\134\1\0\1\135\1\136" - + "\1\137\5\0\1\137\22\0\1\134\52\0\1\123\5\0" - + "\2\24\2\0\2\24\1\137\5\0\1\137\101\0\1\140" - + "\10\0\1\141\77\0\2\14\7\0\7\14\3\0\1\14" - + "\1\142\44\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\143\1\144\42\14\27\0\2\14\7\0\7\14\3\0" - + "\3\14\1\145\12\14\1\146\5\14\1\147\1\150\20\14" - + "\27\0\2\14\7\0\7\14\3\0\6\14\1\151\37\14" - + "\27\0\2\14\7\0\7\14\3\0\3\14\1\152\3\14" - + "\1\153\6\14\1\154\1\14\1\155\25\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\156\6\14\1\157\1\14" - + "\1\160\3\14\1\161\26\14\27\0\2\14\7\0\7\14" - + "\3\0\1\14\1\162\22\14\1\163\21\14\27\0\2\14" + + "\1\72\1\73\1\74\1\75\1\0\1\11\1\0\1\76" + + "\1\77\1\100\13\76\1\101\10\76\1\102\73\76\1\103" + + "\1\77\1\100\24\103\1\102\1\101\72\103\1\6\1\104" + + "\1\105\1\106\2\6\1\107\4\6\1\110\1\111\4\6" + + "\2\107\2\6\1\107\3\6\46\107\21\6\1\0\1\106" + + "\1\0\1\112\1\104\1\105\7\112\1\113\105\112\130\0" + + "\1\10\123\0\1\11\10\0\1\11\104\0\1\11\5\0" + + "\1\114\1\115\7\0\1\116\122\0\1\117\113\0\2\14" + + "\7\0\7\14\3\0\46\14\23\0\1\14\10\0\1\120" + + "\123\0\1\121\1\122\4\0\2\123\2\0\2\123\104\0" + + "\1\124\3\0\1\125\2\0\1\126\3\0\2\124\2\0" + + "\1\124\3\0\46\124\37\0\1\127\1\0\1\130\122\0" + + "\1\131\116\0\1\123\5\0\1\132\1\133\1\134\1\0" + + "\1\135\1\136\1\137\5\0\1\137\22\0\1\134\55\0" + + "\1\123\5\0\2\24\2\0\2\24\1\137\5\0\1\137" + + "\104\0\1\140\10\0\1\141\102\0\2\14\7\0\7\14" + + "\3\0\1\14\1\142\44\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\2\14\1\143\1\144\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\3\14\1\145" + + "\12\14\1\146\5\14\1\147\1\150\20\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\6\14\1\151\37\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\3\14" + + "\1\152\3\14\1\153\6\14\1\154\1\14\1\155\25\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\2\14" + + "\1\156\6\14\1\157\1\14\1\160\3\14\1\161\26\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\162\22\14\1\163\21\14\23\0\1\14\6\0\2\14" + "\7\0\7\14\3\0\2\14\1\164\1\165\7\14\1\166" - + "\32\14\27\0\2\14\7\0\7\14\3\0\1\14\1\167" - + "\1\170\1\171\3\14\1\172\10\14\1\173\1\14\1\174" - + "\23\14\27\0\2\14\7\0\7\14\3\0\6\14\1\175" - + "\1\14\1\176\4\14\1\177\5\14\1\200\22\14\27\0" - + "\2\14\7\0\7\14\3\0\6\14\1\201\1\14\1\202" - + "\35\14\27\0\2\14\7\0\7\14\3\0\2\14\1\203" - + "\4\14\1\204\3\14\1\205\6\14\1\206\23\14\27\0" - + "\2\14\7\0\7\14\3\0\3\14\1\207\3\14\1\210" - + "\2\14\1\211\1\212\32\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\213\4\14\1\214\36\14\27\0\2\14" - + "\7\0\7\14\3\0\12\14\1\215\5\14\1\216\25\14" - + "\27\0\2\14\7\0\7\14\3\0\1\14\1\217\1\14" - + "\1\220\7\14\1\221\2\14\1\222\27\14\27\0\2\14" - + "\7\0\7\14\3\0\1\223\45\14\27\0\2\14\7\0" - + "\7\14\3\0\3\14\1\224\3\14\1\225\36\14\27\0" - + "\2\14\7\0\7\14\3\0\2\14\1\226\4\14\1\227" - + "\36\14\27\0\2\14\7\0\7\14\3\0\11\14\1\230" - + "\34\14\27\0\2\14\7\0\7\14\3\0\3\14\1\231" - + "\7\14\1\232\32\14\27\0\2\14\7\0\7\14\3\0" - + "\10\14\1\233\35\14\36\0\1\234\117\0\1\235\74\0" - + "\1\236\22\0\1\237\75\0\1\240\21\0\1\241\76\0" - + "\1\242\20\0\1\243\117\0\1\244\102\0\1\76\2\0" - + "\13\76\1\0\10\76\1\0\70\76\2\0\1\100\115\0" - + "\2\245\1\0\13\245\1\246\1\247\3\245\1\247\1\250" - + "\2\245\1\251\1\252\1\253\1\254\6\245\1\255\1\256" - + "\3\245\1\257\51\245\1\103\2\0\24\103\2\0\67\103" - + "\2\0\1\105\120\0\1\106\10\0\1\106\111\0\2\260" - + "\1\261\3\0\1\262\1\263\1\0\7\260\3\0\46\260" - + "\24\0\1\106\2\0\1\260\5\0\1\111\4\0\2\260" - + "\2\0\1\260\3\0\46\260\25\0\1\264\1\0\1\265" - + "\12\0\2\265\2\0\1\265\3\0\46\265\21\0\1\114" - + "\1\266\1\267\115\114\5\270\1\271\112\270\11\0\1\272" - + "\114\0\1\273\12\0\2\273\2\0\1\273\3\0\46\273" - + "\40\0\2\123\2\0\2\123\1\137\5\0\1\137\72\0" - + "\1\274\1\124\1\275\2\0\1\276\1\277\2\0\2\124" - + "\2\274\2\124\1\274\3\0\46\274\36\0\1\300\115\0" - + "\1\301\1\0\1\302\117\0\1\303\113\0\1\123\5\0" - + "\1\132\1\133\2\0\1\135\1\136\1\137\5\0\1\137" - + "\75\0\1\123\5\0\2\133\2\0\2\133\1\137\5\0" - + "\1\137\103\0\1\304\1\305\1\0\4\305\3\0\1\305" - + "\1\0\2\305\1\0\1\305\6\0\2\305\12\0\1\305" - + "\1\0\1\305\5\0\2\305\36\0\1\123\5\0\1\136" - + "\1\133\2\0\2\136\1\137\5\0\1\137\75\0\1\123" - + "\5\0\1\306\1\133\2\0\2\306\1\137\5\0\1\137" - + "\103\0\2\307\2\0\2\307\1\0\1\310\65\0\1\310" - + "\11\0\2\14\7\0\7\14\3\0\2\14\1\311\43\14" - + "\27\0\2\14\7\0\7\14\3\0\11\14\1\312\11\14" - + "\1\313\22\14\27\0\2\14\7\0\7\14\3\0\10\14" - + "\1\314\35\14\27\0\2\14\7\0\7\14\3\0\5\14" - + "\1\315\40\14\27\0\2\14\7\0\7\14\3\0\6\14" - + "\1\316\37\14\27\0\2\14\7\0\7\14\3\0\3\14" - + "\1\317\42\14\27\0\2\14\7\0\7\14\3\0\11\14" - + "\1\320\34\14\27\0\2\14\7\0\7\14\3\0\6\14" - + "\1\321\2\14\1\322\4\14\1\323\27\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\324\35\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\325\42\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\326\44\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\327\34\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\330\3\14\1\331\36\14" - + "\27\0\2\14\7\0\7\14\3\0\1\332\20\14\1\333" - + "\24\14\27\0\2\14\7\0\7\14\3\0\12\14\1\334" - + "\33\14\27\0\2\14\7\0\7\14\3\0\14\14\1\335" - + "\31\14\27\0\2\14\7\0\7\14\3\0\2\14\1\336" - + "\43\14\27\0\2\14\7\0\7\14\3\0\17\14\1\337" - + "\5\14\1\340\20\14\27\0\2\14\7\0\7\14\3\0" - + "\23\14\1\341\22\14\27\0\2\14\7\0\7\14\3\0" - + "\16\14\1\342\27\14\27\0\2\14\7\0\7\14\3\0" - + "\3\14\1\343\7\14\1\344\6\14\1\345\23\14\27\0" - + "\2\14\7\0\7\14\3\0\16\14\1\346\27\14\27\0" - + "\2\14\7\0\7\14\3\0\1\14\1\347\44\14\27\0" - + "\2\14\7\0\7\14\3\0\26\14\1\350\17\14\27\0" - + "\2\14\7\0\7\14\3\0\1\14\1\351\10\14\1\352" - + "\33\14\27\0\2\14\7\0\7\14\3\0\21\14\1\353" - + "\24\14\27\0\2\14\7\0\7\14\3\0\6\14\1\354" - + "\2\14\1\355\34\14\27\0\2\14\7\0\7\14\3\0" - + "\32\14\1\356\13\14\27\0\2\14\7\0\7\14\3\0" - + "\21\14\1\357\24\14\27\0\2\14\7\0\7\14\3\0" - + "\2\14\1\360\43\14\27\0\2\14\7\0\7\14\3\0" - + "\14\14\1\361\1\14\1\362\27\14\27\0\2\14\7\0" - + "\7\14\3\0\15\14\1\363\1\364\27\14\27\0\2\14" - + "\7\0\7\14\3\0\21\14\1\365\24\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\366\35\14\27\0\2\14" - + "\7\0\7\14\3\0\16\14\1\367\27\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\370\44\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\371\35\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\372\35\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\373\35\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\374\42\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\375\34\14\27\0\2\14" - + "\7\0\7\14\3\0\12\14\1\376\33\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\377\4\14\1\u0100\2\14" - + "\1\u0101\33\14\27\0\2\14\7\0\7\14\3\0\5\14" - + "\1\u0102\40\14\27\0\2\14\7\0\7\14\3\0\1\u0103" - + "\45\14\27\0\2\14\7\0\7\14\3\0\3\14\1\u0104" - + "\42\14\27\0\2\14\7\0\7\14\3\0\5\14\1\u0105" - + "\1\u0106\1\u0107\6\14\1\u0108\27\14\27\0\2\14\7\0" - + "\7\14\3\0\1\14\1\u0109\44\14\27\0\2\14\7\0" - + "\7\14\3\0\12\14\1\u010a\33\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u010b\34\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u010c\34\14\27\0\2\14\7\0" - + "\7\14\3\0\1\14\1\u010d\44\14\27\0\2\14\7\0" - + "\7\14\3\0\44\14\1\u010e\1\14\27\0\2\14\7\0" - + "\7\14\3\0\23\14\1\u010f\22\14\27\0\2\14\7\0" - + "\7\14\3\0\15\14\1\u0110\30\14\36\0\1\u0111\121\0" - + "\1\250\3\0\2\250\112\0\1\u0112\3\0\2\u0112\101\0" - + "\1\u0113\12\0\2\u0113\2\0\1\u0113\3\0\46\u0113\35\0" - + "\1\262\1\263\116\0\1\263\1\0\1\u0114\107\0\1\u0115" - + "\12\0\2\u0115\2\0\1\u0115\3\0\46\u0115\27\0\1\u0116" - + "\1\265\1\u0117\2\0\1\112\1\u0118\2\0\2\265\2\u0116" - + "\2\265\1\u0116\3\0\46\u0116\23\0\1\267\115\0\5\270" - + "\1\u0119\112\270\4\0\1\267\1\271\120\0\2\273\3\0" - + "\1\u011a\3\0\7\273\3\0\46\273\27\0\2\274\1\u011b" - + "\2\0\1\276\1\u011c\1\u011d\1\0\7\274\3\0\46\274" - + "\27\0\1\u011e\12\0\2\u011e\2\0\1\u011e\3\0\46\u011e" - + "\27\0\1\u011f\5\0\1\277\4\0\2\u011f\2\0\1\u011f" - + "\3\0\46\u011f\36\0\1\u0120\121\0\2\u0121\1\0\4\u0121" - + "\3\0\1\u0121\1\0\2\u0121\1\0\1\u0121\6\0\2\u0121" - + "\12\0\1\u0121\1\0\1\u0121\5\0\2\u0121\36\0\1\123" - + "\5\0\1\u0122\1\133\2\0\2\u0122\1\137\5\0\1\137" - + "\103\0\2\307\2\0\2\307\101\0\2\14\7\0\7\14" - + "\3\0\3\14\1\u0123\42\14\27\0\2\14\7\0\7\14" - + "\3\0\13\14\1\u0124\32\14\27\0\2\14\7\0\7\14" - + "\3\0\7\14\1\u0125\36\14\27\0\2\14\7\0\7\14" - + "\3\0\14\14\1\u0126\31\14\27\0\2\14\7\0\7\14" - + "\3\0\20\14\1\u0127\25\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u0128\43\14\27\0\2\14\7\0\7\14" - + "\3\0\16\14\1\u0129\27\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u012a\43\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u012b\43\14\27\0\2\14\7\0\7\14" - + "\3\0\5\14\1\u012c\40\14\27\0\2\14\7\0\7\14" - + "\3\0\16\14\1\u012d\27\14\27\0\2\14\7\0\7\14" - + "\3\0\6\14\1\u012e\2\14\1\u012f\34\14\27\0\2\14" - + "\7\0\7\14\3\0\6\14\1\u0130\37\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u0131\7\14\1\u0132\34\14" - + "\27\0\2\14\7\0\7\14\3\0\21\14\1\u0133\24\14" - + "\27\0\2\14\7\0\7\14\3\0\6\14\1\u0134\37\14" - + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0135\43\14" - + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0136\34\14" - + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u0137\44\14" - + "\27\0\2\14\7\0\7\14\3\0\16\14\1\u0138\27\14" - + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0139\34\14" - + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u013a\43\14" - + "\27\0\2\14\7\0\7\14\3\0\16\14\1\u013b\27\14" - + "\27\0\2\14\7\0\7\14\3\0\5\14\1\u013c\40\14" - + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u013d\43\14" - + "\27\0\2\14\7\0\7\14\3\0\16\14\1\u013e\27\14" - + "\27\0\2\14\7\0\7\14\3\0\26\14\1\u013f\17\14" - + "\27\0\2\14\7\0\7\14\3\0\26\14\1\u0140\17\14" - + "\27\0\2\14\7\0\7\14\3\0\7\14\1\u0141\36\14" - + "\27\0\2\14\7\0\7\14\3\0\6\14\1\u0142\37\14" - + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0143\43\14" - + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0144\34\14" - + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0145\43\14" - + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u0146\44\14" - + "\27\0\2\14\7\0\7\14\3\0\7\14\1\u0147\6\14" - + "\1\u0148\27\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u0149\43\14\27\0\2\14\7\0\7\14\3\0\7\14" - + "\1\u014a\36\14\27\0\2\14\7\0\7\14\3\0\3\14" - + "\1\u014b\42\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u014c\43\14\27\0\2\14\7\0\7\14\3\0\16\14" - + "\1\u014d\27\14\27\0\2\14\7\0\7\14\3\0\3\14" - + "\1\u014e\42\14\27\0\2\14\7\0\7\14\3\0\6\14" - + "\1\u014f\37\14\27\0\2\14\7\0\7\14\3\0\3\14" - + "\1\u0150\42\14\27\0\2\14\7\0\7\14\3\0\5\14" - + "\1\u0151\40\14\27\0\2\14\7\0\7\14\3\0\26\14" - + "\1\u0152\17\14\27\0\2\14\7\0\7\14\3\0\14\14" - + "\1\u0153\31\14\27\0\2\14\7\0\7\14\3\0\20\14" - + "\1\u0154\25\14\27\0\2\14\7\0\7\14\3\0\16\14" - + "\1\u0155\27\14\27\0\2\14\7\0\7\14\3\0\24\14" - + "\1\u0156\21\14\27\0\2\14\7\0\7\14\3\0\11\14" - + "\1\u0157\34\14\27\0\2\14\7\0\7\14\3\0\10\14" - + "\1\u0158\13\14\1\u0159\21\14\27\0\2\14\7\0\7\14" - + "\3\0\4\14\1\u015a\41\14\27\0\2\14\7\0\7\14" - + "\3\0\16\14\1\u015b\27\14\27\0\2\14\7\0\7\14" - + "\3\0\22\14\1\u015c\23\14\27\0\2\14\7\0\7\14" - + "\3\0\20\14\1\u015d\25\14\27\0\2\14\7\0\7\14" - + "\3\0\13\14\1\u015e\32\14\27\0\2\14\7\0\7\14" - + "\3\0\1\14\1\u015f\44\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u0160\43\14\27\0\2\14\7\0\7\14" - + "\3\0\14\14\1\u0161\31\14\27\0\2\14\7\0\7\14" - + "\3\0\27\14\1\u0162\3\14\1\u0163\6\14\1\u0164\3\14" - + "\27\0\2\14\7\0\7\14\3\0\7\14\1\u0165\36\14" - + "\27\0\2\14\7\0\7\14\3\0\12\14\1\u0166\33\14" - + "\27\0\2\14\7\0\7\14\3\0\1\u0167\45\14\27\0" - + "\2\14\7\0\7\14\3\0\12\14\1\u0168\33\14\27\0" - + "\2\u0113\4\0\1\262\1\263\1\0\7\u0113\3\0\46\u0113" - + "\21\0\1\u0114\2\0\13\u0114\1\u0169\101\u0114\6\0\2\u0115" - + "\1\u016a\2\0\1\u016b\3\0\7\u0115\3\0\46\u0115\27\0" - + "\2\u0116\1\u016c\2\0\1\112\1\u016d\1\u016e\1\0\7\u0116" - + "\3\0\46\u0116\27\0\1\u016f\12\0\2\u016f\2\0\1\u016f" - + "\3\0\46\u016f\27\0\1\u0170\5\0\1\u0118\4\0\2\u0170" - + "\2\0\1\u0170\3\0\46\u0170\21\0\4\270\1\267\1\u0119" - + "\112\270\6\0\1\u0171\12\0\2\u0171\2\0\1\u0171\3\0" - + "\46\u0171\27\0\1\u011f\5\0\1\u011c\1\u011d\3\0\2\u011f" - + "\2\0\1\u011f\3\0\46\u011f\35\0\1\u011d\1\0\1\u0172" - + "\107\0\1\u0173\1\u011e\3\0\1\276\1\277\2\0\2\u011e" - + "\2\u0173\2\u011e\1\u0173\3\0\46\u0173\27\0\2\u011f\1\u0174" - + "\3\0\1\u0175\1\u011d\1\0\7\u011f\3\0\46\u011f\40\0" - + "\2\u0176\1\0\4\u0176\3\0\1\u0176\1\0\2\u0176\1\0" - + "\1\u0176\6\0\2\u0176\12\0\1\u0176\1\0\1\u0176\5\0" - + "\2\u0176\36\0\1\123\5\0\1\u0177\1\133\2\0\2\u0177" - + "\1\137\5\0\1\137\72\0\2\14\7\0\7\14\3\0" - + "\4\14\1\u0178\41\14\27\0\2\14\7\0\7\14\3\0" - + "\1\14\1\u0179\44\14\27\0\2\14\7\0\7\14\3\0" - + "\24\14\1\u017a\21\14\27\0\2\14\7\0\7\14\3\0" - + "\7\14\1\u017b\36\14\27\0\2\14\7\0\7\14\3\0" - + "\10\14\1\u017c\35\14\27\0\2\14\7\0\7\14\3\0" - + "\20\14\1\u017d\25\14\27\0\2\14\7\0\7\14\3\0" - + "\11\14\1\u017e\34\14\27\0\2\14\7\0\7\14\3\0" - + "\12\14\1\u017f\33\14\27\0\2\14\7\0\7\14\3\0" - + "\6\14\1\u0180\37\14\27\0\2\14\7\0\7\14\3\0" - + "\11\14\1\u0181\34\14\27\0\2\14\7\0\7\14\3\0" - + "\12\14\1\u0182\33\14\27\0\2\14\7\0\7\14\3\0" - + "\30\14\1\u0183\10\14\1\u0184\4\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u0185\34\14\27\0\2\14\7\0" - + "\7\14\3\0\1\14\1\u0186\44\14\27\0\2\14\7\0" - + "\7\14\3\0\5\14\1\u0187\40\14\27\0\2\14\7\0" - + "\7\14\3\0\1\14\1\u0188\44\14\27\0\2\14\7\0" - + "\7\14\3\0\12\14\1\u0189\33\14\27\0\2\14\7\0" - + "\7\14\3\0\32\14\1\u018a\13\14\27\0\2\14\7\0" - + "\7\14\3\0\6\14\1\u018b\37\14\27\0\2\14\7\0" - + "\7\14\3\0\2\14\1\u018c\43\14\27\0\2\14\7\0" - + "\7\14\3\0\33\14\1\u018d\12\14\27\0\2\14\7\0" - + "\7\14\3\0\2\14\1\u018e\43\14\27\0\2\14\7\0" - + "\7\14\3\0\16\14\1\u018f\27\14\27\0\2\14\7\0" - + "\7\14\3\0\17\14\1\u0190\26\14\27\0\2\14\7\0" - + "\7\14\3\0\7\14\1\u0191\36\14\27\0\2\14\7\0" - + "\7\14\3\0\3\14\1\u0192\42\14\27\0\2\14\7\0" - + "\7\14\3\0\1\14\1\u0193\44\14\27\0\2\14\7\0" - + "\7\14\3\0\3\14\1\u0194\42\14\27\0\2\14\7\0" - + "\7\14\3\0\1\14\1\u0195\44\14\27\0\2\14\7\0" - + "\7\14\3\0\2\14\1\u0196\43\14\27\0\2\14\7\0" - + "\7\14\3\0\15\14\1\u0197\30\14\27\0\2\14\7\0" - + "\7\14\3\0\3\14\1\u0198\42\14\27\0\2\14\7\0" - + "\7\14\3\0\13\14\1\u0199\32\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u019a\34\14\27\0\2\14\7\0" - + "\7\14\3\0\12\14\1\u019b\33\14\27\0\2\14\7\0" - + "\7\14\3\0\23\14\1\u019c\22\14\27\0\2\14\7\0" - + "\7\14\3\0\2\14\1\u019d\43\14\27\0\2\14\7\0" - + "\7\14\3\0\16\14\1\u019e\27\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u019f\34\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u01a0\34\14\27\0\2\14\7\0" - + "\7\14\3\0\37\14\1\u01a1\2\14\1\u01a2\3\14\27\0" - + "\2\14\7\0\7\14\3\0\2\14\1\u01a3\43\14\27\0" - + "\2\14\7\0\7\14\3\0\32\14\1\u01a4\13\14\27\0" - + "\2\14\7\0\7\14\3\0\2\14\1\u01a5\43\14\27\0" - + "\2\14\7\0\7\14\3\0\11\14\1\u01a6\34\14\27\0" - + "\2\14\7\0\7\14\3\0\3\14\1\u01a7\42\14\27\0" - + "\2\14\7\0\7\14\3\0\3\14\1\u01a8\42\14\27\0" - + "\2\14\7\0\7\14\3\0\12\14\1\u01a9\33\14\27\0" - + "\2\14\7\0\7\14\3\0\1\14\1\u01aa\44\14\27\0" - + "\2\14\7\0\7\14\3\0\1\u01ab\45\14\27\0\2\14" - + "\7\0\7\14\3\0\14\14\1\u01ac\31\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\u01ad\35\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u01ae\44\14\27\0\2\14" - + "\7\0\7\14\3\0\12\14\1\u01af\33\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u01b0\43\14\27\0\2\14" - + "\7\0\7\14\3\0\30\14\1\u01b1\15\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\u01b2\35\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u01b3\43\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\u01b4\35\14\21\0\1\u0114" - + "\2\0\11\u0114\1\u0169\1\u0114\1\u0169\101\u0114\6\0\1\u01b5" - + "\12\0\2\u01b5\2\0\1\u01b5\3\0\46\u01b5\27\0\1\u01b6" - + "\12\0\2\u01b6\2\0\1\u01b6\3\0\46\u01b6\27\0\1\u0170" - + "\5\0\1\u016d\1\u016e\3\0\2\u0170\2\0\1\u0170\3\0" - + "\46\u0170\35\0\1\u016e\1\0\1\u01b7\107\0\1\u01b8\1\u016f" - + "\3\0\1\112\1\u0118\2\0\2\u016f\2\u01b8\2\u016f\1\u01b8" - + "\3\0\46\u01b8\27\0\2\u0170\1\u01b9\3\0\1\u01ba\1\u016e" - + "\1\0\7\u0170\3\0\46\u0170\27\0\1\u0173\1\u0171\3\0" - + "\1\276\1\u011c\1\u011d\1\0\2\u0171\2\u0173\2\u0171\1\u0173" - + "\3\0\46\u0173\21\0\1\u0172\2\0\13\u0172\1\u01bb\101\u0172" - + "\6\0\2\u0173\1\u0174\2\0\1\276\1\u011c\1\u011d\1\0" - + "\7\u0173\3\0\46\u0173\27\0\1\u01bc\12\0\2\u01bc\2\0" - + "\1\u01bc\3\0\46\u01bc\35\0\1\u0175\1\u011d\121\0\2\u01bd" + + "\32\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\1\14\1\167\1\170\1\171\3\14\1\172\10\14\1\173" + + "\1\14\1\174\23\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\6\14\1\175\1\14\1\176\4\14\1\177" + + "\5\14\1\200\22\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\6\14\1\201\1\14\1\202\35\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\203" + + "\4\14\1\204\3\14\1\205\6\14\1\206\23\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\3\14\1\207" + + "\3\14\1\210\2\14\1\211\1\212\32\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\2\14\1\213\4\14" + + "\1\214\36\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\12\14\1\215\5\14\1\216\25\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\1\14\1\217\1\14" + + "\1\220\7\14\1\221\2\14\1\222\27\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\1\223\45\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\3\14\1\224" + + "\3\14\1\225\36\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\2\14\1\226\4\14\1\227\36\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\230" + + "\34\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\231\7\14\1\232\32\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\10\14\1\233\35\14\23\0" + + "\1\14\15\0\1\234\122\0\1\235\74\0\1\236\25\0" + + "\1\237\75\0\1\240\24\0\1\241\76\0\1\242\23\0" + + "\1\243\122\0\1\244\105\0\1\76\2\0\13\76\1\0" + + "\10\76\1\0\73\76\2\0\1\100\120\0\1\245\2\0" + + "\13\245\1\246\1\247\3\245\1\247\1\250\2\245\1\251" + + "\1\252\1\253\1\254\6\245\1\255\1\256\3\245\1\257" + + "\51\245\3\0\1\103\2\0\24\103\2\0\72\103\2\0" + + "\1\105\123\0\1\106\10\0\1\106\104\0\1\106\7\0" + + "\2\260\1\261\3\0\1\262\1\263\1\0\7\260\3\0" + + "\46\260\23\0\1\260\3\0\1\106\2\0\1\260\5\0" + + "\1\111\4\0\2\260\2\0\1\260\3\0\46\260\22\0" + + "\1\106\5\0\1\264\1\0\1\265\12\0\2\265\2\0" + + "\1\265\3\0\46\265\24\0\1\114\1\266\1\267\120\114" + + "\5\270\1\271\115\270\11\0\1\272\117\0\1\273\12\0" + + "\2\273\2\0\1\273\3\0\46\273\43\0\2\123\2\0" + + "\2\123\1\137\5\0\1\137\75\0\1\274\1\124\1\275" + + "\2\0\1\276\1\277\2\0\2\124\2\274\2\124\1\274" + + "\3\0\46\274\23\0\1\124\15\0\1\300\120\0\1\301" + + "\1\0\1\302\122\0\1\303\116\0\1\123\5\0\1\132" + + "\1\133\2\0\1\135\1\136\1\137\5\0\1\137\100\0" + + "\1\123\5\0\2\133\2\0\2\133\1\137\5\0\1\137" + + "\106\0\1\304\1\305\1\0\4\305\3\0\1\305\1\0" + + "\2\305\1\0\1\305\6\0\2\305\12\0\1\305\1\0" + + "\1\305\5\0\2\305\41\0\1\123\5\0\1\136\1\133" + + "\2\0\2\136\1\137\5\0\1\137\100\0\1\123\5\0" + + "\1\306\1\133\2\0\2\306\1\137\5\0\1\137\106\0" + + "\2\307\2\0\2\307\1\0\1\310\65\0\1\310\14\0" + + "\2\14\7\0\7\14\3\0\2\14\1\311\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\312" + + "\11\14\1\313\22\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\10\14\1\314\35\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\5\14\1\315\40\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\6\14\1\316" + + "\37\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\317\42\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\11\14\1\320\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\6\14\1\321\2\14\1\322" + + "\4\14\1\323\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\10\14\1\324\35\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\325\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\1\14\1\326" + + "\44\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\11\14\1\327\34\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\3\14\1\330\3\14\1\331\36\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\1\332\20\14" + + "\1\333\24\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\12\14\1\334\33\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\14\14\1\335\31\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\2\14\1\336\43\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\17\14" + + "\1\337\5\14\1\340\20\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\23\14\1\341\22\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\16\14\1\342\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\3\14" + + "\1\343\7\14\1\344\6\14\1\345\23\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\16\14\1\346\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\347\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\26\14\1\350\17\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\1\14\1\351\10\14\1\352\33\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\21\14" + + "\1\353\24\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\6\14\1\354\2\14\1\355\34\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\32\14\1\356\13\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\21\14" + + "\1\357\24\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\360\43\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\14\14\1\361\1\14\1\362\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\15\14" + + "\1\363\1\364\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\21\14\1\365\24\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\10\14\1\366\35\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\16\14\1\367" + + "\27\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\1\14\1\370\44\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\10\14\1\371\35\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\10\14\1\372\35\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\10\14\1\373" + + "\35\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\374\42\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\11\14\1\375\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\12\14\1\376\33\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\377" + + "\4\14\1\u0100\2\14\1\u0101\33\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\5\14\1\u0102\40\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\1\u0103\45\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\3\14" + + "\1\u0104\42\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\5\14\1\u0105\1\u0106\1\u0107\6\14\1\u0108\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\u0109\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\12\14\1\u010a\33\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\11\14\1\u010b\34\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\11\14\1\u010c\34\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\u010d\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\44\14\1\u010e\1\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\23\14\1\u010f\22\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\15\14\1\u0110\30\14" + + "\23\0\1\14\15\0\1\u0111\124\0\1\250\3\0\2\250" + + "\115\0\1\u0112\3\0\2\u0112\104\0\1\u0113\12\0\2\u0113" + + "\2\0\1\u0113\3\0\46\u0113\40\0\1\262\1\263\121\0" + + "\1\263\1\0\1\u0114\112\0\1\u0115\12\0\2\u0115\2\0" + + "\1\u0115\3\0\46\u0115\32\0\1\u0116\1\265\1\u0117\2\0" + + "\1\112\1\u0118\2\0\2\265\2\u0116\2\265\1\u0116\3\0" + + "\46\u0116\23\0\1\265\2\0\1\267\120\0\5\270\1\u0119" + + "\115\270\4\0\1\267\1\271\123\0\2\273\3\0\1\u011a" + + "\3\0\7\273\3\0\46\273\23\0\1\273\6\0\2\274" + + "\1\u011b\2\0\1\276\1\u011c\1\u011d\1\0\7\274\3\0" + + "\46\274\23\0\1\274\6\0\1\u011e\12\0\2\u011e\2\0" + + "\1\u011e\3\0\46\u011e\32\0\1\u011f\5\0\1\277\4\0" + + "\2\u011f\2\0\1\u011f\3\0\46\u011f\41\0\1\u0120\124\0" + + "\2\u0121\1\0\4\u0121\3\0\1\u0121\1\0\2\u0121\1\0" + + "\1\u0121\6\0\2\u0121\12\0\1\u0121\1\0\1\u0121\5\0" + + "\2\u0121\41\0\1\123\5\0\1\u0122\1\133\2\0\2\u0122" + + "\1\137\5\0\1\137\106\0\2\307\2\0\2\307\104\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u0123\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\13\14\1\u0124" + + "\32\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\7\14\1\u0125\36\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\14\14\1\u0126\31\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\20\14\1\u0127\25\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u0128" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\16\14\1\u0129\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\2\14\1\u012a\43\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\2\14\1\u012b\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\5\14\1\u012c" + + "\40\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\16\14\1\u012d\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\6\14\1\u012e\2\14\1\u012f\34\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\6\14\1\u0130" + + "\37\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\1\14\1\u0131\7\14\1\u0132\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\21\14\1\u0133\24\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\6\14\1\u0134" + + "\37\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0135\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\11\14\1\u0136\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\1\14\1\u0137\44\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\16\14\1\u0138" + + "\27\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\11\14\1\u0139\34\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\2\14\1\u013a\43\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\16\14\1\u013b\27\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\5\14\1\u013c" + + "\40\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u013d\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\16\14\1\u013e\27\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\26\14\1\u013f\17\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\26\14\1\u0140" + + "\17\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\7\14\1\u0141\36\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\6\14\1\u0142\37\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\2\14\1\u0143\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\u0144" + + "\34\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0145\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\1\14\1\u0146\44\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\7\14\1\u0147\6\14\1\u0148" + + "\27\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0149\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\7\14\1\u014a\36\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u014b\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u014c" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\16\14\1\u014d\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\3\14\1\u014e\42\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\6\14\1\u014f\37\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\3\14\1\u0150" + + "\42\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\5\14\1\u0151\40\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\26\14\1\u0152\17\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\14\14\1\u0153\31\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\20\14\1\u0154" + + "\25\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\16\14\1\u0155\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\24\14\1\u0156\21\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\11\14\1\u0157\34\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\10\14\1\u0158" + + "\13\14\1\u0159\21\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\4\14\1\u015a\41\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\16\14\1\u015b\27\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\22\14\1\u015c" + + "\23\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\20\14\1\u015d\25\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\13\14\1\u015e\32\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\1\14\1\u015f\44\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u0160" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\14\14\1\u0161\31\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\27\14\1\u0162\3\14\1\u0163\6\14\1\u0164" + + "\3\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\7\14\1\u0165\36\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\12\14\1\u0166\33\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\1\u0167\45\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\12\14\1\u0168\33\14" + + "\23\0\1\14\6\0\2\u0113\4\0\1\262\1\263\1\0" + + "\7\u0113\3\0\46\u0113\23\0\1\u0113\1\u0114\2\0\13\u0114" + + "\1\u0169\104\u0114\6\0\2\u0115\1\u016a\2\0\1\u016b\3\0" + + "\7\u0115\3\0\46\u0115\23\0\1\u0115\6\0\2\u0116\1\u016c" + + "\2\0\1\112\1\u016d\1\u016e\1\0\7\u0116\3\0\46\u0116" + + "\23\0\1\u0116\6\0\1\u016f\12\0\2\u016f\2\0\1\u016f" + + "\3\0\46\u016f\32\0\1\u0170\5\0\1\u0118\4\0\2\u0170" + + "\2\0\1\u0170\3\0\46\u0170\24\0\4\270\1\267\1\u0119" + + "\115\270\6\0\1\u0171\12\0\2\u0171\2\0\1\u0171\3\0" + + "\46\u0171\32\0\1\u011f\5\0\1\u011c\1\u011d\3\0\2\u011f" + + "\2\0\1\u011f\3\0\46\u011f\40\0\1\u011d\1\0\1\u0172" + + "\112\0\1\u0173\1\u011e\3\0\1\276\1\277\2\0\2\u011e" + + "\2\u0173\2\u011e\1\u0173\3\0\46\u0173\23\0\1\u011e\6\0" + + "\2\u011f\1\u0174\3\0\1\u0175\1\u011d\1\0\7\u011f\3\0" + + "\46\u011f\23\0\1\u011f\17\0\2\u0176\1\0\4\u0176\3\0" + + "\1\u0176\1\0\2\u0176\1\0\1\u0176\6\0\2\u0176\12\0" + + "\1\u0176\1\0\1\u0176\5\0\2\u0176\41\0\1\123\5\0" + + "\1\u0177\1\133\2\0\2\u0177\1\137\5\0\1\137\75\0" + + "\2\14\7\0\7\14\3\0\4\14\1\u0178\41\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\1\14\1\u0179" + + "\44\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\24\14\1\u017a\21\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\7\14\1\u017b\36\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\10\14\1\u017c\35\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\20\14\1\u017d" + + "\25\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\11\14\1\u017e\34\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\12\14\1\u017f\33\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\6\14\1\u0180\37\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\u0181" + + "\34\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\12\14\1\u0182\33\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\30\14\1\u0183\10\14\1\u0184\4\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\u0185" + + "\34\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\1\14\1\u0186\44\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\5\14\1\u0187\40\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\1\14\1\u0188\44\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\12\14\1\u0189" + + "\33\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\32\14\1\u018a\13\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\6\14\1\u018b\37\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\2\14\1\u018c\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\33\14\1\u018d" + + "\12\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u018e\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\16\14\1\u018f\27\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\17\14\1\u0190\26\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\7\14\1\u0191" + + "\36\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\u0192\42\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\1\14\1\u0193\44\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u0194\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\1\14\1\u0195" + + "\44\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0196\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\15\14\1\u0197\30\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u0198\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\13\14\1\u0199" + + "\32\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\11\14\1\u019a\34\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\12\14\1\u019b\33\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\23\14\1\u019c\22\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u019d" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\16\14\1\u019e\27\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\11\14\1\u019f\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\11\14\1\u01a0\34\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\37\14\1\u01a1" + + "\2\14\1\u01a2\3\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\2\14\1\u01a3\43\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\32\14\1\u01a4\13\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u01a5" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\11\14\1\u01a6\34\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\3\14\1\u01a7\42\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u01a8\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\12\14\1\u01a9" + + "\33\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\1\14\1\u01aa\44\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\1\u01ab\45\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\14\14\1\u01ac\31\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\10\14\1\u01ad\35\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\u01ae\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\12\14\1\u01af\33\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\2\14\1\u01b0\43\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\30\14\1\u01b1\15\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\10\14" + + "\1\u01b2\35\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\u01b3\43\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\10\14\1\u01b4\35\14\23\0\1\14" + + "\1\u0114\2\0\11\u0114\1\u0169\1\u0114\1\u0169\104\u0114\6\0" + + "\1\u01b5\12\0\2\u01b5\2\0\1\u01b5\3\0\46\u01b5\32\0" + + "\1\u01b6\12\0\2\u01b6\2\0\1\u01b6\3\0\46\u01b6\32\0" + + "\1\u0170\5\0\1\u016d\1\u016e\3\0\2\u0170\2\0\1\u0170" + + "\3\0\46\u0170\40\0\1\u016e\1\0\1\u01b7\112\0\1\u01b8" + + "\1\u016f\3\0\1\112\1\u0118\2\0\2\u016f\2\u01b8\2\u016f" + + "\1\u01b8\3\0\46\u01b8\23\0\1\u016f\6\0\2\u0170\1\u01b9" + + "\3\0\1\u01ba\1\u016e\1\0\7\u0170\3\0\46\u0170\23\0" + + "\1\u0170\6\0\1\u0173\1\u0171\3\0\1\276\1\u011c\1\u011d" + + "\1\0\2\u0171\2\u0173\2\u0171\1\u0173\3\0\46\u0173\23\0" + + "\1\u0171\1\u0172\2\0\13\u0172\1\u01bb\104\u0172\6\0\2\u0173" + + "\1\u0174\2\0\1\276\1\u011c\1\u011d\1\0\7\u0173\3\0" + + "\46\u0173\23\0\1\u0173\6\0\1\u01bc\12\0\2\u01bc\2\0" + + "\1\u01bc\3\0\46\u01bc\40\0\1\u0175\1\u011d\124\0\2\u01bd" + "\1\0\4\u01bd\3\0\1\u01bd\1\0\2\u01bd\1\0\1\u01bd" + "\6\0\2\u01bd\12\0\1\u01bd\1\0\1\u01bd\5\0\2\u01bd" - + "\36\0\1\123\5\0\1\u01be\1\133\2\0\2\u01be\1\137" - + "\5\0\1\137\72\0\2\14\7\0\7\14\3\0\10\14" - + "\1\u01bf\35\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u01c0\43\14\27\0\2\14\7\0\7\14\3\0\23\14" - + "\1\u01c1\22\14\27\0\2\14\7\0\7\14\3\0\14\14" - + "\1\u01c2\31\14\27\0\2\14\7\0\7\14\3\0\10\14" - + "\1\u01c3\35\14\27\0\2\14\7\0\7\14\3\0\41\14" - + "\1\u01c4\4\14\27\0\2\14\7\0\7\14\3\0\5\14" - + "\1\u01c5\40\14\27\0\2\14\7\0\7\14\3\0\16\14" - + "\1\u01c6\27\14\27\0\2\14\7\0\7\14\3\0\1\14" - + "\1\u01c7\44\14\27\0\2\14\7\0\7\14\3\0\1\14" - + "\1\u01c8\44\14\27\0\2\14\7\0\7\14\3\0\20\14" - + "\1\u01c9\25\14\27\0\2\14\7\0\7\14\3\0\12\14" - + "\1\u01ca\33\14\27\0\2\14\7\0\7\14\3\0\10\14" - + "\1\u01cb\35\14\27\0\2\14\7\0\7\14\3\0\1\14" - + "\1\u01cc\44\14\27\0\2\14\7\0\7\14\3\0\21\14" - + "\1\u01cd\24\14\27\0\2\14\7\0\7\14\3\0\3\14" - + "\1\u01ce\42\14\27\0\2\14\7\0\7\14\3\0\11\14" - + "\1\u01cf\34\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u01d0\43\14\27\0\2\14\7\0\7\14\3\0\15\14" - + "\1\u01d1\30\14\27\0\2\14\7\0\7\14\3\0\10\14" - + "\1\u01d2\35\14\27\0\2\14\7\0\7\14\3\0\10\14" - + "\1\u01d3\4\14\1\u01d4\30\14\27\0\2\14\7\0\7\14" - + "\3\0\23\14\1\u01d5\22\14\27\0\2\14\7\0\7\14" - + "\3\0\11\14\1\u01d6\34\14\27\0\2\14\7\0\7\14" - + "\3\0\23\14\1\u01d7\22\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u01d8\33\14\27\0\2\14\7\0\7\14" - + "\3\0\14\14\1\u01d9\31\14\27\0\2\14\7\0\7\14" - + "\3\0\16\14\1\u01da\27\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u01db\43\14\27\0\2\14\7\0\7\14" - + "\3\0\5\14\1\u01dc\40\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u01dd\33\14\27\0\2\14\7\0\7\14" - + "\3\0\16\14\1\u01de\27\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u01df\33\14\27\0\2\14\7\0\7\14" - + "\3\0\20\14\1\u01e0\25\14\27\0\2\14\7\0\7\14" - + "\3\0\7\14\1\u01e1\36\14\27\0\2\14\7\0\7\14" - + "\3\0\3\14\1\u01e2\42\14\27\0\2\14\7\0\7\14" - + "\3\0\1\14\1\u01e3\44\14\27\0\2\14\7\0\7\14" - + "\3\0\5\14\1\u01e4\40\14\27\0\2\14\7\0\7\14" - + "\3\0\30\14\1\u01e5\13\14\1\u01e6\1\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u01e7\34\14\27\0\2\14" - + "\7\0\7\14\3\0\26\14\1\u01e8\17\14\27\0\2\14" - + "\7\0\7\14\3\0\5\14\1\u01e9\40\14\27\0\2\14" - + "\7\0\7\14\3\0\6\14\1\u01ea\37\14\27\0\2\14" - + "\7\0\7\14\3\0\26\14\1\u01eb\17\14\27\0\2\14" - + "\7\0\7\14\3\0\16\14\1\u01ec\27\14\27\0\2\14" - + "\7\0\7\14\3\0\23\14\1\u01ed\22\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u01ee\44\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\u01ef\35\14\27\0\2\14" - + "\7\0\7\14\3\0\26\14\1\u01f0\17\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u01f1\44\14\27\0\2\14" - + "\7\0\7\14\3\0\12\14\1\u01f2\33\14\27\0\2\u01b5" - + "\3\0\1\u016b\3\0\7\u01b5\3\0\46\u01b5\27\0\1\u01b8" - + "\1\u01b6\3\0\1\112\1\u016d\1\u016e\1\0\2\u01b6\2\u01b8" - + "\2\u01b6\1\u01b8\3\0\46\u01b8\21\0\1\u01b7\2\0\13\u01b7" - + "\1\u01f3\101\u01b7\6\0\2\u01b8\1\u01b9\2\0\1\112\1\u016d" - + "\1\u016e\1\0\7\u01b8\3\0\46\u01b8\27\0\1\u01f4\12\0" - + "\2\u01f4\2\0\1\u01f4\3\0\46\u01f4\35\0\1\u01ba\1\u016e" - + "\102\0\1\u0172\2\0\10\u0172\1\u01f5\1\u01bb\1\u0172\1\u01bb" - + "\101\u0172\6\0\2\u01bc\4\0\1\u0175\1\u011d\1\0\7\u01bc" - + "\3\0\46\u01bc\40\0\2\u01f6\1\0\4\u01f6\3\0\1\u01f6" - + "\1\0\2\u01f6\1\0\1\u01f6\6\0\2\u01f6\12\0\1\u01f6" - + "\1\0\1\u01f6\5\0\2\u01f6\36\0\1\123\5\0\1\u01f7" - + "\1\133\2\0\2\u01f7\1\137\5\0\1\137\72\0\2\14" - + "\7\0\7\14\3\0\37\14\1\u01f8\6\14\27\0\2\14" - + "\7\0\7\14\3\0\6\14\1\u01f9\37\14\27\0\2\14" - + "\7\0\7\14\3\0\13\14\1\u01fa\32\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u01fb\44\14\27\0\2\14" - + "\7\0\7\14\3\0\16\14\1\u01fc\27\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u01fd\42\14\27\0\2\14" - + "\7\0\7\14\3\0\14\14\1\u01fe\31\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u01ff\43\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u0200\42\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u0201\42\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u0202\44\14\27\0\2\14" - + "\7\0\7\14\3\0\43\14\1\u0203\2\14\27\0\2\14" - + "\7\0\7\14\3\0\34\14\1\u0204\11\14\27\0\2\14" - + "\7\0\7\14\3\0\5\14\1\u0205\40\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u0206\42\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u0207\42\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u0208\43\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u0209\43\14\27\0\2\14" - + "\7\0\7\14\3\0\10\14\1\u020a\35\14\27\0\2\14" - + "\7\0\7\14\3\0\37\14\1\u020b\6\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u020c\34\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u020d\42\14\27\0\2\14" - + "\7\0\7\14\3\0\5\14\1\u020e\40\14\27\0\2\14" - + "\7\0\7\14\3\0\22\14\1\u020f\23\14\27\0\2\14" - + "\7\0\7\14\3\0\7\14\1\u0210\36\14\27\0\2\14" - + "\7\0\7\14\3\0\24\14\1\u0211\21\14\27\0\2\14" - + "\7\0\7\14\3\0\1\14\1\u0212\44\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u0213\42\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u0214\34\14\27\0\2\14" - + "\7\0\7\14\3\0\6\14\1\u0215\37\14\27\0\2\14" - + "\7\0\7\14\3\0\13\14\1\u0216\32\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u0217\43\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u0218\43\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u0219\34\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u021a\34\14\27\0\2\14" - + "\7\0\7\14\3\0\2\14\1\u021b\43\14\27\0\2\14" - + "\7\0\7\14\3\0\6\14\1\u021c\37\14\27\0\2\14" - + "\7\0\7\14\3\0\14\14\1\u021d\31\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u021e\34\14\21\0\1\u01b7" - + "\2\0\10\u01b7\1\u021f\1\u01f3\1\u01b7\1\u01f3\101\u01b7\6\0" + + "\41\0\1\123\5\0\1\u01be\1\133\2\0\2\u01be\1\137" + + "\5\0\1\137\75\0\2\14\7\0\7\14\3\0\10\14" + + "\1\u01bf\35\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\u01c0\43\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\23\14\1\u01c1\22\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\14\14\1\u01c2\31\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\10\14" + + "\1\u01c3\35\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\41\14\1\u01c4\4\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\5\14\1\u01c5\40\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\16\14\1\u01c6\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\u01c7\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\1\14\1\u01c8\44\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\20\14\1\u01c9\25\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\12\14\1\u01ca\33\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\10\14" + + "\1\u01cb\35\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\1\14\1\u01cc\44\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\21\14\1\u01cd\24\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\3\14\1\u01ce\42\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\11\14" + + "\1\u01cf\34\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\u01d0\43\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\15\14\1\u01d1\30\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\10\14\1\u01d2\35\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\10\14" + + "\1\u01d3\4\14\1\u01d4\30\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\23\14\1\u01d5\22\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\11\14\1\u01d6\34\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\23\14" + + "\1\u01d7\22\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\12\14\1\u01d8\33\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\14\14\1\u01d9\31\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\16\14\1\u01da\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\2\14" + + "\1\u01db\43\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\5\14\1\u01dc\40\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\12\14\1\u01dd\33\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\16\14\1\u01de\27\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\12\14" + + "\1\u01df\33\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\20\14\1\u01e0\25\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\7\14\1\u01e1\36\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\3\14\1\u01e2\42\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\u01e3\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\5\14\1\u01e4\40\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\30\14\1\u01e5\13\14\1\u01e6\1\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\11\14" + + "\1\u01e7\34\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\26\14\1\u01e8\17\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\5\14\1\u01e9\40\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\6\14\1\u01ea\37\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\26\14" + + "\1\u01eb\17\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\16\14\1\u01ec\27\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\23\14\1\u01ed\22\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\1\14\1\u01ee\44\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\10\14" + + "\1\u01ef\35\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\26\14\1\u01f0\17\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\1\14\1\u01f1\44\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\12\14\1\u01f2\33\14" + + "\23\0\1\14\6\0\2\u01b5\3\0\1\u016b\3\0\7\u01b5" + + "\3\0\46\u01b5\23\0\1\u01b5\6\0\1\u01b8\1\u01b6\3\0" + + "\1\112\1\u016d\1\u016e\1\0\2\u01b6\2\u01b8\2\u01b6\1\u01b8" + + "\3\0\46\u01b8\23\0\1\u01b6\1\u01b7\2\0\13\u01b7\1\u01f3" + + "\104\u01b7\6\0\2\u01b8\1\u01b9\2\0\1\112\1\u016d\1\u016e" + + "\1\0\7\u01b8\3\0\46\u01b8\23\0\1\u01b8\6\0\1\u01f4" + + "\12\0\2\u01f4\2\0\1\u01f4\3\0\46\u01f4\40\0\1\u01ba" + + "\1\u016e\105\0\1\u0172\2\0\10\u0172\1\u01f5\1\u01bb\1\u0172" + + "\1\u01bb\104\u0172\6\0\2\u01bc\4\0\1\u0175\1\u011d\1\0" + + "\7\u01bc\3\0\46\u01bc\23\0\1\u01bc\17\0\2\u01f6\1\0" + + "\4\u01f6\3\0\1\u01f6\1\0\2\u01f6\1\0\1\u01f6\6\0" + + "\2\u01f6\12\0\1\u01f6\1\0\1\u01f6\5\0\2\u01f6\41\0" + + "\1\123\5\0\1\u01f7\1\133\2\0\2\u01f7\1\137\5\0" + + "\1\137\75\0\2\14\7\0\7\14\3\0\37\14\1\u01f8" + + "\6\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\6\14\1\u01f9\37\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\13\14\1\u01fa\32\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\1\14\1\u01fb\44\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\16\14\1\u01fc" + + "\27\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\u01fd\42\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\14\14\1\u01fe\31\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\2\14\1\u01ff\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\3\14\1\u0200" + + "\42\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\u0201\42\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\1\14\1\u0202\44\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\43\14\1\u0203\2\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\34\14\1\u0204" + + "\11\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\5\14\1\u0205\40\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\3\14\1\u0206\42\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u0207\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u0208" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0209\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\10\14\1\u020a\35\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\37\14\1\u020b\6\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\u020c" + + "\34\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\3\14\1\u020d\42\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\5\14\1\u020e\40\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\22\14\1\u020f\23\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\7\14\1\u0210" + + "\36\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\24\14\1\u0211\21\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\1\14\1\u0212\44\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u0213\42\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\11\14\1\u0214" + + "\34\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\6\14\1\u0215\37\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\13\14\1\u0216\32\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\2\14\1\u0217\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u0218" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\11\14\1\u0219\34\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\11\14\1\u021a\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\2\14\1\u021b\43\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\6\14\1\u021c" + + "\37\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\14\14\1\u021d\31\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\11\14\1\u021e\34\14\23\0\1\14\1\u01b7" + + "\2\0\10\u01b7\1\u021f\1\u01f3\1\u01b7\1\u01f3\104\u01b7\6\0" + "\2\u01f4\4\0\1\u01ba\1\u016e\1\0\7\u01f4\3\0\46\u01f4" - + "\40\0\2\u0220\1\0\4\u0220\3\0\1\u0220\1\0\2\u0220" - + "\1\0\1\u0220\6\0\2\u0220\12\0\1\u0220\1\0\1\u0220" - + "\5\0\2\u0220\36\0\1\123\5\0\1\u0221\1\133\2\0" - + "\2\u0221\1\137\5\0\1\137\72\0\2\14\7\0\7\14" - + "\3\0\7\14\1\u0222\36\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u0223\43\14\27\0\2\14\7\0\7\14" - + "\3\0\3\14\1\u0224\42\14\27\0\2\14\7\0\7\14" - + "\3\0\31\14\1\u0225\14\14\27\0\2\14\7\0\7\14" - + "\3\0\26\14\1\u0226\17\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u0227\43\14\27\0\2\14\7\0\7\14" - + "\3\0\23\14\1\u0228\22\14\27\0\2\14\7\0\7\14" - + "\3\0\5\14\1\u0229\40\14\27\0\2\14\7\0\7\14" - + "\3\0\26\14\1\u022a\17\14\27\0\2\14\7\0\7\14" - + "\3\0\3\14\1\u022b\42\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u022c\33\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u022d\43\14\27\0\2\14\7\0\7\14" - + "\3\0\16\14\1\u022e\27\14\27\0\2\14\7\0\7\14" - + "\3\0\5\14\1\u022f\40\14\27\0\2\14\7\0\7\14" - + "\3\0\36\14\1\u0230\7\14\27\0\2\14\7\0\7\14" - + "\3\0\10\14\1\u0231\35\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u0232\43\14\27\0\2\14\7\0\7\14" - + "\3\0\7\14\1\u0233\36\14\27\0\2\14\7\0\7\14" - + "\3\0\11\14\1\u0234\34\14\27\0\2\14\7\0\7\14" - + "\3\0\10\14\1\u0235\35\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u0236\33\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u0237\33\14\27\0\2\14\7\0\7\14" - + "\3\0\23\14\1\u0238\22\14\27\0\2\14\7\0\7\14" - + "\3\0\2\14\1\u0239\43\14\27\0\2\14\7\0\3\14" - + "\1\u023a\3\14\3\0\46\14\27\0\2\14\7\0\7\14" - + "\3\0\23\14\1\u023b\22\14\27\0\2\14\7\0\7\14" - + "\3\0\1\14\1\u023c\44\14\27\0\2\14\7\0\7\14" - + "\3\0\20\14\1\u023d\25\14\27\0\2\14\7\0\7\14" - + "\3\0\1\14\1\u023e\44\14\27\0\2\14\7\0\7\14" - + "\3\0\12\14\1\u023f\33\14\27\0\2\14\7\0\7\14" - + "\3\0\31\14\1\u0240\11\14\1\u0241\2\14\27\0\2\14" - + "\7\0\7\14\3\0\22\14\1\u0242\23\14\40\0\2\u0243" - + "\1\0\4\u0243\3\0\1\u0243\1\0\2\u0243\1\0\1\u0243" - + "\6\0\2\u0243\12\0\1\u0243\1\0\1\u0243\5\0\2\u0243" - + "\36\0\1\123\5\0\1\u0244\1\133\2\0\2\u0244\1\137" - + "\5\0\1\137\72\0\2\14\7\0\7\14\3\0\24\14" - + "\1\u0245\21\14\27\0\2\14\7\0\7\14\3\0\26\14" - + "\1\u0246\17\14\27\0\2\14\7\0\7\14\3\0\7\14" - + "\1\u0247\36\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u0248\43\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u0249\43\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u024a\43\14\27\0\2\14\7\0\7\14\3\0\11\14" - + "\1\u024b\34\14\27\0\2\14\7\0\7\14\3\0\26\14" - + "\1\u024c\17\14\27\0\2\14\7\0\7\14\3\0\7\14" - + "\1\u024d\36\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u024e\43\14\27\0\2\14\7\0\7\14\3\0\7\14" - + "\1\u024f\36\14\27\0\2\14\7\0\7\14\3\0\11\14" - + "\1\u0250\34\14\27\0\2\14\7\0\7\14\3\0\14\14" - + "\1\u0251\31\14\27\0\2\14\7\0\7\14\3\0\24\14" - + "\1\u0252\21\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u0253\43\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u0254\43\14\27\0\2\14\7\0\7\14\3\0\3\14" - + "\1\u0255\42\14\27\0\2\14\7\0\7\14\3\0\2\14" - + "\1\u0256\43\14\27\0\2\14\7\0\7\14\3\0\14\14" - + "\1\u0257\31\14\27\0\2\14\7\0\7\14\3\0\12\14" - + "\1\u0258\33\14\27\0\2\14\7\0\7\14\3\0\12\14" - + "\1\u0259\33\14\27\0\2\14\7\0\7\14\3\0\7\14" - + "\1\u025a\36\14\27\0\2\14\7\0\7\14\3\0\11\14" - + "\1\u025b\34\14\27\0\2\14\7\0\7\14\3\0\16\14" - + "\1\u025c\27\14\40\0\2\u025d\1\0\4\u025d\3\0\1\u025d" - + "\1\0\2\u025d\1\0\1\u025d\6\0\2\u025d\12\0\1\u025d" - + "\1\0\1\u025d\5\0\2\u025d\36\0\1\123\5\0\1\u025e" - + "\1\133\2\0\2\u025e\1\137\5\0\1\137\72\0\2\14" - + "\7\0\7\14\3\0\12\14\1\u025f\33\14\27\0\2\14" - + "\7\0\7\14\3\0\13\14\1\u0260\32\14\27\0\2\14" - + "\7\0\7\14\3\0\11\14\1\u0261\34\14\27\0\2\14" - + "\7\0\7\14\3\0\20\14\1\u0262\25\14\27\0\2\14" - + "\7\0\7\14\3\0\20\14\1\u0263\25\14\27\0\2\14" - + "\7\0\7\14\3\0\15\14\1\u0264\30\14\27\0\2\14" - + "\7\0\7\14\3\0\3\14\1\u0265\42\14\27\0\2\14" - + "\7\0\7\14\3\0\6\14\1\u0266\37\14\27\0\2\14" - + "\7\0\7\14\3\0\12\14\1\u0267\33\14\27\0\2\14" - + "\7\0\7\14\3\0\37\14\1\u0268\6\14\27\0\2\14" - + "\7\0\7\14\3\0\44\14\1\u0269\1\14\27\0\2\14" - + "\7\0\7\14\3\0\1\u026a\45\14\27\0\2\14\7\0" - + "\7\14\3\0\11\14\1\u026b\34\14\27\0\2\14\7\0" - + "\7\14\3\0\10\14\1\u026c\35\14\27\0\2\14\7\0" - + "\7\14\3\0\10\14\1\u026d\35\14\27\0\2\14\7\0" - + "\7\14\3\0\7\14\1\u026e\36\14\27\0\2\14\7\0" - + "\7\14\3\0\3\14\1\u026f\42\14\32\0\1\123\5\0" - + "\1\u0270\1\133\2\0\2\u0270\1\137\5\0\1\137\72\0" - + "\2\14\7\0\7\14\3\0\2\14\1\u0271\43\14\27\0" - + "\2\14\7\0\7\14\3\0\10\14\1\u0272\35\14\27\0" - + "\2\14\7\0\7\14\3\0\35\14\1\u0273\10\14\27\0" - + "\2\14\7\0\7\14\3\0\14\14\1\u0274\31\14\27\0" - + "\2\14\7\0\7\14\3\0\2\14\1\u0275\43\14\27\0" - + "\2\14\7\0\7\14\3\0\7\14\1\u0276\36\14\27\0" - + "\2\14\7\0\7\14\3\0\13\14\1\u0277\32\14\27\0" - + "\2\14\7\0\7\14\3\0\16\14\1\u0278\27\14\27\0" - + "\2\14\7\0\7\14\3\0\23\14\1\u0279\22\14\27\0" - + "\2\14\7\0\7\14\3\0\26\14\1\u027a\17\14\27\0" - + "\2\14\7\0\7\14\3\0\21\14\1\u027b\24\14\27\0" - + "\2\14\7\0\7\14\3\0\22\14\1\u027c\23\14\32\0" - + "\1\123\5\0\1\u027d\1\133\2\0\2\u027d\1\137\5\0" - + "\1\137\72\0\2\14\7\0\7\14\3\0\40\14\1\u027e" - + "\5\14\27\0\2\14\7\0\7\14\3\0\14\14\1\u027f" - + "\31\14\27\0\2\14\7\0\7\14\3\0\13\14\1\u0280" - + "\32\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u0281" - + "\43\14\27\0\2\14\7\0\7\14\3\0\44\14\1\u0282" - + "\1\14\27\0\2\14\7\0\7\14\3\0\24\14\1\u0283" - + "\21\14\27\0\2\14\7\0\7\14\3\0\23\14\1\u0284" - + "\22\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u0285" - + "\43\14\27\0\2\14\7\0\7\14\3\0\3\14\1\u0286" - + "\42\14\32\0\1\123\5\0\1\u0287\1\133\2\0\2\u0287" - + "\1\137\5\0\1\137\72\0\2\14\7\0\7\14\3\0" - + "\16\14\1\u0288\27\14\27\0\2\14\7\0\7\14\3\0" - + "\6\14\1\u0289\37\14\27\0\2\14\7\0\7\14\3\0" - + "\3\14\1\u028a\42\14\27\0\2\14\7\0\7\14\3\0" - + "\14\14\1\u028b\31\14\27\0\2\14\7\0\7\14\3\0" - + "\13\14\1\u028c\32\14\27\0\2\14\7\0\7\14\3\0" - + "\12\14\1\u028d\33\14\27\0\2\14\7\0\7\14\3\0" - + "\6\14\1\u028e\37\14\27\0\2\14\7\0\7\14\3\0" - + "\21\14\1\u028f\24\14\32\0\1\123\5\0\1\u0290\1\133" - + "\2\0\2\u0290\1\137\5\0\1\137\72\0\2\14\7\0" - + "\7\14\3\0\12\14\1\u0291\33\14\27\0\2\14\7\0" - + "\7\14\3\0\16\14\1\u0292\27\14\27\0\2\14\7\0" - + "\7\14\3\0\23\14\1\u0293\22\14\27\0\2\14\7\0" - + "\7\14\3\0\2\14\1\u0294\43\14\27\0\2\14\7\0" - + "\7\14\3\0\44\14\1\u0295\1\14\27\0\2\14\7\0" - + "\7\14\3\0\44\14\1\u0296\1\14\32\0\1\123\5\0" - + "\1\u0297\1\133\2\0\2\u0297\1\137\5\0\1\137\72\0" - + "\2\14\7\0\7\14\3\0\21\14\1\u0298\24\14\27\0" - + "\2\14\7\0\7\14\3\0\12\14\1\u0299\33\14\27\0" - + "\2\14\7\0\7\14\3\0\40\14\1\u029a\5\14\27\0" - + "\2\14\7\0\7\14\3\0\13\14\1\u029b\32\14\27\0" - + "\2\14\7\0\7\14\3\0\13\14\1\u029c\32\14\32\0" - + "\1\123\5\0\1\u029d\1\133\2\0\2\u029d\1\137\5\0" - + "\1\137\72\0\2\14\7\0\7\14\3\0\11\14\1\u029e" - + "\34\14\27\0\2\14\7\0\7\14\3\0\16\14\1\u029f" - + "\27\14\27\0\2\14\7\0\7\14\3\0\23\14\1\u02a0" - + "\22\14\27\0\2\14\7\0\7\14\3\0\23\14\1\u02a1" - + "\22\14\27\0\2\14\7\0\7\14\3\0\22\14\1\u02a2" - + "\23\14\27\0\2\14\7\0\7\14\3\0\12\14\1\u02a3" - + "\33\14\27\0\2\14\7\0\7\14\3\0\21\14\1\u02a4" - + "\24\14\21\0"; + + "\23\0\1\u01f4\17\0\2\u0220\1\0\4\u0220\3\0\1\u0220" + + "\1\0\2\u0220\1\0\1\u0220\6\0\2\u0220\12\0\1\u0220" + + "\1\0\1\u0220\5\0\2\u0220\41\0\1\123\5\0\1\u0221" + + "\1\133\2\0\2\u0221\1\137\5\0\1\137\75\0\2\14" + + "\7\0\7\14\3\0\7\14\1\u0222\36\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\2\14\1\u0223\43\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\3\14" + + "\1\u0224\42\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\31\14\1\u0225\14\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\26\14\1\u0226\17\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\2\14\1\u0227\43\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\23\14" + + "\1\u0228\22\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\5\14\1\u0229\40\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\26\14\1\u022a\17\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\3\14\1\u022b\42\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\12\14" + + "\1\u022c\33\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\u022d\43\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\16\14\1\u022e\27\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\5\14\1\u022f\40\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\36\14" + + "\1\u0230\7\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\10\14\1\u0231\35\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\2\14\1\u0232\43\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\7\14\1\u0233\36\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\11\14" + + "\1\u0234\34\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\10\14\1\u0235\35\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\12\14\1\u0236\33\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\12\14\1\u0237\33\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\23\14" + + "\1\u0238\22\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\u0239\43\14\23\0\1\14\6\0\2\14" + + "\7\0\3\14\1\u023a\3\14\3\0\46\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\23\14\1\u023b\22\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\1\14" + + "\1\u023c\44\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\20\14\1\u023d\25\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\1\14\1\u023e\44\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\12\14\1\u023f\33\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\31\14" + + "\1\u0240\11\14\1\u0241\2\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\22\14\1\u0242\23\14\23\0\1\14" + + "\17\0\2\u0243\1\0\4\u0243\3\0\1\u0243\1\0\2\u0243" + + "\1\0\1\u0243\6\0\2\u0243\12\0\1\u0243\1\0\1\u0243" + + "\5\0\2\u0243\41\0\1\123\5\0\1\u0244\1\133\2\0" + + "\2\u0244\1\137\5\0\1\137\75\0\2\14\7\0\7\14" + + "\3\0\24\14\1\u0245\21\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\26\14\1\u0246\17\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\7\14\1\u0247\36\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\2\14" + + "\1\u0248\43\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\2\14\1\u0249\43\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\2\14\1\u024a\43\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\11\14\1\u024b\34\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\26\14" + + "\1\u024c\17\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\7\14\1\u024d\36\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\2\14\1\u024e\43\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\7\14\1\u024f\36\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\11\14" + + "\1\u0250\34\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\14\14\1\u0251\31\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\24\14\1\u0252\21\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\2\14\1\u0253\43\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\2\14" + + "\1\u0254\43\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\3\14\1\u0255\42\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\2\14\1\u0256\43\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\14\14\1\u0257\31\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\12\14" + + "\1\u0258\33\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\12\14\1\u0259\33\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\7\14\1\u025a\36\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\11\14\1\u025b\34\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\16\14" + + "\1\u025c\27\14\23\0\1\14\17\0\2\u025d\1\0\4\u025d" + + "\3\0\1\u025d\1\0\2\u025d\1\0\1\u025d\6\0\2\u025d" + + "\12\0\1\u025d\1\0\1\u025d\5\0\2\u025d\41\0\1\123" + + "\5\0\1\u025e\1\133\2\0\2\u025e\1\137\5\0\1\137" + + "\75\0\2\14\7\0\7\14\3\0\12\14\1\u025f\33\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\13\14" + + "\1\u0260\32\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\11\14\1\u0261\34\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\20\14\1\u0262\25\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\20\14\1\u0263\25\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\15\14" + + "\1\u0264\30\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\3\14\1\u0265\42\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\6\14\1\u0266\37\14\23\0\1\14" + + "\6\0\2\14\7\0\7\14\3\0\12\14\1\u0267\33\14" + + "\23\0\1\14\6\0\2\14\7\0\7\14\3\0\37\14" + + "\1\u0268\6\14\23\0\1\14\6\0\2\14\7\0\7\14" + + "\3\0\44\14\1\u0269\1\14\23\0\1\14\6\0\2\14" + + "\7\0\7\14\3\0\1\u026a\45\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\11\14\1\u026b\34\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\10\14\1\u026c" + + "\35\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\10\14\1\u026d\35\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\7\14\1\u026e\36\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\3\14\1\u026f\42\14\23\0" + + "\1\14\11\0\1\123\5\0\1\u0270\1\133\2\0\2\u0270" + + "\1\137\5\0\1\137\75\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0271\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\10\14\1\u0272\35\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\35\14\1\u0273\10\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\14\14\1\u0274" + + "\31\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0275\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\7\14\1\u0276\36\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\13\14\1\u0277\32\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\16\14\1\u0278" + + "\27\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\23\14\1\u0279\22\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\26\14\1\u027a\17\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\21\14\1\u027b\24\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\22\14\1\u027c" + + "\23\14\23\0\1\14\11\0\1\123\5\0\1\u027d\1\133" + + "\2\0\2\u027d\1\137\5\0\1\137\75\0\2\14\7\0" + + "\7\14\3\0\40\14\1\u027e\5\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\14\14\1\u027f\31\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\13\14\1\u0280" + + "\32\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0281\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\44\14\1\u0282\1\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\24\14\1\u0283\21\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\23\14\1\u0284" + + "\22\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\2\14\1\u0285\43\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\3\14\1\u0286\42\14\23\0\1\14\11\0" + + "\1\123\5\0\1\u0287\1\133\2\0\2\u0287\1\137\5\0" + + "\1\137\75\0\2\14\7\0\7\14\3\0\16\14\1\u0288" + + "\27\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\6\14\1\u0289\37\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\3\14\1\u028a\42\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\14\14\1\u028b\31\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\13\14\1\u028c" + + "\32\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\12\14\1\u028d\33\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\6\14\1\u028e\37\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\21\14\1\u028f\24\14\23\0" + + "\1\14\11\0\1\123\5\0\1\u0290\1\133\2\0\2\u0290" + + "\1\137\5\0\1\137\75\0\2\14\7\0\7\14\3\0" + + "\12\14\1\u0291\33\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\16\14\1\u0292\27\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\23\14\1\u0293\22\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\2\14\1\u0294" + + "\43\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\44\14\1\u0295\1\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\44\14\1\u0296\1\14\23\0\1\14\11\0" + + "\1\123\5\0\1\u0297\1\133\2\0\2\u0297\1\137\5\0" + + "\1\137\75\0\2\14\7\0\7\14\3\0\21\14\1\u0298" + + "\24\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\12\14\1\u0299\33\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\40\14\1\u029a\5\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\13\14\1\u029b\32\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\13\14\1\u029c" + + "\32\14\23\0\1\14\11\0\1\123\5\0\1\u029d\1\133" + + "\2\0\2\u029d\1\137\5\0\1\137\75\0\2\14\7\0" + + "\7\14\3\0\11\14\1\u029e\34\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\16\14\1\u029f\27\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\23\14\1\u02a0" + + "\22\14\23\0\1\14\6\0\2\14\7\0\7\14\3\0" + + "\23\14\1\u02a1\22\14\23\0\1\14\6\0\2\14\7\0" + + "\7\14\3\0\22\14\1\u02a2\23\14\23\0\1\14\6\0" + + "\2\14\7\0\7\14\3\0\12\14\1\u02a3\33\14\23\0" + + "\1\14\6\0\2\14\7\0\7\14\3\0\21\14\1\u02a4" + + "\24\14\23\0\1\14"; private static int[] zzUnpackTrans() { - int[] result = new int[42320]; + int[] result = new int[43907]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -937,6 +1056,8 @@ public final class ActionScriptLexer { } return j; } + + /* error codes */ private static final int ZZ_UNKNOWN_ERROR = 0; private static final int ZZ_NO_MATCH = 1; @@ -948,10 +1069,12 @@ public final class ActionScriptLexer { "Error: could not match input", "Error: pushback value was too large" }; + /** * ZZ_ATTRIBUTE[aState] contains the attributes of state aState */ private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\1\11\1\1\1\11\11\1\1\11\3\1\1\11" + "\26\1\10\11\1\1\2\11\5\1\1\11\2\1\2\11" @@ -985,61 +1108,75 @@ public final class ActionScriptLexer { } 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 */ @@ -1047,17 +1184,19 @@ public final class ActionScriptLexer { /* user code: */ StringBuffer string = new StringBuffer(); + private static String xmlTagName = ""; public int yychar() { return yychar; } - private final Stack pushedBack = new Stack<>(); + + private Stack pushedBack = new Stack(); public int yyline() { return yyline + 1; } - private final List listeners = new ArrayList<>(); + private List listeners = new ArrayList<>(); public void addListener(LexListener listener) { listeners.add(listener); @@ -1114,7 +1253,7 @@ public final class ActionScriptLexer { * @param in the java.io.Inputstream to read input from. */ public ActionScriptLexer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); + this(new java.io.InputStreamReader(in, java.nio.charset.Charset.forName("UTF-8"))); } /** @@ -1129,7 +1268,7 @@ public final class ActionScriptLexer { int j = 0; /* index in unpacked array */ - while (i < 2264) { + while (i < 2272) { int count = packed.charAt(i++); char value = packed.charAt(i++); do { @@ -1194,8 +1333,6 @@ public final class ActionScriptLexer { /** * Closes the input stream. - * - * @throws java.io.IOException */ public final void yyclose() throws java.io.IOException { zzAtEOF = true; /* indicate end of file */ @@ -1215,6 +1352,9 @@ public final class ActionScriptLexer { * cannot be reused (internal buffer is discarded and lost). Lexical * state is set to ZZ_INITIAL. * + * Internal scan buffer is resized down to its initial length, if it has + * grown. + * * @param reader the new input stream */ public final void yyreset(java.io.Reader reader) { @@ -1226,12 +1366,13 @@ public final class ActionScriptLexer { zzCurrentPos = zzMarkedPos = 0; yyline = yychar = yycolumn = 0; zzLexicalState = YYINITIAL; + if (zzBuffer.length > ZZ_BUFFERSIZE) { + zzBuffer = new char[ZZ_BUFFERSIZE]; + } } /** * Returns the current lexical state. - * - * @return */ public final int yystate() { return zzLexicalState; @@ -1248,8 +1389,6 @@ public final class ActionScriptLexer { /** * Returns the text matched by the current regular expression. - * - * @return */ public final String yytext() { return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); @@ -1271,8 +1410,6 @@ public final class ActionScriptLexer { /** * Returns the length of the matched text region. - * - * @return */ public final int yylength() { return zzMarkedPos - zzStartRead; @@ -1324,7 +1461,6 @@ public final class ActionScriptLexer { * * @return the next token * @exception java.io.IOException if any I/O-Error occurs - * @throws com.jpexs.decompiler.flash.action.parser.ParseException */ public ParsedSymbol yylex() throws java.io.IOException, ParseException { int zzInput; @@ -1352,6 +1488,12 @@ public final class ActionScriptLexer { zzState = ZZ_LEXSTATE[zzLexicalState]; + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) { + zzAction = zzState; + } + zzForAction: { while (true) { @@ -1384,7 +1526,7 @@ public final class ActionScriptLexer { } zzState = zzNext; - int zzAttributes = zzAttrL[zzState]; + zzAttributes = zzAttrL[zzState]; if ((zzAttributes & 1) == 1) { zzAction = zzState; zzMarkedPosL = zzCurrentPosL; @@ -1400,30 +1542,382 @@ public final class ActionScriptLexer { zzMarkedPos = zzMarkedPosL; switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 4: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext()); + case 1: { } case 177: break; - case 131: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STRING_OP, yytext()); + case 2: { + yyline++; } case 178: break; - case 144: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext()); + case 3: { /*ignore*/ + } case 179: break; + case 4: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext()); + } + case 180: + break; + case 5: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext()); + } + case 181: + break; + case 6: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext()); + } + case 182: + break; + case 7: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext()); + } + case 183: + break; + case 8: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext()); + } + case 184: + break; + case 9: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext()); + } + case 185: + break; + case 10: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext()); + } + case 186: + break; + case 11: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext()); + } + case 187: + break; + case 12: { + string.setLength(0); + yybegin(STRING); + } + case 188: + break; + case 13: { + return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong((yytext())))); + } + case 189: + break; + case 14: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext()); + } + case 190: + break; + case 15: { + string.setLength(0); + yybegin(CHARLITERAL); + } + case 191: + break; + case 16: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext()); + } + case 192: + break; + case 17: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext()); + } + case 193: + break; + case 18: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext()); + } + case 194: + break; + case 19: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext()); + } + case 195: + break; + case 20: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext()); + } + case 196: + break; + case 21: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext()); + } + case 197: + break; + case 22: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext()); + } + case 198: + break; + case 23: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext()); + } + case 199: + break; + case 24: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext()); + } + case 200: + break; + case 25: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext()); + } + case 201: + break; + case 26: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext()); + } + case 202: + break; + case 27: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext()); + } + case 203: + break; + case 28: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext()); + } + case 204: + break; + case 29: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext()); + } + case 205: + break; case 30: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext()); } - case 180: + case 206: break; - case 140: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext()); + case 31: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext()); } - case 181: + case 207: + break; + case 32: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext()); + } + case 208: + break; + case 33: { + string.append(yytext()); + } + case 209: + break; + case 34: { + yybegin(YYINITIAL); + yyline++; + } + case 210: + break; + case 35: { + yybegin(YYINITIAL); + // length also includes the trailing quote + return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString()); + } + case 211: + break; + case 36: { + string.append(yytext()); + yyline++; + } + case 212: + break; + case 37: { + yybegin(XML); + string.append(yytext()); + } + case 213: + break; + case 38: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext()); + } + case 214: + break; + case 39: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext()); + } + case 215: + break; + case 40: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext()); + } + case 216: + break; + case 41: { + return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, new Double(Double.parseDouble((yytext())))); + } + case 217: + break; + case 42: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext()); + } + case 218: + break; + case 43: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext()); + } + case 219: + break; + case 44: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext()); + } + case 220: + break; + case 45: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext()); + } + case 221: + break; + case 46: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext()); + } + case 222: + break; + case 47: { + return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong(yytext(), 8))); + } + case 223: + break; + case 48: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext()); + } + case 224: + break; + case 49: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext()); + } + case 225: + break; + case 50: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext()); + } + case 226: + break; + case 51: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext()); + } + case 227: + break; + case 52: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext()); + } + case 228: + break; + case 53: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext()); + } + case 229: + break; + case 54: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext()); + } + case 230: + break; + case 55: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext()); + } + case 231: + break; + case 56: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext()); + } + case 232: + break; + case 57: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext()); + } + case 233: + break; + case 58: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext()); + } + case 234: + break; + case 59: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext()); + } + case 235: + break; + case 60: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext()); + } + case 236: + break; + case 61: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext()); + } + case 237: + break; + case 62: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext()); + } + case 238: + break; + case 63: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext()); + } + case 239: + break; + case 64: { + throw new ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); + } + case 240: + break; + case 65: { + string.append('\"'); + } + case 241: + break; + case 66: { + char val = (char) Integer.parseInt(yytext().substring(1), 8); + string.append(val); + } + case 242: + break; + case 67: { + string.append('\\'); + } + case 243: + break; + case 68: { + string.append('\''); + } + case 244: + break; + case 69: { + string.append('\b'); + } + case 245: + break; + case 70: { + string.append('\r'); + } + case 246: + break; + case 71: { + string.append('\n'); + } + case 247: + break; + case 72: { + string.append('\t'); + } + case 248: + break; + case 73: { + string.append('\f'); + } + case 249: + break; + case 74: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext()); + } + case 250: break; case 75: { string.setLength(0); @@ -1431,307 +1925,168 @@ public final class ActionScriptLexer { String s = yytext(); s = s.substring(1, s.length() - 1); if (s.contains(" ")) { - s = s.substring(0, s.indexOf(' ')); + s = s.substring(0, s.indexOf(" ")); } xmlTagName = s; string.append(yytext()); } - case 182: + case 251: break; - case 59: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext()); + case 76: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext()); } - case 183: - break; - case 137: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext()); - } - case 184: - break; - case 94: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); - } - case 185: - break; - case 33: { - string.append(yytext()); - } - case 186: - break; - case 61: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext()); - } - case 187: - break; - case 74: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext()); - } - case 188: - break; - case 16: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext()); - } - case 189: - break; - case 163: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBSUBSTRING, yytext()); - } - case 190: - break; - case 125: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext()); - } - case 191: - break; - case 17: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext()); - } - case 192: - break; - case 95: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EACH, yytext()); - } - case 193: - break; - case 10: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext()); - } - case 194: - break; - case 9: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext()); - } - case 195: - break; - case 165: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDPLAY, yytext()); - } - case 196: - break; - case 56: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext()); - } - case 197: - break; - case 98: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext()); - } - case 198: - break; - case 127: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext()); - } - case 199: - break; - case 38: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext()); - } - case 200: - break; - case 12: { - string.setLength(0); - yybegin(STRING); - } - case 201: - break; - case 146: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBLENGTH, yytext()); - } - case 202: - break; - case 129: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext()); - } - case 203: - break; - case 34: { - yybegin(YYINITIAL); - yyline++; - } - case 204: - break; - case 166: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIENUM, yytext()); - } - case 205: + case 252: break; case 77: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext()); } - case 206: + case 253: break; - case 158: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TARGETPATH, yytext()); + case 78: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext()); } - case 207: + case 254: + break; + case 79: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext()); + } + case 255: + break; + case 80: { + return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong(yytext().substring(2), 16))); + } + case 256: break; case 81: { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CHR, yytext()); } - case 208: + case 257: break; - case 157: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TELLTARGET, yytext()); + case 82: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SET, yytext()); } - case 209: + case 258: break; - case 50: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext()); + case 83: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.ORD, yytext()); } - case 210: + case 259: break; - case 121: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.RANDOM, yytext()); + case 84: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext()); } - case 211: + case 260: break; - case 175: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TOGGLEHIGHQUALITY, yytext()); + case 85: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext()); } - case 212: + case 261: break; - case 8: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext()); + case 86: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.INT, yytext()); } - case 213: + case 262: break; - case 128: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LENGTH, yytext()); + case 87: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext()); } - case 214: + case 263: break; - case 5: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext()); + case 88: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext()); } - case 215: + case 264: break; - case 138: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext()); + case 89: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext()); } - case 216: + case 265: break; - case 164: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDSTOP, yytext()); + case 90: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.GET, yytext()); } - case 217: + case 266: break; - case 49: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext()); + case 91: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext()); } - case 218: + case 267: break; - case 135: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext()); + case 92: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext()); } - case 219: - break; - case 152: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext()); - } - case 220: + case 268: break; case 93: { String t = yytext(); return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, t.substring(2, t.length() - 1)); } - case 221: + case 269: break; - case 57: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext()); + case 94: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); } - case 222: + case 270: + break; + case 95: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EACH, yytext()); + } + case 271: + break; + case 96: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext()); + } + case 272: break; case 97: { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.EVAL, yytext()); } - case 223: + case 273: break; - case 88: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext()); + case 98: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext()); } - case 224: + case 274: break; - case 170: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAP, yytext()); + case 99: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CALL, yytext()); } - case 225: + case 275: break; - case 114: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext()); + case 100: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOP, yytext()); } - case 226: + case 276: break; - case 64: { - throw new ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); + case 101: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext()); } - case 227: + case 277: break; - case 108: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext()); + case 102: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext()); } - case 228: - break; - case 106: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext()); - } - case 229: - break; - case 25: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext()); - } - case 230: - break; - case 44: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext()); - } - case 231: + case 278: break; case 103: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext()); } - case 232: + case 279: break; - case 76: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext()); + case 104: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext()); } - case 233: + case 280: break; - case 126: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext()); + case 105: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PLAY, yytext()); } - case 234: + case 281: break; - case 92: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext()); + case 106: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext()); } - case 235: - break; - case 18: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext()); - } - case 236: - break; - case 143: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext()); - } - case 237: - break; - case 35: { - yybegin(YYINITIAL); - // length also includes the trailing quote - return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString()); - } - case 238: - break; - case 112: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext()); - } - case 239: - break; - case 86: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.INT, yytext()); - } - case 240: + case 282: break; case 107: { string.append(yytext()); @@ -1742,563 +2097,350 @@ public final class ActionScriptLexer { return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML, string.toString()); } } - case 241: - break; - case 45: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext()); - } - case 242: - break; - case 134: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NEWLINE, yytext()); - } - case 243: - break; - case 70: { - string.append('\r'); - } - case 244: - break; - case 141: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPDRAG, yytext()); - } - case 245: - break; - case 3: { /*ignore*/ - - } - case 246: - break; - case 28: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext()); - } - case 247: - break; - case 159: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext()); - } - case 248: - break; - case 31: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext()); - } - case 249: - break; - case 115: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext()); - } - case 250: - break; - case 142: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.OVERRIDE, yytext()); - } - case 251: - break; - case 90: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.GET, yytext()); - } - case 252: - break; - case 156: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext()); - } - case 253: - break; - case 168: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.IFFRAMELOADED, yytext()); - } - case 254: - break; - case 58: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext()); - } - case 255: - break; - case 37: { - yybegin(XML); - string.append(yytext()); - } - case 256: - break; - case 96: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext()); - } - case 257: - break; - case 36: { - string.append(yytext()); - yyline++; - } - case 258: - break; - case 71: { - string.append('\n'); - } - case 259: - break; - case 119: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBORD, yytext()); - } - case 260: - break; - case 139: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext()); - } - case 261: - break; - case 160: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext()); - } - case 262: - break; - case 172: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.REMOVEMOVIECLIP, yytext()); - } - case 263: - break; - case 26: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext()); - } - case 264: - break; - case 162: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIE, yytext()); - } - case 265: - break; - case 68: { - string.append('\''); - } - case 266: - break; - case 24: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext()); - } - case 267: - break; - case 79: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext()); - } - case 268: - break; - case 154: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIE, yytext()); - } - case 269: - break; - case 122: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.STATIC, yytext()); - } - case 270: - break; - case 39: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext()); - } - case 271: - break; - case 6: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext()); - } - case 272: - break; - case 145: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTNUM, yytext()); - } - case 273: - break; - case 23: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext()); - } - case 274: - break; - case 43: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext()); - } - case 275: - break; - case 63: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext()); - } - case 276: - break; - case 78: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext()); - } - case 277: - break; - case 67: { - string.append('\\'); - } - case 278: - break; - case 66: { - char val = (char) Integer.parseInt(yytext().substring(1), 8); - string.append(val); - } - case 279: - break; - case 54: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext()); - } - case 280: - break; - case 47: { - return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong(yytext(), 8))); - } - case 281: - break; - case 101: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext()); - } - case 282: - break; - case 171: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIENUM, yytext()); - } case 283: break; - case 53: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext()); + case 108: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext()); } case 284: break; - case 116: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext()); - } - case 285: - break; - case 19: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext()); - } - case 286: - break; - case 150: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NEXTFRAME, yytext()); - } - case 287: - break; - case 80: { - return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong(yytext().substring(2), 16))); - } - case 288: - break; - case 82: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SET, yytext()); - } - case 289: - break; - case 22: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext()); - } - case 290: - break; - case 149: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STARTDRAG, yytext()); - } - case 291: - break; - case 40: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext()); - } - case 292: - break; - case 62: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext()); - } - case 293: - break; - case 29: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext()); - } - case 294: - break; - case 84: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext()); - } - case 295: - break; - case 60: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext()); - } - case 296: - break; - case 111: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext()); - } - case 297: - break; - case 51: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext()); - } - case 298: - break; - case 110: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext()); - } - case 299: - break; - case 153: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext()); - } - case 300: - break; - case 151: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.NAMESPACE, yytext()); - } - case 301: - break; - case 117: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINT, yytext()); - } - case 302: - break; - case 124: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext()); - } - case 303: - break; - case 13: { - return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong((yytext())))); - } - case 304: - break; - case 113: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TRACE, yytext()); - } - case 305: - break; - case 104: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext()); - } - case 306: - break; - case 148: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext()); - } - case 307: - break; - case 102: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext()); - } - case 308: - break; - case 32: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext()); - } - case 309: - break; - case 20: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext()); - } - case 310: - break; - case 169: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLES, yytext()); - } - case 311: - break; - case 174: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAPNUM, yytext()); - } - case 312: - break; - case 147: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETTIMER, yytext()); - } - case 313: - break; - case 52: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext()); - } - case 314: - break; - case 55: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext()); - } - case 315: - break; - case 2: { - yyline++; - } - case 316: - break; - case 14: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext()); - } - case 317: - break; - case 161: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETVERSION, yytext()); - } - case 318: - break; - case 73: { - string.append('\f'); - } - case 319: - break; - case 87: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext()); - } - case 320: - break; - case 136: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DYNAMIC, yytext()); - } - case 321: - break; - case 176: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.DUPLICATEMOVIECLIP, yytext()); - } - case 322: - break; - case 105: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PLAY, yytext()); - } - case 323: - break; - case 83: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.ORD, yytext()); - } - case 324: - break; - case 72: { - string.append('\t'); - } - case 325: - break; - case 48: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext()); - } - case 326: - break; - case 120: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext()); - } - case 327: - break; - case 130: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETURL, yytext()); - } - case 328: - break; - case 133: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext()); - } - case 329: - break; - case 118: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBCHR, yytext()); - } - case 330: - break; - case 15: { - string.setLength(0); - yybegin(CHARLITERAL); - } - case 331: - break; - case 42: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext()); - } - case 332: - break; - case 7: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext()); - } - case 333: - break; - case 99: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CALL, yytext()); - } - case 334: - break; - case 89: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext()); - } - case 335: - break; - case 173: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLESNUM, yytext()); - } - case 336: - break; - case 69: { - string.append('\b'); - } - case 337: - break; - case 100: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOP, yytext()); - } - case 338: - break; - case 155: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PREVFRAME, yytext()); - } - case 339: - break; - case 11: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext()); - } - case 340: - break; - case 46: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext()); - } - case 341: - break; - case 85: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext()); - } - case 342: - break; - case 65: { - string.append('\"'); - } - case 343: - break; case 109: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext()); } - case 344: + case 285: break; - case 167: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPALLSOUNDS, yytext()); + case 110: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext()); } - case 345: + case 286: break; - case 41: { - return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, new Double(Double.parseDouble((yytext())))); + case 111: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext()); } - case 346: + case 287: break; - case 91: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext()); + case 112: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext()); } - case 347: + case 288: break; - case 132: { - return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NUMBER_OP, yytext()); + case 113: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TRACE, yytext()); } - case 348: + case 289: break; - case 21: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext()); + case 114: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext()); } - case 349: + case 290: + break; + case 115: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext()); + } + case 291: + break; + case 116: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext()); + } + case 292: + break; + case 117: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINT, yytext()); + } + case 293: + break; + case 118: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBCHR, yytext()); + } + case 294: + break; + case 119: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBORD, yytext()); + } + case 295: + break; + case 120: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext()); + } + case 296: + break; + case 121: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.RANDOM, yytext()); + } + case 297: + break; + case 122: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.STATIC, yytext()); + } + case 298: break; case 123: { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.SUBSTR, yytext()); } + case 299: + break; + case 124: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext()); + } + case 300: + break; + case 125: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext()); + } + case 301: + break; + case 126: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext()); + } + case 302: + break; + case 127: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext()); + } + case 303: + break; + case 128: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LENGTH, yytext()); + } + case 304: + break; + case 129: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext()); + } + case 305: + break; + case 130: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETURL, yytext()); + } + case 306: + break; + case 131: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STRING_OP, yytext()); + } + case 307: + break; + case 132: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NUMBER_OP, yytext()); + } + case 308: + break; + case 133: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext()); + } + case 309: + break; + case 134: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NEWLINE, yytext()); + } + case 310: + break; + case 135: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext()); + } + case 311: + break; + case 136: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DYNAMIC, yytext()); + } + case 312: + break; + case 137: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext()); + } + case 313: + break; + case 138: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext()); + } + case 314: + break; + case 139: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext()); + } + case 315: + break; + case 140: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext()); + } + case 316: + break; + case 141: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPDRAG, yytext()); + } + case 317: + break; + case 142: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.OVERRIDE, yytext()); + } + case 318: + break; + case 143: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext()); + } + case 319: + break; + case 144: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext()); + } + case 320: + break; + case 145: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTNUM, yytext()); + } + case 321: + break; + case 146: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBLENGTH, yytext()); + } + case 322: + break; + case 147: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETTIMER, yytext()); + } + case 323: + break; + case 148: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext()); + } + case 324: + break; + case 149: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STARTDRAG, yytext()); + } + case 325: + break; + case 150: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NEXTFRAME, yytext()); + } + case 326: + break; + case 151: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.NAMESPACE, yytext()); + } + case 327: + break; + case 152: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext()); + } + case 328: + break; + case 153: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext()); + } + case 329: + break; + case 154: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIE, yytext()); + } + case 330: + break; + case 155: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PREVFRAME, yytext()); + } + case 331: + break; + case 156: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext()); + } + case 332: + break; + case 157: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TELLTARGET, yytext()); + } + case 333: + break; + case 158: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TARGETPATH, yytext()); + } + case 334: + break; + case 159: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext()); + } + case 335: + break; + case 160: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext()); + } + case 336: + break; + case 161: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETVERSION, yytext()); + } + case 337: + break; + case 162: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIE, yytext()); + } + case 338: + break; + case 163: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBSUBSTRING, yytext()); + } + case 339: + break; + case 164: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDSTOP, yytext()); + } + case 340: + break; + case 165: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDPLAY, yytext()); + } + case 341: + break; + case 166: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIENUM, yytext()); + } + case 342: + break; + case 167: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPALLSOUNDS, yytext()); + } + case 343: + break; + case 168: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IFFRAMELOADED, yytext()); + } + case 344: + break; + case 169: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLES, yytext()); + } + case 345: + break; + case 170: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAP, yytext()); + } + case 346: + break; + case 171: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIENUM, yytext()); + } + case 347: + break; + case 172: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.REMOVEMOVIECLIP, yytext()); + } + case 348: + break; + case 173: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLESNUM, yytext()); + } + case 349: + break; + case 174: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAPNUM, yytext()); + } case 350: break; - case 27: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext()); + case 175: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TOGGLEHIGHQUALITY, yytext()); } case 351: break; - case 1: { + case 176: { + return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.DUPLICATEMOVIECLIP, yytext()); } case 352: break; @@ -2314,4 +2456,5 @@ public final class ActionScriptLexer { } } } + } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java index a97a5f084..1b4fef0d4 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java @@ -397,7 +397,7 @@ public class ActionScriptParser { switch (s.type) { case FUNCTION: s = lex(); - expected(s, lexer.yyline(), SymbolType.IDENTIFIER); + expected(s, lexer.yyline(), SymbolType.IDENTIFIER, SymbolGroup.GLOBALFUNC); String fname = s.value.toString(); if (fname.equals(classNameStr)) { //constructor constr = (function(!isInterface, "", true, variables)); @@ -925,7 +925,7 @@ public class ActionScriptParser { break; case FUNCTION: s = lexer.lex(); - expected(s, lexer.yyline(), SymbolType.IDENTIFIER); + expected(s, lexer.yyline(), SymbolType.IDENTIFIER, SymbolGroup.GLOBALFUNC); ret = (function(true, s.value.toString(), false, variables)); break; case VAR: @@ -1553,7 +1553,7 @@ public class ActionScriptParser { case FUNCTION: s = lexer.lex(); String fname = ""; - if (s.type == SymbolType.IDENTIFIER) { + if (s.isType(SymbolType.IDENTIFIER,SymbolGroup.GLOBALFUNC)) { fname = s.value.toString(); } else { lexer.pushback(s); diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ParsedSymbol.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ParsedSymbol.java index be4edceec..37f0bedd1 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ParsedSymbol.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ParsedSymbol.java @@ -43,10 +43,17 @@ public class ParsedSymbol { return group.toString() + " " + type.toString() + " " + (value != null ? value.toString() : ""); } - public boolean isType(SymbolType... types) { - for (SymbolType t : types) { - if (type == t) { - return true; + public boolean isType(Object... types) { + for (Object t : types) { + if (t instanceof SymbolGroup) { + if (group == t) { + return true; + } + } + if (t instanceof SymbolType) { + if (type == t) { + return true; + } } } return false; diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex index 9c32d142f..a33045011 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex +++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex @@ -195,7 +195,7 @@ SingleCharacter = [^\r\n\'\\] "stop" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOP,yytext()); } "stopAllSounds" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOPALLSOUNDS,yytext()); } "toggleHighQuality" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TOGGLEHIGHQUALITY,yytext()); } - "ifFrameLoaded" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.IFFRAMELOADED,yytext()); } + "ifFrameLoaded" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IFFRAMELOADED,yytext()); } "ord" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.ORD,yytext()); } "chr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.CHR,yytext()); } "duplicateMovieClip" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.DUPLICATEMOVIECLIP,yytext()); }