diff --git a/example/hurricane-new.blog b/example/hurricane-new.blog index 21e79828..f1a05ab7 100644 --- a/example/hurricane-new.blog +++ b/example/hurricane-new.blog @@ -30,5 +30,5 @@ distinct DamageLevel Severe, Mild; obs Damage(First) = Severe; query First; -query Damage(A); -query Damage(B); +//query Damage(A); +//query Damage(B); diff --git a/src/main/java/blog/absyn/DistributionDec.java b/src/main/java/blog/absyn/DistributionDec.java index 30ad0fa1..acf395b3 100644 --- a/src/main/java/blog/absyn/DistributionDec.java +++ b/src/main/java/blog/absyn/DistributionDec.java @@ -3,35 +3,24 @@ import blog.symbol.Symbol; /** + * Distribution declaration + * * @author leili * @date Apr 22, 2012 * */ -public class DistributionDec extends Dec { - public Symbol name; - public Symbol classname; - public ExprList params; +public class DistributionDec extends FunctionDec { - public DistributionDec(int p, Symbol n, Symbol cn, ExprList a) { - this(0, p, n, cn, a); + public DistributionDec(int p, Symbol n, FieldList a, Ty r) { + this(0, p, n, a, r); } - public DistributionDec(int line, int col, Symbol n, Symbol cn, ExprList a) { - super(line, col); - name = n; - classname = cn; - params = a; + public DistributionDec(int line, int pos, Symbol n, FieldList a, Ty r) { + super(line, pos, n, a, r, null); } @Override public void printTree(Printer pr, int d) { - pr.indent(d); - pr.sayln("DistributionDec("); - pr.indent(d + 1); - pr.say(name.toString()); - pr.sayln(","); - pr.say(classname.toString()); - pr.sayln(","); - params.printTree(pr, d + 1); + // to be removed } } diff --git a/src/main/java/blog/model/BuiltInFunctions.java b/src/main/java/blog/model/BuiltInFunctions.java index f694c91c..135f7257 100644 --- a/src/main/java/blog/model/BuiltInFunctions.java +++ b/src/main/java/blog/model/BuiltInFunctions.java @@ -174,6 +174,11 @@ public class BuiltInFunctions { */ public static FixedFunction MINUS; + /** + * The unary function on integers x that returns - x. + */ + public static FixedFunction UMINUS; + /** * The function on integers x, y that returns x * y. */ @@ -229,6 +234,11 @@ public class BuiltInFunctions { */ public static FixedFunction RMINUS; + /** + * The unary function on a real x that returns - x. + */ + public static FixedFunction RUMINUS; + /** * The function on reals x, y that returns x * y. */ @@ -736,6 +746,34 @@ public Object getValue(List args) { MOD = new FixedFunction(MOD_NAME, argTypes, retType, modInterp); addFunction(MOD); + // Add non-random functions from integer to integer + argTypes.clear(); + argTypes.add(BuiltInTypes.INTEGER); + retType = BuiltInTypes.INTEGER; + + FunctionInterp uminusInterp = new AbstractFunctionInterp() { + public Object getValue(List args) { + Number arg1 = (Number) args.get(0); + return new Integer(-arg1.intValue()); + } + }; + UMINUS = new FixedFunction(MINUS_NAME, argTypes, retType, uminusInterp); + addFunction(UMINUS); + + // Add non-random functions from integer to integer + argTypes.clear(); + argTypes.add(BuiltInTypes.REAL); + retType = BuiltInTypes.REAL; + + FunctionInterp ruminusInterp = new AbstractFunctionInterp() { + public Object getValue(List args) { + Number arg1 = (Number) args.get(0); + return new Double(-arg1.intValue()); + } + }; + RUMINUS = new FixedFunction(MINUS_NAME, argTypes, retType, ruminusInterp); + addFunction(RUMINUS); + // Add non-random functions from (real x real) to real argTypes.clear(); argTypes.add(BuiltInTypes.REAL); diff --git a/src/main/java/blog/parse/BLOGLexer.java b/src/main/java/blog/parse/BLOGLexer.java index 6ce65747..d5aaf2b4 100644 --- a/src/main/java/blog/parse/BLOGLexer.java +++ b/src/main/java/blog/parse/BLOGLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.5.1 */ +/* The following code was generated by JFlex 1.6.0 */ /** * Copyright (c) 2005, 2012 Regents of the University of California @@ -38,6 +38,7 @@ /** * Using JFlex-1.5.1 * @author leili + * @date 2014-09 */ package blog.parse; import java_cup.runtime.ComplexSymbolFactory; @@ -47,8 +48,8 @@ /** * This class is a scanner generated by - * JFlex 1.5.1 - * from the specification file src/blog/parse/BLOGLexer.flex + * JFlex 1.6.0 + * from the specification file src/parser/BLOGLexer.flex */ public class BLOGLexer implements java_cup.runtime.Scanner { @@ -86,7 +87,7 @@ public class BLOGLexer implements java_cup.runtime.Scanner { "\1\55\1\1\1\0\1\47\1\101\1\36\1\25\1\45\1\46\1\33"+ "\1\37\1\31\2\1\1\50\1\27\1\52\1\26\1\21\1\41\1\43"+ "\1\51\1\42\1\44\2\1\1\32\1\20\1\1\1\70\1\63\1\67"+ - "\1\76\6\0\1\102\u1fa2\0\1\102\1\102\udfd6\0"; + "\1\76\6\0\1\102\u1fa2\0\1\102\1\102\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0"; /** * Translates characters to character classes @@ -107,15 +108,15 @@ public class BLOGLexer implements java_cup.runtime.Scanner { "\1\0\2\2\1\45\1\46\1\0\13\2\1\47\1\50"+ "\10\2\1\51\1\52\1\53\1\54\1\55\1\56\2\57"+ "\1\60\1\61\1\62\1\63\1\56\1\64\1\65\1\66"+ - "\1\67\1\44\1\0\2\2\1\46\1\0\6\2\1\70"+ - "\1\2\1\71\1\72\11\2\1\57\1\0\1\2\1\73"+ + "\1\67\1\44\1\0\3\2\1\46\1\0\6\2\1\70"+ + "\1\2\1\71\1\72\11\2\1\57\1\0\2\2\1\73"+ "\1\74\1\75\11\2\1\76\1\77\1\2\1\100\1\2"+ - "\1\101\1\0\1\2\1\102\6\2\1\103\2\2\1\104"+ - "\1\105\1\0\1\106\1\107\3\2\1\110\1\111\2\2"+ - "\1\112\7\2\1\113\7\2\1\114"; + "\1\101\1\0\2\2\1\102\6\2\1\103\2\2\1\104"+ + "\1\105\1\0\1\106\1\107\1\110\3\2\1\111\1\112"+ + "\2\2\1\113\7\2\1\114\7\2\1\115"; private static int [] zzUnpackAction() { - int [] result = new int[188]; + int [] result = new int[192]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -153,20 +154,20 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { "\0\u0dd0\0\u0e14\0\u0e58\0\u0e9c\0\314\0\314\0\314\0\314"+ "\0\314\0\314\0\u0ee0\0\u0f24\0\314\0\314\0\314\0\314"+ "\0\u0f68\0\314\0\314\0\314\0\314\0\u0fac\0\u0fac\0\u0ff0"+ - "\0\u1034\0\314\0\u1078\0\u10bc\0\u1100\0\u1144\0\u1188\0\u11cc"+ - "\0\u1210\0\u0110\0\u1254\0\u0110\0\u1298\0\u12dc\0\u1320\0\u1364"+ - "\0\u13a8\0\u13ec\0\u1430\0\u1474\0\u14b8\0\u14fc\0\314\0\u1540"+ - "\0\u1584\0\u0110\0\u0110\0\u0110\0\u15c8\0\u160c\0\u1650\0\u1694"+ - "\0\u16d8\0\u171c\0\u1760\0\u17a4\0\u17e8\0\u0110\0\u0110\0\u182c"+ - "\0\u0110\0\u1870\0\u0110\0\u18b4\0\u18f8\0\u0110\0\u193c\0\u1980"+ - "\0\u19c4\0\u1a08\0\u1a4c\0\u1a90\0\u0110\0\u1ad4\0\u1b18\0\u0110"+ - "\0\u0110\0\u1b5c\0\u0110\0\u0110\0\u1ba0\0\u1be4\0\u1c28\0\u0110"+ - "\0\u0110\0\u1c6c\0\u1cb0\0\314\0\u1cf4\0\u1d38\0\u1d7c\0\u1dc0"+ - "\0\u1e04\0\u1e48\0\u1e8c\0\u0110\0\u1ed0\0\u1f14\0\u1f58\0\u1f9c"+ - "\0\u1fe0\0\u2024\0\u2068\0\u0110"; + "\0\u1034\0\u1078\0\314\0\u10bc\0\u1100\0\u1144\0\u1188\0\u11cc"+ + "\0\u1210\0\u1254\0\u0110\0\u1298\0\u0110\0\u12dc\0\u1320\0\u1364"+ + "\0\u13a8\0\u13ec\0\u1430\0\u1474\0\u14b8\0\u14fc\0\u1540\0\314"+ + "\0\u1584\0\u15c8\0\u160c\0\u0110\0\u0110\0\u0110\0\u1650\0\u1694"+ + "\0\u16d8\0\u171c\0\u1760\0\u17a4\0\u17e8\0\u182c\0\u1870\0\u0110"+ + "\0\u0110\0\u18b4\0\u0110\0\u18f8\0\u0110\0\u193c\0\u1980\0\u19c4"+ + "\0\u0110\0\u1a08\0\u1a4c\0\u1a90\0\u1ad4\0\u1b18\0\u1b5c\0\u0110"+ + "\0\u1ba0\0\u1be4\0\u0110\0\u0110\0\u1c28\0\u0110\0\u0110\0\u0110"+ + "\0\u1c6c\0\u1cb0\0\u1cf4\0\u0110\0\u0110\0\u1d38\0\u1d7c\0\314"+ + "\0\u1dc0\0\u1e04\0\u1e48\0\u1e8c\0\u1ed0\0\u1f14\0\u1f58\0\u0110"+ + "\0\u1f9c\0\u1fe0\0\u2024\0\u2068\0\u20ac\0\u20f0\0\u2134\0\u0110"; private static int [] zzUnpackRowMap() { - int [] result = new int[188]; + int [] result = new int[192]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -239,148 +240,154 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { "\25\132\1\144\1\145\4\0\1\71\1\0\1\72\3\0"+ "\2\71\33\0\1\72\40\0\1\146\2\0\1\147\2\0"+ "\2\146\41\0\1\147\31\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\12\5\1\150\21\5\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\16\5\1\151"+ - "\13\5\1\151\1\5\26\0\1\5\2\0\6\76\1\152"+ - "\75\76\14\77\1\153\67\77\1\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\2\5\1\154\31\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\155\3\0\3\5\4\0\26\5"+ - "\1\155\5\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\3\5\1\156\20\5\1\156\7\5"+ + "\3\5\4\0\1\150\11\5\1\151\10\5\1\150\10\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\5\5\1\157\25\5\1\157\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\5\5\1\160"+ - "\25\5\1\160\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\16\5\1\161\13\5\1\161\1\5"+ + "\4\0\16\5\1\152\13\5\1\152\1\5\26\0\1\5"+ + "\2\0\6\76\1\153\75\76\14\77\1\154\67\77\1\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\2\5\1\155"+ + "\31\5\26\0\1\5\3\0\2\5\1\0\1\156\3\0"+ + "\3\5\4\0\26\5\1\156\5\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\3\5\1\157"+ + "\20\5\1\157\7\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\5\5\1\160\25\5\1\160"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\16\5\1\162\13\5\1\162\1\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\12\5"+ - "\1\163\21\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\2\5\1\164\31\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\3\5"+ - "\1\165\20\5\1\165\7\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\13\5\1\166\20\5"+ - "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\5\5\1\167\25\5\1\167\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\4\5\1\170"+ - "\23\5\1\170\3\5\26\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\16\5\1\171\13\5\1\171"+ + "\4\0\5\5\1\161\25\5\1\161\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\16\5\1\162"+ + "\13\5\1\162\1\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\16\5\1\163\13\5\1\163"+ "\1\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\16\5\1\172\13\5\1\172\1\5\26\0"+ - "\1\5\3\0\2\5\1\0\1\173\3\0\3\5\4\0"+ - "\26\5\1\173\5\5\26\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\25\5\1\174\6\5\26\0"+ - "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ - "\31\5\1\175\2\5\26\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\31\5\1\176\2\5\26\0"+ - "\1\5\12\0\2\177\102\0\2\133\74\0\1\200\1\0"+ - "\1\200\3\0\3\200\10\0\1\200\1\0\1\200\2\0"+ - "\1\200\5\0\1\200\6\0\3\200\31\0\1\200\4\0"+ - "\1\146\5\0\2\146\73\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\16\5\1\201\13\5\1\201\1\5\26\0"+ - "\1\5\3\0\2\5\1\0\1\202\3\0\3\5\4\0"+ - "\26\5\1\202\5\5\26\0\1\5\2\0\13\77\1\152"+ - "\1\153\67\77\1\0\2\5\1\0\1\203\3\0\3\5"+ - "\4\0\26\5\1\203\5\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\5\5\1\204\25\5"+ - "\1\204\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\4\5\1\205\23\5\1\205\3\5\26\0"+ + "\3\5\4\0\12\5\1\164\21\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\2\5\1\165"+ + "\31\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\3\5\1\166\20\5\1\166\7\5\26\0"+ "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ - "\6\5\1\206\25\5\26\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\3\5\1\207\20\5\1\207"+ - "\7\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\1\210\22\5\1\210\10\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\14\5"+ - "\1\211\17\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\4\5\1\212\23\5\1\212\3\5"+ - "\26\0\1\5\3\0\2\5\1\0\1\213\3\0\3\5"+ - "\4\0\26\5\1\213\5\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\214\3\0\3\5\4\0\26\5\1\214\5\5"+ + "\13\5\1\167\20\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\5\5\1\170\25\5\1\170"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\3\5\1\215\20\5\1\215\7\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\216\3\0\3\5\4\0\26\5"+ - "\1\216\5\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\1\217\22\5\1\217\10\5\26\0"+ - "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ - "\3\5\1\220\20\5\1\220\7\5\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\26\5\1\221"+ - "\5\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\32\5\1\222\1\5\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\31\5\1\223"+ - "\2\5\26\0\1\5\4\0\1\224\1\0\1\224\3\0"+ - "\3\224\10\0\1\224\1\0\1\224\2\0\1\224\5\0"+ - "\1\224\6\0\3\224\31\0\1\224\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\1\225\22\5\1\225\10\5"+ + "\4\0\4\5\1\171\23\5\1\171\3\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\16\5"+ + "\1\172\13\5\1\172\1\5\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\16\5\1\173\13\5"+ + "\1\173\1\5\26\0\1\5\3\0\2\5\1\0\1\174"+ + "\3\0\3\5\4\0\26\5\1\174\5\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\25\5"+ + "\1\175\6\5\26\0\1\5\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\31\5\1\176\2\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\31\5"+ + "\1\177\2\5\26\0\1\5\12\0\2\200\102\0\2\133"+ + "\74\0\1\201\1\0\1\201\3\0\3\201\10\0\1\201"+ + "\1\0\1\201\2\0\1\201\5\0\1\201\6\0\3\201"+ + "\31\0\1\201\4\0\1\146\5\0\2\146\73\0\2\5"+ + "\1\0\1\202\3\0\3\5\4\0\26\5\1\202\5\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\10\5\1\226\23\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\7\5\1\227\24\5"+ + "\4\0\16\5\1\203\13\5\1\203\1\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\204\3\0\3\5\4\0\26\5"+ + "\1\204\5\5\26\0\1\5\2\0\13\77\1\153\1\154"+ + "\67\77\1\0\2\5\1\0\1\205\3\0\3\5\4\0"+ + "\26\5\1\205\5\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\5\5\1\206\25\5\1\206"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\4\5\1\230\23\5\1\230\3\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\3\5"+ - "\1\231\6\5\1\232\11\5\1\231\7\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\12\5"+ - "\1\233\21\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\21\5\1\234\7\5\1\234\2\5"+ + "\4\0\4\5\1\207\23\5\1\207\3\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\6\5"+ + "\1\210\25\5\26\0\1\5\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\3\5\1\211\20\5\1\211\7\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\6\5\1\235\25\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\3\5\1\236\20\5"+ - "\1\236\7\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\4\5\1\237\23\5\1\237\3\5"+ + "\4\0\1\212\22\5\1\212\10\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\14\5\1\213"+ + "\17\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\4\5\1\214\23\5\1\214\3\5\26\0"+ + "\1\5\3\0\2\5\1\0\1\215\3\0\3\5\4\0"+ + "\26\5\1\215\5\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\216\3\0\3\5\4\0\26\5\1\216\5\5\26\0"+ + "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ + "\3\5\1\217\20\5\1\217\7\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\220\3\0\3\5\4\0\26\5\1\220"+ + "\5\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\1\221\22\5\1\221\10\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\3\5"+ + "\1\222\20\5\1\222\7\5\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\26\5\1\223\5\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\1\5\1\240\32\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\26\5\1\241\5\5"+ - "\26\0\1\5\4\0\1\242\1\0\1\242\3\0\3\242"+ - "\10\0\1\242\1\0\1\242\2\0\1\242\5\0\1\242"+ - "\6\0\3\242\31\0\1\242\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\16\5\1\243\13\5\1\243\1\5"+ + "\4\0\32\5\1\224\1\5\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\31\5\1\225\2\5"+ + "\26\0\1\5\4\0\1\226\1\0\1\226\3\0\3\226"+ + "\10\0\1\226\1\0\1\226\2\0\1\226\5\0\1\226"+ + "\6\0\3\226\31\0\1\226\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\3\5\1\227\20\5\1\227\7\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\10\5\1\244\23\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\5\5\1\245\25\5"+ - "\1\245\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\12\5\1\246\21\5\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\5\5\1\247"+ - "\25\5\1\247\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\5\5\1\250\25\5\1\250\26\0"+ + "\4\0\1\230\22\5\1\230\10\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\10\5\1\231"+ + "\23\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\7\5\1\232\24\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\4\5\1\233"+ + "\23\5\1\233\3\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\3\5\1\234\6\5\1\235"+ + "\11\5\1\234\7\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\12\5\1\236\21\5\26\0"+ "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ - "\21\5\1\251\7\5\1\251\2\5\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\4\5\1\252"+ - "\23\5\1\252\3\5\26\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\5\5\1\253\25\5\1\253"+ - "\26\0\1\5\4\0\1\254\1\0\1\254\3\0\3\254"+ - "\10\0\1\254\1\0\1\254\2\0\1\254\5\0\1\254"+ - "\6\0\3\254\31\0\1\254\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\6\5\1\255\25\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\2\5\1\256\4\0"+ - "\34\5\26\0\1\256\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\17\5\1\257\14\5\26\0\1\5\3\0"+ - "\2\5\1\0\1\5\3\0\3\5\4\0\1\260\22\5"+ - "\1\260\10\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\1\261\22\5\1\261\10\5\26\0"+ + "\21\5\1\237\7\5\1\237\2\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\6\5\1\240"+ + "\25\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\3\5\1\241\20\5\1\241\7\5\26\0"+ "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ - "\7\5\1\262\24\5\26\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\3\5\4\0\15\5\1\263\7\5\1\263"+ - "\6\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ - "\3\5\4\0\1\264\22\5\1\264\10\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\12\5"+ - "\1\265\21\5\26\0\1\5\3\0\2\5\1\0\1\266"+ - "\3\0\3\5\4\0\26\5\1\266\5\5\26\0\1\5"+ - "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\10\5"+ - "\1\235\23\5\26\0\1\5\3\0\2\5\1\0\1\5"+ - "\3\0\3\5\4\0\1\267\22\5\1\267\10\5\26\0"+ + "\4\5\1\242\23\5\1\242\3\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\1\5\1\243"+ + "\32\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\26\5\1\244\5\5\26\0\1\5\4\0"+ + "\1\245\1\0\1\245\3\0\3\245\10\0\1\245\1\0"+ + "\1\245\2\0\1\245\5\0\1\245\6\0\3\245\31\0"+ + "\1\245\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ + "\5\5\1\246\25\5\1\246\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\16\5\1\247\13\5"+ + "\1\247\1\5\26\0\1\5\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\10\5\1\250\23\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\5\5"+ + "\1\251\25\5\1\251\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\12\5\1\252\21\5\26\0"+ "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ - "\5\5\1\270\25\5\1\270\26\0\1\5\3\0\2\5"+ - "\1\0\1\271\3\0\3\5\4\0\26\5\1\271\5\5"+ - "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\12\5\1\272\21\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\14\5\1\250\17\5"+ + "\5\5\1\253\25\5\1\253\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\5\5\1\254\25\5"+ + "\1\254\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\21\5\1\255\7\5\1\255\2\5\26\0"+ + "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ + "\4\5\1\256\23\5\1\256\3\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\5\5\1\257"+ + "\25\5\1\257\26\0\1\5\4\0\1\260\1\0\1\260"+ + "\3\0\3\260\10\0\1\260\1\0\1\260\2\0\1\260"+ + "\5\0\1\260\6\0\3\260\31\0\1\260\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\6\5\1\261\25\5"+ + "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\2\5"+ + "\1\262\4\0\34\5\26\0\1\262\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\17\5\1\263\14\5\26\0"+ + "\1\5\3\0\2\5\1\0\1\5\3\0\3\5\4\0"+ + "\1\264\22\5\1\264\10\5\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\1\265\22\5\1\265"+ + "\10\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\7\5\1\266\24\5\26\0\1\5\3\0"+ + "\2\5\1\0\1\5\3\0\3\5\4\0\15\5\1\267"+ + "\7\5\1\267\6\5\26\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\3\5\4\0\1\270\22\5\1\270\10\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\6\5\1\264\25\5\26\0\1\5\3\0\2\5"+ - "\1\0\1\5\3\0\3\5\4\0\7\5\1\273\24\5"+ + "\4\0\12\5\1\271\21\5\26\0\1\5\3\0\2\5"+ + "\1\0\1\272\3\0\3\5\4\0\26\5\1\272\5\5"+ "\26\0\1\5\3\0\2\5\1\0\1\5\3\0\3\5"+ - "\4\0\5\5\1\274\25\5\1\274\26\0\1\5\2\0"; + "\4\0\10\5\1\240\23\5\26\0\1\5\3\0\2\5"+ + "\1\0\1\5\3\0\3\5\4\0\1\273\22\5\1\273"+ + "\10\5\26\0\1\5\3\0\2\5\1\0\1\5\3\0"+ + "\3\5\4\0\5\5\1\274\25\5\1\274\26\0\1\5"+ + "\3\0\2\5\1\0\1\275\3\0\3\5\4\0\26\5"+ + "\1\275\5\5\26\0\1\5\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\12\5\1\276\21\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\14\5"+ + "\1\254\17\5\26\0\1\5\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\6\5\1\270\25\5\26\0\1\5"+ + "\3\0\2\5\1\0\1\5\3\0\3\5\4\0\7\5"+ + "\1\277\24\5\26\0\1\5\3\0\2\5\1\0\1\5"+ + "\3\0\3\5\4\0\5\5\1\300\25\5\1\300\26\0"+ + "\1\5\2\0"; private static int [] zzUnpackTrans() { - int [] result = new int[8364]; + int [] result = new int[8568]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -421,11 +428,11 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { "\3\0\1\11\5\1\1\11\1\1\3\11\20\1\3\11"+ "\4\1\21\11\1\1\1\11\1\1\1\0\2\1\1\11"+ "\1\1\1\0\25\1\6\11\2\1\4\11\1\1\4\11"+ - "\1\1\1\0\2\1\1\11\1\0\23\1\1\11\1\0"+ - "\23\1\1\0\15\1\1\0\11\1\1\11\20\1"; + "\1\1\1\0\3\1\1\11\1\0\23\1\1\11\1\0"+ + "\24\1\1\0\16\1\1\0\12\1\1\11\20\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[188]; + int [] result = new int[192]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -491,6 +498,14 @@ the source of the yytext() string */ /** denotes if the user-EOF-code has already been executed */ private boolean zzEOFDone; + + /** + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. + */ + private int zzFinalHighSurrogate = 0; /* user code: */ // For assembling string and character constants @@ -546,7 +561,6 @@ public BLOGLexer(java.io.Reader r, ComplexSymbolFactory sf, blog.msg.ErrorMsg e) /** * Creates a new scanner - * There is also a java.io.InputStream version of this constructor. * * @param in the java.io.Reader to read input from. */ @@ -555,16 +569,6 @@ public BLOGLexer(java.io.Reader in) { this.zzReader = in; } - /** - * Creates a new scanner. - * There is also java.io.Reader version of this constructor. - * - * @param in the java.io.Inputstream to read input from. - */ - public BLOGLexer(java.io.InputStream in) { - this(new java.io.InputStreamReader - (in, java.nio.charset.Charset.forName("UTF-8"))); - } /** * Unpacks the compressed character translation table. @@ -573,10 +577,10 @@ public BLOGLexer(java.io.InputStream in) { * @return the unpacked character translation table */ private static char [] zzUnpackCMap(String packed) { - char [] map = new char[0x10000]; + char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 194) { + while (i < 226) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -596,6 +600,8 @@ private boolean zzRefill() throws java.io.IOException { /* first: make room (if you can) */ if (zzStartRead > 0) { + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; System.arraycopy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead-zzStartRead); @@ -608,33 +614,38 @@ private boolean zzRefill() throws java.io.IOException { } /* is the buffer big enough? */ - if (zzCurrentPos >= zzBuffer.length) { + if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { /* if not: blow it up */ - char newBuffer[] = new char[zzCurrentPos*2]; + char newBuffer[] = new char[zzBuffer.length*2]; System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); zzBuffer = newBuffer; + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; } - /* finally: fill the buffer with new input */ - int numRead = zzReader.read(zzBuffer, zzEndRead, - zzBuffer.length-zzEndRead); + /* fill the buffer with new input */ + int requested = zzBuffer.length - zzEndRead; + int totalRead = 0; + while (totalRead < requested) { + int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead); + if (numRead == -1) { + break; + } + totalRead += numRead; + } - if (numRead > 0) { - zzEndRead+= numRead; + if (totalRead > 0) { + zzEndRead += totalRead; + if (totalRead == requested) { /* possibly more input available */ + if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { + --zzEndRead; + zzFinalHighSurrogate = 1; + } + } return false; } - // unlikely but not impossible: read 0 characters, but not at end of stream - if (numRead == 0) { - int c = zzReader.read(); - if (c == -1) { - return true; - } else { - zzBuffer[zzEndRead++] = (char) c; - return false; - } - } - // numRead < 0 + // totalRead = 0: End of stream return true; } @@ -670,6 +681,7 @@ public final void yyreset(java.io.Reader reader) { zzEOFDone = false; zzEndRead = zzStartRead = 0; zzCurrentPos = zzMarkedPos = 0; + zzFinalHighSurrogate = 0; yyline = yychar = yycolumn = 0; zzLexicalState = YYINITIAL; if (zzBuffer.length > ZZ_BUFFERSIZE) @@ -810,9 +822,14 @@ public java_cup.runtime.Symbol next_token() throws java.io.IOException { yychar+= zzMarkedPosL-zzStartRead; boolean zzR = false; - for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL; - zzCurrentPosL++) { - switch (zzBufferL[zzCurrentPosL]) { + int zzCh; + int zzCharCount; + for (zzCurrentPosL = zzStartRead ; + zzCurrentPosL < zzMarkedPosL ; + zzCurrentPosL += zzCharCount ) { + zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL); + zzCharCount = Character.charCount(zzCh); + switch (zzCh) { case '\u000B': case '\u000C': case '\u0085': @@ -837,7 +854,7 @@ public java_cup.runtime.Symbol next_token() throws java.io.IOException { break; default: zzR = false; - yycolumn++; + yycolumn += zzCharCount; } } @@ -876,8 +893,10 @@ else if (zzAtEOF) zzForAction: { while (true) { - if (zzCurrentPosL < zzEndReadL) - zzInput = zzBufferL[zzCurrentPosL++]; + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } else if (zzAtEOF) { zzInput = YYEOF; break zzForAction; @@ -897,7 +916,8 @@ else if (zzAtEOF) { break zzForAction; } else { - zzInput = zzBufferL[zzCurrentPosL++]; + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); } } int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; @@ -921,136 +941,136 @@ else if (zzAtEOF) { case 1: { error("Unrecognized character!"); } - case 77: break; + case 78: break; case 2: { return symbol(BLOGTokenConstants.ID, yytext()); } - case 78: break; + case 79: break; case 3: { return symbol(BLOGTokenConstants.INT_LITERAL, new Integer(yytext())); } - case 79: break; + case 80: break; case 4: { return symbol(BLOGTokenConstants.DOT); } - case 80: break; + case 81: break; case 5: { return symbol(BLOGTokenConstants.MINUS); } - case 81: break; + case 82: break; case 6: { /* Do nothing */ } - case 82: break; + case 83: break; case 7: { return symbol(BLOGTokenConstants.DIV); } - case 83: break; + case 84: break; case 8: { return symbol(BLOGTokenConstants.MULT); } - case 84: break; + case 85: break; case 9: { yybegin (STR_LIT); } - case 85: break; + case 86: break; case 10: { yybegin (CHAR_LIT); } - case 86: break; + case 87: break; case 11: { return symbol(BLOGTokenConstants.PLUS); } - case 87: break; + case 88: break; case 12: { return symbol(BLOGTokenConstants.MOD); } - case 88: break; + case 89: break; case 13: { return symbol(BLOGTokenConstants.POWER); } - case 89: break; + case 90: break; case 14: { return symbol(BLOGTokenConstants.LT); } - case 90: break; + case 91: break; case 15: { return symbol(BLOGTokenConstants.GT); } - case 91: break; + case 92: break; case 16: { return symbol(BLOGTokenConstants.EQ); } - case 92: break; + case 93: break; case 17: { return symbol(BLOGTokenConstants.NOT); } - case 93: break; + case 94: break; case 18: { return symbol(BLOGTokenConstants.AND); } - case 94: break; + case 95: break; case 19: { return symbol(BLOGTokenConstants.OR); } - case 95: break; + case 96: break; case 20: { return symbol(BLOGTokenConstants.AT); } - case 96: break; + case 97: break; case 21: { return symbol(BLOGTokenConstants.LPAREN); } - case 97: break; + case 98: break; case 22: { return symbol(BLOGTokenConstants.RPAREN); } - case 98: break; + case 99: break; case 23: { return symbol(BLOGTokenConstants.RBRACE); } - case 99: break; + case 100: break; case 24: { return symbol(BLOGTokenConstants.LBRACE); } - case 100: break; + case 101: break; case 25: { return symbol(BLOGTokenConstants.LBRACKET); } - case 101: break; + case 102: break; case 26: { return symbol(BLOGTokenConstants.RBRACKET); } - case 102: break; + case 103: break; case 27: { return symbol(BLOGTokenConstants.SEMI); } - case 103: break; + case 104: break; case 28: { return symbol(BLOGTokenConstants.COLON); } - case 104: break; + case 105: break; case 29: { return symbol(BLOGTokenConstants.COMMA); } - case 105: break; + case 106: break; case 30: { return symbol(BLOGTokenConstants.DISTRIB); } - case 106: break; + case 107: break; case 31: { return symbol(BLOGTokenConstants.NUMSIGN); } - case 107: break; + case 108: break; case 32: { /* Char in quotes, not matched by any rule above */ string_buf.append(yytext()); } - case 108: break; + case 109: break; case 33: { error("Line terminator in string or character literal."); } - case 109: break; + case 110: break; case 34: { /* closing double-quote not matched by \" rule below */ Symbol s = symbol(BLOGTokenConstants.STRING_LITERAL, @@ -1059,7 +1079,7 @@ else if (zzAtEOF) { yybegin(YYINITIAL); return s; } - case 110: break; + case 111: break; case 35: { /* closing single-quote not matched by \' rule below */ Symbol s; @@ -1074,175 +1094,179 @@ else if (zzAtEOF) { yybegin(YYINITIAL); } } - case 111: break; + case 112: break; case 36: { return symbol(BLOGTokenConstants.DOUBLE_LITERAL, new Double(yytext())); } - case 112: break; + case 113: break; case 37: { return symbol(BLOGTokenConstants.RIGHTARROW); } - case 113: break; + case 114: break; case 38: { /* ignore */ } - case 114: break; + case 115: break; case 39: { return symbol(BLOGTokenConstants.IN); } - case 115: break; + case 116: break; case 40: { return symbol(BLOGTokenConstants.IF); } - case 116: break; + case 117: break; case 41: { return symbol(BLOGTokenConstants.LEQ); } - case 117: break; + case 118: break; case 42: { return symbol(BLOGTokenConstants.GEQ); } - case 118: break; + case 119: break; case 43: { return symbol(BLOGTokenConstants.DOUBLERIGHTARROW); } - case 119: break; + case 120: break; case 44: { return symbol(BLOGTokenConstants.EQEQ); } - case 120: break; + case 121: break; case 45: { return symbol(BLOGTokenConstants.NEQ); } - case 121: break; + case 122: break; case 46: { error("Unrecognized escape character: \'" + yytext() + "\'"); } - case 122: break; + case 123: break; case 47: { int code = Integer.parseInt(yytext().substring(1), 8); string_buf.append((char) code); } - case 123: break; + case 124: break; case 48: { string_buf.append('\"'); } - case 124: break; + case 125: break; case 49: { string_buf.append('\''); } - case 125: break; + case 126: break; case 50: { string_buf.append('\t'); } - case 126: break; + case 127: break; case 51: { string_buf.append('\r'); } - case 127: break; + case 128: break; case 52: { string_buf.append('\f'); } - case 128: break; + case 129: break; case 53: { string_buf.append('\n'); } - case 129: break; + case 130: break; case 54: { string_buf.append('\\'); } - case 130: break; + case 131: break; case 55: { string_buf.append('\b'); } - case 131: break; + case 132: break; case 56: { return symbol(BLOGTokenConstants.OBS); } - case 132: break; + case 133: break; case 57: { return symbol(BLOGTokenConstants.MAP); } - case 133: break; + case 134: break; case 58: { return symbol(BLOGTokenConstants.FOR); } - case 134: break; + case 135: break; case 59: { return symbol(BLOGTokenConstants.ELSE); } - case 135: break; + case 136: break; case 60: { return symbol(BLOGTokenConstants.TYPE); } - case 136: break; + case 137: break; case 61: { return symbol(BLOGTokenConstants.THEN); } - case 137: break; + case 138: break; case 62: { return symbol(BLOGTokenConstants.CASE); } - case 138: break; + case 139: break; case 63: { return symbol(BLOGTokenConstants.LIST); } - case 139: break; + case 140: break; case 64: { return symbol(BLOGTokenConstants.BOOLEAN_LITERAL, new Boolean(true)); } - case 140: break; + case 141: break; case 65: { return symbol(BLOGTokenConstants.NULL); } - case 141: break; + case 142: break; case 66: { return symbol(BLOGTokenConstants.PARAM); } - case 142: break; + case 143: break; case 67: { return symbol(BLOGTokenConstants.FIXED); } - case 143: break; + case 144: break; case 68: { return symbol(BLOGTokenConstants.QUERY); } - case 144: break; + case 145: break; case 69: { return symbol(BLOGTokenConstants.BOOLEAN_LITERAL, new Boolean(false)); } - case 145: break; + case 146: break; case 70: - { return symbol(BLOGTokenConstants.EXISTS); + { return symbol(BLOGTokenConstants.EXTERN); } - case 146: break; + case 147: break; case 71: - { return symbol(BLOGTokenConstants.RANDOM); + { return symbol(BLOGTokenConstants.EXISTS); } - case 147: break; + case 148: break; case 72: - { return symbol(BLOGTokenConstants.ORIGIN); + { return symbol(BLOGTokenConstants.RANDOM); } - case 148: break; + case 149: break; case 73: - { return symbol(BLOGTokenConstants.FORALL); + { return symbol(BLOGTokenConstants.ORIGIN); } - case 149: break; + case 150: break; case 74: + { return symbol(BLOGTokenConstants.FORALL); + } + case 151: break; + case 75: { int code = Integer.parseInt(yytext().substring(2), 16); string_buf.append((char) code); } - case 150: break; - case 75: + case 152: break; + case 76: { return symbol(BLOGTokenConstants.DISTINCT); } - case 151: break; - case 76: + case 153: break; + case 77: { return symbol(BLOGTokenConstants.DISTRIBUTION); } - case 152: break; + case 154: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; diff --git a/src/main/java/blog/parse/BLOGParser.java b/src/main/java/blog/parse/BLOGParser.java index f37d11ae..785c1f9e 100644 --- a/src/main/java/blog/parse/BLOGParser.java +++ b/src/main/java/blog/parse/BLOGParser.java @@ -1,7 +1,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11b 20140611 (SVN rev 31) -// Wed Jun 25 01:03:12 PDT 2014 +// Thu Sep 25 23:44:12 PDT 2014 //---------------------------------------------------- package blog.parse; @@ -11,7 +11,7 @@ import java_cup.runtime.ComplexSymbolFactory.Location; /** CUP v0.11b 20140611 (SVN rev 31) generated parser. - * @version Wed Jun 25 01:03:12 PDT 2014 + * @version Thu Sep 25 23:44:12 PDT 2014 */ public class BLOGParser extends java_cup.runtime.lr_parser { @@ -27,55 +27,56 @@ public class BLOGParser extends java_cup.runtime.lr_parser { /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { - "\000\236\000\002\002\004\000\002\002\003\000\002\003" + + "\000\240\000\002\002\004\000\002\002\003\000\002\003" + "\002\000\002\003\003\000\002\004\005\000\002\004\004" + "\000\002\004\004\000\002\004\003\000\002\005\003\000" + "\002\005\003\000\002\005\003\000\002\005\003\000\002" + "\006\003\000\002\006\003\000\002\006\003\000\002\006" + "\003\000\002\006\003\000\002\006\003\000\002\006\003" + - "\000\002\006\003\000\002\007\004\000\002\007\004\000" + - "\002\051\003\000\002\051\003\000\002\051\003\000\002" + - "\051\003\000\002\052\006\000\002\055\004\000\002\054" + - "\004\000\002\054\005\000\002\053\010\000\002\057\002" + - "\000\002\057\003\000\002\057\003\000\002\060\004\000" + - "\002\060\005\000\002\056\004\000\002\056\004\000\002" + - "\061\006\000\002\061\004\000\002\061\006\000\002\061" + - "\005\000\002\061\005\000\002\010\010\000\002\010\004" + - "\000\002\011\007\000\002\011\005\000\002\011\004\000" + - "\002\012\006\000\002\012\005\000\002\012\007\000\002" + - "\012\005\000\002\012\004\000\002\062\002\000\002\062" + - "\005\000\002\063\007\000\002\063\007\000\002\063\006" + - "\000\002\063\006\000\002\063\005\000\002\063\004\000" + - "\002\013\010\000\002\013\010\000\002\013\007\000\002" + - "\013\007\000\002\013\007\000\002\013\004\000\002\014" + - "\005\000\002\065\003\000\002\065\005\000\002\065\004" + - "\000\002\065\005\000\002\064\003\000\002\064\006\000" + - "\002\015\011\000\002\066\003\000\002\066\005\000\002" + - "\040\004\000\002\016\005\000\002\016\007\000\002\023" + - "\003\000\002\023\003\000\002\023\003\000\002\023\003" + - "\000\002\023\003\000\002\023\003\000\002\023\003\000" + - "\002\023\003\000\002\023\003\000\002\023\003\000\002" + - "\024\003\000\002\024\003\000\002\024\003\000\002\024" + - "\003\000\002\024\003\000\002\024\003\000\002\033\005" + - "\000\002\033\005\000\002\033\005\000\002\033\005\000" + - "\002\033\005\000\002\033\005\000\002\033\005\000\002" + - "\033\005\000\002\033\005\000\002\033\005\000\002\033" + - "\005\000\002\033\005\000\002\033\005\000\002\033\005" + - "\000\002\033\005\000\002\033\006\000\002\033\003\000" + - "\002\034\004\000\002\034\004\000\002\034\004\000\002" + - "\034\005\000\002\025\006\000\002\025\006\000\002\037" + - "\006\000\002\037\005\000\002\037\003\000\002\030\010" + - "\000\002\030\006\000\002\031\006\000\002\045\003\000" + - "\002\045\002\000\002\046\005\000\002\046\003\000\002" + - "\046\005\000\002\044\004\000\002\044\004\000\002\047" + - "\004\000\002\047\004\000\002\036\005\000\002\050\007" + - "\000\002\050\005\000\002\027\004\000\002\027\004\000" + - "\002\027\004\000\002\026\005\000\002\026\005\000\002" + - "\026\005\000\002\041\003\000\002\041\003\000\002\042" + - "\005\000\002\035\006\000\002\032\002\000\002\032\004" + - "\000\002\043\005\000\002\017\004\000\002\017\004\000" + - "\002\021\003\000\002\022\005\000\002\022\005\000\002" + - "\022\005\000\002\020\004\000\002\020\004" }); + "\000\002\006\003\000\002\006\003\000\002\007\004\000" + + "\002\007\004\000\002\052\003\000\002\052\003\000\002" + + "\052\003\000\002\052\003\000\002\053\006\000\002\056" + + "\004\000\002\055\004\000\002\055\005\000\002\054\010" + + "\000\002\060\002\000\002\060\003\000\002\060\003\000" + + "\002\061\004\000\002\061\005\000\002\057\004\000\002" + + "\057\004\000\002\062\006\000\002\062\004\000\002\062" + + "\006\000\002\062\005\000\002\062\005\000\002\010\010" + + "\000\002\010\004\000\002\011\007\000\002\011\005\000" + + "\002\011\004\000\002\012\006\000\002\012\005\000\002" + + "\012\007\000\002\012\005\000\002\012\004\000\002\063" + + "\002\000\002\063\005\000\002\064\007\000\002\064\007" + + "\000\002\064\006\000\002\064\006\000\002\064\005\000" + + "\002\064\004\000\002\013\010\000\002\013\010\000\002" + + "\013\007\000\002\013\007\000\002\013\007\000\002\013" + + "\004\000\002\014\005\000\002\066\003\000\002\066\005" + + "\000\002\066\004\000\002\066\005\000\002\065\003\000" + + "\002\065\006\000\002\015\006\000\002\016\006\000\002" + + "\067\003\000\002\067\005\000\002\041\004\000\002\017" + + "\005\000\002\017\007\000\002\024\003\000\002\024\003" + + "\000\002\024\003\000\002\024\003\000\002\024\003\000" + + "\002\024\003\000\002\024\003\000\002\024\003\000\002" + + "\024\003\000\002\024\003\000\002\025\003\000\002\025" + + "\003\000\002\025\003\000\002\025\003\000\002\025\003" + + "\000\002\025\003\000\002\034\005\000\002\034\005\000" + + "\002\034\005\000\002\034\005\000\002\034\005\000\002" + + "\034\005\000\002\034\005\000\002\034\005\000\002\034" + + "\005\000\002\034\005\000\002\034\005\000\002\034\005" + + "\000\002\034\005\000\002\034\005\000\002\034\005\000" + + "\002\034\006\000\002\034\003\000\002\035\004\000\002" + + "\035\004\000\002\035\004\000\002\035\005\000\002\026" + + "\006\000\002\026\006\000\002\040\006\000\002\040\005" + + "\000\002\040\003\000\002\031\010\000\002\031\006\000" + + "\002\032\006\000\002\046\003\000\002\046\002\000\002" + + "\047\005\000\002\047\003\000\002\047\005\000\002\045" + + "\004\000\002\045\004\000\002\050\004\000\002\050\004" + + "\000\002\037\005\000\002\051\007\000\002\051\005\000" + + "\002\030\004\000\002\030\004\000\002\030\004\000\002" + + "\027\005\000\002\027\005\000\002\027\005\000\002\042" + + "\003\000\002\042\003\000\002\043\005\000\002\036\006" + + "\000\002\033\002\000\002\033\004\000\002\044\005\000" + + "\002\020\004\000\002\020\004\000\002\022\003\000\002" + + "\023\005\000\002\023\005\000\002\023\005\000\002\021" + + "\004\000\002\021\004" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} @@ -83,811 +84,857 @@ public class BLOGParser extends java_cup.runtime.lr_parser { /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { - "\000\u011b\000\032\002\uffff\003\026\011\021\012\022\013" + - "\030\014\020\015\025\016\032\017\017\020\035\023\027" + - "\066\004\001\002\000\012\003\u0107\035\042\055\uffcc\070" + - "\u010a\001\002\000\034\002\ufff7\003\ufff7\011\ufff7\012\ufff7" + - "\013\ufff7\014\ufff7\015\ufff7\016\ufff7\017\ufff7\020\ufff7\023" + - "\ufff7\063\ufff7\066\ufff7\001\002\000\034\002\uffef\003\uffef" + - "\011\uffef\012\uffef\013\uffef\014\uffef\015\uffef\016\uffef\017" + - "\uffef\020\uffef\023\uffef\063\uffef\066\uffef\001\002\000\004" + - "\002\ufffe\001\002\000\034\002\ufff5\003\ufff5\011\ufff5\012" + - "\ufff5\013\ufff5\014\ufff5\015\ufff5\016\ufff5\017\ufff5\020\ufff5" + - "\023\ufff5\063\ufff5\066\ufff5\001\002\000\034\002\ufffa\003" + - "\026\011\021\012\022\013\030\014\020\015\025\016\032" + - "\017\017\020\035\023\027\063\u0105\066\004\001\002\000" + - "\034\002\ufff3\003\ufff3\011\ufff3\012\ufff3\013\ufff3\014\ufff3" + - "\015\ufff3\016\ufff3\017\ufff3\020\ufff3\023\ufff3\063\ufff3\066" + - "\ufff3\001\002\000\034\002\ufff4\003\ufff4\011\ufff4\012\ufff4" + - "\013\ufff4\014\ufff4\015\ufff4\016\ufff4\017\ufff4\020\ufff4\023" + - "\ufff4\063\ufff4\066\ufff4\001\002\000\034\002\ufff8\003\ufff8" + - "\011\ufff8\012\ufff8\013\ufff8\014\ufff8\015\ufff8\016\ufff8\017" + - "\ufff8\020\ufff8\023\ufff8\063\ufff8\066\ufff8\001\002\000\034" + + "\000\u011d\000\034\002\uffff\003\030\011\022\012\023\013" + + "\032\014\021\015\026\016\034\017\020\020\037\023\031" + + "\024\004\067\005\001\002\000\010\021\042\022\043\036" + + "\044\001\002\000\012\003\u0106\036\044\056\uffcb\071\u0109" + + "\001\002\000\036\002\ufff7\003\ufff7\011\ufff7\012\ufff7\013" + + "\ufff7\014\ufff7\015\ufff7\016\ufff7\017\ufff7\020\ufff7\023\ufff7" + + "\024\ufff7\064\ufff7\067\ufff7\001\002\000\036\002\uffef\003" + + "\uffef\011\uffef\012\uffef\013\uffef\014\uffef\015\uffef\016\uffef" + + "\017\uffef\020\uffef\023\uffef\024\uffef\064\uffef\067\uffef\001" + + "\002\000\004\002\ufffe\001\002\000\036\002\ufff5\003\ufff5" + + "\011\ufff5\012\ufff5\013\ufff5\014\ufff5\015\ufff5\016\ufff5\017" + + "\ufff5\020\ufff5\023\ufff5\024\ufff5\064\ufff5\067\ufff5\001\002" + + "\000\036\002\ufffa\003\030\011\022\012\023\013\032\014" + + "\021\015\026\016\034\017\020\020\037\023\031\024\004" + + "\064\u0104\067\005\001\002\000\036\002\ufff3\003\ufff3\011" + + "\ufff3\012\ufff3\013\ufff3\014\ufff3\015\ufff3\016\ufff3\017\ufff3" + + "\020\ufff3\023\ufff3\024\ufff3\064\ufff3\067\ufff3\001\002\000" + + "\036\002\ufff4\003\ufff4\011\ufff4\012\ufff4\013\ufff4\014\ufff4" + + "\015\ufff4\016\ufff4\017\ufff4\020\ufff4\023\ufff4\024\ufff4\064" + + "\ufff4\067\ufff4\001\002\000\036\002\ufff8\003\ufff8\011\ufff8" + + "\012\ufff8\013\ufff8\014\ufff8\015\ufff8\016\ufff8\017\ufff8\020" + + "\ufff8\023\ufff8\024\ufff8\064\ufff8\067\ufff8\001\002\000\036" + "\002\ufff1\003\ufff1\011\ufff1\012\ufff1\013\ufff1\014\ufff1\015" + - "\ufff1\016\ufff1\017\ufff1\020\ufff1\023\ufff1\063\ufff1\066\ufff1" + - "\001\002\000\004\002\u0103\001\002\000\050\003\375\005" + - "\064\007\101\024\102\025\055\027\107\030\072\031\113" + - "\032\057\033\075\034\071\035\042\036\063\040\076\056" + - "\060\066\054\070\065\072\067\074\066\001\002\000\012" + - "\003\355\021\040\022\041\035\042\001\002\000\006\003" + - "\354\035\353\001\002\000\012\003\344\021\040\022\041" + - "\035\042\001\002\000\034\002\uffee\003\uffee\011\uffee\012" + - "\uffee\013\uffee\014\uffee\015\uffee\016\uffee\017\uffee\020\uffee" + - "\023\uffee\063\uffee\066\uffee\001\002\000\034\002\ufff9\003" + - "\ufff9\011\ufff9\012\ufff9\013\ufff9\014\ufff9\015\ufff9\016\ufff9" + - "\017\ufff9\020\ufff9\023\ufff9\063\ufff9\066\ufff9\001\002\000" + - "\004\035\042\001\002\000\034\002\ufff6\003\ufff6\011\ufff6" + - "\012\ufff6\013\ufff6\014\ufff6\015\ufff6\016\ufff6\017\ufff6\020" + - "\ufff6\023\ufff6\063\ufff6\066\ufff6\001\002\000\004\035\321" + - "\001\002\000\012\003\306\021\040\022\041\035\042\001" + - "\002\000\034\002\ufff0\003\ufff0\011\ufff0\012\ufff0\013\ufff0" + - "\014\ufff0\015\ufff0\016\ufff0\017\ufff0\020\ufff0\023\ufff0\063" + - "\ufff0\066\ufff0\001\002\000\050\003\304\005\064\007\101" + - "\024\102\025\055\027\107\030\072\031\113\032\057\033" + - "\075\034\071\035\042\036\063\040\076\056\060\066\054" + - "\070\065\072\067\074\066\001\002\000\004\002\000\001" + - "\002\000\034\002\ufff2\003\ufff2\011\ufff2\012\ufff2\013\ufff2" + - "\014\ufff2\015\ufff2\016\ufff2\017\ufff2\020\ufff2\023\ufff2\063" + - "\ufff2\066\ufff2\001\002\000\010\021\040\022\041\035\042" + - "\001\002\000\124\002\uffea\003\uffea\004\uffea\006\uffea\010" + - "\uffea\011\uffea\012\uffea\013\uffea\014\uffea\015\uffea\016\uffea" + - "\017\uffea\020\uffea\023\uffea\026\uffea\035\uffea\037\uffea\040" + - "\uffea\041\uffea\042\uffea\043\uffea\044\uffea\046\uffea\047\uffea" + - "\050\uffea\051\uffea\052\uffea\053\uffea\054\uffea\057\uffea\060" + - "\uffea\061\uffea\062\uffea\063\uffea\066\uffea\067\uffea\070\uffea" + - "\071\uffea\073\uffea\074\uffea\075\uffea\001\002\000\004\075" + - "\302\001\002\000\004\046\277\001\002\000\004\046\272" + - "\001\002\000\130\002\uffb6\003\uffb6\004\uffb6\006\uffb6\010" + - "\uffb6\011\uffb6\012\uffb6\013\uffb6\014\uffb6\015\uffb6\016\uffb6" + - "\017\uffb6\020\uffb6\023\uffb6\026\uffb6\035\uffb6\037\uffb6\040" + - "\uffb6\041\uffb6\042\uffb6\043\uffb6\044\uffb6\046\uffb6\047\uffb6" + - "\050\uffb6\051\uffb6\052\uffb6\053\uffb6\054\uffb6\055\uffb6\057" + - "\uffb6\060\uffb6\061\uffb6\062\uffb6\063\uffb6\065\270\066\uffb6" + - "\067\uffb6\070\uffb6\071\uffb6\073\uffb6\074\uffb6\075\uffb6\001" + - "\002\000\004\035\052\001\002\000\124\002\uffeb\003\uffeb" + - "\004\uffeb\006\uffeb\010\uffeb\011\uffeb\012\uffeb\013\uffeb\014" + - "\uffeb\015\uffeb\016\uffeb\017\uffeb\020\uffeb\023\uffeb\026\uffeb" + - "\035\uffeb\037\uffeb\040\uffeb\041\uffeb\042\uffeb\043\uffeb\044" + - "\uffeb\046\uffeb\047\uffeb\050\uffeb\051\uffeb\052\uffeb\053\uffeb" + - "\054\uffeb\057\uffeb\060\uffeb\061\uffeb\062\uffeb\063\uffeb\066" + - "\uffeb\067\uffeb\070\uffeb\071\uffeb\073\uffeb\074\051\075\uffeb" + - "\001\002\000\124\002\uffe9\003\uffe9\004\uffe9\006\uffe9\010" + - "\uffe9\011\uffe9\012\uffe9\013\uffe9\014\uffe9\015\uffe9\016\uffe9" + - "\017\uffe9\020\uffe9\023\uffe9\026\uffe9\035\uffe9\037\uffe9\040" + - "\uffe9\041\uffe9\042\uffe9\043\uffe9\044\uffe9\046\uffe9\047\uffe9" + - "\050\uffe9\051\uffe9\052\uffe9\053\uffe9\054\uffe9\057\uffe9\060" + - "\uffe9\061\uffe9\062\uffe9\063\uffe9\066\uffe9\067\uffe9\070\uffe9" + - "\071\uffe9\073\uffe9\074\047\075\uffe9\001\002\000\124\002" + - "\uffe8\003\uffe8\004\uffe8\006\uffe8\010\uffe8\011\uffe8\012\uffe8" + - "\013\uffe8\014\uffe8\015\uffe8\016\uffe8\017\uffe8\020\uffe8\023" + - "\uffe8\026\uffe8\035\uffe8\037\uffe8\040\uffe8\041\uffe8\042\uffe8" + - "\043\uffe8\044\uffe8\046\uffe8\047\uffe8\050\uffe8\051\uffe8\052" + - "\uffe8\053\uffe8\054\uffe8\057\uffe8\060\uffe8\061\uffe8\062\uffe8" + - "\063\uffe8\066\uffe8\067\uffe8\070\uffe8\071\uffe8\073\uffe8\074" + - "\uffe8\075\uffe8\001\002\000\004\075\050\001\002\000\124" + - "\002\uffe4\003\uffe4\004\uffe4\006\uffe4\010\uffe4\011\uffe4\012" + - "\uffe4\013\uffe4\014\uffe4\015\uffe4\016\uffe4\017\uffe4\020\uffe4" + - "\023\uffe4\026\uffe4\035\uffe4\037\uffe4\040\uffe4\041\uffe4\042" + - "\uffe4\043\uffe4\044\uffe4\046\uffe4\047\uffe4\050\uffe4\051\uffe4" + - "\052\uffe4\053\uffe4\054\uffe4\057\uffe4\060\uffe4\061\uffe4\062" + - "\uffe4\063\uffe4\066\uffe4\067\uffe4\070\uffe4\071\uffe4\073\uffe4" + - "\074\uffe4\075\uffe4\001\002\000\004\075\uffe6\001\002\000" + - "\036\002\uffb3\003\uffb3\011\uffb3\012\uffb3\013\uffb3\014\uffb3" + - "\015\uffb3\016\uffb3\017\uffb3\020\uffb3\023\uffb3\063\uffb3\064" + - "\053\066\uffb3\001\002\000\046\005\064\007\101\024\102" + - "\025\055\027\107\030\072\031\113\032\057\033\075\034" + - "\071\035\042\036\063\040\076\056\060\066\054\070\065" + - "\072\067\074\066\001\002\000\014\003\267\021\040\022" + - "\041\035\042\072\264\001\002\000\010\021\040\022\041" + - "\035\042\001\002\000\120\002\uffa8\003\uffa8\004\uffa8\006" + - "\uffa8\010\uffa8\011\uffa8\012\uffa8\013\uffa8\014\uffa8\015\uffa8" + - "\016\uffa8\017\uffa8\020\uffa8\023\uffa8\026\uffa8\037\uffa8\040" + - "\uffa8\041\uffa8\042\uffa8\043\uffa8\044\uffa8\046\uffa8\047\uffa8" + - "\050\uffa8\051\uffa8\052\uffa8\053\uffa8\054\uffa8\057\uffa8\060" + - "\uffa8\061\uffa8\062\uffa8\063\uffa8\066\uffa8\067\uffa8\071\uffa8" + - "\073\uffa8\074\uffa8\075\uffa8\001\002\000\120\002\uffa3\003" + - "\uffa3\004\uffa3\006\uffa3\010\uffa3\011\uffa3\012\uffa3\013\uffa3" + - "\014\uffa3\015\uffa3\016\uffa3\017\uffa3\020\uffa3\023\uffa3\026" + - "\uffa3\037\uffa3\040\uffa3\041\uffa3\042\uffa3\043\uffa3\044\uffa3" + - "\046\uffa3\047\uffa3\050\uffa3\051\uffa3\052\uffa3\053\uffa3\054" + - "\uffa3\057\uffa3\060\uffa3\061\uffa3\062\uffa3\063\uffa3\066\uffa3" + - "\067\uffa3\071\uffa3\073\uffa3\074\uffa3\075\uffa3\001\002\000" + - "\046\005\064\007\101\024\102\025\055\027\107\030\072" + - "\031\113\032\057\033\075\034\071\035\042\036\063\040" + - "\076\056\060\066\054\070\065\072\067\074\066\001\002" + - "\000\122\002\uff88\003\uff88\004\uff88\006\uff88\010\uff88\011" + - "\uff88\012\uff88\013\uff88\014\uff88\015\uff88\016\uff88\017\uff88" + - "\020\uff88\023\uff88\026\uff88\037\uff88\040\uff88\041\uff88\042" + - "\uff88\043\uff88\044\uff88\046\uff88\047\uff88\050\uff88\051\uff88" + - "\052\uff88\053\uff88\054\uff88\057\uff88\060\uff88\061\uff88\062" + - "\uff88\063\uff88\066\uff88\067\uff88\070\253\071\uff88\073\uff88" + - "\074\uff88\075\uff88\001\002\000\120\002\uffaf\003\uffaf\004" + - "\uffaf\006\uffaf\010\uffaf\011\uffaf\012\uffaf\013\uffaf\014\uffaf" + - "\015\uffaf\016\uffaf\017\uffaf\020\uffaf\023\uffaf\026\uffaf\037" + - "\uffaf\040\uffaf\041\uffaf\042\uffaf\043\uffaf\044\uffaf\046\uffaf" + - "\047\uffaf\050\uffaf\051\uffaf\052\uffaf\053\uffaf\054\uffaf\057" + - "\uffaf\060\uffaf\061\uffaf\062\uffaf\063\uffaf\066\uffaf\067\uffaf" + - "\071\uffaf\073\uffaf\074\uffaf\075\uffaf\001\002\000\046\005" + - "\064\007\101\024\102\025\055\027\107\030\072\031\113" + - "\032\057\033\075\034\071\035\042\036\063\040\076\056" + - "\060\066\054\070\065\072\067\074\066\001\002\000\046" + - "\005\064\007\101\024\102\025\055\027\107\030\072\031" + - "\113\032\057\033\075\034\071\035\042\036\063\040\076" + - "\056\060\066\054\070\065\072\067\074\066\001\002\000" + - "\046\005\064\007\101\024\102\025\055\027\107\030\072" + - "\031\113\032\057\033\075\034\071\035\042\036\063\040" + - "\076\056\060\066\054\070\065\072\067\074\066\001\002" + - "\000\050\005\064\007\101\024\102\025\055\027\107\030" + - "\072\031\113\032\057\033\075\034\071\035\042\036\063" + - "\040\076\056\060\066\054\070\065\072\067\074\066\075" + - "\uff83\001\002\000\050\005\064\007\101\024\102\025\055" + - "\027\107\030\072\031\113\032\057\033\075\034\071\035" + - "\042\036\063\040\076\056\060\066\054\070\065\072\067" + - "\073\uff83\074\066\001\002\000\120\002\uffae\003\uffae\004" + - "\uffae\006\uffae\010\uffae\011\uffae\012\uffae\013\uffae\014\uffae" + - "\015\uffae\016\uffae\017\uffae\020\uffae\023\uffae\026\uffae\037" + - "\uffae\040\uffae\041\uffae\042\uffae\043\uffae\044\uffae\046\uffae" + - "\047\uffae\050\uffae\051\uffae\052\uffae\053\uffae\054\uffae\057" + - "\uffae\060\uffae\061\uffae\062\uffae\063\uffae\066\uffae\067\uffae" + - "\071\uffae\073\uffae\074\uffae\075\uffae\001\002\000\120\002" + - "\uffa7\003\uffa7\004\uffa7\006\uffa7\010\uffa7\011\uffa7\012\uffa7" + - "\013\uffa7\014\uffa7\015\uffa7\016\uffa7\017\uffa7\020\uffa7\023" + - "\uffa7\026\uffa7\037\uffa7\040\uffa7\041\uffa7\042\uffa7\043\uffa7" + - "\044\uffa7\046\uffa7\047\uffa7\050\uffa7\051\uffa7\052\uffa7\053" + - "\uffa7\054\uffa7\057\uffa7\060\uffa7\061\uffa7\062\uffa7\063\uffa7" + - "\066\uffa7\067\uffa7\071\uffa7\073\uffa7\074\uffa7\075\uffa7\001" + - "\002\000\120\002\uffa5\003\uffa5\004\uffa5\006\uffa5\010\uffa5" + - "\011\uffa5\012\uffa5\013\uffa5\014\uffa5\015\uffa5\016\uffa5\017" + - "\uffa5\020\uffa5\023\uffa5\026\uffa5\037\uffa5\040\uffa5\041\uffa5" + - "\042\uffa5\043\uffa5\044\uffa5\046\uffa5\047\uffa5\050\uffa5\051" + - "\uffa5\052\uffa5\053\uffa5\054\uffa5\057\uffa5\060\uffa5\061\uffa5" + - "\062\uffa5\063\uffa5\066\uffa5\067\uffa5\071\uffa5\073\uffa5\074" + - "\uffa5\075\uffa5\001\002\000\074\002\uffb2\003\uffb2\011\uffb2" + - "\012\uffb2\013\uffb2\014\uffb2\015\uffb2\016\uffb2\017\uffb2\020" + - "\uffb2\023\uffb2\037\126\040\117\041\122\042\127\043\123" + - "\044\131\046\132\047\130\050\136\051\134\052\121\053" + - "\125\057\120\060\135\061\124\063\uffb2\066\uffb2\074\133" + - "\001\002\000\120\002\uffaa\003\uffaa\004\uffaa\006\uffaa\010" + - "\uffaa\011\uffaa\012\uffaa\013\uffaa\014\uffaa\015\uffaa\016\uffaa" + - "\017\uffaa\020\uffaa\023\uffaa\026\uffaa\037\uffaa\040\uffaa\041" + - "\uffaa\042\uffaa\043\uffaa\044\uffaa\046\uffaa\047\uffaa\050\uffaa" + - "\051\uffaa\052\uffaa\053\uffaa\054\uffaa\057\uffaa\060\uffaa\061" + - "\uffaa\062\uffaa\063\uffaa\066\uffaa\067\uffaa\071\uffaa\073\uffaa" + - "\074\uffaa\075\uffaa\001\002\000\120\002\uffa6\003\uffa6\004" + - "\uffa6\006\uffa6\010\uffa6\011\uffa6\012\uffa6\013\uffa6\014\uffa6" + - "\015\uffa6\016\uffa6\017\uffa6\020\uffa6\023\uffa6\026\uffa6\037" + - "\uffa6\040\uffa6\041\uffa6\042\uffa6\043\uffa6\044\uffa6\046\uffa6" + - "\047\uffa6\050\uffa6\051\uffa6\052\uffa6\053\uffa6\054\uffa6\057" + - "\uffa6\060\uffa6\061\uffa6\062\uffa6\063\uffa6\066\uffa6\067\uffa6" + - "\071\uffa6\073\uffa6\074\uffa6\075\uffa6\001\002\000\046\005" + - "\064\007\101\024\102\025\055\027\107\030\072\031\113" + - "\032\057\033\075\034\071\035\042\036\063\040\076\056" + - "\060\066\054\070\065\072\067\074\066\001\002\000\120" + - "\002\uff71\003\uff71\004\uff71\006\uff71\010\uff71\011\uff71\012" + - "\uff71\013\uff71\014\uff71\015\uff71\016\uff71\017\uff71\020\uff71" + - "\023\uff71\026\uff71\037\uff71\040\uff71\041\uff71\042\uff71\043" + - "\uff71\044\uff71\046\uff71\047\uff71\050\uff71\051\uff71\052\uff71" + - "\053\uff71\054\uff71\057\uff71\060\uff71\061\uff71\062\uff71\063" + - "\uff71\066\uff71\067\uff71\071\uff71\073\uff71\074\uff71\075\uff71" + - "\001\002\000\120\002\uff72\003\uff72\004\uff72\006\uff72\010" + - "\uff72\011\uff72\012\uff72\013\uff72\014\uff72\015\uff72\016\uff72" + - "\017\uff72\020\uff72\023\uff72\026\uff72\037\uff72\040\uff72\041" + - "\uff72\042\uff72\043\uff72\044\uff72\046\uff72\047\uff72\050\uff72" + - "\051\uff72\052\uff72\053\uff72\054\uff72\057\uff72\060\uff72\061" + - "\uff72\062\uff72\063\uff72\066\uff72\067\uff72\071\uff72\073\uff72" + - "\074\uff72\075\uff72\001\002\000\046\005\064\007\101\024" + - "\102\025\055\027\107\030\072\031\113\032\057\033\075" + - "\034\071\035\042\036\063\040\076\056\060\066\054\070" + - "\065\072\067\074\066\001\002\000\010\021\040\022\041" + - "\035\042\001\002\000\120\002\uffb0\003\uffb0\004\uffb0\006" + - "\uffb0\010\uffb0\011\uffb0\012\uffb0\013\uffb0\014\uffb0\015\uffb0" + - "\016\uffb0\017\uffb0\020\uffb0\023\uffb0\026\uffb0\037\uffb0\040" + - "\uffb0\041\uffb0\042\uffb0\043\uffb0\044\uffb0\046\uffb0\047\uffb0" + - "\050\uffb0\051\uffb0\052\uffb0\053\uffb0\054\uffb0\057\uffb0\060" + - "\uffb0\061\uffb0\062\uffb0\063\uffb0\066\uffb0\067\uffb0\071\uffb0" + - "\073\uffb0\074\uffb0\075\uffb0\001\002\000\120\002\uffb1\003" + - "\uffb1\004\uffb1\006\uffb1\010\uffb1\011\uffb1\012\uffb1\013\uffb1" + - "\014\uffb1\015\uffb1\016\uffb1\017\uffb1\020\uffb1\023\uffb1\026" + - "\uffb1\037\uffb1\040\uffb1\041\uffb1\042\uffb1\043\uffb1\044\uffb1" + - "\046\uffb1\047\uffb1\050\uffb1\051\uffb1\052\uffb1\053\uffb1\054" + - "\uffb1\057\uffb1\060\uffb1\061\uffb1\062\uffb1\063\uffb1\066\uffb1" + - "\067\uffb1\071\uffb1\073\uffb1\074\uffb1\075\uffb1\001\002\000" + - "\120\002\uff91\003\uff91\004\uff91\006\uff91\010\uff91\011\uff91" + - "\012\uff91\013\uff91\014\uff91\015\uff91\016\uff91\017\uff91\020" + - "\uff91\023\uff91\026\uff91\037\uff91\040\uff91\041\uff91\042\uff91" + - "\043\uff91\044\uff91\046\uff91\047\uff91\050\uff91\051\uff91\052" + - "\uff91\053\uff91\054\uff91\057\uff91\060\uff91\061\uff91\062\uff91" + - "\063\uff91\066\uff91\067\uff91\071\uff91\073\uff91\074\uff91\075" + - "\uff91\001\002\000\120\002\uffac\003\uffac\004\uffac\006\uffac" + - "\010\uffac\011\uffac\012\uffac\013\uffac\014\uffac\015\uffac\016" + - "\uffac\017\uffac\020\uffac\023\uffac\026\uffac\037\uffac\040\uffac" + - "\041\uffac\042\uffac\043\uffac\044\uffac\046\uffac\047\uffac\050" + - "\uffac\051\uffac\052\uffac\053\uffac\054\uffac\057\uffac\060\uffac" + - "\061\uffac\062\uffac\063\uffac\066\uffac\067\uffac\071\uffac\073" + - "\uffac\074\uffac\075\uffac\001\002\000\120\002\uffa2\003\uffa2" + - "\004\uffa2\006\uffa2\010\uffa2\011\uffa2\012\uffa2\013\uffa2\014" + - "\uffa2\015\uffa2\016\uffa2\017\uffa2\020\uffa2\023\uffa2\026\uffa2" + - "\037\uffa2\040\uffa2\041\uffa2\042\uffa2\043\uffa2\044\uffa2\046" + - "\uffa2\047\uffa2\050\uffa2\051\uffa2\052\uffa2\053\uffa2\054\uffa2" + - "\057\uffa2\060\uffa2\061\uffa2\062\uffa2\063\uffa2\066\uffa2\067" + - "\uffa2\071\uffa2\073\uffa2\074\uffa2\075\uffa2\001\002\000\120" + - "\002\uffab\003\uffab\004\uffab\006\uffab\010\uffab\011\uffab\012" + - "\uffab\013\uffab\014\uffab\015\uffab\016\uffab\017\uffab\020\uffab" + - "\023\uffab\026\uffab\037\uffab\040\uffab\041\uffab\042\uffab\043" + - "\uffab\044\uffab\046\uffab\047\uffab\050\uffab\051\uffab\052\uffab" + - "\053\uffab\054\uffab\057\uffab\060\uffab\061\uffab\062\uffab\063" + - "\uffab\066\uffab\067\uffab\071\uffab\073\uffab\074\uffab\075\uffab" + - "\001\002\000\120\002\uffad\003\uffad\004\uffad\006\uffad\010" + - "\uffad\011\uffad\012\uffad\013\uffad\014\uffad\015\uffad\016\uffad" + - "\017\uffad\020\uffad\023\uffad\026\uffad\037\uffad\040\uffad\041" + - "\uffad\042\uffad\043\uffad\044\uffad\046\uffad\047\uffad\050\uffad" + - "\051\uffad\052\uffad\053\uffad\054\uffad\057\uffad\060\uffad\061" + - "\uffad\062\uffad\063\uffad\066\uffad\067\uffad\071\uffad\073\uffad" + - "\074\uffad\075\uffad\001\002\000\120\002\uffa9\003\uffa9\004" + - "\uffa9\006\uffa9\010\uffa9\011\uffa9\012\uffa9\013\uffa9\014\uffa9" + - "\015\uffa9\016\uffa9\017\uffa9\020\uffa9\023\uffa9\026\uffa9\037" + - "\uffa9\040\uffa9\041\uffa9\042\uffa9\043\uffa9\044\uffa9\046\uffa9" + - "\047\uffa9\050\uffa9\051\uffa9\052\uffa9\053\uffa9\054\uffa9\057" + - "\uffa9\060\uffa9\061\uffa9\062\uffa9\063\uffa9\066\uffa9\067\uffa9" + - "\071\uffa9\073\uffa9\074\uffa9\075\uffa9\001\002\000\120\002" + - "\uffa4\003\uffa4\004\uffa4\006\uffa4\010\uffa4\011\uffa4\012\uffa4" + - "\013\uffa4\014\uffa4\015\uffa4\016\uffa4\017\uffa4\020\uffa4\023" + - "\uffa4\026\uffa4\037\uffa4\040\uffa4\041\uffa4\042\uffa4\043\uffa4" + - "\044\uffa4\046\uffa4\047\uffa4\050\uffa4\051\uffa4\052\uffa4\053" + - "\uffa4\054\uffa4\057\uffa4\060\uffa4\061\uffa4\062\uffa4\063\uffa4" + - "\066\uffa4\067\uffa4\071\uffa4\073\uffa4\074\uffa4\075\uffa4\001" + - "\002\000\004\035\115\001\002\000\046\005\064\007\101" + - "\024\102\025\055\027\107\030\072\031\113\032\057\033" + - "\075\034\071\035\042\036\063\040\076\056\060\066\054" + - "\070\065\072\067\074\066\001\002\000\120\002\uff8b\003" + - "\uff8b\004\uff8b\006\uff8b\010\uff8b\011\uff8b\012\uff8b\013\uff8b" + - "\014\uff8b\015\uff8b\016\uff8b\017\uff8b\020\uff8b\023\uff8b\026" + - "\uff8b\037\126\040\117\041\122\042\127\043\123\044\131" + - "\046\132\047\130\050\136\051\134\052\121\053\125\054" + - "\uff8b\057\120\060\135\061\124\062\uff8b\063\uff8b\066\uff8b" + - "\067\uff8b\071\uff8b\073\uff8b\074\133\075\uff8b\001\002\000" + - "\046\005\064\007\101\024\102\025\055\027\107\030\072" + - "\031\113\032\057\033\075\034\071\035\042\036\063\040" + - "\076\056\060\066\054\070\065\072\067\074\066\001\002" + - "\000\046\005\064\007\101\024\102\025\055\027\107\030" + - "\072\031\113\032\057\033\075\034\071\035\042\036\063" + - "\040\076\056\060\066\054\070\065\072\067\074\066\001" + - "\002\000\046\005\064\007\101\024\102\025\055\027\107" + - "\030\072\031\113\032\057\033\075\034\071\035\042\036" + - "\063\040\076\056\060\066\054\070\065\072\067\074\066" + - "\001\002\000\046\005\064\007\101\024\102\025\055\027" + - "\107\030\072\031\113\032\057\033\075\034\071\035\042" + - "\036\063\040\076\056\060\066\054\070\065\072\067\074" + - "\066\001\002\000\046\005\064\007\101\024\102\025\055" + - "\027\107\030\072\031\113\032\057\033\075\034\071\035" + - "\042\036\063\040\076\056\060\066\054\070\065\072\067" + - "\074\066\001\002\000\046\005\064\007\101\024\102\025" + - "\055\027\107\030\072\031\113\032\057\033\075\034\071" + - "\035\042\036\063\040\076\056\060\066\054\070\065\072" + - "\067\074\066\001\002\000\046\005\064\007\101\024\102" + - "\025\055\027\107\030\072\031\113\032\057\033\075\034" + - "\071\035\042\036\063\040\076\056\060\066\054\070\065" + - "\072\067\074\066\001\002\000\046\005\064\007\101\024" + - "\102\025\055\027\107\030\072\031\113\032\057\033\075" + - "\034\071\035\042\036\063\040\076\056\060\066\054\070" + - "\065\072\067\074\066\001\002\000\046\005\064\007\101" + - "\024\102\025\055\027\107\030\072\031\113\032\057\033" + - "\075\034\071\035\042\036\063\040\076\056\060\066\054" + - "\070\065\072\067\074\066\001\002\000\046\005\064\007" + - "\101\024\102\025\055\027\107\030\072\031\113\032\057" + - "\033\075\034\071\035\042\036\063\040\076\056\060\066" + - "\054\070\065\072\067\074\066\001\002\000\046\005\064" + - "\007\101\024\102\025\055\027\107\030\072\031\113\032" + - "\057\033\075\034\071\035\042\036\063\040\076\056\060" + - "\066\054\070\065\072\067\074\066\001\002\000\046\005" + - "\064\007\101\024\102\025\055\027\107\030\072\031\113" + - "\032\057\033\075\034\071\035\042\036\063\040\076\056" + - "\060\066\054\070\065\072\067\074\066\001\002\000\046" + - "\005\064\007\101\024\102\025\055\027\107\030\072\031" + - "\113\032\057\033\075\034\071\035\042\036\063\040\076" + - "\056\060\066\054\070\065\072\067\074\066\001\002\000" + - "\046\005\064\007\101\024\102\025\055\027\107\030\072" + - "\031\113\032\057\033\075\034\071\035\042\036\063\040" + - "\076\056\060\066\054\070\065\072\067\074\066\001\002" + - "\000\046\005\064\007\101\024\102\025\055\027\107\030" + - "\072\031\113\032\057\033\075\034\071\035\042\036\063" + - "\040\076\056\060\066\054\070\065\072\067\074\066\001" + - "\002\000\046\005\064\007\101\024\102\025\055\027\107" + - "\030\072\031\113\032\057\033\075\034\071\035\042\036" + - "\063\040\076\056\060\066\054\070\065\072\067\074\066" + - "\001\002\000\104\002\uff99\003\uff99\004\uff99\006\uff99\010" + - "\uff99\011\uff99\012\uff99\013\uff99\014\uff99\015\uff99\016\uff99" + - "\017\uff99\020\uff99\023\uff99\026\uff99\037\126\040\117\041" + - "\122\042\127\043\123\044\131\054\uff99\057\uff99\060\uff99" + - "\061\uff99\062\uff99\063\uff99\066\uff99\067\uff99\071\uff99\073" + - "\uff99\074\133\075\uff99\001\002\000\120\002\uff94\003\uff94" + - "\004\uff94\006\uff94\010\uff94\011\uff94\012\uff94\013\uff94\014" + - "\uff94\015\uff94\016\uff94\017\uff94\020\uff94\023\uff94\026\uff94" + - "\037\126\040\117\041\122\042\127\043\123\044\131\046" + - "\132\047\130\050\136\051\134\052\121\053\125\054\uff94" + - "\057\uff94\060\uff94\061\uff94\062\uff94\063\uff94\066\uff94\067" + - "\uff94\071\uff94\073\uff94\074\133\075\uff94\001\002\000\104" + - "\002\uff98\003\uff98\004\uff98\006\uff98\010\uff98\011\uff98\012" + - "\uff98\013\uff98\014\uff98\015\uff98\016\uff98\017\uff98\020\uff98" + - "\023\uff98\026\uff98\037\126\040\117\041\122\042\127\043" + - "\123\044\131\054\uff98\057\uff98\060\uff98\061\uff98\062\uff98" + - "\063\uff98\066\uff98\067\uff98\071\uff98\073\uff98\074\133\075" + - "\uff98\001\002\000\044\037\126\040\117\041\122\042\127" + - "\043\123\044\131\046\132\047\130\050\136\051\134\052" + - "\121\053\125\057\120\060\135\061\124\074\133\075\143" + - "\001\002\000\120\002\uff92\003\uff92\004\uff92\006\uff92\010" + - "\uff92\011\uff92\012\uff92\013\uff92\014\uff92\015\uff92\016\uff92" + - "\017\uff92\020\uff92\023\uff92\026\uff92\037\uff92\040\uff92\041" + - "\uff92\042\uff92\043\uff92\044\uff92\046\uff92\047\uff92\050\uff92" + - "\051\uff92\052\uff92\053\uff92\054\uff92\057\uff92\060\uff92\061" + - "\uff92\062\uff92\063\uff92\066\uff92\067\uff92\071\uff92\073\uff92" + - "\074\uff92\075\uff92\001\002\000\104\002\uff9b\003\uff9b\004" + - "\uff9b\006\uff9b\010\uff9b\011\uff9b\012\uff9b\013\uff9b\014\uff9b" + - "\015\uff9b\016\uff9b\017\uff9b\020\uff9b\023\uff9b\026\uff9b\037" + - "\126\040\117\041\122\042\127\043\123\044\131\054\uff9b" + - "\057\uff9b\060\uff9b\061\uff9b\062\uff9b\063\uff9b\066\uff9b\067" + - "\uff9b\071\uff9b\073\uff9b\074\133\075\uff9b\001\002\000\120" + - "\002\uff9c\003\uff9c\004\uff9c\006\uff9c\010\uff9c\011\uff9c\012" + - "\uff9c\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020\uff9c" + - "\023\uff9c\026\uff9c\037\uff9c\040\uff9c\041\uff9c\042\uff9c\043" + - "\uff9c\044\uff9c\046\uff9c\047\uff9c\050\uff9c\051\uff9c\052\uff9c" + - "\053\uff9c\054\uff9c\057\uff9c\060\uff9c\061\uff9c\062\uff9c\063" + - "\uff9c\066\uff9c\067\uff9c\071\uff9c\073\uff9c\074\133\075\uff9c" + - "\001\002\000\104\002\uff9a\003\uff9a\004\uff9a\006\uff9a\010" + - "\uff9a\011\uff9a\012\uff9a\013\uff9a\014\uff9a\015\uff9a\016\uff9a" + - "\017\uff9a\020\uff9a\023\uff9a\026\uff9a\037\126\040\117\041" + - "\122\042\127\043\123\044\131\054\uff9a\057\uff9a\060\uff9a" + - "\061\uff9a\062\uff9a\063\uff9a\066\uff9a\067\uff9a\071\uff9a\073" + - "\uff9a\074\133\075\uff9a\001\002\000\120\002\uff9e\003\uff9e" + - "\004\uff9e\006\uff9e\010\uff9e\011\uff9e\012\uff9e\013\uff9e\014" + - "\uff9e\015\uff9e\016\uff9e\017\uff9e\020\uff9e\023\uff9e\026\uff9e" + - "\037\uff9e\040\uff9e\041\uff9e\042\uff9e\043\uff9e\044\uff9e\046" + - "\uff9e\047\uff9e\050\uff9e\051\uff9e\052\uff9e\053\uff9e\054\uff9e" + - "\057\uff9e\060\uff9e\061\uff9e\062\uff9e\063\uff9e\066\uff9e\067" + - "\uff9e\071\uff9e\073\uff9e\074\133\075\uff9e\001\002\000\120" + - "\002\uffa1\003\uffa1\004\uffa1\006\uffa1\010\uffa1\011\uffa1\012" + - "\uffa1\013\uffa1\014\uffa1\015\uffa1\016\uffa1\017\uffa1\020\uffa1" + - "\023\uffa1\026\uffa1\037\uffa1\040\uffa1\041\122\042\127\043" + - "\123\044\131\046\uffa1\047\uffa1\050\uffa1\051\uffa1\052\uffa1" + - "\053\uffa1\054\uffa1\057\uffa1\060\uffa1\061\uffa1\062\uffa1\063" + - "\uffa1\066\uffa1\067\uffa1\071\uffa1\073\uffa1\074\133\075\uffa1" + - "\001\002\000\104\002\uff96\003\uff96\004\uff96\006\uff96\010" + - "\uff96\011\uff96\012\uff96\013\uff96\014\uff96\015\uff96\016\uff96" + - "\017\uff96\020\uff96\023\uff96\026\uff96\037\126\040\117\041" + - "\122\042\127\043\123\044\131\054\uff96\057\uff96\060\uff96" + - "\061\uff96\062\uff96\063\uff96\066\uff96\067\uff96\071\uff96\073" + - "\uff96\074\133\075\uff96\001\002\000\120\002\uff93\003\uff93" + - "\004\uff93\006\uff93\010\uff93\011\uff93\012\uff93\013\uff93\014" + - "\uff93\015\uff93\016\uff93\017\uff93\020\uff93\023\uff93\026\uff93" + - "\037\126\040\117\041\122\042\127\043\123\044\131\046" + - "\132\047\130\050\136\051\134\052\121\053\125\054\uff93" + - "\057\120\060\135\061\uff93\062\uff93\063\uff93\066\uff93\067" + - "\uff93\071\uff93\073\uff93\074\133\075\uff93\001\002\000\120" + - "\002\uff9d\003\uff9d\004\uff9d\006\uff9d\010\uff9d\011\uff9d\012" + - "\uff9d\013\uff9d\014\uff9d\015\uff9d\016\uff9d\017\uff9d\020\uff9d" + - "\023\uff9d\026\uff9d\037\uff9d\040\uff9d\041\uff9d\042\uff9d\043" + - "\uff9d\044\uff9d\046\uff9d\047\uff9d\050\uff9d\051\uff9d\052\uff9d" + - "\053\uff9d\054\uff9d\057\uff9d\060\uff9d\061\uff9d\062\uff9d\063" + - "\uff9d\066\uff9d\067\uff9d\071\uff9d\073\uff9d\074\133\075\uff9d" + - "\001\002\000\120\002\uff9f\003\uff9f\004\uff9f\006\uff9f\010" + - "\uff9f\011\uff9f\012\uff9f\013\uff9f\014\uff9f\015\uff9f\016\uff9f" + - "\017\uff9f\020\uff9f\023\uff9f\026\uff9f\037\uff9f\040\uff9f\041" + - "\uff9f\042\uff9f\043\uff9f\044\uff9f\046\uff9f\047\uff9f\050\uff9f" + - "\051\uff9f\052\uff9f\053\uff9f\054\uff9f\057\uff9f\060\uff9f\061" + - "\uff9f\062\uff9f\063\uff9f\066\uff9f\067\uff9f\071\uff9f\073\uff9f" + - "\074\133\075\uff9f\001\002\000\104\002\uff97\003\uff97\004" + - "\uff97\006\uff97\010\uff97\011\uff97\012\uff97\013\uff97\014\uff97" + - "\015\uff97\016\uff97\017\uff97\020\uff97\023\uff97\026\uff97\037" + - "\126\040\117\041\122\042\127\043\123\044\131\054\uff97" + - "\057\uff97\060\uff97\061\uff97\062\uff97\063\uff97\066\uff97\067" + - "\uff97\071\uff97\073\uff97\074\133\075\uff97\001\002\000\120" + - "\002\uff95\003\uff95\004\uff95\006\uff95\010\uff95\011\uff95\012" + - "\uff95\013\uff95\014\uff95\015\uff95\016\uff95\017\uff95\020\uff95" + - "\023\uff95\026\uff95\037\126\040\117\041\122\042\127\043" + - "\123\044\131\046\132\047\130\050\136\051\134\052\121" + - "\053\125\054\uff95\057\uff95\060\uff95\061\uff95\062\uff95\063" + - "\uff95\066\uff95\067\uff95\071\uff95\073\uff95\074\133\075\uff95" + - "\001\002\000\120\002\uffa0\003\uffa0\004\uffa0\006\uffa0\010" + - "\uffa0\011\uffa0\012\uffa0\013\uffa0\014\uffa0\015\uffa0\016\uffa0" + - "\017\uffa0\020\uffa0\023\uffa0\026\uffa0\037\uffa0\040\uffa0\041" + - "\122\042\127\043\123\044\131\046\uffa0\047\uffa0\050\uffa0" + - "\051\uffa0\052\uffa0\053\uffa0\054\uffa0\057\uffa0\060\uffa0\061" + - "\uffa0\062\uffa0\063\uffa0\066\uffa0\067\uffa0\071\uffa0\073\uffa0" + - "\074\133\075\uffa0\001\002\000\044\010\161\037\126\040" + - "\117\041\122\042\127\043\123\044\131\046\132\047\130" + - "\050\136\051\134\052\121\053\125\057\120\060\135\061" + - "\124\074\133\001\002\000\004\072\162\001\002\000\046" + - "\005\064\007\101\024\102\025\055\027\107\030\072\031" + - "\113\032\057\033\075\034\071\035\042\036\063\040\076" + - "\056\060\066\054\070\065\072\067\074\066\001\002\000" + - "\120\002\uff85\003\uff85\004\uff85\006\uff85\010\uff85\011\uff85" + - "\012\uff85\013\uff85\014\uff85\015\uff85\016\uff85\017\uff85\020" + - "\uff85\023\uff85\026\uff85\037\uff85\040\uff85\041\uff85\042\uff85" + - "\043\uff85\044\uff85\046\uff85\047\uff85\050\uff85\051\uff85\052" + - "\uff85\053\uff85\054\uff85\057\uff85\060\uff85\061\uff85\062\uff85" + - "\063\uff85\066\uff85\067\uff85\071\uff85\073\uff85\074\uff85\075" + - "\uff85\001\002\000\004\073\172\001\002\000\044\037\126" + - "\040\117\041\122\042\127\043\123\044\131\046\132\047" + - "\130\050\136\051\134\052\121\053\125\057\120\060\135" + - "\061\124\067\166\074\133\001\002\000\046\005\064\007" + - "\101\024\102\025\055\027\107\030\072\031\113\032\057" + - "\033\075\034\071\035\042\036\063\040\076\056\060\066" + - "\054\070\065\072\067\074\066\001\002\000\046\037\126" + - "\040\117\041\122\042\127\043\123\044\131\046\132\047" + - "\130\050\136\051\134\052\121\053\125\057\120\060\135" + - "\061\124\062\170\073\uff79\074\133\001\002\000\046\005" + - "\064\007\101\024\102\025\055\027\107\030\072\031\113" + - "\032\057\033\075\034\071\035\042\036\063\040\076\056" + - "\060\066\054\070\065\072\067\074\066\001\002\000\004" + - "\073\uff7a\001\002\000\120\002\uff7b\003\uff7b\004\uff7b\006" + - "\uff7b\010\uff7b\011\uff7b\012\uff7b\013\uff7b\014\uff7b\015\uff7b" + - "\016\uff7b\017\uff7b\020\uff7b\023\uff7b\026\uff7b\037\uff7b\040" + - "\uff7b\041\uff7b\042\uff7b\043\uff7b\044\uff7b\046\uff7b\047\uff7b" + - "\050\uff7b\051\uff7b\052\uff7b\053\uff7b\054\uff7b\057\uff7b\060" + - "\uff7b\061\uff7b\062\uff7b\063\uff7b\066\uff7b\067\uff7b\071\uff7b" + - "\073\uff7b\074\uff7b\075\uff7b\001\002\000\120\002\uff90\003" + - "\uff90\004\uff90\006\uff90\010\uff90\011\uff90\012\uff90\013\uff90" + - "\014\uff90\015\uff90\016\uff90\017\uff90\020\uff90\023\uff90\026" + - "\uff90\037\uff90\040\uff90\041\uff90\042\uff90\043\uff90\044\uff90" + - "\046\uff90\047\uff90\050\uff90\051\uff90\052\uff90\053\uff90\054" + - "\uff90\057\uff90\060\uff90\061\uff90\062\uff90\063\uff90\066\uff90" + - "\067\uff90\071\uff90\073\uff90\074\133\075\uff90\001\002\000" + - "\004\073\226\001\002\000\052\026\uff81\037\126\040\117" + - "\041\122\042\127\043\123\044\131\046\132\047\130\050" + - "\136\051\134\052\121\053\125\057\120\060\135\061\124" + - "\062\222\067\166\073\uff81\074\133\001\002\000\004\073" + - "\220\001\002\000\006\026\200\073\uff84\001\002\000\010" + - "\021\040\022\041\035\042\001\002\000\010\064\215\073" + - "\uff6e\075\uff6e\001\002\000\006\035\204\062\203\001\002" + - "\000\010\021\040\022\041\035\042\001\002\000\026\021" + - "\040\022\041\035\042\054\uffda\055\uffda\062\207\064\uffda" + - "\071\uffda\073\uffda\075\uffda\001\002\000\016\054\uffd8\055" + - "\uffd8\064\uffd8\071\uffd8\073\uffd8\075\uffd8\001\002\000\012" + - "\021\040\022\041\035\042\062\213\001\002\000\012\021" + - "\040\022\041\035\042\062\211\001\002\000\016\054\uffdb" + - "\055\uffdb\064\uffdb\071\uffdb\073\uffdb\075\uffdb\001\002\000" + - "\054\005\uffdd\007\uffdd\021\uffdd\022\uffdd\024\uffdd\025\uffdd" + - "\027\uffdd\030\uffdd\031\uffdd\032\uffdd\033\uffdd\034\uffdd\035" + - "\uffdd\036\uffdd\040\uffdd\056\uffdd\062\uffdd\066\uffdd\070\uffdd" + - "\072\uffdd\074\uffdd\001\002\000\016\054\uffd9\055\uffd9\064" + - "\uffd9\071\uffd9\073\uffd9\075\uffd9\001\002\000\054\005\uffdc" + - "\007\uffdc\021\uffdc\022\uffdc\024\uffdc\025\uffdc\027\uffdc\030" + - "\uffdc\031\uffdc\032\uffdc\033\uffdc\034\uffdc\035\uffdc\036\uffdc" + - "\040\uffdc\056\uffdc\062\uffdc\066\uffdc\070\uffdc\072\uffdc\074" + - "\uffdc\001\002\000\016\054\uffd7\055\uffd7\064\uffd7\071\uffd7" + - "\073\uffd7\075\uffd7\001\002\000\046\005\064\007\101\024" + - "\102\025\055\027\107\030\072\031\113\032\057\033\075" + - "\034\071\035\042\036\063\040\076\056\060\066\054\070" + - "\065\072\067\074\066\001\002\000\006\073\uff6f\075\uff6f" + - "\001\002\000\046\037\126\040\117\041\122\042\127\043" + - "\123\044\131\046\132\047\130\050\136\051\134\052\121" + - "\053\125\057\120\060\135\061\124\073\uff6d\074\133\075" + - "\uff6d\001\002\000\120\002\uff70\003\uff70\004\uff70\006\uff70" + - "\010\uff70\011\uff70\012\uff70\013\uff70\014\uff70\015\uff70\016" + - "\uff70\017\uff70\020\uff70\023\uff70\026\uff70\037\uff70\040\uff70" + - "\041\uff70\042\uff70\043\uff70\044\uff70\046\uff70\047\uff70\050" + - "\uff70\051\uff70\052\uff70\053\uff70\054\uff70\057\uff70\060\uff70" + - "\061\uff70\062\uff70\063\uff70\066\uff70\067\uff70\071\uff70\073" + - "\uff70\074\uff70\075\uff70\001\002\000\050\005\064\007\101" + - "\024\102\025\055\027\107\030\072\031\113\032\057\033" + - "\075\034\071\035\042\036\063\040\076\056\060\062\213" + - "\066\054\070\065\072\067\074\066\001\002\000\050\005" + - "\064\007\101\024\102\025\055\027\107\030\072\031\113" + - "\032\057\033\075\034\071\035\042\036\063\040\076\056" + - "\060\062\211\066\054\070\065\072\067\074\066\001\002" + - "\000\056\026\uff81\037\126\040\117\041\122\042\127\043" + - "\123\044\131\046\132\047\130\050\136\051\134\052\121" + - "\053\125\057\120\060\135\061\124\062\222\063\uff81\071" + - "\uff81\073\uff81\074\133\075\uff81\001\002\000\014\026\uff82" + - "\063\uff82\071\uff82\073\uff82\075\uff82\001\002\000\014\026" + - "\uff80\063\uff80\071\uff80\073\uff80\075\uff80\001\002\000\120" + - "\002\uff6c\003\uff6c\004\uff6c\006\uff6c\010\uff6c\011\uff6c\012" + - "\uff6c\013\uff6c\014\uff6c\015\uff6c\016\uff6c\017\uff6c\020\uff6c" + - "\023\uff6c\026\uff6c\037\uff6c\040\uff6c\041\uff6c\042\uff6c\043" + - "\uff6c\044\uff6c\046\uff6c\047\uff6c\050\uff6c\051\uff6c\052\uff6c" + - "\053\uff6c\054\uff6c\057\uff6c\060\uff6c\061\uff6c\062\uff6c\063" + - "\uff6c\066\uff6c\067\uff6c\071\uff6c\073\uff6c\074\uff6c\075\uff6c" + - "\001\002\000\004\075\242\001\002\000\004\075\241\001" + - "\002\000\050\005\064\007\101\024\102\025\055\027\107" + - "\030\072\031\113\032\057\033\075\034\071\035\042\036" + - "\063\040\076\056\060\063\236\066\054\070\065\072\067" + - "\074\066\001\002\000\004\075\235\001\002\000\010\026" + - "\200\063\234\075\uff84\001\002\000\050\005\uff7d\007\uff7d" + - "\024\uff7d\025\uff7d\027\uff7d\030\uff7d\031\uff7d\032\uff7d\033" + - "\uff7d\034\uff7d\035\uff7d\036\uff7d\040\uff7d\056\uff7d\063\uff7d" + - "\066\uff7d\070\uff7d\072\uff7d\074\uff7d\001\002\000\120\002" + - "\uff75\003\uff75\004\uff75\006\uff75\010\uff75\011\uff75\012\uff75" + - "\013\uff75\014\uff75\015\uff75\016\uff75\017\uff75\020\uff75\023" + - "\uff75\026\uff75\037\uff75\040\uff75\041\uff75\042\uff75\043\uff75" + - "\044\uff75\046\uff75\047\uff75\050\uff75\051\uff75\052\uff75\053" + - "\uff75\054\uff75\057\uff75\060\uff75\061\uff75\062\uff75\063\uff75" + - "\066\uff75\067\uff75\071\uff75\073\uff75\074\uff75\075\uff75\001" + - "\002\000\050\005\uff7c\007\uff7c\024\uff7c\025\uff7c\027\uff7c" + - "\030\uff7c\031\uff7c\032\uff7c\033\uff7c\034\uff7c\035\uff7c\036" + - "\uff7c\040\uff7c\056\uff7c\063\uff7c\066\uff7c\070\uff7c\072\uff7c" + - "\074\uff7c\001\002\000\004\075\uff7f\001\002\000\006\063" + - "\234\075\uff7e\001\002\000\120\002\uff74\003\uff74\004\uff74" + - "\006\uff74\010\uff74\011\uff74\012\uff74\013\uff74\014\uff74\015" + - "\uff74\016\uff74\017\uff74\020\uff74\023\uff74\026\uff74\037\uff74" + - "\040\uff74\041\uff74\042\uff74\043\uff74\044\uff74\046\uff74\047" + - "\uff74\050\uff74\051\uff74\052\uff74\053\uff74\054\uff74\057\uff74" + - "\060\uff74\061\uff74\062\uff74\063\uff74\066\uff74\067\uff74\071" + - "\uff74\073\uff74\074\uff74\075\uff74\001\002\000\120\002\uff73" + - "\003\uff73\004\uff73\006\uff73\010\uff73\011\uff73\012\uff73\013" + - "\uff73\014\uff73\015\uff73\016\uff73\017\uff73\020\uff73\023\uff73" + - "\026\uff73\037\uff73\040\uff73\041\uff73\042\uff73\043\uff73\044" + - "\uff73\046\uff73\047\uff73\050\uff73\051\uff73\052\uff73\053\uff73" + - "\054\uff73\057\uff73\060\uff73\061\uff73\062\uff73\063\uff73\066" + - "\uff73\067\uff73\071\uff73\073\uff73\074\uff73\075\uff73\001\002" + - "\000\044\037\126\040\117\041\122\042\127\043\123\044" + - "\131\046\132\047\130\050\136\051\134\052\121\053\125" + - "\057\120\060\135\061\124\071\244\074\133\001\002\000" + - "\120\002\uff8d\003\uff8d\004\uff8d\006\uff8d\010\uff8d\011\uff8d" + - "\012\uff8d\013\uff8d\014\uff8d\015\uff8d\016\uff8d\017\uff8d\020" + - "\uff8d\023\uff8d\026\uff8d\037\uff8d\040\uff8d\041\uff8d\042\uff8d" + - "\043\uff8d\044\uff8d\046\uff8d\047\uff8d\050\uff8d\051\uff8d\052" + - "\uff8d\053\uff8d\054\uff8d\057\uff8d\060\uff8d\061\uff8d\062\uff8d" + - "\063\uff8d\066\uff8d\067\uff8d\071\uff8d\073\uff8d\074\uff8d\075" + - "\uff8d\001\002\000\044\006\246\037\126\040\117\041\122" + - "\042\127\043\123\044\131\046\132\047\130\050\136\051" + - "\134\052\121\053\125\057\120\060\135\061\124\074\133" + - "\001\002\000\046\005\064\007\101\024\102\025\055\027" + - "\107\030\072\031\113\032\057\033\075\034\071\035\042" + - "\036\063\040\076\056\060\066\054\070\065\072\067\074" + - "\066\001\002\000\120\002\uff86\003\uff86\004\250\006\uff86" + - "\010\uff86\011\uff86\012\uff86\013\uff86\014\uff86\015\uff86\016" + - "\uff86\017\uff86\020\uff86\023\uff86\026\uff86\037\126\040\117" + - "\041\122\042\127\043\123\044\131\046\132\047\130\050" + - "\136\051\134\052\121\053\125\054\uff86\057\120\060\135" + - "\061\124\062\uff86\063\uff86\066\uff86\067\uff86\071\uff86\073" + - "\uff86\074\133\075\uff86\001\002\000\046\005\064\007\101" + - "\024\102\025\055\027\107\030\072\031\113\032\057\033" + - "\075\034\071\035\042\036\063\040\076\056\060\066\054" + - "\070\065\072\067\074\066\001\002\000\120\002\uff87\003" + - "\uff87\004\uff87\006\uff87\010\uff87\011\uff87\012\uff87\013\uff87" + - "\014\uff87\015\uff87\016\uff87\017\uff87\020\uff87\023\uff87\026" + - "\uff87\037\126\040\117\041\122\042\127\043\123\044\131" + - "\046\132\047\130\050\136\051\134\052\121\053\125\054" + - "\uff87\057\120\060\135\061\124\062\uff87\063\uff87\066\uff87" + - "\067\uff87\071\uff87\073\uff87\074\133\075\uff87\001\002\000" + - "\120\002\uff8e\003\uff8e\004\uff8e\006\uff8e\010\uff8e\011\uff8e" + - "\012\uff8e\013\uff8e\014\uff8e\015\uff8e\016\uff8e\017\uff8e\020" + - "\uff8e\023\uff8e\026\uff8e\037\uff8e\040\uff8e\041\uff8e\042\uff8e" + - "\043\uff8e\044\uff8e\046\uff8e\047\uff8e\050\uff8e\051\uff8e\052" + - "\uff8e\053\uff8e\054\uff8e\057\uff8e\060\uff8e\061\uff8e\062\uff8e" + - "\063\uff8e\066\uff8e\067\uff8e\071\uff8e\073\uff8e\074\133\075" + - "\uff8e\001\002\000\052\003\254\005\064\007\101\024\102" + - "\025\055\027\107\030\072\031\113\032\057\033\075\034" + - "\071\035\042\036\063\040\076\056\060\066\054\070\065" + - "\071\uff83\072\067\074\066\001\002\000\120\002\uff89\003" + + "\ufff1\016\ufff1\017\ufff1\020\ufff1\023\ufff1\024\ufff1\064\ufff1" + + "\067\ufff1\001\002\000\004\002\u0102\001\002\000\050\003" + + "\374\005\066\007\103\025\104\026\057\030\111\031\073" + + "\032\115\033\063\034\077\035\074\036\044\037\065\041" + + "\100\057\061\067\056\071\070\073\071\075\067\001\002" + + "\000\012\003\355\021\042\022\043\036\044\001\002\000" + + "\006\003\353\036\352\001\002\000\012\003\343\021\042" + + "\022\043\036\044\001\002\000\036\002\uffee\003\uffee\011" + + "\uffee\012\uffee\013\uffee\014\uffee\015\uffee\016\uffee\017\uffee" + + "\020\uffee\023\uffee\024\uffee\064\uffee\067\uffee\001\002\000" + + "\036\002\ufff9\003\ufff9\011\ufff9\012\ufff9\013\ufff9\014\ufff9" + + "\015\ufff9\016\ufff9\017\ufff9\020\ufff9\023\ufff9\024\ufff9\064" + + "\ufff9\067\ufff9\001\002\000\004\036\044\001\002\000\036" + + "\002\uffed\003\uffed\011\uffed\012\uffed\013\uffed\014\uffed\015" + + "\uffed\016\uffed\017\uffed\020\uffed\023\uffed\024\uffed\064\uffed" + + "\067\uffed\001\002\000\036\002\ufff6\003\ufff6\011\ufff6\012" + + "\ufff6\013\ufff6\014\ufff6\015\ufff6\016\ufff6\017\ufff6\020\ufff6" + + "\023\ufff6\024\ufff6\064\ufff6\067\ufff6\001\002\000\010\021" + + "\042\022\043\036\044\001\002\000\012\003\310\021\042" + + "\022\043\036\044\001\002\000\036\002\ufff0\003\ufff0\011" + + "\ufff0\012\ufff0\013\ufff0\014\ufff0\015\ufff0\016\ufff0\017\ufff0" + + "\020\ufff0\023\ufff0\024\ufff0\064\ufff0\067\ufff0\001\002\000" + + "\050\003\306\005\066\007\103\025\104\026\057\030\111" + + "\031\073\032\115\033\063\034\077\035\074\036\044\037" + + "\065\041\100\057\061\067\056\071\070\073\071\075\067" + + "\001\002\000\004\002\000\001\002\000\036\002\ufff2\003" + + "\ufff2\011\ufff2\012\ufff2\013\ufff2\014\ufff2\015\ufff2\016\ufff2" + + "\017\ufff2\020\ufff2\023\ufff2\024\ufff2\064\ufff2\067\ufff2\001" + + "\002\000\010\021\042\022\043\036\044\001\002\000\126" + + "\002\uffe9\003\uffe9\004\uffe9\006\uffe9\010\uffe9\011\uffe9\012" + + "\uffe9\013\uffe9\014\uffe9\015\uffe9\016\uffe9\017\uffe9\020\uffe9" + + "\023\uffe9\024\uffe9\027\uffe9\036\uffe9\040\uffe9\041\uffe9\042" + + "\uffe9\043\uffe9\044\uffe9\045\uffe9\047\uffe9\050\uffe9\051\uffe9" + + "\052\uffe9\053\uffe9\054\uffe9\055\uffe9\060\uffe9\061\uffe9\062" + + "\uffe9\063\uffe9\064\uffe9\067\uffe9\070\uffe9\071\uffe9\072\uffe9" + + "\074\uffe9\075\uffe9\076\uffe9\001\002\000\004\076\304\001" + + "\002\000\004\047\301\001\002\000\004\047\274\001\002" + + "\000\132\002\uffb4\003\uffb4\004\uffb4\006\uffb4\010\uffb4\011" + + "\uffb4\012\uffb4\013\uffb4\014\uffb4\015\uffb4\016\uffb4\017\uffb4" + + "\020\uffb4\023\uffb4\024\uffb4\027\uffb4\036\uffb4\040\uffb4\041" + + "\uffb4\042\uffb4\043\uffb4\044\uffb4\045\uffb4\047\uffb4\050\uffb4" + + "\051\uffb4\052\uffb4\053\uffb4\054\uffb4\055\uffb4\056\uffb4\060" + + "\uffb4\061\uffb4\062\uffb4\063\uffb4\064\uffb4\066\272\067\uffb4" + + "\070\uffb4\071\uffb4\072\uffb4\074\uffb4\075\uffb4\076\uffb4\001" + + "\002\000\004\036\054\001\002\000\126\002\uffea\003\uffea" + + "\004\uffea\006\uffea\010\uffea\011\uffea\012\uffea\013\uffea\014" + + "\uffea\015\uffea\016\uffea\017\uffea\020\uffea\023\uffea\024\uffea" + + "\027\uffea\036\uffea\040\uffea\041\uffea\042\uffea\043\uffea\044" + + "\uffea\045\uffea\047\uffea\050\uffea\051\uffea\052\uffea\053\uffea" + + "\054\uffea\055\uffea\060\uffea\061\uffea\062\uffea\063\uffea\064" + + "\uffea\067\uffea\070\uffea\071\uffea\072\uffea\074\uffea\075\053" + + "\076\uffea\001\002\000\126\002\uffe8\003\uffe8\004\uffe8\006" + + "\uffe8\010\uffe8\011\uffe8\012\uffe8\013\uffe8\014\uffe8\015\uffe8" + + "\016\uffe8\017\uffe8\020\uffe8\023\uffe8\024\uffe8\027\uffe8\036" + + "\uffe8\040\uffe8\041\uffe8\042\uffe8\043\uffe8\044\uffe8\045\uffe8" + + "\047\uffe8\050\uffe8\051\uffe8\052\uffe8\053\uffe8\054\uffe8\055" + + "\uffe8\060\uffe8\061\uffe8\062\uffe8\063\uffe8\064\uffe8\067\uffe8" + + "\070\uffe8\071\uffe8\072\uffe8\074\uffe8\075\051\076\uffe8\001" + + "\002\000\126\002\uffe7\003\uffe7\004\uffe7\006\uffe7\010\uffe7" + + "\011\uffe7\012\uffe7\013\uffe7\014\uffe7\015\uffe7\016\uffe7\017" + + "\uffe7\020\uffe7\023\uffe7\024\uffe7\027\uffe7\036\uffe7\040\uffe7" + + "\041\uffe7\042\uffe7\043\uffe7\044\uffe7\045\uffe7\047\uffe7\050" + + "\uffe7\051\uffe7\052\uffe7\053\uffe7\054\uffe7\055\uffe7\060\uffe7" + + "\061\uffe7\062\uffe7\063\uffe7\064\uffe7\067\uffe7\070\uffe7\071" + + "\uffe7\072\uffe7\074\uffe7\075\uffe7\076\uffe7\001\002\000\004" + + "\076\052\001\002\000\126\002\uffe3\003\uffe3\004\uffe3\006" + + "\uffe3\010\uffe3\011\uffe3\012\uffe3\013\uffe3\014\uffe3\015\uffe3" + + "\016\uffe3\017\uffe3\020\uffe3\023\uffe3\024\uffe3\027\uffe3\036" + + "\uffe3\040\uffe3\041\uffe3\042\uffe3\043\uffe3\044\uffe3\045\uffe3" + + "\047\uffe3\050\uffe3\051\uffe3\052\uffe3\053\uffe3\054\uffe3\055" + + "\uffe3\060\uffe3\061\uffe3\062\uffe3\063\uffe3\064\uffe3\067\uffe3" + + "\070\uffe3\071\uffe3\072\uffe3\074\uffe3\075\uffe3\076\uffe3\001" + + "\002\000\004\076\uffe5\001\002\000\040\002\uffb1\003\uffb1" + + "\011\uffb1\012\uffb1\013\uffb1\014\uffb1\015\uffb1\016\uffb1\017" + + "\uffb1\020\uffb1\023\uffb1\024\uffb1\064\uffb1\065\055\067\uffb1" + + "\001\002\000\046\005\066\007\103\025\104\026\057\030" + + "\111\031\073\032\115\033\063\034\077\035\074\036\044" + + "\037\065\041\100\057\061\067\056\071\070\073\071\075" + + "\067\001\002\000\014\003\270\021\042\022\043\036\044" + + "\073\266\001\002\000\010\021\042\022\043\036\044\001" + + "\002\000\122\002\uffa6\003\uffa6\004\uffa6\006\uffa6\010\uffa6" + + "\011\uffa6\012\uffa6\013\uffa6\014\uffa6\015\uffa6\016\uffa6\017" + + "\uffa6\020\uffa6\023\uffa6\024\uffa6\027\uffa6\040\uffa6\041\uffa6" + + "\042\uffa6\043\uffa6\044\uffa6\045\uffa6\047\uffa6\050\uffa6\051" + + "\uffa6\052\uffa6\053\uffa6\054\uffa6\055\uffa6\060\uffa6\061\uffa6" + + "\062\uffa6\063\uffa6\064\uffa6\067\uffa6\070\uffa6\072\uffa6\074" + + "\uffa6\075\uffa6\076\uffa6\001\002\000\046\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\067\056" + + "\071\070\073\071\075\067\001\002\000\124\002\uff86\003" + + "\uff86\004\uff86\006\uff86\010\uff86\011\uff86\012\uff86\013\uff86" + + "\014\uff86\015\uff86\016\uff86\017\uff86\020\uff86\023\uff86\024" + + "\uff86\027\uff86\040\uff86\041\uff86\042\uff86\043\uff86\044\uff86" + + "\045\uff86\047\uff86\050\uff86\051\uff86\052\uff86\053\uff86\054" + + "\uff86\055\uff86\060\uff86\061\uff86\062\uff86\063\uff86\064\uff86" + + "\067\uff86\070\uff86\071\255\072\uff86\074\uff86\075\uff86\076" + + "\uff86\001\002\000\122\002\uffa1\003\uffa1\004\uffa1\006\uffa1" + + "\010\uffa1\011\uffa1\012\uffa1\013\uffa1\014\uffa1\015\uffa1\016" + + "\uffa1\017\uffa1\020\uffa1\023\uffa1\024\uffa1\027\uffa1\040\uffa1" + + "\041\uffa1\042\uffa1\043\uffa1\044\uffa1\045\uffa1\047\uffa1\050" + + "\uffa1\051\uffa1\052\uffa1\053\uffa1\054\uffa1\055\uffa1\060\uffa1" + + "\061\uffa1\062\uffa1\063\uffa1\064\uffa1\067\uffa1\070\uffa1\072" + + "\uffa1\074\uffa1\075\uffa1\076\uffa1\001\002\000\122\002\uffad" + + "\003\uffad\004\uffad\006\uffad\010\uffad\011\uffad\012\uffad\013" + + "\uffad\014\uffad\015\uffad\016\uffad\017\uffad\020\uffad\023\uffad" + + "\024\uffad\027\uffad\040\uffad\041\uffad\042\uffad\043\uffad\044" + + "\uffad\045\uffad\047\uffad\050\uffad\051\uffad\052\uffad\053\uffad" + + "\054\uffad\055\uffad\060\uffad\061\uffad\062\uffad\063\uffad\064" + + "\uffad\067\uffad\070\uffad\072\uffad\074\uffad\075\uffad\076\uffad" + + "\001\002\000\046\005\066\007\103\025\104\026\057\030" + + "\111\031\073\032\115\033\063\034\077\035\074\036\044" + + "\037\065\041\100\057\061\067\056\071\070\073\071\075" + + "\067\001\002\000\046\005\066\007\103\025\104\026\057" + + "\030\111\031\073\032\115\033\063\034\077\035\074\036" + + "\044\037\065\041\100\057\061\067\056\071\070\073\071" + + "\075\067\001\002\000\050\005\066\007\103\025\104\026" + + "\057\030\111\031\073\032\115\033\063\034\077\035\074" + + "\036\044\037\065\041\100\057\061\067\056\071\070\073" + + "\071\075\067\076\uff81\001\002\000\046\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\067\056" + + "\071\070\073\071\075\067\001\002\000\050\005\066\007" + + "\103\025\104\026\057\030\111\031\073\032\115\033\063" + + "\034\077\035\074\036\044\037\065\041\100\057\061\067" + + "\056\071\070\073\071\074\uff81\075\067\001\002\000\122" + + "\002\uffac\003\uffac\004\uffac\006\uffac\010\uffac\011\uffac\012" + + "\uffac\013\uffac\014\uffac\015\uffac\016\uffac\017\uffac\020\uffac" + + "\023\uffac\024\uffac\027\uffac\040\uffac\041\uffac\042\uffac\043" + + "\uffac\044\uffac\045\uffac\047\uffac\050\uffac\051\uffac\052\uffac" + + "\053\uffac\054\uffac\055\uffac\060\uffac\061\uffac\062\uffac\063" + + "\uffac\064\uffac\067\uffac\070\uffac\072\uffac\074\uffac\075\uffac" + + "\076\uffac\001\002\000\122\002\uffa3\003\uffa3\004\uffa3\006" + + "\uffa3\010\uffa3\011\uffa3\012\uffa3\013\uffa3\014\uffa3\015\uffa3" + + "\016\uffa3\017\uffa3\020\uffa3\023\uffa3\024\uffa3\027\uffa3\040" + + "\uffa3\041\uffa3\042\uffa3\043\uffa3\044\uffa3\045\uffa3\047\uffa3" + + "\050\uffa3\051\uffa3\052\uffa3\053\uffa3\054\uffa3\055\uffa3\060" + + "\uffa3\061\uffa3\062\uffa3\063\uffa3\064\uffa3\067\uffa3\070\uffa3" + + "\072\uffa3\074\uffa3\075\uffa3\076\uffa3\001\002\000\122\002" + + "\uffa5\003\uffa5\004\uffa5\006\uffa5\010\uffa5\011\uffa5\012\uffa5" + + "\013\uffa5\014\uffa5\015\uffa5\016\uffa5\017\uffa5\020\uffa5\023" + + "\uffa5\024\uffa5\027\uffa5\040\uffa5\041\uffa5\042\uffa5\043\uffa5" + + "\044\uffa5\045\uffa5\047\uffa5\050\uffa5\051\uffa5\052\uffa5\053" + + "\uffa5\054\uffa5\055\uffa5\060\uffa5\061\uffa5\062\uffa5\063\uffa5" + + "\064\uffa5\067\uffa5\070\uffa5\072\uffa5\074\uffa5\075\uffa5\076" + + "\uffa5\001\002\000\122\002\uffa8\003\uffa8\004\uffa8\006\uffa8" + + "\010\uffa8\011\uffa8\012\uffa8\013\uffa8\014\uffa8\015\uffa8\016" + + "\uffa8\017\uffa8\020\uffa8\023\uffa8\024\uffa8\027\uffa8\040\uffa8" + + "\041\uffa8\042\uffa8\043\uffa8\044\uffa8\045\uffa8\047\uffa8\050" + + "\uffa8\051\uffa8\052\uffa8\053\uffa8\054\uffa8\055\uffa8\060\uffa8" + + "\061\uffa8\062\uffa8\063\uffa8\064\uffa8\067\uffa8\070\uffa8\072" + + "\uffa8\074\uffa8\075\uffa8\076\uffa8\001\002\000\076\002\uffb0" + + "\003\uffb0\011\uffb0\012\uffb0\013\uffb0\014\uffb0\015\uffb0\016" + + "\uffb0\017\uffb0\020\uffb0\023\uffb0\024\uffb0\040\130\041\122" + + "\042\124\043\131\044\125\045\133\047\134\050\132\051" + + "\140\052\135\053\123\054\127\060\121\061\137\062\126" + + "\064\uffb0\067\uffb0\075\136\001\002\000\122\002\uffa4\003" + + "\uffa4\004\uffa4\006\uffa4\010\uffa4\011\uffa4\012\uffa4\013\uffa4" + + "\014\uffa4\015\uffa4\016\uffa4\017\uffa4\020\uffa4\023\uffa4\024" + + "\uffa4\027\uffa4\040\uffa4\041\uffa4\042\uffa4\043\uffa4\044\uffa4" + + "\045\uffa4\047\uffa4\050\uffa4\051\uffa4\052\uffa4\053\uffa4\054" + + "\uffa4\055\uffa4\060\uffa4\061\uffa4\062\uffa4\063\uffa4\064\uffa4" + + "\067\uffa4\070\uffa4\072\uffa4\074\uffa4\075\uffa4\076\uffa4\001" + + "\002\000\046\005\066\007\103\025\104\026\057\030\111" + + "\031\073\032\115\033\063\034\077\035\074\036\044\037" + + "\065\041\100\057\061\067\056\071\070\073\071\075\067" + + "\001\002\000\122\002\uff70\003\uff70\004\uff70\006\uff70\010" + + "\uff70\011\uff70\012\uff70\013\uff70\014\uff70\015\uff70\016\uff70" + + "\017\uff70\020\uff70\023\uff70\024\uff70\027\uff70\040\uff70\041" + + "\uff70\042\uff70\043\uff70\044\uff70\045\uff70\047\uff70\050\uff70" + + "\051\uff70\052\uff70\053\uff70\054\uff70\055\uff70\060\uff70\061" + + "\uff70\062\uff70\063\uff70\064\uff70\067\uff70\070\uff70\072\uff70" + + "\074\uff70\075\uff70\076\uff70\001\002\000\122\002\uff6f\003" + + "\uff6f\004\uff6f\006\uff6f\010\uff6f\011\uff6f\012\uff6f\013\uff6f" + + "\014\uff6f\015\uff6f\016\uff6f\017\uff6f\020\uff6f\023\uff6f\024" + + "\uff6f\027\uff6f\040\uff6f\041\uff6f\042\uff6f\043\uff6f\044\uff6f" + + "\045\uff6f\047\uff6f\050\uff6f\051\uff6f\052\uff6f\053\uff6f\054" + + "\uff6f\055\uff6f\060\uff6f\061\uff6f\062\uff6f\063\uff6f\064\uff6f" + + "\067\uff6f\070\uff6f\072\uff6f\074\uff6f\075\uff6f\076\uff6f\001" + + "\002\000\046\005\066\007\103\025\104\026\057\030\111" + + "\031\073\032\115\033\063\034\077\035\074\036\044\037" + + "\065\041\100\057\061\067\056\071\070\073\071\075\067" + + "\001\002\000\010\021\042\022\043\036\044\001\002\000" + + "\122\002\uffaf\003\uffaf\004\uffaf\006\uffaf\010\uffaf\011\uffaf" + + "\012\uffaf\013\uffaf\014\uffaf\015\uffaf\016\uffaf\017\uffaf\020" + + "\uffaf\023\uffaf\024\uffaf\027\uffaf\040\uffaf\041\uffaf\042\uffaf" + + "\043\uffaf\044\uffaf\045\uffaf\047\uffaf\050\uffaf\051\uffaf\052" + + "\uffaf\053\uffaf\054\uffaf\055\uffaf\060\uffaf\061\uffaf\062\uffaf" + + "\063\uffaf\064\uffaf\067\uffaf\070\uffaf\072\uffaf\074\uffaf\075" + + "\uffaf\076\uffaf\001\002\000\122\002\uffae\003\uffae\004\uffae" + + "\006\uffae\010\uffae\011\uffae\012\uffae\013\uffae\014\uffae\015" + + "\uffae\016\uffae\017\uffae\020\uffae\023\uffae\024\uffae\027\uffae" + + "\040\uffae\041\uffae\042\uffae\043\uffae\044\uffae\045\uffae\047" + + "\uffae\050\uffae\051\uffae\052\uffae\053\uffae\054\uffae\055\uffae" + + "\060\uffae\061\uffae\062\uffae\063\uffae\064\uffae\067\uffae\070" + + "\uffae\072\uffae\074\uffae\075\uffae\076\uffae\001\002\000\122" + + "\002\uff8f\003\uff8f\004\uff8f\006\uff8f\010\uff8f\011\uff8f\012" + + "\uff8f\013\uff8f\014\uff8f\015\uff8f\016\uff8f\017\uff8f\020\uff8f" + + "\023\uff8f\024\uff8f\027\uff8f\040\uff8f\041\uff8f\042\uff8f\043" + + "\uff8f\044\uff8f\045\uff8f\047\uff8f\050\uff8f\051\uff8f\052\uff8f" + + "\053\uff8f\054\uff8f\055\uff8f\060\uff8f\061\uff8f\062\uff8f\063" + + "\uff8f\064\uff8f\067\uff8f\070\uff8f\072\uff8f\074\uff8f\075\uff8f" + + "\076\uff8f\001\002\000\122\002\uffaa\003\uffaa\004\uffaa\006" + + "\uffaa\010\uffaa\011\uffaa\012\uffaa\013\uffaa\014\uffaa\015\uffaa" + + "\016\uffaa\017\uffaa\020\uffaa\023\uffaa\024\uffaa\027\uffaa\040" + + "\uffaa\041\uffaa\042\uffaa\043\uffaa\044\uffaa\045\uffaa\047\uffaa" + + "\050\uffaa\051\uffaa\052\uffaa\053\uffaa\054\uffaa\055\uffaa\060" + + "\uffaa\061\uffaa\062\uffaa\063\uffaa\064\uffaa\067\uffaa\070\uffaa" + + "\072\uffaa\074\uffaa\075\uffaa\076\uffaa\001\002\000\122\002" + + "\uffa0\003\uffa0\004\uffa0\006\uffa0\010\uffa0\011\uffa0\012\uffa0" + + "\013\uffa0\014\uffa0\015\uffa0\016\uffa0\017\uffa0\020\uffa0\023" + + "\uffa0\024\uffa0\027\uffa0\040\uffa0\041\uffa0\042\uffa0\043\uffa0" + + "\044\uffa0\045\uffa0\047\uffa0\050\uffa0\051\uffa0\052\uffa0\053" + + "\uffa0\054\uffa0\055\uffa0\060\uffa0\061\uffa0\062\uffa0\063\uffa0" + + "\064\uffa0\067\uffa0\070\uffa0\072\uffa0\074\uffa0\075\uffa0\076" + + "\uffa0\001\002\000\122\002\uffa9\003\uffa9\004\uffa9\006\uffa9" + + "\010\uffa9\011\uffa9\012\uffa9\013\uffa9\014\uffa9\015\uffa9\016" + + "\uffa9\017\uffa9\020\uffa9\023\uffa9\024\uffa9\027\uffa9\040\uffa9" + + "\041\uffa9\042\uffa9\043\uffa9\044\uffa9\045\uffa9\047\uffa9\050" + + "\uffa9\051\uffa9\052\uffa9\053\uffa9\054\uffa9\055\uffa9\060\uffa9" + + "\061\uffa9\062\uffa9\063\uffa9\064\uffa9\067\uffa9\070\uffa9\072" + + "\uffa9\074\uffa9\075\uffa9\076\uffa9\001\002\000\122\002\uffab" + + "\003\uffab\004\uffab\006\uffab\010\uffab\011\uffab\012\uffab\013" + + "\uffab\014\uffab\015\uffab\016\uffab\017\uffab\020\uffab\023\uffab" + + "\024\uffab\027\uffab\040\uffab\041\uffab\042\uffab\043\uffab\044" + + "\uffab\045\uffab\047\uffab\050\uffab\051\uffab\052\uffab\053\uffab" + + "\054\uffab\055\uffab\060\uffab\061\uffab\062\uffab\063\uffab\064" + + "\uffab\067\uffab\070\uffab\072\uffab\074\uffab\075\uffab\076\uffab" + + "\001\002\000\122\002\uffa7\003\uffa7\004\uffa7\006\uffa7\010" + + "\uffa7\011\uffa7\012\uffa7\013\uffa7\014\uffa7\015\uffa7\016\uffa7" + + "\017\uffa7\020\uffa7\023\uffa7\024\uffa7\027\uffa7\040\uffa7\041" + + "\uffa7\042\uffa7\043\uffa7\044\uffa7\045\uffa7\047\uffa7\050\uffa7" + + "\051\uffa7\052\uffa7\053\uffa7\054\uffa7\055\uffa7\060\uffa7\061" + + "\uffa7\062\uffa7\063\uffa7\064\uffa7\067\uffa7\070\uffa7\072\uffa7" + + "\074\uffa7\075\uffa7\076\uffa7\001\002\000\122\002\uffa2\003" + + "\uffa2\004\uffa2\006\uffa2\010\uffa2\011\uffa2\012\uffa2\013\uffa2" + + "\014\uffa2\015\uffa2\016\uffa2\017\uffa2\020\uffa2\023\uffa2\024" + + "\uffa2\027\uffa2\040\uffa2\041\uffa2\042\uffa2\043\uffa2\044\uffa2" + + "\045\uffa2\047\uffa2\050\uffa2\051\uffa2\052\uffa2\053\uffa2\054" + + "\uffa2\055\uffa2\060\uffa2\061\uffa2\062\uffa2\063\uffa2\064\uffa2" + + "\067\uffa2\070\uffa2\072\uffa2\074\uffa2\075\uffa2\076\uffa2\001" + + "\002\000\004\036\117\001\002\000\046\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\067\056" + + "\071\070\073\071\075\067\001\002\000\122\002\uff89\003" + "\uff89\004\uff89\006\uff89\010\uff89\011\uff89\012\uff89\013\uff89" + - "\014\uff89\015\uff89\016\uff89\017\uff89\020\uff89\023\uff89\026" + - "\uff89\037\uff89\040\uff89\041\uff89\042\uff89\043\uff89\044\uff89" + - "\046\uff89\047\uff89\050\uff89\051\uff89\052\uff89\053\uff89\054" + - "\uff89\057\uff89\060\uff89\061\uff89\062\uff89\063\uff89\066\uff89" + - "\067\uff89\071\uff89\073\uff89\074\uff89\075\uff89\001\002\000" + - "\004\071\257\001\002\000\004\071\uff84\001\002\000\120" + - "\002\uff8a\003\uff8a\004\uff8a\006\uff8a\010\uff8a\011\uff8a\012" + - "\uff8a\013\uff8a\014\uff8a\015\uff8a\016\uff8a\017\uff8a\020\uff8a" + - "\023\uff8a\026\uff8a\037\uff8a\040\uff8a\041\uff8a\042\uff8a\043" + - "\uff8a\044\uff8a\046\uff8a\047\uff8a\050\uff8a\051\uff8a\052\uff8a" + - "\053\uff8a\054\uff8a\057\uff8a\060\uff8a\061\uff8a\062\uff8a\063" + - "\uff8a\066\uff8a\067\uff8a\071\uff8a\073\uff8a\074\uff8a\075\uff8a" + - "\001\002\000\120\002\uff8f\003\uff8f\004\uff8f\006\uff8f\010" + - "\uff8f\011\uff8f\012\uff8f\013\uff8f\014\uff8f\015\uff8f\016\uff8f" + - "\017\uff8f\020\uff8f\023\uff8f\026\uff8f\037\uff8f\040\uff8f\041" + - "\uff8f\042\uff8f\043\uff8f\044\uff8f\046\uff8f\047\uff8f\050\uff8f" + - "\051\uff8f\052\uff8f\053\uff8f\054\uff8f\057\uff8f\060\uff8f\061" + - "\uff8f\062\uff8f\063\uff8f\066\uff8f\067\uff8f\071\uff8f\073\uff8f" + - "\074\133\075\uff8f\001\002\000\004\035\262\001\002\000" + - "\046\005\064\007\101\024\102\025\055\027\107\030\072" + - "\031\113\032\057\033\075\034\071\035\042\036\063\040" + - "\076\056\060\066\054\070\065\072\067\074\066\001\002" + - "\000\120\002\uff8c\003\uff8c\004\uff8c\006\uff8c\010\uff8c\011" + + "\014\uff89\015\uff89\016\uff89\017\uff89\020\uff89\023\uff89\024" + + "\uff89\027\uff89\040\130\041\122\042\124\043\131\044\125" + + "\045\133\047\134\050\132\051\140\052\135\053\123\054" + + "\127\055\uff89\060\121\061\137\062\126\063\uff89\064\uff89" + + "\067\uff89\070\uff89\072\uff89\074\uff89\075\136\076\uff89\001" + + "\002\000\046\005\066\007\103\025\104\026\057\030\111" + + "\031\073\032\115\033\063\034\077\035\074\036\044\037" + + "\065\041\100\057\061\067\056\071\070\073\071\075\067" + + "\001\002\000\046\005\066\007\103\025\104\026\057\030" + + "\111\031\073\032\115\033\063\034\077\035\074\036\044" + + "\037\065\041\100\057\061\067\056\071\070\073\071\075" + + "\067\001\002\000\046\005\066\007\103\025\104\026\057" + + "\030\111\031\073\032\115\033\063\034\077\035\074\036" + + "\044\037\065\041\100\057\061\067\056\071\070\073\071" + + "\075\067\001\002\000\046\005\066\007\103\025\104\026" + + "\057\030\111\031\073\032\115\033\063\034\077\035\074" + + "\036\044\037\065\041\100\057\061\067\056\071\070\073" + + "\071\075\067\001\002\000\046\005\066\007\103\025\104" + + "\026\057\030\111\031\073\032\115\033\063\034\077\035" + + "\074\036\044\037\065\041\100\057\061\067\056\071\070" + + "\073\071\075\067\001\002\000\046\005\066\007\103\025" + + "\104\026\057\030\111\031\073\032\115\033\063\034\077" + + "\035\074\036\044\037\065\041\100\057\061\067\056\071" + + "\070\073\071\075\067\001\002\000\046\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\067\056" + + "\071\070\073\071\075\067\001\002\000\046\005\066\007" + + "\103\025\104\026\057\030\111\031\073\032\115\033\063" + + "\034\077\035\074\036\044\037\065\041\100\057\061\067" + + "\056\071\070\073\071\075\067\001\002\000\046\005\066" + + "\007\103\025\104\026\057\030\111\031\073\032\115\033" + + "\063\034\077\035\074\036\044\037\065\041\100\057\061" + + "\067\056\071\070\073\071\075\067\001\002\000\046\005" + + "\066\007\103\025\104\026\057\030\111\031\073\032\115" + + "\033\063\034\077\035\074\036\044\037\065\041\100\057" + + "\061\067\056\071\070\073\071\075\067\001\002\000\046" + + "\005\066\007\103\025\104\026\057\030\111\031\073\032" + + "\115\033\063\034\077\035\074\036\044\037\065\041\100" + + "\057\061\067\056\071\070\073\071\075\067\001\002\000" + + "\046\005\066\007\103\025\104\026\057\030\111\031\073" + + "\032\115\033\063\034\077\035\074\036\044\037\065\041" + + "\100\057\061\067\056\071\070\073\071\075\067\001\002" + + "\000\046\005\066\007\103\025\104\026\057\030\111\031" + + "\073\032\115\033\063\034\077\035\074\036\044\037\065" + + "\041\100\057\061\067\056\071\070\073\071\075\067\001" + + "\002\000\046\005\066\007\103\025\104\026\057\030\111" + + "\031\073\032\115\033\063\034\077\035\074\036\044\037" + + "\065\041\100\057\061\067\056\071\070\073\071\075\067" + + "\001\002\000\046\005\066\007\103\025\104\026\057\030" + + "\111\031\073\032\115\033\063\034\077\035\074\036\044" + + "\037\065\041\100\057\061\067\056\071\070\073\071\075" + + "\067\001\002\000\046\005\066\007\103\025\104\026\057" + + "\030\111\031\073\032\115\033\063\034\077\035\074\036" + + "\044\037\065\041\100\057\061\067\056\071\070\073\071" + + "\075\067\001\002\000\106\002\uff97\003\uff97\004\uff97\006" + + "\uff97\010\uff97\011\uff97\012\uff97\013\uff97\014\uff97\015\uff97" + + "\016\uff97\017\uff97\020\uff97\023\uff97\024\uff97\027\uff97\040" + + "\130\041\122\042\124\043\131\044\125\045\133\055\uff97" + + "\060\uff97\061\uff97\062\uff97\063\uff97\064\uff97\067\uff97\070" + + "\uff97\072\uff97\074\uff97\075\136\076\uff97\001\002\000\122" + + "\002\uff92\003\uff92\004\uff92\006\uff92\010\uff92\011\uff92\012" + + "\uff92\013\uff92\014\uff92\015\uff92\016\uff92\017\uff92\020\uff92" + + "\023\uff92\024\uff92\027\uff92\040\130\041\122\042\124\043" + + "\131\044\125\045\133\047\134\050\132\051\140\052\135" + + "\053\123\054\127\055\uff92\060\uff92\061\uff92\062\uff92\063" + + "\uff92\064\uff92\067\uff92\070\uff92\072\uff92\074\uff92\075\136" + + "\076\uff92\001\002\000\044\040\130\041\122\042\124\043" + + "\131\044\125\045\133\047\134\050\132\051\140\052\135" + + "\053\123\054\127\060\121\061\137\062\126\075\136\076" + + "\144\001\002\000\122\002\uff90\003\uff90\004\uff90\006\uff90" + + "\010\uff90\011\uff90\012\uff90\013\uff90\014\uff90\015\uff90\016" + + "\uff90\017\uff90\020\uff90\023\uff90\024\uff90\027\uff90\040\uff90" + + "\041\uff90\042\uff90\043\uff90\044\uff90\045\uff90\047\uff90\050" + + "\uff90\051\uff90\052\uff90\053\uff90\054\uff90\055\uff90\060\uff90" + + "\061\uff90\062\uff90\063\uff90\064\uff90\067\uff90\070\uff90\072" + + "\uff90\074\uff90\075\uff90\076\uff90\001\002\000\106\002\uff96" + + "\003\uff96\004\uff96\006\uff96\010\uff96\011\uff96\012\uff96\013" + + "\uff96\014\uff96\015\uff96\016\uff96\017\uff96\020\uff96\023\uff96" + + "\024\uff96\027\uff96\040\130\041\122\042\124\043\131\044" + + "\125\045\133\055\uff96\060\uff96\061\uff96\062\uff96\063\uff96" + + "\064\uff96\067\uff96\070\uff96\072\uff96\074\uff96\075\136\076" + + "\uff96\001\002\000\106\002\uff99\003\uff99\004\uff99\006\uff99" + + "\010\uff99\011\uff99\012\uff99\013\uff99\014\uff99\015\uff99\016" + + "\uff99\017\uff99\020\uff99\023\uff99\024\uff99\027\uff99\040\130" + + "\041\122\042\124\043\131\044\125\045\133\055\uff99\060" + + "\uff99\061\uff99\062\uff99\063\uff99\064\uff99\067\uff99\070\uff99" + + "\072\uff99\074\uff99\075\136\076\uff99\001\002\000\122\002" + + "\uff9a\003\uff9a\004\uff9a\006\uff9a\010\uff9a\011\uff9a\012\uff9a" + + "\013\uff9a\014\uff9a\015\uff9a\016\uff9a\017\uff9a\020\uff9a\023" + + "\uff9a\024\uff9a\027\uff9a\040\uff9a\041\uff9a\042\uff9a\043\uff9a" + + "\044\uff9a\045\uff9a\047\uff9a\050\uff9a\051\uff9a\052\uff9a\053" + + "\uff9a\054\uff9a\055\uff9a\060\uff9a\061\uff9a\062\uff9a\063\uff9a" + + "\064\uff9a\067\uff9a\070\uff9a\072\uff9a\074\uff9a\075\136\076" + + "\uff9a\001\002\000\106\002\uff98\003\uff98\004\uff98\006\uff98" + + "\010\uff98\011\uff98\012\uff98\013\uff98\014\uff98\015\uff98\016" + + "\uff98\017\uff98\020\uff98\023\uff98\024\uff98\027\uff98\040\130" + + "\041\122\042\124\043\131\044\125\045\133\055\uff98\060" + + "\uff98\061\uff98\062\uff98\063\uff98\064\uff98\067\uff98\070\uff98" + + "\072\uff98\074\uff98\075\136\076\uff98\001\002\000\122\002" + + "\uff9c\003\uff9c\004\uff9c\006\uff9c\010\uff9c\011\uff9c\012\uff9c" + + "\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020\uff9c\023" + + "\uff9c\024\uff9c\027\uff9c\040\uff9c\041\uff9c\042\uff9c\043\uff9c" + + "\044\uff9c\045\uff9c\047\uff9c\050\uff9c\051\uff9c\052\uff9c\053" + + "\uff9c\054\uff9c\055\uff9c\060\uff9c\061\uff9c\062\uff9c\063\uff9c" + + "\064\uff9c\067\uff9c\070\uff9c\072\uff9c\074\uff9c\075\136\076" + + "\uff9c\001\002\000\122\002\uff9f\003\uff9f\004\uff9f\006\uff9f" + + "\010\uff9f\011\uff9f\012\uff9f\013\uff9f\014\uff9f\015\uff9f\016" + + "\uff9f\017\uff9f\020\uff9f\023\uff9f\024\uff9f\027\uff9f\040\uff9f" + + "\041\uff9f\042\124\043\131\044\125\045\133\047\uff9f\050" + + "\uff9f\051\uff9f\052\uff9f\053\uff9f\054\uff9f\055\uff9f\060\uff9f" + + "\061\uff9f\062\uff9f\063\uff9f\064\uff9f\067\uff9f\070\uff9f\072" + + "\uff9f\074\uff9f\075\136\076\uff9f\001\002\000\106\002\uff94" + + "\003\uff94\004\uff94\006\uff94\010\uff94\011\uff94\012\uff94\013" + + "\uff94\014\uff94\015\uff94\016\uff94\017\uff94\020\uff94\023\uff94" + + "\024\uff94\027\uff94\040\130\041\122\042\124\043\131\044" + + "\125\045\133\055\uff94\060\uff94\061\uff94\062\uff94\063\uff94" + + "\064\uff94\067\uff94\070\uff94\072\uff94\074\uff94\075\136\076" + + "\uff94\001\002\000\122\002\uff91\003\uff91\004\uff91\006\uff91" + + "\010\uff91\011\uff91\012\uff91\013\uff91\014\uff91\015\uff91\016" + + "\uff91\017\uff91\020\uff91\023\uff91\024\uff91\027\uff91\040\130" + + "\041\122\042\124\043\131\044\125\045\133\047\134\050" + + "\132\051\140\052\135\053\123\054\127\055\uff91\060\121" + + "\061\137\062\uff91\063\uff91\064\uff91\067\uff91\070\uff91\072" + + "\uff91\074\uff91\075\136\076\uff91\001\002\000\122\002\uff9b" + + "\003\uff9b\004\uff9b\006\uff9b\010\uff9b\011\uff9b\012\uff9b\013" + + "\uff9b\014\uff9b\015\uff9b\016\uff9b\017\uff9b\020\uff9b\023\uff9b" + + "\024\uff9b\027\uff9b\040\uff9b\041\uff9b\042\uff9b\043\uff9b\044" + + "\uff9b\045\uff9b\047\uff9b\050\uff9b\051\uff9b\052\uff9b\053\uff9b" + + "\054\uff9b\055\uff9b\060\uff9b\061\uff9b\062\uff9b\063\uff9b\064" + + "\uff9b\067\uff9b\070\uff9b\072\uff9b\074\uff9b\075\136\076\uff9b" + + "\001\002\000\122\002\uff9d\003\uff9d\004\uff9d\006\uff9d\010" + + "\uff9d\011\uff9d\012\uff9d\013\uff9d\014\uff9d\015\uff9d\016\uff9d" + + "\017\uff9d\020\uff9d\023\uff9d\024\uff9d\027\uff9d\040\uff9d\041" + + "\uff9d\042\uff9d\043\uff9d\044\uff9d\045\uff9d\047\uff9d\050\uff9d" + + "\051\uff9d\052\uff9d\053\uff9d\054\uff9d\055\uff9d\060\uff9d\061" + + "\uff9d\062\uff9d\063\uff9d\064\uff9d\067\uff9d\070\uff9d\072\uff9d" + + "\074\uff9d\075\136\076\uff9d\001\002\000\106\002\uff95\003" + + "\uff95\004\uff95\006\uff95\010\uff95\011\uff95\012\uff95\013\uff95" + + "\014\uff95\015\uff95\016\uff95\017\uff95\020\uff95\023\uff95\024" + + "\uff95\027\uff95\040\130\041\122\042\124\043\131\044\125" + + "\045\133\055\uff95\060\uff95\061\uff95\062\uff95\063\uff95\064" + + "\uff95\067\uff95\070\uff95\072\uff95\074\uff95\075\136\076\uff95" + + "\001\002\000\122\002\uff9e\003\uff9e\004\uff9e\006\uff9e\010" + + "\uff9e\011\uff9e\012\uff9e\013\uff9e\014\uff9e\015\uff9e\016\uff9e" + + "\017\uff9e\020\uff9e\023\uff9e\024\uff9e\027\uff9e\040\uff9e\041" + + "\uff9e\042\124\043\131\044\125\045\133\047\uff9e\050\uff9e" + + "\051\uff9e\052\uff9e\053\uff9e\054\uff9e\055\uff9e\060\uff9e\061" + + "\uff9e\062\uff9e\063\uff9e\064\uff9e\067\uff9e\070\uff9e\072\uff9e" + + "\074\uff9e\075\136\076\uff9e\001\002\000\122\002\uff93\003" + + "\uff93\004\uff93\006\uff93\010\uff93\011\uff93\012\uff93\013\uff93" + + "\014\uff93\015\uff93\016\uff93\017\uff93\020\uff93\023\uff93\024" + + "\uff93\027\uff93\040\130\041\122\042\124\043\131\044\125" + + "\045\133\047\134\050\132\051\140\052\135\053\123\054" + + "\127\055\uff93\060\uff93\061\uff93\062\uff93\063\uff93\064\uff93" + + "\067\uff93\070\uff93\072\uff93\074\uff93\075\136\076\uff93\001" + + "\002\000\044\010\163\040\130\041\122\042\124\043\131" + + "\044\125\045\133\047\134\050\132\051\140\052\135\053" + + "\123\054\127\060\121\061\137\062\126\075\136\001\002" + + "\000\004\073\164\001\002\000\046\005\066\007\103\025" + + "\104\026\057\030\111\031\073\032\115\033\063\034\077" + + "\035\074\036\044\037\065\041\100\057\061\067\056\071" + + "\070\073\071\075\067\001\002\000\122\002\uff83\003\uff83" + + "\004\uff83\006\uff83\010\uff83\011\uff83\012\uff83\013\uff83\014" + + "\uff83\015\uff83\016\uff83\017\uff83\020\uff83\023\uff83\024\uff83" + + "\027\uff83\040\uff83\041\uff83\042\uff83\043\uff83\044\uff83\045" + + "\uff83\047\uff83\050\uff83\051\uff83\052\uff83\053\uff83\054\uff83" + + "\055\uff83\060\uff83\061\uff83\062\uff83\063\uff83\064\uff83\067" + + "\uff83\070\uff83\072\uff83\074\uff83\075\uff83\076\uff83\001\002" + + "\000\004\074\174\001\002\000\044\040\130\041\122\042" + + "\124\043\131\044\125\045\133\047\134\050\132\051\140" + + "\052\135\053\123\054\127\060\121\061\137\062\126\070" + + "\170\075\136\001\002\000\046\005\066\007\103\025\104" + + "\026\057\030\111\031\073\032\115\033\063\034\077\035" + + "\074\036\044\037\065\041\100\057\061\067\056\071\070" + + "\073\071\075\067\001\002\000\046\040\130\041\122\042" + + "\124\043\131\044\125\045\133\047\134\050\132\051\140" + + "\052\135\053\123\054\127\060\121\061\137\062\126\063" + + "\172\074\uff77\075\136\001\002\000\046\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\067\056" + + "\071\070\073\071\075\067\001\002\000\004\074\uff78\001" + + "\002\000\122\002\uff79\003\uff79\004\uff79\006\uff79\010\uff79" + + "\011\uff79\012\uff79\013\uff79\014\uff79\015\uff79\016\uff79\017" + + "\uff79\020\uff79\023\uff79\024\uff79\027\uff79\040\uff79\041\uff79" + + "\042\uff79\043\uff79\044\uff79\045\uff79\047\uff79\050\uff79\051" + + "\uff79\052\uff79\053\uff79\054\uff79\055\uff79\060\uff79\061\uff79" + + "\062\uff79\063\uff79\064\uff79\067\uff79\070\uff79\072\uff79\074" + + "\uff79\075\uff79\076\uff79\001\002\000\122\002\uff8e\003\uff8e" + + "\004\uff8e\006\uff8e\010\uff8e\011\uff8e\012\uff8e\013\uff8e\014" + + "\uff8e\015\uff8e\016\uff8e\017\uff8e\020\uff8e\023\uff8e\024\uff8e" + + "\027\uff8e\040\uff8e\041\uff8e\042\uff8e\043\uff8e\044\uff8e\045" + + "\uff8e\047\uff8e\050\uff8e\051\uff8e\052\uff8e\053\uff8e\054\uff8e" + + "\055\uff8e\060\uff8e\061\uff8e\062\uff8e\063\uff8e\064\uff8e\067" + + "\uff8e\070\uff8e\072\uff8e\074\uff8e\075\136\076\uff8e\001\002" + + "\000\004\074\230\001\002\000\052\027\uff7f\040\130\041" + + "\122\042\124\043\131\044\125\045\133\047\134\050\132" + + "\051\140\052\135\053\123\054\127\060\121\061\137\062" + + "\126\063\224\070\170\074\uff7f\075\136\001\002\000\004" + + "\074\222\001\002\000\006\027\202\074\uff82\001\002\000" + + "\010\021\042\022\043\036\044\001\002\000\010\065\217" + + "\074\uff6c\076\uff6c\001\002\000\006\036\205\063\206\001" + + "\002\000\062\002\uffd9\003\uffd9\011\uffd9\012\uffd9\013\uffd9" + + "\014\uffd9\015\uffd9\016\uffd9\017\uffd9\020\uffd9\021\042\022" + + "\043\023\uffd9\024\uffd9\036\044\055\uffd9\056\uffd9\063\212" + + "\064\uffd9\065\uffd9\067\uffd9\072\uffd9\074\uffd9\076\uffd9\001" + + "\002\000\010\021\042\022\043\036\044\001\002\000\052" + + "\002\uffd6\003\uffd6\011\uffd6\012\uffd6\013\uffd6\014\uffd6\015" + + "\uffd6\016\uffd6\017\uffd6\020\uffd6\023\uffd6\024\uffd6\055\uffd6" + + "\056\uffd6\064\uffd6\065\uffd6\067\uffd6\072\uffd6\074\uffd6\076" + + "\uffd6\001\002\000\052\002\uffd7\003\uffd7\011\uffd7\012\uffd7" + + "\013\uffd7\014\uffd7\015\uffd7\016\uffd7\017\uffd7\020\uffd7\023" + + "\uffd7\024\uffd7\055\uffd7\056\uffd7\064\uffd7\065\uffd7\067\uffd7" + + "\072\uffd7\074\uffd7\076\uffd7\001\002\000\012\021\042\022" + + "\043\036\044\063\216\001\002\000\012\021\042\022\043" + + "\036\044\063\214\001\002\000\052\002\uffda\003\uffda\011" + + "\uffda\012\uffda\013\uffda\014\uffda\015\uffda\016\uffda\017\uffda" + + "\020\uffda\023\uffda\024\uffda\055\uffda\056\uffda\064\uffda\065" + + "\uffda\067\uffda\072\uffda\074\uffda\076\uffda\001\002\000\054" + + "\005\uffdc\007\uffdc\021\uffdc\022\uffdc\025\uffdc\026\uffdc\030" + + "\uffdc\031\uffdc\032\uffdc\033\uffdc\034\uffdc\035\uffdc\036\uffdc" + + "\037\uffdc\041\uffdc\057\uffdc\063\uffdc\067\uffdc\071\uffdc\073" + + "\uffdc\075\uffdc\001\002\000\052\002\uffd8\003\uffd8\011\uffd8" + + "\012\uffd8\013\uffd8\014\uffd8\015\uffd8\016\uffd8\017\uffd8\020" + + "\uffd8\023\uffd8\024\uffd8\055\uffd8\056\uffd8\064\uffd8\065\uffd8" + + "\067\uffd8\072\uffd8\074\uffd8\076\uffd8\001\002\000\054\005" + + "\uffdb\007\uffdb\021\uffdb\022\uffdb\025\uffdb\026\uffdb\030\uffdb" + + "\031\uffdb\032\uffdb\033\uffdb\034\uffdb\035\uffdb\036\uffdb\037" + + "\uffdb\041\uffdb\057\uffdb\063\uffdb\067\uffdb\071\uffdb\073\uffdb" + + "\075\uffdb\001\002\000\046\005\066\007\103\025\104\026" + + "\057\030\111\031\073\032\115\033\063\034\077\035\074" + + "\036\044\037\065\041\100\057\061\067\056\071\070\073" + + "\071\075\067\001\002\000\006\074\uff6d\076\uff6d\001\002" + + "\000\046\040\130\041\122\042\124\043\131\044\125\045" + + "\133\047\134\050\132\051\140\052\135\053\123\054\127" + + "\060\121\061\137\062\126\074\uff6b\075\136\076\uff6b\001" + + "\002\000\122\002\uff6e\003\uff6e\004\uff6e\006\uff6e\010\uff6e" + + "\011\uff6e\012\uff6e\013\uff6e\014\uff6e\015\uff6e\016\uff6e\017" + + "\uff6e\020\uff6e\023\uff6e\024\uff6e\027\uff6e\040\uff6e\041\uff6e" + + "\042\uff6e\043\uff6e\044\uff6e\045\uff6e\047\uff6e\050\uff6e\051" + + "\uff6e\052\uff6e\053\uff6e\054\uff6e\055\uff6e\060\uff6e\061\uff6e" + + "\062\uff6e\063\uff6e\064\uff6e\067\uff6e\070\uff6e\072\uff6e\074" + + "\uff6e\075\uff6e\076\uff6e\001\002\000\050\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\063\216" + + "\067\056\071\070\073\071\075\067\001\002\000\050\005" + + "\066\007\103\025\104\026\057\030\111\031\073\032\115" + + "\033\063\034\077\035\074\036\044\037\065\041\100\057" + + "\061\063\214\067\056\071\070\073\071\075\067\001\002" + + "\000\056\027\uff7f\040\130\041\122\042\124\043\131\044" + + "\125\045\133\047\134\050\132\051\140\052\135\053\123" + + "\054\127\060\121\061\137\062\126\063\224\064\uff7f\072" + + "\uff7f\074\uff7f\075\136\076\uff7f\001\002\000\014\027\uff80" + + "\064\uff80\072\uff80\074\uff80\076\uff80\001\002\000\014\027" + + "\uff7e\064\uff7e\072\uff7e\074\uff7e\076\uff7e\001\002\000\122" + + "\002\uff6a\003\uff6a\004\uff6a\006\uff6a\010\uff6a\011\uff6a\012" + + "\uff6a\013\uff6a\014\uff6a\015\uff6a\016\uff6a\017\uff6a\020\uff6a" + + "\023\uff6a\024\uff6a\027\uff6a\040\uff6a\041\uff6a\042\uff6a\043" + + "\uff6a\044\uff6a\045\uff6a\047\uff6a\050\uff6a\051\uff6a\052\uff6a" + + "\053\uff6a\054\uff6a\055\uff6a\060\uff6a\061\uff6a\062\uff6a\063" + + "\uff6a\064\uff6a\067\uff6a\070\uff6a\072\uff6a\074\uff6a\075\uff6a" + + "\076\uff6a\001\002\000\044\040\130\041\122\042\124\043" + + "\131\044\125\045\133\047\134\050\132\051\140\052\135" + + "\053\123\054\127\060\121\061\137\062\126\072\232\075" + + "\136\001\002\000\122\002\uff8b\003\uff8b\004\uff8b\006\uff8b" + + "\010\uff8b\011\uff8b\012\uff8b\013\uff8b\014\uff8b\015\uff8b\016" + + "\uff8b\017\uff8b\020\uff8b\023\uff8b\024\uff8b\027\uff8b\040\uff8b" + + "\041\uff8b\042\uff8b\043\uff8b\044\uff8b\045\uff8b\047\uff8b\050" + + "\uff8b\051\uff8b\052\uff8b\053\uff8b\054\uff8b\055\uff8b\060\uff8b" + + "\061\uff8b\062\uff8b\063\uff8b\064\uff8b\067\uff8b\070\uff8b\072" + + "\uff8b\074\uff8b\075\uff8b\076\uff8b\001\002\000\004\076\246" + + "\001\002\000\004\076\245\001\002\000\050\005\066\007" + + "\103\025\104\026\057\030\111\031\073\032\115\033\063" + + "\034\077\035\074\036\044\037\065\041\100\057\061\064" + + "\242\067\056\071\070\073\071\075\067\001\002\000\004" + + "\076\241\001\002\000\010\027\202\064\240\076\uff82\001" + + "\002\000\050\005\uff7b\007\uff7b\025\uff7b\026\uff7b\030\uff7b" + + "\031\uff7b\032\uff7b\033\uff7b\034\uff7b\035\uff7b\036\uff7b\037" + + "\uff7b\041\uff7b\057\uff7b\064\uff7b\067\uff7b\071\uff7b\073\uff7b" + + "\075\uff7b\001\002\000\122\002\uff73\003\uff73\004\uff73\006" + + "\uff73\010\uff73\011\uff73\012\uff73\013\uff73\014\uff73\015\uff73" + + "\016\uff73\017\uff73\020\uff73\023\uff73\024\uff73\027\uff73\040" + + "\uff73\041\uff73\042\uff73\043\uff73\044\uff73\045\uff73\047\uff73" + + "\050\uff73\051\uff73\052\uff73\053\uff73\054\uff73\055\uff73\060" + + "\uff73\061\uff73\062\uff73\063\uff73\064\uff73\067\uff73\070\uff73" + + "\072\uff73\074\uff73\075\uff73\076\uff73\001\002\000\050\005" + + "\uff7a\007\uff7a\025\uff7a\026\uff7a\030\uff7a\031\uff7a\032\uff7a" + + "\033\uff7a\034\uff7a\035\uff7a\036\uff7a\037\uff7a\041\uff7a\057" + + "\uff7a\064\uff7a\067\uff7a\071\uff7a\073\uff7a\075\uff7a\001\002" + + "\000\004\076\uff7d\001\002\000\006\064\240\076\uff7c\001" + + "\002\000\122\002\uff72\003\uff72\004\uff72\006\uff72\010\uff72" + + "\011\uff72\012\uff72\013\uff72\014\uff72\015\uff72\016\uff72\017" + + "\uff72\020\uff72\023\uff72\024\uff72\027\uff72\040\uff72\041\uff72" + + "\042\uff72\043\uff72\044\uff72\045\uff72\047\uff72\050\uff72\051" + + "\uff72\052\uff72\053\uff72\054\uff72\055\uff72\060\uff72\061\uff72" + + "\062\uff72\063\uff72\064\uff72\067\uff72\070\uff72\072\uff72\074" + + "\uff72\075\uff72\076\uff72\001\002\000\122\002\uff71\003\uff71" + + "\004\uff71\006\uff71\010\uff71\011\uff71\012\uff71\013\uff71\014" + + "\uff71\015\uff71\016\uff71\017\uff71\020\uff71\023\uff71\024\uff71" + + "\027\uff71\040\uff71\041\uff71\042\uff71\043\uff71\044\uff71\045" + + "\uff71\047\uff71\050\uff71\051\uff71\052\uff71\053\uff71\054\uff71" + + "\055\uff71\060\uff71\061\uff71\062\uff71\063\uff71\064\uff71\067" + + "\uff71\070\uff71\072\uff71\074\uff71\075\uff71\076\uff71\001\002" + + "\000\044\006\250\040\130\041\122\042\124\043\131\044" + + "\125\045\133\047\134\050\132\051\140\052\135\053\123" + + "\054\127\060\121\061\137\062\126\075\136\001\002\000" + + "\046\005\066\007\103\025\104\026\057\030\111\031\073" + + "\032\115\033\063\034\077\035\074\036\044\037\065\041" + + "\100\057\061\067\056\071\070\073\071\075\067\001\002" + + "\000\122\002\uff84\003\uff84\004\252\006\uff84\010\uff84\011" + + "\uff84\012\uff84\013\uff84\014\uff84\015\uff84\016\uff84\017\uff84" + + "\020\uff84\023\uff84\024\uff84\027\uff84\040\130\041\122\042" + + "\124\043\131\044\125\045\133\047\134\050\132\051\140" + + "\052\135\053\123\054\127\055\uff84\060\121\061\137\062" + + "\126\063\uff84\064\uff84\067\uff84\070\uff84\072\uff84\074\uff84" + + "\075\136\076\uff84\001\002\000\046\005\066\007\103\025" + + "\104\026\057\030\111\031\073\032\115\033\063\034\077" + + "\035\074\036\044\037\065\041\100\057\061\067\056\071" + + "\070\073\071\075\067\001\002\000\122\002\uff85\003\uff85" + + "\004\uff85\006\uff85\010\uff85\011\uff85\012\uff85\013\uff85\014" + + "\uff85\015\uff85\016\uff85\017\uff85\020\uff85\023\uff85\024\uff85" + + "\027\uff85\040\130\041\122\042\124\043\131\044\125\045" + + "\133\047\134\050\132\051\140\052\135\053\123\054\127" + + "\055\uff85\060\121\061\137\062\126\063\uff85\064\uff85\067" + + "\uff85\070\uff85\072\uff85\074\uff85\075\136\076\uff85\001\002" + + "\000\122\002\uff8c\003\uff8c\004\uff8c\006\uff8c\010\uff8c\011" + "\uff8c\012\uff8c\013\uff8c\014\uff8c\015\uff8c\016\uff8c\017\uff8c" + - "\020\uff8c\023\uff8c\026\uff8c\037\126\040\117\041\122\042" + - "\127\043\123\044\131\046\132\047\130\050\136\051\134" + - "\052\121\053\125\054\uff8c\057\120\060\135\061\124\062" + - "\uff8c\063\uff8c\066\uff8c\067\uff8c\071\uff8c\073\uff8c\074\133" + - "\075\uff8c\001\002\000\050\005\064\007\101\024\102\025" + - "\055\027\107\030\072\031\113\032\057\033\075\034\071" + - "\035\042\036\063\040\076\056\060\066\054\070\065\072" + - "\067\073\uff83\074\066\001\002\000\120\002\uff78\003\uff78" + - "\004\uff78\006\uff78\010\uff78\011\uff78\012\uff78\013\uff78\014" + - "\uff78\015\uff78\016\uff78\017\uff78\020\uff78\023\uff78\026\uff78" + - "\037\uff78\040\uff78\041\uff78\042\uff78\043\uff78\044\uff78\046" + - "\uff78\047\uff78\050\uff78\051\uff78\052\uff78\053\uff78\054\uff78" + - "\057\uff78\060\uff78\061\uff78\062\uff78\063\uff78\066\uff78\067" + - "\uff78\071\uff78\073\uff78\074\uff78\075\uff78\001\002\000\120" + - "\002\uff77\003\uff77\004\uff77\006\uff77\010\uff77\011\uff77\012" + - "\uff77\013\uff77\014\uff77\015\uff77\016\uff77\017\uff77\020\uff77" + - "\023\uff77\026\uff77\037\uff77\040\uff77\041\uff77\042\uff77\043" + - "\uff77\044\uff77\046\uff77\047\uff77\050\uff77\051\uff77\052\uff77" + - "\053\uff77\054\uff77\057\uff77\060\uff77\061\uff77\062\uff77\063" + - "\uff77\066\uff77\067\uff77\071\uff77\073\uff77\074\uff77\075\uff77" + - "\001\002\000\120\002\uff76\003\uff76\004\uff76\006\uff76\010" + - "\uff76\011\uff76\012\uff76\013\uff76\014\uff76\015\uff76\016\uff76" + - "\017\uff76\020\uff76\023\uff76\026\uff76\037\uff76\040\uff76\041" + - "\uff76\042\uff76\043\uff76\044\uff76\046\uff76\047\uff76\050\uff76" + - "\051\uff76\052\uff76\053\uff76\054\uff76\057\uff76\060\uff76\061" + - "\uff76\062\uff76\063\uff76\066\uff76\067\uff76\071\uff76\073\uff76" + - "\074\uff76\075\uff76\001\002\000\004\035\042\001\002\000" + - "\126\002\uffb5\003\uffb5\004\uffb5\006\uffb5\010\uffb5\011\uffb5" + - "\012\uffb5\013\uffb5\014\uffb5\015\uffb5\016\uffb5\017\uffb5\020" + - "\uffb5\023\uffb5\026\uffb5\035\uffb5\037\uffb5\040\uffb5\041\uffb5" + - "\042\uffb5\043\uffb5\044\uffb5\046\uffb5\047\uffb5\050\uffb5\051" + - "\uffb5\052\uffb5\053\uffb5\054\uffb5\055\uffb5\057\uffb5\060\uffb5" + - "\061\uffb5\062\uffb5\063\uffb5\066\uffb5\067\uffb5\070\uffb5\071" + - "\uffb5\073\uffb5\074\uffb5\075\uffb5\001\002\000\010\021\040" + - "\022\041\035\042\001\002\000\004\062\274\001\002\000" + - "\010\021\040\022\041\035\042\001\002\000\004\047\276" + - "\001\002\000\124\002\uffe3\003\uffe3\004\uffe3\006\uffe3\010" + - "\uffe3\011\uffe3\012\uffe3\013\uffe3\014\uffe3\015\uffe3\016\uffe3" + - "\017\uffe3\020\uffe3\023\uffe3\026\uffe3\035\uffe3\037\uffe3\040" + - "\uffe3\041\uffe3\042\uffe3\043\uffe3\044\uffe3\046\uffe3\047\uffe3" + - "\050\uffe3\051\uffe3\052\uffe3\053\uffe3\054\uffe3\057\uffe3\060" + - "\uffe3\061\uffe3\062\uffe3\063\uffe3\066\uffe3\067\uffe3\070\uffe3" + - "\071\uffe3\073\uffe3\074\uffe3\075\uffe3\001\002\000\004\035" + - "\042\001\002\000\004\047\301\001\002\000\124\002\uffe7" + - "\003\uffe7\004\uffe7\006\uffe7\010\uffe7\011\uffe7\012\uffe7\013" + - "\uffe7\014\uffe7\015\uffe7\016\uffe7\017\uffe7\020\uffe7\023\uffe7" + - "\026\uffe7\035\uffe7\037\uffe7\040\uffe7\041\uffe7\042\uffe7\043" + - "\uffe7\044\uffe7\046\uffe7\047\uffe7\050\uffe7\051\uffe7\052\uffe7" + - "\053\uffe7\054\uffe7\057\uffe7\060\uffe7\061\uffe7\062\uffe7\063" + - "\uffe7\066\uffe7\067\uffe7\070\uffe7\071\uffe7\073\uffe7\074\uffe7" + - "\075\uffe7\001\002\000\124\002\uffe5\003\uffe5\004\uffe5\006" + - "\uffe5\010\uffe5\011\uffe5\012\uffe5\013\uffe5\014\uffe5\015\uffe5" + - "\016\uffe5\017\uffe5\020\uffe5\023\uffe5\026\uffe5\035\uffe5\037" + - "\uffe5\040\uffe5\041\uffe5\042\uffe5\043\uffe5\044\uffe5\046\uffe5" + - "\047\uffe5\050\uffe5\051\uffe5\052\uffe5\053\uffe5\054\uffe5\057" + - "\uffe5\060\uffe5\061\uffe5\062\uffe5\063\uffe5\066\uffe5\067\uffe5" + - "\070\uffe5\071\uffe5\073\uffe5\074\uffe5\075\uffe5\001\002\000" + - "\074\002\uff65\003\uff65\011\uff65\012\uff65\013\uff65\014\uff65" + - "\015\uff65\016\uff65\017\uff65\020\uff65\023\uff65\037\126\040" + - "\117\041\122\042\127\043\123\044\131\046\132\047\130" + - "\050\136\051\134\052\121\053\125\057\120\060\135\061" + - "\124\063\uff65\066\uff65\074\133\001\002\000\034\002\uff64" + - "\003\uff64\011\uff64\012\uff64\013\uff64\014\uff64\015\uff64\016" + - "\uff64\017\uff64\020\uff64\023\uff64\063\uff64\066\uff64\001\002" + - "\000\004\035\307\001\002\000\034\002\uffd5\003\uffd5\011" + - "\uffd5\012\uffd5\013\uffd5\014\uffd5\015\uffd5\016\uffd5\017\uffd5" + - "\020\uffd5\023\uffd5\063\uffd5\066\uffd5\001\002\000\014\021" + - "\040\022\041\035\042\054\uffe2\070\313\001\002\000\004" + - "\054\317\001\002\000\006\054\uffe1\055\uffe1\001\002\000" + - "\006\054\uffe0\055\uffe0\001\002\000\012\021\040\022\041" + - "\035\042\071\315\001\002\000\004\071\316\001\002\000" + - "\006\054\uffdf\055\uffdf\001\002\000\006\054\uffde\055\uffde" + - "\001\002\000\046\005\064\007\101\024\102\025\055\027" + - "\107\030\072\031\113\032\057\033\075\034\071\035\042" + - "\036\063\040\076\056\060\066\054\070\065\072\067\074" + - "\066\001\002\000\074\002\uffd6\003\uffd6\011\uffd6\012\uffd6" + - "\013\uffd6\014\uffd6\015\uffd6\016\uffd6\017\uffd6\020\uffd6\023" + - "\uffd6\037\126\040\117\041\122\042\127\043\123\044\131" + - "\046\132\047\130\050\136\051\134\052\121\053\125\057" + - "\120\060\135\061\124\063\uffd6\066\uffd6\074\133\001\002" + - "\000\004\054\322\001\002\000\004\035\042\001\002\000" + - "\004\070\324\001\002\000\050\005\064\007\101\024\102" + - "\025\055\027\107\030\072\031\113\032\057\033\075\034" + - "\071\035\042\036\063\040\076\056\060\066\054\070\065" + - "\071\uff83\072\067\074\066\001\002\000\004\071\326\001" + - "\002\000\034\002\uffb7\003\uffb7\011\uffb7\012\uffb7\013\uffb7" + - "\014\uffb7\015\uffb7\016\uffb7\017\uffb7\020\uffb7\023\uffb7\063" + - "\uffb7\066\uffb7\001\002\000\004\035\330\001\002\000\042" + - "\002\uffb9\003\uffb9\011\uffb9\012\uffb9\013\uffb9\014\uffb9\015" + - "\uffb9\016\uffb9\017\uffb9\020\uffb9\023\uffb9\035\uffb9\062\uffb9" + - "\063\uffb9\066\uffb9\074\340\001\002\000\040\002\uffbd\003" + - "\uffbd\011\uffbd\012\uffbd\013\uffbd\014\uffbd\015\uffbd\016\uffbd" + - "\017\uffbd\020\uffbd\023\uffbd\035\330\062\333\063\uffbd\066" + - "\uffbd\001\002\000\034\002\uffbe\003\uffbe\011\uffbe\012\uffbe" + - "\013\uffbe\014\uffbe\015\uffbe\016\uffbe\017\uffbe\020\uffbe\023" + - "\uffbe\063\uffbe\066\uffbe\001\002\000\006\035\330\062\211" + - "\001\002\000\006\035\330\062\213\001\002\000\034\002" + - "\uffbb\003\uffbb\011\uffbb\012\uffbb\013\uffbb\014\uffbb\015\uffbb" + - "\016\uffbb\017\uffbb\020\uffbb\023\uffbb\063\uffbb\066\uffbb\001" + - "\002\000\034\002\uffba\003\uffba\011\uffba\012\uffba\013\uffba" + - "\014\uffba\015\uffba\016\uffba\017\uffba\020\uffba\023\uffba\063" + - "\uffba\066\uffba\001\002\000\034\002\uffbc\003\uffbc\011\uffbc" + - "\012\uffbc\013\uffbc\014\uffbc\015\uffbc\016\uffbc\017\uffbc\020" + - "\uffbc\023\uffbc\063\uffbc\066\uffbc\001\002\000\004\030\341" + - "\001\002\000\004\075\342\001\002\000\040\002\uffb8\003" + + "\020\uff8c\023\uff8c\024\uff8c\027\uff8c\040\uff8c\041\uff8c\042" + + "\uff8c\043\uff8c\044\uff8c\045\uff8c\047\uff8c\050\uff8c\051\uff8c" + + "\052\uff8c\053\uff8c\054\uff8c\055\uff8c\060\uff8c\061\uff8c\062" + + "\uff8c\063\uff8c\064\uff8c\067\uff8c\070\uff8c\072\uff8c\074\uff8c" + + "\075\136\076\uff8c\001\002\000\052\003\256\005\066\007" + + "\103\025\104\026\057\030\111\031\073\032\115\033\063" + + "\034\077\035\074\036\044\037\065\041\100\057\061\067" + + "\056\071\070\072\uff81\073\071\075\067\001\002\000\122" + + "\002\uff87\003\uff87\004\uff87\006\uff87\010\uff87\011\uff87\012" + + "\uff87\013\uff87\014\uff87\015\uff87\016\uff87\017\uff87\020\uff87" + + "\023\uff87\024\uff87\027\uff87\040\uff87\041\uff87\042\uff87\043" + + "\uff87\044\uff87\045\uff87\047\uff87\050\uff87\051\uff87\052\uff87" + + "\053\uff87\054\uff87\055\uff87\060\uff87\061\uff87\062\uff87\063" + + "\uff87\064\uff87\067\uff87\070\uff87\072\uff87\074\uff87\075\uff87" + + "\076\uff87\001\002\000\004\072\261\001\002\000\004\072" + + "\uff82\001\002\000\122\002\uff88\003\uff88\004\uff88\006\uff88" + + "\010\uff88\011\uff88\012\uff88\013\uff88\014\uff88\015\uff88\016" + + "\uff88\017\uff88\020\uff88\023\uff88\024\uff88\027\uff88\040\uff88" + + "\041\uff88\042\uff88\043\uff88\044\uff88\045\uff88\047\uff88\050" + + "\uff88\051\uff88\052\uff88\053\uff88\054\uff88\055\uff88\060\uff88" + + "\061\uff88\062\uff88\063\uff88\064\uff88\067\uff88\070\uff88\072" + + "\uff88\074\uff88\075\uff88\076\uff88\001\002\000\122\002\uff8d" + + "\003\uff8d\004\uff8d\006\uff8d\010\uff8d\011\uff8d\012\uff8d\013" + + "\uff8d\014\uff8d\015\uff8d\016\uff8d\017\uff8d\020\uff8d\023\uff8d" + + "\024\uff8d\027\uff8d\040\uff8d\041\uff8d\042\uff8d\043\uff8d\044" + + "\uff8d\045\uff8d\047\uff8d\050\uff8d\051\uff8d\052\uff8d\053\uff8d" + + "\054\uff8d\055\uff8d\060\uff8d\061\uff8d\062\uff8d\063\uff8d\064" + + "\uff8d\067\uff8d\070\uff8d\072\uff8d\074\uff8d\075\136\076\uff8d" + + "\001\002\000\004\036\264\001\002\000\046\005\066\007" + + "\103\025\104\026\057\030\111\031\073\032\115\033\063" + + "\034\077\035\074\036\044\037\065\041\100\057\061\067" + + "\056\071\070\073\071\075\067\001\002\000\122\002\uff8a" + + "\003\uff8a\004\uff8a\006\uff8a\010\uff8a\011\uff8a\012\uff8a\013" + + "\uff8a\014\uff8a\015\uff8a\016\uff8a\017\uff8a\020\uff8a\023\uff8a" + + "\024\uff8a\027\uff8a\040\130\041\122\042\124\043\131\044" + + "\125\045\133\047\134\050\132\051\140\052\135\053\123" + + "\054\127\055\uff8a\060\121\061\137\062\126\063\uff8a\064" + + "\uff8a\067\uff8a\070\uff8a\072\uff8a\074\uff8a\075\136\076\uff8a" + + "\001\002\000\050\005\066\007\103\025\104\026\057\030" + + "\111\031\073\032\115\033\063\034\077\035\074\036\044" + + "\037\065\041\100\057\061\067\056\071\070\073\071\074" + + "\uff81\075\067\001\002\000\122\002\uff76\003\uff76\004\uff76" + + "\006\uff76\010\uff76\011\uff76\012\uff76\013\uff76\014\uff76\015" + + "\uff76\016\uff76\017\uff76\020\uff76\023\uff76\024\uff76\027\uff76" + + "\040\uff76\041\uff76\042\uff76\043\uff76\044\uff76\045\uff76\047" + + "\uff76\050\uff76\051\uff76\052\uff76\053\uff76\054\uff76\055\uff76" + + "\060\uff76\061\uff76\062\uff76\063\uff76\064\uff76\067\uff76\070" + + "\uff76\072\uff76\074\uff76\075\uff76\076\uff76\001\002\000\122" + + "\002\uff74\003\uff74\004\uff74\006\uff74\010\uff74\011\uff74\012" + + "\uff74\013\uff74\014\uff74\015\uff74\016\uff74\017\uff74\020\uff74" + + "\023\uff74\024\uff74\027\uff74\040\uff74\041\uff74\042\uff74\043" + + "\uff74\044\uff74\045\uff74\047\uff74\050\uff74\051\uff74\052\uff74" + + "\053\uff74\054\uff74\055\uff74\060\uff74\061\uff74\062\uff74\063" + + "\uff74\064\uff74\067\uff74\070\uff74\072\uff74\074\uff74\075\uff74" + + "\076\uff74\001\002\000\122\002\uff75\003\uff75\004\uff75\006" + + "\uff75\010\uff75\011\uff75\012\uff75\013\uff75\014\uff75\015\uff75" + + "\016\uff75\017\uff75\020\uff75\023\uff75\024\uff75\027\uff75\040" + + "\uff75\041\uff75\042\uff75\043\uff75\044\uff75\045\uff75\047\uff75" + + "\050\uff75\051\uff75\052\uff75\053\uff75\054\uff75\055\uff75\060" + + "\uff75\061\uff75\062\uff75\063\uff75\064\uff75\067\uff75\070\uff75" + + "\072\uff75\074\uff75\075\uff75\076\uff75\001\002\000\004\036" + + "\044\001\002\000\130\002\uffb3\003\uffb3\004\uffb3\006\uffb3" + + "\010\uffb3\011\uffb3\012\uffb3\013\uffb3\014\uffb3\015\uffb3\016" + + "\uffb3\017\uffb3\020\uffb3\023\uffb3\024\uffb3\027\uffb3\036\uffb3" + + "\040\uffb3\041\uffb3\042\uffb3\043\uffb3\044\uffb3\045\uffb3\047" + + "\uffb3\050\uffb3\051\uffb3\052\uffb3\053\uffb3\054\uffb3\055\uffb3" + + "\056\uffb3\060\uffb3\061\uffb3\062\uffb3\063\uffb3\064\uffb3\067" + + "\uffb3\070\uffb3\071\uffb3\072\uffb3\074\uffb3\075\uffb3\076\uffb3" + + "\001\002\000\010\021\042\022\043\036\044\001\002\000" + + "\004\063\276\001\002\000\010\021\042\022\043\036\044" + + "\001\002\000\004\050\300\001\002\000\126\002\uffe2\003" + + "\uffe2\004\uffe2\006\uffe2\010\uffe2\011\uffe2\012\uffe2\013\uffe2" + + "\014\uffe2\015\uffe2\016\uffe2\017\uffe2\020\uffe2\023\uffe2\024" + + "\uffe2\027\uffe2\036\uffe2\040\uffe2\041\uffe2\042\uffe2\043\uffe2" + + "\044\uffe2\045\uffe2\047\uffe2\050\uffe2\051\uffe2\052\uffe2\053" + + "\uffe2\054\uffe2\055\uffe2\060\uffe2\061\uffe2\062\uffe2\063\uffe2" + + "\064\uffe2\067\uffe2\070\uffe2\071\uffe2\072\uffe2\074\uffe2\075" + + "\uffe2\076\uffe2\001\002\000\004\036\044\001\002\000\004" + + "\050\303\001\002\000\126\002\uffe6\003\uffe6\004\uffe6\006" + + "\uffe6\010\uffe6\011\uffe6\012\uffe6\013\uffe6\014\uffe6\015\uffe6" + + "\016\uffe6\017\uffe6\020\uffe6\023\uffe6\024\uffe6\027\uffe6\036" + + "\uffe6\040\uffe6\041\uffe6\042\uffe6\043\uffe6\044\uffe6\045\uffe6" + + "\047\uffe6\050\uffe6\051\uffe6\052\uffe6\053\uffe6\054\uffe6\055" + + "\uffe6\060\uffe6\061\uffe6\062\uffe6\063\uffe6\064\uffe6\067\uffe6" + + "\070\uffe6\071\uffe6\072\uffe6\074\uffe6\075\uffe6\076\uffe6\001" + + "\002\000\126\002\uffe4\003\uffe4\004\uffe4\006\uffe4\010\uffe4" + + "\011\uffe4\012\uffe4\013\uffe4\014\uffe4\015\uffe4\016\uffe4\017" + + "\uffe4\020\uffe4\023\uffe4\024\uffe4\027\uffe4\036\uffe4\040\uffe4" + + "\041\uffe4\042\uffe4\043\uffe4\044\uffe4\045\uffe4\047\uffe4\050" + + "\uffe4\051\uffe4\052\uffe4\053\uffe4\054\uffe4\055\uffe4\060\uffe4" + + "\061\uffe4\062\uffe4\063\uffe4\064\uffe4\067\uffe4\070\uffe4\071" + + "\uffe4\072\uffe4\074\uffe4\075\uffe4\076\uffe4\001\002\000\076" + + "\002\uff63\003\uff63\011\uff63\012\uff63\013\uff63\014\uff63\015" + + "\uff63\016\uff63\017\uff63\020\uff63\023\uff63\024\uff63\040\130" + + "\041\122\042\124\043\131\044\125\045\133\047\134\050" + + "\132\051\140\052\135\053\123\054\127\060\121\061\137" + + "\062\126\064\uff63\067\uff63\075\136\001\002\000\036\002" + + "\uff62\003\uff62\011\uff62\012\uff62\013\uff62\014\uff62\015\uff62" + + "\016\uff62\017\uff62\020\uff62\023\uff62\024\uff62\064\uff62\067" + + "\uff62\001\002\000\004\036\311\001\002\000\036\002\uffd4" + + "\003\uffd4\011\uffd4\012\uffd4\013\uffd4\014\uffd4\015\uffd4\016" + + "\uffd4\017\uffd4\020\uffd4\023\uffd4\024\uffd4\064\uffd4\067\uffd4" + + "\001\002\000\014\021\042\022\043\036\044\055\uffe1\071" + + "\315\001\002\000\004\055\321\001\002\000\042\002\uffdf" + + "\003\uffdf\011\uffdf\012\uffdf\013\uffdf\014\uffdf\015\uffdf\016" + + "\uffdf\017\uffdf\020\uffdf\023\uffdf\024\uffdf\055\uffdf\056\uffdf" + + "\064\uffdf\067\uffdf\001\002\000\042\002\uffe0\003\uffe0\011" + + "\uffe0\012\uffe0\013\uffe0\014\uffe0\015\uffe0\016\uffe0\017\uffe0" + + "\020\uffe0\023\uffe0\024\uffe0\055\uffe0\056\uffe0\064\uffe0\067" + + "\uffe0\001\002\000\012\021\042\022\043\036\044\072\317" + + "\001\002\000\004\072\320\001\002\000\042\002\uffde\003" + + "\uffde\011\uffde\012\uffde\013\uffde\014\uffde\015\uffde\016\uffde" + + "\017\uffde\020\uffde\023\uffde\024\uffde\055\uffde\056\uffde\064" + + "\uffde\067\uffde\001\002\000\042\002\uffdd\003\uffdd\011\uffdd" + + "\012\uffdd\013\uffdd\014\uffdd\015\uffdd\016\uffdd\017\uffdd\020" + + "\uffdd\023\uffdd\024\uffdd\055\uffdd\056\uffdd\064\uffdd\067\uffdd" + + "\001\002\000\046\005\066\007\103\025\104\026\057\030" + + "\111\031\073\032\115\033\063\034\077\035\074\036\044" + + "\037\065\041\100\057\061\067\056\071\070\073\071\075" + + "\067\001\002\000\076\002\uffd5\003\uffd5\011\uffd5\012\uffd5" + + "\013\uffd5\014\uffd5\015\uffd5\016\uffd5\017\uffd5\020\uffd5\023" + + "\uffd5\024\uffd5\040\130\041\122\042\124\043\131\044\125" + + "\045\133\047\134\050\132\051\140\052\135\053\123\054" + + "\127\060\121\061\137\062\126\064\uffd5\067\uffd5\075\136" + + "\001\002\000\004\036\324\001\002\000\046\002\uffe1\003" + + "\uffe1\011\uffe1\012\uffe1\013\uffe1\014\uffe1\015\uffe1\016\uffe1" + + "\017\uffe1\020\uffe1\021\042\022\043\023\uffe1\024\uffe1\036" + + "\044\064\uffe1\067\uffe1\071\315\001\002\000\036\002\uffb6" + + "\003\uffb6\011\uffb6\012\uffb6\013\uffb6\014\uffb6\015\uffb6\016" + + "\uffb6\017\uffb6\020\uffb6\023\uffb6\024\uffb6\064\uffb6\067\uffb6" + + "\001\002\000\004\036\327\001\002\000\044\002\uffb8\003" + "\uffb8\011\uffb8\012\uffb8\013\uffb8\014\uffb8\015\uffb8\016\uffb8" + - "\017\uffb8\020\uffb8\023\uffb8\035\uffb8\062\uffb8\063\uffb8\066" + - "\uffb8\001\002\000\004\035\350\001\002\000\036\002\uffd2" + - "\003\uffd2\011\uffd2\012\uffd2\013\uffd2\014\uffd2\015\uffd2\016" + - "\uffd2\017\uffd2\020\uffd2\023\uffd2\055\345\063\uffd2\066\uffd2" + - "\001\002\000\046\005\064\007\101\024\102\025\055\027" + - "\107\030\072\031\113\032\057\033\075\034\071\035\042" + - "\036\063\040\076\056\060\066\054\070\065\072\067\074" + - "\066\001\002\000\034\002\uffd3\003\uffd3\011\uffd3\012\uffd3" + - "\013\uffd3\014\uffd3\015\uffd3\016\uffd3\017\uffd3\020\uffd3\023" + - "\uffd3\063\uffd3\066\uffd3\001\002\000\074\002\uffb4\003\uffb4" + - "\011\uffb4\012\uffb4\013\uffb4\014\uffb4\015\uffb4\016\uffb4\017" + - "\uffb4\020\uffb4\023\uffb4\037\126\040\117\041\122\042\127" + - "\043\123\044\131\046\132\047\130\050\136\051\134\052" + - "\121\053\125\057\120\060\135\061\124\063\uffb4\066\uffb4" + - "\074\133\001\002\000\014\021\040\022\041\035\042\055" + - "\uffe2\070\313\001\002\000\004\055\345\001\002\000\034" + - "\002\uffd4\003\uffd4\011\uffd4\012\uffd4\013\uffd4\014\uffd4\015" + - "\uffd4\016\uffd4\017\uffd4\020\uffd4\023\uffd4\063\uffd4\066\uffd4" + - "\001\002\000\034\002\uffed\003\uffed\011\uffed\012\uffed\013" + - "\uffed\014\uffed\015\uffed\016\uffed\017\uffed\020\uffed\023\uffed" + - "\063\uffed\066\uffed\001\002\000\034\002\uffec\003\uffec\011" + - "\uffec\012\uffec\013\uffec\014\uffec\015\uffec\016\uffec\017\uffec" + - "\020\uffec\023\uffec\063\uffec\066\uffec\001\002\000\034\002" + - "\uffbf\003\uffbf\011\uffbf\012\uffbf\013\uffbf\014\uffbf\015\uffbf" + - "\016\uffbf\017\uffbf\020\uffbf\023\uffbf\063\uffbf\066\uffbf\001" + - "\002\000\006\035\357\070\360\001\002\000\012\021\040" + - "\022\041\035\042\070\364\001\002\000\010\021\040\022" + - "\041\035\042\001\002\000\004\071\362\001\002\000\034" + - "\002\uffc2\003\uffc2\011\uffc2\012\uffc2\013\uffc2\014\uffc2\015" + - "\uffc2\016\uffc2\017\uffc2\020\uffc2\023\uffc2\063\uffc2\066\uffc2" + - "\001\002\000\004\071\371\001\002\000\012\003\366\021" + - "\040\022\041\035\042\001\002\000\036\002\uffc1\003\uffc1" + - "\011\uffc1\012\uffc1\013\uffc1\014\uffc1\015\uffc1\016\uffc1\017" + - "\uffc1\020\uffc1\023\uffc1\063\uffc1\066\uffc1\071\370\001\002" + - "\000\004\071\367\001\002\000\034\002\uffc3\003\uffc3\011" + - "\uffc3\012\uffc3\013\uffc3\014\uffc3\015\uffc3\016\uffc3\017\uffc3" + - "\020\uffc3\023\uffc3\063\uffc3\066\uffc3\001\002\000\034\002" + - "\uffc4\003\uffc4\011\uffc4\012\uffc4\013\uffc4\014\uffc4\015\uffc4" + - "\016\uffc4\017\uffc4\020\uffc4\023\uffc4\063\uffc4\066\uffc4\001" + - "\002\000\034\002\uffc0\003\uffc0\011\uffc0\012\uffc0\013\uffc0" + - "\014\uffc0\015\uffc0\016\uffc0\017\uffc0\020\uffc0\023\uffc0\063" + - "\uffc0\066\uffc0\001\002\000\034\002\uff69\003\uff69\011\uff69" + - "\012\uff69\013\uff69\014\uff69\015\uff69\016\uff69\017\uff69\020" + - "\uff69\023\uff69\063\uff69\066\uff69\001\002\000\034\002\uff6b" + - "\003\uff6b\011\uff6b\012\uff6b\013\uff6b\014\uff6b\015\uff6b\016" + - "\uff6b\017\uff6b\020\uff6b\023\uff6b\063\uff6b\066\uff6b\001\002" + - "\000\044\037\126\040\117\041\122\042\127\043\123\044" + - "\131\046\132\047\130\050\136\051\134\052\121\053\125" + - "\054\u0100\057\120\060\135\061\124\074\133\001\002\000" + - "\036\002\uff6a\003\uff6a\011\uff6a\012\uff6a\013\uff6a\014\uff6a" + - "\015\uff6a\016\uff6a\017\uff6a\020\uff6a\023\uff6a\054\376\063" + - "\uff6a\066\uff6a\001\002\000\046\005\064\007\101\024\102" + - "\025\055\027\107\030\072\031\113\032\057\033\075\034" + - "\071\035\042\036\063\040\076\056\060\066\054\070\065" + - "\072\067\074\066\001\002\000\074\002\uff67\003\uff67\011" + - "\uff67\012\uff67\013\uff67\014\uff67\015\uff67\016\uff67\017\uff67" + - "\020\uff67\023\uff67\037\126\040\117\041\122\042\127\043" + - "\123\044\131\046\132\047\130\050\136\051\134\052\121" + - "\053\125\057\120\060\135\061\124\063\uff67\066\uff67\074" + - "\133\001\002\000\050\003\u0102\005\064\007\101\024\102" + - "\025\055\027\107\030\072\031\113\032\057\033\075\034" + - "\071\035\042\036\063\040\076\056\060\066\054\070\065" + - "\072\067\074\066\001\002\000\074\002\uff68\003\uff68\011" + - "\uff68\012\uff68\013\uff68\014\uff68\015\uff68\016\uff68\017\uff68" + - "\020\uff68\023\uff68\037\126\040\117\041\122\042\127\043" + - "\123\044\131\046\132\047\130\050\136\051\134\052\121" + - "\053\125\057\120\060\135\061\124\063\uff68\066\uff68\074" + - "\133\001\002\000\034\002\uff66\003\uff66\011\uff66\012\uff66" + - "\013\uff66\014\uff66\015\uff66\016\uff66\017\uff66\020\uff66\023" + - "\uff66\063\uff66\066\uff66\001\002\000\004\002\001\001\002" + - "\000\004\002\ufffc\001\002\000\032\002\ufffb\003\026\011" + - "\021\012\022\013\030\014\020\015\025\016\032\017\017" + - "\020\035\023\027\066\004\001\002\000\004\002\ufffd\001" + - "\002\000\034\002\uffcd\003\uffcd\011\uffcd\012\uffcd\013\uffcd" + - "\014\uffcd\015\uffcd\016\uffcd\017\uffcd\020\uffcd\023\uffcd\063" + - "\uffcd\066\uffcd\001\002\000\004\055\345\001\002\000\010" + - "\003\u0118\055\uffcc\070\u010a\001\002\000\004\035\u010b\001" + - "\002\000\006\035\u010e\054\u010f\001\002\000\004\071\u010d" + - "\001\002\000\004\055\uffcb\001\002\000\004\071\uffc5\001" + - "\002\000\006\035\u0110\062\u0111\001\002\000\010\035\u010b" + - "\062\u0113\071\uffc6\001\002\000\004\035\u010b\001\002\000" + - "\004\071\uffc8\001\002\000\006\035\u010b\062\211\001\002" + - "\000\006\035\u010b\062\213\001\002\000\004\071\uffc7\001" + - "\002\000\004\071\uffc9\001\002\000\004\071\uffca\001\002" + - "\000\034\002\uffce\003\uffce\011\uffce\012\uffce\013\uffce\014" + - "\uffce\015\uffce\016\uffce\017\uffce\020\uffce\023\uffce\063\uffce" + - "\066\uffce\001\002\000\004\055\u011a\001\002\000\050\003" + - "\u011c\005\064\007\101\024\102\025\055\027\107\030\072" + - "\031\113\032\057\033\075\034\071\035\042\036\063\040" + - "\076\056\060\066\054\070\065\072\067\074\066\001\002" + - "\000\034\002\uffd1\003\uffd1\011\uffd1\012\uffd1\013\uffd1\014" + - "\uffd1\015\uffd1\016\uffd1\017\uffd1\020\uffd1\023\uffd1\063\uffd1" + - "\066\uffd1\001\002\000\034\002\uffcf\003\uffcf\011\uffcf\012" + - "\uffcf\013\uffcf\014\uffcf\015\uffcf\016\uffcf\017\uffcf\020\uffcf" + - "\023\uffcf\063\uffcf\066\uffcf\001\002\000\034\002\uffd0\003" + - "\uffd0\011\uffd0\012\uffd0\013\uffd0\014\uffd0\015\uffd0\016\uffd0" + - "\017\uffd0\020\uffd0\023\uffd0\063\uffd0\066\uffd0\001\002" }); + "\017\uffb8\020\uffb8\023\uffb8\024\uffb8\036\uffb8\063\uffb8\064" + + "\uffb8\067\uffb8\075\337\001\002\000\042\002\uffbc\003\uffbc" + + "\011\uffbc\012\uffbc\013\uffbc\014\uffbc\015\uffbc\016\uffbc\017" + + "\uffbc\020\uffbc\023\uffbc\024\uffbc\036\327\063\332\064\uffbc" + + "\067\uffbc\001\002\000\036\002\uffbd\003\uffbd\011\uffbd\012" + + "\uffbd\013\uffbd\014\uffbd\015\uffbd\016\uffbd\017\uffbd\020\uffbd" + + "\023\uffbd\024\uffbd\064\uffbd\067\uffbd\001\002\000\006\036" + + "\327\063\214\001\002\000\006\036\327\063\216\001\002" + + "\000\036\002\uffba\003\uffba\011\uffba\012\uffba\013\uffba\014" + + "\uffba\015\uffba\016\uffba\017\uffba\020\uffba\023\uffba\024\uffba" + + "\064\uffba\067\uffba\001\002\000\036\002\uffb9\003\uffb9\011" + + "\uffb9\012\uffb9\013\uffb9\014\uffb9\015\uffb9\016\uffb9\017\uffb9" + + "\020\uffb9\023\uffb9\024\uffb9\064\uffb9\067\uffb9\001\002\000" + + "\036\002\uffbb\003\uffbb\011\uffbb\012\uffbb\013\uffbb\014\uffbb" + + "\015\uffbb\016\uffbb\017\uffbb\020\uffbb\023\uffbb\024\uffbb\064" + + "\uffbb\067\uffbb\001\002\000\004\031\340\001\002\000\004" + + "\076\341\001\002\000\042\002\uffb7\003\uffb7\011\uffb7\012" + + "\uffb7\013\uffb7\014\uffb7\015\uffb7\016\uffb7\017\uffb7\020\uffb7" + + "\023\uffb7\024\uffb7\036\uffb7\063\uffb7\064\uffb7\067\uffb7\001" + + "\002\000\004\036\347\001\002\000\040\002\uffd1\003\uffd1" + + "\011\uffd1\012\uffd1\013\uffd1\014\uffd1\015\uffd1\016\uffd1\017" + + "\uffd1\020\uffd1\023\uffd1\024\uffd1\056\345\064\uffd1\067\uffd1" + + "\001\002\000\036\002\uffd2\003\uffd2\011\uffd2\012\uffd2\013" + + "\uffd2\014\uffd2\015\uffd2\016\uffd2\017\uffd2\020\uffd2\023\uffd2" + + "\024\uffd2\064\uffd2\067\uffd2\001\002\000\046\005\066\007" + + "\103\025\104\026\057\030\111\031\073\032\115\033\063" + + "\034\077\035\074\036\044\037\065\041\100\057\061\067" + + "\056\071\070\073\071\075\067\001\002\000\076\002\uffb2" + + "\003\uffb2\011\uffb2\012\uffb2\013\uffb2\014\uffb2\015\uffb2\016" + + "\uffb2\017\uffb2\020\uffb2\023\uffb2\024\uffb2\040\130\041\122" + + "\042\124\043\131\044\125\045\133\047\134\050\132\051" + + "\140\052\135\053\123\054\127\060\121\061\137\062\126" + + "\064\uffb2\067\uffb2\075\136\001\002\000\014\021\042\022" + + "\043\036\044\056\uffe1\071\315\001\002\000\004\056\345" + + "\001\002\000\036\002\uffd3\003\uffd3\011\uffd3\012\uffd3\013" + + "\uffd3\014\uffd3\015\uffd3\016\uffd3\017\uffd3\020\uffd3\023\uffd3" + + "\024\uffd3\064\uffd3\067\uffd3\001\002\000\036\002\uffec\003" + + "\uffec\011\uffec\012\uffec\013\uffec\014\uffec\015\uffec\016\uffec" + + "\017\uffec\020\uffec\023\uffec\024\uffec\064\uffec\067\uffec\001" + + "\002\000\036\002\uffeb\003\uffeb\011\uffeb\012\uffeb\013\uffeb" + + "\014\uffeb\015\uffeb\016\uffeb\017\uffeb\020\uffeb\023\uffeb\024" + + "\uffeb\064\uffeb\067\uffeb\001\002\000\006\036\356\071\357" + + "\001\002\000\036\002\uffbe\003\uffbe\011\uffbe\012\uffbe\013" + + "\uffbe\014\uffbe\015\uffbe\016\uffbe\017\uffbe\020\uffbe\023\uffbe" + + "\024\uffbe\064\uffbe\067\uffbe\001\002\000\012\021\042\022" + + "\043\036\044\071\363\001\002\000\010\021\042\022\043" + + "\036\044\001\002\000\004\072\361\001\002\000\036\002" + + "\uffc1\003\uffc1\011\uffc1\012\uffc1\013\uffc1\014\uffc1\015\uffc1" + + "\016\uffc1\017\uffc1\020\uffc1\023\uffc1\024\uffc1\064\uffc1\067" + + "\uffc1\001\002\000\004\072\370\001\002\000\012\003\364" + + "\021\042\022\043\036\044\001\002\000\004\072\367\001" + + "\002\000\040\002\uffc0\003\uffc0\011\uffc0\012\uffc0\013\uffc0" + + "\014\uffc0\015\uffc0\016\uffc0\017\uffc0\020\uffc0\023\uffc0\024" + + "\uffc0\064\uffc0\067\uffc0\072\366\001\002\000\036\002\uffc3" + + "\003\uffc3\011\uffc3\012\uffc3\013\uffc3\014\uffc3\015\uffc3\016" + + "\uffc3\017\uffc3\020\uffc3\023\uffc3\024\uffc3\064\uffc3\067\uffc3" + + "\001\002\000\036\002\uffc2\003\uffc2\011\uffc2\012\uffc2\013" + + "\uffc2\014\uffc2\015\uffc2\016\uffc2\017\uffc2\020\uffc2\023\uffc2" + + "\024\uffc2\064\uffc2\067\uffc2\001\002\000\036\002\uffbf\003" + + "\uffbf\011\uffbf\012\uffbf\013\uffbf\014\uffbf\015\uffbf\016\uffbf" + + "\017\uffbf\020\uffbf\023\uffbf\024\uffbf\064\uffbf\067\uffbf\001" + + "\002\000\036\002\uff67\003\uff67\011\uff67\012\uff67\013\uff67" + + "\014\uff67\015\uff67\016\uff67\017\uff67\020\uff67\023\uff67\024" + + "\uff67\064\uff67\067\uff67\001\002\000\036\002\uff69\003\uff69" + + "\011\uff69\012\uff69\013\uff69\014\uff69\015\uff69\016\uff69\017" + + "\uff69\020\uff69\023\uff69\024\uff69\064\uff69\067\uff69\001\002" + + "\000\044\040\130\041\122\042\124\043\131\044\125\045" + + "\133\047\134\050\132\051\140\052\135\053\123\054\127" + + "\055\377\060\121\061\137\062\126\075\136\001\002\000" + + "\040\002\uff68\003\uff68\011\uff68\012\uff68\013\uff68\014\uff68" + + "\015\uff68\016\uff68\017\uff68\020\uff68\023\uff68\024\uff68\055" + + "\375\064\uff68\067\uff68\001\002\000\046\005\066\007\103" + + "\025\104\026\057\030\111\031\073\032\115\033\063\034" + + "\077\035\074\036\044\037\065\041\100\057\061\067\056" + + "\071\070\073\071\075\067\001\002\000\076\002\uff65\003" + + "\uff65\011\uff65\012\uff65\013\uff65\014\uff65\015\uff65\016\uff65" + + "\017\uff65\020\uff65\023\uff65\024\uff65\040\130\041\122\042" + + "\124\043\131\044\125\045\133\047\134\050\132\051\140" + + "\052\135\053\123\054\127\060\121\061\137\062\126\064" + + "\uff65\067\uff65\075\136\001\002\000\050\003\u0101\005\066" + + "\007\103\025\104\026\057\030\111\031\073\032\115\033" + + "\063\034\077\035\074\036\044\037\065\041\100\057\061" + + "\067\056\071\070\073\071\075\067\001\002\000\076\002" + + "\uff66\003\uff66\011\uff66\012\uff66\013\uff66\014\uff66\015\uff66" + + "\016\uff66\017\uff66\020\uff66\023\uff66\024\uff66\040\130\041" + + "\122\042\124\043\131\044\125\045\133\047\134\050\132" + + "\051\140\052\135\053\123\054\127\060\121\061\137\062" + + "\126\064\uff66\067\uff66\075\136\001\002\000\036\002\uff64" + + "\003\uff64\011\uff64\012\uff64\013\uff64\014\uff64\015\uff64\016" + + "\uff64\017\uff64\020\uff64\023\uff64\024\uff64\064\uff64\067\uff64" + + "\001\002\000\004\002\001\001\002\000\004\002\ufffc\001" + + "\002\000\034\002\ufffb\003\030\011\022\012\023\013\032" + + "\014\021\015\026\016\034\017\020\020\037\023\031\024" + + "\004\067\005\001\002\000\004\002\ufffd\001\002\000\036" + + "\002\uffcc\003\uffcc\011\uffcc\012\uffcc\013\uffcc\014\uffcc\015" + + "\uffcc\016\uffcc\017\uffcc\020\uffcc\023\uffcc\024\uffcc\064\uffcc" + + "\067\uffcc\001\002\000\004\056\345\001\002\000\010\003" + + "\u0117\056\uffcb\071\u0109\001\002\000\004\036\u010a\001\002" + + "\000\006\036\u010d\055\u010e\001\002\000\004\072\u010c\001" + + "\002\000\004\056\uffca\001\002\000\004\072\uffc4\001\002" + + "\000\006\036\u0110\063\u010f\001\002\000\004\036\u010a\001" + + "\002\000\010\036\u010a\063\u0111\072\uffc5\001\002\000\006" + + "\036\u010a\063\214\001\002\000\006\036\u010a\063\216\001" + + "\002\000\004\072\uffc6\001\002\000\004\072\uffc8\001\002" + + "\000\004\072\uffc9\001\002\000\004\072\uffc7\001\002\000" + + "\036\002\uffcd\003\uffcd\011\uffcd\012\uffcd\013\uffcd\014\uffcd" + + "\015\uffcd\016\uffcd\017\uffcd\020\uffcd\023\uffcd\024\uffcd\064" + + "\uffcd\067\uffcd\001\002\000\004\056\u011a\001\002\000\036" + + "\002\uffd0\003\uffd0\011\uffd0\012\uffd0\013\uffd0\014\uffd0\015" + + "\uffd0\016\uffd0\017\uffd0\020\uffd0\023\uffd0\024\uffd0\064\uffd0" + + "\067\uffd0\001\002\000\050\003\u011b\005\066\007\103\025" + + "\104\026\057\030\111\031\073\032\115\033\063\034\077" + + "\035\074\036\044\037\065\041\100\057\061\067\056\071" + + "\070\073\071\075\067\001\002\000\036\002\uffce\003\uffce" + + "\011\uffce\012\uffce\013\uffce\014\uffce\015\uffce\016\uffce\017" + + "\uffce\020\uffce\023\uffce\024\uffce\064\uffce\067\uffce\001\002" + + "\000\036\002\uffcf\003\uffcf\011\uffcf\012\uffcf\013\uffcf\014" + + "\uffcf\015\uffcf\016\uffcf\017\uffcf\020\uffcf\023\uffcf\024\uffcf" + + "\064\uffcf\067\uffcf\001\002\000\004\036\u011e\001\002\000" + + "\046\002\uffe1\003\uffe1\011\uffe1\012\uffe1\013\uffe1\014\uffe1" + + "\015\uffe1\016\uffe1\017\uffe1\020\uffe1\021\042\022\043\023" + + "\uffe1\024\uffe1\036\044\064\uffe1\067\uffe1\071\315\001\002" + + "\000\036\002\uffb5\003\uffb5\011\uffb5\012\uffb5\013\uffb5\014" + + "\uffb5\015\uffb5\016\uffb5\017\uffb5\020\uffb5\023\uffb5\024\uffb5" + + "\064\uffb5\067\uffb5\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} @@ -895,236 +942,239 @@ public class BLOGParser extends java_cup.runtime.lr_parser { /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { - "\000\u011b\000\040\002\015\003\032\004\006\005\010\006" + - "\023\007\007\010\012\011\011\012\014\013\033\014\030" + - "\015\022\016\005\017\013\020\004\001\001\000\006\062" + - "\u0107\066\u0108\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\034\004\u0103\005" + - "\010\006\023\007\007\010\012\011\011\012\014\013\033" + - "\014\030\015\022\016\005\017\013\020\004\001\001\000" + + "\000\u011d\000\042\002\016\003\034\004\007\005\011\006" + + "\024\007\010\010\013\011\012\012\015\013\035\014\032" + + "\015\023\016\026\017\006\020\014\021\005\001\001\000" + + "\016\052\u011c\053\037\054\047\055\046\056\040\067\045" + + "\001\001\000\006\063\u0106\067\u0107\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\036\004\u0102\005\011\006\024\007\010\010\013\011" + + "\012\012\015\013\035\014\032\015\023\016\026\017\006" + + "\020\014\021\005\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\044\022\371\023\370\024\372\025\105\026\107\027" + + "\071\030\074\031\113\032\057\034\104\035\106\037\112" + + "\040\063\042\111\043\100\044\101\067\061\001\001\000" + + "\016\052\353\053\037\054\047\055\046\056\040\067\045" + + "\001\001\000\002\001\001\000\016\052\341\053\037\054" + + "\047\055\046\056\040\067\045\001\001\000\002\001\001" + + "\000\002\001\001\000\004\067\325\001\001\000\002\001" + + "\001\000\002\001\001\000\016\052\322\053\037\054\047" + + "\055\046\056\040\067\045\001\001\000\016\052\306\053" + + "\037\054\047\055\046\056\040\067\045\001\001\000\002" + + "\001\001\000\040\024\304\025\105\026\107\027\071\030" + + "\074\031\113\032\057\034\104\035\106\037\112\040\063" + + "\042\111\043\100\044\101\067\061\001\001\000\002\001" + + "\001\000\002\001\001\000\016\052\044\053\037\054\047" + + "\055\046\056\040\067\045\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\044\021\372\022\371\023" + - "\373\024\102\025\105\026\067\027\073\030\111\031\055" + - "\033\103\034\104\036\110\037\061\041\107\042\077\043" + - "\076\066\060\001\001\000\016\051\355\052\035\053\045" + - "\054\044\055\036\066\043\001\001\000\002\001\001\000" + - "\016\051\342\052\035\053\045\054\044\055\036\066\043" + - "\001\001\000\002\001\001\000\002\001\001\000\004\066" + - "\326\001\001\000\002\001\001\000\002\001\001\000\016" + - "\051\304\052\035\053\045\054\044\055\036\066\043\001" + - "\001\000\002\001\001\000\040\023\302\024\102\025\105" + - "\026\067\027\073\030\111\031\055\033\103\034\104\036" + - "\110\037\061\041\107\042\077\043\076\066\060\001\001" + - "\000\002\001\001\000\002\001\001\000\016\051\042\052" + - "\035\053\045\054\044\055\036\066\043\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\040\024\075\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\067" + + "\061\001\001\000\024\042\266\043\100\044\101\052\270" + + "\053\037\054\047\055\046\056\040\067\045\001\001\000" + + "\016\052\262\053\037\054\047\055\046\056\040\067\045" + + "\001\001\000\002\001\001\000\040\024\261\025\105\026" + + "\107\027\071\030\074\031\113\032\057\034\104\035\106" + + "\037\112\040\063\042\111\043\100\044\101\067\061\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\040\024\253\025\105\026\107\027\071\030\074\031" + + "\113\032\057\034\104\035\106\037\112\040\063\042\111" + + "\043\100\044\101\067\061\001\001\000\040\024\246\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\067" + + "\061\001\001\000\052\024\224\025\105\026\107\027\071" + + "\030\074\031\113\032\057\034\104\035\106\036\232\037" + + "\112\040\063\042\111\043\100\044\101\045\233\046\235" + + "\047\236\050\234\067\061\001\001\000\040\024\230\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\067" + + "\061\001\001\000\050\024\176\025\105\026\107\027\071" + + "\030\074\031\113\032\057\034\104\035\106\036\175\037" + + "\112\040\063\042\111\043\100\044\101\046\177\047\200" + + "\051\165\067\061\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\040\024\174\025\105\026\107\027" + + "\071\030\074\031\113\032\057\034\104\035\106\037\112" + + "\040\063\042\111\043\100\044\101\067\061\001\001\000" + + "\002\001\001\000\002\001\001\000\040\024\161\025\105" + + "\026\107\027\071\030\074\031\113\032\057\034\104\035" + + "\106\037\112\040\063\042\111\043\100\044\101\067\061" + + "\001\001\000\016\052\115\053\037\054\047\055\046\056" + + "\040\067\045\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\040" + - "\023\072\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\066\060\001\001\000\024\041\264\042\077\043" + - "\076\051\265\052\035\053\045\054\044\055\036\066\043" + - "\001\001\000\016\051\260\052\035\053\045\054\044\055" + - "\036\066\043\001\001\000\002\001\001\000\002\001\001" + - "\000\040\023\257\024\102\025\105\026\067\027\073\030" + - "\111\031\055\033\103\034\104\036\110\037\061\041\107" + - "\042\077\043\076\066\060\001\001\000\002\001\001\000" + - "\002\001\001\000\040\023\251\024\102\025\105\026\067" + - "\027\073\030\111\031\055\033\103\034\104\036\110\037" + - "\061\041\107\042\077\043\076\066\060\001\001\000\040" + - "\023\244\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\066\060\001\001\000\040\023\242\024\102\025" + - "\105\026\067\027\073\030\111\031\055\033\103\034\104" + - "\036\110\037\061\041\107\042\077\043\076\066\060\001" + - "\001\000\052\023\222\024\102\025\105\026\067\027\073" + - "\030\111\031\055\033\103\034\104\035\226\036\110\037" + - "\061\041\107\042\077\043\076\044\227\045\231\046\232" + - "\047\230\066\060\001\001\000\050\023\174\024\102\025" + - "\105\026\067\027\073\030\111\031\055\033\103\034\104" + - "\035\173\036\110\037\061\041\107\042\077\043\076\045" + - "\175\046\176\050\163\066\060\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\040\023\172\024\102" + - "\025\105\026\067\027\073\030\111\031\055\033\103\034" + - "\104\036\110\037\061\041\107\042\077\043\076\066\060" + - "\001\001\000\002\001\001\000\002\001\001\000\040\023" + - "\157\024\102\025\105\026\067\027\073\030\111\031\055" + - "\033\103\034\104\036\110\037\061\041\107\042\077\043" + - "\076\066\060\001\001\000\016\051\113\052\035\053\045" + - "\054\044\055\036\066\043\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\040\024\117\025\105\026" + + "\107\027\071\030\074\031\113\032\057\034\104\035\106" + + "\037\112\040\063\042\111\043\100\044\101\067\061\001" + + "\001\000\002\001\001\000\040\024\160\025\105\026\107" + + "\027\071\030\074\031\113\032\057\034\104\035\106\037" + + "\112\040\063\042\111\043\100\044\101\067\061\001\001" + + "\000\040\024\157\025\105\026\107\027\071\030\074\031" + + "\113\032\057\034\104\035\106\037\112\040\063\042\111" + + "\043\100\044\101\067\061\001\001\000\040\024\156\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\067" + + "\061\001\001\000\040\024\155\025\105\026\107\027\071" + + "\030\074\031\113\032\057\034\104\035\106\037\112\040" + + "\063\042\111\043\100\044\101\067\061\001\001\000\040" + + "\024\154\025\105\026\107\027\071\030\074\031\113\032" + + "\057\034\104\035\106\037\112\040\063\042\111\043\100" + + "\044\101\067\061\001\001\000\040\024\153\025\105\026" + + "\107\027\071\030\074\031\113\032\057\034\104\035\106" + + "\037\112\040\063\042\111\043\100\044\101\067\061\001" + + "\001\000\040\024\152\025\105\026\107\027\071\030\074" + + "\031\113\032\057\034\104\035\106\037\112\040\063\042" + + "\111\043\100\044\101\067\061\001\001\000\040\024\151" + + "\025\105\026\107\027\071\030\074\031\113\032\057\034" + + "\104\035\106\037\112\040\063\042\111\043\100\044\101" + + "\067\061\001\001\000\040\024\150\025\105\026\107\027" + + "\071\030\074\031\113\032\057\034\104\035\106\037\112" + + "\040\063\042\111\043\100\044\101\067\061\001\001\000" + + "\040\024\147\025\105\026\107\027\071\030\074\031\113" + + "\032\057\034\104\035\106\037\112\040\063\042\111\043" + + "\100\044\101\067\061\001\001\000\040\024\146\025\105" + + "\026\107\027\071\030\074\031\113\032\057\034\104\035" + + "\106\037\112\040\063\042\111\043\100\044\101\067\061" + + "\001\001\000\040\024\145\025\105\026\107\027\071\030" + + "\074\031\113\032\057\034\104\035\106\037\112\040\063" + + "\042\111\043\100\044\101\067\061\001\001\000\040\024" + + "\144\025\105\026\107\027\071\030\074\031\113\032\057" + + "\034\104\035\106\037\112\040\063\042\111\043\100\044" + + "\101\067\061\001\001\000\040\024\142\025\105\026\107" + + "\027\071\030\074\031\113\032\057\034\104\035\106\037" + + "\112\040\063\042\111\043\100\044\101\067\061\001\001" + + "\000\040\024\141\025\105\026\107\027\071\030\074\031" + + "\113\032\057\034\104\035\106\037\112\040\063\042\111" + + "\043\100\044\101\067\061\001\001\000\040\024\140\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\067" + + "\061\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\040\023\115" + - "\024\102\025\105\026\067\027\073\030\111\031\055\033" + - "\103\034\104\036\110\037\061\041\107\042\077\043\076" + - "\066\060\001\001\000\002\001\001\000\040\023\156\024" + - "\102\025\105\026\067\027\073\030\111\031\055\033\103" + - "\034\104\036\110\037\061\041\107\042\077\043\076\066" + - "\060\001\001\000\040\023\155\024\102\025\105\026\067" + - "\027\073\030\111\031\055\033\103\034\104\036\110\037" + - "\061\041\107\042\077\043\076\066\060\001\001\000\040" + - "\023\154\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\066\060\001\001\000\040\023\153\024\102\025" + - "\105\026\067\027\073\030\111\031\055\033\103\034\104" + - "\036\110\037\061\041\107\042\077\043\076\066\060\001" + - "\001\000\040\023\152\024\102\025\105\026\067\027\073" + - "\030\111\031\055\033\103\034\104\036\110\037\061\041" + - "\107\042\077\043\076\066\060\001\001\000\040\023\151" + - "\024\102\025\105\026\067\027\073\030\111\031\055\033" + - "\103\034\104\036\110\037\061\041\107\042\077\043\076" + - "\066\060\001\001\000\040\023\150\024\102\025\105\026" + - "\067\027\073\030\111\031\055\033\103\034\104\036\110" + - "\037\061\041\107\042\077\043\076\066\060\001\001\000" + - "\040\023\147\024\102\025\105\026\067\027\073\030\111" + - "\031\055\033\103\034\104\036\110\037\061\041\107\042" + - "\077\043\076\066\060\001\001\000\040\023\146\024\102" + - "\025\105\026\067\027\073\030\111\031\055\033\103\034" + - "\104\036\110\037\061\041\107\042\077\043\076\066\060" + - "\001\001\000\040\023\145\024\102\025\105\026\067\027" + - "\073\030\111\031\055\033\103\034\104\036\110\037\061" + - "\041\107\042\077\043\076\066\060\001\001\000\040\023" + - "\144\024\102\025\105\026\067\027\073\030\111\031\055" + - "\033\103\034\104\036\110\037\061\041\107\042\077\043" + - "\076\066\060\001\001\000\040\023\143\024\102\025\105" + - "\026\067\027\073\030\111\031\055\033\103\034\104\036" + - "\110\037\061\041\107\042\077\043\076\066\060\001\001" + - "\000\040\023\141\024\102\025\105\026\067\027\073\030" + - "\111\031\055\033\103\034\104\036\110\037\061\041\107" + - "\042\077\043\076\066\060\001\001\000\040\023\140\024" + - "\102\025\105\026\067\027\073\030\111\031\055\033\103" + - "\034\104\036\110\037\061\041\107\042\077\043\076\066" + - "\060\001\001\000\040\023\137\024\102\025\105\026\067" + - "\027\073\030\111\031\055\033\103\034\104\036\110\037" + - "\061\041\107\042\077\043\076\066\060\001\001\000\040" + - "\023\136\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\066\060\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\004\037" + + "\164\001\001\000\042\024\166\025\105\026\107\027\071" + + "\030\074\031\113\032\057\034\104\035\106\037\112\040" + + "\063\042\111\043\100\044\101\051\165\067\061\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\040\024\170\025\105\026\107\027\071\030\074\031\113" + + "\032\057\034\104\035\106\037\112\040\063\042\111\043" + + "\100\044\101\067\061\001\001\000\002\001\001\000\042" + + "\024\166\025\105\026\107\027\071\030\074\031\113\032" + + "\057\034\104\035\106\037\112\040\063\042\111\043\100" + + "\044\101\051\172\067\061\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\004" + + "\057\222\001\001\000\002\001\001\000\002\001\001\000" + + "\020\052\203\053\037\054\047\055\046\056\040\062\202" + + "\067\045\001\001\000\004\033\217\001\001\000\002\001" + + "\001\000\022\052\203\053\037\054\047\055\046\056\040" + + "\057\210\062\207\067\045\001\001\000\020\052\203\053" + + "\037\054\047\055\046\056\040\062\206\067\045\001\001" + + "\000\002\001\001\000\002\001\001\000\020\052\203\053" + + "\037\054\047\055\046\056\040\062\214\067\045\001\001" + + "\000\020\052\203\053\037\054\047\055\046\056\040\062" + + "\212\067\045\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\040\024\220\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\067" + + "\061\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\042\024\224\025\105\026\107\027\071\030" + + "\074\031\113\032\057\034\104\035\106\037\112\040\063" + + "\042\111\043\100\044\101\047\226\067\061\001\001\000" + + "\042\024\224\025\105\026\107\027\071\030\074\031\113" + + "\032\057\034\104\035\106\037\112\040\063\042\111\043" + + "\100\044\101\047\225\067\061\001\001\000\004\057\222" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\004\036\162\001\001\000\042\023\164\024\102\025" + - "\105\026\067\027\073\030\111\031\055\033\103\034\104" + - "\036\110\037\061\041\107\042\077\043\076\050\163\066" + - "\060\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\040\023\166\024\102\025\105\026\067\027" + - "\073\030\111\031\055\033\103\034\104\036\110\037\061" + - "\041\107\042\077\043\076\066\060\001\001\000\002\001" + - "\001\000\042\023\164\024\102\025\105\026\067\027\073" + - "\030\111\031\055\033\103\034\104\036\110\037\061\041" + - "\107\042\077\043\076\050\170\066\060\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\004\056\220\001\001\000\002\001\001\000\002" + - "\001\001\000\020\051\201\052\035\053\045\054\044\055" + - "\036\061\200\066\043\001\001\000\004\032\215\001\001" + - "\000\002\001\001\000\020\051\201\052\035\053\045\054" + - "\044\055\036\061\213\066\043\001\001\000\022\051\201" + - "\052\035\053\045\054\044\055\036\056\205\061\204\066" + - "\043\001\001\000\002\001\001\000\020\051\201\052\035" + - "\053\045\054\044\055\036\061\211\066\043\001\001\000" + - "\020\051\201\052\035\053\045\054\044\055\036\061\207" + - "\066\043\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\040" + - "\023\216\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\066\060\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\042\023\222\024\102\025\105" + - "\026\067\027\073\030\111\031\055\033\103\034\104\036" + - "\110\037\061\041\107\042\077\043\076\046\224\066\060" + - "\001\001\000\042\023\222\024\102\025\105\026\067\027" + - "\073\030\111\031\055\033\103\034\104\036\110\037\061" + - "\041\107\042\077\043\076\046\223\066\060\001\001\000" + - "\004\056\220\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\046\023\222\024\102\025\105\026\067\027\073\030\111" + - "\031\055\033\103\034\104\036\110\037\061\041\107\042" + - "\077\043\076\044\236\046\237\047\230\066\060\001\001" + + "\000\002\001\001\000\046\024\224\025\105\026\107\027" + + "\071\030\074\031\113\032\057\034\104\035\106\037\112" + + "\040\063\042\111\043\100\044\101\045\242\047\243\050" + + "\234\067\061\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\040\024\250\025\105\026" + + "\107\027\071\030\074\031\113\032\057\034\104\035\106" + + "\037\112\040\063\042\111\043\100\044\101\067\061\001" + + "\001\000\002\001\001\000\040\024\252\025\105\026\107" + + "\027\071\030\074\031\113\032\057\034\104\035\106\037" + + "\112\040\063\042\111\043\100\044\101\067\061\001\001" + + "\000\002\001\001\000\002\001\001\000\044\024\224\025" + + "\105\026\107\027\071\030\074\031\113\032\057\034\104" + + "\035\106\037\112\040\063\042\111\043\100\044\101\046" + + "\256\047\257\067\061\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\040\023\246" + - "\024\102\025\105\026\067\027\073\030\111\031\055\033" + - "\103\034\104\036\110\037\061\041\107\042\077\043\076" + - "\066\060\001\001\000\002\001\001\000\040\023\250\024" + - "\102\025\105\026\067\027\073\030\111\031\055\033\103" + - "\034\104\036\110\037\061\041\107\042\077\043\076\066" + - "\060\001\001\000\002\001\001\000\002\001\001\000\044" + - "\023\222\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\045\254\046\255\066\060\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\040\023\262\024" + - "\102\025\105\026\067\027\073\030\111\031\055\033\103" + - "\034\104\036\110\037\061\041\107\042\077\043\076\066" + - "\060\001\001\000\002\001\001\000\046\023\222\024\102" + - "\025\105\026\067\027\073\030\111\031\055\033\103\034" + - "\104\035\173\036\110\037\061\041\107\042\077\043\076" + - "\045\175\046\176\066\060\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\004\066\270\001\001" + - "\000\002\001\001\000\016\051\272\052\035\053\045\054" + - "\044\055\036\066\043\001\001\000\002\001\001\000\016" + - "\051\274\052\035\053\045\054\044\055\036\066\043\001" + - "\001\000\002\001\001\000\002\001\001\000\004\066\277" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\024\051\201\052\035\053\045\054" + - "\044\055\036\057\307\060\310\061\311\066\043\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\020\051\201\052\035\053\045\054\044\055\036\061\313" + - "\066\043\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\040\023\317\024\102\025\105\026\067" + - "\027\073\030\111\031\055\033\103\034\104\036\110\037" + - "\061\041\107\042\077\043\076\066\060\001\001\000\002" + - "\001\001\000\002\001\001\000\004\066\322\001\001\000" + - "\002\001\001\000\044\023\222\024\102\025\105\026\067" + - "\027\073\030\111\031\055\033\103\034\104\036\110\037" + - "\061\041\107\042\077\043\076\045\324\046\255\066\060" + - "\001\001\000\002\001\001\000\002\001\001\000\006\064" + - "\330\065\331\001\001\000\002\001\001\000\010\056\333" + - "\064\330\065\334\001\001\000\002\001\001\000\006\064" + - "\330\065\336\001\001\000\006\064\330\065\335\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\001\000\002\001\001\000\040\024\264\025\105\026\107" + + "\027\071\030\074\031\113\032\057\034\104\035\106\037" + + "\112\040\063\042\111\043\100\044\101\067\061\001\001" + + "\000\002\001\001\000\046\024\224\025\105\026\107\027" + + "\071\030\074\031\113\032\057\034\104\035\106\036\175" + + "\037\112\040\063\042\111\043\100\044\101\046\177\047" + + "\200\067\061\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\004\067\272\001\001\000\002\001" + + "\001\000\016\052\274\053\037\054\047\055\046\056\040" + + "\067\045\001\001\000\002\001\001\000\016\052\276\053" + + "\037\054\047\055\046\056\040\067\045\001\001\000\002" + + "\001\001\000\002\001\001\000\004\067\301\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\004\040\345\001\001\000\040\023\346\024" + - "\102\025\105\026\067\027\073\030\111\031\055\033\103" + - "\034\104\036\110\037\061\041\107\042\077\043\076\066" + - "\060\001\001\000\002\001\001\000\002\001\001\000\024" + - "\051\201\052\035\053\045\054\044\055\036\057\350\060" + - "\310\061\311\066\043\001\001\000\004\040\351\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\016\051\362\052\035" + - "\053\045\054\044\055\036\066\043\001\001\000\016\051" + - "\360\052\035\053\045\054\044\055\036\066\043\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\016\051\364\052\035\053\045\054\044\055\036\066\043" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\024\052\203\053\037\054\047\055\046\056\040" + + "\060\311\061\313\062\312\067\045\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\020\052\203" + + "\053\037\054\047\055\046\056\040\062\315\067\045\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\040\023\376\024\102\025\105\026\067\027\073\030\111" + - "\031\055\033\103\034\104\036\110\037\061\041\107\042" + - "\077\043\076\066\060\001\001\000\002\001\001\000\040" + - "\023\u0100\024\102\025\105\026\067\027\073\030\111\031" + - "\055\033\103\034\104\036\110\037\061\041\107\042\077" + - "\043\076\066\060\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\034\004\u0105" + - "\005\010\006\023\007\007\010\012\011\011\012\014\013" + - "\033\014\030\015\022\016\005\017\013\020\004\001\001" + - "\000\002\001\001\000\002\001\001\000\004\040\u011c\001" + - "\001\000\004\062\u0118\001\001\000\004\063\u010b\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\006\056\u0113\063\u0114" + - "\001\001\000\004\063\u0111\001\001\000\002\001\001\000" + - "\004\063\u0116\001\001\000\004\063\u0115\001\001\000\002" + + "\000\040\024\321\025\105\026\107\027\071\030\074\031" + + "\113\032\057\034\104\035\106\037\112\040\063\042\111" + + "\043\100\044\101\067\061\001\001\000\002\001\001\000" + + "\002\001\001\000\024\052\203\053\037\054\047\055\046" + + "\056\040\060\324\061\313\062\312\067\045\001\001\000" + + "\002\001\001\000\006\065\327\066\330\001\001\000\002" + + "\001\001\000\010\057\332\065\327\066\333\001\001\000" + + "\002\001\001\000\006\065\327\066\335\001\001\000\006" + + "\065\327\066\334\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\004\041\343\001" + + "\001\000\002\001\001\000\040\024\345\025\105\026\107" + + "\027\071\030\074\031\113\032\057\034\104\035\106\037" + + "\112\040\063\042\111\043\100\044\101\067\061\001\001" + + "\000\002\001\001\000\024\052\203\053\037\054\047\055" + + "\046\056\040\060\347\061\313\062\312\067\045\001\001" + + "\000\004\041\350\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\016\052\361\053\037\054\047\055\046\056\040\067" + + "\045\001\001\000\016\052\357\053\037\054\047\055\046" + + "\056\040\067\045\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\016\052\364\053\037\054\047" + + "\055\046\056\040\067\045\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\004\040\u011a\001\001\000\040\023\346\024\102" + - "\025\105\026\067\027\073\030\111\031\055\033\103\034" + - "\104\036\110\037\061\041\107\042\077\043\076\066\060" + + "\001\000\002\001\001\000\040\024\375\025\105\026\107" + + "\027\071\030\074\031\113\032\057\034\104\035\106\037" + + "\112\040\063\042\111\043\100\044\101\067\061\001\001" + + "\000\002\001\001\000\040\024\377\025\105\026\107\027" + + "\071\030\074\031\113\032\057\034\104\035\106\037\112" + + "\040\063\042\111\043\100\044\101\067\061\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\036\004\u0104\005\011\006\024\007\010\010" + + "\013\011\012\012\015\013\035\014\032\015\023\016\026" + + "\017\006\020\014\021\005\001\001\000\002\001\001\000" + + "\002\001\001\000\004\041\u011b\001\001\000\004\063\u0117" + + "\001\001\000\004\064\u010a\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\004\064\u0115\001\001\000\006\057\u0111\064" + + "\u0112\001\001\000\004\064\u0114\001\001\000\004\064\u0113" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001" }); + "\001\000\002\001\001\000\002\001\001\000\004\041\u0118" + + "\001\001\000\002\001\001\000\040\024\345\025\105\026" + + "\107\027\071\030\074\031\113\032\057\034\104\035\106" + + "\037\112\040\063\042\111\043\100\044\101\067\061\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\024\052\203\053\037\054\047\055\046\056\040\060" + + "\u011e\061\313\062\312\067\045\001\001\000\002\001\001" + + "" }); /** Access to reduce_goto table. */ public short[][] reduce_table() {return _reduce_table;} @@ -1582,7 +1632,19 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 20: // type_decl ::= TYPE ID + case 20: // declaration_stmt ::= extern_decl + { + Stmt RESULT =null; + Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; + Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; + Stmt e = (Stmt)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; + RESULT = e; + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("declaration_stmt",4, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + } + return CUP$BLOGParser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 21: // type_decl ::= TYPE ID { Stmt RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -1597,7 +1659,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 21: // type_decl ::= TYPE error + case 22: // type_decl ::= TYPE error { Stmt RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -1612,55 +1674,55 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 22: // type ::= refer_name + case 23: // type ::= refer_name { Ty RESULT =null; Location typenamexleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location typenamexright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new NameTy(typenamexleft.getLine(), typenamexleft.getColumn(), sym(typename)); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",39, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",40, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 23: // type ::= list_type + case 24: // type ::= list_type { Ty RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Ty e = (Ty)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",39, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",40, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 24: // type ::= array_type + case 25: // type ::= array_type { Ty RESULT =null; Location atxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location atxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ArrayTy at = (ArrayTy)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = at; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",39, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",40, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 25: // type ::= map_type + case 26: // type ::= map_type { Ty RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Ty e = (Ty)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",39, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type",40, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 26: // list_type ::= LIST LT refer_name GT + case 27: // list_type ::= LIST LT refer_name GT { Ty RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -1671,24 +1733,24 @@ void error(Location s, String msg){ String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new ListTy(lxleft.getLine(), lxleft.getColumn(), new NameTy(typenamexleft.getLine(), typenamexleft.getColumn(), sym(typename))); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_type",40, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_type",41, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 27: // array_type_or_sub ::= refer_name LBRACKET + case 28: // array_type_or_sub ::= refer_name LBRACKET { String RESULT =null; Location typenamexleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; Location typenamexright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = typename; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("array_type_or_sub",43, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("array_type_or_sub",44, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 28: // array_type ::= array_type_or_sub RBRACKET + case 29: // array_type ::= array_type_or_sub RBRACKET { ArrayTy RESULT =null; Location typenamexleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -1696,12 +1758,12 @@ void error(Location s, String msg){ String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new ArrayTy(typenamexleft.getLine(), typenamexleft.getColumn(), new NameTy(typenamexleft.getLine(), typenamexleft.getColumn(), sym(typename)), 1); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("array_type",42, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("array_type",43, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 29: // array_type ::= array_type LBRACKET RBRACKET + case 30: // array_type ::= array_type LBRACKET RBRACKET { ArrayTy RESULT =null; Location arrtyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -1709,12 +1771,12 @@ void error(Location s, String msg){ ArrayTy arrty = (ArrayTy)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value; arrty.dim += 1; RESULT = arrty; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("array_type",42, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("array_type",43, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 30: // map_type ::= MAP LT type COMMA type GT + case 31: // map_type ::= MAP LT type COMMA type GT { Ty RESULT =null; Location mxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xleft; @@ -1727,33 +1789,33 @@ void error(Location s, String msg){ Location t2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; Ty t2 = (Ty)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new MapTy(mxleft.getLine(), mxleft.getColumn(), t1, t2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("map_type",41, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("map_type",42, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 31: // opt_parenthesized_type_var_lst ::= + case 32: // opt_parenthesized_type_var_lst ::= { FieldList RESULT =null; RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_type_var_lst",45, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_type_var_lst",46, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 32: // opt_parenthesized_type_var_lst ::= parenthesized_type_var_lst + case 33: // opt_parenthesized_type_var_lst ::= parenthesized_type_var_lst { FieldList RESULT =null; Location tvlxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location tvlxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; FieldList tvl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = tvl; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_type_var_lst",45, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_type_var_lst",46, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 33: // opt_parenthesized_type_var_lst ::= type_var_lst + case 34: // opt_parenthesized_type_var_lst ::= type_var_lst { FieldList RESULT =null; Location tvlxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; @@ -1763,51 +1825,51 @@ void error(Location s, String msg){ error(tvlxright, "missing parentheses"); RESULT = tvl; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_type_var_lst",45, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_type_var_lst",46, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 34: // parenthesized_type_var_lst ::= LPAREN RPAREN + case 35: // parenthesized_type_var_lst ::= LPAREN RPAREN { FieldList RESULT =null; RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parenthesized_type_var_lst",46, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parenthesized_type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 35: // parenthesized_type_var_lst ::= LPAREN type_var_lst RPAREN + case 36: // parenthesized_type_var_lst ::= LPAREN type_var_lst RPAREN { FieldList RESULT =null; Location tlxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; Location tlxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; FieldList tl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = tl; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parenthesized_type_var_lst",46, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parenthesized_type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 36: // extra_commas ::= COMMA COMMA + case 37: // extra_commas ::= COMMA COMMA { Object RESULT =null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("extra_commas",44, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("extra_commas",45, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 37: // extra_commas ::= extra_commas COMMA + case 38: // extra_commas ::= extra_commas COMMA { Object RESULT =null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("extra_commas",44, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("extra_commas",45, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 38: // type_var_lst ::= type ID COMMA type_var_lst + case 39: // type_var_lst ::= type ID COMMA type_var_lst { FieldList RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -1820,12 +1882,12 @@ void error(Location s, String msg){ Location tlxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; FieldList tl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new FieldList(sym(id), ty, tl); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 39: // type_var_lst ::= type ID + case 40: // type_var_lst ::= type ID { FieldList RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -1835,12 +1897,12 @@ void error(Location s, String msg){ Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new FieldList(sym(id), ty, null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 40: // type_var_lst ::= type ID extra_commas type_var_lst + case 41: // type_var_lst ::= type ID extra_commas type_var_lst { FieldList RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -1854,12 +1916,12 @@ void error(Location s, String msg){ FieldList tl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(idxright, "extra commas"); RESULT = new FieldList(sym(id), ty, tl); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 41: // type_var_lst ::= type ID type_var_lst + case 42: // type_var_lst ::= type ID type_var_lst { FieldList RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -1873,12 +1935,12 @@ void error(Location s, String msg){ FieldList tl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(idxright, "missing comma"); RESULT = new FieldList(sym(id), ty, tl); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 42: // type_var_lst ::= type COMMA type_var_lst + case 43: // type_var_lst ::= type COMMA type_var_lst { FieldList RESULT =null; Location tyxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -1889,12 +1951,12 @@ void error(Location s, String msg){ FieldList tl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(tyxright, "missing id"); RESULT = tl; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",47, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("type_var_lst",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 43: // fixed_func_decl ::= FIXED type ID opt_parenthesized_type_var_lst EQ expression + case 44: // fixed_func_decl ::= FIXED type ID opt_parenthesized_type_var_lst EQ expression { Stmt RESULT =null; Location fxxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xleft; @@ -1918,7 +1980,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 44: // fixed_func_decl ::= FIXED error + case 45: // fixed_func_decl ::= FIXED error { Stmt RESULT =null; Location fxxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -1934,7 +1996,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 45: // rand_func_decl ::= RANDOM type ID opt_parenthesized_type_var_lst dependency_statement_body + case 46: // rand_func_decl ::= RANDOM type ID opt_parenthesized_type_var_lst dependency_statement_body { Stmt RESULT =null; Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -1958,7 +2020,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 46: // rand_func_decl ::= RANDOM error dependency_statement_body + case 47: // rand_func_decl ::= RANDOM error dependency_statement_body { Stmt RESULT =null; Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -1976,7 +2038,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 47: // rand_func_decl ::= RANDOM error + case 48: // rand_func_decl ::= RANDOM error { Stmt RESULT =null; Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -1992,7 +2054,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 48: // number_stmt ::= NUMSIGN refer_name opt_parenthesized_origin_var_list dependency_statement_body + case 49: // number_stmt ::= NUMSIGN refer_name opt_parenthesized_origin_var_list dependency_statement_body { Stmt RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -2014,7 +2076,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 49: // number_stmt ::= NUMSIGN opt_parenthesized_origin_var_list dependency_statement_body + case 50: // number_stmt ::= NUMSIGN opt_parenthesized_origin_var_list dependency_statement_body { Stmt RESULT =null; Location nsxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2032,7 +2094,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 50: // number_stmt ::= NUMSIGN refer_name opt_parenthesized_origin_var_list DISTRIB error + case 51: // number_stmt ::= NUMSIGN refer_name opt_parenthesized_origin_var_list DISTRIB error { Stmt RESULT =null; Location nsxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2053,7 +2115,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 51: // number_stmt ::= NUMSIGN refer_name error + case 52: // number_stmt ::= NUMSIGN refer_name error { Stmt RESULT =null; Location nsxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2068,7 +2130,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 52: // number_stmt ::= NUMSIGN error + case 53: // number_stmt ::= NUMSIGN error { Stmt RESULT =null; Location nsxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -2083,28 +2145,28 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 53: // opt_parenthesized_origin_var_list ::= + case 54: // opt_parenthesized_origin_var_list ::= { OriginFieldList RESULT =null; RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_origin_var_list",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 54: // opt_parenthesized_origin_var_list ::= LPAREN origin_var_list RPAREN + case 55: // opt_parenthesized_origin_var_list ::= LPAREN origin_var_list RPAREN { OriginFieldList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; OriginFieldList e = (OriginFieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_origin_var_list",48, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_parenthesized_origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 55: // origin_var_list ::= ID EQ ID COMMA origin_var_list + case 56: // origin_var_list ::= ID EQ ID COMMA origin_var_list { OriginFieldList RESULT =null; Location funcxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2118,12 +2180,12 @@ void error(Location s, String msg){ OriginFieldList n = (OriginFieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OriginFieldList(funcxleft.getLine(), funcxleft.getColumn(), sym(func), sym(var), n); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 56: // origin_var_list ::= ID EQ ID extra_commas origin_var_list + case 57: // origin_var_list ::= ID EQ ID extra_commas origin_var_list { OriginFieldList RESULT =null; Location funcxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2141,12 +2203,12 @@ void error(Location s, String msg){ error(ecxleft, "extra commas"); RESULT = new OriginFieldList(funcxleft.getLine(), funcxleft.getColumn(), sym(func), sym(var), n); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 57: // origin_var_list ::= ID EQ COMMA origin_var_list + case 58: // origin_var_list ::= ID EQ COMMA origin_var_list { OriginFieldList RESULT =null; Location funcxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -2160,12 +2222,12 @@ void error(Location s, String msg){ OriginFieldList n = (OriginFieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(exright, "missing origin var name"); RESULT = n; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 58: // origin_var_list ::= ID EQ ID origin_var_list + case 59: // origin_var_list ::= ID EQ ID origin_var_list { OriginFieldList RESULT =null; Location funcxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -2180,12 +2242,12 @@ void error(Location s, String msg){ error(varxright, "missing comma"); RESULT = new OriginFieldList(funcxleft.getLine(), funcxleft.getColumn(), sym(func), sym(var), n); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 59: // origin_var_list ::= ID EQ ID + case 60: // origin_var_list ::= ID EQ ID { OriginFieldList RESULT =null; Location funcxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2196,12 +2258,12 @@ void error(Location s, String msg){ java.lang.String var = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OriginFieldList(funcxleft.getLine(), funcxleft.getColumn(), sym(func), sym(var), null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 60: // origin_var_list ::= ID ID + case 61: // origin_var_list ::= ID ID { OriginFieldList RESULT =null; Location funcxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -2213,12 +2275,12 @@ void error(Location s, String msg){ error(funcxright, "missing ="); RESULT = new OriginFieldList(funcxleft.getLine(), funcxleft.getColumn(), sym(func), sym(var), null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",49, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("origin_var_list",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 61: // origin_func_decl ::= ORIGIN type ID LPAREN type RPAREN + case 62: // origin_func_decl ::= ORIGIN type ID LPAREN type RPAREN { Stmt RESULT =null; Location oxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xleft; @@ -2240,7 +2302,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 62: // origin_func_decl ::= ORIGIN type ID LPAREN error RPAREN + case 63: // origin_func_decl ::= ORIGIN type ID LPAREN error RPAREN { Stmt RESULT =null; Location oxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xleft; @@ -2266,7 +2328,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 63: // origin_func_decl ::= ORIGIN type LPAREN type RPAREN + case 64: // origin_func_decl ::= ORIGIN type LPAREN type RPAREN { Stmt RESULT =null; Location oxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2286,7 +2348,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 64: // origin_func_decl ::= ORIGIN type ID LPAREN type + case 65: // origin_func_decl ::= ORIGIN type ID LPAREN type { Stmt RESULT =null; Location oxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2310,7 +2372,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 65: // origin_func_decl ::= ORIGIN type ID type RPAREN + case 66: // origin_func_decl ::= ORIGIN type ID type RPAREN { Stmt RESULT =null; Location oxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2334,7 +2396,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 66: // origin_func_decl ::= ORIGIN error + case 67: // origin_func_decl ::= ORIGIN error { Stmt RESULT =null; Location oxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -2349,7 +2411,7 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 67: // distinct_decl ::= DISTINCT refer_name id_or_subid_list + case 68: // distinct_decl ::= DISTINCT refer_name id_or_subid_list { Stmt RESULT =null; Location dxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2368,19 +2430,19 @@ void error(Location s, String msg){ return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 68: // id_or_subid_list ::= id_or_subid + case 69: // id_or_subid_list ::= id_or_subid { SymbolArrayList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; SymbolArray e = (SymbolArray)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new SymbolArrayList(e, null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",51, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",52, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 69: // id_or_subid_list ::= id_or_subid COMMA id_or_subid_list + case 70: // id_or_subid_list ::= id_or_subid COMMA id_or_subid_list { SymbolArrayList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2390,12 +2452,12 @@ void error(Location s, String msg){ Location nxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; SymbolArrayList n = (SymbolArrayList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new SymbolArrayList(e, n); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",51, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",52, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 70: // id_or_subid_list ::= id_or_subid id_or_subid_list + case 71: // id_or_subid_list ::= id_or_subid id_or_subid_list { SymbolArrayList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -2407,12 +2469,12 @@ void error(Location s, String msg){ error(exright, "missing COMMA"); RESULT = new SymbolArrayList(e, n); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",51, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",52, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 71: // id_or_subid_list ::= id_or_subid extra_commas id_or_subid_list + case 72: // id_or_subid_list ::= id_or_subid extra_commas id_or_subid_list { SymbolArrayList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2426,24 +2488,24 @@ void error(Location s, String msg){ SymbolArrayList n = (SymbolArrayList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(ecxleft, "extra COMMA"); RESULT = new SymbolArrayList(e, n); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",51, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid_list",52, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 72: // id_or_subid ::= ID + case 73: // id_or_subid ::= ID { SymbolArray RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new SymbolArray(idxleft.getLine(), idxleft.getColumn(), sym(id)); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid",51, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 73: // id_or_subid ::= ID LBRACKET INT_LITERAL RBRACKET + case 74: // id_or_subid ::= ID LBRACKET INT_LITERAL RBRACKET { SymbolArray RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -2453,46 +2515,68 @@ void error(Location s, String msg){ Location sxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; java.lang.Number s = (java.lang.Number)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new SymbolArray(idxleft.getLine(), idxleft.getColumn(), sym(id), s.intValue()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid",50, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("id_or_subid",51, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 74: // distribution_decl ::= DISTRIBUTION ID EQ refer_name LPAREN opt_expression_list RPAREN + case 75: // distribution_decl ::= DISTRIBUTION type ID opt_parenthesized_type_var_lst { Stmt RESULT =null; - Location dxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).xleft; - Location dxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).xright; - Object d = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).value; - Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xleft; - Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xright; - java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).value; - Location namexleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; - Location namexright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xright; - String name = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value; - Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; - Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; - ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; + Location dxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; + Location dxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xright; + Object d = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value; + Location ret_typexleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; + Location ret_typexright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xright; + Ty ret_type = (Ty)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value; + Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; + Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; + java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; + Location otlxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; + Location otlxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; + FieldList otl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new DistributionDec(dxleft.getLine(), dxleft.getColumn(), sym(id), - sym(name), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("distribution_decl",11, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + otl, ret_type); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("distribution_decl",11, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + } + return CUP$BLOGParser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 76: // extern_decl ::= EXTERN type ID opt_parenthesized_type_var_lst + { + Stmt RESULT =null; + Location dxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; + Location dxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xright; + Object d = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value; + Location ret_typexleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; + Location ret_typexright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xright; + Ty ret_type = (Ty)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value; + Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; + Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; + java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; + Location otlxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; + Location otlxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; + FieldList otl = (FieldList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; + RESULT = new FixedFuncDec(dxleft.getLine(), dxleft.getColumn(), sym(id), + otl, ret_type, null); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("extern_decl",12, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 75: // refer_name ::= ID + case 77: // refer_name ::= ID { String RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = id; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("refer_name",52, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("refer_name",53, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 76: // refer_name ::= ID DOT refer_name + case 78: // refer_name ::= ID DOT refer_name { String RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2502,24 +2586,24 @@ void error(Location s, String msg){ Location nxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; String n = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = id + "." + n; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("refer_name",52, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("refer_name",53, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 77: // dependency_statement_body ::= DISTRIB expression + case 79: // dependency_statement_body ::= DISTRIB expression { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("dependency_statement_body",30, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("dependency_statement_body",31, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 78: // parameter_decl ::= PARAM type ID + case 80: // parameter_decl ::= PARAM type ID { Stmt RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2532,12 +2616,12 @@ void error(Location s, String msg){ Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.String id = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ParameterDec(pxleft.getLine(), pxleft.getColumn(), ty, sym(id), null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parameter_decl",12, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parameter_decl",13, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 79: // parameter_decl ::= PARAM type ID COLON expression + case 81: // parameter_decl ::= PARAM type ID COLON expression { Stmt RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -2553,204 +2637,204 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ParameterDec(pxleft.getLine(), pxleft.getColumn(), ty, sym(id), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parameter_decl",12, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("parameter_decl",13, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 80: // expression ::= operation_expr + case 82: // expression ::= operation_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 81: // expression ::= literal + case 83: // expression ::= literal { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 82: // expression ::= function_call + case 84: // expression ::= function_call { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; FuncCallExpr e = (FuncCallExpr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 83: // expression ::= list_expr + case 85: // expression ::= list_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 84: // expression ::= map_construct_expression + case 86: // expression ::= map_construct_expression { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; MapInitExpr e = (MapInitExpr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 85: // expression ::= quantified_formula + case 87: // expression ::= quantified_formula { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 86: // expression ::= set_expr + case 88: // expression ::= set_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; SetExpr e = (SetExpr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 87: // expression ::= number_expr + case 89: // expression ::= number_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 88: // expression ::= if_expr + case 90: // expression ::= if_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 89: // expression ::= case_expr + case 91: // expression ::= case_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 90: // literal ::= STRING_LITERAL + case 92: // literal ::= STRING_LITERAL { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.String e = (java.lang.String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new StringExpr(exleft.getLine(), exleft.getColumn(), e.intern()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 91: // literal ::= CHAR_LITERAL + case 93: // literal ::= CHAR_LITERAL { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.Character e = (java.lang.Character)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new StringExpr(exleft.getLine(), exleft.getColumn(), e.toString().intern()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 92: // literal ::= INT_LITERAL + case 94: // literal ::= INT_LITERAL { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.Number e = (java.lang.Number)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new IntExpr(exleft.getLine(), exleft.getColumn(), e.intValue()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 93: // literal ::= DOUBLE_LITERAL + case 95: // literal ::= DOUBLE_LITERAL { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.Number e = (java.lang.Number)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new DoubleExpr(exleft.getLine(), exleft.getColumn(), e.doubleValue()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 94: // literal ::= BOOLEAN_LITERAL + case 96: // literal ::= BOOLEAN_LITERAL { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; java.lang.Boolean e = (java.lang.Boolean)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new BooleanExpr(exleft.getLine(), exleft.getColumn(), e.booleanValue()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 95: // literal ::= NULL + case 97: // literal ::= NULL { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Object e = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new NullExpr(exleft.getLine(), exleft.getColumn()); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",18, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("literal",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 96: // operation_expr ::= expression PLUS expression + case 98: // operation_expr ::= expression PLUS expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2760,12 +2844,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.PLUS, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 97: // operation_expr ::= expression MINUS expression + case 99: // operation_expr ::= expression MINUS expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2775,12 +2859,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.MINUS, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 98: // operation_expr ::= expression MULT expression + case 100: // operation_expr ::= expression MULT expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2790,12 +2874,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.MULT, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 99: // operation_expr ::= expression DIV expression + case 101: // operation_expr ::= expression DIV expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2805,12 +2889,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.DIV, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 100: // operation_expr ::= expression MOD expression + case 102: // operation_expr ::= expression MOD expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2820,12 +2904,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.MOD, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 101: // operation_expr ::= expression POWER expression + case 103: // operation_expr ::= expression POWER expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2835,12 +2919,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.POWER, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 102: // operation_expr ::= expression LT expression + case 104: // operation_expr ::= expression LT expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2850,12 +2934,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.LT, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 103: // operation_expr ::= expression GT expression + case 105: // operation_expr ::= expression GT expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2865,12 +2949,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.GT, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 104: // operation_expr ::= expression LEQ expression + case 106: // operation_expr ::= expression LEQ expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2880,12 +2964,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.LEQ, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 105: // operation_expr ::= expression GEQ expression + case 107: // operation_expr ::= expression GEQ expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2895,12 +2979,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.GEQ, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 106: // operation_expr ::= expression EQEQ expression + case 108: // operation_expr ::= expression EQEQ expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2910,12 +2994,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.EQ, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 107: // operation_expr ::= expression NEQ expression + case 109: // operation_expr ::= expression NEQ expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2925,12 +3009,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.NEQ, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 108: // operation_expr ::= expression AND expression + case 110: // operation_expr ::= expression AND expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2940,12 +3024,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.AND, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 109: // operation_expr ::= expression OR expression + case 111: // operation_expr ::= expression OR expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2955,12 +3039,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.OR, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 110: // operation_expr ::= expression DOUBLERIGHTARROW expression + case 112: // operation_expr ::= expression DOUBLERIGHTARROW expression { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -2970,12 +3054,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.IMPLY, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 111: // operation_expr ::= expression LBRACKET expression RBRACKET + case 113: // operation_expr ::= expression LBRACKET expression RBRACKET { Expr RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -2985,24 +3069,24 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new OpExpr(e1xleft.getLine(), e1xleft.getColumn(), e1, OpExpr.SUB, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 112: // operation_expr ::= unary_operation_expr + case 114: // operation_expr ::= unary_operation_expr { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 113: // unary_operation_expr ::= MINUS expression + case 115: // unary_operation_expr ::= MINUS expression { Expr RESULT =null; Location mxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3011,13 +3095,13 @@ void error(Location s, String msg){ Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; - RESULT = new OpExpr(mxleft.getLine(), mxleft.getColumn(), new IntExpr(exleft.getLine(), exleft.getColumn(), 0), OpExpr.MINUS, e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + RESULT = new OpExpr(mxleft.getLine(), mxleft.getColumn(), null, OpExpr.MINUS, e); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",27, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 114: // unary_operation_expr ::= NOT expression + case 116: // unary_operation_expr ::= NOT expression { Expr RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3027,12 +3111,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(nxleft.getLine(), nxleft.getColumn(), null, OpExpr.NOT, e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",27, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 115: // unary_operation_expr ::= AT expression + case 117: // unary_operation_expr ::= AT expression { Expr RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3042,24 +3126,28 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new OpExpr(axleft.getLine(), axleft.getColumn(), null, OpExpr.AT, e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",27, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 116: // unary_operation_expr ::= LPAREN expression RPAREN + case 118: // unary_operation_expr ::= LPAREN expression RPAREN { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; - RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",26, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + + if (e==null) { + error(exleft, "missing expression inside parenthesis"); + } + RESULT = e; + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("unary_operation_expr",27, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 117: // quantified_formula ::= FORALL type ID expression + case 119: // quantified_formula ::= FORALL type ID expression { Expr RESULT =null; Location fxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -3076,12 +3164,12 @@ void error(Location s, String msg){ Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new QuantifiedFormulaExpr(fxleft.getLine(), fxleft.getColumn(), QuantifiedFormulaExpr.FORALL, ty, sym(id), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("quantified_formula",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("quantified_formula",20, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 118: // quantified_formula ::= EXISTS type ID expression + case 120: // quantified_formula ::= EXISTS type ID expression { Expr RESULT =null; Location exxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -3098,12 +3186,12 @@ void error(Location s, String msg){ Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new QuantifiedFormulaExpr(exxleft.getLine(), exxleft.getColumn(), QuantifiedFormulaExpr.EXISTS, ty, sym(id), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("quantified_formula",19, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("quantified_formula",20, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 119: // function_call ::= refer_name LPAREN opt_expression_list RPAREN + case 121: // function_call ::= refer_name LPAREN opt_expression_list RPAREN { FuncCallExpr RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -3113,12 +3201,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new FuncCallExpr(idxleft.getLine(), idxleft.getColumn(), sym(id), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("function_call",29, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("function_call",30, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 120: // function_call ::= refer_name LPAREN error + case 122: // function_call ::= refer_name LPAREN error { FuncCallExpr RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3128,24 +3216,24 @@ void error(Location s, String msg){ Location errxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Object err = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(errxleft, "error in body of function call"); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("function_call",29, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("function_call",30, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 121: // function_call ::= refer_name + case 123: // function_call ::= refer_name { FuncCallExpr RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new FuncCallExpr(idxleft.getLine(), idxleft.getColumn(), sym(id), null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("function_call",29, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("function_call",30, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 122: // if_expr ::= IF expression THEN expression ELSE expression + case 124: // if_expr ::= IF expression THEN expression ELSE expression { Expr RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).xleft; @@ -3161,12 +3249,12 @@ void error(Location s, String msg){ Location e3xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e3 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new IfExpr(axleft.getLine(), axleft.getColumn(), e1, e2, e3); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("if_expr",22, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("if_expr",23, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 123: // if_expr ::= IF expression THEN expression + case 125: // if_expr ::= IF expression THEN expression { Expr RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -3179,12 +3267,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new IfExpr(axleft.getLine(), axleft.getColumn(), e1, e2, null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("if_expr",22, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("if_expr",23, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 124: // case_expr ::= CASE expression IN map_construct_expression + case 126: // case_expr ::= CASE expression IN map_construct_expression { Expr RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -3205,33 +3293,33 @@ void error(Location s, String msg){ e2.values); } - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("case_expr",23, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("case_expr",24, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 125: // opt_expression_list ::= expression_list + case 127: // opt_expression_list ::= expression_list { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_expression_list",35, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_expression_list",36, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 126: // opt_expression_list ::= + case 128: // opt_expression_list ::= { ExprList RESULT =null; RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_expression_list",35, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_expression_list",36, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 127: // expression_list ::= expression COMMA expression_list + case 129: // expression_list ::= expression COMMA expression_list { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3241,24 +3329,24 @@ void error(Location s, String msg){ Location elstxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ExprList elst = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ExprList(e, elst); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_list",36, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_list",37, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 128: // expression_list ::= expression + case 130: // expression_list ::= expression { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ExprList(e, null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_list",36, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_list",37, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 129: // expression_list ::= expression extra_commas expression_list + case 131: // expression_list ::= expression extra_commas expression_list { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3271,12 +3359,12 @@ void error(Location s, String msg){ Location elstxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ExprList elst = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(ecxleft, "extra commas in expression list"); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_list",36, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_list",37, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 130: // semi_colon_separated_expression_list ::= semi_ending_expression_list semi_colon_separated_expression_list + case 132: // semi_colon_separated_expression_list ::= semi_ending_expression_list semi_colon_separated_expression_list { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3286,12 +3374,12 @@ void error(Location s, String msg){ Location elstxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ExprList elst = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ExprList(new ListInitExpr(exleft.getLine(), exleft.getColumn(), e), elst); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_colon_separated_expression_list",34, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_colon_separated_expression_list",35, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 131: // semi_colon_separated_expression_list ::= semi_ending_expression_list expression_list + case 133: // semi_colon_separated_expression_list ::= semi_ending_expression_list expression_list { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3302,24 +3390,24 @@ void error(Location s, String msg){ ExprList e2 = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ExprList(new ListInitExpr(exleft.getLine(), exleft.getColumn(), e), new ExprList(new ListInitExpr(e2xleft.getLine(), e2xleft.getColumn(), e2), null)); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_colon_separated_expression_list",34, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_colon_separated_expression_list",35, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 132: // semi_ending_expression_list ::= expression_list SEMI + case 134: // semi_ending_expression_list ::= expression_list SEMI { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_ending_expression_list",37, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_ending_expression_list",38, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 133: // semi_ending_expression_list ::= semi_ending_expression_list SEMI + case 135: // semi_ending_expression_list ::= semi_ending_expression_list SEMI { ExprList RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3331,12 +3419,12 @@ void error(Location s, String msg){ error(sxleft, "extra semicolon"); RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_ending_expression_list",37, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("semi_ending_expression_list",38, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 134: // map_construct_expression ::= LBRACE expression_pair_list RBRACE + case 136: // map_construct_expression ::= LBRACE expression_pair_list RBRACE { MapInitExpr RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3346,12 +3434,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; ExprTupleList e = (ExprTupleList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new MapInitExpr(lxleft.getLine(), lxleft.getColumn(), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("map_construct_expression",28, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("map_construct_expression",29, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 135: // expression_pair_list ::= expression RIGHTARROW expression COMMA expression_pair_list + case 137: // expression_pair_list ::= expression RIGHTARROW expression COMMA expression_pair_list { ExprTupleList RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).xleft; @@ -3364,12 +3452,12 @@ void error(Location s, String msg){ Location e3xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ExprTupleList e3 = (ExprTupleList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ExprTupleList(e1, e2, e3); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_pair_list",38, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_pair_list",39, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 136: // expression_pair_list ::= expression RIGHTARROW expression + case 138: // expression_pair_list ::= expression RIGHTARROW expression { ExprTupleList RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3379,12 +3467,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ExprTupleList(e1, e2, null); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_pair_list",38, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("expression_pair_list",39, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 137: // number_expr ::= NUMSIGN set_expr + case 139: // number_expr ::= NUMSIGN set_expr { Expr RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3394,12 +3482,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; SetExpr e = (SetExpr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new NumberExpr(nxleft.getLine(), nxleft.getColumn(), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("number_expr",21, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("number_expr",22, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 138: // number_expr ::= NUMSIGN type + case 140: // number_expr ::= NUMSIGN type { Expr RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3413,24 +3501,24 @@ void error(Location s, String msg){ ExprList explist = new ExprList(new FuncCallExpr(nxright.getLine(), nxright.getColumn(), sym(var), null), null); RESULT = new NumberExpr(nxleft.getLine(), nxleft.getColumn(), new TupleSetExpr(tyxleft.getLine(), tyxleft.getColumn(), explist, new FieldList(sym(var), ty, null), null)); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("number_expr",21, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("number_expr",22, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 139: // number_expr ::= NUMSIGN error + case 141: // number_expr ::= NUMSIGN error { Expr RESULT =null; Location errxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location errxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Object err = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(errxleft, "expecting number expression here. # should be followed by a type or a set"); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("number_expr",21, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("number_expr",22, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 140: // list_expr ::= LBRACKET opt_expression_list RBRACKET + case 142: // list_expr ::= LBRACKET opt_expression_list RBRACKET { Expr RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3440,12 +3528,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new ListInitExpr(lxleft.getLine(), lxleft.getColumn(), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_expr",20, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_expr",21, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 141: // list_expr ::= LBRACKET semi_colon_separated_expression_list RBRACKET + case 143: // list_expr ::= LBRACKET semi_colon_separated_expression_list RBRACKET { Expr RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3455,12 +3543,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new ListInitExpr(lxleft.getLine(), lxleft.getColumn(), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_expr",20, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_expr",21, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 142: // list_expr ::= LBRACKET comprehension_expr RBRACKET + case 144: // list_expr ::= LBRACKET comprehension_expr RBRACKET { Expr RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3478,36 +3566,36 @@ void error(Location s, String msg){ (ExprList) e[0], (FieldList) e[1], (Expr) e[2]); } - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_expr",20, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("list_expr",21, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 143: // set_expr ::= explicit_set + case 145: // set_expr ::= explicit_set { SetExpr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; ExplicitSetExpr e = (ExplicitSetExpr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("set_expr",31, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("set_expr",32, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 144: // set_expr ::= tuple_set + case 146: // set_expr ::= tuple_set { SetExpr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; TupleSetExpr e = (TupleSetExpr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("set_expr",31, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("set_expr",32, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 145: // explicit_set ::= LBRACE opt_expression_list RBRACE + case 147: // explicit_set ::= LBRACE opt_expression_list RBRACE { ExplicitSetExpr RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3517,12 +3605,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xright; ExprList e = (ExprList)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; RESULT = new ExplicitSetExpr(lxleft.getLine(), lxleft.getColumn(), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("explicit_set",32, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("explicit_set",33, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 146: // comprehension_expr ::= expression_list FOR type_var_lst opt_colon_expr + case 148: // comprehension_expr ::= expression_list FOR type_var_lst opt_colon_expr { Absyn[] RESULT =null; Location elstxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).xleft; @@ -3540,21 +3628,21 @@ void error(Location s, String msg){ RESULT = null; } else RESULT = new Absyn[] {elst, vars, condexpr }; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("comprehension_expr",27, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("comprehension_expr",28, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 147: // opt_colon_expr ::= + case 149: // opt_colon_expr ::= { Expr RESULT =null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_colon_expr",24, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_colon_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 148: // opt_colon_expr ::= COLON expression + case 150: // opt_colon_expr ::= COLON expression { Expr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; @@ -3566,12 +3654,12 @@ void error(Location s, String msg){ } RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_colon_expr",24, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("opt_colon_expr",25, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 149: // tuple_set ::= LBRACE comprehension_expr RBRACE + case 151: // tuple_set ::= LBRACE comprehension_expr RBRACE { TupleSetExpr RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3589,24 +3677,24 @@ void error(Location s, String msg){ (ExprList) e[0], (FieldList) e[1], (Expr) e[2]); } - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("tuple_set",33, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("tuple_set",34, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 150: // evidence_stmt ::= OBS evidence + case 152: // evidence_stmt ::= OBS evidence { Stmt RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Stmt e = (Stmt)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("evidence_stmt",13, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("evidence_stmt",14, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 151: // evidence_stmt ::= OBS error + case 153: // evidence_stmt ::= OBS error { Stmt RESULT =null; Location obxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3615,24 +3703,24 @@ void error(Location s, String msg){ error(obxleft, "incorrect obs statement"); RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("evidence_stmt",13, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("evidence_stmt",14, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 152: // evidence ::= value_evidence + case 154: // evidence ::= value_evidence { Stmt RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Stmt e = (Stmt)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = e; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("evidence",15, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("evidence",16, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 153: // value_evidence ::= expression EQ expression + case 155: // value_evidence ::= expression EQ expression { Stmt RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3642,12 +3730,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new ValueEvidence(e1xleft.getLine(), e1xleft.getColumn(), e1, e2); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("value_evidence",16, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("value_evidence",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 154: // value_evidence ::= error EQ expression + case 156: // value_evidence ::= error EQ expression { Stmt RESULT =null; Location errxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3657,12 +3745,12 @@ void error(Location s, String msg){ Location e2xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e2 = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(errxleft, "incorrect expression in left hand side of evidence"); RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("value_evidence",16, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("value_evidence",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 155: // value_evidence ::= expression EQ error + case 157: // value_evidence ::= expression EQ error { Stmt RESULT =null; Location e1xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).xleft; @@ -3672,12 +3760,12 @@ void error(Location s, String msg){ Location errxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Object err = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; error(errxleft, "incorrect expression in right hand side of evidence"); RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("value_evidence",16, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("value_evidence",17, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 156: // query_stmt ::= QUERY expression + case 158: // query_stmt ::= QUERY expression { Stmt RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3687,12 +3775,12 @@ void error(Location s, String msg){ Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.peek()).xright; Expr e = (Expr)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.peek()).value; RESULT = new QueryStmt(qxleft.getLine(), qxleft.getColumn(), e); - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("query_stmt",14, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("query_stmt",15, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 157: // query_stmt ::= QUERY error + case 159: // query_stmt ::= QUERY error { Stmt RESULT =null; Location qxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).xleft; @@ -3700,7 +3788,7 @@ void error(Location s, String msg){ Object q = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value; error(qxright, "invalid query"); RESULT = null; - CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("query_stmt",14, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); + CUP$BLOGParser$result = parser.getSymbolFactory().newSymbol("query_stmt",15, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)), ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.peek()), RESULT); } return CUP$BLOGParser$result; diff --git a/src/main/java/blog/parse/BLOGTokenConstants.java b/src/main/java/blog/parse/BLOGTokenConstants.java index 5a4f334b..34c618d2 100644 --- a/src/main/java/blog/parse/BLOGTokenConstants.java +++ b/src/main/java/blog/parse/BLOGTokenConstants.java @@ -1,7 +1,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11b 20140611 (SVN rev 31) -// Wed Jun 25 01:03:12 PDT 2014 +// Thu Sep 25 23:44:12 PDT 2014 //---------------------------------------------------- package blog.parse; @@ -9,65 +9,66 @@ /** CUP generated class containing symbol constants. */ public class BLOGTokenConstants { /* terminals */ - public static final int FORALL = 19; + public static final int FORALL = 20; public static final int MAP = 16; public static final int QUERY = 12; - public static final int STRING_LITERAL = 26; - public static final int LBRACKET = 58; - public static final int POWER = 34; - public static final int MULT = 31; + public static final int STRING_LITERAL = 27; + public static final int LBRACKET = 59; + public static final int POWER = 35; + public static final int MULT = 32; public static final int RANDOM = 8; - public static final int CHAR_LITERAL = 25; - public static final int UMINUS = 35; + public static final int CHAR_LITERAL = 26; + public static final int UMINUS = 36; public static final int CASE = 5; - public static final int LPAREN = 54; - public static final int SEMI = 49; - public static final int FOR = 20; - public static final int MINUS = 30; + public static final int LPAREN = 55; + public static final int SEMI = 50; + public static final int FOR = 21; + public static final int MINUS = 31; public static final int PARAM = 14; - public static final int RPAREN = 55; - public static final int BOOLEAN_LITERAL = 24; - public static final int AND = 45; - public static final int NOT = 44; - public static final int LT = 36; + public static final int RPAREN = 56; + public static final int BOOLEAN_LITERAL = 25; + public static final int AND = 46; + public static final int NOT = 45; + public static final int LT = 37; public static final int TYPE = 7; - public static final int OR = 46; + public static final int OR = 47; public static final int IN = 6; - public static final int COMMA = 48; + public static final int COMMA = 49; public static final int DISTRIBUTION = 17; public static final int FIXED = 9; - public static final int DIV = 32; - public static final int GEQ = 39; - public static final int PLUS = 29; + public static final int DIV = 33; + public static final int GEQ = 40; + public static final int EXTERN = 18; + public static final int PLUS = 30; public static final int ORIGIN = 10; public static final int OBS = 13; public static final int IF = 3; - public static final int DOT = 51; - public static final int ID = 27; + public static final int DOT = 52; + public static final int ID = 28; public static final int EOF = 0; - public static final int RBRACKET = 59; + public static final int RBRACKET = 60; public static final int error = 1; public static final int DISTINCT = 11; - public static final int EQEQ = 40; - public static final int NULL = 21; - public static final int EXISTS = 18; - public static final int MOD = 33; - public static final int NEQ = 41; - public static final int DISTRIB = 43; - public static final int NUMSIGN = 52; - public static final int EQ = 42; - public static final int COLON = 50; - public static final int LBRACE = 56; + public static final int EQEQ = 41; + public static final int NULL = 22; + public static final int EXISTS = 19; + public static final int MOD = 34; + public static final int NEQ = 42; + public static final int DISTRIB = 44; + public static final int NUMSIGN = 53; + public static final int EQ = 43; + public static final int COLON = 51; + public static final int LBRACE = 57; public static final int ELSE = 2; public static final int LIST = 15; - public static final int RBRACE = 57; + public static final int RBRACE = 58; public static final int THEN = 4; - public static final int LEQ = 38; - public static final int RIGHTARROW = 53; - public static final int DOUBLERIGHTARROW = 47; - public static final int DOUBLE_LITERAL = 23; - public static final int AT = 28; - public static final int GT = 37; - public static final int INT_LITERAL = 22; + public static final int LEQ = 39; + public static final int RIGHTARROW = 54; + public static final int DOUBLERIGHTARROW = 48; + public static final int DOUBLE_LITERAL = 24; + public static final int AT = 29; + public static final int GT = 38; + public static final int INT_LITERAL = 23; } diff --git a/src/main/java/blog/semant/Semant.java b/src/main/java/blog/semant/Semant.java index 7e010aa3..6a974b16 100644 --- a/src/main/java/blog/semant/Semant.java +++ b/src/main/java/blog/semant/Semant.java @@ -107,7 +107,9 @@ * @author amatsukawa * @author rbharath * @author awong + * @author yiwu * @date 2014/2/11 + * @date 2014/09/26 */ public class Semant { @@ -1185,24 +1187,12 @@ ArgSpec transExpr(OpExpr e) { return null; } - // TODO remove the following lines after testing. (leili) - // if (e.left != null) - // sig = new FunctionSignature(funcname, leftType, rightType); - // else - // sig = new FunctionSignature(funcname, rightType); - // NonRandomFunction func = BuiltInFunctions.getFunction(sig); - // if (func != null) { if (e.left != null) // term = new FuncAppTerm(func, (Term) left, (Term) right); term = new FuncAppTerm(funcname, (Term) left, (Term) right); else term = new FuncAppTerm(funcname, (Term) right); return term; - // } else { - // Util.fatalError("No operator " + funcname + " for operands of type " - // + leftType + "," + rightType + "!"); - // throw new IllegalArgumentException("Cannot perform operation!"); - // } } /** diff --git a/src/parser/BLOGLexer.flex b/src/parser/BLOGLexer.flex index 00ddb9e9..d2d0740a 100644 --- a/src/parser/BLOGLexer.flex +++ b/src/parser/BLOGLexer.flex @@ -36,6 +36,7 @@ /** * Using JFlex-1.5.1 * @author leili + * @date 2014-09 */ package blog.parse; import java_cup.runtime.ComplexSymbolFactory; @@ -191,6 +192,7 @@ Comment = {TraditionalComment} | {EndOfLineComment} | {DocumentationComment} [Dd][Ii][Ss][Tt][Rr][Ii][Bb][Uu][Tt][Ii][Oo][Nn] { return symbol(BLOGTokenConstants.DISTRIBUTION); } [Cc][Aa][Ss][Ee] { return symbol(BLOGTokenConstants.CASE); } [Ii][Nn] { return symbol(BLOGTokenConstants.IN); } +[Ee][Xx][Tt][Ee][Rr][Nn] {return symbol(BLOGTokenConstants.EXTERN); } /* literals */ diff --git a/src/parser/BLOGParser.cup b/src/parser/BLOGParser.cup index 2df8c83f..50f7f454 100644 --- a/src/parser/BLOGParser.cup +++ b/src/parser/BLOGParser.cup @@ -39,6 +39,7 @@ * @author bramsundar * @author tejas * @date 2014-06 + * @date 2014-09 */ package blog.parse; @@ -190,7 +191,7 @@ init with {: */ terminal ELSE, IF, THEN, CASE, IN; terminal TYPE, RANDOM, FIXED, ORIGIN, DISTINCT, - QUERY, OBS, PARAM, LIST, MAP, DISTRIBUTION; + QUERY, OBS, PARAM, LIST, MAP, DISTRIBUTION, EXTERN; terminal EXISTS, FORALL; terminal FOR; terminal NULL; @@ -214,7 +215,7 @@ nonterminal program; nonterminal StmtList opt_statement_lst, statement_lst; nonterminal Stmt statement, declaration_stmt, type_decl, fixed_func_decl, rand_func_decl, number_stmt, origin_func_decl, - distinct_decl, distribution_decl, parameter_decl, + distinct_decl, distribution_decl, extern_decl, parameter_decl, evidence_stmt, query_stmt; nonterminal Stmt evidence, value_evidence; nonterminal Expr expression, literal, @@ -317,6 +318,7 @@ declaration_stmt ::= | distinct_decl : e {: RESULT = e; :} | parameter_decl : e {: RESULT = e; :} | distribution_decl :e {: RESULT = e; :} + | extern_decl :e {: RESULT = e; :} /* | parfactor : e {: RESULT = e; :} */ // not supporting parfactor now ; @@ -542,12 +544,21 @@ id_or_subid ::= ID:id * declaration of a distribution */ distribution_decl ::= - DISTRIBUTION:d ID:id EQ refer_name:name - LPAREN opt_expression_list:e RPAREN + DISTRIBUTION:d type:ret_type ID:id opt_parenthesized_type_var_lst:otl {: RESULT = new DistributionDec(dxleft.getLine(), dxleft.getColumn(), sym(id), - sym(name), e); :} + otl, ret_type); :} ; +/** + * declaration of an externally defined fixed function + */ +extern_decl ::= + EXTERN:d type:ret_type ID:id opt_parenthesized_type_var_lst:otl + {: RESULT = new FixedFuncDec(dxleft.getLine(), dxleft.getColumn(), sym(id), + otl, ret_type, null); :} + ; + + /* reference to function name or Java class */ refer_name ::= ID:id {: RESULT = id; :} | ID:id DOT refer_name:n {: RESULT = id + "." + n; :} @@ -636,14 +647,18 @@ operation_expr ::= unary_operation_expr ::= MINUS:m expression:e - {: RESULT = new OpExpr(mxleft.getLine(), mxleft.getColumn(), new IntExpr(exleft.getLine(), exleft.getColumn(), 0), OpExpr.MINUS, e); :} + {: RESULT = new OpExpr(mxleft.getLine(), mxleft.getColumn(), null, OpExpr.MINUS, e); :} %prec UMINUS | NOT:n expression:e {: RESULT = new OpExpr(nxleft.getLine(), nxleft.getColumn(), null, OpExpr.NOT, e); :} | AT:a expression:e {: RESULT = new OpExpr(axleft.getLine(), axleft.getColumn(), null, OpExpr.AT, e); :} | LPAREN expression:e RPAREN - {: RESULT = e; :} + {: + if (e==null) { + error(exleft, "missing expression inside parenthesis"); + } + RESULT = e; :} ; quantified_formula ::= FORALL:f type:ty ID:id expression:e