diff --git a/more_math/Parser/MathExpr.g4 b/more_math/Parser/MathExpr.g4 index cdaaf5a..9d3281c 100644 --- a/more_math/Parser/MathExpr.g4 +++ b/more_math/Parser/MathExpr.g4 @@ -202,7 +202,8 @@ func3: | SINE_EASE LPAREN expr COMMA expr COMMA expr RPAREN # SineEaseFunc | SMOOTHERSTEP LPAREN expr COMMA expr COMMA expr RPAREN # SmootherstepFunc | CROP LPAREN expr COMMA expr COMMA expr RPAREN # CropFunc - | SIFFT LPAREN expr (COMMA expr)? RPAREN # sifftFunc; + | SIFFT LPAREN expr (COMMA expr)? RPAREN # sifftFunc + | OVERLAY LPAREN expr COMMA expr COMMA expr RPAREN # OverlayFunc; func4: SWAP LPAREN expr COMMA expr COMMA expr COMMA expr RPAREN # SwapFunc | NVL LPAREN expr COMMA expr COMMA expr COMMA expr RPAREN # NvlFunc diff --git a/more_math/Parser/MathExpr.interp b/more_math/Parser/MathExpr.interp index 6d1fc21..e5db988 100644 --- a/more_math/Parser/MathExpr.interp +++ b/more_math/Parser/MathExpr.interp @@ -391,4 +391,4 @@ funcNoise atn: -[4, 1, 176, 1344, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 1, 0, 1, 0, 1, 0, 5, 0, 66, 8, 0, 10, 0, 12, 0, 69, 9, 0, 1, 0, 1, 0, 3, 0, 73, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 80, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 86, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 95, 8, 2, 10, 2, 12, 2, 98, 9, 2, 1, 2, 1, 2, 5, 2, 102, 8, 2, 10, 2, 12, 2, 105, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 114, 8, 3, 10, 3, 12, 3, 117, 9, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 130, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 139, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 5, 8, 157, 8, 8, 10, 8, 12, 8, 160, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 172, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 179, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 208, 8, 14, 10, 14, 12, 14, 211, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 222, 8, 15, 10, 15, 12, 15, 225, 9, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 239, 8, 16, 10, 16, 12, 16, 242, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 253, 8, 17, 10, 17, 12, 17, 256, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 263, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 270, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 280, 8, 20, 10, 20, 12, 20, 283, 9, 20, 1, 20, 1, 20, 5, 20, 287, 8, 20, 10, 20, 12, 20, 290, 9, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 315, 8, 21, 10, 21, 12, 21, 318, 9, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 325, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 331, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 336, 8, 22, 10, 22, 12, 22, 339, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 550, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 604, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 663, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 777, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 823, 8, 25, 3, 25, 825, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 868, 8, 25, 3, 25, 870, 8, 25, 3, 25, 872, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 897, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 994, 8, 26, 1, 26, 1, 26, 3, 26, 998, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1033, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1053, 8, 29, 10, 29, 12, 29, 1056, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1065, 8, 29, 10, 29, 12, 29, 1068, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1077, 8, 29, 11, 29, 12, 29, 1078, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1088, 8, 29, 11, 29, 12, 29, 1089, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1099, 8, 29, 11, 29, 12, 29, 1100, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 1119, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1126, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1135, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1146, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1157, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1168, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1181, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1194, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1207, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1220, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1233, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1246, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1259, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1270, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1281, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1292, 8, 30, 1, 30, 1, 30, 3, 30, 1296, 8, 30, 1, 30, 1, 30, 3, 30, 1300, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1311, 8, 30, 1, 30, 1, 30, 3, 30, 1315, 8, 30, 1, 30, 1, 30, 3, 30, 1319, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1330, 8, 30, 1, 30, 1, 30, 3, 30, 1334, 8, 30, 1, 30, 1, 30, 3, 30, 1338, 8, 30, 1, 30, 1, 30, 3, 30, 1342, 8, 30, 1, 30, 0, 5, 28, 30, 32, 34, 40, 31, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 0, 0, 1533, 0, 67, 1, 0, 0, 0, 2, 76, 1, 0, 0, 0, 4, 89, 1, 0, 0, 0, 6, 110, 1, 0, 0, 0, 8, 129, 1, 0, 0, 0, 10, 131, 1, 0, 0, 0, 12, 140, 1, 0, 0, 0, 14, 146, 1, 0, 0, 0, 16, 154, 1, 0, 0, 0, 18, 163, 1, 0, 0, 0, 20, 166, 1, 0, 0, 0, 22, 169, 1, 0, 0, 0, 24, 178, 1, 0, 0, 0, 26, 180, 1, 0, 0, 0, 28, 186, 1, 0, 0, 0, 30, 212, 1, 0, 0, 0, 32, 226, 1, 0, 0, 0, 34, 243, 1, 0, 0, 0, 36, 262, 1, 0, 0, 0, 38, 269, 1, 0, 0, 0, 40, 271, 1, 0, 0, 0, 42, 330, 1, 0, 0, 0, 44, 332, 1, 0, 0, 0, 46, 340, 1, 0, 0, 0, 48, 662, 1, 0, 0, 0, 50, 896, 1, 0, 0, 0, 52, 997, 1, 0, 0, 0, 54, 1032, 1, 0, 0, 0, 56, 1034, 1, 0, 0, 0, 58, 1118, 1, 0, 0, 0, 60, 1341, 1, 0, 0, 0, 62, 66, 3, 2, 1, 0, 63, 66, 3, 4, 2, 0, 64, 66, 3, 8, 4, 0, 65, 62, 1, 0, 0, 0, 65, 63, 1, 0, 0, 0, 65, 64, 1, 0, 0, 0, 66, 69, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 70, 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 72, 3, 24, 12, 0, 71, 73, 5, 163, 0, 0, 72, 71, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 5, 0, 0, 1, 75, 1, 1, 0, 0, 0, 76, 77, 5, 173, 0, 0, 77, 79, 5, 160, 0, 0, 78, 80, 3, 6, 3, 0, 79, 78, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 1, 0, 0, 0, 81, 82, 5, 161, 0, 0, 82, 85, 5, 164, 0, 0, 83, 86, 3, 16, 8, 0, 84, 86, 3, 24, 12, 0, 85, 83, 1, 0, 0, 0, 85, 84, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 88, 5, 163, 0, 0, 88, 3, 1, 0, 0, 0, 89, 103, 5, 173, 0, 0, 90, 91, 5, 165, 0, 0, 91, 96, 3, 24, 12, 0, 92, 93, 5, 162, 0, 0, 93, 95, 3, 24, 12, 0, 94, 92, 1, 0, 0, 0, 95, 98, 1, 0, 0, 0, 96, 94, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 99, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 99, 100, 5, 166, 0, 0, 100, 102, 1, 0, 0, 0, 101, 90, 1, 0, 0, 0, 102, 105, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 106, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 106, 107, 5, 157, 0, 0, 107, 108, 3, 24, 12, 0, 108, 109, 5, 163, 0, 0, 109, 5, 1, 0, 0, 0, 110, 115, 5, 173, 0, 0, 111, 112, 5, 162, 0, 0, 112, 114, 5, 173, 0, 0, 113, 111, 1, 0, 0, 0, 114, 117, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 7, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 118, 130, 3, 10, 5, 0, 119, 130, 3, 12, 6, 0, 120, 130, 3, 16, 8, 0, 121, 130, 3, 18, 9, 0, 122, 130, 3, 20, 10, 0, 123, 130, 3, 22, 11, 0, 124, 130, 3, 4, 2, 0, 125, 130, 3, 14, 7, 0, 126, 127, 3, 24, 12, 0, 127, 128, 5, 163, 0, 0, 128, 130, 1, 0, 0, 0, 129, 118, 1, 0, 0, 0, 129, 119, 1, 0, 0, 0, 129, 120, 1, 0, 0, 0, 129, 121, 1, 0, 0, 0, 129, 122, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 129, 124, 1, 0, 0, 0, 129, 125, 1, 0, 0, 0, 129, 126, 1, 0, 0, 0, 130, 9, 1, 0, 0, 0, 131, 132, 5, 107, 0, 0, 132, 133, 5, 160, 0, 0, 133, 134, 3, 24, 12, 0, 134, 135, 5, 161, 0, 0, 135, 138, 3, 8, 4, 0, 136, 137, 5, 108, 0, 0, 137, 139, 3, 8, 4, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 11, 1, 0, 0, 0, 140, 141, 5, 109, 0, 0, 141, 142, 5, 160, 0, 0, 142, 143, 3, 24, 12, 0, 143, 144, 5, 161, 0, 0, 144, 145, 3, 8, 4, 0, 145, 13, 1, 0, 0, 0, 146, 147, 5, 110, 0, 0, 147, 148, 5, 160, 0, 0, 148, 149, 5, 173, 0, 0, 149, 150, 5, 111, 0, 0, 150, 151, 3, 24, 12, 0, 151, 152, 5, 161, 0, 0, 152, 153, 3, 8, 4, 0, 153, 15, 1, 0, 0, 0, 154, 158, 5, 169, 0, 0, 155, 157, 3, 8, 4, 0, 156, 155, 1, 0, 0, 0, 157, 160, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 161, 162, 5, 170, 0, 0, 162, 17, 1, 0, 0, 0, 163, 164, 5, 112, 0, 0, 164, 165, 5, 163, 0, 0, 165, 19, 1, 0, 0, 0, 166, 167, 5, 113, 0, 0, 167, 168, 5, 163, 0, 0, 168, 21, 1, 0, 0, 0, 169, 171, 5, 114, 0, 0, 170, 172, 3, 24, 12, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 174, 5, 163, 0, 0, 174, 23, 1, 0, 0, 0, 175, 179, 3, 26, 13, 0, 176, 179, 3, 42, 21, 0, 177, 179, 3, 28, 14, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 25, 1, 0, 0, 0, 180, 181, 3, 28, 14, 0, 181, 182, 5, 167, 0, 0, 182, 183, 3, 24, 12, 0, 183, 184, 5, 168, 0, 0, 184, 185, 3, 24, 12, 0, 185, 27, 1, 0, 0, 0, 186, 187, 6, 14, -1, 0, 187, 188, 3, 30, 15, 0, 188, 209, 1, 0, 0, 0, 189, 190, 10, 7, 0, 0, 190, 191, 5, 153, 0, 0, 191, 208, 3, 30, 15, 0, 192, 193, 10, 6, 0, 0, 193, 194, 5, 152, 0, 0, 194, 208, 3, 30, 15, 0, 195, 196, 10, 5, 0, 0, 196, 197, 5, 155, 0, 0, 197, 208, 3, 30, 15, 0, 198, 199, 10, 4, 0, 0, 199, 200, 5, 154, 0, 0, 200, 208, 3, 30, 15, 0, 201, 202, 10, 3, 0, 0, 202, 203, 5, 156, 0, 0, 203, 208, 3, 30, 15, 0, 204, 205, 10, 2, 0, 0, 205, 206, 5, 158, 0, 0, 206, 208, 3, 30, 15, 0, 207, 189, 1, 0, 0, 0, 207, 192, 1, 0, 0, 0, 207, 195, 1, 0, 0, 0, 207, 198, 1, 0, 0, 0, 207, 201, 1, 0, 0, 0, 207, 204, 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 29, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 213, 6, 15, -1, 0, 213, 214, 3, 32, 16, 0, 214, 223, 1, 0, 0, 0, 215, 216, 10, 3, 0, 0, 216, 217, 5, 144, 0, 0, 217, 222, 3, 32, 16, 0, 218, 219, 10, 2, 0, 0, 219, 220, 5, 145, 0, 0, 220, 222, 3, 32, 16, 0, 221, 215, 1, 0, 0, 0, 221, 218, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 31, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 6, 16, -1, 0, 227, 228, 3, 34, 17, 0, 228, 240, 1, 0, 0, 0, 229, 230, 10, 4, 0, 0, 230, 231, 5, 146, 0, 0, 231, 239, 3, 34, 17, 0, 232, 233, 10, 3, 0, 0, 233, 234, 5, 147, 0, 0, 234, 239, 3, 34, 17, 0, 235, 236, 10, 2, 0, 0, 236, 237, 5, 148, 0, 0, 237, 239, 3, 34, 17, 0, 238, 229, 1, 0, 0, 0, 238, 232, 1, 0, 0, 0, 238, 235, 1, 0, 0, 0, 239, 242, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 33, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 243, 244, 6, 17, -1, 0, 244, 245, 3, 36, 18, 0, 245, 254, 1, 0, 0, 0, 246, 247, 10, 3, 0, 0, 247, 248, 5, 150, 0, 0, 248, 253, 3, 36, 18, 0, 249, 250, 10, 2, 0, 0, 250, 251, 5, 151, 0, 0, 251, 253, 3, 36, 18, 0, 252, 246, 1, 0, 0, 0, 252, 249, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 35, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 3, 38, 19, 0, 258, 259, 5, 149, 0, 0, 259, 260, 3, 36, 18, 0, 260, 263, 1, 0, 0, 0, 261, 263, 3, 38, 19, 0, 262, 257, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 37, 1, 0, 0, 0, 264, 265, 5, 144, 0, 0, 265, 270, 3, 38, 19, 0, 266, 267, 5, 145, 0, 0, 267, 270, 3, 38, 19, 0, 268, 270, 3, 40, 20, 0, 269, 264, 1, 0, 0, 0, 269, 266, 1, 0, 0, 0, 269, 268, 1, 0, 0, 0, 270, 39, 1, 0, 0, 0, 271, 272, 6, 20, -1, 0, 272, 273, 3, 42, 21, 0, 273, 288, 1, 0, 0, 0, 274, 275, 10, 2, 0, 0, 275, 276, 5, 165, 0, 0, 276, 281, 3, 24, 12, 0, 277, 278, 5, 162, 0, 0, 278, 280, 3, 24, 12, 0, 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 284, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 5, 166, 0, 0, 285, 287, 1, 0, 0, 0, 286, 274, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 41, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 331, 3, 46, 23, 0, 292, 331, 3, 48, 24, 0, 293, 331, 3, 50, 25, 0, 294, 331, 3, 52, 26, 0, 295, 331, 3, 54, 27, 0, 296, 331, 3, 56, 28, 0, 297, 331, 3, 58, 29, 0, 298, 331, 3, 60, 30, 0, 299, 331, 5, 173, 0, 0, 300, 331, 5, 171, 0, 0, 301, 331, 5, 172, 0, 0, 302, 303, 5, 160, 0, 0, 303, 304, 3, 24, 12, 0, 304, 305, 5, 161, 0, 0, 305, 331, 1, 0, 0, 0, 306, 307, 5, 159, 0, 0, 307, 308, 3, 24, 12, 0, 308, 309, 5, 159, 0, 0, 309, 331, 1, 0, 0, 0, 310, 311, 5, 165, 0, 0, 311, 316, 3, 24, 12, 0, 312, 313, 5, 162, 0, 0, 313, 315, 3, 24, 12, 0, 314, 312, 1, 0, 0, 0, 315, 318, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 319, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 319, 320, 5, 166, 0, 0, 320, 331, 1, 0, 0, 0, 321, 322, 5, 173, 0, 0, 322, 324, 5, 160, 0, 0, 323, 325, 3, 44, 22, 0, 324, 323, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 331, 5, 161, 0, 0, 327, 331, 5, 126, 0, 0, 328, 331, 5, 112, 0, 0, 329, 331, 5, 113, 0, 0, 330, 291, 1, 0, 0, 0, 330, 292, 1, 0, 0, 0, 330, 293, 1, 0, 0, 0, 330, 294, 1, 0, 0, 0, 330, 295, 1, 0, 0, 0, 330, 296, 1, 0, 0, 0, 330, 297, 1, 0, 0, 0, 330, 298, 1, 0, 0, 0, 330, 299, 1, 0, 0, 0, 330, 300, 1, 0, 0, 0, 330, 301, 1, 0, 0, 0, 330, 302, 1, 0, 0, 0, 330, 306, 1, 0, 0, 0, 330, 310, 1, 0, 0, 0, 330, 321, 1, 0, 0, 0, 330, 327, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 330, 329, 1, 0, 0, 0, 331, 43, 1, 0, 0, 0, 332, 337, 3, 24, 12, 0, 333, 334, 5, 162, 0, 0, 334, 336, 3, 24, 12, 0, 335, 333, 1, 0, 0, 0, 336, 339, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 45, 1, 0, 0, 0, 339, 337, 1, 0, 0, 0, 340, 341, 5, 115, 0, 0, 341, 342, 5, 160, 0, 0, 342, 343, 5, 161, 0, 0, 343, 47, 1, 0, 0, 0, 344, 345, 5, 1, 0, 0, 345, 346, 5, 160, 0, 0, 346, 347, 3, 24, 12, 0, 347, 348, 5, 161, 0, 0, 348, 663, 1, 0, 0, 0, 349, 350, 5, 2, 0, 0, 350, 351, 5, 160, 0, 0, 351, 352, 3, 24, 12, 0, 352, 353, 5, 161, 0, 0, 353, 663, 1, 0, 0, 0, 354, 355, 5, 3, 0, 0, 355, 356, 5, 160, 0, 0, 356, 357, 3, 24, 12, 0, 357, 358, 5, 161, 0, 0, 358, 663, 1, 0, 0, 0, 359, 360, 5, 4, 0, 0, 360, 361, 5, 160, 0, 0, 361, 362, 3, 24, 12, 0, 362, 363, 5, 161, 0, 0, 363, 663, 1, 0, 0, 0, 364, 365, 5, 5, 0, 0, 365, 366, 5, 160, 0, 0, 366, 367, 3, 24, 12, 0, 367, 368, 5, 161, 0, 0, 368, 663, 1, 0, 0, 0, 369, 370, 5, 6, 0, 0, 370, 371, 5, 160, 0, 0, 371, 372, 3, 24, 12, 0, 372, 373, 5, 161, 0, 0, 373, 663, 1, 0, 0, 0, 374, 375, 5, 8, 0, 0, 375, 376, 5, 160, 0, 0, 376, 377, 3, 24, 12, 0, 377, 378, 5, 161, 0, 0, 378, 663, 1, 0, 0, 0, 379, 380, 5, 9, 0, 0, 380, 381, 5, 160, 0, 0, 381, 382, 3, 24, 12, 0, 382, 383, 5, 161, 0, 0, 383, 663, 1, 0, 0, 0, 384, 385, 5, 10, 0, 0, 385, 386, 5, 160, 0, 0, 386, 387, 3, 24, 12, 0, 387, 388, 5, 161, 0, 0, 388, 663, 1, 0, 0, 0, 389, 390, 5, 11, 0, 0, 390, 391, 5, 160, 0, 0, 391, 392, 3, 24, 12, 0, 392, 393, 5, 161, 0, 0, 393, 663, 1, 0, 0, 0, 394, 395, 5, 12, 0, 0, 395, 396, 5, 160, 0, 0, 396, 397, 3, 24, 12, 0, 397, 398, 5, 161, 0, 0, 398, 663, 1, 0, 0, 0, 399, 400, 5, 13, 0, 0, 400, 401, 5, 160, 0, 0, 401, 402, 3, 24, 12, 0, 402, 403, 5, 161, 0, 0, 403, 663, 1, 0, 0, 0, 404, 405, 5, 14, 0, 0, 405, 406, 5, 160, 0, 0, 406, 407, 3, 24, 12, 0, 407, 408, 5, 161, 0, 0, 408, 663, 1, 0, 0, 0, 409, 410, 5, 15, 0, 0, 410, 411, 5, 160, 0, 0, 411, 412, 3, 24, 12, 0, 412, 413, 5, 161, 0, 0, 413, 663, 1, 0, 0, 0, 414, 415, 5, 16, 0, 0, 415, 416, 5, 160, 0, 0, 416, 417, 3, 24, 12, 0, 417, 418, 5, 161, 0, 0, 418, 663, 1, 0, 0, 0, 419, 420, 5, 17, 0, 0, 420, 421, 5, 160, 0, 0, 421, 422, 3, 24, 12, 0, 422, 423, 5, 161, 0, 0, 423, 663, 1, 0, 0, 0, 424, 425, 5, 18, 0, 0, 425, 426, 5, 160, 0, 0, 426, 427, 3, 24, 12, 0, 427, 428, 5, 161, 0, 0, 428, 663, 1, 0, 0, 0, 429, 430, 5, 23, 0, 0, 430, 431, 5, 160, 0, 0, 431, 432, 3, 24, 12, 0, 432, 433, 5, 161, 0, 0, 433, 663, 1, 0, 0, 0, 434, 435, 5, 24, 0, 0, 435, 436, 5, 160, 0, 0, 436, 437, 3, 24, 12, 0, 437, 438, 5, 161, 0, 0, 438, 663, 1, 0, 0, 0, 439, 440, 5, 25, 0, 0, 440, 441, 5, 160, 0, 0, 441, 442, 3, 24, 12, 0, 442, 443, 5, 161, 0, 0, 443, 663, 1, 0, 0, 0, 444, 445, 5, 26, 0, 0, 445, 446, 5, 160, 0, 0, 446, 447, 3, 24, 12, 0, 447, 448, 5, 161, 0, 0, 448, 663, 1, 0, 0, 0, 449, 450, 5, 27, 0, 0, 450, 451, 5, 160, 0, 0, 451, 452, 3, 24, 12, 0, 452, 453, 5, 161, 0, 0, 453, 663, 1, 0, 0, 0, 454, 455, 5, 28, 0, 0, 455, 456, 5, 160, 0, 0, 456, 457, 3, 24, 12, 0, 457, 458, 5, 161, 0, 0, 458, 663, 1, 0, 0, 0, 459, 460, 5, 30, 0, 0, 460, 461, 5, 160, 0, 0, 461, 462, 3, 24, 12, 0, 462, 463, 5, 161, 0, 0, 463, 663, 1, 0, 0, 0, 464, 465, 5, 34, 0, 0, 465, 466, 5, 160, 0, 0, 466, 467, 3, 24, 12, 0, 467, 468, 5, 161, 0, 0, 468, 663, 1, 0, 0, 0, 469, 470, 5, 35, 0, 0, 470, 471, 5, 160, 0, 0, 471, 472, 3, 24, 12, 0, 472, 473, 5, 161, 0, 0, 473, 663, 1, 0, 0, 0, 474, 475, 5, 41, 0, 0, 475, 476, 5, 160, 0, 0, 476, 477, 3, 24, 12, 0, 477, 478, 5, 161, 0, 0, 478, 663, 1, 0, 0, 0, 479, 480, 5, 42, 0, 0, 480, 481, 5, 160, 0, 0, 481, 482, 3, 24, 12, 0, 482, 483, 5, 161, 0, 0, 483, 663, 1, 0, 0, 0, 484, 485, 5, 43, 0, 0, 485, 486, 5, 160, 0, 0, 486, 487, 3, 24, 12, 0, 487, 488, 5, 161, 0, 0, 488, 663, 1, 0, 0, 0, 489, 490, 5, 44, 0, 0, 490, 491, 5, 160, 0, 0, 491, 492, 3, 24, 12, 0, 492, 493, 5, 161, 0, 0, 493, 663, 1, 0, 0, 0, 494, 495, 5, 45, 0, 0, 495, 496, 5, 160, 0, 0, 496, 497, 3, 24, 12, 0, 497, 498, 5, 161, 0, 0, 498, 663, 1, 0, 0, 0, 499, 500, 5, 36, 0, 0, 500, 501, 5, 160, 0, 0, 501, 502, 3, 24, 12, 0, 502, 503, 5, 161, 0, 0, 503, 663, 1, 0, 0, 0, 504, 505, 5, 55, 0, 0, 505, 506, 5, 160, 0, 0, 506, 507, 3, 24, 12, 0, 507, 508, 5, 161, 0, 0, 508, 663, 1, 0, 0, 0, 509, 510, 5, 56, 0, 0, 510, 511, 5, 160, 0, 0, 511, 512, 3, 24, 12, 0, 512, 513, 5, 161, 0, 0, 513, 663, 1, 0, 0, 0, 514, 515, 5, 57, 0, 0, 515, 516, 5, 160, 0, 0, 516, 517, 3, 24, 12, 0, 517, 518, 5, 161, 0, 0, 518, 663, 1, 0, 0, 0, 519, 520, 5, 58, 0, 0, 520, 521, 5, 160, 0, 0, 521, 522, 3, 24, 12, 0, 522, 523, 5, 161, 0, 0, 523, 663, 1, 0, 0, 0, 524, 525, 5, 59, 0, 0, 525, 526, 5, 160, 0, 0, 526, 527, 3, 24, 12, 0, 527, 528, 5, 161, 0, 0, 528, 663, 1, 0, 0, 0, 529, 530, 5, 116, 0, 0, 530, 531, 5, 160, 0, 0, 531, 532, 3, 24, 12, 0, 532, 533, 5, 161, 0, 0, 533, 663, 1, 0, 0, 0, 534, 535, 5, 65, 0, 0, 535, 536, 5, 160, 0, 0, 536, 537, 3, 24, 12, 0, 537, 538, 5, 161, 0, 0, 538, 663, 1, 0, 0, 0, 539, 540, 5, 66, 0, 0, 540, 541, 5, 160, 0, 0, 541, 542, 3, 24, 12, 0, 542, 543, 5, 161, 0, 0, 543, 663, 1, 0, 0, 0, 544, 545, 5, 67, 0, 0, 545, 546, 5, 160, 0, 0, 546, 549, 3, 24, 12, 0, 547, 548, 5, 162, 0, 0, 548, 550, 3, 24, 12, 0, 549, 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 5, 161, 0, 0, 552, 663, 1, 0, 0, 0, 553, 554, 5, 69, 0, 0, 554, 555, 5, 160, 0, 0, 555, 556, 3, 24, 12, 0, 556, 557, 5, 161, 0, 0, 557, 663, 1, 0, 0, 0, 558, 559, 5, 70, 0, 0, 559, 560, 5, 160, 0, 0, 560, 561, 3, 24, 12, 0, 561, 562, 5, 161, 0, 0, 562, 663, 1, 0, 0, 0, 563, 564, 5, 71, 0, 0, 564, 565, 5, 160, 0, 0, 565, 566, 3, 24, 12, 0, 566, 567, 5, 161, 0, 0, 567, 663, 1, 0, 0, 0, 568, 569, 5, 82, 0, 0, 569, 570, 5, 160, 0, 0, 570, 571, 3, 24, 12, 0, 571, 572, 5, 161, 0, 0, 572, 663, 1, 0, 0, 0, 573, 574, 5, 72, 0, 0, 574, 575, 5, 160, 0, 0, 575, 576, 3, 24, 12, 0, 576, 577, 5, 161, 0, 0, 577, 663, 1, 0, 0, 0, 578, 579, 5, 103, 0, 0, 579, 580, 5, 160, 0, 0, 580, 581, 3, 24, 12, 0, 581, 582, 5, 161, 0, 0, 582, 663, 1, 0, 0, 0, 583, 584, 5, 104, 0, 0, 584, 585, 5, 160, 0, 0, 585, 586, 3, 24, 12, 0, 586, 587, 5, 161, 0, 0, 587, 663, 1, 0, 0, 0, 588, 589, 5, 105, 0, 0, 589, 590, 5, 160, 0, 0, 590, 591, 3, 24, 12, 0, 591, 592, 5, 161, 0, 0, 592, 663, 1, 0, 0, 0, 593, 594, 5, 106, 0, 0, 594, 595, 5, 160, 0, 0, 595, 596, 3, 24, 12, 0, 596, 597, 5, 161, 0, 0, 597, 663, 1, 0, 0, 0, 598, 599, 5, 117, 0, 0, 599, 600, 5, 160, 0, 0, 600, 603, 3, 24, 12, 0, 601, 602, 5, 162, 0, 0, 602, 604, 3, 24, 12, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 606, 5, 161, 0, 0, 606, 663, 1, 0, 0, 0, 607, 608, 5, 118, 0, 0, 608, 609, 5, 160, 0, 0, 609, 610, 3, 24, 12, 0, 610, 611, 5, 161, 0, 0, 611, 663, 1, 0, 0, 0, 612, 613, 5, 119, 0, 0, 613, 614, 5, 160, 0, 0, 614, 615, 3, 24, 12, 0, 615, 616, 5, 161, 0, 0, 616, 663, 1, 0, 0, 0, 617, 618, 5, 120, 0, 0, 618, 619, 5, 160, 0, 0, 619, 620, 3, 24, 12, 0, 620, 621, 5, 161, 0, 0, 621, 663, 1, 0, 0, 0, 622, 623, 5, 121, 0, 0, 623, 624, 5, 160, 0, 0, 624, 625, 3, 24, 12, 0, 625, 626, 5, 161, 0, 0, 626, 663, 1, 0, 0, 0, 627, 628, 5, 122, 0, 0, 628, 629, 5, 160, 0, 0, 629, 630, 3, 24, 12, 0, 630, 631, 5, 161, 0, 0, 631, 663, 1, 0, 0, 0, 632, 633, 5, 83, 0, 0, 633, 634, 5, 160, 0, 0, 634, 635, 3, 24, 12, 0, 635, 636, 5, 161, 0, 0, 636, 663, 1, 0, 0, 0, 637, 638, 5, 88, 0, 0, 638, 639, 5, 160, 0, 0, 639, 640, 3, 24, 12, 0, 640, 641, 5, 161, 0, 0, 641, 663, 1, 0, 0, 0, 642, 643, 5, 89, 0, 0, 643, 644, 5, 160, 0, 0, 644, 645, 3, 24, 12, 0, 645, 646, 5, 161, 0, 0, 646, 663, 1, 0, 0, 0, 647, 648, 5, 95, 0, 0, 648, 649, 5, 160, 0, 0, 649, 650, 3, 24, 12, 0, 650, 651, 5, 161, 0, 0, 651, 663, 1, 0, 0, 0, 652, 653, 5, 96, 0, 0, 653, 654, 5, 160, 0, 0, 654, 655, 3, 24, 12, 0, 655, 656, 5, 161, 0, 0, 656, 663, 1, 0, 0, 0, 657, 658, 5, 97, 0, 0, 658, 659, 5, 160, 0, 0, 659, 660, 3, 24, 12, 0, 660, 661, 5, 161, 0, 0, 661, 663, 1, 0, 0, 0, 662, 344, 1, 0, 0, 0, 662, 349, 1, 0, 0, 0, 662, 354, 1, 0, 0, 0, 662, 359, 1, 0, 0, 0, 662, 364, 1, 0, 0, 0, 662, 369, 1, 0, 0, 0, 662, 374, 1, 0, 0, 0, 662, 379, 1, 0, 0, 0, 662, 384, 1, 0, 0, 0, 662, 389, 1, 0, 0, 0, 662, 394, 1, 0, 0, 0, 662, 399, 1, 0, 0, 0, 662, 404, 1, 0, 0, 0, 662, 409, 1, 0, 0, 0, 662, 414, 1, 0, 0, 0, 662, 419, 1, 0, 0, 0, 662, 424, 1, 0, 0, 0, 662, 429, 1, 0, 0, 0, 662, 434, 1, 0, 0, 0, 662, 439, 1, 0, 0, 0, 662, 444, 1, 0, 0, 0, 662, 449, 1, 0, 0, 0, 662, 454, 1, 0, 0, 0, 662, 459, 1, 0, 0, 0, 662, 464, 1, 0, 0, 0, 662, 469, 1, 0, 0, 0, 662, 474, 1, 0, 0, 0, 662, 479, 1, 0, 0, 0, 662, 484, 1, 0, 0, 0, 662, 489, 1, 0, 0, 0, 662, 494, 1, 0, 0, 0, 662, 499, 1, 0, 0, 0, 662, 504, 1, 0, 0, 0, 662, 509, 1, 0, 0, 0, 662, 514, 1, 0, 0, 0, 662, 519, 1, 0, 0, 0, 662, 524, 1, 0, 0, 0, 662, 529, 1, 0, 0, 0, 662, 534, 1, 0, 0, 0, 662, 539, 1, 0, 0, 0, 662, 544, 1, 0, 0, 0, 662, 553, 1, 0, 0, 0, 662, 558, 1, 0, 0, 0, 662, 563, 1, 0, 0, 0, 662, 568, 1, 0, 0, 0, 662, 573, 1, 0, 0, 0, 662, 578, 1, 0, 0, 0, 662, 583, 1, 0, 0, 0, 662, 588, 1, 0, 0, 0, 662, 593, 1, 0, 0, 0, 662, 598, 1, 0, 0, 0, 662, 607, 1, 0, 0, 0, 662, 612, 1, 0, 0, 0, 662, 617, 1, 0, 0, 0, 662, 622, 1, 0, 0, 0, 662, 627, 1, 0, 0, 0, 662, 632, 1, 0, 0, 0, 662, 637, 1, 0, 0, 0, 662, 642, 1, 0, 0, 0, 662, 647, 1, 0, 0, 0, 662, 652, 1, 0, 0, 0, 662, 657, 1, 0, 0, 0, 663, 49, 1, 0, 0, 0, 664, 665, 5, 29, 0, 0, 665, 666, 5, 160, 0, 0, 666, 667, 3, 24, 12, 0, 667, 668, 5, 162, 0, 0, 668, 669, 3, 24, 12, 0, 669, 670, 5, 161, 0, 0, 670, 897, 1, 0, 0, 0, 671, 672, 5, 7, 0, 0, 672, 673, 5, 160, 0, 0, 673, 674, 3, 24, 12, 0, 674, 675, 5, 162, 0, 0, 675, 676, 3, 24, 12, 0, 676, 677, 5, 161, 0, 0, 677, 897, 1, 0, 0, 0, 678, 679, 5, 21, 0, 0, 679, 680, 5, 160, 0, 0, 680, 681, 3, 24, 12, 0, 681, 682, 5, 162, 0, 0, 682, 683, 3, 24, 12, 0, 683, 684, 5, 161, 0, 0, 684, 897, 1, 0, 0, 0, 685, 686, 5, 22, 0, 0, 686, 687, 5, 160, 0, 0, 687, 688, 3, 24, 12, 0, 688, 689, 5, 162, 0, 0, 689, 690, 3, 24, 12, 0, 690, 691, 5, 161, 0, 0, 691, 897, 1, 0, 0, 0, 692, 693, 5, 39, 0, 0, 693, 694, 5, 160, 0, 0, 694, 695, 3, 24, 12, 0, 695, 696, 5, 162, 0, 0, 696, 697, 3, 24, 12, 0, 697, 698, 5, 161, 0, 0, 698, 897, 1, 0, 0, 0, 699, 700, 5, 53, 0, 0, 700, 701, 5, 160, 0, 0, 701, 702, 3, 24, 12, 0, 702, 703, 5, 162, 0, 0, 703, 704, 3, 24, 12, 0, 704, 705, 5, 161, 0, 0, 705, 897, 1, 0, 0, 0, 706, 707, 5, 54, 0, 0, 707, 708, 5, 160, 0, 0, 708, 709, 3, 24, 12, 0, 709, 710, 5, 162, 0, 0, 710, 711, 3, 24, 12, 0, 711, 712, 5, 161, 0, 0, 712, 897, 1, 0, 0, 0, 713, 714, 5, 60, 0, 0, 714, 715, 5, 160, 0, 0, 715, 716, 3, 24, 12, 0, 716, 717, 5, 162, 0, 0, 717, 718, 3, 24, 12, 0, 718, 719, 5, 161, 0, 0, 719, 897, 1, 0, 0, 0, 720, 721, 5, 61, 0, 0, 721, 722, 5, 160, 0, 0, 722, 723, 3, 24, 12, 0, 723, 724, 5, 162, 0, 0, 724, 725, 3, 24, 12, 0, 725, 726, 5, 161, 0, 0, 726, 897, 1, 0, 0, 0, 727, 728, 5, 62, 0, 0, 728, 729, 5, 160, 0, 0, 729, 730, 3, 24, 12, 0, 730, 731, 5, 162, 0, 0, 731, 732, 3, 24, 12, 0, 732, 733, 5, 161, 0, 0, 733, 897, 1, 0, 0, 0, 734, 735, 5, 63, 0, 0, 735, 736, 5, 160, 0, 0, 736, 737, 3, 24, 12, 0, 737, 738, 5, 162, 0, 0, 738, 739, 3, 24, 12, 0, 739, 740, 5, 161, 0, 0, 740, 897, 1, 0, 0, 0, 741, 742, 5, 81, 0, 0, 742, 743, 5, 160, 0, 0, 743, 744, 3, 24, 12, 0, 744, 745, 5, 162, 0, 0, 745, 746, 3, 24, 12, 0, 746, 747, 5, 161, 0, 0, 747, 897, 1, 0, 0, 0, 748, 749, 5, 123, 0, 0, 749, 750, 5, 160, 0, 0, 750, 751, 3, 24, 12, 0, 751, 752, 5, 162, 0, 0, 752, 753, 3, 24, 12, 0, 753, 754, 5, 161, 0, 0, 754, 897, 1, 0, 0, 0, 755, 756, 5, 124, 0, 0, 756, 757, 5, 160, 0, 0, 757, 758, 3, 24, 12, 0, 758, 759, 5, 162, 0, 0, 759, 760, 3, 24, 12, 0, 760, 761, 5, 161, 0, 0, 761, 897, 1, 0, 0, 0, 762, 763, 5, 84, 0, 0, 763, 764, 5, 160, 0, 0, 764, 765, 3, 24, 12, 0, 765, 766, 5, 162, 0, 0, 766, 767, 3, 24, 12, 0, 767, 768, 5, 161, 0, 0, 768, 897, 1, 0, 0, 0, 769, 770, 5, 68, 0, 0, 770, 771, 5, 160, 0, 0, 771, 772, 3, 24, 12, 0, 772, 773, 5, 162, 0, 0, 773, 776, 3, 24, 12, 0, 774, 775, 5, 162, 0, 0, 775, 777, 3, 24, 12, 0, 776, 774, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 779, 5, 161, 0, 0, 779, 897, 1, 0, 0, 0, 780, 781, 5, 73, 0, 0, 781, 782, 5, 160, 0, 0, 782, 783, 3, 24, 12, 0, 783, 784, 5, 162, 0, 0, 784, 785, 3, 24, 12, 0, 785, 786, 5, 161, 0, 0, 786, 897, 1, 0, 0, 0, 787, 788, 5, 74, 0, 0, 788, 789, 5, 160, 0, 0, 789, 790, 3, 24, 12, 0, 790, 791, 5, 162, 0, 0, 791, 792, 3, 24, 12, 0, 792, 793, 5, 161, 0, 0, 793, 897, 1, 0, 0, 0, 794, 795, 5, 87, 0, 0, 795, 796, 5, 160, 0, 0, 796, 797, 3, 24, 12, 0, 797, 798, 5, 162, 0, 0, 798, 799, 3, 24, 12, 0, 799, 800, 5, 161, 0, 0, 800, 897, 1, 0, 0, 0, 801, 802, 5, 102, 0, 0, 802, 803, 5, 160, 0, 0, 803, 804, 3, 24, 12, 0, 804, 805, 5, 162, 0, 0, 805, 806, 3, 24, 12, 0, 806, 807, 5, 161, 0, 0, 807, 897, 1, 0, 0, 0, 808, 809, 5, 85, 0, 0, 809, 810, 5, 160, 0, 0, 810, 811, 3, 24, 12, 0, 811, 812, 5, 162, 0, 0, 812, 813, 3, 24, 12, 0, 813, 814, 5, 161, 0, 0, 814, 897, 1, 0, 0, 0, 815, 816, 5, 101, 0, 0, 816, 817, 5, 160, 0, 0, 817, 824, 3, 40, 20, 0, 818, 819, 5, 162, 0, 0, 819, 822, 3, 24, 12, 0, 820, 821, 5, 162, 0, 0, 821, 823, 3, 24, 12, 0, 822, 820, 1, 0, 0, 0, 822, 823, 1, 0, 0, 0, 823, 825, 1, 0, 0, 0, 824, 818, 1, 0, 0, 0, 824, 825, 1, 0, 0, 0, 825, 826, 1, 0, 0, 0, 826, 827, 5, 161, 0, 0, 827, 897, 1, 0, 0, 0, 828, 829, 5, 91, 0, 0, 829, 830, 5, 160, 0, 0, 830, 831, 3, 24, 12, 0, 831, 832, 5, 162, 0, 0, 832, 833, 3, 24, 12, 0, 833, 834, 5, 161, 0, 0, 834, 897, 1, 0, 0, 0, 835, 836, 5, 92, 0, 0, 836, 837, 5, 160, 0, 0, 837, 838, 3, 24, 12, 0, 838, 839, 5, 162, 0, 0, 839, 840, 3, 24, 12, 0, 840, 841, 5, 161, 0, 0, 841, 897, 1, 0, 0, 0, 842, 843, 5, 93, 0, 0, 843, 844, 5, 160, 0, 0, 844, 845, 3, 24, 12, 0, 845, 846, 5, 162, 0, 0, 846, 847, 3, 24, 12, 0, 847, 848, 5, 161, 0, 0, 848, 897, 1, 0, 0, 0, 849, 850, 5, 86, 0, 0, 850, 851, 5, 160, 0, 0, 851, 852, 3, 24, 12, 0, 852, 853, 5, 162, 0, 0, 853, 854, 3, 24, 12, 0, 854, 855, 5, 161, 0, 0, 855, 897, 1, 0, 0, 0, 856, 857, 5, 94, 0, 0, 857, 858, 5, 160, 0, 0, 858, 859, 3, 24, 12, 0, 859, 860, 5, 162, 0, 0, 860, 871, 3, 24, 12, 0, 861, 862, 5, 162, 0, 0, 862, 869, 3, 24, 12, 0, 863, 864, 5, 162, 0, 0, 864, 867, 3, 24, 12, 0, 865, 866, 5, 162, 0, 0, 866, 868, 3, 24, 12, 0, 867, 865, 1, 0, 0, 0, 867, 868, 1, 0, 0, 0, 868, 870, 1, 0, 0, 0, 869, 863, 1, 0, 0, 0, 869, 870, 1, 0, 0, 0, 870, 872, 1, 0, 0, 0, 871, 861, 1, 0, 0, 0, 871, 872, 1, 0, 0, 0, 872, 873, 1, 0, 0, 0, 873, 874, 5, 161, 0, 0, 874, 897, 1, 0, 0, 0, 875, 876, 5, 98, 0, 0, 876, 877, 5, 160, 0, 0, 877, 878, 3, 24, 12, 0, 878, 879, 5, 162, 0, 0, 879, 880, 3, 24, 12, 0, 880, 881, 5, 161, 0, 0, 881, 897, 1, 0, 0, 0, 882, 883, 5, 99, 0, 0, 883, 884, 5, 160, 0, 0, 884, 885, 3, 24, 12, 0, 885, 886, 5, 162, 0, 0, 886, 887, 3, 24, 12, 0, 887, 888, 5, 161, 0, 0, 888, 897, 1, 0, 0, 0, 889, 890, 5, 100, 0, 0, 890, 891, 5, 160, 0, 0, 891, 892, 3, 24, 12, 0, 892, 893, 5, 162, 0, 0, 893, 894, 3, 24, 12, 0, 894, 895, 5, 161, 0, 0, 895, 897, 1, 0, 0, 0, 896, 664, 1, 0, 0, 0, 896, 671, 1, 0, 0, 0, 896, 678, 1, 0, 0, 0, 896, 685, 1, 0, 0, 0, 896, 692, 1, 0, 0, 0, 896, 699, 1, 0, 0, 0, 896, 706, 1, 0, 0, 0, 896, 713, 1, 0, 0, 0, 896, 720, 1, 0, 0, 0, 896, 727, 1, 0, 0, 0, 896, 734, 1, 0, 0, 0, 896, 741, 1, 0, 0, 0, 896, 748, 1, 0, 0, 0, 896, 755, 1, 0, 0, 0, 896, 762, 1, 0, 0, 0, 896, 769, 1, 0, 0, 0, 896, 780, 1, 0, 0, 0, 896, 787, 1, 0, 0, 0, 896, 794, 1, 0, 0, 0, 896, 801, 1, 0, 0, 0, 896, 808, 1, 0, 0, 0, 896, 815, 1, 0, 0, 0, 896, 828, 1, 0, 0, 0, 896, 835, 1, 0, 0, 0, 896, 842, 1, 0, 0, 0, 896, 849, 1, 0, 0, 0, 896, 856, 1, 0, 0, 0, 896, 875, 1, 0, 0, 0, 896, 882, 1, 0, 0, 0, 896, 889, 1, 0, 0, 0, 897, 51, 1, 0, 0, 0, 898, 899, 5, 31, 0, 0, 899, 900, 5, 160, 0, 0, 900, 901, 3, 24, 12, 0, 901, 902, 5, 162, 0, 0, 902, 903, 3, 24, 12, 0, 903, 904, 5, 162, 0, 0, 904, 905, 3, 24, 12, 0, 905, 906, 5, 161, 0, 0, 906, 998, 1, 0, 0, 0, 907, 908, 5, 38, 0, 0, 908, 909, 5, 160, 0, 0, 909, 910, 3, 24, 12, 0, 910, 911, 5, 162, 0, 0, 911, 912, 3, 24, 12, 0, 912, 913, 5, 162, 0, 0, 913, 914, 3, 24, 12, 0, 914, 915, 5, 161, 0, 0, 915, 998, 1, 0, 0, 0, 916, 917, 5, 40, 0, 0, 917, 918, 5, 160, 0, 0, 918, 919, 3, 24, 12, 0, 919, 920, 5, 162, 0, 0, 920, 921, 3, 24, 12, 0, 921, 922, 5, 162, 0, 0, 922, 923, 3, 24, 12, 0, 923, 924, 5, 161, 0, 0, 924, 998, 1, 0, 0, 0, 925, 926, 5, 52, 0, 0, 926, 927, 5, 160, 0, 0, 927, 928, 3, 24, 12, 0, 928, 929, 5, 162, 0, 0, 929, 930, 3, 24, 12, 0, 930, 931, 5, 162, 0, 0, 931, 932, 3, 24, 12, 0, 932, 933, 5, 161, 0, 0, 933, 998, 1, 0, 0, 0, 934, 935, 5, 64, 0, 0, 935, 936, 5, 160, 0, 0, 936, 937, 3, 24, 12, 0, 937, 938, 5, 162, 0, 0, 938, 939, 3, 24, 12, 0, 939, 940, 5, 162, 0, 0, 940, 941, 3, 24, 12, 0, 941, 942, 5, 161, 0, 0, 942, 998, 1, 0, 0, 0, 943, 944, 5, 75, 0, 0, 944, 945, 5, 160, 0, 0, 945, 946, 3, 24, 12, 0, 946, 947, 5, 162, 0, 0, 947, 948, 3, 24, 12, 0, 948, 949, 5, 162, 0, 0, 949, 950, 3, 24, 12, 0, 950, 951, 5, 161, 0, 0, 951, 998, 1, 0, 0, 0, 952, 953, 5, 76, 0, 0, 953, 954, 5, 160, 0, 0, 954, 955, 3, 24, 12, 0, 955, 956, 5, 162, 0, 0, 956, 957, 3, 24, 12, 0, 957, 958, 5, 162, 0, 0, 958, 959, 3, 24, 12, 0, 959, 960, 5, 161, 0, 0, 960, 998, 1, 0, 0, 0, 961, 962, 5, 77, 0, 0, 962, 963, 5, 160, 0, 0, 963, 964, 3, 24, 12, 0, 964, 965, 5, 162, 0, 0, 965, 966, 3, 24, 12, 0, 966, 967, 5, 162, 0, 0, 967, 968, 3, 24, 12, 0, 968, 969, 5, 161, 0, 0, 969, 998, 1, 0, 0, 0, 970, 971, 5, 78, 0, 0, 971, 972, 5, 160, 0, 0, 972, 973, 3, 24, 12, 0, 973, 974, 5, 162, 0, 0, 974, 975, 3, 24, 12, 0, 975, 976, 5, 162, 0, 0, 976, 977, 3, 24, 12, 0, 977, 978, 5, 161, 0, 0, 978, 998, 1, 0, 0, 0, 979, 980, 5, 125, 0, 0, 980, 981, 5, 160, 0, 0, 981, 982, 3, 24, 12, 0, 982, 983, 5, 162, 0, 0, 983, 984, 3, 24, 12, 0, 984, 985, 5, 162, 0, 0, 985, 986, 3, 24, 12, 0, 986, 987, 5, 161, 0, 0, 987, 998, 1, 0, 0, 0, 988, 989, 5, 33, 0, 0, 989, 990, 5, 160, 0, 0, 990, 993, 3, 24, 12, 0, 991, 992, 5, 162, 0, 0, 992, 994, 3, 24, 12, 0, 993, 991, 1, 0, 0, 0, 993, 994, 1, 0, 0, 0, 994, 995, 1, 0, 0, 0, 995, 996, 5, 161, 0, 0, 996, 998, 1, 0, 0, 0, 997, 898, 1, 0, 0, 0, 997, 907, 1, 0, 0, 0, 997, 916, 1, 0, 0, 0, 997, 925, 1, 0, 0, 0, 997, 934, 1, 0, 0, 0, 997, 943, 1, 0, 0, 0, 997, 952, 1, 0, 0, 0, 997, 961, 1, 0, 0, 0, 997, 970, 1, 0, 0, 0, 997, 979, 1, 0, 0, 0, 997, 988, 1, 0, 0, 0, 998, 53, 1, 0, 0, 0, 999, 1000, 5, 49, 0, 0, 1000, 1001, 5, 160, 0, 0, 1001, 1002, 3, 24, 12, 0, 1002, 1003, 5, 162, 0, 0, 1003, 1004, 3, 24, 12, 0, 1004, 1005, 5, 162, 0, 0, 1005, 1006, 3, 24, 12, 0, 1006, 1007, 5, 162, 0, 0, 1007, 1008, 3, 24, 12, 0, 1008, 1009, 5, 161, 0, 0, 1009, 1033, 1, 0, 0, 0, 1010, 1011, 5, 37, 0, 0, 1011, 1012, 5, 160, 0, 0, 1012, 1013, 3, 24, 12, 0, 1013, 1014, 5, 162, 0, 0, 1014, 1015, 3, 24, 12, 0, 1015, 1016, 5, 162, 0, 0, 1016, 1017, 3, 24, 12, 0, 1017, 1018, 5, 162, 0, 0, 1018, 1019, 3, 24, 12, 0, 1019, 1020, 5, 161, 0, 0, 1020, 1033, 1, 0, 0, 0, 1021, 1022, 5, 79, 0, 0, 1022, 1023, 5, 160, 0, 0, 1023, 1024, 3, 24, 12, 0, 1024, 1025, 5, 162, 0, 0, 1025, 1026, 3, 24, 12, 0, 1026, 1027, 5, 162, 0, 0, 1027, 1028, 3, 24, 12, 0, 1028, 1029, 5, 162, 0, 0, 1029, 1030, 3, 24, 12, 0, 1030, 1031, 5, 161, 0, 0, 1031, 1033, 1, 0, 0, 0, 1032, 999, 1, 0, 0, 0, 1032, 1010, 1, 0, 0, 0, 1032, 1021, 1, 0, 0, 0, 1033, 55, 1, 0, 0, 0, 1034, 1035, 5, 80, 0, 0, 1035, 1036, 5, 160, 0, 0, 1036, 1037, 3, 24, 12, 0, 1037, 1038, 5, 162, 0, 0, 1038, 1039, 3, 24, 12, 0, 1039, 1040, 5, 162, 0, 0, 1040, 1041, 3, 24, 12, 0, 1041, 1042, 5, 162, 0, 0, 1042, 1043, 3, 24, 12, 0, 1043, 1044, 5, 162, 0, 0, 1044, 1045, 3, 24, 12, 0, 1045, 1046, 5, 161, 0, 0, 1046, 57, 1, 0, 0, 0, 1047, 1048, 5, 19, 0, 0, 1048, 1049, 5, 160, 0, 0, 1049, 1054, 3, 24, 12, 0, 1050, 1051, 5, 162, 0, 0, 1051, 1053, 3, 24, 12, 0, 1052, 1050, 1, 0, 0, 0, 1053, 1056, 1, 0, 0, 0, 1054, 1052, 1, 0, 0, 0, 1054, 1055, 1, 0, 0, 0, 1055, 1057, 1, 0, 0, 0, 1056, 1054, 1, 0, 0, 0, 1057, 1058, 5, 161, 0, 0, 1058, 1119, 1, 0, 0, 0, 1059, 1060, 5, 20, 0, 0, 1060, 1061, 5, 160, 0, 0, 1061, 1066, 3, 24, 12, 0, 1062, 1063, 5, 162, 0, 0, 1063, 1065, 3, 24, 12, 0, 1064, 1062, 1, 0, 0, 0, 1065, 1068, 1, 0, 0, 0, 1066, 1064, 1, 0, 0, 0, 1066, 1067, 1, 0, 0, 0, 1067, 1069, 1, 0, 0, 0, 1068, 1066, 1, 0, 0, 0, 1069, 1070, 5, 161, 0, 0, 1070, 1119, 1, 0, 0, 0, 1071, 1072, 5, 46, 0, 0, 1072, 1073, 5, 160, 0, 0, 1073, 1076, 3, 24, 12, 0, 1074, 1075, 5, 162, 0, 0, 1075, 1077, 3, 24, 12, 0, 1076, 1074, 1, 0, 0, 0, 1077, 1078, 1, 0, 0, 0, 1078, 1076, 1, 0, 0, 0, 1078, 1079, 1, 0, 0, 0, 1079, 1080, 1, 0, 0, 0, 1080, 1081, 5, 161, 0, 0, 1081, 1119, 1, 0, 0, 0, 1082, 1083, 5, 47, 0, 0, 1083, 1084, 5, 160, 0, 0, 1084, 1087, 3, 24, 12, 0, 1085, 1086, 5, 162, 0, 0, 1086, 1088, 3, 24, 12, 0, 1087, 1085, 1, 0, 0, 0, 1088, 1089, 1, 0, 0, 0, 1089, 1087, 1, 0, 0, 0, 1089, 1090, 1, 0, 0, 0, 1090, 1091, 1, 0, 0, 0, 1091, 1092, 5, 161, 0, 0, 1092, 1119, 1, 0, 0, 0, 1093, 1094, 5, 48, 0, 0, 1094, 1095, 5, 160, 0, 0, 1095, 1098, 3, 24, 12, 0, 1096, 1097, 5, 162, 0, 0, 1097, 1099, 3, 24, 12, 0, 1098, 1096, 1, 0, 0, 0, 1099, 1100, 1, 0, 0, 0, 1100, 1098, 1, 0, 0, 0, 1100, 1101, 1, 0, 0, 0, 1101, 1102, 1, 0, 0, 0, 1102, 1103, 5, 161, 0, 0, 1103, 1119, 1, 0, 0, 0, 1104, 1105, 5, 50, 0, 0, 1105, 1106, 5, 160, 0, 0, 1106, 1107, 3, 24, 12, 0, 1107, 1108, 5, 162, 0, 0, 1108, 1109, 3, 24, 12, 0, 1109, 1110, 5, 161, 0, 0, 1110, 1119, 1, 0, 0, 0, 1111, 1112, 5, 51, 0, 0, 1112, 1113, 5, 160, 0, 0, 1113, 1114, 3, 24, 12, 0, 1114, 1115, 5, 162, 0, 0, 1115, 1116, 3, 24, 12, 0, 1116, 1117, 5, 161, 0, 0, 1117, 1119, 1, 0, 0, 0, 1118, 1047, 1, 0, 0, 0, 1118, 1059, 1, 0, 0, 0, 1118, 1071, 1, 0, 0, 0, 1118, 1082, 1, 0, 0, 0, 1118, 1093, 1, 0, 0, 0, 1118, 1104, 1, 0, 0, 0, 1118, 1111, 1, 0, 0, 0, 1119, 59, 1, 0, 0, 0, 1120, 1121, 5, 127, 0, 0, 1121, 1122, 5, 160, 0, 0, 1122, 1125, 3, 24, 12, 0, 1123, 1124, 5, 162, 0, 0, 1124, 1126, 3, 24, 12, 0, 1125, 1123, 1, 0, 0, 0, 1125, 1126, 1, 0, 0, 0, 1126, 1127, 1, 0, 0, 0, 1127, 1128, 5, 161, 0, 0, 1128, 1342, 1, 0, 0, 0, 1129, 1130, 5, 128, 0, 0, 1130, 1131, 5, 160, 0, 0, 1131, 1134, 3, 24, 12, 0, 1132, 1133, 5, 162, 0, 0, 1133, 1135, 3, 24, 12, 0, 1134, 1132, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1136, 1, 0, 0, 0, 1136, 1137, 5, 161, 0, 0, 1137, 1342, 1, 0, 0, 0, 1138, 1139, 5, 130, 0, 0, 1139, 1140, 5, 160, 0, 0, 1140, 1141, 3, 24, 12, 0, 1141, 1142, 5, 162, 0, 0, 1142, 1145, 3, 24, 12, 0, 1143, 1144, 5, 162, 0, 0, 1144, 1146, 3, 24, 12, 0, 1145, 1143, 1, 0, 0, 0, 1145, 1146, 1, 0, 0, 0, 1146, 1147, 1, 0, 0, 0, 1147, 1148, 5, 161, 0, 0, 1148, 1342, 1, 0, 0, 0, 1149, 1150, 5, 132, 0, 0, 1150, 1151, 5, 160, 0, 0, 1151, 1152, 3, 24, 12, 0, 1152, 1153, 5, 162, 0, 0, 1153, 1156, 3, 24, 12, 0, 1154, 1155, 5, 162, 0, 0, 1155, 1157, 3, 24, 12, 0, 1156, 1154, 1, 0, 0, 0, 1156, 1157, 1, 0, 0, 0, 1157, 1158, 1, 0, 0, 0, 1158, 1159, 5, 161, 0, 0, 1159, 1342, 1, 0, 0, 0, 1160, 1161, 5, 133, 0, 0, 1161, 1162, 5, 160, 0, 0, 1162, 1163, 3, 24, 12, 0, 1163, 1164, 5, 162, 0, 0, 1164, 1167, 3, 24, 12, 0, 1165, 1166, 5, 162, 0, 0, 1166, 1168, 3, 24, 12, 0, 1167, 1165, 1, 0, 0, 0, 1167, 1168, 1, 0, 0, 0, 1168, 1169, 1, 0, 0, 0, 1169, 1170, 5, 161, 0, 0, 1170, 1342, 1, 0, 0, 0, 1171, 1172, 5, 129, 0, 0, 1172, 1173, 5, 160, 0, 0, 1173, 1174, 3, 24, 12, 0, 1174, 1175, 5, 162, 0, 0, 1175, 1176, 3, 24, 12, 0, 1176, 1177, 5, 162, 0, 0, 1177, 1180, 3, 24, 12, 0, 1178, 1179, 5, 162, 0, 0, 1179, 1181, 3, 24, 12, 0, 1180, 1178, 1, 0, 0, 0, 1180, 1181, 1, 0, 0, 0, 1181, 1182, 1, 0, 0, 0, 1182, 1183, 5, 161, 0, 0, 1183, 1342, 1, 0, 0, 0, 1184, 1185, 5, 131, 0, 0, 1185, 1186, 5, 160, 0, 0, 1186, 1187, 3, 24, 12, 0, 1187, 1188, 5, 162, 0, 0, 1188, 1189, 3, 24, 12, 0, 1189, 1190, 5, 162, 0, 0, 1190, 1193, 3, 24, 12, 0, 1191, 1192, 5, 162, 0, 0, 1192, 1194, 3, 24, 12, 0, 1193, 1191, 1, 0, 0, 0, 1193, 1194, 1, 0, 0, 0, 1194, 1195, 1, 0, 0, 0, 1195, 1196, 5, 161, 0, 0, 1196, 1342, 1, 0, 0, 0, 1197, 1198, 5, 134, 0, 0, 1198, 1199, 5, 160, 0, 0, 1199, 1200, 3, 24, 12, 0, 1200, 1201, 5, 162, 0, 0, 1201, 1202, 3, 24, 12, 0, 1202, 1203, 5, 162, 0, 0, 1203, 1206, 3, 24, 12, 0, 1204, 1205, 5, 162, 0, 0, 1205, 1207, 3, 24, 12, 0, 1206, 1204, 1, 0, 0, 0, 1206, 1207, 1, 0, 0, 0, 1207, 1208, 1, 0, 0, 0, 1208, 1209, 5, 161, 0, 0, 1209, 1342, 1, 0, 0, 0, 1210, 1211, 5, 135, 0, 0, 1211, 1212, 5, 160, 0, 0, 1212, 1213, 3, 24, 12, 0, 1213, 1214, 5, 162, 0, 0, 1214, 1215, 3, 24, 12, 0, 1215, 1216, 5, 162, 0, 0, 1216, 1219, 3, 24, 12, 0, 1217, 1218, 5, 162, 0, 0, 1218, 1220, 3, 24, 12, 0, 1219, 1217, 1, 0, 0, 0, 1219, 1220, 1, 0, 0, 0, 1220, 1221, 1, 0, 0, 0, 1221, 1222, 5, 161, 0, 0, 1222, 1342, 1, 0, 0, 0, 1223, 1224, 5, 136, 0, 0, 1224, 1225, 5, 160, 0, 0, 1225, 1226, 3, 24, 12, 0, 1226, 1227, 5, 162, 0, 0, 1227, 1228, 3, 24, 12, 0, 1228, 1229, 5, 162, 0, 0, 1229, 1232, 3, 24, 12, 0, 1230, 1231, 5, 162, 0, 0, 1231, 1233, 3, 24, 12, 0, 1232, 1230, 1, 0, 0, 0, 1232, 1233, 1, 0, 0, 0, 1233, 1234, 1, 0, 0, 0, 1234, 1235, 5, 161, 0, 0, 1235, 1342, 1, 0, 0, 0, 1236, 1237, 5, 137, 0, 0, 1237, 1238, 5, 160, 0, 0, 1238, 1239, 3, 24, 12, 0, 1239, 1240, 5, 162, 0, 0, 1240, 1241, 3, 24, 12, 0, 1241, 1242, 5, 162, 0, 0, 1242, 1245, 3, 24, 12, 0, 1243, 1244, 5, 162, 0, 0, 1244, 1246, 3, 24, 12, 0, 1245, 1243, 1, 0, 0, 0, 1245, 1246, 1, 0, 0, 0, 1246, 1247, 1, 0, 0, 0, 1247, 1248, 5, 161, 0, 0, 1248, 1342, 1, 0, 0, 0, 1249, 1250, 5, 138, 0, 0, 1250, 1251, 5, 160, 0, 0, 1251, 1252, 3, 24, 12, 0, 1252, 1253, 5, 162, 0, 0, 1253, 1254, 3, 24, 12, 0, 1254, 1255, 5, 162, 0, 0, 1255, 1258, 3, 24, 12, 0, 1256, 1257, 5, 162, 0, 0, 1257, 1259, 3, 24, 12, 0, 1258, 1256, 1, 0, 0, 0, 1258, 1259, 1, 0, 0, 0, 1259, 1260, 1, 0, 0, 0, 1260, 1261, 5, 161, 0, 0, 1261, 1342, 1, 0, 0, 0, 1262, 1263, 5, 139, 0, 0, 1263, 1264, 5, 160, 0, 0, 1264, 1265, 3, 24, 12, 0, 1265, 1266, 5, 162, 0, 0, 1266, 1269, 3, 24, 12, 0, 1267, 1268, 5, 162, 0, 0, 1268, 1270, 3, 24, 12, 0, 1269, 1267, 1, 0, 0, 0, 1269, 1270, 1, 0, 0, 0, 1270, 1271, 1, 0, 0, 0, 1271, 1272, 5, 161, 0, 0, 1272, 1342, 1, 0, 0, 0, 1273, 1274, 5, 140, 0, 0, 1274, 1275, 5, 160, 0, 0, 1275, 1276, 3, 24, 12, 0, 1276, 1277, 5, 162, 0, 0, 1277, 1280, 3, 24, 12, 0, 1278, 1279, 5, 162, 0, 0, 1279, 1281, 3, 24, 12, 0, 1280, 1278, 1, 0, 0, 0, 1280, 1281, 1, 0, 0, 0, 1281, 1282, 1, 0, 0, 0, 1282, 1283, 5, 161, 0, 0, 1283, 1342, 1, 0, 0, 0, 1284, 1285, 5, 141, 0, 0, 1285, 1286, 5, 160, 0, 0, 1286, 1287, 3, 24, 12, 0, 1287, 1288, 5, 162, 0, 0, 1288, 1291, 3, 24, 12, 0, 1289, 1290, 5, 162, 0, 0, 1290, 1292, 3, 24, 12, 0, 1291, 1289, 1, 0, 0, 0, 1291, 1292, 1, 0, 0, 0, 1292, 1295, 1, 0, 0, 0, 1293, 1294, 5, 162, 0, 0, 1294, 1296, 3, 24, 12, 0, 1295, 1293, 1, 0, 0, 0, 1295, 1296, 1, 0, 0, 0, 1296, 1299, 1, 0, 0, 0, 1297, 1298, 5, 162, 0, 0, 1298, 1300, 3, 24, 12, 0, 1299, 1297, 1, 0, 0, 0, 1299, 1300, 1, 0, 0, 0, 1300, 1301, 1, 0, 0, 0, 1301, 1302, 5, 161, 0, 0, 1302, 1342, 1, 0, 0, 0, 1303, 1304, 5, 142, 0, 0, 1304, 1305, 5, 160, 0, 0, 1305, 1306, 3, 24, 12, 0, 1306, 1307, 5, 162, 0, 0, 1307, 1310, 3, 24, 12, 0, 1308, 1309, 5, 162, 0, 0, 1309, 1311, 3, 24, 12, 0, 1310, 1308, 1, 0, 0, 0, 1310, 1311, 1, 0, 0, 0, 1311, 1314, 1, 0, 0, 0, 1312, 1313, 5, 162, 0, 0, 1313, 1315, 3, 24, 12, 0, 1314, 1312, 1, 0, 0, 0, 1314, 1315, 1, 0, 0, 0, 1315, 1318, 1, 0, 0, 0, 1316, 1317, 5, 162, 0, 0, 1317, 1319, 3, 24, 12, 0, 1318, 1316, 1, 0, 0, 0, 1318, 1319, 1, 0, 0, 0, 1319, 1320, 1, 0, 0, 0, 1320, 1321, 5, 161, 0, 0, 1321, 1342, 1, 0, 0, 0, 1322, 1323, 5, 143, 0, 0, 1323, 1324, 5, 160, 0, 0, 1324, 1325, 3, 24, 12, 0, 1325, 1326, 5, 162, 0, 0, 1326, 1329, 3, 24, 12, 0, 1327, 1328, 5, 162, 0, 0, 1328, 1330, 3, 24, 12, 0, 1329, 1327, 1, 0, 0, 0, 1329, 1330, 1, 0, 0, 0, 1330, 1333, 1, 0, 0, 0, 1331, 1332, 5, 162, 0, 0, 1332, 1334, 3, 24, 12, 0, 1333, 1331, 1, 0, 0, 0, 1333, 1334, 1, 0, 0, 0, 1334, 1337, 1, 0, 0, 0, 1335, 1336, 5, 162, 0, 0, 1336, 1338, 3, 24, 12, 0, 1337, 1335, 1, 0, 0, 0, 1337, 1338, 1, 0, 0, 0, 1338, 1339, 1, 0, 0, 0, 1339, 1340, 5, 161, 0, 0, 1340, 1342, 1, 0, 0, 0, 1341, 1120, 1, 0, 0, 0, 1341, 1129, 1, 0, 0, 0, 1341, 1138, 1, 0, 0, 0, 1341, 1149, 1, 0, 0, 0, 1341, 1160, 1, 0, 0, 0, 1341, 1171, 1, 0, 0, 0, 1341, 1184, 1, 0, 0, 0, 1341, 1197, 1, 0, 0, 0, 1341, 1210, 1, 0, 0, 0, 1341, 1223, 1, 0, 0, 0, 1341, 1236, 1, 0, 0, 0, 1341, 1249, 1, 0, 0, 0, 1341, 1262, 1, 0, 0, 0, 1341, 1273, 1, 0, 0, 0, 1341, 1284, 1, 0, 0, 0, 1341, 1303, 1, 0, 0, 0, 1341, 1322, 1, 0, 0, 0, 1342, 61, 1, 0, 0, 0, 72, 65, 67, 72, 79, 85, 96, 103, 115, 129, 138, 158, 171, 178, 207, 209, 221, 223, 238, 240, 252, 254, 262, 269, 281, 288, 316, 324, 330, 337, 549, 603, 662, 776, 822, 824, 867, 869, 871, 896, 993, 997, 1032, 1054, 1066, 1078, 1089, 1100, 1118, 1125, 1134, 1145, 1156, 1167, 1180, 1193, 1206, 1219, 1232, 1245, 1258, 1269, 1280, 1291, 1295, 1299, 1310, 1314, 1318, 1329, 1333, 1337, 1341] \ No newline at end of file +[4, 1, 176, 1353, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 1, 0, 1, 0, 1, 0, 5, 0, 66, 8, 0, 10, 0, 12, 0, 69, 9, 0, 1, 0, 1, 0, 3, 0, 73, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 80, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 86, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 95, 8, 2, 10, 2, 12, 2, 98, 9, 2, 1, 2, 1, 2, 5, 2, 102, 8, 2, 10, 2, 12, 2, 105, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 114, 8, 3, 10, 3, 12, 3, 117, 9, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 130, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 139, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 5, 8, 157, 8, 8, 10, 8, 12, 8, 160, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 172, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 179, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 208, 8, 14, 10, 14, 12, 14, 211, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 222, 8, 15, 10, 15, 12, 15, 225, 9, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 239, 8, 16, 10, 16, 12, 16, 242, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 253, 8, 17, 10, 17, 12, 17, 256, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 263, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 270, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 280, 8, 20, 10, 20, 12, 20, 283, 9, 20, 1, 20, 1, 20, 5, 20, 287, 8, 20, 10, 20, 12, 20, 290, 9, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 315, 8, 21, 10, 21, 12, 21, 318, 9, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 325, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 331, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 336, 8, 22, 10, 22, 12, 22, 339, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 550, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 604, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 663, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 777, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 823, 8, 25, 3, 25, 825, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 868, 8, 25, 3, 25, 870, 8, 25, 3, 25, 872, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 897, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 994, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1007, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1042, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1062, 8, 29, 10, 29, 12, 29, 1065, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1074, 8, 29, 10, 29, 12, 29, 1077, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1086, 8, 29, 11, 29, 12, 29, 1087, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1097, 8, 29, 11, 29, 12, 29, 1098, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1108, 8, 29, 11, 29, 12, 29, 1109, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 1128, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1135, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1144, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1155, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1166, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1177, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1190, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1203, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1216, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1229, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1242, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1255, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1268, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1279, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1290, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1301, 8, 30, 1, 30, 1, 30, 3, 30, 1305, 8, 30, 1, 30, 1, 30, 3, 30, 1309, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1320, 8, 30, 1, 30, 1, 30, 3, 30, 1324, 8, 30, 1, 30, 1, 30, 3, 30, 1328, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1339, 8, 30, 1, 30, 1, 30, 3, 30, 1343, 8, 30, 1, 30, 1, 30, 3, 30, 1347, 8, 30, 1, 30, 1, 30, 3, 30, 1351, 8, 30, 1, 30, 0, 5, 28, 30, 32, 34, 40, 31, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 0, 0, 1543, 0, 67, 1, 0, 0, 0, 2, 76, 1, 0, 0, 0, 4, 89, 1, 0, 0, 0, 6, 110, 1, 0, 0, 0, 8, 129, 1, 0, 0, 0, 10, 131, 1, 0, 0, 0, 12, 140, 1, 0, 0, 0, 14, 146, 1, 0, 0, 0, 16, 154, 1, 0, 0, 0, 18, 163, 1, 0, 0, 0, 20, 166, 1, 0, 0, 0, 22, 169, 1, 0, 0, 0, 24, 178, 1, 0, 0, 0, 26, 180, 1, 0, 0, 0, 28, 186, 1, 0, 0, 0, 30, 212, 1, 0, 0, 0, 32, 226, 1, 0, 0, 0, 34, 243, 1, 0, 0, 0, 36, 262, 1, 0, 0, 0, 38, 269, 1, 0, 0, 0, 40, 271, 1, 0, 0, 0, 42, 330, 1, 0, 0, 0, 44, 332, 1, 0, 0, 0, 46, 340, 1, 0, 0, 0, 48, 662, 1, 0, 0, 0, 50, 896, 1, 0, 0, 0, 52, 1006, 1, 0, 0, 0, 54, 1041, 1, 0, 0, 0, 56, 1043, 1, 0, 0, 0, 58, 1127, 1, 0, 0, 0, 60, 1350, 1, 0, 0, 0, 62, 66, 3, 2, 1, 0, 63, 66, 3, 4, 2, 0, 64, 66, 3, 8, 4, 0, 65, 62, 1, 0, 0, 0, 65, 63, 1, 0, 0, 0, 65, 64, 1, 0, 0, 0, 66, 69, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 70, 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 72, 3, 24, 12, 0, 71, 73, 5, 163, 0, 0, 72, 71, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 5, 0, 0, 1, 75, 1, 1, 0, 0, 0, 76, 77, 5, 173, 0, 0, 77, 79, 5, 160, 0, 0, 78, 80, 3, 6, 3, 0, 79, 78, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 1, 0, 0, 0, 81, 82, 5, 161, 0, 0, 82, 85, 5, 164, 0, 0, 83, 86, 3, 16, 8, 0, 84, 86, 3, 24, 12, 0, 85, 83, 1, 0, 0, 0, 85, 84, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 88, 5, 163, 0, 0, 88, 3, 1, 0, 0, 0, 89, 103, 5, 173, 0, 0, 90, 91, 5, 165, 0, 0, 91, 96, 3, 24, 12, 0, 92, 93, 5, 162, 0, 0, 93, 95, 3, 24, 12, 0, 94, 92, 1, 0, 0, 0, 95, 98, 1, 0, 0, 0, 96, 94, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 99, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 99, 100, 5, 166, 0, 0, 100, 102, 1, 0, 0, 0, 101, 90, 1, 0, 0, 0, 102, 105, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 106, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 106, 107, 5, 157, 0, 0, 107, 108, 3, 24, 12, 0, 108, 109, 5, 163, 0, 0, 109, 5, 1, 0, 0, 0, 110, 115, 5, 173, 0, 0, 111, 112, 5, 162, 0, 0, 112, 114, 5, 173, 0, 0, 113, 111, 1, 0, 0, 0, 114, 117, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 7, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 118, 130, 3, 10, 5, 0, 119, 130, 3, 12, 6, 0, 120, 130, 3, 16, 8, 0, 121, 130, 3, 18, 9, 0, 122, 130, 3, 20, 10, 0, 123, 130, 3, 22, 11, 0, 124, 130, 3, 4, 2, 0, 125, 130, 3, 14, 7, 0, 126, 127, 3, 24, 12, 0, 127, 128, 5, 163, 0, 0, 128, 130, 1, 0, 0, 0, 129, 118, 1, 0, 0, 0, 129, 119, 1, 0, 0, 0, 129, 120, 1, 0, 0, 0, 129, 121, 1, 0, 0, 0, 129, 122, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 129, 124, 1, 0, 0, 0, 129, 125, 1, 0, 0, 0, 129, 126, 1, 0, 0, 0, 130, 9, 1, 0, 0, 0, 131, 132, 5, 107, 0, 0, 132, 133, 5, 160, 0, 0, 133, 134, 3, 24, 12, 0, 134, 135, 5, 161, 0, 0, 135, 138, 3, 8, 4, 0, 136, 137, 5, 108, 0, 0, 137, 139, 3, 8, 4, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 11, 1, 0, 0, 0, 140, 141, 5, 109, 0, 0, 141, 142, 5, 160, 0, 0, 142, 143, 3, 24, 12, 0, 143, 144, 5, 161, 0, 0, 144, 145, 3, 8, 4, 0, 145, 13, 1, 0, 0, 0, 146, 147, 5, 110, 0, 0, 147, 148, 5, 160, 0, 0, 148, 149, 5, 173, 0, 0, 149, 150, 5, 111, 0, 0, 150, 151, 3, 24, 12, 0, 151, 152, 5, 161, 0, 0, 152, 153, 3, 8, 4, 0, 153, 15, 1, 0, 0, 0, 154, 158, 5, 169, 0, 0, 155, 157, 3, 8, 4, 0, 156, 155, 1, 0, 0, 0, 157, 160, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 161, 162, 5, 170, 0, 0, 162, 17, 1, 0, 0, 0, 163, 164, 5, 112, 0, 0, 164, 165, 5, 163, 0, 0, 165, 19, 1, 0, 0, 0, 166, 167, 5, 113, 0, 0, 167, 168, 5, 163, 0, 0, 168, 21, 1, 0, 0, 0, 169, 171, 5, 114, 0, 0, 170, 172, 3, 24, 12, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 174, 5, 163, 0, 0, 174, 23, 1, 0, 0, 0, 175, 179, 3, 26, 13, 0, 176, 179, 3, 42, 21, 0, 177, 179, 3, 28, 14, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 25, 1, 0, 0, 0, 180, 181, 3, 28, 14, 0, 181, 182, 5, 167, 0, 0, 182, 183, 3, 24, 12, 0, 183, 184, 5, 168, 0, 0, 184, 185, 3, 24, 12, 0, 185, 27, 1, 0, 0, 0, 186, 187, 6, 14, -1, 0, 187, 188, 3, 30, 15, 0, 188, 209, 1, 0, 0, 0, 189, 190, 10, 7, 0, 0, 190, 191, 5, 153, 0, 0, 191, 208, 3, 30, 15, 0, 192, 193, 10, 6, 0, 0, 193, 194, 5, 152, 0, 0, 194, 208, 3, 30, 15, 0, 195, 196, 10, 5, 0, 0, 196, 197, 5, 155, 0, 0, 197, 208, 3, 30, 15, 0, 198, 199, 10, 4, 0, 0, 199, 200, 5, 154, 0, 0, 200, 208, 3, 30, 15, 0, 201, 202, 10, 3, 0, 0, 202, 203, 5, 156, 0, 0, 203, 208, 3, 30, 15, 0, 204, 205, 10, 2, 0, 0, 205, 206, 5, 158, 0, 0, 206, 208, 3, 30, 15, 0, 207, 189, 1, 0, 0, 0, 207, 192, 1, 0, 0, 0, 207, 195, 1, 0, 0, 0, 207, 198, 1, 0, 0, 0, 207, 201, 1, 0, 0, 0, 207, 204, 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 29, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 213, 6, 15, -1, 0, 213, 214, 3, 32, 16, 0, 214, 223, 1, 0, 0, 0, 215, 216, 10, 3, 0, 0, 216, 217, 5, 144, 0, 0, 217, 222, 3, 32, 16, 0, 218, 219, 10, 2, 0, 0, 219, 220, 5, 145, 0, 0, 220, 222, 3, 32, 16, 0, 221, 215, 1, 0, 0, 0, 221, 218, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 31, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 6, 16, -1, 0, 227, 228, 3, 34, 17, 0, 228, 240, 1, 0, 0, 0, 229, 230, 10, 4, 0, 0, 230, 231, 5, 146, 0, 0, 231, 239, 3, 34, 17, 0, 232, 233, 10, 3, 0, 0, 233, 234, 5, 147, 0, 0, 234, 239, 3, 34, 17, 0, 235, 236, 10, 2, 0, 0, 236, 237, 5, 148, 0, 0, 237, 239, 3, 34, 17, 0, 238, 229, 1, 0, 0, 0, 238, 232, 1, 0, 0, 0, 238, 235, 1, 0, 0, 0, 239, 242, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 33, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 243, 244, 6, 17, -1, 0, 244, 245, 3, 36, 18, 0, 245, 254, 1, 0, 0, 0, 246, 247, 10, 3, 0, 0, 247, 248, 5, 150, 0, 0, 248, 253, 3, 36, 18, 0, 249, 250, 10, 2, 0, 0, 250, 251, 5, 151, 0, 0, 251, 253, 3, 36, 18, 0, 252, 246, 1, 0, 0, 0, 252, 249, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 35, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 3, 38, 19, 0, 258, 259, 5, 149, 0, 0, 259, 260, 3, 36, 18, 0, 260, 263, 1, 0, 0, 0, 261, 263, 3, 38, 19, 0, 262, 257, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 37, 1, 0, 0, 0, 264, 265, 5, 144, 0, 0, 265, 270, 3, 38, 19, 0, 266, 267, 5, 145, 0, 0, 267, 270, 3, 38, 19, 0, 268, 270, 3, 40, 20, 0, 269, 264, 1, 0, 0, 0, 269, 266, 1, 0, 0, 0, 269, 268, 1, 0, 0, 0, 270, 39, 1, 0, 0, 0, 271, 272, 6, 20, -1, 0, 272, 273, 3, 42, 21, 0, 273, 288, 1, 0, 0, 0, 274, 275, 10, 2, 0, 0, 275, 276, 5, 165, 0, 0, 276, 281, 3, 24, 12, 0, 277, 278, 5, 162, 0, 0, 278, 280, 3, 24, 12, 0, 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 284, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 5, 166, 0, 0, 285, 287, 1, 0, 0, 0, 286, 274, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 41, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 331, 3, 46, 23, 0, 292, 331, 3, 48, 24, 0, 293, 331, 3, 50, 25, 0, 294, 331, 3, 52, 26, 0, 295, 331, 3, 54, 27, 0, 296, 331, 3, 56, 28, 0, 297, 331, 3, 58, 29, 0, 298, 331, 3, 60, 30, 0, 299, 331, 5, 173, 0, 0, 300, 331, 5, 171, 0, 0, 301, 331, 5, 172, 0, 0, 302, 303, 5, 160, 0, 0, 303, 304, 3, 24, 12, 0, 304, 305, 5, 161, 0, 0, 305, 331, 1, 0, 0, 0, 306, 307, 5, 159, 0, 0, 307, 308, 3, 24, 12, 0, 308, 309, 5, 159, 0, 0, 309, 331, 1, 0, 0, 0, 310, 311, 5, 165, 0, 0, 311, 316, 3, 24, 12, 0, 312, 313, 5, 162, 0, 0, 313, 315, 3, 24, 12, 0, 314, 312, 1, 0, 0, 0, 315, 318, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 319, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 319, 320, 5, 166, 0, 0, 320, 331, 1, 0, 0, 0, 321, 322, 5, 173, 0, 0, 322, 324, 5, 160, 0, 0, 323, 325, 3, 44, 22, 0, 324, 323, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 331, 5, 161, 0, 0, 327, 331, 5, 126, 0, 0, 328, 331, 5, 112, 0, 0, 329, 331, 5, 113, 0, 0, 330, 291, 1, 0, 0, 0, 330, 292, 1, 0, 0, 0, 330, 293, 1, 0, 0, 0, 330, 294, 1, 0, 0, 0, 330, 295, 1, 0, 0, 0, 330, 296, 1, 0, 0, 0, 330, 297, 1, 0, 0, 0, 330, 298, 1, 0, 0, 0, 330, 299, 1, 0, 0, 0, 330, 300, 1, 0, 0, 0, 330, 301, 1, 0, 0, 0, 330, 302, 1, 0, 0, 0, 330, 306, 1, 0, 0, 0, 330, 310, 1, 0, 0, 0, 330, 321, 1, 0, 0, 0, 330, 327, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 330, 329, 1, 0, 0, 0, 331, 43, 1, 0, 0, 0, 332, 337, 3, 24, 12, 0, 333, 334, 5, 162, 0, 0, 334, 336, 3, 24, 12, 0, 335, 333, 1, 0, 0, 0, 336, 339, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 45, 1, 0, 0, 0, 339, 337, 1, 0, 0, 0, 340, 341, 5, 115, 0, 0, 341, 342, 5, 160, 0, 0, 342, 343, 5, 161, 0, 0, 343, 47, 1, 0, 0, 0, 344, 345, 5, 1, 0, 0, 345, 346, 5, 160, 0, 0, 346, 347, 3, 24, 12, 0, 347, 348, 5, 161, 0, 0, 348, 663, 1, 0, 0, 0, 349, 350, 5, 2, 0, 0, 350, 351, 5, 160, 0, 0, 351, 352, 3, 24, 12, 0, 352, 353, 5, 161, 0, 0, 353, 663, 1, 0, 0, 0, 354, 355, 5, 3, 0, 0, 355, 356, 5, 160, 0, 0, 356, 357, 3, 24, 12, 0, 357, 358, 5, 161, 0, 0, 358, 663, 1, 0, 0, 0, 359, 360, 5, 4, 0, 0, 360, 361, 5, 160, 0, 0, 361, 362, 3, 24, 12, 0, 362, 363, 5, 161, 0, 0, 363, 663, 1, 0, 0, 0, 364, 365, 5, 5, 0, 0, 365, 366, 5, 160, 0, 0, 366, 367, 3, 24, 12, 0, 367, 368, 5, 161, 0, 0, 368, 663, 1, 0, 0, 0, 369, 370, 5, 6, 0, 0, 370, 371, 5, 160, 0, 0, 371, 372, 3, 24, 12, 0, 372, 373, 5, 161, 0, 0, 373, 663, 1, 0, 0, 0, 374, 375, 5, 8, 0, 0, 375, 376, 5, 160, 0, 0, 376, 377, 3, 24, 12, 0, 377, 378, 5, 161, 0, 0, 378, 663, 1, 0, 0, 0, 379, 380, 5, 9, 0, 0, 380, 381, 5, 160, 0, 0, 381, 382, 3, 24, 12, 0, 382, 383, 5, 161, 0, 0, 383, 663, 1, 0, 0, 0, 384, 385, 5, 10, 0, 0, 385, 386, 5, 160, 0, 0, 386, 387, 3, 24, 12, 0, 387, 388, 5, 161, 0, 0, 388, 663, 1, 0, 0, 0, 389, 390, 5, 11, 0, 0, 390, 391, 5, 160, 0, 0, 391, 392, 3, 24, 12, 0, 392, 393, 5, 161, 0, 0, 393, 663, 1, 0, 0, 0, 394, 395, 5, 12, 0, 0, 395, 396, 5, 160, 0, 0, 396, 397, 3, 24, 12, 0, 397, 398, 5, 161, 0, 0, 398, 663, 1, 0, 0, 0, 399, 400, 5, 13, 0, 0, 400, 401, 5, 160, 0, 0, 401, 402, 3, 24, 12, 0, 402, 403, 5, 161, 0, 0, 403, 663, 1, 0, 0, 0, 404, 405, 5, 14, 0, 0, 405, 406, 5, 160, 0, 0, 406, 407, 3, 24, 12, 0, 407, 408, 5, 161, 0, 0, 408, 663, 1, 0, 0, 0, 409, 410, 5, 15, 0, 0, 410, 411, 5, 160, 0, 0, 411, 412, 3, 24, 12, 0, 412, 413, 5, 161, 0, 0, 413, 663, 1, 0, 0, 0, 414, 415, 5, 16, 0, 0, 415, 416, 5, 160, 0, 0, 416, 417, 3, 24, 12, 0, 417, 418, 5, 161, 0, 0, 418, 663, 1, 0, 0, 0, 419, 420, 5, 17, 0, 0, 420, 421, 5, 160, 0, 0, 421, 422, 3, 24, 12, 0, 422, 423, 5, 161, 0, 0, 423, 663, 1, 0, 0, 0, 424, 425, 5, 18, 0, 0, 425, 426, 5, 160, 0, 0, 426, 427, 3, 24, 12, 0, 427, 428, 5, 161, 0, 0, 428, 663, 1, 0, 0, 0, 429, 430, 5, 23, 0, 0, 430, 431, 5, 160, 0, 0, 431, 432, 3, 24, 12, 0, 432, 433, 5, 161, 0, 0, 433, 663, 1, 0, 0, 0, 434, 435, 5, 24, 0, 0, 435, 436, 5, 160, 0, 0, 436, 437, 3, 24, 12, 0, 437, 438, 5, 161, 0, 0, 438, 663, 1, 0, 0, 0, 439, 440, 5, 25, 0, 0, 440, 441, 5, 160, 0, 0, 441, 442, 3, 24, 12, 0, 442, 443, 5, 161, 0, 0, 443, 663, 1, 0, 0, 0, 444, 445, 5, 26, 0, 0, 445, 446, 5, 160, 0, 0, 446, 447, 3, 24, 12, 0, 447, 448, 5, 161, 0, 0, 448, 663, 1, 0, 0, 0, 449, 450, 5, 27, 0, 0, 450, 451, 5, 160, 0, 0, 451, 452, 3, 24, 12, 0, 452, 453, 5, 161, 0, 0, 453, 663, 1, 0, 0, 0, 454, 455, 5, 28, 0, 0, 455, 456, 5, 160, 0, 0, 456, 457, 3, 24, 12, 0, 457, 458, 5, 161, 0, 0, 458, 663, 1, 0, 0, 0, 459, 460, 5, 30, 0, 0, 460, 461, 5, 160, 0, 0, 461, 462, 3, 24, 12, 0, 462, 463, 5, 161, 0, 0, 463, 663, 1, 0, 0, 0, 464, 465, 5, 34, 0, 0, 465, 466, 5, 160, 0, 0, 466, 467, 3, 24, 12, 0, 467, 468, 5, 161, 0, 0, 468, 663, 1, 0, 0, 0, 469, 470, 5, 35, 0, 0, 470, 471, 5, 160, 0, 0, 471, 472, 3, 24, 12, 0, 472, 473, 5, 161, 0, 0, 473, 663, 1, 0, 0, 0, 474, 475, 5, 41, 0, 0, 475, 476, 5, 160, 0, 0, 476, 477, 3, 24, 12, 0, 477, 478, 5, 161, 0, 0, 478, 663, 1, 0, 0, 0, 479, 480, 5, 42, 0, 0, 480, 481, 5, 160, 0, 0, 481, 482, 3, 24, 12, 0, 482, 483, 5, 161, 0, 0, 483, 663, 1, 0, 0, 0, 484, 485, 5, 43, 0, 0, 485, 486, 5, 160, 0, 0, 486, 487, 3, 24, 12, 0, 487, 488, 5, 161, 0, 0, 488, 663, 1, 0, 0, 0, 489, 490, 5, 44, 0, 0, 490, 491, 5, 160, 0, 0, 491, 492, 3, 24, 12, 0, 492, 493, 5, 161, 0, 0, 493, 663, 1, 0, 0, 0, 494, 495, 5, 45, 0, 0, 495, 496, 5, 160, 0, 0, 496, 497, 3, 24, 12, 0, 497, 498, 5, 161, 0, 0, 498, 663, 1, 0, 0, 0, 499, 500, 5, 36, 0, 0, 500, 501, 5, 160, 0, 0, 501, 502, 3, 24, 12, 0, 502, 503, 5, 161, 0, 0, 503, 663, 1, 0, 0, 0, 504, 505, 5, 55, 0, 0, 505, 506, 5, 160, 0, 0, 506, 507, 3, 24, 12, 0, 507, 508, 5, 161, 0, 0, 508, 663, 1, 0, 0, 0, 509, 510, 5, 56, 0, 0, 510, 511, 5, 160, 0, 0, 511, 512, 3, 24, 12, 0, 512, 513, 5, 161, 0, 0, 513, 663, 1, 0, 0, 0, 514, 515, 5, 57, 0, 0, 515, 516, 5, 160, 0, 0, 516, 517, 3, 24, 12, 0, 517, 518, 5, 161, 0, 0, 518, 663, 1, 0, 0, 0, 519, 520, 5, 58, 0, 0, 520, 521, 5, 160, 0, 0, 521, 522, 3, 24, 12, 0, 522, 523, 5, 161, 0, 0, 523, 663, 1, 0, 0, 0, 524, 525, 5, 59, 0, 0, 525, 526, 5, 160, 0, 0, 526, 527, 3, 24, 12, 0, 527, 528, 5, 161, 0, 0, 528, 663, 1, 0, 0, 0, 529, 530, 5, 116, 0, 0, 530, 531, 5, 160, 0, 0, 531, 532, 3, 24, 12, 0, 532, 533, 5, 161, 0, 0, 533, 663, 1, 0, 0, 0, 534, 535, 5, 65, 0, 0, 535, 536, 5, 160, 0, 0, 536, 537, 3, 24, 12, 0, 537, 538, 5, 161, 0, 0, 538, 663, 1, 0, 0, 0, 539, 540, 5, 66, 0, 0, 540, 541, 5, 160, 0, 0, 541, 542, 3, 24, 12, 0, 542, 543, 5, 161, 0, 0, 543, 663, 1, 0, 0, 0, 544, 545, 5, 67, 0, 0, 545, 546, 5, 160, 0, 0, 546, 549, 3, 24, 12, 0, 547, 548, 5, 162, 0, 0, 548, 550, 3, 24, 12, 0, 549, 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 5, 161, 0, 0, 552, 663, 1, 0, 0, 0, 553, 554, 5, 69, 0, 0, 554, 555, 5, 160, 0, 0, 555, 556, 3, 24, 12, 0, 556, 557, 5, 161, 0, 0, 557, 663, 1, 0, 0, 0, 558, 559, 5, 70, 0, 0, 559, 560, 5, 160, 0, 0, 560, 561, 3, 24, 12, 0, 561, 562, 5, 161, 0, 0, 562, 663, 1, 0, 0, 0, 563, 564, 5, 71, 0, 0, 564, 565, 5, 160, 0, 0, 565, 566, 3, 24, 12, 0, 566, 567, 5, 161, 0, 0, 567, 663, 1, 0, 0, 0, 568, 569, 5, 82, 0, 0, 569, 570, 5, 160, 0, 0, 570, 571, 3, 24, 12, 0, 571, 572, 5, 161, 0, 0, 572, 663, 1, 0, 0, 0, 573, 574, 5, 72, 0, 0, 574, 575, 5, 160, 0, 0, 575, 576, 3, 24, 12, 0, 576, 577, 5, 161, 0, 0, 577, 663, 1, 0, 0, 0, 578, 579, 5, 103, 0, 0, 579, 580, 5, 160, 0, 0, 580, 581, 3, 24, 12, 0, 581, 582, 5, 161, 0, 0, 582, 663, 1, 0, 0, 0, 583, 584, 5, 104, 0, 0, 584, 585, 5, 160, 0, 0, 585, 586, 3, 24, 12, 0, 586, 587, 5, 161, 0, 0, 587, 663, 1, 0, 0, 0, 588, 589, 5, 105, 0, 0, 589, 590, 5, 160, 0, 0, 590, 591, 3, 24, 12, 0, 591, 592, 5, 161, 0, 0, 592, 663, 1, 0, 0, 0, 593, 594, 5, 106, 0, 0, 594, 595, 5, 160, 0, 0, 595, 596, 3, 24, 12, 0, 596, 597, 5, 161, 0, 0, 597, 663, 1, 0, 0, 0, 598, 599, 5, 117, 0, 0, 599, 600, 5, 160, 0, 0, 600, 603, 3, 24, 12, 0, 601, 602, 5, 162, 0, 0, 602, 604, 3, 24, 12, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 606, 5, 161, 0, 0, 606, 663, 1, 0, 0, 0, 607, 608, 5, 118, 0, 0, 608, 609, 5, 160, 0, 0, 609, 610, 3, 24, 12, 0, 610, 611, 5, 161, 0, 0, 611, 663, 1, 0, 0, 0, 612, 613, 5, 119, 0, 0, 613, 614, 5, 160, 0, 0, 614, 615, 3, 24, 12, 0, 615, 616, 5, 161, 0, 0, 616, 663, 1, 0, 0, 0, 617, 618, 5, 120, 0, 0, 618, 619, 5, 160, 0, 0, 619, 620, 3, 24, 12, 0, 620, 621, 5, 161, 0, 0, 621, 663, 1, 0, 0, 0, 622, 623, 5, 121, 0, 0, 623, 624, 5, 160, 0, 0, 624, 625, 3, 24, 12, 0, 625, 626, 5, 161, 0, 0, 626, 663, 1, 0, 0, 0, 627, 628, 5, 122, 0, 0, 628, 629, 5, 160, 0, 0, 629, 630, 3, 24, 12, 0, 630, 631, 5, 161, 0, 0, 631, 663, 1, 0, 0, 0, 632, 633, 5, 83, 0, 0, 633, 634, 5, 160, 0, 0, 634, 635, 3, 24, 12, 0, 635, 636, 5, 161, 0, 0, 636, 663, 1, 0, 0, 0, 637, 638, 5, 88, 0, 0, 638, 639, 5, 160, 0, 0, 639, 640, 3, 24, 12, 0, 640, 641, 5, 161, 0, 0, 641, 663, 1, 0, 0, 0, 642, 643, 5, 89, 0, 0, 643, 644, 5, 160, 0, 0, 644, 645, 3, 24, 12, 0, 645, 646, 5, 161, 0, 0, 646, 663, 1, 0, 0, 0, 647, 648, 5, 95, 0, 0, 648, 649, 5, 160, 0, 0, 649, 650, 3, 24, 12, 0, 650, 651, 5, 161, 0, 0, 651, 663, 1, 0, 0, 0, 652, 653, 5, 96, 0, 0, 653, 654, 5, 160, 0, 0, 654, 655, 3, 24, 12, 0, 655, 656, 5, 161, 0, 0, 656, 663, 1, 0, 0, 0, 657, 658, 5, 97, 0, 0, 658, 659, 5, 160, 0, 0, 659, 660, 3, 24, 12, 0, 660, 661, 5, 161, 0, 0, 661, 663, 1, 0, 0, 0, 662, 344, 1, 0, 0, 0, 662, 349, 1, 0, 0, 0, 662, 354, 1, 0, 0, 0, 662, 359, 1, 0, 0, 0, 662, 364, 1, 0, 0, 0, 662, 369, 1, 0, 0, 0, 662, 374, 1, 0, 0, 0, 662, 379, 1, 0, 0, 0, 662, 384, 1, 0, 0, 0, 662, 389, 1, 0, 0, 0, 662, 394, 1, 0, 0, 0, 662, 399, 1, 0, 0, 0, 662, 404, 1, 0, 0, 0, 662, 409, 1, 0, 0, 0, 662, 414, 1, 0, 0, 0, 662, 419, 1, 0, 0, 0, 662, 424, 1, 0, 0, 0, 662, 429, 1, 0, 0, 0, 662, 434, 1, 0, 0, 0, 662, 439, 1, 0, 0, 0, 662, 444, 1, 0, 0, 0, 662, 449, 1, 0, 0, 0, 662, 454, 1, 0, 0, 0, 662, 459, 1, 0, 0, 0, 662, 464, 1, 0, 0, 0, 662, 469, 1, 0, 0, 0, 662, 474, 1, 0, 0, 0, 662, 479, 1, 0, 0, 0, 662, 484, 1, 0, 0, 0, 662, 489, 1, 0, 0, 0, 662, 494, 1, 0, 0, 0, 662, 499, 1, 0, 0, 0, 662, 504, 1, 0, 0, 0, 662, 509, 1, 0, 0, 0, 662, 514, 1, 0, 0, 0, 662, 519, 1, 0, 0, 0, 662, 524, 1, 0, 0, 0, 662, 529, 1, 0, 0, 0, 662, 534, 1, 0, 0, 0, 662, 539, 1, 0, 0, 0, 662, 544, 1, 0, 0, 0, 662, 553, 1, 0, 0, 0, 662, 558, 1, 0, 0, 0, 662, 563, 1, 0, 0, 0, 662, 568, 1, 0, 0, 0, 662, 573, 1, 0, 0, 0, 662, 578, 1, 0, 0, 0, 662, 583, 1, 0, 0, 0, 662, 588, 1, 0, 0, 0, 662, 593, 1, 0, 0, 0, 662, 598, 1, 0, 0, 0, 662, 607, 1, 0, 0, 0, 662, 612, 1, 0, 0, 0, 662, 617, 1, 0, 0, 0, 662, 622, 1, 0, 0, 0, 662, 627, 1, 0, 0, 0, 662, 632, 1, 0, 0, 0, 662, 637, 1, 0, 0, 0, 662, 642, 1, 0, 0, 0, 662, 647, 1, 0, 0, 0, 662, 652, 1, 0, 0, 0, 662, 657, 1, 0, 0, 0, 663, 49, 1, 0, 0, 0, 664, 665, 5, 29, 0, 0, 665, 666, 5, 160, 0, 0, 666, 667, 3, 24, 12, 0, 667, 668, 5, 162, 0, 0, 668, 669, 3, 24, 12, 0, 669, 670, 5, 161, 0, 0, 670, 897, 1, 0, 0, 0, 671, 672, 5, 7, 0, 0, 672, 673, 5, 160, 0, 0, 673, 674, 3, 24, 12, 0, 674, 675, 5, 162, 0, 0, 675, 676, 3, 24, 12, 0, 676, 677, 5, 161, 0, 0, 677, 897, 1, 0, 0, 0, 678, 679, 5, 21, 0, 0, 679, 680, 5, 160, 0, 0, 680, 681, 3, 24, 12, 0, 681, 682, 5, 162, 0, 0, 682, 683, 3, 24, 12, 0, 683, 684, 5, 161, 0, 0, 684, 897, 1, 0, 0, 0, 685, 686, 5, 22, 0, 0, 686, 687, 5, 160, 0, 0, 687, 688, 3, 24, 12, 0, 688, 689, 5, 162, 0, 0, 689, 690, 3, 24, 12, 0, 690, 691, 5, 161, 0, 0, 691, 897, 1, 0, 0, 0, 692, 693, 5, 39, 0, 0, 693, 694, 5, 160, 0, 0, 694, 695, 3, 24, 12, 0, 695, 696, 5, 162, 0, 0, 696, 697, 3, 24, 12, 0, 697, 698, 5, 161, 0, 0, 698, 897, 1, 0, 0, 0, 699, 700, 5, 53, 0, 0, 700, 701, 5, 160, 0, 0, 701, 702, 3, 24, 12, 0, 702, 703, 5, 162, 0, 0, 703, 704, 3, 24, 12, 0, 704, 705, 5, 161, 0, 0, 705, 897, 1, 0, 0, 0, 706, 707, 5, 54, 0, 0, 707, 708, 5, 160, 0, 0, 708, 709, 3, 24, 12, 0, 709, 710, 5, 162, 0, 0, 710, 711, 3, 24, 12, 0, 711, 712, 5, 161, 0, 0, 712, 897, 1, 0, 0, 0, 713, 714, 5, 60, 0, 0, 714, 715, 5, 160, 0, 0, 715, 716, 3, 24, 12, 0, 716, 717, 5, 162, 0, 0, 717, 718, 3, 24, 12, 0, 718, 719, 5, 161, 0, 0, 719, 897, 1, 0, 0, 0, 720, 721, 5, 61, 0, 0, 721, 722, 5, 160, 0, 0, 722, 723, 3, 24, 12, 0, 723, 724, 5, 162, 0, 0, 724, 725, 3, 24, 12, 0, 725, 726, 5, 161, 0, 0, 726, 897, 1, 0, 0, 0, 727, 728, 5, 62, 0, 0, 728, 729, 5, 160, 0, 0, 729, 730, 3, 24, 12, 0, 730, 731, 5, 162, 0, 0, 731, 732, 3, 24, 12, 0, 732, 733, 5, 161, 0, 0, 733, 897, 1, 0, 0, 0, 734, 735, 5, 63, 0, 0, 735, 736, 5, 160, 0, 0, 736, 737, 3, 24, 12, 0, 737, 738, 5, 162, 0, 0, 738, 739, 3, 24, 12, 0, 739, 740, 5, 161, 0, 0, 740, 897, 1, 0, 0, 0, 741, 742, 5, 81, 0, 0, 742, 743, 5, 160, 0, 0, 743, 744, 3, 24, 12, 0, 744, 745, 5, 162, 0, 0, 745, 746, 3, 24, 12, 0, 746, 747, 5, 161, 0, 0, 747, 897, 1, 0, 0, 0, 748, 749, 5, 123, 0, 0, 749, 750, 5, 160, 0, 0, 750, 751, 3, 24, 12, 0, 751, 752, 5, 162, 0, 0, 752, 753, 3, 24, 12, 0, 753, 754, 5, 161, 0, 0, 754, 897, 1, 0, 0, 0, 755, 756, 5, 124, 0, 0, 756, 757, 5, 160, 0, 0, 757, 758, 3, 24, 12, 0, 758, 759, 5, 162, 0, 0, 759, 760, 3, 24, 12, 0, 760, 761, 5, 161, 0, 0, 761, 897, 1, 0, 0, 0, 762, 763, 5, 84, 0, 0, 763, 764, 5, 160, 0, 0, 764, 765, 3, 24, 12, 0, 765, 766, 5, 162, 0, 0, 766, 767, 3, 24, 12, 0, 767, 768, 5, 161, 0, 0, 768, 897, 1, 0, 0, 0, 769, 770, 5, 68, 0, 0, 770, 771, 5, 160, 0, 0, 771, 772, 3, 24, 12, 0, 772, 773, 5, 162, 0, 0, 773, 776, 3, 24, 12, 0, 774, 775, 5, 162, 0, 0, 775, 777, 3, 24, 12, 0, 776, 774, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 779, 5, 161, 0, 0, 779, 897, 1, 0, 0, 0, 780, 781, 5, 73, 0, 0, 781, 782, 5, 160, 0, 0, 782, 783, 3, 24, 12, 0, 783, 784, 5, 162, 0, 0, 784, 785, 3, 24, 12, 0, 785, 786, 5, 161, 0, 0, 786, 897, 1, 0, 0, 0, 787, 788, 5, 74, 0, 0, 788, 789, 5, 160, 0, 0, 789, 790, 3, 24, 12, 0, 790, 791, 5, 162, 0, 0, 791, 792, 3, 24, 12, 0, 792, 793, 5, 161, 0, 0, 793, 897, 1, 0, 0, 0, 794, 795, 5, 87, 0, 0, 795, 796, 5, 160, 0, 0, 796, 797, 3, 24, 12, 0, 797, 798, 5, 162, 0, 0, 798, 799, 3, 24, 12, 0, 799, 800, 5, 161, 0, 0, 800, 897, 1, 0, 0, 0, 801, 802, 5, 102, 0, 0, 802, 803, 5, 160, 0, 0, 803, 804, 3, 24, 12, 0, 804, 805, 5, 162, 0, 0, 805, 806, 3, 24, 12, 0, 806, 807, 5, 161, 0, 0, 807, 897, 1, 0, 0, 0, 808, 809, 5, 85, 0, 0, 809, 810, 5, 160, 0, 0, 810, 811, 3, 24, 12, 0, 811, 812, 5, 162, 0, 0, 812, 813, 3, 24, 12, 0, 813, 814, 5, 161, 0, 0, 814, 897, 1, 0, 0, 0, 815, 816, 5, 101, 0, 0, 816, 817, 5, 160, 0, 0, 817, 824, 3, 40, 20, 0, 818, 819, 5, 162, 0, 0, 819, 822, 3, 24, 12, 0, 820, 821, 5, 162, 0, 0, 821, 823, 3, 24, 12, 0, 822, 820, 1, 0, 0, 0, 822, 823, 1, 0, 0, 0, 823, 825, 1, 0, 0, 0, 824, 818, 1, 0, 0, 0, 824, 825, 1, 0, 0, 0, 825, 826, 1, 0, 0, 0, 826, 827, 5, 161, 0, 0, 827, 897, 1, 0, 0, 0, 828, 829, 5, 91, 0, 0, 829, 830, 5, 160, 0, 0, 830, 831, 3, 24, 12, 0, 831, 832, 5, 162, 0, 0, 832, 833, 3, 24, 12, 0, 833, 834, 5, 161, 0, 0, 834, 897, 1, 0, 0, 0, 835, 836, 5, 92, 0, 0, 836, 837, 5, 160, 0, 0, 837, 838, 3, 24, 12, 0, 838, 839, 5, 162, 0, 0, 839, 840, 3, 24, 12, 0, 840, 841, 5, 161, 0, 0, 841, 897, 1, 0, 0, 0, 842, 843, 5, 93, 0, 0, 843, 844, 5, 160, 0, 0, 844, 845, 3, 24, 12, 0, 845, 846, 5, 162, 0, 0, 846, 847, 3, 24, 12, 0, 847, 848, 5, 161, 0, 0, 848, 897, 1, 0, 0, 0, 849, 850, 5, 86, 0, 0, 850, 851, 5, 160, 0, 0, 851, 852, 3, 24, 12, 0, 852, 853, 5, 162, 0, 0, 853, 854, 3, 24, 12, 0, 854, 855, 5, 161, 0, 0, 855, 897, 1, 0, 0, 0, 856, 857, 5, 94, 0, 0, 857, 858, 5, 160, 0, 0, 858, 859, 3, 24, 12, 0, 859, 860, 5, 162, 0, 0, 860, 871, 3, 24, 12, 0, 861, 862, 5, 162, 0, 0, 862, 869, 3, 24, 12, 0, 863, 864, 5, 162, 0, 0, 864, 867, 3, 24, 12, 0, 865, 866, 5, 162, 0, 0, 866, 868, 3, 24, 12, 0, 867, 865, 1, 0, 0, 0, 867, 868, 1, 0, 0, 0, 868, 870, 1, 0, 0, 0, 869, 863, 1, 0, 0, 0, 869, 870, 1, 0, 0, 0, 870, 872, 1, 0, 0, 0, 871, 861, 1, 0, 0, 0, 871, 872, 1, 0, 0, 0, 872, 873, 1, 0, 0, 0, 873, 874, 5, 161, 0, 0, 874, 897, 1, 0, 0, 0, 875, 876, 5, 98, 0, 0, 876, 877, 5, 160, 0, 0, 877, 878, 3, 24, 12, 0, 878, 879, 5, 162, 0, 0, 879, 880, 3, 24, 12, 0, 880, 881, 5, 161, 0, 0, 881, 897, 1, 0, 0, 0, 882, 883, 5, 99, 0, 0, 883, 884, 5, 160, 0, 0, 884, 885, 3, 24, 12, 0, 885, 886, 5, 162, 0, 0, 886, 887, 3, 24, 12, 0, 887, 888, 5, 161, 0, 0, 888, 897, 1, 0, 0, 0, 889, 890, 5, 100, 0, 0, 890, 891, 5, 160, 0, 0, 891, 892, 3, 24, 12, 0, 892, 893, 5, 162, 0, 0, 893, 894, 3, 24, 12, 0, 894, 895, 5, 161, 0, 0, 895, 897, 1, 0, 0, 0, 896, 664, 1, 0, 0, 0, 896, 671, 1, 0, 0, 0, 896, 678, 1, 0, 0, 0, 896, 685, 1, 0, 0, 0, 896, 692, 1, 0, 0, 0, 896, 699, 1, 0, 0, 0, 896, 706, 1, 0, 0, 0, 896, 713, 1, 0, 0, 0, 896, 720, 1, 0, 0, 0, 896, 727, 1, 0, 0, 0, 896, 734, 1, 0, 0, 0, 896, 741, 1, 0, 0, 0, 896, 748, 1, 0, 0, 0, 896, 755, 1, 0, 0, 0, 896, 762, 1, 0, 0, 0, 896, 769, 1, 0, 0, 0, 896, 780, 1, 0, 0, 0, 896, 787, 1, 0, 0, 0, 896, 794, 1, 0, 0, 0, 896, 801, 1, 0, 0, 0, 896, 808, 1, 0, 0, 0, 896, 815, 1, 0, 0, 0, 896, 828, 1, 0, 0, 0, 896, 835, 1, 0, 0, 0, 896, 842, 1, 0, 0, 0, 896, 849, 1, 0, 0, 0, 896, 856, 1, 0, 0, 0, 896, 875, 1, 0, 0, 0, 896, 882, 1, 0, 0, 0, 896, 889, 1, 0, 0, 0, 897, 51, 1, 0, 0, 0, 898, 899, 5, 31, 0, 0, 899, 900, 5, 160, 0, 0, 900, 901, 3, 24, 12, 0, 901, 902, 5, 162, 0, 0, 902, 903, 3, 24, 12, 0, 903, 904, 5, 162, 0, 0, 904, 905, 3, 24, 12, 0, 905, 906, 5, 161, 0, 0, 906, 1007, 1, 0, 0, 0, 907, 908, 5, 38, 0, 0, 908, 909, 5, 160, 0, 0, 909, 910, 3, 24, 12, 0, 910, 911, 5, 162, 0, 0, 911, 912, 3, 24, 12, 0, 912, 913, 5, 162, 0, 0, 913, 914, 3, 24, 12, 0, 914, 915, 5, 161, 0, 0, 915, 1007, 1, 0, 0, 0, 916, 917, 5, 40, 0, 0, 917, 918, 5, 160, 0, 0, 918, 919, 3, 24, 12, 0, 919, 920, 5, 162, 0, 0, 920, 921, 3, 24, 12, 0, 921, 922, 5, 162, 0, 0, 922, 923, 3, 24, 12, 0, 923, 924, 5, 161, 0, 0, 924, 1007, 1, 0, 0, 0, 925, 926, 5, 52, 0, 0, 926, 927, 5, 160, 0, 0, 927, 928, 3, 24, 12, 0, 928, 929, 5, 162, 0, 0, 929, 930, 3, 24, 12, 0, 930, 931, 5, 162, 0, 0, 931, 932, 3, 24, 12, 0, 932, 933, 5, 161, 0, 0, 933, 1007, 1, 0, 0, 0, 934, 935, 5, 64, 0, 0, 935, 936, 5, 160, 0, 0, 936, 937, 3, 24, 12, 0, 937, 938, 5, 162, 0, 0, 938, 939, 3, 24, 12, 0, 939, 940, 5, 162, 0, 0, 940, 941, 3, 24, 12, 0, 941, 942, 5, 161, 0, 0, 942, 1007, 1, 0, 0, 0, 943, 944, 5, 75, 0, 0, 944, 945, 5, 160, 0, 0, 945, 946, 3, 24, 12, 0, 946, 947, 5, 162, 0, 0, 947, 948, 3, 24, 12, 0, 948, 949, 5, 162, 0, 0, 949, 950, 3, 24, 12, 0, 950, 951, 5, 161, 0, 0, 951, 1007, 1, 0, 0, 0, 952, 953, 5, 76, 0, 0, 953, 954, 5, 160, 0, 0, 954, 955, 3, 24, 12, 0, 955, 956, 5, 162, 0, 0, 956, 957, 3, 24, 12, 0, 957, 958, 5, 162, 0, 0, 958, 959, 3, 24, 12, 0, 959, 960, 5, 161, 0, 0, 960, 1007, 1, 0, 0, 0, 961, 962, 5, 77, 0, 0, 962, 963, 5, 160, 0, 0, 963, 964, 3, 24, 12, 0, 964, 965, 5, 162, 0, 0, 965, 966, 3, 24, 12, 0, 966, 967, 5, 162, 0, 0, 967, 968, 3, 24, 12, 0, 968, 969, 5, 161, 0, 0, 969, 1007, 1, 0, 0, 0, 970, 971, 5, 78, 0, 0, 971, 972, 5, 160, 0, 0, 972, 973, 3, 24, 12, 0, 973, 974, 5, 162, 0, 0, 974, 975, 3, 24, 12, 0, 975, 976, 5, 162, 0, 0, 976, 977, 3, 24, 12, 0, 977, 978, 5, 161, 0, 0, 978, 1007, 1, 0, 0, 0, 979, 980, 5, 125, 0, 0, 980, 981, 5, 160, 0, 0, 981, 982, 3, 24, 12, 0, 982, 983, 5, 162, 0, 0, 983, 984, 3, 24, 12, 0, 984, 985, 5, 162, 0, 0, 985, 986, 3, 24, 12, 0, 986, 987, 5, 161, 0, 0, 987, 1007, 1, 0, 0, 0, 988, 989, 5, 33, 0, 0, 989, 990, 5, 160, 0, 0, 990, 993, 3, 24, 12, 0, 991, 992, 5, 162, 0, 0, 992, 994, 3, 24, 12, 0, 993, 991, 1, 0, 0, 0, 993, 994, 1, 0, 0, 0, 994, 995, 1, 0, 0, 0, 995, 996, 5, 161, 0, 0, 996, 1007, 1, 0, 0, 0, 997, 998, 5, 90, 0, 0, 998, 999, 5, 160, 0, 0, 999, 1000, 3, 24, 12, 0, 1000, 1001, 5, 162, 0, 0, 1001, 1002, 3, 24, 12, 0, 1002, 1003, 5, 162, 0, 0, 1003, 1004, 3, 24, 12, 0, 1004, 1005, 5, 161, 0, 0, 1005, 1007, 1, 0, 0, 0, 1006, 898, 1, 0, 0, 0, 1006, 907, 1, 0, 0, 0, 1006, 916, 1, 0, 0, 0, 1006, 925, 1, 0, 0, 0, 1006, 934, 1, 0, 0, 0, 1006, 943, 1, 0, 0, 0, 1006, 952, 1, 0, 0, 0, 1006, 961, 1, 0, 0, 0, 1006, 970, 1, 0, 0, 0, 1006, 979, 1, 0, 0, 0, 1006, 988, 1, 0, 0, 0, 1006, 997, 1, 0, 0, 0, 1007, 53, 1, 0, 0, 0, 1008, 1009, 5, 49, 0, 0, 1009, 1010, 5, 160, 0, 0, 1010, 1011, 3, 24, 12, 0, 1011, 1012, 5, 162, 0, 0, 1012, 1013, 3, 24, 12, 0, 1013, 1014, 5, 162, 0, 0, 1014, 1015, 3, 24, 12, 0, 1015, 1016, 5, 162, 0, 0, 1016, 1017, 3, 24, 12, 0, 1017, 1018, 5, 161, 0, 0, 1018, 1042, 1, 0, 0, 0, 1019, 1020, 5, 37, 0, 0, 1020, 1021, 5, 160, 0, 0, 1021, 1022, 3, 24, 12, 0, 1022, 1023, 5, 162, 0, 0, 1023, 1024, 3, 24, 12, 0, 1024, 1025, 5, 162, 0, 0, 1025, 1026, 3, 24, 12, 0, 1026, 1027, 5, 162, 0, 0, 1027, 1028, 3, 24, 12, 0, 1028, 1029, 5, 161, 0, 0, 1029, 1042, 1, 0, 0, 0, 1030, 1031, 5, 79, 0, 0, 1031, 1032, 5, 160, 0, 0, 1032, 1033, 3, 24, 12, 0, 1033, 1034, 5, 162, 0, 0, 1034, 1035, 3, 24, 12, 0, 1035, 1036, 5, 162, 0, 0, 1036, 1037, 3, 24, 12, 0, 1037, 1038, 5, 162, 0, 0, 1038, 1039, 3, 24, 12, 0, 1039, 1040, 5, 161, 0, 0, 1040, 1042, 1, 0, 0, 0, 1041, 1008, 1, 0, 0, 0, 1041, 1019, 1, 0, 0, 0, 1041, 1030, 1, 0, 0, 0, 1042, 55, 1, 0, 0, 0, 1043, 1044, 5, 80, 0, 0, 1044, 1045, 5, 160, 0, 0, 1045, 1046, 3, 24, 12, 0, 1046, 1047, 5, 162, 0, 0, 1047, 1048, 3, 24, 12, 0, 1048, 1049, 5, 162, 0, 0, 1049, 1050, 3, 24, 12, 0, 1050, 1051, 5, 162, 0, 0, 1051, 1052, 3, 24, 12, 0, 1052, 1053, 5, 162, 0, 0, 1053, 1054, 3, 24, 12, 0, 1054, 1055, 5, 161, 0, 0, 1055, 57, 1, 0, 0, 0, 1056, 1057, 5, 19, 0, 0, 1057, 1058, 5, 160, 0, 0, 1058, 1063, 3, 24, 12, 0, 1059, 1060, 5, 162, 0, 0, 1060, 1062, 3, 24, 12, 0, 1061, 1059, 1, 0, 0, 0, 1062, 1065, 1, 0, 0, 0, 1063, 1061, 1, 0, 0, 0, 1063, 1064, 1, 0, 0, 0, 1064, 1066, 1, 0, 0, 0, 1065, 1063, 1, 0, 0, 0, 1066, 1067, 5, 161, 0, 0, 1067, 1128, 1, 0, 0, 0, 1068, 1069, 5, 20, 0, 0, 1069, 1070, 5, 160, 0, 0, 1070, 1075, 3, 24, 12, 0, 1071, 1072, 5, 162, 0, 0, 1072, 1074, 3, 24, 12, 0, 1073, 1071, 1, 0, 0, 0, 1074, 1077, 1, 0, 0, 0, 1075, 1073, 1, 0, 0, 0, 1075, 1076, 1, 0, 0, 0, 1076, 1078, 1, 0, 0, 0, 1077, 1075, 1, 0, 0, 0, 1078, 1079, 5, 161, 0, 0, 1079, 1128, 1, 0, 0, 0, 1080, 1081, 5, 46, 0, 0, 1081, 1082, 5, 160, 0, 0, 1082, 1085, 3, 24, 12, 0, 1083, 1084, 5, 162, 0, 0, 1084, 1086, 3, 24, 12, 0, 1085, 1083, 1, 0, 0, 0, 1086, 1087, 1, 0, 0, 0, 1087, 1085, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1089, 1, 0, 0, 0, 1089, 1090, 5, 161, 0, 0, 1090, 1128, 1, 0, 0, 0, 1091, 1092, 5, 47, 0, 0, 1092, 1093, 5, 160, 0, 0, 1093, 1096, 3, 24, 12, 0, 1094, 1095, 5, 162, 0, 0, 1095, 1097, 3, 24, 12, 0, 1096, 1094, 1, 0, 0, 0, 1097, 1098, 1, 0, 0, 0, 1098, 1096, 1, 0, 0, 0, 1098, 1099, 1, 0, 0, 0, 1099, 1100, 1, 0, 0, 0, 1100, 1101, 5, 161, 0, 0, 1101, 1128, 1, 0, 0, 0, 1102, 1103, 5, 48, 0, 0, 1103, 1104, 5, 160, 0, 0, 1104, 1107, 3, 24, 12, 0, 1105, 1106, 5, 162, 0, 0, 1106, 1108, 3, 24, 12, 0, 1107, 1105, 1, 0, 0, 0, 1108, 1109, 1, 0, 0, 0, 1109, 1107, 1, 0, 0, 0, 1109, 1110, 1, 0, 0, 0, 1110, 1111, 1, 0, 0, 0, 1111, 1112, 5, 161, 0, 0, 1112, 1128, 1, 0, 0, 0, 1113, 1114, 5, 50, 0, 0, 1114, 1115, 5, 160, 0, 0, 1115, 1116, 3, 24, 12, 0, 1116, 1117, 5, 162, 0, 0, 1117, 1118, 3, 24, 12, 0, 1118, 1119, 5, 161, 0, 0, 1119, 1128, 1, 0, 0, 0, 1120, 1121, 5, 51, 0, 0, 1121, 1122, 5, 160, 0, 0, 1122, 1123, 3, 24, 12, 0, 1123, 1124, 5, 162, 0, 0, 1124, 1125, 3, 24, 12, 0, 1125, 1126, 5, 161, 0, 0, 1126, 1128, 1, 0, 0, 0, 1127, 1056, 1, 0, 0, 0, 1127, 1068, 1, 0, 0, 0, 1127, 1080, 1, 0, 0, 0, 1127, 1091, 1, 0, 0, 0, 1127, 1102, 1, 0, 0, 0, 1127, 1113, 1, 0, 0, 0, 1127, 1120, 1, 0, 0, 0, 1128, 59, 1, 0, 0, 0, 1129, 1130, 5, 127, 0, 0, 1130, 1131, 5, 160, 0, 0, 1131, 1134, 3, 24, 12, 0, 1132, 1133, 5, 162, 0, 0, 1133, 1135, 3, 24, 12, 0, 1134, 1132, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1136, 1, 0, 0, 0, 1136, 1137, 5, 161, 0, 0, 1137, 1351, 1, 0, 0, 0, 1138, 1139, 5, 128, 0, 0, 1139, 1140, 5, 160, 0, 0, 1140, 1143, 3, 24, 12, 0, 1141, 1142, 5, 162, 0, 0, 1142, 1144, 3, 24, 12, 0, 1143, 1141, 1, 0, 0, 0, 1143, 1144, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 1146, 5, 161, 0, 0, 1146, 1351, 1, 0, 0, 0, 1147, 1148, 5, 130, 0, 0, 1148, 1149, 5, 160, 0, 0, 1149, 1150, 3, 24, 12, 0, 1150, 1151, 5, 162, 0, 0, 1151, 1154, 3, 24, 12, 0, 1152, 1153, 5, 162, 0, 0, 1153, 1155, 3, 24, 12, 0, 1154, 1152, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1157, 5, 161, 0, 0, 1157, 1351, 1, 0, 0, 0, 1158, 1159, 5, 132, 0, 0, 1159, 1160, 5, 160, 0, 0, 1160, 1161, 3, 24, 12, 0, 1161, 1162, 5, 162, 0, 0, 1162, 1165, 3, 24, 12, 0, 1163, 1164, 5, 162, 0, 0, 1164, 1166, 3, 24, 12, 0, 1165, 1163, 1, 0, 0, 0, 1165, 1166, 1, 0, 0, 0, 1166, 1167, 1, 0, 0, 0, 1167, 1168, 5, 161, 0, 0, 1168, 1351, 1, 0, 0, 0, 1169, 1170, 5, 133, 0, 0, 1170, 1171, 5, 160, 0, 0, 1171, 1172, 3, 24, 12, 0, 1172, 1173, 5, 162, 0, 0, 1173, 1176, 3, 24, 12, 0, 1174, 1175, 5, 162, 0, 0, 1175, 1177, 3, 24, 12, 0, 1176, 1174, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1178, 1, 0, 0, 0, 1178, 1179, 5, 161, 0, 0, 1179, 1351, 1, 0, 0, 0, 1180, 1181, 5, 129, 0, 0, 1181, 1182, 5, 160, 0, 0, 1182, 1183, 3, 24, 12, 0, 1183, 1184, 5, 162, 0, 0, 1184, 1185, 3, 24, 12, 0, 1185, 1186, 5, 162, 0, 0, 1186, 1189, 3, 24, 12, 0, 1187, 1188, 5, 162, 0, 0, 1188, 1190, 3, 24, 12, 0, 1189, 1187, 1, 0, 0, 0, 1189, 1190, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 5, 161, 0, 0, 1192, 1351, 1, 0, 0, 0, 1193, 1194, 5, 131, 0, 0, 1194, 1195, 5, 160, 0, 0, 1195, 1196, 3, 24, 12, 0, 1196, 1197, 5, 162, 0, 0, 1197, 1198, 3, 24, 12, 0, 1198, 1199, 5, 162, 0, 0, 1199, 1202, 3, 24, 12, 0, 1200, 1201, 5, 162, 0, 0, 1201, 1203, 3, 24, 12, 0, 1202, 1200, 1, 0, 0, 0, 1202, 1203, 1, 0, 0, 0, 1203, 1204, 1, 0, 0, 0, 1204, 1205, 5, 161, 0, 0, 1205, 1351, 1, 0, 0, 0, 1206, 1207, 5, 134, 0, 0, 1207, 1208, 5, 160, 0, 0, 1208, 1209, 3, 24, 12, 0, 1209, 1210, 5, 162, 0, 0, 1210, 1211, 3, 24, 12, 0, 1211, 1212, 5, 162, 0, 0, 1212, 1215, 3, 24, 12, 0, 1213, 1214, 5, 162, 0, 0, 1214, 1216, 3, 24, 12, 0, 1215, 1213, 1, 0, 0, 0, 1215, 1216, 1, 0, 0, 0, 1216, 1217, 1, 0, 0, 0, 1217, 1218, 5, 161, 0, 0, 1218, 1351, 1, 0, 0, 0, 1219, 1220, 5, 135, 0, 0, 1220, 1221, 5, 160, 0, 0, 1221, 1222, 3, 24, 12, 0, 1222, 1223, 5, 162, 0, 0, 1223, 1224, 3, 24, 12, 0, 1224, 1225, 5, 162, 0, 0, 1225, 1228, 3, 24, 12, 0, 1226, 1227, 5, 162, 0, 0, 1227, 1229, 3, 24, 12, 0, 1228, 1226, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1230, 1, 0, 0, 0, 1230, 1231, 5, 161, 0, 0, 1231, 1351, 1, 0, 0, 0, 1232, 1233, 5, 136, 0, 0, 1233, 1234, 5, 160, 0, 0, 1234, 1235, 3, 24, 12, 0, 1235, 1236, 5, 162, 0, 0, 1236, 1237, 3, 24, 12, 0, 1237, 1238, 5, 162, 0, 0, 1238, 1241, 3, 24, 12, 0, 1239, 1240, 5, 162, 0, 0, 1240, 1242, 3, 24, 12, 0, 1241, 1239, 1, 0, 0, 0, 1241, 1242, 1, 0, 0, 0, 1242, 1243, 1, 0, 0, 0, 1243, 1244, 5, 161, 0, 0, 1244, 1351, 1, 0, 0, 0, 1245, 1246, 5, 137, 0, 0, 1246, 1247, 5, 160, 0, 0, 1247, 1248, 3, 24, 12, 0, 1248, 1249, 5, 162, 0, 0, 1249, 1250, 3, 24, 12, 0, 1250, 1251, 5, 162, 0, 0, 1251, 1254, 3, 24, 12, 0, 1252, 1253, 5, 162, 0, 0, 1253, 1255, 3, 24, 12, 0, 1254, 1252, 1, 0, 0, 0, 1254, 1255, 1, 0, 0, 0, 1255, 1256, 1, 0, 0, 0, 1256, 1257, 5, 161, 0, 0, 1257, 1351, 1, 0, 0, 0, 1258, 1259, 5, 138, 0, 0, 1259, 1260, 5, 160, 0, 0, 1260, 1261, 3, 24, 12, 0, 1261, 1262, 5, 162, 0, 0, 1262, 1263, 3, 24, 12, 0, 1263, 1264, 5, 162, 0, 0, 1264, 1267, 3, 24, 12, 0, 1265, 1266, 5, 162, 0, 0, 1266, 1268, 3, 24, 12, 0, 1267, 1265, 1, 0, 0, 0, 1267, 1268, 1, 0, 0, 0, 1268, 1269, 1, 0, 0, 0, 1269, 1270, 5, 161, 0, 0, 1270, 1351, 1, 0, 0, 0, 1271, 1272, 5, 139, 0, 0, 1272, 1273, 5, 160, 0, 0, 1273, 1274, 3, 24, 12, 0, 1274, 1275, 5, 162, 0, 0, 1275, 1278, 3, 24, 12, 0, 1276, 1277, 5, 162, 0, 0, 1277, 1279, 3, 24, 12, 0, 1278, 1276, 1, 0, 0, 0, 1278, 1279, 1, 0, 0, 0, 1279, 1280, 1, 0, 0, 0, 1280, 1281, 5, 161, 0, 0, 1281, 1351, 1, 0, 0, 0, 1282, 1283, 5, 140, 0, 0, 1283, 1284, 5, 160, 0, 0, 1284, 1285, 3, 24, 12, 0, 1285, 1286, 5, 162, 0, 0, 1286, 1289, 3, 24, 12, 0, 1287, 1288, 5, 162, 0, 0, 1288, 1290, 3, 24, 12, 0, 1289, 1287, 1, 0, 0, 0, 1289, 1290, 1, 0, 0, 0, 1290, 1291, 1, 0, 0, 0, 1291, 1292, 5, 161, 0, 0, 1292, 1351, 1, 0, 0, 0, 1293, 1294, 5, 141, 0, 0, 1294, 1295, 5, 160, 0, 0, 1295, 1296, 3, 24, 12, 0, 1296, 1297, 5, 162, 0, 0, 1297, 1300, 3, 24, 12, 0, 1298, 1299, 5, 162, 0, 0, 1299, 1301, 3, 24, 12, 0, 1300, 1298, 1, 0, 0, 0, 1300, 1301, 1, 0, 0, 0, 1301, 1304, 1, 0, 0, 0, 1302, 1303, 5, 162, 0, 0, 1303, 1305, 3, 24, 12, 0, 1304, 1302, 1, 0, 0, 0, 1304, 1305, 1, 0, 0, 0, 1305, 1308, 1, 0, 0, 0, 1306, 1307, 5, 162, 0, 0, 1307, 1309, 3, 24, 12, 0, 1308, 1306, 1, 0, 0, 0, 1308, 1309, 1, 0, 0, 0, 1309, 1310, 1, 0, 0, 0, 1310, 1311, 5, 161, 0, 0, 1311, 1351, 1, 0, 0, 0, 1312, 1313, 5, 142, 0, 0, 1313, 1314, 5, 160, 0, 0, 1314, 1315, 3, 24, 12, 0, 1315, 1316, 5, 162, 0, 0, 1316, 1319, 3, 24, 12, 0, 1317, 1318, 5, 162, 0, 0, 1318, 1320, 3, 24, 12, 0, 1319, 1317, 1, 0, 0, 0, 1319, 1320, 1, 0, 0, 0, 1320, 1323, 1, 0, 0, 0, 1321, 1322, 5, 162, 0, 0, 1322, 1324, 3, 24, 12, 0, 1323, 1321, 1, 0, 0, 0, 1323, 1324, 1, 0, 0, 0, 1324, 1327, 1, 0, 0, 0, 1325, 1326, 5, 162, 0, 0, 1326, 1328, 3, 24, 12, 0, 1327, 1325, 1, 0, 0, 0, 1327, 1328, 1, 0, 0, 0, 1328, 1329, 1, 0, 0, 0, 1329, 1330, 5, 161, 0, 0, 1330, 1351, 1, 0, 0, 0, 1331, 1332, 5, 143, 0, 0, 1332, 1333, 5, 160, 0, 0, 1333, 1334, 3, 24, 12, 0, 1334, 1335, 5, 162, 0, 0, 1335, 1338, 3, 24, 12, 0, 1336, 1337, 5, 162, 0, 0, 1337, 1339, 3, 24, 12, 0, 1338, 1336, 1, 0, 0, 0, 1338, 1339, 1, 0, 0, 0, 1339, 1342, 1, 0, 0, 0, 1340, 1341, 5, 162, 0, 0, 1341, 1343, 3, 24, 12, 0, 1342, 1340, 1, 0, 0, 0, 1342, 1343, 1, 0, 0, 0, 1343, 1346, 1, 0, 0, 0, 1344, 1345, 5, 162, 0, 0, 1345, 1347, 3, 24, 12, 0, 1346, 1344, 1, 0, 0, 0, 1346, 1347, 1, 0, 0, 0, 1347, 1348, 1, 0, 0, 0, 1348, 1349, 5, 161, 0, 0, 1349, 1351, 1, 0, 0, 0, 1350, 1129, 1, 0, 0, 0, 1350, 1138, 1, 0, 0, 0, 1350, 1147, 1, 0, 0, 0, 1350, 1158, 1, 0, 0, 0, 1350, 1169, 1, 0, 0, 0, 1350, 1180, 1, 0, 0, 0, 1350, 1193, 1, 0, 0, 0, 1350, 1206, 1, 0, 0, 0, 1350, 1219, 1, 0, 0, 0, 1350, 1232, 1, 0, 0, 0, 1350, 1245, 1, 0, 0, 0, 1350, 1258, 1, 0, 0, 0, 1350, 1271, 1, 0, 0, 0, 1350, 1282, 1, 0, 0, 0, 1350, 1293, 1, 0, 0, 0, 1350, 1312, 1, 0, 0, 0, 1350, 1331, 1, 0, 0, 0, 1351, 61, 1, 0, 0, 0, 72, 65, 67, 72, 79, 85, 96, 103, 115, 129, 138, 158, 171, 178, 207, 209, 221, 223, 238, 240, 252, 254, 262, 269, 281, 288, 316, 324, 330, 337, 549, 603, 662, 776, 822, 824, 867, 869, 871, 896, 993, 1006, 1041, 1063, 1075, 1087, 1098, 1109, 1127, 1134, 1143, 1154, 1165, 1176, 1189, 1202, 1215, 1228, 1241, 1254, 1267, 1278, 1289, 1300, 1304, 1308, 1319, 1323, 1327, 1338, 1342, 1346, 1350] \ No newline at end of file diff --git a/more_math/Parser/MathExprParser.py b/more_math/Parser/MathExprParser.py index 71a589b..39d67e3 100644 --- a/more_math/Parser/MathExprParser.py +++ b/more_math/Parser/MathExprParser.py @@ -10,7 +10,7 @@ else: def serializedATN(): return [ - 4,1,176,1344,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, + 4,1,176,1353,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, 7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7, 13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2, 20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7, @@ -88,109 +88,110 @@ def serializedATN(): 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, - 3,26,994,8,26,1,26,1,26,3,26,998,8,26,1,27,1,27,1,27,1,27,1,27,1, - 27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1, - 27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1, - 27,1,27,3,27,1033,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1, - 28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,5,29,1053,8,29,10, - 29,12,29,1056,9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,1065, - 8,29,10,29,12,29,1068,9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4, - 29,1077,8,29,11,29,12,29,1078,1,29,1,29,1,29,1,29,1,29,1,29,1,29, - 4,29,1088,8,29,11,29,12,29,1089,1,29,1,29,1,29,1,29,1,29,1,29,1, - 29,4,29,1099,8,29,11,29,12,29,1100,1,29,1,29,1,29,1,29,1,29,1,29, - 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,1119,8,29, - 1,30,1,30,1,30,1,30,1,30,3,30,1126,8,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,3,30,1135,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,3,30,1146,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 3,30,1157,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, - 1168,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 3,30,1181,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,3,30,1194,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,3,30,1207,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,3,30,1220,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,3,30,1233,8,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,3,30,1246,8,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,3,30,1259,8,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,3,30,1270,8,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,3,30,1281,8,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,3,30,1292,8,30,1,30,1,30,3,30,1296,8,30,1,30,1,30, - 3,30,1300,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, - 1311,8,30,1,30,1,30,3,30,1315,8,30,1,30,1,30,3,30,1319,8,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1330,8,30,1,30,1,30, - 3,30,1334,8,30,1,30,1,30,3,30,1338,8,30,1,30,1,30,3,30,1342,8,30, - 1,30,0,5,28,30,32,34,40,31,0,2,4,6,8,10,12,14,16,18,20,22,24,26, - 28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,0,0,1533,0,67, - 1,0,0,0,2,76,1,0,0,0,4,89,1,0,0,0,6,110,1,0,0,0,8,129,1,0,0,0,10, - 131,1,0,0,0,12,140,1,0,0,0,14,146,1,0,0,0,16,154,1,0,0,0,18,163, - 1,0,0,0,20,166,1,0,0,0,22,169,1,0,0,0,24,178,1,0,0,0,26,180,1,0, - 0,0,28,186,1,0,0,0,30,212,1,0,0,0,32,226,1,0,0,0,34,243,1,0,0,0, - 36,262,1,0,0,0,38,269,1,0,0,0,40,271,1,0,0,0,42,330,1,0,0,0,44,332, - 1,0,0,0,46,340,1,0,0,0,48,662,1,0,0,0,50,896,1,0,0,0,52,997,1,0, - 0,0,54,1032,1,0,0,0,56,1034,1,0,0,0,58,1118,1,0,0,0,60,1341,1,0, - 0,0,62,66,3,2,1,0,63,66,3,4,2,0,64,66,3,8,4,0,65,62,1,0,0,0,65,63, - 1,0,0,0,65,64,1,0,0,0,66,69,1,0,0,0,67,65,1,0,0,0,67,68,1,0,0,0, - 68,70,1,0,0,0,69,67,1,0,0,0,70,72,3,24,12,0,71,73,5,163,0,0,72,71, - 1,0,0,0,72,73,1,0,0,0,73,74,1,0,0,0,74,75,5,0,0,1,75,1,1,0,0,0,76, - 77,5,173,0,0,77,79,5,160,0,0,78,80,3,6,3,0,79,78,1,0,0,0,79,80,1, - 0,0,0,80,81,1,0,0,0,81,82,5,161,0,0,82,85,5,164,0,0,83,86,3,16,8, - 0,84,86,3,24,12,0,85,83,1,0,0,0,85,84,1,0,0,0,86,87,1,0,0,0,87,88, - 5,163,0,0,88,3,1,0,0,0,89,103,5,173,0,0,90,91,5,165,0,0,91,96,3, - 24,12,0,92,93,5,162,0,0,93,95,3,24,12,0,94,92,1,0,0,0,95,98,1,0, - 0,0,96,94,1,0,0,0,96,97,1,0,0,0,97,99,1,0,0,0,98,96,1,0,0,0,99,100, - 5,166,0,0,100,102,1,0,0,0,101,90,1,0,0,0,102,105,1,0,0,0,103,101, - 1,0,0,0,103,104,1,0,0,0,104,106,1,0,0,0,105,103,1,0,0,0,106,107, - 5,157,0,0,107,108,3,24,12,0,108,109,5,163,0,0,109,5,1,0,0,0,110, - 115,5,173,0,0,111,112,5,162,0,0,112,114,5,173,0,0,113,111,1,0,0, - 0,114,117,1,0,0,0,115,113,1,0,0,0,115,116,1,0,0,0,116,7,1,0,0,0, - 117,115,1,0,0,0,118,130,3,10,5,0,119,130,3,12,6,0,120,130,3,16,8, - 0,121,130,3,18,9,0,122,130,3,20,10,0,123,130,3,22,11,0,124,130,3, - 4,2,0,125,130,3,14,7,0,126,127,3,24,12,0,127,128,5,163,0,0,128,130, - 1,0,0,0,129,118,1,0,0,0,129,119,1,0,0,0,129,120,1,0,0,0,129,121, - 1,0,0,0,129,122,1,0,0,0,129,123,1,0,0,0,129,124,1,0,0,0,129,125, - 1,0,0,0,129,126,1,0,0,0,130,9,1,0,0,0,131,132,5,107,0,0,132,133, - 5,160,0,0,133,134,3,24,12,0,134,135,5,161,0,0,135,138,3,8,4,0,136, - 137,5,108,0,0,137,139,3,8,4,0,138,136,1,0,0,0,138,139,1,0,0,0,139, - 11,1,0,0,0,140,141,5,109,0,0,141,142,5,160,0,0,142,143,3,24,12,0, - 143,144,5,161,0,0,144,145,3,8,4,0,145,13,1,0,0,0,146,147,5,110,0, - 0,147,148,5,160,0,0,148,149,5,173,0,0,149,150,5,111,0,0,150,151, - 3,24,12,0,151,152,5,161,0,0,152,153,3,8,4,0,153,15,1,0,0,0,154,158, - 5,169,0,0,155,157,3,8,4,0,156,155,1,0,0,0,157,160,1,0,0,0,158,156, - 1,0,0,0,158,159,1,0,0,0,159,161,1,0,0,0,160,158,1,0,0,0,161,162, - 5,170,0,0,162,17,1,0,0,0,163,164,5,112,0,0,164,165,5,163,0,0,165, - 19,1,0,0,0,166,167,5,113,0,0,167,168,5,163,0,0,168,21,1,0,0,0,169, - 171,5,114,0,0,170,172,3,24,12,0,171,170,1,0,0,0,171,172,1,0,0,0, - 172,173,1,0,0,0,173,174,5,163,0,0,174,23,1,0,0,0,175,179,3,26,13, - 0,176,179,3,42,21,0,177,179,3,28,14,0,178,175,1,0,0,0,178,176,1, - 0,0,0,178,177,1,0,0,0,179,25,1,0,0,0,180,181,3,28,14,0,181,182,5, - 167,0,0,182,183,3,24,12,0,183,184,5,168,0,0,184,185,3,24,12,0,185, - 27,1,0,0,0,186,187,6,14,-1,0,187,188,3,30,15,0,188,209,1,0,0,0,189, - 190,10,7,0,0,190,191,5,153,0,0,191,208,3,30,15,0,192,193,10,6,0, - 0,193,194,5,152,0,0,194,208,3,30,15,0,195,196,10,5,0,0,196,197,5, - 155,0,0,197,208,3,30,15,0,198,199,10,4,0,0,199,200,5,154,0,0,200, - 208,3,30,15,0,201,202,10,3,0,0,202,203,5,156,0,0,203,208,3,30,15, - 0,204,205,10,2,0,0,205,206,5,158,0,0,206,208,3,30,15,0,207,189,1, - 0,0,0,207,192,1,0,0,0,207,195,1,0,0,0,207,198,1,0,0,0,207,201,1, - 0,0,0,207,204,1,0,0,0,208,211,1,0,0,0,209,207,1,0,0,0,209,210,1, - 0,0,0,210,29,1,0,0,0,211,209,1,0,0,0,212,213,6,15,-1,0,213,214,3, - 32,16,0,214,223,1,0,0,0,215,216,10,3,0,0,216,217,5,144,0,0,217,222, - 3,32,16,0,218,219,10,2,0,0,219,220,5,145,0,0,220,222,3,32,16,0,221, - 215,1,0,0,0,221,218,1,0,0,0,222,225,1,0,0,0,223,221,1,0,0,0,223, - 224,1,0,0,0,224,31,1,0,0,0,225,223,1,0,0,0,226,227,6,16,-1,0,227, - 228,3,34,17,0,228,240,1,0,0,0,229,230,10,4,0,0,230,231,5,146,0,0, - 231,239,3,34,17,0,232,233,10,3,0,0,233,234,5,147,0,0,234,239,3,34, - 17,0,235,236,10,2,0,0,236,237,5,148,0,0,237,239,3,34,17,0,238,229, - 1,0,0,0,238,232,1,0,0,0,238,235,1,0,0,0,239,242,1,0,0,0,240,238, - 1,0,0,0,240,241,1,0,0,0,241,33,1,0,0,0,242,240,1,0,0,0,243,244,6, - 17,-1,0,244,245,3,36,18,0,245,254,1,0,0,0,246,247,10,3,0,0,247,248, - 5,150,0,0,248,253,3,36,18,0,249,250,10,2,0,0,250,251,5,151,0,0,251, - 253,3,36,18,0,252,246,1,0,0,0,252,249,1,0,0,0,253,256,1,0,0,0,254, - 252,1,0,0,0,254,255,1,0,0,0,255,35,1,0,0,0,256,254,1,0,0,0,257,258, - 3,38,19,0,258,259,5,149,0,0,259,260,3,36,18,0,260,263,1,0,0,0,261, - 263,3,38,19,0,262,257,1,0,0,0,262,261,1,0,0,0,263,37,1,0,0,0,264, - 265,5,144,0,0,265,270,3,38,19,0,266,267,5,145,0,0,267,270,3,38,19, - 0,268,270,3,40,20,0,269,264,1,0,0,0,269,266,1,0,0,0,269,268,1,0, - 0,0,270,39,1,0,0,0,271,272,6,20,-1,0,272,273,3,42,21,0,273,288,1, - 0,0,0,274,275,10,2,0,0,275,276,5,165,0,0,276,281,3,24,12,0,277,278, + 3,26,994,8,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, + 1,26,3,26,1007,8,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27,1042, + 8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28, + 1,28,1,29,1,29,1,29,1,29,1,29,5,29,1062,8,29,10,29,12,29,1065,9, + 29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,1074,8,29,10,29,12,29, + 1077,9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1086,8,29,11,29, + 12,29,1087,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1097,8,29,11, + 29,12,29,1098,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1108,8,29, + 11,29,12,29,1109,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1, + 29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,1128,8,29,1,30,1,30,1,30,1, + 30,1,30,3,30,1135,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1144, + 8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1155,8,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1166,8,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1177,8,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1190,8,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1203,8,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1216, + 8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, + 1229,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 3,30,1242,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 1,30,3,30,1255,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 1,30,1,30,3,30,1268,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 1,30,3,30,1279,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 3,30,1290,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, + 1301,8,30,1,30,1,30,3,30,1305,8,30,1,30,1,30,3,30,1309,8,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1320,8,30,1,30,1,30, + 3,30,1324,8,30,1,30,1,30,3,30,1328,8,30,1,30,1,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,30,3,30,1339,8,30,1,30,1,30,3,30,1343,8,30,1,30, + 1,30,3,30,1347,8,30,1,30,1,30,3,30,1351,8,30,1,30,0,5,28,30,32,34, + 40,31,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40, + 42,44,46,48,50,52,54,56,58,60,0,0,1543,0,67,1,0,0,0,2,76,1,0,0,0, + 4,89,1,0,0,0,6,110,1,0,0,0,8,129,1,0,0,0,10,131,1,0,0,0,12,140,1, + 0,0,0,14,146,1,0,0,0,16,154,1,0,0,0,18,163,1,0,0,0,20,166,1,0,0, + 0,22,169,1,0,0,0,24,178,1,0,0,0,26,180,1,0,0,0,28,186,1,0,0,0,30, + 212,1,0,0,0,32,226,1,0,0,0,34,243,1,0,0,0,36,262,1,0,0,0,38,269, + 1,0,0,0,40,271,1,0,0,0,42,330,1,0,0,0,44,332,1,0,0,0,46,340,1,0, + 0,0,48,662,1,0,0,0,50,896,1,0,0,0,52,1006,1,0,0,0,54,1041,1,0,0, + 0,56,1043,1,0,0,0,58,1127,1,0,0,0,60,1350,1,0,0,0,62,66,3,2,1,0, + 63,66,3,4,2,0,64,66,3,8,4,0,65,62,1,0,0,0,65,63,1,0,0,0,65,64,1, + 0,0,0,66,69,1,0,0,0,67,65,1,0,0,0,67,68,1,0,0,0,68,70,1,0,0,0,69, + 67,1,0,0,0,70,72,3,24,12,0,71,73,5,163,0,0,72,71,1,0,0,0,72,73,1, + 0,0,0,73,74,1,0,0,0,74,75,5,0,0,1,75,1,1,0,0,0,76,77,5,173,0,0,77, + 79,5,160,0,0,78,80,3,6,3,0,79,78,1,0,0,0,79,80,1,0,0,0,80,81,1,0, + 0,0,81,82,5,161,0,0,82,85,5,164,0,0,83,86,3,16,8,0,84,86,3,24,12, + 0,85,83,1,0,0,0,85,84,1,0,0,0,86,87,1,0,0,0,87,88,5,163,0,0,88,3, + 1,0,0,0,89,103,5,173,0,0,90,91,5,165,0,0,91,96,3,24,12,0,92,93,5, + 162,0,0,93,95,3,24,12,0,94,92,1,0,0,0,95,98,1,0,0,0,96,94,1,0,0, + 0,96,97,1,0,0,0,97,99,1,0,0,0,98,96,1,0,0,0,99,100,5,166,0,0,100, + 102,1,0,0,0,101,90,1,0,0,0,102,105,1,0,0,0,103,101,1,0,0,0,103,104, + 1,0,0,0,104,106,1,0,0,0,105,103,1,0,0,0,106,107,5,157,0,0,107,108, + 3,24,12,0,108,109,5,163,0,0,109,5,1,0,0,0,110,115,5,173,0,0,111, + 112,5,162,0,0,112,114,5,173,0,0,113,111,1,0,0,0,114,117,1,0,0,0, + 115,113,1,0,0,0,115,116,1,0,0,0,116,7,1,0,0,0,117,115,1,0,0,0,118, + 130,3,10,5,0,119,130,3,12,6,0,120,130,3,16,8,0,121,130,3,18,9,0, + 122,130,3,20,10,0,123,130,3,22,11,0,124,130,3,4,2,0,125,130,3,14, + 7,0,126,127,3,24,12,0,127,128,5,163,0,0,128,130,1,0,0,0,129,118, + 1,0,0,0,129,119,1,0,0,0,129,120,1,0,0,0,129,121,1,0,0,0,129,122, + 1,0,0,0,129,123,1,0,0,0,129,124,1,0,0,0,129,125,1,0,0,0,129,126, + 1,0,0,0,130,9,1,0,0,0,131,132,5,107,0,0,132,133,5,160,0,0,133,134, + 3,24,12,0,134,135,5,161,0,0,135,138,3,8,4,0,136,137,5,108,0,0,137, + 139,3,8,4,0,138,136,1,0,0,0,138,139,1,0,0,0,139,11,1,0,0,0,140,141, + 5,109,0,0,141,142,5,160,0,0,142,143,3,24,12,0,143,144,5,161,0,0, + 144,145,3,8,4,0,145,13,1,0,0,0,146,147,5,110,0,0,147,148,5,160,0, + 0,148,149,5,173,0,0,149,150,5,111,0,0,150,151,3,24,12,0,151,152, + 5,161,0,0,152,153,3,8,4,0,153,15,1,0,0,0,154,158,5,169,0,0,155,157, + 3,8,4,0,156,155,1,0,0,0,157,160,1,0,0,0,158,156,1,0,0,0,158,159, + 1,0,0,0,159,161,1,0,0,0,160,158,1,0,0,0,161,162,5,170,0,0,162,17, + 1,0,0,0,163,164,5,112,0,0,164,165,5,163,0,0,165,19,1,0,0,0,166,167, + 5,113,0,0,167,168,5,163,0,0,168,21,1,0,0,0,169,171,5,114,0,0,170, + 172,3,24,12,0,171,170,1,0,0,0,171,172,1,0,0,0,172,173,1,0,0,0,173, + 174,5,163,0,0,174,23,1,0,0,0,175,179,3,26,13,0,176,179,3,42,21,0, + 177,179,3,28,14,0,178,175,1,0,0,0,178,176,1,0,0,0,178,177,1,0,0, + 0,179,25,1,0,0,0,180,181,3,28,14,0,181,182,5,167,0,0,182,183,3,24, + 12,0,183,184,5,168,0,0,184,185,3,24,12,0,185,27,1,0,0,0,186,187, + 6,14,-1,0,187,188,3,30,15,0,188,209,1,0,0,0,189,190,10,7,0,0,190, + 191,5,153,0,0,191,208,3,30,15,0,192,193,10,6,0,0,193,194,5,152,0, + 0,194,208,3,30,15,0,195,196,10,5,0,0,196,197,5,155,0,0,197,208,3, + 30,15,0,198,199,10,4,0,0,199,200,5,154,0,0,200,208,3,30,15,0,201, + 202,10,3,0,0,202,203,5,156,0,0,203,208,3,30,15,0,204,205,10,2,0, + 0,205,206,5,158,0,0,206,208,3,30,15,0,207,189,1,0,0,0,207,192,1, + 0,0,0,207,195,1,0,0,0,207,198,1,0,0,0,207,201,1,0,0,0,207,204,1, + 0,0,0,208,211,1,0,0,0,209,207,1,0,0,0,209,210,1,0,0,0,210,29,1,0, + 0,0,211,209,1,0,0,0,212,213,6,15,-1,0,213,214,3,32,16,0,214,223, + 1,0,0,0,215,216,10,3,0,0,216,217,5,144,0,0,217,222,3,32,16,0,218, + 219,10,2,0,0,219,220,5,145,0,0,220,222,3,32,16,0,221,215,1,0,0,0, + 221,218,1,0,0,0,222,225,1,0,0,0,223,221,1,0,0,0,223,224,1,0,0,0, + 224,31,1,0,0,0,225,223,1,0,0,0,226,227,6,16,-1,0,227,228,3,34,17, + 0,228,240,1,0,0,0,229,230,10,4,0,0,230,231,5,146,0,0,231,239,3,34, + 17,0,232,233,10,3,0,0,233,234,5,147,0,0,234,239,3,34,17,0,235,236, + 10,2,0,0,236,237,5,148,0,0,237,239,3,34,17,0,238,229,1,0,0,0,238, + 232,1,0,0,0,238,235,1,0,0,0,239,242,1,0,0,0,240,238,1,0,0,0,240, + 241,1,0,0,0,241,33,1,0,0,0,242,240,1,0,0,0,243,244,6,17,-1,0,244, + 245,3,36,18,0,245,254,1,0,0,0,246,247,10,3,0,0,247,248,5,150,0,0, + 248,253,3,36,18,0,249,250,10,2,0,0,250,251,5,151,0,0,251,253,3,36, + 18,0,252,246,1,0,0,0,252,249,1,0,0,0,253,256,1,0,0,0,254,252,1,0, + 0,0,254,255,1,0,0,0,255,35,1,0,0,0,256,254,1,0,0,0,257,258,3,38, + 19,0,258,259,5,149,0,0,259,260,3,36,18,0,260,263,1,0,0,0,261,263, + 3,38,19,0,262,257,1,0,0,0,262,261,1,0,0,0,263,37,1,0,0,0,264,265, + 5,144,0,0,265,270,3,38,19,0,266,267,5,145,0,0,267,270,3,38,19,0, + 268,270,3,40,20,0,269,264,1,0,0,0,269,266,1,0,0,0,269,268,1,0,0, + 0,270,39,1,0,0,0,271,272,6,20,-1,0,272,273,3,42,21,0,273,288,1,0, + 0,0,274,275,10,2,0,0,275,276,5,165,0,0,276,281,3,24,12,0,277,278, 5,162,0,0,278,280,3,24,12,0,279,277,1,0,0,0,280,283,1,0,0,0,281, 279,1,0,0,0,281,282,1,0,0,0,282,284,1,0,0,0,283,281,1,0,0,0,284, 285,5,166,0,0,285,287,1,0,0,0,286,274,1,0,0,0,287,290,1,0,0,0,288, @@ -389,155 +390,158 @@ def serializedATN(): 1,0,0,0,896,882,1,0,0,0,896,889,1,0,0,0,897,51,1,0,0,0,898,899,5, 31,0,0,899,900,5,160,0,0,900,901,3,24,12,0,901,902,5,162,0,0,902, 903,3,24,12,0,903,904,5,162,0,0,904,905,3,24,12,0,905,906,5,161, - 0,0,906,998,1,0,0,0,907,908,5,38,0,0,908,909,5,160,0,0,909,910,3, - 24,12,0,910,911,5,162,0,0,911,912,3,24,12,0,912,913,5,162,0,0,913, - 914,3,24,12,0,914,915,5,161,0,0,915,998,1,0,0,0,916,917,5,40,0,0, - 917,918,5,160,0,0,918,919,3,24,12,0,919,920,5,162,0,0,920,921,3, - 24,12,0,921,922,5,162,0,0,922,923,3,24,12,0,923,924,5,161,0,0,924, - 998,1,0,0,0,925,926,5,52,0,0,926,927,5,160,0,0,927,928,3,24,12,0, - 928,929,5,162,0,0,929,930,3,24,12,0,930,931,5,162,0,0,931,932,3, - 24,12,0,932,933,5,161,0,0,933,998,1,0,0,0,934,935,5,64,0,0,935,936, - 5,160,0,0,936,937,3,24,12,0,937,938,5,162,0,0,938,939,3,24,12,0, - 939,940,5,162,0,0,940,941,3,24,12,0,941,942,5,161,0,0,942,998,1, - 0,0,0,943,944,5,75,0,0,944,945,5,160,0,0,945,946,3,24,12,0,946,947, - 5,162,0,0,947,948,3,24,12,0,948,949,5,162,0,0,949,950,3,24,12,0, - 950,951,5,161,0,0,951,998,1,0,0,0,952,953,5,76,0,0,953,954,5,160, - 0,0,954,955,3,24,12,0,955,956,5,162,0,0,956,957,3,24,12,0,957,958, - 5,162,0,0,958,959,3,24,12,0,959,960,5,161,0,0,960,998,1,0,0,0,961, - 962,5,77,0,0,962,963,5,160,0,0,963,964,3,24,12,0,964,965,5,162,0, - 0,965,966,3,24,12,0,966,967,5,162,0,0,967,968,3,24,12,0,968,969, - 5,161,0,0,969,998,1,0,0,0,970,971,5,78,0,0,971,972,5,160,0,0,972, - 973,3,24,12,0,973,974,5,162,0,0,974,975,3,24,12,0,975,976,5,162, - 0,0,976,977,3,24,12,0,977,978,5,161,0,0,978,998,1,0,0,0,979,980, - 5,125,0,0,980,981,5,160,0,0,981,982,3,24,12,0,982,983,5,162,0,0, - 983,984,3,24,12,0,984,985,5,162,0,0,985,986,3,24,12,0,986,987,5, - 161,0,0,987,998,1,0,0,0,988,989,5,33,0,0,989,990,5,160,0,0,990,993, - 3,24,12,0,991,992,5,162,0,0,992,994,3,24,12,0,993,991,1,0,0,0,993, - 994,1,0,0,0,994,995,1,0,0,0,995,996,5,161,0,0,996,998,1,0,0,0,997, - 898,1,0,0,0,997,907,1,0,0,0,997,916,1,0,0,0,997,925,1,0,0,0,997, - 934,1,0,0,0,997,943,1,0,0,0,997,952,1,0,0,0,997,961,1,0,0,0,997, - 970,1,0,0,0,997,979,1,0,0,0,997,988,1,0,0,0,998,53,1,0,0,0,999,1000, - 5,49,0,0,1000,1001,5,160,0,0,1001,1002,3,24,12,0,1002,1003,5,162, - 0,0,1003,1004,3,24,12,0,1004,1005,5,162,0,0,1005,1006,3,24,12,0, - 1006,1007,5,162,0,0,1007,1008,3,24,12,0,1008,1009,5,161,0,0,1009, - 1033,1,0,0,0,1010,1011,5,37,0,0,1011,1012,5,160,0,0,1012,1013,3, - 24,12,0,1013,1014,5,162,0,0,1014,1015,3,24,12,0,1015,1016,5,162, - 0,0,1016,1017,3,24,12,0,1017,1018,5,162,0,0,1018,1019,3,24,12,0, - 1019,1020,5,161,0,0,1020,1033,1,0,0,0,1021,1022,5,79,0,0,1022,1023, - 5,160,0,0,1023,1024,3,24,12,0,1024,1025,5,162,0,0,1025,1026,3,24, - 12,0,1026,1027,5,162,0,0,1027,1028,3,24,12,0,1028,1029,5,162,0,0, - 1029,1030,3,24,12,0,1030,1031,5,161,0,0,1031,1033,1,0,0,0,1032,999, - 1,0,0,0,1032,1010,1,0,0,0,1032,1021,1,0,0,0,1033,55,1,0,0,0,1034, - 1035,5,80,0,0,1035,1036,5,160,0,0,1036,1037,3,24,12,0,1037,1038, - 5,162,0,0,1038,1039,3,24,12,0,1039,1040,5,162,0,0,1040,1041,3,24, - 12,0,1041,1042,5,162,0,0,1042,1043,3,24,12,0,1043,1044,5,162,0,0, - 1044,1045,3,24,12,0,1045,1046,5,161,0,0,1046,57,1,0,0,0,1047,1048, - 5,19,0,0,1048,1049,5,160,0,0,1049,1054,3,24,12,0,1050,1051,5,162, - 0,0,1051,1053,3,24,12,0,1052,1050,1,0,0,0,1053,1056,1,0,0,0,1054, - 1052,1,0,0,0,1054,1055,1,0,0,0,1055,1057,1,0,0,0,1056,1054,1,0,0, - 0,1057,1058,5,161,0,0,1058,1119,1,0,0,0,1059,1060,5,20,0,0,1060, - 1061,5,160,0,0,1061,1066,3,24,12,0,1062,1063,5,162,0,0,1063,1065, - 3,24,12,0,1064,1062,1,0,0,0,1065,1068,1,0,0,0,1066,1064,1,0,0,0, - 1066,1067,1,0,0,0,1067,1069,1,0,0,0,1068,1066,1,0,0,0,1069,1070, - 5,161,0,0,1070,1119,1,0,0,0,1071,1072,5,46,0,0,1072,1073,5,160,0, - 0,1073,1076,3,24,12,0,1074,1075,5,162,0,0,1075,1077,3,24,12,0,1076, - 1074,1,0,0,0,1077,1078,1,0,0,0,1078,1076,1,0,0,0,1078,1079,1,0,0, - 0,1079,1080,1,0,0,0,1080,1081,5,161,0,0,1081,1119,1,0,0,0,1082,1083, - 5,47,0,0,1083,1084,5,160,0,0,1084,1087,3,24,12,0,1085,1086,5,162, - 0,0,1086,1088,3,24,12,0,1087,1085,1,0,0,0,1088,1089,1,0,0,0,1089, - 1087,1,0,0,0,1089,1090,1,0,0,0,1090,1091,1,0,0,0,1091,1092,5,161, - 0,0,1092,1119,1,0,0,0,1093,1094,5,48,0,0,1094,1095,5,160,0,0,1095, - 1098,3,24,12,0,1096,1097,5,162,0,0,1097,1099,3,24,12,0,1098,1096, - 1,0,0,0,1099,1100,1,0,0,0,1100,1098,1,0,0,0,1100,1101,1,0,0,0,1101, - 1102,1,0,0,0,1102,1103,5,161,0,0,1103,1119,1,0,0,0,1104,1105,5,50, - 0,0,1105,1106,5,160,0,0,1106,1107,3,24,12,0,1107,1108,5,162,0,0, - 1108,1109,3,24,12,0,1109,1110,5,161,0,0,1110,1119,1,0,0,0,1111,1112, - 5,51,0,0,1112,1113,5,160,0,0,1113,1114,3,24,12,0,1114,1115,5,162, - 0,0,1115,1116,3,24,12,0,1116,1117,5,161,0,0,1117,1119,1,0,0,0,1118, - 1047,1,0,0,0,1118,1059,1,0,0,0,1118,1071,1,0,0,0,1118,1082,1,0,0, - 0,1118,1093,1,0,0,0,1118,1104,1,0,0,0,1118,1111,1,0,0,0,1119,59, - 1,0,0,0,1120,1121,5,127,0,0,1121,1122,5,160,0,0,1122,1125,3,24,12, - 0,1123,1124,5,162,0,0,1124,1126,3,24,12,0,1125,1123,1,0,0,0,1125, - 1126,1,0,0,0,1126,1127,1,0,0,0,1127,1128,5,161,0,0,1128,1342,1,0, - 0,0,1129,1130,5,128,0,0,1130,1131,5,160,0,0,1131,1134,3,24,12,0, - 1132,1133,5,162,0,0,1133,1135,3,24,12,0,1134,1132,1,0,0,0,1134,1135, - 1,0,0,0,1135,1136,1,0,0,0,1136,1137,5,161,0,0,1137,1342,1,0,0,0, - 1138,1139,5,130,0,0,1139,1140,5,160,0,0,1140,1141,3,24,12,0,1141, - 1142,5,162,0,0,1142,1145,3,24,12,0,1143,1144,5,162,0,0,1144,1146, - 3,24,12,0,1145,1143,1,0,0,0,1145,1146,1,0,0,0,1146,1147,1,0,0,0, - 1147,1148,5,161,0,0,1148,1342,1,0,0,0,1149,1150,5,132,0,0,1150,1151, - 5,160,0,0,1151,1152,3,24,12,0,1152,1153,5,162,0,0,1153,1156,3,24, - 12,0,1154,1155,5,162,0,0,1155,1157,3,24,12,0,1156,1154,1,0,0,0,1156, - 1157,1,0,0,0,1157,1158,1,0,0,0,1158,1159,5,161,0,0,1159,1342,1,0, - 0,0,1160,1161,5,133,0,0,1161,1162,5,160,0,0,1162,1163,3,24,12,0, - 1163,1164,5,162,0,0,1164,1167,3,24,12,0,1165,1166,5,162,0,0,1166, - 1168,3,24,12,0,1167,1165,1,0,0,0,1167,1168,1,0,0,0,1168,1169,1,0, - 0,0,1169,1170,5,161,0,0,1170,1342,1,0,0,0,1171,1172,5,129,0,0,1172, - 1173,5,160,0,0,1173,1174,3,24,12,0,1174,1175,5,162,0,0,1175,1176, - 3,24,12,0,1176,1177,5,162,0,0,1177,1180,3,24,12,0,1178,1179,5,162, - 0,0,1179,1181,3,24,12,0,1180,1178,1,0,0,0,1180,1181,1,0,0,0,1181, - 1182,1,0,0,0,1182,1183,5,161,0,0,1183,1342,1,0,0,0,1184,1185,5,131, - 0,0,1185,1186,5,160,0,0,1186,1187,3,24,12,0,1187,1188,5,162,0,0, - 1188,1189,3,24,12,0,1189,1190,5,162,0,0,1190,1193,3,24,12,0,1191, - 1192,5,162,0,0,1192,1194,3,24,12,0,1193,1191,1,0,0,0,1193,1194,1, - 0,0,0,1194,1195,1,0,0,0,1195,1196,5,161,0,0,1196,1342,1,0,0,0,1197, - 1198,5,134,0,0,1198,1199,5,160,0,0,1199,1200,3,24,12,0,1200,1201, - 5,162,0,0,1201,1202,3,24,12,0,1202,1203,5,162,0,0,1203,1206,3,24, - 12,0,1204,1205,5,162,0,0,1205,1207,3,24,12,0,1206,1204,1,0,0,0,1206, - 1207,1,0,0,0,1207,1208,1,0,0,0,1208,1209,5,161,0,0,1209,1342,1,0, - 0,0,1210,1211,5,135,0,0,1211,1212,5,160,0,0,1212,1213,3,24,12,0, - 1213,1214,5,162,0,0,1214,1215,3,24,12,0,1215,1216,5,162,0,0,1216, - 1219,3,24,12,0,1217,1218,5,162,0,0,1218,1220,3,24,12,0,1219,1217, - 1,0,0,0,1219,1220,1,0,0,0,1220,1221,1,0,0,0,1221,1222,5,161,0,0, - 1222,1342,1,0,0,0,1223,1224,5,136,0,0,1224,1225,5,160,0,0,1225,1226, - 3,24,12,0,1226,1227,5,162,0,0,1227,1228,3,24,12,0,1228,1229,5,162, - 0,0,1229,1232,3,24,12,0,1230,1231,5,162,0,0,1231,1233,3,24,12,0, - 1232,1230,1,0,0,0,1232,1233,1,0,0,0,1233,1234,1,0,0,0,1234,1235, - 5,161,0,0,1235,1342,1,0,0,0,1236,1237,5,137,0,0,1237,1238,5,160, - 0,0,1238,1239,3,24,12,0,1239,1240,5,162,0,0,1240,1241,3,24,12,0, - 1241,1242,5,162,0,0,1242,1245,3,24,12,0,1243,1244,5,162,0,0,1244, - 1246,3,24,12,0,1245,1243,1,0,0,0,1245,1246,1,0,0,0,1246,1247,1,0, - 0,0,1247,1248,5,161,0,0,1248,1342,1,0,0,0,1249,1250,5,138,0,0,1250, - 1251,5,160,0,0,1251,1252,3,24,12,0,1252,1253,5,162,0,0,1253,1254, - 3,24,12,0,1254,1255,5,162,0,0,1255,1258,3,24,12,0,1256,1257,5,162, - 0,0,1257,1259,3,24,12,0,1258,1256,1,0,0,0,1258,1259,1,0,0,0,1259, - 1260,1,0,0,0,1260,1261,5,161,0,0,1261,1342,1,0,0,0,1262,1263,5,139, - 0,0,1263,1264,5,160,0,0,1264,1265,3,24,12,0,1265,1266,5,162,0,0, - 1266,1269,3,24,12,0,1267,1268,5,162,0,0,1268,1270,3,24,12,0,1269, - 1267,1,0,0,0,1269,1270,1,0,0,0,1270,1271,1,0,0,0,1271,1272,5,161, - 0,0,1272,1342,1,0,0,0,1273,1274,5,140,0,0,1274,1275,5,160,0,0,1275, - 1276,3,24,12,0,1276,1277,5,162,0,0,1277,1280,3,24,12,0,1278,1279, - 5,162,0,0,1279,1281,3,24,12,0,1280,1278,1,0,0,0,1280,1281,1,0,0, - 0,1281,1282,1,0,0,0,1282,1283,5,161,0,0,1283,1342,1,0,0,0,1284,1285, - 5,141,0,0,1285,1286,5,160,0,0,1286,1287,3,24,12,0,1287,1288,5,162, - 0,0,1288,1291,3,24,12,0,1289,1290,5,162,0,0,1290,1292,3,24,12,0, - 1291,1289,1,0,0,0,1291,1292,1,0,0,0,1292,1295,1,0,0,0,1293,1294, - 5,162,0,0,1294,1296,3,24,12,0,1295,1293,1,0,0,0,1295,1296,1,0,0, - 0,1296,1299,1,0,0,0,1297,1298,5,162,0,0,1298,1300,3,24,12,0,1299, - 1297,1,0,0,0,1299,1300,1,0,0,0,1300,1301,1,0,0,0,1301,1302,5,161, - 0,0,1302,1342,1,0,0,0,1303,1304,5,142,0,0,1304,1305,5,160,0,0,1305, - 1306,3,24,12,0,1306,1307,5,162,0,0,1307,1310,3,24,12,0,1308,1309, - 5,162,0,0,1309,1311,3,24,12,0,1310,1308,1,0,0,0,1310,1311,1,0,0, - 0,1311,1314,1,0,0,0,1312,1313,5,162,0,0,1313,1315,3,24,12,0,1314, - 1312,1,0,0,0,1314,1315,1,0,0,0,1315,1318,1,0,0,0,1316,1317,5,162, - 0,0,1317,1319,3,24,12,0,1318,1316,1,0,0,0,1318,1319,1,0,0,0,1319, - 1320,1,0,0,0,1320,1321,5,161,0,0,1321,1342,1,0,0,0,1322,1323,5,143, - 0,0,1323,1324,5,160,0,0,1324,1325,3,24,12,0,1325,1326,5,162,0,0, - 1326,1329,3,24,12,0,1327,1328,5,162,0,0,1328,1330,3,24,12,0,1329, - 1327,1,0,0,0,1329,1330,1,0,0,0,1330,1333,1,0,0,0,1331,1332,5,162, - 0,0,1332,1334,3,24,12,0,1333,1331,1,0,0,0,1333,1334,1,0,0,0,1334, - 1337,1,0,0,0,1335,1336,5,162,0,0,1336,1338,3,24,12,0,1337,1335,1, - 0,0,0,1337,1338,1,0,0,0,1338,1339,1,0,0,0,1339,1340,5,161,0,0,1340, - 1342,1,0,0,0,1341,1120,1,0,0,0,1341,1129,1,0,0,0,1341,1138,1,0,0, - 0,1341,1149,1,0,0,0,1341,1160,1,0,0,0,1341,1171,1,0,0,0,1341,1184, - 1,0,0,0,1341,1197,1,0,0,0,1341,1210,1,0,0,0,1341,1223,1,0,0,0,1341, - 1236,1,0,0,0,1341,1249,1,0,0,0,1341,1262,1,0,0,0,1341,1273,1,0,0, - 0,1341,1284,1,0,0,0,1341,1303,1,0,0,0,1341,1322,1,0,0,0,1342,61, + 0,0,906,1007,1,0,0,0,907,908,5,38,0,0,908,909,5,160,0,0,909,910, + 3,24,12,0,910,911,5,162,0,0,911,912,3,24,12,0,912,913,5,162,0,0, + 913,914,3,24,12,0,914,915,5,161,0,0,915,1007,1,0,0,0,916,917,5,40, + 0,0,917,918,5,160,0,0,918,919,3,24,12,0,919,920,5,162,0,0,920,921, + 3,24,12,0,921,922,5,162,0,0,922,923,3,24,12,0,923,924,5,161,0,0, + 924,1007,1,0,0,0,925,926,5,52,0,0,926,927,5,160,0,0,927,928,3,24, + 12,0,928,929,5,162,0,0,929,930,3,24,12,0,930,931,5,162,0,0,931,932, + 3,24,12,0,932,933,5,161,0,0,933,1007,1,0,0,0,934,935,5,64,0,0,935, + 936,5,160,0,0,936,937,3,24,12,0,937,938,5,162,0,0,938,939,3,24,12, + 0,939,940,5,162,0,0,940,941,3,24,12,0,941,942,5,161,0,0,942,1007, + 1,0,0,0,943,944,5,75,0,0,944,945,5,160,0,0,945,946,3,24,12,0,946, + 947,5,162,0,0,947,948,3,24,12,0,948,949,5,162,0,0,949,950,3,24,12, + 0,950,951,5,161,0,0,951,1007,1,0,0,0,952,953,5,76,0,0,953,954,5, + 160,0,0,954,955,3,24,12,0,955,956,5,162,0,0,956,957,3,24,12,0,957, + 958,5,162,0,0,958,959,3,24,12,0,959,960,5,161,0,0,960,1007,1,0,0, + 0,961,962,5,77,0,0,962,963,5,160,0,0,963,964,3,24,12,0,964,965,5, + 162,0,0,965,966,3,24,12,0,966,967,5,162,0,0,967,968,3,24,12,0,968, + 969,5,161,0,0,969,1007,1,0,0,0,970,971,5,78,0,0,971,972,5,160,0, + 0,972,973,3,24,12,0,973,974,5,162,0,0,974,975,3,24,12,0,975,976, + 5,162,0,0,976,977,3,24,12,0,977,978,5,161,0,0,978,1007,1,0,0,0,979, + 980,5,125,0,0,980,981,5,160,0,0,981,982,3,24,12,0,982,983,5,162, + 0,0,983,984,3,24,12,0,984,985,5,162,0,0,985,986,3,24,12,0,986,987, + 5,161,0,0,987,1007,1,0,0,0,988,989,5,33,0,0,989,990,5,160,0,0,990, + 993,3,24,12,0,991,992,5,162,0,0,992,994,3,24,12,0,993,991,1,0,0, + 0,993,994,1,0,0,0,994,995,1,0,0,0,995,996,5,161,0,0,996,1007,1,0, + 0,0,997,998,5,90,0,0,998,999,5,160,0,0,999,1000,3,24,12,0,1000,1001, + 5,162,0,0,1001,1002,3,24,12,0,1002,1003,5,162,0,0,1003,1004,3,24, + 12,0,1004,1005,5,161,0,0,1005,1007,1,0,0,0,1006,898,1,0,0,0,1006, + 907,1,0,0,0,1006,916,1,0,0,0,1006,925,1,0,0,0,1006,934,1,0,0,0,1006, + 943,1,0,0,0,1006,952,1,0,0,0,1006,961,1,0,0,0,1006,970,1,0,0,0,1006, + 979,1,0,0,0,1006,988,1,0,0,0,1006,997,1,0,0,0,1007,53,1,0,0,0,1008, + 1009,5,49,0,0,1009,1010,5,160,0,0,1010,1011,3,24,12,0,1011,1012, + 5,162,0,0,1012,1013,3,24,12,0,1013,1014,5,162,0,0,1014,1015,3,24, + 12,0,1015,1016,5,162,0,0,1016,1017,3,24,12,0,1017,1018,5,161,0,0, + 1018,1042,1,0,0,0,1019,1020,5,37,0,0,1020,1021,5,160,0,0,1021,1022, + 3,24,12,0,1022,1023,5,162,0,0,1023,1024,3,24,12,0,1024,1025,5,162, + 0,0,1025,1026,3,24,12,0,1026,1027,5,162,0,0,1027,1028,3,24,12,0, + 1028,1029,5,161,0,0,1029,1042,1,0,0,0,1030,1031,5,79,0,0,1031,1032, + 5,160,0,0,1032,1033,3,24,12,0,1033,1034,5,162,0,0,1034,1035,3,24, + 12,0,1035,1036,5,162,0,0,1036,1037,3,24,12,0,1037,1038,5,162,0,0, + 1038,1039,3,24,12,0,1039,1040,5,161,0,0,1040,1042,1,0,0,0,1041,1008, + 1,0,0,0,1041,1019,1,0,0,0,1041,1030,1,0,0,0,1042,55,1,0,0,0,1043, + 1044,5,80,0,0,1044,1045,5,160,0,0,1045,1046,3,24,12,0,1046,1047, + 5,162,0,0,1047,1048,3,24,12,0,1048,1049,5,162,0,0,1049,1050,3,24, + 12,0,1050,1051,5,162,0,0,1051,1052,3,24,12,0,1052,1053,5,162,0,0, + 1053,1054,3,24,12,0,1054,1055,5,161,0,0,1055,57,1,0,0,0,1056,1057, + 5,19,0,0,1057,1058,5,160,0,0,1058,1063,3,24,12,0,1059,1060,5,162, + 0,0,1060,1062,3,24,12,0,1061,1059,1,0,0,0,1062,1065,1,0,0,0,1063, + 1061,1,0,0,0,1063,1064,1,0,0,0,1064,1066,1,0,0,0,1065,1063,1,0,0, + 0,1066,1067,5,161,0,0,1067,1128,1,0,0,0,1068,1069,5,20,0,0,1069, + 1070,5,160,0,0,1070,1075,3,24,12,0,1071,1072,5,162,0,0,1072,1074, + 3,24,12,0,1073,1071,1,0,0,0,1074,1077,1,0,0,0,1075,1073,1,0,0,0, + 1075,1076,1,0,0,0,1076,1078,1,0,0,0,1077,1075,1,0,0,0,1078,1079, + 5,161,0,0,1079,1128,1,0,0,0,1080,1081,5,46,0,0,1081,1082,5,160,0, + 0,1082,1085,3,24,12,0,1083,1084,5,162,0,0,1084,1086,3,24,12,0,1085, + 1083,1,0,0,0,1086,1087,1,0,0,0,1087,1085,1,0,0,0,1087,1088,1,0,0, + 0,1088,1089,1,0,0,0,1089,1090,5,161,0,0,1090,1128,1,0,0,0,1091,1092, + 5,47,0,0,1092,1093,5,160,0,0,1093,1096,3,24,12,0,1094,1095,5,162, + 0,0,1095,1097,3,24,12,0,1096,1094,1,0,0,0,1097,1098,1,0,0,0,1098, + 1096,1,0,0,0,1098,1099,1,0,0,0,1099,1100,1,0,0,0,1100,1101,5,161, + 0,0,1101,1128,1,0,0,0,1102,1103,5,48,0,0,1103,1104,5,160,0,0,1104, + 1107,3,24,12,0,1105,1106,5,162,0,0,1106,1108,3,24,12,0,1107,1105, + 1,0,0,0,1108,1109,1,0,0,0,1109,1107,1,0,0,0,1109,1110,1,0,0,0,1110, + 1111,1,0,0,0,1111,1112,5,161,0,0,1112,1128,1,0,0,0,1113,1114,5,50, + 0,0,1114,1115,5,160,0,0,1115,1116,3,24,12,0,1116,1117,5,162,0,0, + 1117,1118,3,24,12,0,1118,1119,5,161,0,0,1119,1128,1,0,0,0,1120,1121, + 5,51,0,0,1121,1122,5,160,0,0,1122,1123,3,24,12,0,1123,1124,5,162, + 0,0,1124,1125,3,24,12,0,1125,1126,5,161,0,0,1126,1128,1,0,0,0,1127, + 1056,1,0,0,0,1127,1068,1,0,0,0,1127,1080,1,0,0,0,1127,1091,1,0,0, + 0,1127,1102,1,0,0,0,1127,1113,1,0,0,0,1127,1120,1,0,0,0,1128,59, + 1,0,0,0,1129,1130,5,127,0,0,1130,1131,5,160,0,0,1131,1134,3,24,12, + 0,1132,1133,5,162,0,0,1133,1135,3,24,12,0,1134,1132,1,0,0,0,1134, + 1135,1,0,0,0,1135,1136,1,0,0,0,1136,1137,5,161,0,0,1137,1351,1,0, + 0,0,1138,1139,5,128,0,0,1139,1140,5,160,0,0,1140,1143,3,24,12,0, + 1141,1142,5,162,0,0,1142,1144,3,24,12,0,1143,1141,1,0,0,0,1143,1144, + 1,0,0,0,1144,1145,1,0,0,0,1145,1146,5,161,0,0,1146,1351,1,0,0,0, + 1147,1148,5,130,0,0,1148,1149,5,160,0,0,1149,1150,3,24,12,0,1150, + 1151,5,162,0,0,1151,1154,3,24,12,0,1152,1153,5,162,0,0,1153,1155, + 3,24,12,0,1154,1152,1,0,0,0,1154,1155,1,0,0,0,1155,1156,1,0,0,0, + 1156,1157,5,161,0,0,1157,1351,1,0,0,0,1158,1159,5,132,0,0,1159,1160, + 5,160,0,0,1160,1161,3,24,12,0,1161,1162,5,162,0,0,1162,1165,3,24, + 12,0,1163,1164,5,162,0,0,1164,1166,3,24,12,0,1165,1163,1,0,0,0,1165, + 1166,1,0,0,0,1166,1167,1,0,0,0,1167,1168,5,161,0,0,1168,1351,1,0, + 0,0,1169,1170,5,133,0,0,1170,1171,5,160,0,0,1171,1172,3,24,12,0, + 1172,1173,5,162,0,0,1173,1176,3,24,12,0,1174,1175,5,162,0,0,1175, + 1177,3,24,12,0,1176,1174,1,0,0,0,1176,1177,1,0,0,0,1177,1178,1,0, + 0,0,1178,1179,5,161,0,0,1179,1351,1,0,0,0,1180,1181,5,129,0,0,1181, + 1182,5,160,0,0,1182,1183,3,24,12,0,1183,1184,5,162,0,0,1184,1185, + 3,24,12,0,1185,1186,5,162,0,0,1186,1189,3,24,12,0,1187,1188,5,162, + 0,0,1188,1190,3,24,12,0,1189,1187,1,0,0,0,1189,1190,1,0,0,0,1190, + 1191,1,0,0,0,1191,1192,5,161,0,0,1192,1351,1,0,0,0,1193,1194,5,131, + 0,0,1194,1195,5,160,0,0,1195,1196,3,24,12,0,1196,1197,5,162,0,0, + 1197,1198,3,24,12,0,1198,1199,5,162,0,0,1199,1202,3,24,12,0,1200, + 1201,5,162,0,0,1201,1203,3,24,12,0,1202,1200,1,0,0,0,1202,1203,1, + 0,0,0,1203,1204,1,0,0,0,1204,1205,5,161,0,0,1205,1351,1,0,0,0,1206, + 1207,5,134,0,0,1207,1208,5,160,0,0,1208,1209,3,24,12,0,1209,1210, + 5,162,0,0,1210,1211,3,24,12,0,1211,1212,5,162,0,0,1212,1215,3,24, + 12,0,1213,1214,5,162,0,0,1214,1216,3,24,12,0,1215,1213,1,0,0,0,1215, + 1216,1,0,0,0,1216,1217,1,0,0,0,1217,1218,5,161,0,0,1218,1351,1,0, + 0,0,1219,1220,5,135,0,0,1220,1221,5,160,0,0,1221,1222,3,24,12,0, + 1222,1223,5,162,0,0,1223,1224,3,24,12,0,1224,1225,5,162,0,0,1225, + 1228,3,24,12,0,1226,1227,5,162,0,0,1227,1229,3,24,12,0,1228,1226, + 1,0,0,0,1228,1229,1,0,0,0,1229,1230,1,0,0,0,1230,1231,5,161,0,0, + 1231,1351,1,0,0,0,1232,1233,5,136,0,0,1233,1234,5,160,0,0,1234,1235, + 3,24,12,0,1235,1236,5,162,0,0,1236,1237,3,24,12,0,1237,1238,5,162, + 0,0,1238,1241,3,24,12,0,1239,1240,5,162,0,0,1240,1242,3,24,12,0, + 1241,1239,1,0,0,0,1241,1242,1,0,0,0,1242,1243,1,0,0,0,1243,1244, + 5,161,0,0,1244,1351,1,0,0,0,1245,1246,5,137,0,0,1246,1247,5,160, + 0,0,1247,1248,3,24,12,0,1248,1249,5,162,0,0,1249,1250,3,24,12,0, + 1250,1251,5,162,0,0,1251,1254,3,24,12,0,1252,1253,5,162,0,0,1253, + 1255,3,24,12,0,1254,1252,1,0,0,0,1254,1255,1,0,0,0,1255,1256,1,0, + 0,0,1256,1257,5,161,0,0,1257,1351,1,0,0,0,1258,1259,5,138,0,0,1259, + 1260,5,160,0,0,1260,1261,3,24,12,0,1261,1262,5,162,0,0,1262,1263, + 3,24,12,0,1263,1264,5,162,0,0,1264,1267,3,24,12,0,1265,1266,5,162, + 0,0,1266,1268,3,24,12,0,1267,1265,1,0,0,0,1267,1268,1,0,0,0,1268, + 1269,1,0,0,0,1269,1270,5,161,0,0,1270,1351,1,0,0,0,1271,1272,5,139, + 0,0,1272,1273,5,160,0,0,1273,1274,3,24,12,0,1274,1275,5,162,0,0, + 1275,1278,3,24,12,0,1276,1277,5,162,0,0,1277,1279,3,24,12,0,1278, + 1276,1,0,0,0,1278,1279,1,0,0,0,1279,1280,1,0,0,0,1280,1281,5,161, + 0,0,1281,1351,1,0,0,0,1282,1283,5,140,0,0,1283,1284,5,160,0,0,1284, + 1285,3,24,12,0,1285,1286,5,162,0,0,1286,1289,3,24,12,0,1287,1288, + 5,162,0,0,1288,1290,3,24,12,0,1289,1287,1,0,0,0,1289,1290,1,0,0, + 0,1290,1291,1,0,0,0,1291,1292,5,161,0,0,1292,1351,1,0,0,0,1293,1294, + 5,141,0,0,1294,1295,5,160,0,0,1295,1296,3,24,12,0,1296,1297,5,162, + 0,0,1297,1300,3,24,12,0,1298,1299,5,162,0,0,1299,1301,3,24,12,0, + 1300,1298,1,0,0,0,1300,1301,1,0,0,0,1301,1304,1,0,0,0,1302,1303, + 5,162,0,0,1303,1305,3,24,12,0,1304,1302,1,0,0,0,1304,1305,1,0,0, + 0,1305,1308,1,0,0,0,1306,1307,5,162,0,0,1307,1309,3,24,12,0,1308, + 1306,1,0,0,0,1308,1309,1,0,0,0,1309,1310,1,0,0,0,1310,1311,5,161, + 0,0,1311,1351,1,0,0,0,1312,1313,5,142,0,0,1313,1314,5,160,0,0,1314, + 1315,3,24,12,0,1315,1316,5,162,0,0,1316,1319,3,24,12,0,1317,1318, + 5,162,0,0,1318,1320,3,24,12,0,1319,1317,1,0,0,0,1319,1320,1,0,0, + 0,1320,1323,1,0,0,0,1321,1322,5,162,0,0,1322,1324,3,24,12,0,1323, + 1321,1,0,0,0,1323,1324,1,0,0,0,1324,1327,1,0,0,0,1325,1326,5,162, + 0,0,1326,1328,3,24,12,0,1327,1325,1,0,0,0,1327,1328,1,0,0,0,1328, + 1329,1,0,0,0,1329,1330,5,161,0,0,1330,1351,1,0,0,0,1331,1332,5,143, + 0,0,1332,1333,5,160,0,0,1333,1334,3,24,12,0,1334,1335,5,162,0,0, + 1335,1338,3,24,12,0,1336,1337,5,162,0,0,1337,1339,3,24,12,0,1338, + 1336,1,0,0,0,1338,1339,1,0,0,0,1339,1342,1,0,0,0,1340,1341,5,162, + 0,0,1341,1343,3,24,12,0,1342,1340,1,0,0,0,1342,1343,1,0,0,0,1343, + 1346,1,0,0,0,1344,1345,5,162,0,0,1345,1347,3,24,12,0,1346,1344,1, + 0,0,0,1346,1347,1,0,0,0,1347,1348,1,0,0,0,1348,1349,5,161,0,0,1349, + 1351,1,0,0,0,1350,1129,1,0,0,0,1350,1138,1,0,0,0,1350,1147,1,0,0, + 0,1350,1158,1,0,0,0,1350,1169,1,0,0,0,1350,1180,1,0,0,0,1350,1193, + 1,0,0,0,1350,1206,1,0,0,0,1350,1219,1,0,0,0,1350,1232,1,0,0,0,1350, + 1245,1,0,0,0,1350,1258,1,0,0,0,1350,1271,1,0,0,0,1350,1282,1,0,0, + 0,1350,1293,1,0,0,0,1350,1312,1,0,0,0,1350,1331,1,0,0,0,1351,61, 1,0,0,0,72,65,67,72,79,85,96,103,115,129,138,158,171,178,207,209, 221,223,238,240,252,254,262,269,281,288,316,324,330,337,549,603, - 662,776,822,824,867,869,871,896,993,997,1032,1054,1066,1078,1089, - 1100,1118,1125,1134,1145,1156,1167,1180,1193,1206,1219,1232,1245, - 1258,1269,1280,1291,1295,1299,1310,1314,1318,1329,1333,1337,1341 + 662,776,822,824,867,869,871,896,993,1006,1041,1063,1075,1087,1098, + 1109,1127,1134,1143,1154,1165,1176,1189,1202,1215,1228,1241,1254, + 1267,1278,1289,1300,1304,1308,1319,1323,1327,1338,1342,1346,1350 ] class MathExprParser ( Parser ): @@ -1032,7 +1036,7 @@ class MathExprParser ( Parser ): self.state = 83 self.block() pass - elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 159, 160, 165, 171, 172, 173]: + elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 159, 160, 165, 171, 172, 173]: self.state = 84 self.expr() pass @@ -1723,7 +1727,7 @@ class MathExprParser ( Parser ): self.state = 158 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -158329741508609) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & 63915556077567) != 0): + while (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -158329674399745) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & 63915556077567) != 0): self.state = 155 self.stmt() self.state = 160 @@ -1870,7 +1874,7 @@ class MathExprParser ( Parser ): self.state = 171 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1398578857639937) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & 61716532822015) != 0): + if (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1398578790531073) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & 61716532822015) != 0): self.state = 170 self.expr() @@ -2969,7 +2973,7 @@ class MathExprParser ( Parser ): self.state = 267 self.unaryExpr() pass - elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 159, 160, 165, 171, 172, 173]: + elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 159, 160, 165, 171, 172, 173]: localctx = MathExprParser.ToIndexContext(self, localctx) self.enterOuterAlt(localctx, 3) self.state = 268 @@ -3601,7 +3605,7 @@ class MathExprParser ( Parser ): self.state = 324 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1398578857639937) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & 61716532822015) != 0): + if (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1398578790531073) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & 61716532822015) != 0): self.state = 323 self.exprList() @@ -7477,6 +7481,37 @@ class MathExprParser ( Parser ): return visitor.visitChildren(self) + class OverlayFuncContext(Func3Context): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context + super().__init__(parser) + self.copyFrom(ctx) + + def OVERLAY(self): + return self.getToken(MathExprParser.OVERLAY, 0) + def LPAREN(self): + return self.getToken(MathExprParser.LPAREN, 0) + def expr(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(MathExprParser.ExprContext) + else: + return self.getTypedRuleContext(MathExprParser.ExprContext,i) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(MathExprParser.COMMA) + else: + return self.getToken(MathExprParser.COMMA, i) + def RPAREN(self): + return self.getToken(MathExprParser.RPAREN, 0) + + def accept(self, visitor:ParseTreeVisitor): + if hasattr( visitor, "visitOverlayFunc" ): + return visitor.visitOverlayFunc(self) + else: + return visitor.visitChildren(self) + + class MomentFuncContext(Func3Context): def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context @@ -7791,7 +7826,7 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 52, self.RULE_func3) self._la = 0 # Token type try: - self.state = 997 + self.state = 1006 self._errHandler.sync(self) token = self._input.LA(1) if token in [31]: @@ -8016,6 +8051,26 @@ class MathExprParser ( Parser ): self.state = 995 self.match(MathExprParser.RPAREN) pass + elif token in [90]: + localctx = MathExprParser.OverlayFuncContext(self, localctx) + self.enterOuterAlt(localctx, 12) + self.state = 997 + self.match(MathExprParser.OVERLAY) + self.state = 998 + self.match(MathExprParser.LPAREN) + self.state = 999 + self.expr() + self.state = 1000 + self.match(MathExprParser.COMMA) + self.state = 1001 + self.expr() + self.state = 1002 + self.match(MathExprParser.COMMA) + self.state = 1003 + self.expr() + self.state = 1004 + self.match(MathExprParser.RPAREN) + pass else: raise NoViableAltException(self) @@ -8144,40 +8199,20 @@ class MathExprParser ( Parser ): localctx = MathExprParser.Func4Context(self, self._ctx, self.state) self.enterRule(localctx, 54, self.RULE_func4) try: - self.state = 1032 + self.state = 1041 self._errHandler.sync(self) token = self._input.LA(1) if token in [49]: localctx = MathExprParser.SwapFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 999 - self.match(MathExprParser.SWAP) - self.state = 1000 - self.match(MathExprParser.LPAREN) - self.state = 1001 - self.expr() - self.state = 1002 - self.match(MathExprParser.COMMA) - self.state = 1003 - self.expr() - self.state = 1004 - self.match(MathExprParser.COMMA) - self.state = 1005 - self.expr() - self.state = 1006 - self.match(MathExprParser.COMMA) - self.state = 1007 - self.expr() self.state = 1008 - self.match(MathExprParser.RPAREN) - pass - elif token in [37]: - localctx = MathExprParser.NvlFuncContext(self, localctx) - self.enterOuterAlt(localctx, 2) - self.state = 1010 - self.match(MathExprParser.NVL) - self.state = 1011 + self.match(MathExprParser.SWAP) + self.state = 1009 self.match(MathExprParser.LPAREN) + self.state = 1010 + self.expr() + self.state = 1011 + self.match(MathExprParser.COMMA) self.state = 1012 self.expr() self.state = 1013 @@ -8189,19 +8224,19 @@ class MathExprParser ( Parser ): self.state = 1016 self.expr() self.state = 1017 - self.match(MathExprParser.COMMA) - self.state = 1018 - self.expr() - self.state = 1019 self.match(MathExprParser.RPAREN) pass - elif token in [79]: - localctx = MathExprParser.DistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 3) - self.state = 1021 - self.match(MathExprParser.DIST) - self.state = 1022 + elif token in [37]: + localctx = MathExprParser.NvlFuncContext(self, localctx) + self.enterOuterAlt(localctx, 2) + self.state = 1019 + self.match(MathExprParser.NVL) + self.state = 1020 self.match(MathExprParser.LPAREN) + self.state = 1021 + self.expr() + self.state = 1022 + self.match(MathExprParser.COMMA) self.state = 1023 self.expr() self.state = 1024 @@ -8213,10 +8248,30 @@ class MathExprParser ( Parser ): self.state = 1027 self.expr() self.state = 1028 - self.match(MathExprParser.COMMA) - self.state = 1029 - self.expr() + self.match(MathExprParser.RPAREN) + pass + elif token in [79]: + localctx = MathExprParser.DistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 3) self.state = 1030 + self.match(MathExprParser.DIST) + self.state = 1031 + self.match(MathExprParser.LPAREN) + self.state = 1032 + self.expr() + self.state = 1033 + self.match(MathExprParser.COMMA) + self.state = 1034 + self.expr() + self.state = 1035 + self.match(MathExprParser.COMMA) + self.state = 1036 + self.expr() + self.state = 1037 + self.match(MathExprParser.COMMA) + self.state = 1038 + self.expr() + self.state = 1039 self.match(MathExprParser.RPAREN) pass else: @@ -8287,29 +8342,29 @@ class MathExprParser ( Parser ): try: localctx = MathExprParser.RemapFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1034 - self.match(MathExprParser.REMAP) - self.state = 1035 - self.match(MathExprParser.LPAREN) - self.state = 1036 - self.expr() - self.state = 1037 - self.match(MathExprParser.COMMA) - self.state = 1038 - self.expr() - self.state = 1039 - self.match(MathExprParser.COMMA) - self.state = 1040 - self.expr() - self.state = 1041 - self.match(MathExprParser.COMMA) - self.state = 1042 - self.expr() self.state = 1043 - self.match(MathExprParser.COMMA) + self.match(MathExprParser.REMAP) self.state = 1044 - self.expr() + self.match(MathExprParser.LPAREN) self.state = 1045 + self.expr() + self.state = 1046 + self.match(MathExprParser.COMMA) + self.state = 1047 + self.expr() + self.state = 1048 + self.match(MathExprParser.COMMA) + self.state = 1049 + self.expr() + self.state = 1050 + self.match(MathExprParser.COMMA) + self.state = 1051 + self.expr() + self.state = 1052 + self.match(MathExprParser.COMMA) + self.state = 1053 + self.expr() + self.state = 1054 self.match(MathExprParser.RPAREN) except RecognitionException as re: localctx.exception = re @@ -8555,165 +8610,165 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 58, self.RULE_funcN) self._la = 0 # Token type try: - self.state = 1118 + self.state = 1127 self._errHandler.sync(self) token = self._input.LA(1) if token in [19]: localctx = MathExprParser.SMinFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1047 + self.state = 1056 self.match(MathExprParser.SMIN) - self.state = 1048 + self.state = 1057 self.match(MathExprParser.LPAREN) - self.state = 1049 + self.state = 1058 self.expr() - self.state = 1054 + self.state = 1063 self._errHandler.sync(self) _la = self._input.LA(1) while _la==162: - self.state = 1050 + self.state = 1059 self.match(MathExprParser.COMMA) - self.state = 1051 + self.state = 1060 self.expr() - self.state = 1056 + self.state = 1065 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1057 + self.state = 1066 self.match(MathExprParser.RPAREN) pass elif token in [20]: localctx = MathExprParser.SMaxFuncContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 1059 + self.state = 1068 self.match(MathExprParser.SMAX) - self.state = 1060 + self.state = 1069 self.match(MathExprParser.LPAREN) - self.state = 1061 + self.state = 1070 self.expr() - self.state = 1066 + self.state = 1075 self._errHandler.sync(self) _la = self._input.LA(1) while _la==162: - self.state = 1062 + self.state = 1071 self.match(MathExprParser.COMMA) - self.state = 1063 + self.state = 1072 self.expr() - self.state = 1068 + self.state = 1077 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1069 + self.state = 1078 self.match(MathExprParser.RPAREN) pass elif token in [46]: localctx = MathExprParser.MapFuncContext(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 1071 + self.state = 1080 self.match(MathExprParser.MAP) - self.state = 1072 + self.state = 1081 self.match(MathExprParser.LPAREN) - self.state = 1073 + self.state = 1082 self.expr() - self.state = 1076 + self.state = 1085 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 1074 + self.state = 1083 self.match(MathExprParser.COMMA) - self.state = 1075 + self.state = 1084 self.expr() - self.state = 1078 + self.state = 1087 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==162): break - self.state = 1080 + self.state = 1089 self.match(MathExprParser.RPAREN) pass elif token in [47]: localctx = MathExprParser.EzConvFuncContext(self, localctx) self.enterOuterAlt(localctx, 4) - self.state = 1082 + self.state = 1091 self.match(MathExprParser.EZCONV) - self.state = 1083 + self.state = 1092 self.match(MathExprParser.LPAREN) - self.state = 1084 + self.state = 1093 self.expr() - self.state = 1087 + self.state = 1096 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 1085 + self.state = 1094 self.match(MathExprParser.COMMA) - self.state = 1086 + self.state = 1095 self.expr() - self.state = 1089 + self.state = 1098 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==162): break - self.state = 1091 + self.state = 1100 self.match(MathExprParser.RPAREN) pass elif token in [48]: localctx = MathExprParser.ConvFuncContext(self, localctx) self.enterOuterAlt(localctx, 5) - self.state = 1093 + self.state = 1102 self.match(MathExprParser.CONV) - self.state = 1094 + self.state = 1103 self.match(MathExprParser.LPAREN) - self.state = 1095 + self.state = 1104 self.expr() - self.state = 1098 + self.state = 1107 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 1096 + self.state = 1105 self.match(MathExprParser.COMMA) - self.state = 1097 + self.state = 1106 self.expr() - self.state = 1100 + self.state = 1109 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==162): break - self.state = 1102 + self.state = 1111 self.match(MathExprParser.RPAREN) pass elif token in [50]: localctx = MathExprParser.PermuteFuncContext(self, localctx) self.enterOuterAlt(localctx, 6) - self.state = 1104 + self.state = 1113 self.match(MathExprParser.PERM) - self.state = 1105 + self.state = 1114 self.match(MathExprParser.LPAREN) - self.state = 1106 + self.state = 1115 self.expr() - self.state = 1107 + self.state = 1116 self.match(MathExprParser.COMMA) - self.state = 1108 + self.state = 1117 self.expr() - self.state = 1109 + self.state = 1118 self.match(MathExprParser.RPAREN) pass elif token in [51]: localctx = MathExprParser.ReshapeFuncContext(self, localctx) self.enterOuterAlt(localctx, 7) - self.state = 1111 + self.state = 1120 self.match(MathExprParser.RESHAPE) - self.state = 1112 + self.state = 1121 self.match(MathExprParser.LPAREN) - self.state = 1113 + self.state = 1122 self.expr() - self.state = 1114 + self.state = 1123 self.match(MathExprParser.COMMA) - self.state = 1115 + self.state = 1124 self.expr() - self.state = 1116 + self.state = 1125 self.match(MathExprParser.RPAREN) pass else: @@ -9273,36 +9328,14 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 60, self.RULE_funcNoise) self._la = 0 # Token type try: - self.state = 1341 + self.state = 1350 self._errHandler.sync(self) token = self._input.LA(1) if token in [127]: localctx = MathExprParser.NoiseFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1120 - self.match(MathExprParser.NOISE) - self.state = 1121 - self.match(MathExprParser.LPAREN) - self.state = 1122 - self.expr() - self.state = 1125 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==162: - self.state = 1123 - self.match(MathExprParser.COMMA) - self.state = 1124 - self.expr() - - - self.state = 1127 - self.match(MathExprParser.RPAREN) - pass - elif token in [128]: - localctx = MathExprParser.RandFuncContext(self, localctx) - self.enterOuterAlt(localctx, 2) self.state = 1129 - self.match(MathExprParser.RAND) + self.match(MathExprParser.NOISE) self.state = 1130 self.match(MathExprParser.LPAREN) self.state = 1131 @@ -9320,482 +9353,504 @@ class MathExprParser ( Parser ): self.state = 1136 self.match(MathExprParser.RPAREN) pass - elif token in [130]: - localctx = MathExprParser.ExponentialFuncContext(self, localctx) - self.enterOuterAlt(localctx, 3) + elif token in [128]: + localctx = MathExprParser.RandFuncContext(self, localctx) + self.enterOuterAlt(localctx, 2) self.state = 1138 - self.match(MathExprParser.EXPONENTIAL) + self.match(MathExprParser.RAND) self.state = 1139 self.match(MathExprParser.LPAREN) self.state = 1140 self.expr() - self.state = 1141 - self.match(MathExprParser.COMMA) - self.state = 1142 - self.expr() - self.state = 1145 + self.state = 1143 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1143 + self.state = 1141 self.match(MathExprParser.COMMA) - self.state = 1144 + self.state = 1142 self.expr() + self.state = 1145 + self.match(MathExprParser.RPAREN) + pass + elif token in [130]: + localctx = MathExprParser.ExponentialFuncContext(self, localctx) + self.enterOuterAlt(localctx, 3) self.state = 1147 + self.match(MathExprParser.EXPONENTIAL) + self.state = 1148 + self.match(MathExprParser.LPAREN) + self.state = 1149 + self.expr() + self.state = 1150 + self.match(MathExprParser.COMMA) + self.state = 1151 + self.expr() + self.state = 1154 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==162: + self.state = 1152 + self.match(MathExprParser.COMMA) + self.state = 1153 + self.expr() + + + self.state = 1156 self.match(MathExprParser.RPAREN) pass elif token in [132]: localctx = MathExprParser.BernoulliFuncContext(self, localctx) self.enterOuterAlt(localctx, 4) - self.state = 1149 + self.state = 1158 self.match(MathExprParser.BERNOULLI) - self.state = 1150 + self.state = 1159 self.match(MathExprParser.LPAREN) - self.state = 1151 + self.state = 1160 self.expr() - self.state = 1152 + self.state = 1161 self.match(MathExprParser.COMMA) - self.state = 1153 + self.state = 1162 self.expr() - self.state = 1156 + self.state = 1165 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1154 + self.state = 1163 self.match(MathExprParser.COMMA) - self.state = 1155 + self.state = 1164 self.expr() - self.state = 1158 + self.state = 1167 self.match(MathExprParser.RPAREN) pass elif token in [133]: localctx = MathExprParser.PoissonFuncContext(self, localctx) self.enterOuterAlt(localctx, 5) - self.state = 1160 + self.state = 1169 self.match(MathExprParser.POISSON) - self.state = 1161 + self.state = 1170 self.match(MathExprParser.LPAREN) - self.state = 1162 + self.state = 1171 self.expr() - self.state = 1163 + self.state = 1172 self.match(MathExprParser.COMMA) - self.state = 1164 + self.state = 1173 self.expr() - self.state = 1167 + self.state = 1176 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1165 + self.state = 1174 self.match(MathExprParser.COMMA) - self.state = 1166 + self.state = 1175 self.expr() - self.state = 1169 + self.state = 1178 self.match(MathExprParser.RPAREN) pass elif token in [129]: localctx = MathExprParser.CauchyFuncContext(self, localctx) self.enterOuterAlt(localctx, 6) - self.state = 1171 - self.match(MathExprParser.CAUCHY) - self.state = 1172 - self.match(MathExprParser.LPAREN) - self.state = 1173 - self.expr() - self.state = 1174 - self.match(MathExprParser.COMMA) - self.state = 1175 - self.expr() - self.state = 1176 - self.match(MathExprParser.COMMA) - self.state = 1177 - self.expr() self.state = 1180 + self.match(MathExprParser.CAUCHY) + self.state = 1181 + self.match(MathExprParser.LPAREN) + self.state = 1182 + self.expr() + self.state = 1183 + self.match(MathExprParser.COMMA) + self.state = 1184 + self.expr() + self.state = 1185 + self.match(MathExprParser.COMMA) + self.state = 1186 + self.expr() + self.state = 1189 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1178 + self.state = 1187 self.match(MathExprParser.COMMA) - self.state = 1179 + self.state = 1188 self.expr() - self.state = 1182 + self.state = 1191 self.match(MathExprParser.RPAREN) pass elif token in [131]: localctx = MathExprParser.LogNormalFuncContext(self, localctx) self.enterOuterAlt(localctx, 7) - self.state = 1184 - self.match(MathExprParser.LOGNORMAL) - self.state = 1185 - self.match(MathExprParser.LPAREN) - self.state = 1186 - self.expr() - self.state = 1187 - self.match(MathExprParser.COMMA) - self.state = 1188 - self.expr() - self.state = 1189 - self.match(MathExprParser.COMMA) - self.state = 1190 - self.expr() self.state = 1193 + self.match(MathExprParser.LOGNORMAL) + self.state = 1194 + self.match(MathExprParser.LPAREN) + self.state = 1195 + self.expr() + self.state = 1196 + self.match(MathExprParser.COMMA) + self.state = 1197 + self.expr() + self.state = 1198 + self.match(MathExprParser.COMMA) + self.state = 1199 + self.expr() + self.state = 1202 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1191 + self.state = 1200 self.match(MathExprParser.COMMA) - self.state = 1192 + self.state = 1201 self.expr() - self.state = 1195 + self.state = 1204 self.match(MathExprParser.RPAREN) pass elif token in [134]: localctx = MathExprParser.GammaDistFuncContext(self, localctx) self.enterOuterAlt(localctx, 8) - self.state = 1197 - self.match(MathExprParser.GAMMADIST) - self.state = 1198 - self.match(MathExprParser.LPAREN) - self.state = 1199 - self.expr() - self.state = 1200 - self.match(MathExprParser.COMMA) - self.state = 1201 - self.expr() - self.state = 1202 - self.match(MathExprParser.COMMA) - self.state = 1203 - self.expr() self.state = 1206 + self.match(MathExprParser.GAMMADIST) + self.state = 1207 + self.match(MathExprParser.LPAREN) + self.state = 1208 + self.expr() + self.state = 1209 + self.match(MathExprParser.COMMA) + self.state = 1210 + self.expr() + self.state = 1211 + self.match(MathExprParser.COMMA) + self.state = 1212 + self.expr() + self.state = 1215 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1204 + self.state = 1213 self.match(MathExprParser.COMMA) - self.state = 1205 + self.state = 1214 self.expr() - self.state = 1208 + self.state = 1217 self.match(MathExprParser.RPAREN) pass elif token in [135]: localctx = MathExprParser.BetaDistFuncContext(self, localctx) self.enterOuterAlt(localctx, 9) - self.state = 1210 - self.match(MathExprParser.BETADIST) - self.state = 1211 - self.match(MathExprParser.LPAREN) - self.state = 1212 - self.expr() - self.state = 1213 - self.match(MathExprParser.COMMA) - self.state = 1214 - self.expr() - self.state = 1215 - self.match(MathExprParser.COMMA) - self.state = 1216 - self.expr() self.state = 1219 + self.match(MathExprParser.BETADIST) + self.state = 1220 + self.match(MathExprParser.LPAREN) + self.state = 1221 + self.expr() + self.state = 1222 + self.match(MathExprParser.COMMA) + self.state = 1223 + self.expr() + self.state = 1224 + self.match(MathExprParser.COMMA) + self.state = 1225 + self.expr() + self.state = 1228 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1217 + self.state = 1226 self.match(MathExprParser.COMMA) - self.state = 1218 + self.state = 1227 self.expr() - self.state = 1221 + self.state = 1230 self.match(MathExprParser.RPAREN) pass elif token in [136]: localctx = MathExprParser.LaplaceDistFuncContext(self, localctx) self.enterOuterAlt(localctx, 10) - self.state = 1223 - self.match(MathExprParser.LAPLACEDIST) - self.state = 1224 - self.match(MathExprParser.LPAREN) - self.state = 1225 - self.expr() - self.state = 1226 - self.match(MathExprParser.COMMA) - self.state = 1227 - self.expr() - self.state = 1228 - self.match(MathExprParser.COMMA) - self.state = 1229 - self.expr() self.state = 1232 + self.match(MathExprParser.LAPLACEDIST) + self.state = 1233 + self.match(MathExprParser.LPAREN) + self.state = 1234 + self.expr() + self.state = 1235 + self.match(MathExprParser.COMMA) + self.state = 1236 + self.expr() + self.state = 1237 + self.match(MathExprParser.COMMA) + self.state = 1238 + self.expr() + self.state = 1241 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1230 + self.state = 1239 self.match(MathExprParser.COMMA) - self.state = 1231 + self.state = 1240 self.expr() - self.state = 1234 + self.state = 1243 self.match(MathExprParser.RPAREN) pass elif token in [137]: localctx = MathExprParser.GumbelDistFuncContext(self, localctx) self.enterOuterAlt(localctx, 11) - self.state = 1236 - self.match(MathExprParser.GUMBELDIST) - self.state = 1237 - self.match(MathExprParser.LPAREN) - self.state = 1238 - self.expr() - self.state = 1239 - self.match(MathExprParser.COMMA) - self.state = 1240 - self.expr() - self.state = 1241 - self.match(MathExprParser.COMMA) - self.state = 1242 - self.expr() self.state = 1245 + self.match(MathExprParser.GUMBELDIST) + self.state = 1246 + self.match(MathExprParser.LPAREN) + self.state = 1247 + self.expr() + self.state = 1248 + self.match(MathExprParser.COMMA) + self.state = 1249 + self.expr() + self.state = 1250 + self.match(MathExprParser.COMMA) + self.state = 1251 + self.expr() + self.state = 1254 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1243 + self.state = 1252 self.match(MathExprParser.COMMA) - self.state = 1244 + self.state = 1253 self.expr() - self.state = 1247 + self.state = 1256 self.match(MathExprParser.RPAREN) pass elif token in [138]: localctx = MathExprParser.WeibullDistFuncContext(self, localctx) self.enterOuterAlt(localctx, 12) - self.state = 1249 - self.match(MathExprParser.WEIBULLDIST) - self.state = 1250 - self.match(MathExprParser.LPAREN) - self.state = 1251 - self.expr() - self.state = 1252 - self.match(MathExprParser.COMMA) - self.state = 1253 - self.expr() - self.state = 1254 - self.match(MathExprParser.COMMA) - self.state = 1255 - self.expr() self.state = 1258 + self.match(MathExprParser.WEIBULLDIST) + self.state = 1259 + self.match(MathExprParser.LPAREN) + self.state = 1260 + self.expr() + self.state = 1261 + self.match(MathExprParser.COMMA) + self.state = 1262 + self.expr() + self.state = 1263 + self.match(MathExprParser.COMMA) + self.state = 1264 + self.expr() + self.state = 1267 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1256 + self.state = 1265 self.match(MathExprParser.COMMA) - self.state = 1257 + self.state = 1266 self.expr() - self.state = 1260 + self.state = 1269 self.match(MathExprParser.RPAREN) pass elif token in [139]: localctx = MathExprParser.Chi2DistFuncContext(self, localctx) self.enterOuterAlt(localctx, 13) - self.state = 1262 + self.state = 1271 self.match(MathExprParser.CHI2DIST) - self.state = 1263 + self.state = 1272 self.match(MathExprParser.LPAREN) - self.state = 1264 + self.state = 1273 self.expr() - self.state = 1265 + self.state = 1274 self.match(MathExprParser.COMMA) - self.state = 1266 + self.state = 1275 self.expr() - self.state = 1269 + self.state = 1278 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1267 + self.state = 1276 self.match(MathExprParser.COMMA) - self.state = 1268 + self.state = 1277 self.expr() - self.state = 1271 + self.state = 1280 self.match(MathExprParser.RPAREN) pass elif token in [140]: localctx = MathExprParser.StudentTDistFuncContext(self, localctx) self.enterOuterAlt(localctx, 14) - self.state = 1273 + self.state = 1282 self.match(MathExprParser.STUDENTTDIST) - self.state = 1274 + self.state = 1283 self.match(MathExprParser.LPAREN) - self.state = 1275 + self.state = 1284 self.expr() - self.state = 1276 + self.state = 1285 self.match(MathExprParser.COMMA) - self.state = 1277 + self.state = 1286 self.expr() - self.state = 1280 + self.state = 1289 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1278 + self.state = 1287 self.match(MathExprParser.COMMA) - self.state = 1279 + self.state = 1288 self.expr() - self.state = 1282 + self.state = 1291 self.match(MathExprParser.RPAREN) pass elif token in [141]: localctx = MathExprParser.PerlinFuncContext(self, localctx) self.enterOuterAlt(localctx, 15) - self.state = 1284 + self.state = 1293 self.match(MathExprParser.PERLIN) - self.state = 1285 + self.state = 1294 self.match(MathExprParser.LPAREN) - self.state = 1286 + self.state = 1295 self.expr() - self.state = 1287 + self.state = 1296 self.match(MathExprParser.COMMA) - self.state = 1288 + self.state = 1297 self.expr() - self.state = 1291 + self.state = 1300 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,62,self._ctx) if la_ == 1: - self.state = 1289 + self.state = 1298 self.match(MathExprParser.COMMA) - self.state = 1290 + self.state = 1299 self.expr() - self.state = 1295 + self.state = 1304 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,63,self._ctx) if la_ == 1: - self.state = 1293 + self.state = 1302 self.match(MathExprParser.COMMA) - self.state = 1294 + self.state = 1303 self.expr() - self.state = 1299 + self.state = 1308 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1297 + self.state = 1306 self.match(MathExprParser.COMMA) - self.state = 1298 + self.state = 1307 self.expr() - self.state = 1301 + self.state = 1310 self.match(MathExprParser.RPAREN) pass elif token in [142]: localctx = MathExprParser.CellularFuncContext(self, localctx) self.enterOuterAlt(localctx, 16) - self.state = 1303 + self.state = 1312 self.match(MathExprParser.CELLULAR) - self.state = 1304 + self.state = 1313 self.match(MathExprParser.LPAREN) - self.state = 1305 + self.state = 1314 self.expr() - self.state = 1306 + self.state = 1315 self.match(MathExprParser.COMMA) - self.state = 1307 + self.state = 1316 self.expr() - self.state = 1310 + self.state = 1319 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,65,self._ctx) if la_ == 1: - self.state = 1308 + self.state = 1317 self.match(MathExprParser.COMMA) - self.state = 1309 + self.state = 1318 self.expr() - self.state = 1314 + self.state = 1323 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,66,self._ctx) if la_ == 1: - self.state = 1312 + self.state = 1321 self.match(MathExprParser.COMMA) - self.state = 1313 + self.state = 1322 self.expr() - self.state = 1318 + self.state = 1327 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1316 + self.state = 1325 self.match(MathExprParser.COMMA) - self.state = 1317 + self.state = 1326 self.expr() - self.state = 1320 + self.state = 1329 self.match(MathExprParser.RPAREN) pass elif token in [143]: localctx = MathExprParser.PlasmaFuncContext(self, localctx) self.enterOuterAlt(localctx, 17) - self.state = 1322 + self.state = 1331 self.match(MathExprParser.PLASMA) - self.state = 1323 + self.state = 1332 self.match(MathExprParser.LPAREN) - self.state = 1324 + self.state = 1333 self.expr() - self.state = 1325 + self.state = 1334 self.match(MathExprParser.COMMA) - self.state = 1326 + self.state = 1335 self.expr() - self.state = 1329 + self.state = 1338 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,68,self._ctx) if la_ == 1: - self.state = 1327 + self.state = 1336 self.match(MathExprParser.COMMA) - self.state = 1328 + self.state = 1337 self.expr() - self.state = 1333 + self.state = 1342 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,69,self._ctx) if la_ == 1: - self.state = 1331 + self.state = 1340 self.match(MathExprParser.COMMA) - self.state = 1332 + self.state = 1341 self.expr() - self.state = 1337 + self.state = 1346 self._errHandler.sync(self) _la = self._input.LA(1) if _la==162: - self.state = 1335 + self.state = 1344 self.match(MathExprParser.COMMA) - self.state = 1336 + self.state = 1345 self.expr() - self.state = 1339 + self.state = 1348 self.match(MathExprParser.RPAREN) pass else: diff --git a/more_math/Parser/MathExprVisitor.py b/more_math/Parser/MathExprVisitor.py index c30c81d..871fe03 100644 --- a/more_math/Parser/MathExprVisitor.py +++ b/more_math/Parser/MathExprVisitor.py @@ -854,6 +854,11 @@ class MathExprVisitor(ParseTreeVisitor): return self.visitChildren(ctx) + # Visit a parse tree produced by MathExprParser#OverlayFunc. + def visitOverlayFunc(self, ctx:MathExprParser.OverlayFuncContext): + return self.visitChildren(ctx) + + # Visit a parse tree produced by MathExprParser#SwapFunc. def visitSwapFunc(self, ctx:MathExprParser.SwapFuncContext): return self.visitChildren(ctx)