From 23c03d8606c24a3d660aef17f46bdb2a0e0ca7d2 Mon Sep 17 00:00:00 2001 From: Joel Mut <62260472+sw-joelmut@users.noreply.github.com> Date: Fri, 9 Feb 2024 10:58:04 -0300 Subject: [PATCH] Fix ANTLR when LU content contains only comments (#6747) --- .../Generated/LUFileLexer.cs | 321 ++-- .../Generated/LUFileLexer.interp | 2 +- .../Generated/LUFileParser.cs | 1309 +++++++++-------- .../Generated/LUFileParser.interp | 2 +- .../LUFileLexer.g4 | 2 +- .../LUFileParser.g4 | 5 +- .../Fixtures/LU_Sections_Unix.json | 4 +- .../Fixtures/LU_Sections_Windows.json | Bin 100892 -> 100884 bytes .../Fixtures/testLU131.json | 2 +- .../Fixtures/testLU139.json | 2 +- .../Fixtures/testLU153.json | 2 +- 11 files changed, 835 insertions(+), 816 deletions(-) diff --git a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.cs b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.cs index 545c561319..aef59d733b 100644 --- a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.cs +++ b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.cs @@ -122,7 +122,7 @@ static LUFileLexer() { } } private static int[] _serializedATN = { - 4,0,40,737,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7, + 4,0,40,739,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,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, @@ -145,42 +145,42 @@ static LUFileLexer() { 32,275,1,33,5,33,279,8,33,10,33,12,33,282,9,33,1,33,1,33,5,33,286,8,33, 10,33,12,33,289,9,33,1,33,1,33,1,33,1,33,4,33,295,8,33,11,33,12,33,296, 1,34,5,34,300,8,34,10,34,12,34,303,9,34,1,34,1,34,5,34,307,8,34,10,34, - 12,34,310,9,34,1,35,4,35,313,8,35,11,35,12,35,314,1,35,5,35,318,8,35,10, - 35,12,35,321,9,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37,1, - 37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,40,5,40,344,8,40,10, - 40,12,40,347,9,40,1,40,1,40,5,40,351,8,40,10,40,12,40,354,9,40,1,40,1, - 40,5,40,358,8,40,10,40,12,40,361,9,40,1,40,1,40,5,40,365,8,40,10,40,12, - 40,368,9,40,1,40,1,40,1,40,5,40,373,8,40,10,40,12,40,376,9,40,1,40,3,40, - 379,8,40,1,41,5,41,382,8,41,10,41,12,41,385,9,41,1,41,1,41,5,41,389,8, - 41,10,41,12,41,392,9,41,1,41,1,41,5,41,396,8,41,10,41,12,41,399,9,41,1, - 41,1,41,5,41,403,8,41,10,41,12,41,406,9,41,1,41,5,41,409,8,41,10,41,12, - 41,412,9,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42, - 1,42,1,42,1,43,1,43,1,43,1,43,5,43,432,8,43,10,43,12,43,435,9,43,1,43, - 1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,5,44,447,8,44,10,44,12,44, - 450,9,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1, - 45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,47,1,47,1,47,1,47,1,48,3,48,477, - 8,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,50,1,50,1,51,1,51,1,51,1,51, - 1,51,1,51,1,51,1,51,3,51,496,8,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1, - 52,1,52,1,52,1,52,1,52,3,52,510,8,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53, + 12,34,310,9,34,1,34,1,34,1,35,4,35,315,8,35,11,35,12,35,316,1,35,5,35, + 320,8,35,10,35,12,35,323,9,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36, + 1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,40,5,40, + 346,8,40,10,40,12,40,349,9,40,1,40,1,40,5,40,353,8,40,10,40,12,40,356, + 9,40,1,40,1,40,5,40,360,8,40,10,40,12,40,363,9,40,1,40,1,40,5,40,367,8, + 40,10,40,12,40,370,9,40,1,40,1,40,1,40,5,40,375,8,40,10,40,12,40,378,9, + 40,1,40,3,40,381,8,40,1,41,5,41,384,8,41,10,41,12,41,387,9,41,1,41,1,41, + 5,41,391,8,41,10,41,12,41,394,9,41,1,41,1,41,5,41,398,8,41,10,41,12,41, + 401,9,41,1,41,1,41,5,41,405,8,41,10,41,12,41,408,9,41,1,41,5,41,411,8, + 41,10,41,12,41,414,9,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1, + 42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,5,43,434,8,43,10,43,12,43,437, + 9,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,5,44,449,8,44,10, + 44,12,44,452,9,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1, + 45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,47,1,47,1,47,1,47,1, + 48,3,48,479,8,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,50,1,50,1,51,1,51, + 1,51,1,51,1,51,1,51,1,51,1,51,3,51,498,8,51,1,52,1,52,1,52,1,52,1,52,1, + 52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,512,8,52,1,53,1,53,1,53,1,53,1,53, 1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53, 1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53, 1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53, 1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53, - 1,53,1,53,1,53,1,53,1,53,1,53,3,53,581,8,53,1,54,1,54,5,54,585,8,54,10, - 54,12,54,588,9,54,1,54,1,54,1,55,1,55,5,55,594,8,55,10,55,12,55,597,9, - 55,1,55,1,55,1,56,1,56,5,56,603,8,56,10,56,12,56,606,9,56,1,57,4,57,609, - 8,57,11,57,12,57,610,1,58,1,58,4,58,615,8,58,11,58,12,58,616,1,58,1,58, - 1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,61,3,61,630,8,61,1,61,1,61,1, - 61,1,61,1,61,1,62,1,62,1,62,3,62,640,8,62,1,62,1,62,1,62,5,62,645,8,62, - 10,62,12,62,648,9,62,1,63,1,63,1,64,1,64,1,64,1,64,1,65,3,65,657,8,65, - 1,65,1,65,1,65,1,65,1,65,1,66,1,66,3,66,666,8,66,1,67,1,67,1,67,1,67,5, - 67,672,8,67,10,67,12,67,675,9,67,1,67,5,67,678,8,67,10,67,12,67,681,9, - 67,1,67,1,67,1,68,4,68,686,8,68,11,68,12,68,687,1,69,1,69,1,69,1,69,1, - 70,3,70,695,8,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,5,71,704,8,71,10,71, - 12,71,707,9,71,1,71,1,71,1,72,1,72,5,72,713,8,72,10,72,12,72,716,9,72, - 1,73,4,73,719,8,73,11,73,12,73,720,1,74,1,74,1,75,3,75,726,8,75,1,75,1, - 75,1,75,1,75,1,75,1,76,4,76,734,8,76,11,76,12,76,735,7,352,366,374,390, - 433,448,687,0,77,6,0,8,0,10,0,12,0,14,0,16,0,18,0,20,0,22,0,24,0,26,0, + 1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,3,53,583,8,53,1,54,1,54,5,54,587, + 8,54,10,54,12,54,590,9,54,1,54,1,54,1,55,1,55,5,55,596,8,55,10,55,12,55, + 599,9,55,1,55,1,55,1,56,1,56,5,56,605,8,56,10,56,12,56,608,9,56,1,57,4, + 57,611,8,57,11,57,12,57,612,1,58,1,58,4,58,617,8,58,11,58,12,58,618,1, + 58,1,58,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,61,3,61,632,8,61,1,61, + 1,61,1,61,1,61,1,61,1,62,1,62,1,62,3,62,642,8,62,1,62,1,62,1,62,5,62,647, + 8,62,10,62,12,62,650,9,62,1,63,1,63,1,64,1,64,1,64,1,64,1,65,3,65,659, + 8,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,3,66,668,8,66,1,67,1,67,1,67,1, + 67,5,67,674,8,67,10,67,12,67,677,9,67,1,67,5,67,680,8,67,10,67,12,67,683, + 9,67,1,67,1,67,1,68,4,68,688,8,68,11,68,12,68,689,1,69,1,69,1,69,1,69, + 1,70,3,70,697,8,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,5,71,706,8,71,10, + 71,12,71,709,9,71,1,71,1,71,1,72,1,72,5,72,715,8,72,10,72,12,72,718,9, + 72,1,73,4,73,721,8,73,11,73,12,73,722,1,74,1,74,1,75,3,75,728,8,75,1,75, + 1,75,1,75,1,75,1,75,1,76,4,76,736,8,76,11,76,12,76,737,7,354,368,376,392, + 435,450,689,0,77,6,0,8,0,10,0,12,0,14,0,16,0,18,0,20,0,22,0,24,0,26,0, 28,0,30,0,32,0,34,0,36,0,38,0,40,0,42,0,44,0,46,0,48,0,50,0,52,0,54,0, 56,0,58,0,60,0,62,0,64,0,66,1,68,2,70,3,72,4,74,5,76,6,78,7,80,8,82,9, 84,10,86,11,88,12,90,13,92,14,94,15,96,16,98,17,100,0,102,0,104,18,106, @@ -198,7 +198,7 @@ static LUFileLexer() { 13,40,41,7,0,10,10,13,13,40,41,91,91,93,93,123,123,125,125,7,0,9,10,13, 13,32,32,34,34,39,39,44,44,59,59,2,0,34,34,39,39,6,0,9,10,13,13,34,34, 39,39,44,44,59,59,2,0,45,45,95,95,4,0,10,10,13,13,123,123,125,125,4,0, - 9,10,13,13,32,32,92,92,4,0,9,10,13,13,32,32,58,58,761,0,66,1,0,0,0,0,68, + 9,10,13,13,32,32,92,92,4,0,9,10,13,13,32,32,58,58,763,0,66,1,0,0,0,0,68, 1,0,0,0,0,70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76,1,0,0,0,0,78,1,0,0, 0,0,80,1,0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0,0,0,88,1,0,0,0,0,90, 1,0,0,0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98,1,0,0,0,1,100,1,0, @@ -215,16 +215,16 @@ static LUFileLexer() { 0,0,0,46,200,1,0,0,0,48,202,1,0,0,0,50,204,1,0,0,0,52,206,1,0,0,0,54,208, 1,0,0,0,56,210,1,0,0,0,58,212,1,0,0,0,60,214,1,0,0,0,62,216,1,0,0,0,64, 218,1,0,0,0,66,221,1,0,0,0,68,226,1,0,0,0,70,235,1,0,0,0,72,280,1,0,0, - 0,74,301,1,0,0,0,76,312,1,0,0,0,78,326,1,0,0,0,80,330,1,0,0,0,82,334,1, - 0,0,0,84,338,1,0,0,0,86,345,1,0,0,0,88,383,1,0,0,0,90,413,1,0,0,0,92,427, - 1,0,0,0,94,441,1,0,0,0,96,455,1,0,0,0,98,469,1,0,0,0,100,471,1,0,0,0,102, - 476,1,0,0,0,104,483,1,0,0,0,106,485,1,0,0,0,108,487,1,0,0,0,110,497,1, - 0,0,0,112,580,1,0,0,0,114,582,1,0,0,0,116,591,1,0,0,0,118,600,1,0,0,0, - 120,608,1,0,0,0,122,612,1,0,0,0,124,620,1,0,0,0,126,624,1,0,0,0,128,629, - 1,0,0,0,130,639,1,0,0,0,132,649,1,0,0,0,134,651,1,0,0,0,136,656,1,0,0, - 0,138,663,1,0,0,0,140,667,1,0,0,0,142,685,1,0,0,0,144,689,1,0,0,0,146, - 694,1,0,0,0,148,701,1,0,0,0,150,710,1,0,0,0,152,718,1,0,0,0,154,722,1, - 0,0,0,156,725,1,0,0,0,158,733,1,0,0,0,160,161,7,0,0,0,161,7,1,0,0,0,162, + 0,74,301,1,0,0,0,76,314,1,0,0,0,78,328,1,0,0,0,80,332,1,0,0,0,82,336,1, + 0,0,0,84,340,1,0,0,0,86,347,1,0,0,0,88,385,1,0,0,0,90,415,1,0,0,0,92,429, + 1,0,0,0,94,443,1,0,0,0,96,457,1,0,0,0,98,471,1,0,0,0,100,473,1,0,0,0,102, + 478,1,0,0,0,104,485,1,0,0,0,106,487,1,0,0,0,108,489,1,0,0,0,110,499,1, + 0,0,0,112,582,1,0,0,0,114,584,1,0,0,0,116,593,1,0,0,0,118,602,1,0,0,0, + 120,610,1,0,0,0,122,614,1,0,0,0,124,622,1,0,0,0,126,626,1,0,0,0,128,631, + 1,0,0,0,130,641,1,0,0,0,132,651,1,0,0,0,134,653,1,0,0,0,136,658,1,0,0, + 0,138,665,1,0,0,0,140,669,1,0,0,0,142,687,1,0,0,0,144,691,1,0,0,0,146, + 696,1,0,0,0,148,703,1,0,0,0,150,712,1,0,0,0,152,720,1,0,0,0,154,724,1, + 0,0,0,156,727,1,0,0,0,158,735,1,0,0,0,160,161,7,0,0,0,161,7,1,0,0,0,162, 163,7,1,0,0,163,9,1,0,0,0,164,165,7,2,0,0,165,11,1,0,0,0,166,167,7,3,0, 0,167,13,1,0,0,0,168,169,7,4,0,0,169,15,1,0,0,0,170,171,7,5,0,0,171,17, 1,0,0,0,172,173,7,6,0,0,173,19,1,0,0,0,174,175,7,7,0,0,175,21,1,0,0,0, @@ -261,122 +261,123 @@ static LUFileLexer() { 0,297,73,1,0,0,0,298,300,3,66,30,0,299,298,1,0,0,0,300,303,1,0,0,0,301, 299,1,0,0,0,301,302,1,0,0,0,302,304,1,0,0,0,303,301,1,0,0,0,304,308,5, 62,0,0,305,307,8,29,0,0,306,305,1,0,0,0,307,310,1,0,0,0,308,306,1,0,0, - 0,308,309,1,0,0,0,309,75,1,0,0,0,310,308,1,0,0,0,311,313,5,35,0,0,312, - 311,1,0,0,0,313,314,1,0,0,0,314,312,1,0,0,0,314,315,1,0,0,0,315,319,1, - 0,0,0,316,318,3,66,30,0,317,316,1,0,0,0,318,321,1,0,0,0,319,317,1,0,0, - 0,319,320,1,0,0,0,320,322,1,0,0,0,321,319,1,0,0,0,322,323,5,63,0,0,323, - 324,1,0,0,0,324,325,6,35,1,0,325,77,1,0,0,0,326,327,5,35,0,0,327,328,1, - 0,0,0,328,329,6,36,2,0,329,79,1,0,0,0,330,331,3,64,29,0,331,332,1,0,0, - 0,332,333,6,37,3,0,333,81,1,0,0,0,334,335,5,36,0,0,335,336,1,0,0,0,336, - 337,6,38,4,0,337,83,1,0,0,0,338,339,5,64,0,0,339,340,1,0,0,0,340,341,6, - 39,5,0,341,85,1,0,0,0,342,344,3,66,30,0,343,342,1,0,0,0,344,347,1,0,0, - 0,345,343,1,0,0,0,345,346,1,0,0,0,346,348,1,0,0,0,347,345,1,0,0,0,348, - 352,5,91,0,0,349,351,8,30,0,0,350,349,1,0,0,0,351,354,1,0,0,0,352,353, - 1,0,0,0,352,350,1,0,0,0,353,355,1,0,0,0,354,352,1,0,0,0,355,359,5,93,0, - 0,356,358,3,66,30,0,357,356,1,0,0,0,358,361,1,0,0,0,359,357,1,0,0,0,359, - 360,1,0,0,0,360,378,1,0,0,0,361,359,1,0,0,0,362,366,5,40,0,0,363,365,8, - 31,0,0,364,363,1,0,0,0,365,368,1,0,0,0,366,367,1,0,0,0,366,364,1,0,0,0, - 367,369,1,0,0,0,368,366,1,0,0,0,369,379,5,41,0,0,370,374,5,91,0,0,371, - 373,8,30,0,0,372,371,1,0,0,0,373,376,1,0,0,0,374,375,1,0,0,0,374,372,1, - 0,0,0,375,377,1,0,0,0,376,374,1,0,0,0,377,379,5,93,0,0,378,362,1,0,0,0, - 378,370,1,0,0,0,379,87,1,0,0,0,380,382,3,66,30,0,381,380,1,0,0,0,382,385, - 1,0,0,0,383,381,1,0,0,0,383,384,1,0,0,0,384,386,1,0,0,0,385,383,1,0,0, - 0,386,390,5,91,0,0,387,389,8,30,0,0,388,387,1,0,0,0,389,392,1,0,0,0,390, - 391,1,0,0,0,390,388,1,0,0,0,391,393,1,0,0,0,392,390,1,0,0,0,393,397,5, - 93,0,0,394,396,3,66,30,0,395,394,1,0,0,0,396,399,1,0,0,0,397,395,1,0,0, - 0,397,398,1,0,0,0,398,400,1,0,0,0,399,397,1,0,0,0,400,404,5,58,0,0,401, - 403,3,66,30,0,402,401,1,0,0,0,403,406,1,0,0,0,404,402,1,0,0,0,404,405, - 1,0,0,0,405,410,1,0,0,0,406,404,1,0,0,0,407,409,8,29,0,0,408,407,1,0,0, - 0,409,412,1,0,0,0,410,408,1,0,0,0,410,411,1,0,0,0,411,89,1,0,0,0,412,410, - 1,0,0,0,413,414,5,42,0,0,414,415,5,42,0,0,415,416,1,0,0,0,416,417,3,16, - 5,0,417,418,3,22,8,0,418,419,3,28,11,0,419,420,3,44,19,0,420,421,3,14, - 4,0,421,422,3,40,17,0,422,423,3,42,18,0,423,424,5,58,0,0,424,425,5,42, - 0,0,425,426,5,42,0,0,426,91,1,0,0,0,427,428,5,60,0,0,428,429,5,97,0,0, - 429,433,1,0,0,0,430,432,9,0,0,0,431,430,1,0,0,0,432,435,1,0,0,0,433,434, - 1,0,0,0,433,431,1,0,0,0,434,436,1,0,0,0,435,433,1,0,0,0,436,437,5,60,0, - 0,437,438,5,47,0,0,438,439,5,97,0,0,439,440,5,62,0,0,440,93,1,0,0,0,441, - 442,5,96,0,0,442,443,5,96,0,0,443,444,5,96,0,0,444,448,1,0,0,0,445,447, - 9,0,0,0,446,445,1,0,0,0,447,450,1,0,0,0,448,449,1,0,0,0,448,446,1,0,0, - 0,449,451,1,0,0,0,450,448,1,0,0,0,451,452,5,96,0,0,452,453,5,96,0,0,453, - 454,5,96,0,0,454,95,1,0,0,0,455,456,5,42,0,0,456,457,5,42,0,0,457,458, - 1,0,0,0,458,459,3,36,15,0,459,460,3,40,17,0,460,461,3,34,14,0,461,462, - 3,30,12,0,462,463,3,36,15,0,463,464,3,44,19,0,464,465,3,42,18,0,465,466, - 5,58,0,0,466,467,5,42,0,0,467,468,5,42,0,0,468,97,1,0,0,0,469,470,9,0, - 0,0,470,99,1,0,0,0,471,472,3,66,30,0,472,473,1,0,0,0,473,474,6,47,6,0, - 474,101,1,0,0,0,475,477,5,13,0,0,476,475,1,0,0,0,476,477,1,0,0,0,477,478, - 1,0,0,0,478,479,5,10,0,0,479,480,1,0,0,0,480,481,6,48,7,0,481,482,6,48, - 8,0,482,103,1,0,0,0,483,484,5,61,0,0,484,105,1,0,0,0,485,486,5,44,0,0, - 486,107,1,0,0,0,487,488,3,20,7,0,488,489,3,6,0,0,489,490,3,42,18,0,490, - 491,3,40,17,0,491,492,3,34,14,0,492,493,3,28,11,0,493,495,3,14,4,0,494, - 496,3,42,18,0,495,494,1,0,0,0,495,496,1,0,0,0,496,109,1,0,0,0,497,498, - 3,46,20,0,498,499,3,42,18,0,499,500,3,14,4,0,500,501,3,42,18,0,501,502, - 3,16,5,0,502,503,3,14,4,0,503,504,3,6,0,0,504,505,3,44,19,0,505,506,3, - 46,20,0,506,507,3,40,17,0,507,509,3,14,4,0,508,510,3,42,18,0,509,508,1, - 0,0,0,509,510,1,0,0,0,510,111,1,0,0,0,511,512,3,42,18,0,512,513,3,22,8, - 0,513,514,3,30,12,0,514,515,3,36,15,0,515,516,3,28,11,0,516,517,3,14,4, - 0,517,581,1,0,0,0,518,519,3,28,11,0,519,520,3,22,8,0,520,521,3,42,18,0, - 521,522,3,44,19,0,522,581,1,0,0,0,523,524,3,40,17,0,524,525,3,14,4,0,525, - 526,3,18,6,0,526,527,3,14,4,0,527,528,3,52,23,0,528,581,1,0,0,0,529,530, - 3,36,15,0,530,531,3,40,17,0,531,532,3,14,4,0,532,533,3,8,1,0,533,534,3, - 46,20,0,534,535,3,22,8,0,535,536,3,28,11,0,536,537,3,44,19,0,537,581,1, - 0,0,0,538,539,3,10,2,0,539,540,3,34,14,0,540,541,3,30,12,0,541,542,3,36, - 15,0,542,543,3,34,14,0,543,544,3,42,18,0,544,545,3,22,8,0,545,546,3,44, - 19,0,546,547,3,14,4,0,547,581,1,0,0,0,548,549,3,30,12,0,549,550,3,28,11, - 0,550,581,1,0,0,0,551,552,3,36,15,0,552,553,3,6,0,0,553,554,3,44,19,0, - 554,555,3,44,19,0,555,556,3,14,4,0,556,557,3,40,17,0,557,558,3,32,13,0, - 558,559,3,6,0,0,559,560,3,32,13,0,560,561,3,54,24,0,561,581,1,0,0,0,562, - 563,3,36,15,0,563,564,3,20,7,0,564,565,3,40,17,0,565,566,3,6,0,0,566,567, - 3,42,18,0,567,568,3,14,4,0,568,569,3,28,11,0,569,570,3,22,8,0,570,571, - 3,42,18,0,571,572,3,44,19,0,572,581,1,0,0,0,573,574,3,22,8,0,574,575,3, - 32,13,0,575,576,3,44,19,0,576,577,3,14,4,0,577,578,3,32,13,0,578,579,3, - 44,19,0,579,581,1,0,0,0,580,511,1,0,0,0,580,518,1,0,0,0,580,523,1,0,0, - 0,580,529,1,0,0,0,580,538,1,0,0,0,580,548,1,0,0,0,580,551,1,0,0,0,580, - 562,1,0,0,0,580,573,1,0,0,0,581,113,1,0,0,0,582,586,5,40,0,0,583,585,8, - 29,0,0,584,583,1,0,0,0,585,588,1,0,0,0,586,584,1,0,0,0,586,587,1,0,0,0, - 587,589,1,0,0,0,588,586,1,0,0,0,589,590,5,41,0,0,590,115,1,0,0,0,591,595, - 5,91,0,0,592,594,8,32,0,0,593,592,1,0,0,0,594,597,1,0,0,0,595,593,1,0, - 0,0,595,596,1,0,0,0,596,598,1,0,0,0,597,595,1,0,0,0,598,599,5,93,0,0,599, - 117,1,0,0,0,600,604,5,47,0,0,601,603,8,29,0,0,602,601,1,0,0,0,603,606, - 1,0,0,0,604,602,1,0,0,0,604,605,1,0,0,0,605,119,1,0,0,0,606,604,1,0,0, - 0,607,609,8,33,0,0,608,607,1,0,0,0,609,610,1,0,0,0,610,608,1,0,0,0,610, - 611,1,0,0,0,611,121,1,0,0,0,612,614,7,34,0,0,613,615,8,35,0,0,614,613, - 1,0,0,0,615,616,1,0,0,0,616,614,1,0,0,0,616,617,1,0,0,0,617,618,1,0,0, - 0,618,619,7,34,0,0,619,123,1,0,0,0,620,621,3,66,30,0,621,622,1,0,0,0,622, - 623,6,59,6,0,623,125,1,0,0,0,624,625,5,35,0,0,625,626,1,0,0,0,626,627, - 6,60,9,0,627,127,1,0,0,0,628,630,5,13,0,0,629,628,1,0,0,0,629,630,1,0, - 0,0,630,631,1,0,0,0,631,632,5,10,0,0,632,633,1,0,0,0,633,634,6,61,0,0, - 634,635,6,61,8,0,635,129,1,0,0,0,636,640,3,58,26,0,637,640,3,60,27,0,638, - 640,5,95,0,0,639,636,1,0,0,0,639,637,1,0,0,0,639,638,1,0,0,0,640,646,1, - 0,0,0,641,645,3,58,26,0,642,645,3,60,27,0,643,645,7,36,0,0,644,641,1,0, - 0,0,644,642,1,0,0,0,644,643,1,0,0,0,645,648,1,0,0,0,646,644,1,0,0,0,646, - 647,1,0,0,0,647,131,1,0,0,0,648,646,1,0,0,0,649,650,5,46,0,0,650,133,1, - 0,0,0,651,652,3,66,30,0,652,653,1,0,0,0,653,654,6,64,6,0,654,135,1,0,0, - 0,655,657,5,13,0,0,656,655,1,0,0,0,656,657,1,0,0,0,657,658,1,0,0,0,658, - 659,5,10,0,0,659,660,1,0,0,0,660,661,6,65,7,0,661,662,6,65,8,0,662,137, - 1,0,0,0,663,665,5,92,0,0,664,666,8,29,0,0,665,664,1,0,0,0,665,666,1,0, - 0,0,666,139,1,0,0,0,667,679,5,123,0,0,668,678,8,37,0,0,669,673,5,123,0, - 0,670,672,8,29,0,0,671,670,1,0,0,0,672,675,1,0,0,0,673,671,1,0,0,0,673, - 674,1,0,0,0,674,676,1,0,0,0,675,673,1,0,0,0,676,678,5,125,0,0,677,668, - 1,0,0,0,677,669,1,0,0,0,678,681,1,0,0,0,679,677,1,0,0,0,679,680,1,0,0, - 0,680,682,1,0,0,0,681,679,1,0,0,0,682,683,5,125,0,0,683,141,1,0,0,0,684, - 686,8,38,0,0,685,684,1,0,0,0,686,687,1,0,0,0,687,688,1,0,0,0,687,685,1, - 0,0,0,688,143,1,0,0,0,689,690,3,66,30,0,690,691,1,0,0,0,691,692,6,69,6, - 0,692,145,1,0,0,0,693,695,5,13,0,0,694,693,1,0,0,0,694,695,1,0,0,0,695, - 696,1,0,0,0,696,697,5,10,0,0,697,698,1,0,0,0,698,699,6,70,0,0,699,700, - 6,70,8,0,700,147,1,0,0,0,701,705,5,91,0,0,702,704,8,32,0,0,703,702,1,0, - 0,0,704,707,1,0,0,0,705,703,1,0,0,0,705,706,1,0,0,0,706,708,1,0,0,0,707, - 705,1,0,0,0,708,709,5,93,0,0,709,149,1,0,0,0,710,714,5,47,0,0,711,713, - 8,29,0,0,712,711,1,0,0,0,713,716,1,0,0,0,714,712,1,0,0,0,714,715,1,0,0, - 0,715,151,1,0,0,0,716,714,1,0,0,0,717,719,8,39,0,0,718,717,1,0,0,0,719, - 720,1,0,0,0,720,718,1,0,0,0,720,721,1,0,0,0,721,153,1,0,0,0,722,723,5, - 58,0,0,723,155,1,0,0,0,724,726,5,13,0,0,725,724,1,0,0,0,725,726,1,0,0, - 0,726,727,1,0,0,0,727,728,5,10,0,0,728,729,1,0,0,0,729,730,6,75,0,0,730, - 731,6,75,8,0,731,157,1,0,0,0,732,734,8,29,0,0,733,732,1,0,0,0,734,735, - 1,0,0,0,735,733,1,0,0,0,735,736,1,0,0,0,736,159,1,0,0,0,57,0,1,2,3,4,5, - 223,226,235,242,268,275,280,287,296,301,308,314,319,345,352,359,366,374, - 378,383,390,397,404,410,433,448,476,495,509,580,586,595,604,610,616,629, - 639,644,646,656,665,673,677,679,687,694,705,714,720,725,735,10,6,0,0,5, - 5,0,5,2,0,5,3,0,5,4,0,5,1,0,7,1,0,7,2,0,4,0,0,7,7,0 + 0,308,309,1,0,0,0,309,311,1,0,0,0,310,308,1,0,0,0,311,312,6,34,0,0,312, + 75,1,0,0,0,313,315,5,35,0,0,314,313,1,0,0,0,315,316,1,0,0,0,316,314,1, + 0,0,0,316,317,1,0,0,0,317,321,1,0,0,0,318,320,3,66,30,0,319,318,1,0,0, + 0,320,323,1,0,0,0,321,319,1,0,0,0,321,322,1,0,0,0,322,324,1,0,0,0,323, + 321,1,0,0,0,324,325,5,63,0,0,325,326,1,0,0,0,326,327,6,35,1,0,327,77,1, + 0,0,0,328,329,5,35,0,0,329,330,1,0,0,0,330,331,6,36,2,0,331,79,1,0,0,0, + 332,333,3,64,29,0,333,334,1,0,0,0,334,335,6,37,3,0,335,81,1,0,0,0,336, + 337,5,36,0,0,337,338,1,0,0,0,338,339,6,38,4,0,339,83,1,0,0,0,340,341,5, + 64,0,0,341,342,1,0,0,0,342,343,6,39,5,0,343,85,1,0,0,0,344,346,3,66,30, + 0,345,344,1,0,0,0,346,349,1,0,0,0,347,345,1,0,0,0,347,348,1,0,0,0,348, + 350,1,0,0,0,349,347,1,0,0,0,350,354,5,91,0,0,351,353,8,30,0,0,352,351, + 1,0,0,0,353,356,1,0,0,0,354,355,1,0,0,0,354,352,1,0,0,0,355,357,1,0,0, + 0,356,354,1,0,0,0,357,361,5,93,0,0,358,360,3,66,30,0,359,358,1,0,0,0,360, + 363,1,0,0,0,361,359,1,0,0,0,361,362,1,0,0,0,362,380,1,0,0,0,363,361,1, + 0,0,0,364,368,5,40,0,0,365,367,8,31,0,0,366,365,1,0,0,0,367,370,1,0,0, + 0,368,369,1,0,0,0,368,366,1,0,0,0,369,371,1,0,0,0,370,368,1,0,0,0,371, + 381,5,41,0,0,372,376,5,91,0,0,373,375,8,30,0,0,374,373,1,0,0,0,375,378, + 1,0,0,0,376,377,1,0,0,0,376,374,1,0,0,0,377,379,1,0,0,0,378,376,1,0,0, + 0,379,381,5,93,0,0,380,364,1,0,0,0,380,372,1,0,0,0,381,87,1,0,0,0,382, + 384,3,66,30,0,383,382,1,0,0,0,384,387,1,0,0,0,385,383,1,0,0,0,385,386, + 1,0,0,0,386,388,1,0,0,0,387,385,1,0,0,0,388,392,5,91,0,0,389,391,8,30, + 0,0,390,389,1,0,0,0,391,394,1,0,0,0,392,393,1,0,0,0,392,390,1,0,0,0,393, + 395,1,0,0,0,394,392,1,0,0,0,395,399,5,93,0,0,396,398,3,66,30,0,397,396, + 1,0,0,0,398,401,1,0,0,0,399,397,1,0,0,0,399,400,1,0,0,0,400,402,1,0,0, + 0,401,399,1,0,0,0,402,406,5,58,0,0,403,405,3,66,30,0,404,403,1,0,0,0,405, + 408,1,0,0,0,406,404,1,0,0,0,406,407,1,0,0,0,407,412,1,0,0,0,408,406,1, + 0,0,0,409,411,8,29,0,0,410,409,1,0,0,0,411,414,1,0,0,0,412,410,1,0,0,0, + 412,413,1,0,0,0,413,89,1,0,0,0,414,412,1,0,0,0,415,416,5,42,0,0,416,417, + 5,42,0,0,417,418,1,0,0,0,418,419,3,16,5,0,419,420,3,22,8,0,420,421,3,28, + 11,0,421,422,3,44,19,0,422,423,3,14,4,0,423,424,3,40,17,0,424,425,3,42, + 18,0,425,426,5,58,0,0,426,427,5,42,0,0,427,428,5,42,0,0,428,91,1,0,0,0, + 429,430,5,60,0,0,430,431,5,97,0,0,431,435,1,0,0,0,432,434,9,0,0,0,433, + 432,1,0,0,0,434,437,1,0,0,0,435,436,1,0,0,0,435,433,1,0,0,0,436,438,1, + 0,0,0,437,435,1,0,0,0,438,439,5,60,0,0,439,440,5,47,0,0,440,441,5,97,0, + 0,441,442,5,62,0,0,442,93,1,0,0,0,443,444,5,96,0,0,444,445,5,96,0,0,445, + 446,5,96,0,0,446,450,1,0,0,0,447,449,9,0,0,0,448,447,1,0,0,0,449,452,1, + 0,0,0,450,451,1,0,0,0,450,448,1,0,0,0,451,453,1,0,0,0,452,450,1,0,0,0, + 453,454,5,96,0,0,454,455,5,96,0,0,455,456,5,96,0,0,456,95,1,0,0,0,457, + 458,5,42,0,0,458,459,5,42,0,0,459,460,1,0,0,0,460,461,3,36,15,0,461,462, + 3,40,17,0,462,463,3,34,14,0,463,464,3,30,12,0,464,465,3,36,15,0,465,466, + 3,44,19,0,466,467,3,42,18,0,467,468,5,58,0,0,468,469,5,42,0,0,469,470, + 5,42,0,0,470,97,1,0,0,0,471,472,9,0,0,0,472,99,1,0,0,0,473,474,3,66,30, + 0,474,475,1,0,0,0,475,476,6,47,6,0,476,101,1,0,0,0,477,479,5,13,0,0,478, + 477,1,0,0,0,478,479,1,0,0,0,479,480,1,0,0,0,480,481,5,10,0,0,481,482,1, + 0,0,0,482,483,6,48,7,0,483,484,6,48,8,0,484,103,1,0,0,0,485,486,5,61,0, + 0,486,105,1,0,0,0,487,488,5,44,0,0,488,107,1,0,0,0,489,490,3,20,7,0,490, + 491,3,6,0,0,491,492,3,42,18,0,492,493,3,40,17,0,493,494,3,34,14,0,494, + 495,3,28,11,0,495,497,3,14,4,0,496,498,3,42,18,0,497,496,1,0,0,0,497,498, + 1,0,0,0,498,109,1,0,0,0,499,500,3,46,20,0,500,501,3,42,18,0,501,502,3, + 14,4,0,502,503,3,42,18,0,503,504,3,16,5,0,504,505,3,14,4,0,505,506,3,6, + 0,0,506,507,3,44,19,0,507,508,3,46,20,0,508,509,3,40,17,0,509,511,3,14, + 4,0,510,512,3,42,18,0,511,510,1,0,0,0,511,512,1,0,0,0,512,111,1,0,0,0, + 513,514,3,42,18,0,514,515,3,22,8,0,515,516,3,30,12,0,516,517,3,36,15,0, + 517,518,3,28,11,0,518,519,3,14,4,0,519,583,1,0,0,0,520,521,3,28,11,0,521, + 522,3,22,8,0,522,523,3,42,18,0,523,524,3,44,19,0,524,583,1,0,0,0,525,526, + 3,40,17,0,526,527,3,14,4,0,527,528,3,18,6,0,528,529,3,14,4,0,529,530,3, + 52,23,0,530,583,1,0,0,0,531,532,3,36,15,0,532,533,3,40,17,0,533,534,3, + 14,4,0,534,535,3,8,1,0,535,536,3,46,20,0,536,537,3,22,8,0,537,538,3,28, + 11,0,538,539,3,44,19,0,539,583,1,0,0,0,540,541,3,10,2,0,541,542,3,34,14, + 0,542,543,3,30,12,0,543,544,3,36,15,0,544,545,3,34,14,0,545,546,3,42,18, + 0,546,547,3,22,8,0,547,548,3,44,19,0,548,549,3,14,4,0,549,583,1,0,0,0, + 550,551,3,30,12,0,551,552,3,28,11,0,552,583,1,0,0,0,553,554,3,36,15,0, + 554,555,3,6,0,0,555,556,3,44,19,0,556,557,3,44,19,0,557,558,3,14,4,0,558, + 559,3,40,17,0,559,560,3,32,13,0,560,561,3,6,0,0,561,562,3,32,13,0,562, + 563,3,54,24,0,563,583,1,0,0,0,564,565,3,36,15,0,565,566,3,20,7,0,566,567, + 3,40,17,0,567,568,3,6,0,0,568,569,3,42,18,0,569,570,3,14,4,0,570,571,3, + 28,11,0,571,572,3,22,8,0,572,573,3,42,18,0,573,574,3,44,19,0,574,583,1, + 0,0,0,575,576,3,22,8,0,576,577,3,32,13,0,577,578,3,44,19,0,578,579,3,14, + 4,0,579,580,3,32,13,0,580,581,3,44,19,0,581,583,1,0,0,0,582,513,1,0,0, + 0,582,520,1,0,0,0,582,525,1,0,0,0,582,531,1,0,0,0,582,540,1,0,0,0,582, + 550,1,0,0,0,582,553,1,0,0,0,582,564,1,0,0,0,582,575,1,0,0,0,583,113,1, + 0,0,0,584,588,5,40,0,0,585,587,8,29,0,0,586,585,1,0,0,0,587,590,1,0,0, + 0,588,586,1,0,0,0,588,589,1,0,0,0,589,591,1,0,0,0,590,588,1,0,0,0,591, + 592,5,41,0,0,592,115,1,0,0,0,593,597,5,91,0,0,594,596,8,32,0,0,595,594, + 1,0,0,0,596,599,1,0,0,0,597,595,1,0,0,0,597,598,1,0,0,0,598,600,1,0,0, + 0,599,597,1,0,0,0,600,601,5,93,0,0,601,117,1,0,0,0,602,606,5,47,0,0,603, + 605,8,29,0,0,604,603,1,0,0,0,605,608,1,0,0,0,606,604,1,0,0,0,606,607,1, + 0,0,0,607,119,1,0,0,0,608,606,1,0,0,0,609,611,8,33,0,0,610,609,1,0,0,0, + 611,612,1,0,0,0,612,610,1,0,0,0,612,613,1,0,0,0,613,121,1,0,0,0,614,616, + 7,34,0,0,615,617,8,35,0,0,616,615,1,0,0,0,617,618,1,0,0,0,618,616,1,0, + 0,0,618,619,1,0,0,0,619,620,1,0,0,0,620,621,7,34,0,0,621,123,1,0,0,0,622, + 623,3,66,30,0,623,624,1,0,0,0,624,625,6,59,6,0,625,125,1,0,0,0,626,627, + 5,35,0,0,627,628,1,0,0,0,628,629,6,60,9,0,629,127,1,0,0,0,630,632,5,13, + 0,0,631,630,1,0,0,0,631,632,1,0,0,0,632,633,1,0,0,0,633,634,5,10,0,0,634, + 635,1,0,0,0,635,636,6,61,0,0,636,637,6,61,8,0,637,129,1,0,0,0,638,642, + 3,58,26,0,639,642,3,60,27,0,640,642,5,95,0,0,641,638,1,0,0,0,641,639,1, + 0,0,0,641,640,1,0,0,0,642,648,1,0,0,0,643,647,3,58,26,0,644,647,3,60,27, + 0,645,647,7,36,0,0,646,643,1,0,0,0,646,644,1,0,0,0,646,645,1,0,0,0,647, + 650,1,0,0,0,648,646,1,0,0,0,648,649,1,0,0,0,649,131,1,0,0,0,650,648,1, + 0,0,0,651,652,5,46,0,0,652,133,1,0,0,0,653,654,3,66,30,0,654,655,1,0,0, + 0,655,656,6,64,6,0,656,135,1,0,0,0,657,659,5,13,0,0,658,657,1,0,0,0,658, + 659,1,0,0,0,659,660,1,0,0,0,660,661,5,10,0,0,661,662,1,0,0,0,662,663,6, + 65,7,0,663,664,6,65,8,0,664,137,1,0,0,0,665,667,5,92,0,0,666,668,8,29, + 0,0,667,666,1,0,0,0,667,668,1,0,0,0,668,139,1,0,0,0,669,681,5,123,0,0, + 670,680,8,37,0,0,671,675,5,123,0,0,672,674,8,29,0,0,673,672,1,0,0,0,674, + 677,1,0,0,0,675,673,1,0,0,0,675,676,1,0,0,0,676,678,1,0,0,0,677,675,1, + 0,0,0,678,680,5,125,0,0,679,670,1,0,0,0,679,671,1,0,0,0,680,683,1,0,0, + 0,681,679,1,0,0,0,681,682,1,0,0,0,682,684,1,0,0,0,683,681,1,0,0,0,684, + 685,5,125,0,0,685,141,1,0,0,0,686,688,8,38,0,0,687,686,1,0,0,0,688,689, + 1,0,0,0,689,690,1,0,0,0,689,687,1,0,0,0,690,143,1,0,0,0,691,692,3,66,30, + 0,692,693,1,0,0,0,693,694,6,69,6,0,694,145,1,0,0,0,695,697,5,13,0,0,696, + 695,1,0,0,0,696,697,1,0,0,0,697,698,1,0,0,0,698,699,5,10,0,0,699,700,1, + 0,0,0,700,701,6,70,0,0,701,702,6,70,8,0,702,147,1,0,0,0,703,707,5,91,0, + 0,704,706,8,32,0,0,705,704,1,0,0,0,706,709,1,0,0,0,707,705,1,0,0,0,707, + 708,1,0,0,0,708,710,1,0,0,0,709,707,1,0,0,0,710,711,5,93,0,0,711,149,1, + 0,0,0,712,716,5,47,0,0,713,715,8,29,0,0,714,713,1,0,0,0,715,718,1,0,0, + 0,716,714,1,0,0,0,716,717,1,0,0,0,717,151,1,0,0,0,718,716,1,0,0,0,719, + 721,8,39,0,0,720,719,1,0,0,0,721,722,1,0,0,0,722,720,1,0,0,0,722,723,1, + 0,0,0,723,153,1,0,0,0,724,725,5,58,0,0,725,155,1,0,0,0,726,728,5,13,0, + 0,727,726,1,0,0,0,727,728,1,0,0,0,728,729,1,0,0,0,729,730,5,10,0,0,730, + 731,1,0,0,0,731,732,6,75,0,0,732,733,6,75,8,0,733,157,1,0,0,0,734,736, + 8,29,0,0,735,734,1,0,0,0,736,737,1,0,0,0,737,735,1,0,0,0,737,738,1,0,0, + 0,738,159,1,0,0,0,57,0,1,2,3,4,5,223,226,235,242,268,275,280,287,296,301, + 308,316,321,347,354,361,368,376,380,385,392,399,406,412,435,450,478,497, + 511,582,588,597,606,612,618,631,641,646,648,658,667,675,679,681,689,696, + 707,716,722,727,737,10,6,0,0,5,5,0,5,2,0,5,3,0,5,4,0,5,1,0,7,1,0,7,2,0, + 4,0,0,7,7,0 }; public static readonly ATN _ATN = diff --git a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.interp b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.interp index 69f0f095f6..d87ad2bbe8 100644 --- a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.interp +++ b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileLexer.interp @@ -176,4 +176,4 @@ ENTITY_MODE QNA_MODE atn: -[4, 0, 40, 737, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 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, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 4, 30, 222, 8, 30, 11, 30, 12, 30, 223, 1, 31, 3, 31, 227, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 5, 32, 234, 8, 32, 10, 32, 12, 32, 237, 9, 32, 1, 32, 1, 32, 5, 32, 241, 8, 32, 10, 32, 12, 32, 244, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 267, 8, 32, 10, 32, 12, 32, 270, 9, 32, 1, 32, 1, 32, 4, 32, 274, 8, 32, 11, 32, 12, 32, 275, 1, 33, 5, 33, 279, 8, 33, 10, 33, 12, 33, 282, 9, 33, 1, 33, 1, 33, 5, 33, 286, 8, 33, 10, 33, 12, 33, 289, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 4, 33, 295, 8, 33, 11, 33, 12, 33, 296, 1, 34, 5, 34, 300, 8, 34, 10, 34, 12, 34, 303, 9, 34, 1, 34, 1, 34, 5, 34, 307, 8, 34, 10, 34, 12, 34, 310, 9, 34, 1, 35, 4, 35, 313, 8, 35, 11, 35, 12, 35, 314, 1, 35, 5, 35, 318, 8, 35, 10, 35, 12, 35, 321, 9, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 5, 40, 344, 8, 40, 10, 40, 12, 40, 347, 9, 40, 1, 40, 1, 40, 5, 40, 351, 8, 40, 10, 40, 12, 40, 354, 9, 40, 1, 40, 1, 40, 5, 40, 358, 8, 40, 10, 40, 12, 40, 361, 9, 40, 1, 40, 1, 40, 5, 40, 365, 8, 40, 10, 40, 12, 40, 368, 9, 40, 1, 40, 1, 40, 1, 40, 5, 40, 373, 8, 40, 10, 40, 12, 40, 376, 9, 40, 1, 40, 3, 40, 379, 8, 40, 1, 41, 5, 41, 382, 8, 41, 10, 41, 12, 41, 385, 9, 41, 1, 41, 1, 41, 5, 41, 389, 8, 41, 10, 41, 12, 41, 392, 9, 41, 1, 41, 1, 41, 5, 41, 396, 8, 41, 10, 41, 12, 41, 399, 9, 41, 1, 41, 1, 41, 5, 41, 403, 8, 41, 10, 41, 12, 41, 406, 9, 41, 1, 41, 5, 41, 409, 8, 41, 10, 41, 12, 41, 412, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43, 432, 8, 43, 10, 43, 12, 43, 435, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 447, 8, 44, 10, 44, 12, 44, 450, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 3, 48, 477, 8, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 496, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 510, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 581, 8, 53, 1, 54, 1, 54, 5, 54, 585, 8, 54, 10, 54, 12, 54, 588, 9, 54, 1, 54, 1, 54, 1, 55, 1, 55, 5, 55, 594, 8, 55, 10, 55, 12, 55, 597, 9, 55, 1, 55, 1, 55, 1, 56, 1, 56, 5, 56, 603, 8, 56, 10, 56, 12, 56, 606, 9, 56, 1, 57, 4, 57, 609, 8, 57, 11, 57, 12, 57, 610, 1, 58, 1, 58, 4, 58, 615, 8, 58, 11, 58, 12, 58, 616, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 3, 61, 630, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 3, 62, 640, 8, 62, 1, 62, 1, 62, 1, 62, 5, 62, 645, 8, 62, 10, 62, 12, 62, 648, 9, 62, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 3, 65, 657, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 3, 66, 666, 8, 66, 1, 67, 1, 67, 1, 67, 1, 67, 5, 67, 672, 8, 67, 10, 67, 12, 67, 675, 9, 67, 1, 67, 5, 67, 678, 8, 67, 10, 67, 12, 67, 681, 9, 67, 1, 67, 1, 67, 1, 68, 4, 68, 686, 8, 68, 11, 68, 12, 68, 687, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 3, 70, 695, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 5, 71, 704, 8, 71, 10, 71, 12, 71, 707, 9, 71, 1, 71, 1, 71, 1, 72, 1, 72, 5, 72, 713, 8, 72, 10, 72, 12, 72, 716, 9, 72, 1, 73, 4, 73, 719, 8, 73, 11, 73, 12, 73, 720, 1, 74, 1, 74, 1, 75, 3, 75, 726, 8, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 4, 76, 734, 8, 76, 11, 76, 12, 76, 735, 7, 352, 366, 374, 390, 433, 448, 687, 0, 77, 6, 0, 8, 0, 10, 0, 12, 0, 14, 0, 16, 0, 18, 0, 20, 0, 22, 0, 24, 0, 26, 0, 28, 0, 30, 0, 32, 0, 34, 0, 36, 0, 38, 0, 40, 0, 42, 0, 44, 0, 46, 0, 48, 0, 50, 0, 52, 0, 54, 0, 56, 0, 58, 0, 60, 0, 62, 0, 64, 0, 66, 1, 68, 2, 70, 3, 72, 4, 74, 5, 76, 6, 78, 7, 80, 8, 82, 9, 84, 10, 86, 11, 88, 12, 90, 13, 92, 14, 94, 15, 96, 16, 98, 17, 100, 0, 102, 0, 104, 18, 106, 19, 108, 20, 110, 21, 112, 22, 114, 23, 116, 24, 118, 25, 120, 26, 122, 27, 124, 0, 126, 0, 128, 28, 130, 29, 132, 30, 134, 0, 136, 0, 138, 31, 140, 32, 142, 33, 144, 0, 146, 34, 148, 35, 150, 36, 152, 37, 154, 38, 156, 39, 158, 40, 6, 0, 1, 2, 3, 4, 5, 40, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 65, 90, 97, 122, 4, 0, 9, 9, 32, 32, 160, 160, 65279, 65279, 2, 0, 42, 43, 45, 45, 2, 0, 10, 10, 13, 13, 4, 0, 10, 10, 13, 13, 91, 91, 93, 93, 3, 0, 10, 10, 13, 13, 40, 41, 7, 0, 10, 10, 13, 13, 40, 41, 91, 91, 93, 93, 123, 123, 125, 125, 7, 0, 9, 10, 13, 13, 32, 32, 34, 34, 39, 39, 44, 44, 59, 59, 2, 0, 34, 34, 39, 39, 6, 0, 9, 10, 13, 13, 34, 34, 39, 39, 44, 44, 59, 59, 2, 0, 45, 45, 95, 95, 4, 0, 10, 10, 13, 13, 123, 123, 125, 125, 4, 0, 9, 10, 13, 13, 32, 32, 92, 92, 4, 0, 9, 10, 13, 13, 32, 32, 58, 58, 761, 0, 66, 1, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 80, 1, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 86, 1, 0, 0, 0, 0, 88, 1, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 98, 1, 0, 0, 0, 1, 100, 1, 0, 0, 0, 1, 102, 1, 0, 0, 0, 1, 104, 1, 0, 0, 0, 1, 106, 1, 0, 0, 0, 1, 108, 1, 0, 0, 0, 1, 110, 1, 0, 0, 0, 1, 112, 1, 0, 0, 0, 1, 114, 1, 0, 0, 0, 1, 116, 1, 0, 0, 0, 1, 118, 1, 0, 0, 0, 1, 120, 1, 0, 0, 0, 1, 122, 1, 0, 0, 0, 2, 124, 1, 0, 0, 0, 2, 126, 1, 0, 0, 0, 2, 128, 1, 0, 0, 0, 2, 130, 1, 0, 0, 0, 2, 132, 1, 0, 0, 0, 3, 134, 1, 0, 0, 0, 3, 136, 1, 0, 0, 0, 3, 138, 1, 0, 0, 0, 3, 140, 1, 0, 0, 0, 3, 142, 1, 0, 0, 0, 4, 144, 1, 0, 0, 0, 4, 146, 1, 0, 0, 0, 4, 148, 1, 0, 0, 0, 4, 150, 1, 0, 0, 0, 4, 152, 1, 0, 0, 0, 4, 154, 1, 0, 0, 0, 5, 156, 1, 0, 0, 0, 5, 158, 1, 0, 0, 0, 6, 160, 1, 0, 0, 0, 8, 162, 1, 0, 0, 0, 10, 164, 1, 0, 0, 0, 12, 166, 1, 0, 0, 0, 14, 168, 1, 0, 0, 0, 16, 170, 1, 0, 0, 0, 18, 172, 1, 0, 0, 0, 20, 174, 1, 0, 0, 0, 22, 176, 1, 0, 0, 0, 24, 178, 1, 0, 0, 0, 26, 180, 1, 0, 0, 0, 28, 182, 1, 0, 0, 0, 30, 184, 1, 0, 0, 0, 32, 186, 1, 0, 0, 0, 34, 188, 1, 0, 0, 0, 36, 190, 1, 0, 0, 0, 38, 192, 1, 0, 0, 0, 40, 194, 1, 0, 0, 0, 42, 196, 1, 0, 0, 0, 44, 198, 1, 0, 0, 0, 46, 200, 1, 0, 0, 0, 48, 202, 1, 0, 0, 0, 50, 204, 1, 0, 0, 0, 52, 206, 1, 0, 0, 0, 54, 208, 1, 0, 0, 0, 56, 210, 1, 0, 0, 0, 58, 212, 1, 0, 0, 0, 60, 214, 1, 0, 0, 0, 62, 216, 1, 0, 0, 0, 64, 218, 1, 0, 0, 0, 66, 221, 1, 0, 0, 0, 68, 226, 1, 0, 0, 0, 70, 235, 1, 0, 0, 0, 72, 280, 1, 0, 0, 0, 74, 301, 1, 0, 0, 0, 76, 312, 1, 0, 0, 0, 78, 326, 1, 0, 0, 0, 80, 330, 1, 0, 0, 0, 82, 334, 1, 0, 0, 0, 84, 338, 1, 0, 0, 0, 86, 345, 1, 0, 0, 0, 88, 383, 1, 0, 0, 0, 90, 413, 1, 0, 0, 0, 92, 427, 1, 0, 0, 0, 94, 441, 1, 0, 0, 0, 96, 455, 1, 0, 0, 0, 98, 469, 1, 0, 0, 0, 100, 471, 1, 0, 0, 0, 102, 476, 1, 0, 0, 0, 104, 483, 1, 0, 0, 0, 106, 485, 1, 0, 0, 0, 108, 487, 1, 0, 0, 0, 110, 497, 1, 0, 0, 0, 112, 580, 1, 0, 0, 0, 114, 582, 1, 0, 0, 0, 116, 591, 1, 0, 0, 0, 118, 600, 1, 0, 0, 0, 120, 608, 1, 0, 0, 0, 122, 612, 1, 0, 0, 0, 124, 620, 1, 0, 0, 0, 126, 624, 1, 0, 0, 0, 128, 629, 1, 0, 0, 0, 130, 639, 1, 0, 0, 0, 132, 649, 1, 0, 0, 0, 134, 651, 1, 0, 0, 0, 136, 656, 1, 0, 0, 0, 138, 663, 1, 0, 0, 0, 140, 667, 1, 0, 0, 0, 142, 685, 1, 0, 0, 0, 144, 689, 1, 0, 0, 0, 146, 694, 1, 0, 0, 0, 148, 701, 1, 0, 0, 0, 150, 710, 1, 0, 0, 0, 152, 718, 1, 0, 0, 0, 154, 722, 1, 0, 0, 0, 156, 725, 1, 0, 0, 0, 158, 733, 1, 0, 0, 0, 160, 161, 7, 0, 0, 0, 161, 7, 1, 0, 0, 0, 162, 163, 7, 1, 0, 0, 163, 9, 1, 0, 0, 0, 164, 165, 7, 2, 0, 0, 165, 11, 1, 0, 0, 0, 166, 167, 7, 3, 0, 0, 167, 13, 1, 0, 0, 0, 168, 169, 7, 4, 0, 0, 169, 15, 1, 0, 0, 0, 170, 171, 7, 5, 0, 0, 171, 17, 1, 0, 0, 0, 172, 173, 7, 6, 0, 0, 173, 19, 1, 0, 0, 0, 174, 175, 7, 7, 0, 0, 175, 21, 1, 0, 0, 0, 176, 177, 7, 8, 0, 0, 177, 23, 1, 0, 0, 0, 178, 179, 7, 9, 0, 0, 179, 25, 1, 0, 0, 0, 180, 181, 7, 10, 0, 0, 181, 27, 1, 0, 0, 0, 182, 183, 7, 11, 0, 0, 183, 29, 1, 0, 0, 0, 184, 185, 7, 12, 0, 0, 185, 31, 1, 0, 0, 0, 186, 187, 7, 13, 0, 0, 187, 33, 1, 0, 0, 0, 188, 189, 7, 14, 0, 0, 189, 35, 1, 0, 0, 0, 190, 191, 7, 15, 0, 0, 191, 37, 1, 0, 0, 0, 192, 193, 7, 16, 0, 0, 193, 39, 1, 0, 0, 0, 194, 195, 7, 17, 0, 0, 195, 41, 1, 0, 0, 0, 196, 197, 7, 18, 0, 0, 197, 43, 1, 0, 0, 0, 198, 199, 7, 19, 0, 0, 199, 45, 1, 0, 0, 0, 200, 201, 7, 20, 0, 0, 201, 47, 1, 0, 0, 0, 202, 203, 7, 21, 0, 0, 203, 49, 1, 0, 0, 0, 204, 205, 7, 22, 0, 0, 205, 51, 1, 0, 0, 0, 206, 207, 7, 23, 0, 0, 207, 53, 1, 0, 0, 0, 208, 209, 7, 24, 0, 0, 209, 55, 1, 0, 0, 0, 210, 211, 7, 25, 0, 0, 211, 57, 1, 0, 0, 0, 212, 213, 7, 26, 0, 0, 213, 59, 1, 0, 0, 0, 214, 215, 2, 48, 57, 0, 215, 61, 1, 0, 0, 0, 216, 217, 7, 27, 0, 0, 217, 63, 1, 0, 0, 0, 218, 219, 7, 28, 0, 0, 219, 65, 1, 0, 0, 0, 220, 222, 3, 62, 28, 0, 221, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 67, 1, 0, 0, 0, 225, 227, 5, 13, 0, 0, 226, 225, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 229, 5, 10, 0, 0, 229, 230, 1, 0, 0, 0, 230, 231, 6, 31, 0, 0, 231, 69, 1, 0, 0, 0, 232, 234, 3, 66, 30, 0, 233, 232, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 238, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 242, 5, 62, 0, 0, 239, 241, 3, 66, 30, 0, 240, 239, 1, 0, 0, 0, 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 245, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 245, 246, 5, 33, 0, 0, 246, 247, 5, 35, 0, 0, 247, 248, 5, 32, 0, 0, 248, 249, 5, 64, 0, 0, 249, 250, 5, 113, 0, 0, 250, 251, 5, 110, 0, 0, 251, 252, 5, 97, 0, 0, 252, 253, 5, 46, 0, 0, 253, 254, 5, 112, 0, 0, 254, 255, 5, 97, 0, 0, 255, 256, 5, 105, 0, 0, 256, 257, 5, 114, 0, 0, 257, 258, 5, 46, 0, 0, 258, 259, 5, 115, 0, 0, 259, 260, 5, 111, 0, 0, 260, 261, 5, 117, 0, 0, 261, 262, 5, 114, 0, 0, 262, 263, 5, 99, 0, 0, 263, 264, 5, 101, 0, 0, 264, 268, 1, 0, 0, 0, 265, 267, 3, 66, 30, 0, 266, 265, 1, 0, 0, 0, 267, 270, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 271, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271, 273, 5, 61, 0, 0, 272, 274, 8, 29, 0, 0, 273, 272, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 71, 1, 0, 0, 0, 277, 279, 3, 66, 30, 0, 278, 277, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 287, 5, 62, 0, 0, 284, 286, 3, 66, 30, 0, 285, 284, 1, 0, 0, 0, 286, 289, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 290, 1, 0, 0, 0, 289, 287, 1, 0, 0, 0, 290, 291, 5, 33, 0, 0, 291, 292, 5, 35, 0, 0, 292, 294, 1, 0, 0, 0, 293, 295, 8, 29, 0, 0, 294, 293, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 73, 1, 0, 0, 0, 298, 300, 3, 66, 30, 0, 299, 298, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 304, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 308, 5, 62, 0, 0, 305, 307, 8, 29, 0, 0, 306, 305, 1, 0, 0, 0, 307, 310, 1, 0, 0, 0, 308, 306, 1, 0, 0, 0, 308, 309, 1, 0, 0, 0, 309, 75, 1, 0, 0, 0, 310, 308, 1, 0, 0, 0, 311, 313, 5, 35, 0, 0, 312, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 312, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 319, 1, 0, 0, 0, 316, 318, 3, 66, 30, 0, 317, 316, 1, 0, 0, 0, 318, 321, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 319, 320, 1, 0, 0, 0, 320, 322, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 322, 323, 5, 63, 0, 0, 323, 324, 1, 0, 0, 0, 324, 325, 6, 35, 1, 0, 325, 77, 1, 0, 0, 0, 326, 327, 5, 35, 0, 0, 327, 328, 1, 0, 0, 0, 328, 329, 6, 36, 2, 0, 329, 79, 1, 0, 0, 0, 330, 331, 3, 64, 29, 0, 331, 332, 1, 0, 0, 0, 332, 333, 6, 37, 3, 0, 333, 81, 1, 0, 0, 0, 334, 335, 5, 36, 0, 0, 335, 336, 1, 0, 0, 0, 336, 337, 6, 38, 4, 0, 337, 83, 1, 0, 0, 0, 338, 339, 5, 64, 0, 0, 339, 340, 1, 0, 0, 0, 340, 341, 6, 39, 5, 0, 341, 85, 1, 0, 0, 0, 342, 344, 3, 66, 30, 0, 343, 342, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 348, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 348, 352, 5, 91, 0, 0, 349, 351, 8, 30, 0, 0, 350, 349, 1, 0, 0, 0, 351, 354, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 355, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 355, 359, 5, 93, 0, 0, 356, 358, 3, 66, 30, 0, 357, 356, 1, 0, 0, 0, 358, 361, 1, 0, 0, 0, 359, 357, 1, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 378, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 362, 366, 5, 40, 0, 0, 363, 365, 8, 31, 0, 0, 364, 363, 1, 0, 0, 0, 365, 368, 1, 0, 0, 0, 366, 367, 1, 0, 0, 0, 366, 364, 1, 0, 0, 0, 367, 369, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 369, 379, 5, 41, 0, 0, 370, 374, 5, 91, 0, 0, 371, 373, 8, 30, 0, 0, 372, 371, 1, 0, 0, 0, 373, 376, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 377, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 377, 379, 5, 93, 0, 0, 378, 362, 1, 0, 0, 0, 378, 370, 1, 0, 0, 0, 379, 87, 1, 0, 0, 0, 380, 382, 3, 66, 30, 0, 381, 380, 1, 0, 0, 0, 382, 385, 1, 0, 0, 0, 383, 381, 1, 0, 0, 0, 383, 384, 1, 0, 0, 0, 384, 386, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 386, 390, 5, 91, 0, 0, 387, 389, 8, 30, 0, 0, 388, 387, 1, 0, 0, 0, 389, 392, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 390, 388, 1, 0, 0, 0, 391, 393, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 393, 397, 5, 93, 0, 0, 394, 396, 3, 66, 30, 0, 395, 394, 1, 0, 0, 0, 396, 399, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 400, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 400, 404, 5, 58, 0, 0, 401, 403, 3, 66, 30, 0, 402, 401, 1, 0, 0, 0, 403, 406, 1, 0, 0, 0, 404, 402, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 410, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 407, 409, 8, 29, 0, 0, 408, 407, 1, 0, 0, 0, 409, 412, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 89, 1, 0, 0, 0, 412, 410, 1, 0, 0, 0, 413, 414, 5, 42, 0, 0, 414, 415, 5, 42, 0, 0, 415, 416, 1, 0, 0, 0, 416, 417, 3, 16, 5, 0, 417, 418, 3, 22, 8, 0, 418, 419, 3, 28, 11, 0, 419, 420, 3, 44, 19, 0, 420, 421, 3, 14, 4, 0, 421, 422, 3, 40, 17, 0, 422, 423, 3, 42, 18, 0, 423, 424, 5, 58, 0, 0, 424, 425, 5, 42, 0, 0, 425, 426, 5, 42, 0, 0, 426, 91, 1, 0, 0, 0, 427, 428, 5, 60, 0, 0, 428, 429, 5, 97, 0, 0, 429, 433, 1, 0, 0, 0, 430, 432, 9, 0, 0, 0, 431, 430, 1, 0, 0, 0, 432, 435, 1, 0, 0, 0, 433, 434, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 434, 436, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 436, 437, 5, 60, 0, 0, 437, 438, 5, 47, 0, 0, 438, 439, 5, 97, 0, 0, 439, 440, 5, 62, 0, 0, 440, 93, 1, 0, 0, 0, 441, 442, 5, 96, 0, 0, 442, 443, 5, 96, 0, 0, 443, 444, 5, 96, 0, 0, 444, 448, 1, 0, 0, 0, 445, 447, 9, 0, 0, 0, 446, 445, 1, 0, 0, 0, 447, 450, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 449, 451, 1, 0, 0, 0, 450, 448, 1, 0, 0, 0, 451, 452, 5, 96, 0, 0, 452, 453, 5, 96, 0, 0, 453, 454, 5, 96, 0, 0, 454, 95, 1, 0, 0, 0, 455, 456, 5, 42, 0, 0, 456, 457, 5, 42, 0, 0, 457, 458, 1, 0, 0, 0, 458, 459, 3, 36, 15, 0, 459, 460, 3, 40, 17, 0, 460, 461, 3, 34, 14, 0, 461, 462, 3, 30, 12, 0, 462, 463, 3, 36, 15, 0, 463, 464, 3, 44, 19, 0, 464, 465, 3, 42, 18, 0, 465, 466, 5, 58, 0, 0, 466, 467, 5, 42, 0, 0, 467, 468, 5, 42, 0, 0, 468, 97, 1, 0, 0, 0, 469, 470, 9, 0, 0, 0, 470, 99, 1, 0, 0, 0, 471, 472, 3, 66, 30, 0, 472, 473, 1, 0, 0, 0, 473, 474, 6, 47, 6, 0, 474, 101, 1, 0, 0, 0, 475, 477, 5, 13, 0, 0, 476, 475, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 5, 10, 0, 0, 479, 480, 1, 0, 0, 0, 480, 481, 6, 48, 7, 0, 481, 482, 6, 48, 8, 0, 482, 103, 1, 0, 0, 0, 483, 484, 5, 61, 0, 0, 484, 105, 1, 0, 0, 0, 485, 486, 5, 44, 0, 0, 486, 107, 1, 0, 0, 0, 487, 488, 3, 20, 7, 0, 488, 489, 3, 6, 0, 0, 489, 490, 3, 42, 18, 0, 490, 491, 3, 40, 17, 0, 491, 492, 3, 34, 14, 0, 492, 493, 3, 28, 11, 0, 493, 495, 3, 14, 4, 0, 494, 496, 3, 42, 18, 0, 495, 494, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 109, 1, 0, 0, 0, 497, 498, 3, 46, 20, 0, 498, 499, 3, 42, 18, 0, 499, 500, 3, 14, 4, 0, 500, 501, 3, 42, 18, 0, 501, 502, 3, 16, 5, 0, 502, 503, 3, 14, 4, 0, 503, 504, 3, 6, 0, 0, 504, 505, 3, 44, 19, 0, 505, 506, 3, 46, 20, 0, 506, 507, 3, 40, 17, 0, 507, 509, 3, 14, 4, 0, 508, 510, 3, 42, 18, 0, 509, 508, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 111, 1, 0, 0, 0, 511, 512, 3, 42, 18, 0, 512, 513, 3, 22, 8, 0, 513, 514, 3, 30, 12, 0, 514, 515, 3, 36, 15, 0, 515, 516, 3, 28, 11, 0, 516, 517, 3, 14, 4, 0, 517, 581, 1, 0, 0, 0, 518, 519, 3, 28, 11, 0, 519, 520, 3, 22, 8, 0, 520, 521, 3, 42, 18, 0, 521, 522, 3, 44, 19, 0, 522, 581, 1, 0, 0, 0, 523, 524, 3, 40, 17, 0, 524, 525, 3, 14, 4, 0, 525, 526, 3, 18, 6, 0, 526, 527, 3, 14, 4, 0, 527, 528, 3, 52, 23, 0, 528, 581, 1, 0, 0, 0, 529, 530, 3, 36, 15, 0, 530, 531, 3, 40, 17, 0, 531, 532, 3, 14, 4, 0, 532, 533, 3, 8, 1, 0, 533, 534, 3, 46, 20, 0, 534, 535, 3, 22, 8, 0, 535, 536, 3, 28, 11, 0, 536, 537, 3, 44, 19, 0, 537, 581, 1, 0, 0, 0, 538, 539, 3, 10, 2, 0, 539, 540, 3, 34, 14, 0, 540, 541, 3, 30, 12, 0, 541, 542, 3, 36, 15, 0, 542, 543, 3, 34, 14, 0, 543, 544, 3, 42, 18, 0, 544, 545, 3, 22, 8, 0, 545, 546, 3, 44, 19, 0, 546, 547, 3, 14, 4, 0, 547, 581, 1, 0, 0, 0, 548, 549, 3, 30, 12, 0, 549, 550, 3, 28, 11, 0, 550, 581, 1, 0, 0, 0, 551, 552, 3, 36, 15, 0, 552, 553, 3, 6, 0, 0, 553, 554, 3, 44, 19, 0, 554, 555, 3, 44, 19, 0, 555, 556, 3, 14, 4, 0, 556, 557, 3, 40, 17, 0, 557, 558, 3, 32, 13, 0, 558, 559, 3, 6, 0, 0, 559, 560, 3, 32, 13, 0, 560, 561, 3, 54, 24, 0, 561, 581, 1, 0, 0, 0, 562, 563, 3, 36, 15, 0, 563, 564, 3, 20, 7, 0, 564, 565, 3, 40, 17, 0, 565, 566, 3, 6, 0, 0, 566, 567, 3, 42, 18, 0, 567, 568, 3, 14, 4, 0, 568, 569, 3, 28, 11, 0, 569, 570, 3, 22, 8, 0, 570, 571, 3, 42, 18, 0, 571, 572, 3, 44, 19, 0, 572, 581, 1, 0, 0, 0, 573, 574, 3, 22, 8, 0, 574, 575, 3, 32, 13, 0, 575, 576, 3, 44, 19, 0, 576, 577, 3, 14, 4, 0, 577, 578, 3, 32, 13, 0, 578, 579, 3, 44, 19, 0, 579, 581, 1, 0, 0, 0, 580, 511, 1, 0, 0, 0, 580, 518, 1, 0, 0, 0, 580, 523, 1, 0, 0, 0, 580, 529, 1, 0, 0, 0, 580, 538, 1, 0, 0, 0, 580, 548, 1, 0, 0, 0, 580, 551, 1, 0, 0, 0, 580, 562, 1, 0, 0, 0, 580, 573, 1, 0, 0, 0, 581, 113, 1, 0, 0, 0, 582, 586, 5, 40, 0, 0, 583, 585, 8, 29, 0, 0, 584, 583, 1, 0, 0, 0, 585, 588, 1, 0, 0, 0, 586, 584, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 589, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 589, 590, 5, 41, 0, 0, 590, 115, 1, 0, 0, 0, 591, 595, 5, 91, 0, 0, 592, 594, 8, 32, 0, 0, 593, 592, 1, 0, 0, 0, 594, 597, 1, 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 598, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 598, 599, 5, 93, 0, 0, 599, 117, 1, 0, 0, 0, 600, 604, 5, 47, 0, 0, 601, 603, 8, 29, 0, 0, 602, 601, 1, 0, 0, 0, 603, 606, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 119, 1, 0, 0, 0, 606, 604, 1, 0, 0, 0, 607, 609, 8, 33, 0, 0, 608, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 121, 1, 0, 0, 0, 612, 614, 7, 34, 0, 0, 613, 615, 8, 35, 0, 0, 614, 613, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 614, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 619, 7, 34, 0, 0, 619, 123, 1, 0, 0, 0, 620, 621, 3, 66, 30, 0, 621, 622, 1, 0, 0, 0, 622, 623, 6, 59, 6, 0, 623, 125, 1, 0, 0, 0, 624, 625, 5, 35, 0, 0, 625, 626, 1, 0, 0, 0, 626, 627, 6, 60, 9, 0, 627, 127, 1, 0, 0, 0, 628, 630, 5, 13, 0, 0, 629, 628, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 631, 1, 0, 0, 0, 631, 632, 5, 10, 0, 0, 632, 633, 1, 0, 0, 0, 633, 634, 6, 61, 0, 0, 634, 635, 6, 61, 8, 0, 635, 129, 1, 0, 0, 0, 636, 640, 3, 58, 26, 0, 637, 640, 3, 60, 27, 0, 638, 640, 5, 95, 0, 0, 639, 636, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 639, 638, 1, 0, 0, 0, 640, 646, 1, 0, 0, 0, 641, 645, 3, 58, 26, 0, 642, 645, 3, 60, 27, 0, 643, 645, 7, 36, 0, 0, 644, 641, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 644, 643, 1, 0, 0, 0, 645, 648, 1, 0, 0, 0, 646, 644, 1, 0, 0, 0, 646, 647, 1, 0, 0, 0, 647, 131, 1, 0, 0, 0, 648, 646, 1, 0, 0, 0, 649, 650, 5, 46, 0, 0, 650, 133, 1, 0, 0, 0, 651, 652, 3, 66, 30, 0, 652, 653, 1, 0, 0, 0, 653, 654, 6, 64, 6, 0, 654, 135, 1, 0, 0, 0, 655, 657, 5, 13, 0, 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658, 1, 0, 0, 0, 658, 659, 5, 10, 0, 0, 659, 660, 1, 0, 0, 0, 660, 661, 6, 65, 7, 0, 661, 662, 6, 65, 8, 0, 662, 137, 1, 0, 0, 0, 663, 665, 5, 92, 0, 0, 664, 666, 8, 29, 0, 0, 665, 664, 1, 0, 0, 0, 665, 666, 1, 0, 0, 0, 666, 139, 1, 0, 0, 0, 667, 679, 5, 123, 0, 0, 668, 678, 8, 37, 0, 0, 669, 673, 5, 123, 0, 0, 670, 672, 8, 29, 0, 0, 671, 670, 1, 0, 0, 0, 672, 675, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 673, 674, 1, 0, 0, 0, 674, 676, 1, 0, 0, 0, 675, 673, 1, 0, 0, 0, 676, 678, 5, 125, 0, 0, 677, 668, 1, 0, 0, 0, 677, 669, 1, 0, 0, 0, 678, 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 682, 1, 0, 0, 0, 681, 679, 1, 0, 0, 0, 682, 683, 5, 125, 0, 0, 683, 141, 1, 0, 0, 0, 684, 686, 8, 38, 0, 0, 685, 684, 1, 0, 0, 0, 686, 687, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 688, 143, 1, 0, 0, 0, 689, 690, 3, 66, 30, 0, 690, 691, 1, 0, 0, 0, 691, 692, 6, 69, 6, 0, 692, 145, 1, 0, 0, 0, 693, 695, 5, 13, 0, 0, 694, 693, 1, 0, 0, 0, 694, 695, 1, 0, 0, 0, 695, 696, 1, 0, 0, 0, 696, 697, 5, 10, 0, 0, 697, 698, 1, 0, 0, 0, 698, 699, 6, 70, 0, 0, 699, 700, 6, 70, 8, 0, 700, 147, 1, 0, 0, 0, 701, 705, 5, 91, 0, 0, 702, 704, 8, 32, 0, 0, 703, 702, 1, 0, 0, 0, 704, 707, 1, 0, 0, 0, 705, 703, 1, 0, 0, 0, 705, 706, 1, 0, 0, 0, 706, 708, 1, 0, 0, 0, 707, 705, 1, 0, 0, 0, 708, 709, 5, 93, 0, 0, 709, 149, 1, 0, 0, 0, 710, 714, 5, 47, 0, 0, 711, 713, 8, 29, 0, 0, 712, 711, 1, 0, 0, 0, 713, 716, 1, 0, 0, 0, 714, 712, 1, 0, 0, 0, 714, 715, 1, 0, 0, 0, 715, 151, 1, 0, 0, 0, 716, 714, 1, 0, 0, 0, 717, 719, 8, 39, 0, 0, 718, 717, 1, 0, 0, 0, 719, 720, 1, 0, 0, 0, 720, 718, 1, 0, 0, 0, 720, 721, 1, 0, 0, 0, 721, 153, 1, 0, 0, 0, 722, 723, 5, 58, 0, 0, 723, 155, 1, 0, 0, 0, 724, 726, 5, 13, 0, 0, 725, 724, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 727, 1, 0, 0, 0, 727, 728, 5, 10, 0, 0, 728, 729, 1, 0, 0, 0, 729, 730, 6, 75, 0, 0, 730, 731, 6, 75, 8, 0, 731, 157, 1, 0, 0, 0, 732, 734, 8, 29, 0, 0, 733, 732, 1, 0, 0, 0, 734, 735, 1, 0, 0, 0, 735, 733, 1, 0, 0, 0, 735, 736, 1, 0, 0, 0, 736, 159, 1, 0, 0, 0, 57, 0, 1, 2, 3, 4, 5, 223, 226, 235, 242, 268, 275, 280, 287, 296, 301, 308, 314, 319, 345, 352, 359, 366, 374, 378, 383, 390, 397, 404, 410, 433, 448, 476, 495, 509, 580, 586, 595, 604, 610, 616, 629, 639, 644, 646, 656, 665, 673, 677, 679, 687, 694, 705, 714, 720, 725, 735, 10, 6, 0, 0, 5, 5, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 1, 0, 7, 1, 0, 7, 2, 0, 4, 0, 0, 7, 7, 0] \ No newline at end of file +[4, 0, 40, 739, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 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, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 4, 30, 222, 8, 30, 11, 30, 12, 30, 223, 1, 31, 3, 31, 227, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 5, 32, 234, 8, 32, 10, 32, 12, 32, 237, 9, 32, 1, 32, 1, 32, 5, 32, 241, 8, 32, 10, 32, 12, 32, 244, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 267, 8, 32, 10, 32, 12, 32, 270, 9, 32, 1, 32, 1, 32, 4, 32, 274, 8, 32, 11, 32, 12, 32, 275, 1, 33, 5, 33, 279, 8, 33, 10, 33, 12, 33, 282, 9, 33, 1, 33, 1, 33, 5, 33, 286, 8, 33, 10, 33, 12, 33, 289, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 4, 33, 295, 8, 33, 11, 33, 12, 33, 296, 1, 34, 5, 34, 300, 8, 34, 10, 34, 12, 34, 303, 9, 34, 1, 34, 1, 34, 5, 34, 307, 8, 34, 10, 34, 12, 34, 310, 9, 34, 1, 34, 1, 34, 1, 35, 4, 35, 315, 8, 35, 11, 35, 12, 35, 316, 1, 35, 5, 35, 320, 8, 35, 10, 35, 12, 35, 323, 9, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 5, 40, 346, 8, 40, 10, 40, 12, 40, 349, 9, 40, 1, 40, 1, 40, 5, 40, 353, 8, 40, 10, 40, 12, 40, 356, 9, 40, 1, 40, 1, 40, 5, 40, 360, 8, 40, 10, 40, 12, 40, 363, 9, 40, 1, 40, 1, 40, 5, 40, 367, 8, 40, 10, 40, 12, 40, 370, 9, 40, 1, 40, 1, 40, 1, 40, 5, 40, 375, 8, 40, 10, 40, 12, 40, 378, 9, 40, 1, 40, 3, 40, 381, 8, 40, 1, 41, 5, 41, 384, 8, 41, 10, 41, 12, 41, 387, 9, 41, 1, 41, 1, 41, 5, 41, 391, 8, 41, 10, 41, 12, 41, 394, 9, 41, 1, 41, 1, 41, 5, 41, 398, 8, 41, 10, 41, 12, 41, 401, 9, 41, 1, 41, 1, 41, 5, 41, 405, 8, 41, 10, 41, 12, 41, 408, 9, 41, 1, 41, 5, 41, 411, 8, 41, 10, 41, 12, 41, 414, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43, 434, 8, 43, 10, 43, 12, 43, 437, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 449, 8, 44, 10, 44, 12, 44, 452, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 3, 48, 479, 8, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 498, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 512, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 583, 8, 53, 1, 54, 1, 54, 5, 54, 587, 8, 54, 10, 54, 12, 54, 590, 9, 54, 1, 54, 1, 54, 1, 55, 1, 55, 5, 55, 596, 8, 55, 10, 55, 12, 55, 599, 9, 55, 1, 55, 1, 55, 1, 56, 1, 56, 5, 56, 605, 8, 56, 10, 56, 12, 56, 608, 9, 56, 1, 57, 4, 57, 611, 8, 57, 11, 57, 12, 57, 612, 1, 58, 1, 58, 4, 58, 617, 8, 58, 11, 58, 12, 58, 618, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 3, 61, 632, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 3, 62, 642, 8, 62, 1, 62, 1, 62, 1, 62, 5, 62, 647, 8, 62, 10, 62, 12, 62, 650, 9, 62, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 3, 65, 659, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 3, 66, 668, 8, 66, 1, 67, 1, 67, 1, 67, 1, 67, 5, 67, 674, 8, 67, 10, 67, 12, 67, 677, 9, 67, 1, 67, 5, 67, 680, 8, 67, 10, 67, 12, 67, 683, 9, 67, 1, 67, 1, 67, 1, 68, 4, 68, 688, 8, 68, 11, 68, 12, 68, 689, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 3, 70, 697, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 5, 71, 706, 8, 71, 10, 71, 12, 71, 709, 9, 71, 1, 71, 1, 71, 1, 72, 1, 72, 5, 72, 715, 8, 72, 10, 72, 12, 72, 718, 9, 72, 1, 73, 4, 73, 721, 8, 73, 11, 73, 12, 73, 722, 1, 74, 1, 74, 1, 75, 3, 75, 728, 8, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 4, 76, 736, 8, 76, 11, 76, 12, 76, 737, 7, 354, 368, 376, 392, 435, 450, 689, 0, 77, 6, 0, 8, 0, 10, 0, 12, 0, 14, 0, 16, 0, 18, 0, 20, 0, 22, 0, 24, 0, 26, 0, 28, 0, 30, 0, 32, 0, 34, 0, 36, 0, 38, 0, 40, 0, 42, 0, 44, 0, 46, 0, 48, 0, 50, 0, 52, 0, 54, 0, 56, 0, 58, 0, 60, 0, 62, 0, 64, 0, 66, 1, 68, 2, 70, 3, 72, 4, 74, 5, 76, 6, 78, 7, 80, 8, 82, 9, 84, 10, 86, 11, 88, 12, 90, 13, 92, 14, 94, 15, 96, 16, 98, 17, 100, 0, 102, 0, 104, 18, 106, 19, 108, 20, 110, 21, 112, 22, 114, 23, 116, 24, 118, 25, 120, 26, 122, 27, 124, 0, 126, 0, 128, 28, 130, 29, 132, 30, 134, 0, 136, 0, 138, 31, 140, 32, 142, 33, 144, 0, 146, 34, 148, 35, 150, 36, 152, 37, 154, 38, 156, 39, 158, 40, 6, 0, 1, 2, 3, 4, 5, 40, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 65, 90, 97, 122, 4, 0, 9, 9, 32, 32, 160, 160, 65279, 65279, 2, 0, 42, 43, 45, 45, 2, 0, 10, 10, 13, 13, 4, 0, 10, 10, 13, 13, 91, 91, 93, 93, 3, 0, 10, 10, 13, 13, 40, 41, 7, 0, 10, 10, 13, 13, 40, 41, 91, 91, 93, 93, 123, 123, 125, 125, 7, 0, 9, 10, 13, 13, 32, 32, 34, 34, 39, 39, 44, 44, 59, 59, 2, 0, 34, 34, 39, 39, 6, 0, 9, 10, 13, 13, 34, 34, 39, 39, 44, 44, 59, 59, 2, 0, 45, 45, 95, 95, 4, 0, 10, 10, 13, 13, 123, 123, 125, 125, 4, 0, 9, 10, 13, 13, 32, 32, 92, 92, 4, 0, 9, 10, 13, 13, 32, 32, 58, 58, 763, 0, 66, 1, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 80, 1, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 86, 1, 0, 0, 0, 0, 88, 1, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 98, 1, 0, 0, 0, 1, 100, 1, 0, 0, 0, 1, 102, 1, 0, 0, 0, 1, 104, 1, 0, 0, 0, 1, 106, 1, 0, 0, 0, 1, 108, 1, 0, 0, 0, 1, 110, 1, 0, 0, 0, 1, 112, 1, 0, 0, 0, 1, 114, 1, 0, 0, 0, 1, 116, 1, 0, 0, 0, 1, 118, 1, 0, 0, 0, 1, 120, 1, 0, 0, 0, 1, 122, 1, 0, 0, 0, 2, 124, 1, 0, 0, 0, 2, 126, 1, 0, 0, 0, 2, 128, 1, 0, 0, 0, 2, 130, 1, 0, 0, 0, 2, 132, 1, 0, 0, 0, 3, 134, 1, 0, 0, 0, 3, 136, 1, 0, 0, 0, 3, 138, 1, 0, 0, 0, 3, 140, 1, 0, 0, 0, 3, 142, 1, 0, 0, 0, 4, 144, 1, 0, 0, 0, 4, 146, 1, 0, 0, 0, 4, 148, 1, 0, 0, 0, 4, 150, 1, 0, 0, 0, 4, 152, 1, 0, 0, 0, 4, 154, 1, 0, 0, 0, 5, 156, 1, 0, 0, 0, 5, 158, 1, 0, 0, 0, 6, 160, 1, 0, 0, 0, 8, 162, 1, 0, 0, 0, 10, 164, 1, 0, 0, 0, 12, 166, 1, 0, 0, 0, 14, 168, 1, 0, 0, 0, 16, 170, 1, 0, 0, 0, 18, 172, 1, 0, 0, 0, 20, 174, 1, 0, 0, 0, 22, 176, 1, 0, 0, 0, 24, 178, 1, 0, 0, 0, 26, 180, 1, 0, 0, 0, 28, 182, 1, 0, 0, 0, 30, 184, 1, 0, 0, 0, 32, 186, 1, 0, 0, 0, 34, 188, 1, 0, 0, 0, 36, 190, 1, 0, 0, 0, 38, 192, 1, 0, 0, 0, 40, 194, 1, 0, 0, 0, 42, 196, 1, 0, 0, 0, 44, 198, 1, 0, 0, 0, 46, 200, 1, 0, 0, 0, 48, 202, 1, 0, 0, 0, 50, 204, 1, 0, 0, 0, 52, 206, 1, 0, 0, 0, 54, 208, 1, 0, 0, 0, 56, 210, 1, 0, 0, 0, 58, 212, 1, 0, 0, 0, 60, 214, 1, 0, 0, 0, 62, 216, 1, 0, 0, 0, 64, 218, 1, 0, 0, 0, 66, 221, 1, 0, 0, 0, 68, 226, 1, 0, 0, 0, 70, 235, 1, 0, 0, 0, 72, 280, 1, 0, 0, 0, 74, 301, 1, 0, 0, 0, 76, 314, 1, 0, 0, 0, 78, 328, 1, 0, 0, 0, 80, 332, 1, 0, 0, 0, 82, 336, 1, 0, 0, 0, 84, 340, 1, 0, 0, 0, 86, 347, 1, 0, 0, 0, 88, 385, 1, 0, 0, 0, 90, 415, 1, 0, 0, 0, 92, 429, 1, 0, 0, 0, 94, 443, 1, 0, 0, 0, 96, 457, 1, 0, 0, 0, 98, 471, 1, 0, 0, 0, 100, 473, 1, 0, 0, 0, 102, 478, 1, 0, 0, 0, 104, 485, 1, 0, 0, 0, 106, 487, 1, 0, 0, 0, 108, 489, 1, 0, 0, 0, 110, 499, 1, 0, 0, 0, 112, 582, 1, 0, 0, 0, 114, 584, 1, 0, 0, 0, 116, 593, 1, 0, 0, 0, 118, 602, 1, 0, 0, 0, 120, 610, 1, 0, 0, 0, 122, 614, 1, 0, 0, 0, 124, 622, 1, 0, 0, 0, 126, 626, 1, 0, 0, 0, 128, 631, 1, 0, 0, 0, 130, 641, 1, 0, 0, 0, 132, 651, 1, 0, 0, 0, 134, 653, 1, 0, 0, 0, 136, 658, 1, 0, 0, 0, 138, 665, 1, 0, 0, 0, 140, 669, 1, 0, 0, 0, 142, 687, 1, 0, 0, 0, 144, 691, 1, 0, 0, 0, 146, 696, 1, 0, 0, 0, 148, 703, 1, 0, 0, 0, 150, 712, 1, 0, 0, 0, 152, 720, 1, 0, 0, 0, 154, 724, 1, 0, 0, 0, 156, 727, 1, 0, 0, 0, 158, 735, 1, 0, 0, 0, 160, 161, 7, 0, 0, 0, 161, 7, 1, 0, 0, 0, 162, 163, 7, 1, 0, 0, 163, 9, 1, 0, 0, 0, 164, 165, 7, 2, 0, 0, 165, 11, 1, 0, 0, 0, 166, 167, 7, 3, 0, 0, 167, 13, 1, 0, 0, 0, 168, 169, 7, 4, 0, 0, 169, 15, 1, 0, 0, 0, 170, 171, 7, 5, 0, 0, 171, 17, 1, 0, 0, 0, 172, 173, 7, 6, 0, 0, 173, 19, 1, 0, 0, 0, 174, 175, 7, 7, 0, 0, 175, 21, 1, 0, 0, 0, 176, 177, 7, 8, 0, 0, 177, 23, 1, 0, 0, 0, 178, 179, 7, 9, 0, 0, 179, 25, 1, 0, 0, 0, 180, 181, 7, 10, 0, 0, 181, 27, 1, 0, 0, 0, 182, 183, 7, 11, 0, 0, 183, 29, 1, 0, 0, 0, 184, 185, 7, 12, 0, 0, 185, 31, 1, 0, 0, 0, 186, 187, 7, 13, 0, 0, 187, 33, 1, 0, 0, 0, 188, 189, 7, 14, 0, 0, 189, 35, 1, 0, 0, 0, 190, 191, 7, 15, 0, 0, 191, 37, 1, 0, 0, 0, 192, 193, 7, 16, 0, 0, 193, 39, 1, 0, 0, 0, 194, 195, 7, 17, 0, 0, 195, 41, 1, 0, 0, 0, 196, 197, 7, 18, 0, 0, 197, 43, 1, 0, 0, 0, 198, 199, 7, 19, 0, 0, 199, 45, 1, 0, 0, 0, 200, 201, 7, 20, 0, 0, 201, 47, 1, 0, 0, 0, 202, 203, 7, 21, 0, 0, 203, 49, 1, 0, 0, 0, 204, 205, 7, 22, 0, 0, 205, 51, 1, 0, 0, 0, 206, 207, 7, 23, 0, 0, 207, 53, 1, 0, 0, 0, 208, 209, 7, 24, 0, 0, 209, 55, 1, 0, 0, 0, 210, 211, 7, 25, 0, 0, 211, 57, 1, 0, 0, 0, 212, 213, 7, 26, 0, 0, 213, 59, 1, 0, 0, 0, 214, 215, 2, 48, 57, 0, 215, 61, 1, 0, 0, 0, 216, 217, 7, 27, 0, 0, 217, 63, 1, 0, 0, 0, 218, 219, 7, 28, 0, 0, 219, 65, 1, 0, 0, 0, 220, 222, 3, 62, 28, 0, 221, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 67, 1, 0, 0, 0, 225, 227, 5, 13, 0, 0, 226, 225, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 229, 5, 10, 0, 0, 229, 230, 1, 0, 0, 0, 230, 231, 6, 31, 0, 0, 231, 69, 1, 0, 0, 0, 232, 234, 3, 66, 30, 0, 233, 232, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 238, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 242, 5, 62, 0, 0, 239, 241, 3, 66, 30, 0, 240, 239, 1, 0, 0, 0, 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 245, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 245, 246, 5, 33, 0, 0, 246, 247, 5, 35, 0, 0, 247, 248, 5, 32, 0, 0, 248, 249, 5, 64, 0, 0, 249, 250, 5, 113, 0, 0, 250, 251, 5, 110, 0, 0, 251, 252, 5, 97, 0, 0, 252, 253, 5, 46, 0, 0, 253, 254, 5, 112, 0, 0, 254, 255, 5, 97, 0, 0, 255, 256, 5, 105, 0, 0, 256, 257, 5, 114, 0, 0, 257, 258, 5, 46, 0, 0, 258, 259, 5, 115, 0, 0, 259, 260, 5, 111, 0, 0, 260, 261, 5, 117, 0, 0, 261, 262, 5, 114, 0, 0, 262, 263, 5, 99, 0, 0, 263, 264, 5, 101, 0, 0, 264, 268, 1, 0, 0, 0, 265, 267, 3, 66, 30, 0, 266, 265, 1, 0, 0, 0, 267, 270, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 271, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271, 273, 5, 61, 0, 0, 272, 274, 8, 29, 0, 0, 273, 272, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 71, 1, 0, 0, 0, 277, 279, 3, 66, 30, 0, 278, 277, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 287, 5, 62, 0, 0, 284, 286, 3, 66, 30, 0, 285, 284, 1, 0, 0, 0, 286, 289, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 290, 1, 0, 0, 0, 289, 287, 1, 0, 0, 0, 290, 291, 5, 33, 0, 0, 291, 292, 5, 35, 0, 0, 292, 294, 1, 0, 0, 0, 293, 295, 8, 29, 0, 0, 294, 293, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 73, 1, 0, 0, 0, 298, 300, 3, 66, 30, 0, 299, 298, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 304, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 308, 5, 62, 0, 0, 305, 307, 8, 29, 0, 0, 306, 305, 1, 0, 0, 0, 307, 310, 1, 0, 0, 0, 308, 306, 1, 0, 0, 0, 308, 309, 1, 0, 0, 0, 309, 311, 1, 0, 0, 0, 310, 308, 1, 0, 0, 0, 311, 312, 6, 34, 0, 0, 312, 75, 1, 0, 0, 0, 313, 315, 5, 35, 0, 0, 314, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 321, 1, 0, 0, 0, 318, 320, 3, 66, 30, 0, 319, 318, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 325, 5, 63, 0, 0, 325, 326, 1, 0, 0, 0, 326, 327, 6, 35, 1, 0, 327, 77, 1, 0, 0, 0, 328, 329, 5, 35, 0, 0, 329, 330, 1, 0, 0, 0, 330, 331, 6, 36, 2, 0, 331, 79, 1, 0, 0, 0, 332, 333, 3, 64, 29, 0, 333, 334, 1, 0, 0, 0, 334, 335, 6, 37, 3, 0, 335, 81, 1, 0, 0, 0, 336, 337, 5, 36, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 6, 38, 4, 0, 339, 83, 1, 0, 0, 0, 340, 341, 5, 64, 0, 0, 341, 342, 1, 0, 0, 0, 342, 343, 6, 39, 5, 0, 343, 85, 1, 0, 0, 0, 344, 346, 3, 66, 30, 0, 345, 344, 1, 0, 0, 0, 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 350, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 350, 354, 5, 91, 0, 0, 351, 353, 8, 30, 0, 0, 352, 351, 1, 0, 0, 0, 353, 356, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 355, 357, 1, 0, 0, 0, 356, 354, 1, 0, 0, 0, 357, 361, 5, 93, 0, 0, 358, 360, 3, 66, 30, 0, 359, 358, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 380, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364, 368, 5, 40, 0, 0, 365, 367, 8, 31, 0, 0, 366, 365, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 369, 371, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371, 381, 5, 41, 0, 0, 372, 376, 5, 91, 0, 0, 373, 375, 8, 30, 0, 0, 374, 373, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 377, 379, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379, 381, 5, 93, 0, 0, 380, 364, 1, 0, 0, 0, 380, 372, 1, 0, 0, 0, 381, 87, 1, 0, 0, 0, 382, 384, 3, 66, 30, 0, 383, 382, 1, 0, 0, 0, 384, 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 388, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, 392, 5, 91, 0, 0, 389, 391, 8, 30, 0, 0, 390, 389, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 393, 395, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 399, 5, 93, 0, 0, 396, 398, 3, 66, 30, 0, 397, 396, 1, 0, 0, 0, 398, 401, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 399, 400, 1, 0, 0, 0, 400, 402, 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 402, 406, 5, 58, 0, 0, 403, 405, 3, 66, 30, 0, 404, 403, 1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 412, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 411, 8, 29, 0, 0, 410, 409, 1, 0, 0, 0, 411, 414, 1, 0, 0, 0, 412, 410, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 89, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 415, 416, 5, 42, 0, 0, 416, 417, 5, 42, 0, 0, 417, 418, 1, 0, 0, 0, 418, 419, 3, 16, 5, 0, 419, 420, 3, 22, 8, 0, 420, 421, 3, 28, 11, 0, 421, 422, 3, 44, 19, 0, 422, 423, 3, 14, 4, 0, 423, 424, 3, 40, 17, 0, 424, 425, 3, 42, 18, 0, 425, 426, 5, 58, 0, 0, 426, 427, 5, 42, 0, 0, 427, 428, 5, 42, 0, 0, 428, 91, 1, 0, 0, 0, 429, 430, 5, 60, 0, 0, 430, 431, 5, 97, 0, 0, 431, 435, 1, 0, 0, 0, 432, 434, 9, 0, 0, 0, 433, 432, 1, 0, 0, 0, 434, 437, 1, 0, 0, 0, 435, 436, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 436, 438, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 438, 439, 5, 60, 0, 0, 439, 440, 5, 47, 0, 0, 440, 441, 5, 97, 0, 0, 441, 442, 5, 62, 0, 0, 442, 93, 1, 0, 0, 0, 443, 444, 5, 96, 0, 0, 444, 445, 5, 96, 0, 0, 445, 446, 5, 96, 0, 0, 446, 450, 1, 0, 0, 0, 447, 449, 9, 0, 0, 0, 448, 447, 1, 0, 0, 0, 449, 452, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 450, 448, 1, 0, 0, 0, 451, 453, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454, 5, 96, 0, 0, 454, 455, 5, 96, 0, 0, 455, 456, 5, 96, 0, 0, 456, 95, 1, 0, 0, 0, 457, 458, 5, 42, 0, 0, 458, 459, 5, 42, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 3, 36, 15, 0, 461, 462, 3, 40, 17, 0, 462, 463, 3, 34, 14, 0, 463, 464, 3, 30, 12, 0, 464, 465, 3, 36, 15, 0, 465, 466, 3, 44, 19, 0, 466, 467, 3, 42, 18, 0, 467, 468, 5, 58, 0, 0, 468, 469, 5, 42, 0, 0, 469, 470, 5, 42, 0, 0, 470, 97, 1, 0, 0, 0, 471, 472, 9, 0, 0, 0, 472, 99, 1, 0, 0, 0, 473, 474, 3, 66, 30, 0, 474, 475, 1, 0, 0, 0, 475, 476, 6, 47, 6, 0, 476, 101, 1, 0, 0, 0, 477, 479, 5, 13, 0, 0, 478, 477, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 481, 5, 10, 0, 0, 481, 482, 1, 0, 0, 0, 482, 483, 6, 48, 7, 0, 483, 484, 6, 48, 8, 0, 484, 103, 1, 0, 0, 0, 485, 486, 5, 61, 0, 0, 486, 105, 1, 0, 0, 0, 487, 488, 5, 44, 0, 0, 488, 107, 1, 0, 0, 0, 489, 490, 3, 20, 7, 0, 490, 491, 3, 6, 0, 0, 491, 492, 3, 42, 18, 0, 492, 493, 3, 40, 17, 0, 493, 494, 3, 34, 14, 0, 494, 495, 3, 28, 11, 0, 495, 497, 3, 14, 4, 0, 496, 498, 3, 42, 18, 0, 497, 496, 1, 0, 0, 0, 497, 498, 1, 0, 0, 0, 498, 109, 1, 0, 0, 0, 499, 500, 3, 46, 20, 0, 500, 501, 3, 42, 18, 0, 501, 502, 3, 14, 4, 0, 502, 503, 3, 42, 18, 0, 503, 504, 3, 16, 5, 0, 504, 505, 3, 14, 4, 0, 505, 506, 3, 6, 0, 0, 506, 507, 3, 44, 19, 0, 507, 508, 3, 46, 20, 0, 508, 509, 3, 40, 17, 0, 509, 511, 3, 14, 4, 0, 510, 512, 3, 42, 18, 0, 511, 510, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 111, 1, 0, 0, 0, 513, 514, 3, 42, 18, 0, 514, 515, 3, 22, 8, 0, 515, 516, 3, 30, 12, 0, 516, 517, 3, 36, 15, 0, 517, 518, 3, 28, 11, 0, 518, 519, 3, 14, 4, 0, 519, 583, 1, 0, 0, 0, 520, 521, 3, 28, 11, 0, 521, 522, 3, 22, 8, 0, 522, 523, 3, 42, 18, 0, 523, 524, 3, 44, 19, 0, 524, 583, 1, 0, 0, 0, 525, 526, 3, 40, 17, 0, 526, 527, 3, 14, 4, 0, 527, 528, 3, 18, 6, 0, 528, 529, 3, 14, 4, 0, 529, 530, 3, 52, 23, 0, 530, 583, 1, 0, 0, 0, 531, 532, 3, 36, 15, 0, 532, 533, 3, 40, 17, 0, 533, 534, 3, 14, 4, 0, 534, 535, 3, 8, 1, 0, 535, 536, 3, 46, 20, 0, 536, 537, 3, 22, 8, 0, 537, 538, 3, 28, 11, 0, 538, 539, 3, 44, 19, 0, 539, 583, 1, 0, 0, 0, 540, 541, 3, 10, 2, 0, 541, 542, 3, 34, 14, 0, 542, 543, 3, 30, 12, 0, 543, 544, 3, 36, 15, 0, 544, 545, 3, 34, 14, 0, 545, 546, 3, 42, 18, 0, 546, 547, 3, 22, 8, 0, 547, 548, 3, 44, 19, 0, 548, 549, 3, 14, 4, 0, 549, 583, 1, 0, 0, 0, 550, 551, 3, 30, 12, 0, 551, 552, 3, 28, 11, 0, 552, 583, 1, 0, 0, 0, 553, 554, 3, 36, 15, 0, 554, 555, 3, 6, 0, 0, 555, 556, 3, 44, 19, 0, 556, 557, 3, 44, 19, 0, 557, 558, 3, 14, 4, 0, 558, 559, 3, 40, 17, 0, 559, 560, 3, 32, 13, 0, 560, 561, 3, 6, 0, 0, 561, 562, 3, 32, 13, 0, 562, 563, 3, 54, 24, 0, 563, 583, 1, 0, 0, 0, 564, 565, 3, 36, 15, 0, 565, 566, 3, 20, 7, 0, 566, 567, 3, 40, 17, 0, 567, 568, 3, 6, 0, 0, 568, 569, 3, 42, 18, 0, 569, 570, 3, 14, 4, 0, 570, 571, 3, 28, 11, 0, 571, 572, 3, 22, 8, 0, 572, 573, 3, 42, 18, 0, 573, 574, 3, 44, 19, 0, 574, 583, 1, 0, 0, 0, 575, 576, 3, 22, 8, 0, 576, 577, 3, 32, 13, 0, 577, 578, 3, 44, 19, 0, 578, 579, 3, 14, 4, 0, 579, 580, 3, 32, 13, 0, 580, 581, 3, 44, 19, 0, 581, 583, 1, 0, 0, 0, 582, 513, 1, 0, 0, 0, 582, 520, 1, 0, 0, 0, 582, 525, 1, 0, 0, 0, 582, 531, 1, 0, 0, 0, 582, 540, 1, 0, 0, 0, 582, 550, 1, 0, 0, 0, 582, 553, 1, 0, 0, 0, 582, 564, 1, 0, 0, 0, 582, 575, 1, 0, 0, 0, 583, 113, 1, 0, 0, 0, 584, 588, 5, 40, 0, 0, 585, 587, 8, 29, 0, 0, 586, 585, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588, 589, 1, 0, 0, 0, 589, 591, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 592, 5, 41, 0, 0, 592, 115, 1, 0, 0, 0, 593, 597, 5, 91, 0, 0, 594, 596, 8, 32, 0, 0, 595, 594, 1, 0, 0, 0, 596, 599, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 600, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 600, 601, 5, 93, 0, 0, 601, 117, 1, 0, 0, 0, 602, 606, 5, 47, 0, 0, 603, 605, 8, 29, 0, 0, 604, 603, 1, 0, 0, 0, 605, 608, 1, 0, 0, 0, 606, 604, 1, 0, 0, 0, 606, 607, 1, 0, 0, 0, 607, 119, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 609, 611, 8, 33, 0, 0, 610, 609, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 612, 613, 1, 0, 0, 0, 613, 121, 1, 0, 0, 0, 614, 616, 7, 34, 0, 0, 615, 617, 8, 35, 0, 0, 616, 615, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 621, 7, 34, 0, 0, 621, 123, 1, 0, 0, 0, 622, 623, 3, 66, 30, 0, 623, 624, 1, 0, 0, 0, 624, 625, 6, 59, 6, 0, 625, 125, 1, 0, 0, 0, 626, 627, 5, 35, 0, 0, 627, 628, 1, 0, 0, 0, 628, 629, 6, 60, 9, 0, 629, 127, 1, 0, 0, 0, 630, 632, 5, 13, 0, 0, 631, 630, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 633, 634, 5, 10, 0, 0, 634, 635, 1, 0, 0, 0, 635, 636, 6, 61, 0, 0, 636, 637, 6, 61, 8, 0, 637, 129, 1, 0, 0, 0, 638, 642, 3, 58, 26, 0, 639, 642, 3, 60, 27, 0, 640, 642, 5, 95, 0, 0, 641, 638, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 640, 1, 0, 0, 0, 642, 648, 1, 0, 0, 0, 643, 647, 3, 58, 26, 0, 644, 647, 3, 60, 27, 0, 645, 647, 7, 36, 0, 0, 646, 643, 1, 0, 0, 0, 646, 644, 1, 0, 0, 0, 646, 645, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0, 648, 646, 1, 0, 0, 0, 648, 649, 1, 0, 0, 0, 649, 131, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 651, 652, 5, 46, 0, 0, 652, 133, 1, 0, 0, 0, 653, 654, 3, 66, 30, 0, 654, 655, 1, 0, 0, 0, 655, 656, 6, 64, 6, 0, 656, 135, 1, 0, 0, 0, 657, 659, 5, 13, 0, 0, 658, 657, 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, 661, 5, 10, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663, 6, 65, 7, 0, 663, 664, 6, 65, 8, 0, 664, 137, 1, 0, 0, 0, 665, 667, 5, 92, 0, 0, 666, 668, 8, 29, 0, 0, 667, 666, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 139, 1, 0, 0, 0, 669, 681, 5, 123, 0, 0, 670, 680, 8, 37, 0, 0, 671, 675, 5, 123, 0, 0, 672, 674, 8, 29, 0, 0, 673, 672, 1, 0, 0, 0, 674, 677, 1, 0, 0, 0, 675, 673, 1, 0, 0, 0, 675, 676, 1, 0, 0, 0, 676, 678, 1, 0, 0, 0, 677, 675, 1, 0, 0, 0, 678, 680, 5, 125, 0, 0, 679, 670, 1, 0, 0, 0, 679, 671, 1, 0, 0, 0, 680, 683, 1, 0, 0, 0, 681, 679, 1, 0, 0, 0, 681, 682, 1, 0, 0, 0, 682, 684, 1, 0, 0, 0, 683, 681, 1, 0, 0, 0, 684, 685, 5, 125, 0, 0, 685, 141, 1, 0, 0, 0, 686, 688, 8, 38, 0, 0, 687, 686, 1, 0, 0, 0, 688, 689, 1, 0, 0, 0, 689, 690, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 690, 143, 1, 0, 0, 0, 691, 692, 3, 66, 30, 0, 692, 693, 1, 0, 0, 0, 693, 694, 6, 69, 6, 0, 694, 145, 1, 0, 0, 0, 695, 697, 5, 13, 0, 0, 696, 695, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 698, 1, 0, 0, 0, 698, 699, 5, 10, 0, 0, 699, 700, 1, 0, 0, 0, 700, 701, 6, 70, 0, 0, 701, 702, 6, 70, 8, 0, 702, 147, 1, 0, 0, 0, 703, 707, 5, 91, 0, 0, 704, 706, 8, 32, 0, 0, 705, 704, 1, 0, 0, 0, 706, 709, 1, 0, 0, 0, 707, 705, 1, 0, 0, 0, 707, 708, 1, 0, 0, 0, 708, 710, 1, 0, 0, 0, 709, 707, 1, 0, 0, 0, 710, 711, 5, 93, 0, 0, 711, 149, 1, 0, 0, 0, 712, 716, 5, 47, 0, 0, 713, 715, 8, 29, 0, 0, 714, 713, 1, 0, 0, 0, 715, 718, 1, 0, 0, 0, 716, 714, 1, 0, 0, 0, 716, 717, 1, 0, 0, 0, 717, 151, 1, 0, 0, 0, 718, 716, 1, 0, 0, 0, 719, 721, 8, 39, 0, 0, 720, 719, 1, 0, 0, 0, 721, 722, 1, 0, 0, 0, 722, 720, 1, 0, 0, 0, 722, 723, 1, 0, 0, 0, 723, 153, 1, 0, 0, 0, 724, 725, 5, 58, 0, 0, 725, 155, 1, 0, 0, 0, 726, 728, 5, 13, 0, 0, 727, 726, 1, 0, 0, 0, 727, 728, 1, 0, 0, 0, 728, 729, 1, 0, 0, 0, 729, 730, 5, 10, 0, 0, 730, 731, 1, 0, 0, 0, 731, 732, 6, 75, 0, 0, 732, 733, 6, 75, 8, 0, 733, 157, 1, 0, 0, 0, 734, 736, 8, 29, 0, 0, 735, 734, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 735, 1, 0, 0, 0, 737, 738, 1, 0, 0, 0, 738, 159, 1, 0, 0, 0, 57, 0, 1, 2, 3, 4, 5, 223, 226, 235, 242, 268, 275, 280, 287, 296, 301, 308, 316, 321, 347, 354, 361, 368, 376, 380, 385, 392, 399, 406, 412, 435, 450, 478, 497, 511, 582, 588, 597, 606, 612, 618, 631, 641, 646, 648, 658, 667, 675, 679, 681, 689, 696, 707, 716, 722, 727, 737, 10, 6, 0, 0, 5, 5, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 1, 0, 7, 1, 0, 7, 2, 0, 4, 0, 0, 7, 7, 0] \ No newline at end of file diff --git a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.cs b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.cs index 2f1efd8dca..b9c082bc6b 100644 --- a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.cs +++ b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.cs @@ -139,6 +139,9 @@ [System.Diagnostics.DebuggerNonUserCode] public ParagraphContext[] paragraph() { [System.Diagnostics.DebuggerNonUserCode] public ParagraphContext paragraph(int i) { return GetRuleContext(i); } + [System.Diagnostics.DebuggerNonUserCode] public CommentDefinitionContext commentDefinition() { + return GetRuleContext(0); + } public FileContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -166,31 +169,67 @@ public override TResult Accept(IParseTreeVisitor visitor) { public FileContext file() { FileContext _localctx = new FileContext(Context, State); EnterRule(_localctx, 0, RULE_file); + int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 121; + State = 128; ErrorHandler.Sync(this); - _alt = 1+1; - do { - switch (_alt) { - case 1+1: - { - { - State = 120; - paragraph(); - } + switch (TokenStream.LA(1)) { + case WS: + case NEWLINE: + case QNA_SOURCE_INFO: + case MODEL_INFO: + case QNA: + case HASH: + case DOLLAR: + case AT: + case IMPORT: + case REFERENCE: + case QNA_ID_MARK: + { + State = 121; + ErrorHandler.Sync(this); + _alt = 1+1; + do { + switch (_alt) { + case 1+1: + { + { + State = 120; + paragraph(); + } + } + break; + default: + throw new NoViableAltException(this); } - break; - default: - throw new NoViableAltException(this); + State = 123; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,0,Context); + } while ( _alt!=1 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } - State = 123; + break; + case Eof: + case COMMENT: + { + State = 126; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,0,Context); - } while ( _alt!=1 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); - State = 125; + _la = TokenStream.LA(1); + if (_la==COMMENT) { + { + State = 125; + commentDefinition(); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + State = 130; Match(Eof); } } @@ -231,9 +270,6 @@ [System.Diagnostics.DebuggerNonUserCode] public QnaSectionContext qnaSection() { [System.Diagnostics.DebuggerNonUserCode] public ModelInfoSectionContext modelInfoSection() { return GetRuleContext(0); } - [System.Diagnostics.DebuggerNonUserCode] public CommentDefinitionContext commentDefinition() { - return GetRuleContext(0); - } public ParagraphContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -262,79 +298,72 @@ public ParagraphContext paragraph() { ParagraphContext _localctx = new ParagraphContext(Context, State); EnterRule(_localctx, 2, RULE_paragraph); try { - State = 137; + State = 141; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,1,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,3,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 127; + State = 132; Match(NEWLINE); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 128; + State = 133; nestedIntentSection(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 129; + State = 134; simpleIntentSection(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 130; + State = 135; entitySection(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 131; + State = 136; newEntitySection(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 132; + State = 137; importSection(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 133; + State = 138; referenceSection(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 134; + State = 139; qnaSection(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 135; + State = 140; modelInfoSection(); } break; - case 10: - EnterOuterAlt(_localctx, 10); - { - State = 136; - commentDefinition(); - } - break; } } catch (RecognitionException re) { @@ -386,21 +415,21 @@ public NewlineContext newline() { try { EnterOuterAlt(_localctx, 1); { - State = 142; + State = 146; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 139; + State = 143; Match(WS); } } - State = 144; + State = 148; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 145; + State = 149; _la = TokenStream.LA(1); if ( !(_la==Eof || _la==NEWLINE) ) { ErrorHandler.RecoverInline(this); @@ -452,21 +481,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { public CommentDefinitionContext commentDefinition() { CommentDefinitionContext _localctx = new CommentDefinitionContext(Context, State); EnterRule(_localctx, 6, RULE_commentDefinition); + int _la; try { EnterOuterAlt(_localctx, 1); { - State = 147; + State = 151; Match(COMMENT); - State = 149; + State = 153; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,3,Context) ) { - case 1: + _la = TokenStream.LA(1); + if (_la==NEWLINE) { { - State = 148; + State = 152; Match(NEWLINE); } - break; } + } } catch (RecognitionException re) { @@ -521,7 +551,7 @@ public ErrorStringContext errorString() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 152; + State = 156; ErrorHandler.Sync(this); _alt = 1; do { @@ -529,7 +559,7 @@ public ErrorStringContext errorString() { case 1: { { - State = 151; + State = 155; _la = TokenStream.LA(1); if ( !(_la==WS || _la==INVALID_TOKEN_DEFAULT_MODE) ) { ErrorHandler.RecoverInline(this); @@ -544,9 +574,9 @@ public ErrorStringContext errorString() { default: throw new NoViableAltException(this); } - State = 154; + State = 158; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,4,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,6,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -598,9 +628,9 @@ public NestedIntentSectionContext nestedIntentSection() { try { EnterOuterAlt(_localctx, 1); { - State = 156; + State = 160; nestedIntentNameLine(); - State = 157; + State = 161; nestedIntentBodyDefinition(); } } @@ -655,37 +685,37 @@ public NestedIntentNameLineContext nestedIntentNameLine() { try { EnterOuterAlt(_localctx, 1); { - State = 162; + State = 166; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 159; + State = 163; Match(WS); } } - State = 164; + State = 168; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 165; - Match(HASH); State = 169; + Match(HASH); + State = 173; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 166; + State = 170; Match(WS); } } - State = 171; + State = 175; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 172; + State = 176; nestedIntentName(); } } @@ -742,26 +772,26 @@ public NestedIntentNameContext nestedIntentName() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 174; + State = 178; nameIdentifier(); - State = 179; + State = 183; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,8,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,10,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { - State = 177; + State = 181; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case WS: { - State = 175; + State = 179; Match(WS); } break; case IDENTIFIER: { - State = 176; + State = 180; nameIdentifier(); } break; @@ -770,9 +800,9 @@ public NestedIntentNameContext nestedIntentName() { } } } - State = 181; + State = 185; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,8,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,10,Context); } } } @@ -827,21 +857,21 @@ public NameIdentifierContext nameIdentifier() { try { EnterOuterAlt(_localctx, 1); { - State = 182; + State = 186; Match(IDENTIFIER); - State = 187; + State = 191; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==DOT) { { { - State = 183; + State = 187; Match(DOT); - State = 184; + State = 188; Match(IDENTIFIER); } } - State = 189; + State = 193; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } @@ -896,7 +926,7 @@ public NestedIntentBodyDefinitionContext nestedIntentBodyDefinition() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 191; + State = 195; ErrorHandler.Sync(this); _alt = 1; do { @@ -904,7 +934,7 @@ public NestedIntentBodyDefinitionContext nestedIntentBodyDefinition() { case 1: { { - State = 190; + State = 194; subIntentDefinition(); } } @@ -912,9 +942,9 @@ public NestedIntentBodyDefinitionContext nestedIntentBodyDefinition() { default: throw new NoViableAltException(this); } - State = 193; + State = 197; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,10,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,12,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -969,23 +999,23 @@ public SubIntentDefinitionContext subIntentDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 198; + State = 202; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 195; + State = 199; Match(WS); } } - State = 200; + State = 204; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 201; + State = 205; Match(HASH); - State = 202; + State = 206; simpleIntentSection(); } } @@ -1034,7 +1064,7 @@ public SimpleIntentSectionContext simpleIntentSection() { try { EnterOuterAlt(_localctx, 1); { - State = 204; + State = 208; intentDefinition(); } } @@ -1086,14 +1116,14 @@ public IntentDefinitionContext intentDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 206; + State = 210; intentNameLine(); - State = 208; + State = 212; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,12,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) { case 1: { - State = 207; + State = 211; intentBody(); } break; @@ -1154,47 +1184,47 @@ public IntentNameLineContext intentNameLine() { try { EnterOuterAlt(_localctx, 1); { - State = 213; + State = 217; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 210; + State = 214; Match(WS); } } - State = 215; + State = 219; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 216; + State = 220; Match(HASH); - State = 218; + State = 222; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==HASH) { { - State = 217; + State = 221; Match(HASH); } } - State = 223; + State = 227; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 220; + State = 224; Match(WS); } } - State = 225; + State = 229; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 226; + State = 230; intentName(); } } @@ -1251,26 +1281,26 @@ public IntentNameContext intentName() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 228; + State = 232; nameIdentifier(); - State = 233; + State = 237; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,17,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,19,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { - State = 231; + State = 235; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case WS: { - State = 229; + State = 233; Match(WS); } break; case IDENTIFIER: { - State = 230; + State = 234; nameIdentifier(); } break; @@ -1279,9 +1309,9 @@ public IntentNameContext intentName() { } } } - State = 235; + State = 239; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,17,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,19,Context); } } } @@ -1335,23 +1365,23 @@ public IntentBodyContext intentBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 239; + State = 243; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,18,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,20,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 236; + State = 240; Match(WS); } } } - State = 241; + State = 245; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,18,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,20,Context); } - State = 242; + State = 246; normalIntentBody(); } } @@ -1377,12 +1407,6 @@ [System.Diagnostics.DebuggerNonUserCode] public ErrorStringContext[] errorString [System.Diagnostics.DebuggerNonUserCode] public ErrorStringContext errorString(int i) { return GetRuleContext(i); } - [System.Diagnostics.DebuggerNonUserCode] public CommentDefinitionContext[] commentDefinition() { - return GetRuleContexts(); - } - [System.Diagnostics.DebuggerNonUserCode] public CommentDefinitionContext commentDefinition(int i) { - return GetRuleContext(i); - } [System.Diagnostics.DebuggerNonUserCode] public NormalIntentStringContext[] normalIntentString() { return GetRuleContexts(); } @@ -1426,63 +1450,57 @@ public NormalIntentBodyContext normalIntentBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 247; + State = 251; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,19,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,21,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 244; + State = 248; Match(WS); } } } - State = 249; + State = 253; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,19,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,21,Context); } - State = 255; + State = 258; ErrorHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 255; + State = 258; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,20,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,22,Context) ) { case 1: { { - State = 250; + State = 254; normalIntentString(); - State = 251; + State = 255; newline(); } } break; case 2: { - State = 253; + State = 257; errorString(); } break; - case 3: - { - State = 254; - commentDefinition(); - } - break; } } break; default: throw new NoViableAltException(this); } - State = 257; + State = 260; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,21,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,23,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -1547,30 +1565,30 @@ public NormalIntentStringContext normalIntentString() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 262; + State = 265; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 259; + State = 262; Match(WS); } } - State = 264; + State = 267; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 265; + State = 268; Match(DASH); - State = 269; + State = 272; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,23,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,25,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 266; + State = 269; _la = TokenStream.LA(1); if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 15032385538L) != 0) ) { ErrorHandler.RecoverInline(this); @@ -1582,9 +1600,9 @@ public NormalIntentStringContext normalIntentString() { } } } - State = 271; + State = 274; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,23,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,25,Context); } } } @@ -1633,7 +1651,7 @@ public NewEntitySectionContext newEntitySection() { try { EnterOuterAlt(_localctx, 1); { - State = 272; + State = 275; newEntityDefinition(); } } @@ -1685,14 +1703,14 @@ public NewEntityDefinitionContext newEntityDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 274; + State = 277; newEntityLine(); - State = 276; + State = 279; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,24,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,26,Context) ) { case 1: { - State = 275; + State = 278; newEntityListbody(); } break; @@ -1760,29 +1778,29 @@ public NewEntityListbodyContext newEntityListbody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 282; + State = 285; ErrorHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 282; + State = 285; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,25,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,27,Context) ) { case 1: { { - State = 278; + State = 281; normalItemString(); - State = 279; + State = 282; newline(); } } break; case 2: { - State = 281; + State = 284; errorString(); } break; @@ -1792,9 +1810,9 @@ public NewEntityListbodyContext newEntityListbody() { default: throw new NoViableAltException(this); } - State = 284; + State = 287; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,26,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,28,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -1872,186 +1890,186 @@ public NewEntityLineContext newEntityLine() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 289; + State = 292; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 286; + State = 289; Match(WS); } } - State = 291; + State = 294; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 292; + State = 295; Match(AT); - State = 296; + State = 299; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,28,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,30,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 293; + State = 296; Match(WS); } } } - State = 298; + State = 301; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,28,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,30,Context); } - State = 300; + State = 303; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==NEW_ENTITY_TYPE_IDENTIFIER) { { - State = 299; + State = 302; newEntityType(); } } - State = 305; + State = 308; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,30,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,32,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 302; + State = 305; Match(WS); } } } - State = 307; + State = 310; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,30,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,32,Context); } - State = 310; + State = 313; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,31,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,33,Context) ) { case 1: { - State = 308; + State = 311; newEntityName(); } break; case 2: { - State = 309; + State = 312; newEntityNameWithWS(); } break; } - State = 315; + State = 318; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,32,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,34,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 312; + State = 315; Match(WS); } } } - State = 317; + State = 320; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,32,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,34,Context); } - State = 319; + State = 322; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,33,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,35,Context) ) { case 1: { - State = 318; + State = 321; newEntityRoles(); } break; } - State = 324; + State = 327; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,34,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,36,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 321; + State = 324; Match(WS); } } } - State = 326; + State = 329; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,34,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,36,Context); } - State = 328; + State = 331; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==HAS_FEATURES_LABEL) { { - State = 327; + State = 330; newEntityUsesFeatures(); } } - State = 333; + State = 336; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,36,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,38,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 330; + State = 333; Match(WS); } } } - State = 335; + State = 338; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,36,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,38,Context); } - State = 337; + State = 340; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==EQUAL) { { - State = 336; + State = 339; Match(EQUAL); } } - State = 342; + State = 345; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,38,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,40,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 339; + State = 342; Match(WS); } } } - State = 344; + State = 347; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,38,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,40,Context); } - State = 347; + State = 350; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case NEW_COMPOSITE_ENTITY: { - State = 345; + State = 348; newCompositeDefinition(); } break; case NEW_REGEX_ENTITY: { - State = 346; + State = 349; newRegexDefinition(); } break; @@ -2062,7 +2080,7 @@ public NewEntityLineContext newEntityLine() { default: break; } - State = 349; + State = 352; newline(); } } @@ -2109,7 +2127,7 @@ public NewCompositeDefinitionContext newCompositeDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 351; + State = 354; Match(NEW_COMPOSITE_ENTITY); } } @@ -2156,7 +2174,7 @@ public NewRegexDefinitionContext newRegexDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 353; + State = 356; Match(NEW_REGEX_ENTITY); } } @@ -2203,7 +2221,7 @@ public NewEntityTypeContext newEntityType() { try { EnterOuterAlt(_localctx, 1); { - State = 355; + State = 358; Match(NEW_ENTITY_TYPE_IDENTIFIER); } } @@ -2258,31 +2276,31 @@ public NewEntityRolesContext newEntityRoles() { try { EnterOuterAlt(_localctx, 1); { - State = 358; + State = 361; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==HAS_ROLES_LABEL) { { - State = 357; + State = 360; Match(HAS_ROLES_LABEL); } } - State = 363; + State = 366; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 360; + State = 363; Match(WS); } } - State = 365; + State = 368; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 366; + State = 369; newEntityRoleOrFeatures(); } } @@ -2337,23 +2355,23 @@ public NewEntityUsesFeaturesContext newEntityUsesFeatures() { try { EnterOuterAlt(_localctx, 1); { - State = 368; + State = 371; Match(HAS_FEATURES_LABEL); - State = 372; + State = 375; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 369; + State = 372; Match(WS); } } - State = 374; + State = 377; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 375; + State = 378; newEntityRoleOrFeatures(); } } @@ -2417,7 +2435,7 @@ public NewEntityRoleOrFeaturesContext newEntityRoleOrFeatures() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 377; + State = 380; _la = TokenStream.LA(1); if ( !(_la==NEW_ENTITY_IDENTIFIER || _la==NEW_ENTITY_IDENTIFIER_WITH_WS) ) { ErrorHandler.RecoverInline(this); @@ -2426,44 +2444,44 @@ public NewEntityRoleOrFeaturesContext newEntityRoleOrFeatures() { ErrorHandler.ReportMatch(this); Consume(); } - State = 394; + State = 397; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,45,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,47,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 381; + State = 384; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 378; + State = 381; Match(WS); } } - State = 383; + State = 386; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 384; + State = 387; Match(COMMA); - State = 388; + State = 391; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 385; + State = 388; Match(WS); } } - State = 390; + State = 393; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 391; + State = 394; _la = TokenStream.LA(1); if ( !(_la==NEW_ENTITY_IDENTIFIER || _la==NEW_ENTITY_IDENTIFIER_WITH_WS) ) { ErrorHandler.RecoverInline(this); @@ -2475,9 +2493,9 @@ public NewEntityRoleOrFeaturesContext newEntityRoleOrFeatures() { } } } - State = 396; + State = 399; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,45,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,47,Context); } } } @@ -2530,28 +2548,28 @@ public NewEntityNameContext newEntityName() { try { EnterOuterAlt(_localctx, 1); { - State = 397; + State = 400; Match(NEW_ENTITY_IDENTIFIER); - State = 405; + State = 408; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,47,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,49,Context) ) { case 1: { - State = 401; + State = 404; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 398; + State = 401; Match(WS); } } - State = 403; + State = 406; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 404; + State = 407; Match(PHRASE_LIST_LABEL); } break; @@ -2607,28 +2625,28 @@ public NewEntityNameWithWSContext newEntityNameWithWS() { try { EnterOuterAlt(_localctx, 1); { - State = 407; + State = 410; Match(NEW_ENTITY_IDENTIFIER_WITH_WS); - State = 415; + State = 418; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,49,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,51,Context) ) { case 1: { - State = 411; + State = 414; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 408; + State = 411; Match(WS); } } - State = 413; + State = 416; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 414; + State = 417; Match(PHRASE_LIST_LABEL); } break; @@ -2680,7 +2698,7 @@ public EntitySectionContext entitySection() { try { EnterOuterAlt(_localctx, 1); { - State = 417; + State = 420; entityDefinition(); } } @@ -2732,14 +2750,14 @@ public EntityDefinitionContext entityDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 419; + State = 422; entityLine(); - State = 421; + State = 424; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,50,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,52,Context) ) { case 1: { - State = 420; + State = 423; entityListBody(); } break; @@ -2801,48 +2819,48 @@ public EntityLineContext entityLine() { try { EnterOuterAlt(_localctx, 1); { - State = 426; + State = 429; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 423; + State = 426; Match(WS); } } - State = 428; + State = 431; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 429; + State = 432; Match(DOLLAR); - State = 431; + State = 434; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,52,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,54,Context) ) { case 1: { - State = 430; + State = 433; entityName(); } break; } - State = 434; + State = 437; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,53,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,55,Context) ) { case 1: { - State = 433; + State = 436; Match(COLON_MARK); } break; } - State = 437; + State = 440; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,54,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,56,Context) ) { case 1: { - State = 436; + State = 439; entityType(); } break; @@ -2901,7 +2919,7 @@ public EntityNameContext entityName() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 440; + State = 443; ErrorHandler.Sync(this); _alt = 1; do { @@ -2909,7 +2927,7 @@ public EntityNameContext entityName() { case 1: { { - State = 439; + State = 442; _la = TokenStream.LA(1); if ( !(_la==WS || _la==ENTITY_TEXT) ) { ErrorHandler.RecoverInline(this); @@ -2924,9 +2942,9 @@ public EntityNameContext entityName() { default: throw new NoViableAltException(this); } - State = 442; + State = 445; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,55,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,57,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -2997,43 +3015,43 @@ public EntityTypeContext entityType() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 449; + State = 452; ErrorHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 449; + State = 452; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case COMPOSITE_ENTITY: { - State = 444; + State = 447; compositeEntityIdentifier(); } break; case REGEX_ENTITY: { - State = 445; + State = 448; regexEntityIdentifier(); } break; case ENTITY_TEXT: { - State = 446; + State = 449; Match(ENTITY_TEXT); } break; case COLON_MARK: { - State = 447; + State = 450; Match(COLON_MARK); } break; case WS: { - State = 448; + State = 451; Match(WS); } break; @@ -3045,9 +3063,9 @@ public EntityTypeContext entityType() { default: throw new NoViableAltException(this); } - State = 451; + State = 454; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,57,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,59,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -3094,7 +3112,7 @@ public CompositeEntityIdentifierContext compositeEntityIdentifier() { try { EnterOuterAlt(_localctx, 1); { - State = 453; + State = 456; Match(COMPOSITE_ENTITY); } } @@ -3141,7 +3159,7 @@ public RegexEntityIdentifierContext regexEntityIdentifier() { try { EnterOuterAlt(_localctx, 1); { - State = 455; + State = 458; Match(REGEX_ENTITY); } } @@ -3206,29 +3224,29 @@ public EntityListBodyContext entityListBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 461; + State = 464; ErrorHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 461; + State = 464; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,58,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,60,Context) ) { case 1: { { - State = 457; + State = 460; normalItemString(); - State = 458; + State = 461; newline(); } } break; case 2: { - State = 460; + State = 463; errorString(); } break; @@ -3238,9 +3256,9 @@ public EntityListBodyContext entityListBody() { default: throw new NoViableAltException(this); } - State = 463; + State = 466; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,59,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,61,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -3305,30 +3323,30 @@ public NormalItemStringContext normalItemString() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 468; + State = 471; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 465; + State = 468; Match(WS); } } - State = 470; + State = 473; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 471; + State = 474; Match(DASH); - State = 475; + State = 478; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,61,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,63,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 472; + State = 475; _la = TokenStream.LA(1); if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 15032385538L) != 0) ) { ErrorHandler.RecoverInline(this); @@ -3340,9 +3358,9 @@ public NormalItemStringContext normalItemString() { } } } - State = 477; + State = 480; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,61,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,63,Context); } } } @@ -3391,7 +3409,7 @@ public ImportSectionContext importSection() { try { EnterOuterAlt(_localctx, 1); { - State = 478; + State = 481; importDefinition(); } } @@ -3444,37 +3462,37 @@ public ImportDefinitionContext importDefinition() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 483; + State = 486; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 480; + State = 483; Match(WS); } } - State = 485; + State = 488; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 486; + State = 489; Match(IMPORT); - State = 490; + State = 493; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,63,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,65,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 487; + State = 490; Match(WS); } } } - State = 492; + State = 495; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,63,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,65,Context); } } } @@ -3523,7 +3541,7 @@ public ReferenceSectionContext referenceSection() { try { EnterOuterAlt(_localctx, 1); { - State = 493; + State = 496; referenceDefinition(); } } @@ -3576,37 +3594,37 @@ public ReferenceDefinitionContext referenceDefinition() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 498; + State = 501; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 495; + State = 498; Match(WS); } } - State = 500; + State = 503; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 501; + State = 504; Match(REFERENCE); - State = 505; + State = 508; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,65,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,67,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 502; + State = 505; Match(WS); } } } - State = 507; + State = 510; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,65,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,67,Context); } } } @@ -3655,7 +3673,7 @@ public QnaSectionContext qnaSection() { try { EnterOuterAlt(_localctx, 1); { - State = 508; + State = 511; qnaDefinition(); } } @@ -3719,38 +3737,38 @@ public QnaDefinitionContext qnaDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 511; + State = 514; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,66,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,68,Context) ) { case 1: { - State = 510; + State = 513; qnaSourceInfo(); } break; } - State = 514; + State = 517; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,67,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,69,Context) ) { case 1: { - State = 513; + State = 516; qnaIdMark(); } break; } - State = 516; + State = 519; qnaQuestion(); - State = 517; + State = 520; moreQuestionsBody(); - State = 518; + State = 521; qnaAnswerBody(); - State = 520; + State = 523; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,68,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,70,Context) ) { case 1: { - State = 519; + State = 522; promptSection(); } break; @@ -3805,21 +3823,21 @@ public QnaSourceInfoContext qnaSourceInfo() { try { EnterOuterAlt(_localctx, 1); { - State = 525; + State = 528; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 522; + State = 525; Match(WS); } } - State = 527; + State = 530; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 528; + State = 531; Match(QNA_SOURCE_INFO); } } @@ -3871,21 +3889,21 @@ public QnaIdMarkContext qnaIdMark() { try { EnterOuterAlt(_localctx, 1); { - State = 533; + State = 536; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 530; + State = 533; Match(WS); } } - State = 535; + State = 538; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 536; + State = 539; Match(QNA_ID_MARK); } } @@ -3940,23 +3958,23 @@ public QnaQuestionContext qnaQuestion() { try { EnterOuterAlt(_localctx, 1); { - State = 541; + State = 544; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 538; + State = 541; Match(WS); } } - State = 543; + State = 546; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 544; + State = 547; Match(QNA); - State = 545; + State = 548; questionText(); } } @@ -4007,17 +4025,17 @@ public QuestionTextContext questionText() { try { EnterOuterAlt(_localctx, 1); { - State = 550; + State = 553; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==QNA_TEXT) { { { - State = 547; + State = 550; Match(QNA_TEXT); } } - State = 552; + State = 555; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } @@ -4088,37 +4106,37 @@ public MoreQuestionsBodyContext moreQuestionsBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 556; + State = 559; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,73,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 553; + State = 556; Match(WS); } } } - State = 558; + State = 561; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,73,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); } - State = 565; + State = 568; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,77,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { - State = 563; + State = 566; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case DASH: { { - State = 559; + State = 562; moreQuestion(); - State = 560; + State = 563; newline(); } } @@ -4126,7 +4144,7 @@ public MoreQuestionsBodyContext moreQuestionsBody() { case WS: case INVALID_TOKEN_DEFAULT_MODE: { - State = 562; + State = 565; errorQuestionString(); } break; @@ -4135,9 +4153,9 @@ public MoreQuestionsBodyContext moreQuestionsBody() { } } } - State = 567; + State = 570; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,77,Context); } } } @@ -4194,16 +4212,16 @@ public MoreQuestionContext moreQuestion() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 568; + State = 571; Match(DASH); - State = 572; + State = 575; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,76,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,78,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 569; + State = 572; _la = TokenStream.LA(1); if ( !(_la==WS || _la==TEXT) ) { ErrorHandler.RecoverInline(this); @@ -4215,9 +4233,9 @@ public MoreQuestionContext moreQuestion() { } } } - State = 574; + State = 577; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,76,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,78,Context); } } } @@ -4273,7 +4291,7 @@ public ErrorQuestionStringContext errorQuestionString() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 576; + State = 579; ErrorHandler.Sync(this); _alt = 1; do { @@ -4281,7 +4299,7 @@ public ErrorQuestionStringContext errorQuestionString() { case 1: { { - State = 575; + State = 578; _la = TokenStream.LA(1); if ( !(_la==WS || _la==INVALID_TOKEN_DEFAULT_MODE) ) { ErrorHandler.RecoverInline(this); @@ -4296,9 +4314,9 @@ public ErrorQuestionStringContext errorQuestionString() { default: throw new NoViableAltException(this); } - State = 578; + State = 581; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,77,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,79,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -4350,23 +4368,23 @@ public QnaAnswerBodyContext qnaAnswerBody() { try { EnterOuterAlt(_localctx, 1); { - State = 588; + State = 591; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,80,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,82,Context) ) { case 1: { { - State = 581; + State = 584; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,78,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,80,Context) ) { case 1: { - State = 580; + State = 583; filterSection(); } break; } - State = 583; + State = 586; multiLineAnswer(); } } @@ -4374,14 +4392,14 @@ public QnaAnswerBodyContext qnaAnswerBody() { case 2: { { - State = 584; + State = 587; multiLineAnswer(); - State = 586; + State = 589; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,79,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,81,Context) ) { case 1: { - State = 585; + State = 588; filterSection(); } break; @@ -4453,41 +4471,41 @@ public FilterSectionContext filterSection() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 593; + State = 596; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 590; + State = 593; Match(WS); } } - State = 595; + State = 598; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 596; - Match(FILTER_MARK); State = 599; + Match(FILTER_MARK); + State = 602; ErrorHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 599; + State = 602; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,82,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,84,Context) ) { case 1: { - State = 597; + State = 600; filterLine(); } break; case 2: { - State = 598; + State = 601; errorFilterLine(); } break; @@ -4497,9 +4515,9 @@ public FilterSectionContext filterSection() { default: throw new NoViableAltException(this); } - State = 601; + State = 604; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,83,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,85,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -4564,41 +4582,41 @@ public PromptSectionContext promptSection() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 606; + State = 609; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 603; + State = 606; Match(WS); } } - State = 608; + State = 611; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 609; - Match(PROMPT_MARK); State = 612; + Match(PROMPT_MARK); + State = 615; ErrorHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 612; + State = 615; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,85,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,87,Context) ) { case 1: { - State = 610; + State = 613; filterLine(); } break; case 2: { - State = 611; + State = 614; errorFilterLine(); } break; @@ -4608,9 +4626,9 @@ public PromptSectionContext promptSection() { default: throw new NoViableAltException(this); } - State = 614; + State = 617; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,86,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,88,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -4670,30 +4688,30 @@ public FilterLineContext filterLine() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 619; + State = 622; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 616; + State = 619; Match(WS); } } - State = 621; + State = 624; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 622; + State = 625; Match(DASH); - State = 626; + State = 629; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,88,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,90,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 623; + State = 626; _la = TokenStream.LA(1); if ( !(_la==WS || _la==TEXT) ) { ErrorHandler.RecoverInline(this); @@ -4705,11 +4723,11 @@ public FilterLineContext filterLine() { } } } - State = 628; + State = 631; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,88,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,90,Context); } - State = 629; + State = 632; newline(); } } @@ -4765,7 +4783,7 @@ public ErrorFilterLineContext errorFilterLine() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 632; + State = 635; ErrorHandler.Sync(this); _alt = 1; do { @@ -4773,7 +4791,7 @@ public ErrorFilterLineContext errorFilterLine() { case 1: { { - State = 631; + State = 634; _la = TokenStream.LA(1); if ( !(_la==WS || _la==INVALID_TOKEN_DEFAULT_MODE) ) { ErrorHandler.RecoverInline(this); @@ -4788,9 +4806,9 @@ public ErrorFilterLineContext errorFilterLine() { default: throw new NoViableAltException(this); } - State = 634; + State = 637; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,89,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,91,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } } @@ -4842,21 +4860,21 @@ public MultiLineAnswerContext multiLineAnswer() { try { EnterOuterAlt(_localctx, 1); { - State = 639; + State = 642; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 636; + State = 639; Match(WS); } } - State = 641; + State = 644; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 642; + State = 645; Match(MULTI_LINE_TEXT); } } @@ -4905,7 +4923,7 @@ public ModelInfoSectionContext modelInfoSection() { try { EnterOuterAlt(_localctx, 1); { - State = 644; + State = 647; modelInfoDefinition(); } } @@ -4957,21 +4975,21 @@ public ModelInfoDefinitionContext modelInfoDefinition() { try { EnterOuterAlt(_localctx, 1); { - State = 649; + State = 652; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==WS) { { { - State = 646; + State = 649; Match(WS); } } - State = 651; + State = 654; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 652; + State = 655; Match(MODEL_INFO); } } @@ -4987,7 +5005,7 @@ public ModelInfoDefinitionContext modelInfoDefinition() { } private static int[] _serializedATN = { - 4,1,40,655,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, + 4,1,40,658,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, @@ -4995,221 +5013,222 @@ public ModelInfoDefinitionContext modelInfoDefinition() { 2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42, 2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49, 2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56, - 2,57,7,57,2,58,7,58,2,59,7,59,1,0,4,0,122,8,0,11,0,12,0,123,1,0,1,0,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,138,8,1,1,2,5,2,141,8,2,10,2, - 12,2,144,9,2,1,2,1,2,1,3,1,3,3,3,150,8,3,1,4,4,4,153,8,4,11,4,12,4,154, - 1,5,1,5,1,5,1,6,5,6,161,8,6,10,6,12,6,164,9,6,1,6,1,6,5,6,168,8,6,10,6, - 12,6,171,9,6,1,6,1,6,1,7,1,7,1,7,5,7,178,8,7,10,7,12,7,181,9,7,1,8,1,8, - 1,8,5,8,186,8,8,10,8,12,8,189,9,8,1,9,4,9,192,8,9,11,9,12,9,193,1,10,5, - 10,197,8,10,10,10,12,10,200,9,10,1,10,1,10,1,10,1,11,1,11,1,12,1,12,3, - 12,209,8,12,1,13,5,13,212,8,13,10,13,12,13,215,9,13,1,13,1,13,3,13,219, - 8,13,1,13,5,13,222,8,13,10,13,12,13,225,9,13,1,13,1,13,1,14,1,14,1,14, - 5,14,232,8,14,10,14,12,14,235,9,14,1,15,5,15,238,8,15,10,15,12,15,241, - 9,15,1,15,1,15,1,16,5,16,246,8,16,10,16,12,16,249,9,16,1,16,1,16,1,16, - 1,16,1,16,4,16,256,8,16,11,16,12,16,257,1,17,5,17,261,8,17,10,17,12,17, - 264,9,17,1,17,1,17,5,17,268,8,17,10,17,12,17,271,9,17,1,18,1,18,1,19,1, - 19,3,19,277,8,19,1,20,1,20,1,20,1,20,4,20,283,8,20,11,20,12,20,284,1,21, - 5,21,288,8,21,10,21,12,21,291,9,21,1,21,1,21,5,21,295,8,21,10,21,12,21, - 298,9,21,1,21,3,21,301,8,21,1,21,5,21,304,8,21,10,21,12,21,307,9,21,1, - 21,1,21,3,21,311,8,21,1,21,5,21,314,8,21,10,21,12,21,317,9,21,1,21,3,21, - 320,8,21,1,21,5,21,323,8,21,10,21,12,21,326,9,21,1,21,3,21,329,8,21,1, - 21,5,21,332,8,21,10,21,12,21,335,9,21,1,21,3,21,338,8,21,1,21,5,21,341, - 8,21,10,21,12,21,344,9,21,1,21,1,21,3,21,348,8,21,1,21,1,21,1,22,1,22, - 1,23,1,23,1,24,1,24,1,25,3,25,359,8,25,1,25,5,25,362,8,25,10,25,12,25, - 365,9,25,1,25,1,25,1,26,1,26,5,26,371,8,26,10,26,12,26,374,9,26,1,26,1, - 26,1,27,1,27,5,27,380,8,27,10,27,12,27,383,9,27,1,27,1,27,5,27,387,8,27, - 10,27,12,27,390,9,27,1,27,5,27,393,8,27,10,27,12,27,396,9,27,1,28,1,28, - 5,28,400,8,28,10,28,12,28,403,9,28,1,28,3,28,406,8,28,1,29,1,29,5,29,410, - 8,29,10,29,12,29,413,9,29,1,29,3,29,416,8,29,1,30,1,30,1,31,1,31,3,31, - 422,8,31,1,32,5,32,425,8,32,10,32,12,32,428,9,32,1,32,1,32,3,32,432,8, - 32,1,32,3,32,435,8,32,1,32,3,32,438,8,32,1,33,4,33,441,8,33,11,33,12,33, - 442,1,34,1,34,1,34,1,34,1,34,4,34,450,8,34,11,34,12,34,451,1,35,1,35,1, - 36,1,36,1,37,1,37,1,37,1,37,4,37,462,8,37,11,37,12,37,463,1,38,5,38,467, - 8,38,10,38,12,38,470,9,38,1,38,1,38,5,38,474,8,38,10,38,12,38,477,9,38, - 1,39,1,39,1,40,5,40,482,8,40,10,40,12,40,485,9,40,1,40,1,40,5,40,489,8, - 40,10,40,12,40,492,9,40,1,41,1,41,1,42,5,42,497,8,42,10,42,12,42,500,9, - 42,1,42,1,42,5,42,504,8,42,10,42,12,42,507,9,42,1,43,1,43,1,44,3,44,512, - 8,44,1,44,3,44,515,8,44,1,44,1,44,1,44,1,44,3,44,521,8,44,1,45,5,45,524, - 8,45,10,45,12,45,527,9,45,1,45,1,45,1,46,5,46,532,8,46,10,46,12,46,535, - 9,46,1,46,1,46,1,47,5,47,540,8,47,10,47,12,47,543,9,47,1,47,1,47,1,47, - 1,48,5,48,549,8,48,10,48,12,48,552,9,48,1,49,5,49,555,8,49,10,49,12,49, - 558,9,49,1,49,1,49,1,49,1,49,5,49,564,8,49,10,49,12,49,567,9,49,1,50,1, - 50,5,50,571,8,50,10,50,12,50,574,9,50,1,51,4,51,577,8,51,11,51,12,51,578, - 1,52,3,52,582,8,52,1,52,1,52,1,52,3,52,587,8,52,3,52,589,8,52,1,53,5,53, - 592,8,53,10,53,12,53,595,9,53,1,53,1,53,1,53,4,53,600,8,53,11,53,12,53, - 601,1,54,5,54,605,8,54,10,54,12,54,608,9,54,1,54,1,54,1,54,4,54,613,8, - 54,11,54,12,54,614,1,55,5,55,618,8,55,10,55,12,55,621,9,55,1,55,1,55,5, - 55,625,8,55,10,55,12,55,628,9,55,1,55,1,55,1,56,4,56,633,8,56,11,56,12, - 56,634,1,57,5,57,638,8,57,10,57,12,57,641,9,57,1,57,1,57,1,58,1,58,1,59, - 5,59,648,8,59,10,59,12,59,651,9,59,1,59,1,59,1,59,1,123,0,60,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,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102, - 104,106,108,110,112,114,116,118,0,6,1,1,2,2,2,0,1,1,17,17,2,0,1,1,31,33, - 1,0,26,27,2,0,1,1,37,37,2,0,1,1,33,33,700,0,121,1,0,0,0,2,137,1,0,0,0, - 4,142,1,0,0,0,6,147,1,0,0,0,8,152,1,0,0,0,10,156,1,0,0,0,12,162,1,0,0, - 0,14,174,1,0,0,0,16,182,1,0,0,0,18,191,1,0,0,0,20,198,1,0,0,0,22,204,1, - 0,0,0,24,206,1,0,0,0,26,213,1,0,0,0,28,228,1,0,0,0,30,239,1,0,0,0,32,247, - 1,0,0,0,34,262,1,0,0,0,36,272,1,0,0,0,38,274,1,0,0,0,40,282,1,0,0,0,42, - 289,1,0,0,0,44,351,1,0,0,0,46,353,1,0,0,0,48,355,1,0,0,0,50,358,1,0,0, - 0,52,368,1,0,0,0,54,377,1,0,0,0,56,397,1,0,0,0,58,407,1,0,0,0,60,417,1, - 0,0,0,62,419,1,0,0,0,64,426,1,0,0,0,66,440,1,0,0,0,68,449,1,0,0,0,70,453, - 1,0,0,0,72,455,1,0,0,0,74,461,1,0,0,0,76,468,1,0,0,0,78,478,1,0,0,0,80, - 483,1,0,0,0,82,493,1,0,0,0,84,498,1,0,0,0,86,508,1,0,0,0,88,511,1,0,0, - 0,90,525,1,0,0,0,92,533,1,0,0,0,94,541,1,0,0,0,96,550,1,0,0,0,98,556,1, - 0,0,0,100,568,1,0,0,0,102,576,1,0,0,0,104,588,1,0,0,0,106,593,1,0,0,0, - 108,606,1,0,0,0,110,619,1,0,0,0,112,632,1,0,0,0,114,639,1,0,0,0,116,644, - 1,0,0,0,118,649,1,0,0,0,120,122,3,2,1,0,121,120,1,0,0,0,122,123,1,0,0, - 0,123,124,1,0,0,0,123,121,1,0,0,0,124,125,1,0,0,0,125,126,5,0,0,1,126, - 1,1,0,0,0,127,138,5,2,0,0,128,138,3,10,5,0,129,138,3,22,11,0,130,138,3, - 60,30,0,131,138,3,36,18,0,132,138,3,78,39,0,133,138,3,82,41,0,134,138, - 3,86,43,0,135,138,3,116,58,0,136,138,3,6,3,0,137,127,1,0,0,0,137,128,1, - 0,0,0,137,129,1,0,0,0,137,130,1,0,0,0,137,131,1,0,0,0,137,132,1,0,0,0, - 137,133,1,0,0,0,137,134,1,0,0,0,137,135,1,0,0,0,137,136,1,0,0,0,138,3, - 1,0,0,0,139,141,5,1,0,0,140,139,1,0,0,0,141,144,1,0,0,0,142,140,1,0,0, - 0,142,143,1,0,0,0,143,145,1,0,0,0,144,142,1,0,0,0,145,146,7,0,0,0,146, - 5,1,0,0,0,147,149,5,5,0,0,148,150,5,2,0,0,149,148,1,0,0,0,149,150,1,0, - 0,0,150,7,1,0,0,0,151,153,7,1,0,0,152,151,1,0,0,0,153,154,1,0,0,0,154, - 152,1,0,0,0,154,155,1,0,0,0,155,9,1,0,0,0,156,157,3,12,6,0,157,158,3,18, - 9,0,158,11,1,0,0,0,159,161,5,1,0,0,160,159,1,0,0,0,161,164,1,0,0,0,162, - 160,1,0,0,0,162,163,1,0,0,0,163,165,1,0,0,0,164,162,1,0,0,0,165,169,5, - 7,0,0,166,168,5,1,0,0,167,166,1,0,0,0,168,171,1,0,0,0,169,167,1,0,0,0, - 169,170,1,0,0,0,170,172,1,0,0,0,171,169,1,0,0,0,172,173,3,14,7,0,173,13, - 1,0,0,0,174,179,3,16,8,0,175,178,5,1,0,0,176,178,3,16,8,0,177,175,1,0, - 0,0,177,176,1,0,0,0,178,181,1,0,0,0,179,177,1,0,0,0,179,180,1,0,0,0,180, - 15,1,0,0,0,181,179,1,0,0,0,182,187,5,29,0,0,183,184,5,30,0,0,184,186,5, - 29,0,0,185,183,1,0,0,0,186,189,1,0,0,0,187,185,1,0,0,0,187,188,1,0,0,0, - 188,17,1,0,0,0,189,187,1,0,0,0,190,192,3,20,10,0,191,190,1,0,0,0,192,193, - 1,0,0,0,193,191,1,0,0,0,193,194,1,0,0,0,194,19,1,0,0,0,195,197,5,1,0,0, - 196,195,1,0,0,0,197,200,1,0,0,0,198,196,1,0,0,0,198,199,1,0,0,0,199,201, - 1,0,0,0,200,198,1,0,0,0,201,202,5,7,0,0,202,203,3,22,11,0,203,21,1,0,0, - 0,204,205,3,24,12,0,205,23,1,0,0,0,206,208,3,26,13,0,207,209,3,30,15,0, - 208,207,1,0,0,0,208,209,1,0,0,0,209,25,1,0,0,0,210,212,5,1,0,0,211,210, - 1,0,0,0,212,215,1,0,0,0,213,211,1,0,0,0,213,214,1,0,0,0,214,216,1,0,0, - 0,215,213,1,0,0,0,216,218,5,7,0,0,217,219,5,7,0,0,218,217,1,0,0,0,218, - 219,1,0,0,0,219,223,1,0,0,0,220,222,5,1,0,0,221,220,1,0,0,0,222,225,1, - 0,0,0,223,221,1,0,0,0,223,224,1,0,0,0,224,226,1,0,0,0,225,223,1,0,0,0, - 226,227,3,28,14,0,227,27,1,0,0,0,228,233,3,16,8,0,229,232,5,1,0,0,230, - 232,3,16,8,0,231,229,1,0,0,0,231,230,1,0,0,0,232,235,1,0,0,0,233,231,1, - 0,0,0,233,234,1,0,0,0,234,29,1,0,0,0,235,233,1,0,0,0,236,238,5,1,0,0,237, - 236,1,0,0,0,238,241,1,0,0,0,239,237,1,0,0,0,239,240,1,0,0,0,240,242,1, - 0,0,0,241,239,1,0,0,0,242,243,3,32,16,0,243,31,1,0,0,0,244,246,5,1,0,0, - 245,244,1,0,0,0,246,249,1,0,0,0,247,245,1,0,0,0,247,248,1,0,0,0,248,255, - 1,0,0,0,249,247,1,0,0,0,250,251,3,34,17,0,251,252,3,4,2,0,252,256,1,0, - 0,0,253,256,3,8,4,0,254,256,3,6,3,0,255,250,1,0,0,0,255,253,1,0,0,0,255, - 254,1,0,0,0,256,257,1,0,0,0,257,255,1,0,0,0,257,258,1,0,0,0,258,33,1,0, - 0,0,259,261,5,1,0,0,260,259,1,0,0,0,261,264,1,0,0,0,262,260,1,0,0,0,262, - 263,1,0,0,0,263,265,1,0,0,0,264,262,1,0,0,0,265,269,5,8,0,0,266,268,7, - 2,0,0,267,266,1,0,0,0,268,271,1,0,0,0,269,267,1,0,0,0,269,270,1,0,0,0, - 270,35,1,0,0,0,271,269,1,0,0,0,272,273,3,38,19,0,273,37,1,0,0,0,274,276, - 3,42,21,0,275,277,3,40,20,0,276,275,1,0,0,0,276,277,1,0,0,0,277,39,1,0, - 0,0,278,279,3,76,38,0,279,280,3,4,2,0,280,283,1,0,0,0,281,283,3,8,4,0, - 282,278,1,0,0,0,282,281,1,0,0,0,283,284,1,0,0,0,284,282,1,0,0,0,284,285, - 1,0,0,0,285,41,1,0,0,0,286,288,5,1,0,0,287,286,1,0,0,0,288,291,1,0,0,0, - 289,287,1,0,0,0,289,290,1,0,0,0,290,292,1,0,0,0,291,289,1,0,0,0,292,296, - 5,10,0,0,293,295,5,1,0,0,294,293,1,0,0,0,295,298,1,0,0,0,296,294,1,0,0, - 0,296,297,1,0,0,0,297,300,1,0,0,0,298,296,1,0,0,0,299,301,3,48,24,0,300, - 299,1,0,0,0,300,301,1,0,0,0,301,305,1,0,0,0,302,304,5,1,0,0,303,302,1, - 0,0,0,304,307,1,0,0,0,305,303,1,0,0,0,305,306,1,0,0,0,306,310,1,0,0,0, - 307,305,1,0,0,0,308,311,3,56,28,0,309,311,3,58,29,0,310,308,1,0,0,0,310, - 309,1,0,0,0,310,311,1,0,0,0,311,315,1,0,0,0,312,314,5,1,0,0,313,312,1, - 0,0,0,314,317,1,0,0,0,315,313,1,0,0,0,315,316,1,0,0,0,316,319,1,0,0,0, - 317,315,1,0,0,0,318,320,3,50,25,0,319,318,1,0,0,0,319,320,1,0,0,0,320, - 324,1,0,0,0,321,323,5,1,0,0,322,321,1,0,0,0,323,326,1,0,0,0,324,322,1, - 0,0,0,324,325,1,0,0,0,325,328,1,0,0,0,326,324,1,0,0,0,327,329,3,52,26, - 0,328,327,1,0,0,0,328,329,1,0,0,0,329,333,1,0,0,0,330,332,5,1,0,0,331, - 330,1,0,0,0,332,335,1,0,0,0,333,331,1,0,0,0,333,334,1,0,0,0,334,337,1, - 0,0,0,335,333,1,0,0,0,336,338,5,18,0,0,337,336,1,0,0,0,337,338,1,0,0,0, - 338,342,1,0,0,0,339,341,5,1,0,0,340,339,1,0,0,0,341,344,1,0,0,0,342,340, - 1,0,0,0,342,343,1,0,0,0,343,347,1,0,0,0,344,342,1,0,0,0,345,348,3,44,22, - 0,346,348,3,46,23,0,347,345,1,0,0,0,347,346,1,0,0,0,347,348,1,0,0,0,348, - 349,1,0,0,0,349,350,3,4,2,0,350,43,1,0,0,0,351,352,5,24,0,0,352,45,1,0, - 0,0,353,354,5,25,0,0,354,47,1,0,0,0,355,356,5,22,0,0,356,49,1,0,0,0,357, - 359,5,20,0,0,358,357,1,0,0,0,358,359,1,0,0,0,359,363,1,0,0,0,360,362,5, - 1,0,0,361,360,1,0,0,0,362,365,1,0,0,0,363,361,1,0,0,0,363,364,1,0,0,0, - 364,366,1,0,0,0,365,363,1,0,0,0,366,367,3,54,27,0,367,51,1,0,0,0,368,372, - 5,21,0,0,369,371,5,1,0,0,370,369,1,0,0,0,371,374,1,0,0,0,372,370,1,0,0, - 0,372,373,1,0,0,0,373,375,1,0,0,0,374,372,1,0,0,0,375,376,3,54,27,0,376, - 53,1,0,0,0,377,394,7,3,0,0,378,380,5,1,0,0,379,378,1,0,0,0,380,383,1,0, - 0,0,381,379,1,0,0,0,381,382,1,0,0,0,382,384,1,0,0,0,383,381,1,0,0,0,384, - 388,5,19,0,0,385,387,5,1,0,0,386,385,1,0,0,0,387,390,1,0,0,0,388,386,1, - 0,0,0,388,389,1,0,0,0,389,391,1,0,0,0,390,388,1,0,0,0,391,393,7,3,0,0, - 392,381,1,0,0,0,393,396,1,0,0,0,394,392,1,0,0,0,394,395,1,0,0,0,395,55, - 1,0,0,0,396,394,1,0,0,0,397,405,5,26,0,0,398,400,5,1,0,0,399,398,1,0,0, - 0,400,403,1,0,0,0,401,399,1,0,0,0,401,402,1,0,0,0,402,404,1,0,0,0,403, - 401,1,0,0,0,404,406,5,23,0,0,405,401,1,0,0,0,405,406,1,0,0,0,406,57,1, - 0,0,0,407,415,5,27,0,0,408,410,5,1,0,0,409,408,1,0,0,0,410,413,1,0,0,0, - 411,409,1,0,0,0,411,412,1,0,0,0,412,414,1,0,0,0,413,411,1,0,0,0,414,416, - 5,23,0,0,415,411,1,0,0,0,415,416,1,0,0,0,416,59,1,0,0,0,417,418,3,62,31, - 0,418,61,1,0,0,0,419,421,3,64,32,0,420,422,3,74,37,0,421,420,1,0,0,0,421, - 422,1,0,0,0,422,63,1,0,0,0,423,425,5,1,0,0,424,423,1,0,0,0,425,428,1,0, - 0,0,426,424,1,0,0,0,426,427,1,0,0,0,427,429,1,0,0,0,428,426,1,0,0,0,429, - 431,5,9,0,0,430,432,3,66,33,0,431,430,1,0,0,0,431,432,1,0,0,0,432,434, - 1,0,0,0,433,435,5,38,0,0,434,433,1,0,0,0,434,435,1,0,0,0,435,437,1,0,0, - 0,436,438,3,68,34,0,437,436,1,0,0,0,437,438,1,0,0,0,438,65,1,0,0,0,439, - 441,7,4,0,0,440,439,1,0,0,0,441,442,1,0,0,0,442,440,1,0,0,0,442,443,1, - 0,0,0,443,67,1,0,0,0,444,450,3,70,35,0,445,450,3,72,36,0,446,450,5,37, - 0,0,447,450,5,38,0,0,448,450,5,1,0,0,449,444,1,0,0,0,449,445,1,0,0,0,449, - 446,1,0,0,0,449,447,1,0,0,0,449,448,1,0,0,0,450,451,1,0,0,0,451,449,1, - 0,0,0,451,452,1,0,0,0,452,69,1,0,0,0,453,454,5,35,0,0,454,71,1,0,0,0,455, - 456,5,36,0,0,456,73,1,0,0,0,457,458,3,76,38,0,458,459,3,4,2,0,459,462, - 1,0,0,0,460,462,3,8,4,0,461,457,1,0,0,0,461,460,1,0,0,0,462,463,1,0,0, - 0,463,461,1,0,0,0,463,464,1,0,0,0,464,75,1,0,0,0,465,467,5,1,0,0,466,465, - 1,0,0,0,467,470,1,0,0,0,468,466,1,0,0,0,468,469,1,0,0,0,469,471,1,0,0, - 0,470,468,1,0,0,0,471,475,5,8,0,0,472,474,7,2,0,0,473,472,1,0,0,0,474, - 477,1,0,0,0,475,473,1,0,0,0,475,476,1,0,0,0,476,77,1,0,0,0,477,475,1,0, - 0,0,478,479,3,80,40,0,479,79,1,0,0,0,480,482,5,1,0,0,481,480,1,0,0,0,482, - 485,1,0,0,0,483,481,1,0,0,0,483,484,1,0,0,0,484,486,1,0,0,0,485,483,1, - 0,0,0,486,490,5,11,0,0,487,489,5,1,0,0,488,487,1,0,0,0,489,492,1,0,0,0, - 490,488,1,0,0,0,490,491,1,0,0,0,491,81,1,0,0,0,492,490,1,0,0,0,493,494, - 3,84,42,0,494,83,1,0,0,0,495,497,5,1,0,0,496,495,1,0,0,0,497,500,1,0,0, - 0,498,496,1,0,0,0,498,499,1,0,0,0,499,501,1,0,0,0,500,498,1,0,0,0,501, - 505,5,12,0,0,502,504,5,1,0,0,503,502,1,0,0,0,504,507,1,0,0,0,505,503,1, - 0,0,0,505,506,1,0,0,0,506,85,1,0,0,0,507,505,1,0,0,0,508,509,3,88,44,0, - 509,87,1,0,0,0,510,512,3,90,45,0,511,510,1,0,0,0,511,512,1,0,0,0,512,514, - 1,0,0,0,513,515,3,92,46,0,514,513,1,0,0,0,514,515,1,0,0,0,515,516,1,0, - 0,0,516,517,3,94,47,0,517,518,3,98,49,0,518,520,3,104,52,0,519,521,3,108, - 54,0,520,519,1,0,0,0,520,521,1,0,0,0,521,89,1,0,0,0,522,524,5,1,0,0,523, - 522,1,0,0,0,524,527,1,0,0,0,525,523,1,0,0,0,525,526,1,0,0,0,526,528,1, - 0,0,0,527,525,1,0,0,0,528,529,5,3,0,0,529,91,1,0,0,0,530,532,5,1,0,0,531, - 530,1,0,0,0,532,535,1,0,0,0,533,531,1,0,0,0,533,534,1,0,0,0,534,536,1, - 0,0,0,535,533,1,0,0,0,536,537,5,14,0,0,537,93,1,0,0,0,538,540,5,1,0,0, - 539,538,1,0,0,0,540,543,1,0,0,0,541,539,1,0,0,0,541,542,1,0,0,0,542,544, - 1,0,0,0,543,541,1,0,0,0,544,545,5,6,0,0,545,546,3,96,48,0,546,95,1,0,0, - 0,547,549,5,40,0,0,548,547,1,0,0,0,549,552,1,0,0,0,550,548,1,0,0,0,550, - 551,1,0,0,0,551,97,1,0,0,0,552,550,1,0,0,0,553,555,5,1,0,0,554,553,1,0, - 0,0,555,558,1,0,0,0,556,554,1,0,0,0,556,557,1,0,0,0,557,565,1,0,0,0,558, - 556,1,0,0,0,559,560,3,100,50,0,560,561,3,4,2,0,561,564,1,0,0,0,562,564, - 3,102,51,0,563,559,1,0,0,0,563,562,1,0,0,0,564,567,1,0,0,0,565,563,1,0, - 0,0,565,566,1,0,0,0,566,99,1,0,0,0,567,565,1,0,0,0,568,572,5,8,0,0,569, - 571,7,5,0,0,570,569,1,0,0,0,571,574,1,0,0,0,572,570,1,0,0,0,572,573,1, - 0,0,0,573,101,1,0,0,0,574,572,1,0,0,0,575,577,7,1,0,0,576,575,1,0,0,0, - 577,578,1,0,0,0,578,576,1,0,0,0,578,579,1,0,0,0,579,103,1,0,0,0,580,582, - 3,106,53,0,581,580,1,0,0,0,581,582,1,0,0,0,582,583,1,0,0,0,583,589,3,114, - 57,0,584,586,3,114,57,0,585,587,3,106,53,0,586,585,1,0,0,0,586,587,1,0, - 0,0,587,589,1,0,0,0,588,581,1,0,0,0,588,584,1,0,0,0,589,105,1,0,0,0,590, - 592,5,1,0,0,591,590,1,0,0,0,592,595,1,0,0,0,593,591,1,0,0,0,593,594,1, - 0,0,0,594,596,1,0,0,0,595,593,1,0,0,0,596,599,5,13,0,0,597,600,3,110,55, - 0,598,600,3,112,56,0,599,597,1,0,0,0,599,598,1,0,0,0,600,601,1,0,0,0,601, - 599,1,0,0,0,601,602,1,0,0,0,602,107,1,0,0,0,603,605,5,1,0,0,604,603,1, - 0,0,0,605,608,1,0,0,0,606,604,1,0,0,0,606,607,1,0,0,0,607,609,1,0,0,0, - 608,606,1,0,0,0,609,612,5,16,0,0,610,613,3,110,55,0,611,613,3,112,56,0, - 612,610,1,0,0,0,612,611,1,0,0,0,613,614,1,0,0,0,614,612,1,0,0,0,614,615, - 1,0,0,0,615,109,1,0,0,0,616,618,5,1,0,0,617,616,1,0,0,0,618,621,1,0,0, - 0,619,617,1,0,0,0,619,620,1,0,0,0,620,622,1,0,0,0,621,619,1,0,0,0,622, - 626,5,8,0,0,623,625,7,5,0,0,624,623,1,0,0,0,625,628,1,0,0,0,626,624,1, - 0,0,0,626,627,1,0,0,0,627,629,1,0,0,0,628,626,1,0,0,0,629,630,3,4,2,0, - 630,111,1,0,0,0,631,633,7,1,0,0,632,631,1,0,0,0,633,634,1,0,0,0,634,632, - 1,0,0,0,634,635,1,0,0,0,635,113,1,0,0,0,636,638,5,1,0,0,637,636,1,0,0, - 0,638,641,1,0,0,0,639,637,1,0,0,0,639,640,1,0,0,0,640,642,1,0,0,0,641, - 639,1,0,0,0,642,643,5,15,0,0,643,115,1,0,0,0,644,645,3,118,59,0,645,117, - 1,0,0,0,646,648,5,1,0,0,647,646,1,0,0,0,648,651,1,0,0,0,649,647,1,0,0, - 0,649,650,1,0,0,0,650,652,1,0,0,0,651,649,1,0,0,0,652,653,5,4,0,0,653, - 119,1,0,0,0,92,123,137,142,149,154,162,169,177,179,187,193,198,208,213, - 218,223,231,233,239,247,255,257,262,269,276,282,284,289,296,300,305,310, - 315,319,324,328,333,337,342,347,358,363,372,381,388,394,401,405,411,415, - 421,426,431,434,437,442,449,451,461,463,468,475,483,490,498,505,511,514, - 520,525,533,541,550,556,563,565,572,578,581,586,588,593,599,601,606,612, - 614,619,626,634,639,649 + 2,57,7,57,2,58,7,58,2,59,7,59,1,0,4,0,122,8,0,11,0,12,0,123,1,0,3,0,127, + 8,0,3,0,129,8,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,142,8, + 1,1,2,5,2,145,8,2,10,2,12,2,148,9,2,1,2,1,2,1,3,1,3,3,3,154,8,3,1,4,4, + 4,157,8,4,11,4,12,4,158,1,5,1,5,1,5,1,6,5,6,165,8,6,10,6,12,6,168,9,6, + 1,6,1,6,5,6,172,8,6,10,6,12,6,175,9,6,1,6,1,6,1,7,1,7,1,7,5,7,182,8,7, + 10,7,12,7,185,9,7,1,8,1,8,1,8,5,8,190,8,8,10,8,12,8,193,9,8,1,9,4,9,196, + 8,9,11,9,12,9,197,1,10,5,10,201,8,10,10,10,12,10,204,9,10,1,10,1,10,1, + 10,1,11,1,11,1,12,1,12,3,12,213,8,12,1,13,5,13,216,8,13,10,13,12,13,219, + 9,13,1,13,1,13,3,13,223,8,13,1,13,5,13,226,8,13,10,13,12,13,229,9,13,1, + 13,1,13,1,14,1,14,1,14,5,14,236,8,14,10,14,12,14,239,9,14,1,15,5,15,242, + 8,15,10,15,12,15,245,9,15,1,15,1,15,1,16,5,16,250,8,16,10,16,12,16,253, + 9,16,1,16,1,16,1,16,1,16,4,16,259,8,16,11,16,12,16,260,1,17,5,17,264,8, + 17,10,17,12,17,267,9,17,1,17,1,17,5,17,271,8,17,10,17,12,17,274,9,17,1, + 18,1,18,1,19,1,19,3,19,280,8,19,1,20,1,20,1,20,1,20,4,20,286,8,20,11,20, + 12,20,287,1,21,5,21,291,8,21,10,21,12,21,294,9,21,1,21,1,21,5,21,298,8, + 21,10,21,12,21,301,9,21,1,21,3,21,304,8,21,1,21,5,21,307,8,21,10,21,12, + 21,310,9,21,1,21,1,21,3,21,314,8,21,1,21,5,21,317,8,21,10,21,12,21,320, + 9,21,1,21,3,21,323,8,21,1,21,5,21,326,8,21,10,21,12,21,329,9,21,1,21,3, + 21,332,8,21,1,21,5,21,335,8,21,10,21,12,21,338,9,21,1,21,3,21,341,8,21, + 1,21,5,21,344,8,21,10,21,12,21,347,9,21,1,21,1,21,3,21,351,8,21,1,21,1, + 21,1,22,1,22,1,23,1,23,1,24,1,24,1,25,3,25,362,8,25,1,25,5,25,365,8,25, + 10,25,12,25,368,9,25,1,25,1,25,1,26,1,26,5,26,374,8,26,10,26,12,26,377, + 9,26,1,26,1,26,1,27,1,27,5,27,383,8,27,10,27,12,27,386,9,27,1,27,1,27, + 5,27,390,8,27,10,27,12,27,393,9,27,1,27,5,27,396,8,27,10,27,12,27,399, + 9,27,1,28,1,28,5,28,403,8,28,10,28,12,28,406,9,28,1,28,3,28,409,8,28,1, + 29,1,29,5,29,413,8,29,10,29,12,29,416,9,29,1,29,3,29,419,8,29,1,30,1,30, + 1,31,1,31,3,31,425,8,31,1,32,5,32,428,8,32,10,32,12,32,431,9,32,1,32,1, + 32,3,32,435,8,32,1,32,3,32,438,8,32,1,32,3,32,441,8,32,1,33,4,33,444,8, + 33,11,33,12,33,445,1,34,1,34,1,34,1,34,1,34,4,34,453,8,34,11,34,12,34, + 454,1,35,1,35,1,36,1,36,1,37,1,37,1,37,1,37,4,37,465,8,37,11,37,12,37, + 466,1,38,5,38,470,8,38,10,38,12,38,473,9,38,1,38,1,38,5,38,477,8,38,10, + 38,12,38,480,9,38,1,39,1,39,1,40,5,40,485,8,40,10,40,12,40,488,9,40,1, + 40,1,40,5,40,492,8,40,10,40,12,40,495,9,40,1,41,1,41,1,42,5,42,500,8,42, + 10,42,12,42,503,9,42,1,42,1,42,5,42,507,8,42,10,42,12,42,510,9,42,1,43, + 1,43,1,44,3,44,515,8,44,1,44,3,44,518,8,44,1,44,1,44,1,44,1,44,3,44,524, + 8,44,1,45,5,45,527,8,45,10,45,12,45,530,9,45,1,45,1,45,1,46,5,46,535,8, + 46,10,46,12,46,538,9,46,1,46,1,46,1,47,5,47,543,8,47,10,47,12,47,546,9, + 47,1,47,1,47,1,47,1,48,5,48,552,8,48,10,48,12,48,555,9,48,1,49,5,49,558, + 8,49,10,49,12,49,561,9,49,1,49,1,49,1,49,1,49,5,49,567,8,49,10,49,12,49, + 570,9,49,1,50,1,50,5,50,574,8,50,10,50,12,50,577,9,50,1,51,4,51,580,8, + 51,11,51,12,51,581,1,52,3,52,585,8,52,1,52,1,52,1,52,3,52,590,8,52,3,52, + 592,8,52,1,53,5,53,595,8,53,10,53,12,53,598,9,53,1,53,1,53,1,53,4,53,603, + 8,53,11,53,12,53,604,1,54,5,54,608,8,54,10,54,12,54,611,9,54,1,54,1,54, + 1,54,4,54,616,8,54,11,54,12,54,617,1,55,5,55,621,8,55,10,55,12,55,624, + 9,55,1,55,1,55,5,55,628,8,55,10,55,12,55,631,9,55,1,55,1,55,1,56,4,56, + 636,8,56,11,56,12,56,637,1,57,5,57,641,8,57,10,57,12,57,644,9,57,1,57, + 1,57,1,58,1,58,1,59,5,59,651,8,59,10,59,12,59,654,9,59,1,59,1,59,1,59, + 1,123,0,60,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,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90, + 92,94,96,98,100,102,104,106,108,110,112,114,116,118,0,6,1,1,2,2,2,0,1, + 1,17,17,2,0,1,1,31,33,1,0,26,27,2,0,1,1,37,37,2,0,1,1,33,33,703,0,128, + 1,0,0,0,2,141,1,0,0,0,4,146,1,0,0,0,6,151,1,0,0,0,8,156,1,0,0,0,10,160, + 1,0,0,0,12,166,1,0,0,0,14,178,1,0,0,0,16,186,1,0,0,0,18,195,1,0,0,0,20, + 202,1,0,0,0,22,208,1,0,0,0,24,210,1,0,0,0,26,217,1,0,0,0,28,232,1,0,0, + 0,30,243,1,0,0,0,32,251,1,0,0,0,34,265,1,0,0,0,36,275,1,0,0,0,38,277,1, + 0,0,0,40,285,1,0,0,0,42,292,1,0,0,0,44,354,1,0,0,0,46,356,1,0,0,0,48,358, + 1,0,0,0,50,361,1,0,0,0,52,371,1,0,0,0,54,380,1,0,0,0,56,400,1,0,0,0,58, + 410,1,0,0,0,60,420,1,0,0,0,62,422,1,0,0,0,64,429,1,0,0,0,66,443,1,0,0, + 0,68,452,1,0,0,0,70,456,1,0,0,0,72,458,1,0,0,0,74,464,1,0,0,0,76,471,1, + 0,0,0,78,481,1,0,0,0,80,486,1,0,0,0,82,496,1,0,0,0,84,501,1,0,0,0,86,511, + 1,0,0,0,88,514,1,0,0,0,90,528,1,0,0,0,92,536,1,0,0,0,94,544,1,0,0,0,96, + 553,1,0,0,0,98,559,1,0,0,0,100,571,1,0,0,0,102,579,1,0,0,0,104,591,1,0, + 0,0,106,596,1,0,0,0,108,609,1,0,0,0,110,622,1,0,0,0,112,635,1,0,0,0,114, + 642,1,0,0,0,116,647,1,0,0,0,118,652,1,0,0,0,120,122,3,2,1,0,121,120,1, + 0,0,0,122,123,1,0,0,0,123,124,1,0,0,0,123,121,1,0,0,0,124,129,1,0,0,0, + 125,127,3,6,3,0,126,125,1,0,0,0,126,127,1,0,0,0,127,129,1,0,0,0,128,121, + 1,0,0,0,128,126,1,0,0,0,129,130,1,0,0,0,130,131,5,0,0,1,131,1,1,0,0,0, + 132,142,5,2,0,0,133,142,3,10,5,0,134,142,3,22,11,0,135,142,3,60,30,0,136, + 142,3,36,18,0,137,142,3,78,39,0,138,142,3,82,41,0,139,142,3,86,43,0,140, + 142,3,116,58,0,141,132,1,0,0,0,141,133,1,0,0,0,141,134,1,0,0,0,141,135, + 1,0,0,0,141,136,1,0,0,0,141,137,1,0,0,0,141,138,1,0,0,0,141,139,1,0,0, + 0,141,140,1,0,0,0,142,3,1,0,0,0,143,145,5,1,0,0,144,143,1,0,0,0,145,148, + 1,0,0,0,146,144,1,0,0,0,146,147,1,0,0,0,147,149,1,0,0,0,148,146,1,0,0, + 0,149,150,7,0,0,0,150,5,1,0,0,0,151,153,5,5,0,0,152,154,5,2,0,0,153,152, + 1,0,0,0,153,154,1,0,0,0,154,7,1,0,0,0,155,157,7,1,0,0,156,155,1,0,0,0, + 157,158,1,0,0,0,158,156,1,0,0,0,158,159,1,0,0,0,159,9,1,0,0,0,160,161, + 3,12,6,0,161,162,3,18,9,0,162,11,1,0,0,0,163,165,5,1,0,0,164,163,1,0,0, + 0,165,168,1,0,0,0,166,164,1,0,0,0,166,167,1,0,0,0,167,169,1,0,0,0,168, + 166,1,0,0,0,169,173,5,7,0,0,170,172,5,1,0,0,171,170,1,0,0,0,172,175,1, + 0,0,0,173,171,1,0,0,0,173,174,1,0,0,0,174,176,1,0,0,0,175,173,1,0,0,0, + 176,177,3,14,7,0,177,13,1,0,0,0,178,183,3,16,8,0,179,182,5,1,0,0,180,182, + 3,16,8,0,181,179,1,0,0,0,181,180,1,0,0,0,182,185,1,0,0,0,183,181,1,0,0, + 0,183,184,1,0,0,0,184,15,1,0,0,0,185,183,1,0,0,0,186,191,5,29,0,0,187, + 188,5,30,0,0,188,190,5,29,0,0,189,187,1,0,0,0,190,193,1,0,0,0,191,189, + 1,0,0,0,191,192,1,0,0,0,192,17,1,0,0,0,193,191,1,0,0,0,194,196,3,20,10, + 0,195,194,1,0,0,0,196,197,1,0,0,0,197,195,1,0,0,0,197,198,1,0,0,0,198, + 19,1,0,0,0,199,201,5,1,0,0,200,199,1,0,0,0,201,204,1,0,0,0,202,200,1,0, + 0,0,202,203,1,0,0,0,203,205,1,0,0,0,204,202,1,0,0,0,205,206,5,7,0,0,206, + 207,3,22,11,0,207,21,1,0,0,0,208,209,3,24,12,0,209,23,1,0,0,0,210,212, + 3,26,13,0,211,213,3,30,15,0,212,211,1,0,0,0,212,213,1,0,0,0,213,25,1,0, + 0,0,214,216,5,1,0,0,215,214,1,0,0,0,216,219,1,0,0,0,217,215,1,0,0,0,217, + 218,1,0,0,0,218,220,1,0,0,0,219,217,1,0,0,0,220,222,5,7,0,0,221,223,5, + 7,0,0,222,221,1,0,0,0,222,223,1,0,0,0,223,227,1,0,0,0,224,226,5,1,0,0, + 225,224,1,0,0,0,226,229,1,0,0,0,227,225,1,0,0,0,227,228,1,0,0,0,228,230, + 1,0,0,0,229,227,1,0,0,0,230,231,3,28,14,0,231,27,1,0,0,0,232,237,3,16, + 8,0,233,236,5,1,0,0,234,236,3,16,8,0,235,233,1,0,0,0,235,234,1,0,0,0,236, + 239,1,0,0,0,237,235,1,0,0,0,237,238,1,0,0,0,238,29,1,0,0,0,239,237,1,0, + 0,0,240,242,5,1,0,0,241,240,1,0,0,0,242,245,1,0,0,0,243,241,1,0,0,0,243, + 244,1,0,0,0,244,246,1,0,0,0,245,243,1,0,0,0,246,247,3,32,16,0,247,31,1, + 0,0,0,248,250,5,1,0,0,249,248,1,0,0,0,250,253,1,0,0,0,251,249,1,0,0,0, + 251,252,1,0,0,0,252,258,1,0,0,0,253,251,1,0,0,0,254,255,3,34,17,0,255, + 256,3,4,2,0,256,259,1,0,0,0,257,259,3,8,4,0,258,254,1,0,0,0,258,257,1, + 0,0,0,259,260,1,0,0,0,260,258,1,0,0,0,260,261,1,0,0,0,261,33,1,0,0,0,262, + 264,5,1,0,0,263,262,1,0,0,0,264,267,1,0,0,0,265,263,1,0,0,0,265,266,1, + 0,0,0,266,268,1,0,0,0,267,265,1,0,0,0,268,272,5,8,0,0,269,271,7,2,0,0, + 270,269,1,0,0,0,271,274,1,0,0,0,272,270,1,0,0,0,272,273,1,0,0,0,273,35, + 1,0,0,0,274,272,1,0,0,0,275,276,3,38,19,0,276,37,1,0,0,0,277,279,3,42, + 21,0,278,280,3,40,20,0,279,278,1,0,0,0,279,280,1,0,0,0,280,39,1,0,0,0, + 281,282,3,76,38,0,282,283,3,4,2,0,283,286,1,0,0,0,284,286,3,8,4,0,285, + 281,1,0,0,0,285,284,1,0,0,0,286,287,1,0,0,0,287,285,1,0,0,0,287,288,1, + 0,0,0,288,41,1,0,0,0,289,291,5,1,0,0,290,289,1,0,0,0,291,294,1,0,0,0,292, + 290,1,0,0,0,292,293,1,0,0,0,293,295,1,0,0,0,294,292,1,0,0,0,295,299,5, + 10,0,0,296,298,5,1,0,0,297,296,1,0,0,0,298,301,1,0,0,0,299,297,1,0,0,0, + 299,300,1,0,0,0,300,303,1,0,0,0,301,299,1,0,0,0,302,304,3,48,24,0,303, + 302,1,0,0,0,303,304,1,0,0,0,304,308,1,0,0,0,305,307,5,1,0,0,306,305,1, + 0,0,0,307,310,1,0,0,0,308,306,1,0,0,0,308,309,1,0,0,0,309,313,1,0,0,0, + 310,308,1,0,0,0,311,314,3,56,28,0,312,314,3,58,29,0,313,311,1,0,0,0,313, + 312,1,0,0,0,313,314,1,0,0,0,314,318,1,0,0,0,315,317,5,1,0,0,316,315,1, + 0,0,0,317,320,1,0,0,0,318,316,1,0,0,0,318,319,1,0,0,0,319,322,1,0,0,0, + 320,318,1,0,0,0,321,323,3,50,25,0,322,321,1,0,0,0,322,323,1,0,0,0,323, + 327,1,0,0,0,324,326,5,1,0,0,325,324,1,0,0,0,326,329,1,0,0,0,327,325,1, + 0,0,0,327,328,1,0,0,0,328,331,1,0,0,0,329,327,1,0,0,0,330,332,3,52,26, + 0,331,330,1,0,0,0,331,332,1,0,0,0,332,336,1,0,0,0,333,335,5,1,0,0,334, + 333,1,0,0,0,335,338,1,0,0,0,336,334,1,0,0,0,336,337,1,0,0,0,337,340,1, + 0,0,0,338,336,1,0,0,0,339,341,5,18,0,0,340,339,1,0,0,0,340,341,1,0,0,0, + 341,345,1,0,0,0,342,344,5,1,0,0,343,342,1,0,0,0,344,347,1,0,0,0,345,343, + 1,0,0,0,345,346,1,0,0,0,346,350,1,0,0,0,347,345,1,0,0,0,348,351,3,44,22, + 0,349,351,3,46,23,0,350,348,1,0,0,0,350,349,1,0,0,0,350,351,1,0,0,0,351, + 352,1,0,0,0,352,353,3,4,2,0,353,43,1,0,0,0,354,355,5,24,0,0,355,45,1,0, + 0,0,356,357,5,25,0,0,357,47,1,0,0,0,358,359,5,22,0,0,359,49,1,0,0,0,360, + 362,5,20,0,0,361,360,1,0,0,0,361,362,1,0,0,0,362,366,1,0,0,0,363,365,5, + 1,0,0,364,363,1,0,0,0,365,368,1,0,0,0,366,364,1,0,0,0,366,367,1,0,0,0, + 367,369,1,0,0,0,368,366,1,0,0,0,369,370,3,54,27,0,370,51,1,0,0,0,371,375, + 5,21,0,0,372,374,5,1,0,0,373,372,1,0,0,0,374,377,1,0,0,0,375,373,1,0,0, + 0,375,376,1,0,0,0,376,378,1,0,0,0,377,375,1,0,0,0,378,379,3,54,27,0,379, + 53,1,0,0,0,380,397,7,3,0,0,381,383,5,1,0,0,382,381,1,0,0,0,383,386,1,0, + 0,0,384,382,1,0,0,0,384,385,1,0,0,0,385,387,1,0,0,0,386,384,1,0,0,0,387, + 391,5,19,0,0,388,390,5,1,0,0,389,388,1,0,0,0,390,393,1,0,0,0,391,389,1, + 0,0,0,391,392,1,0,0,0,392,394,1,0,0,0,393,391,1,0,0,0,394,396,7,3,0,0, + 395,384,1,0,0,0,396,399,1,0,0,0,397,395,1,0,0,0,397,398,1,0,0,0,398,55, + 1,0,0,0,399,397,1,0,0,0,400,408,5,26,0,0,401,403,5,1,0,0,402,401,1,0,0, + 0,403,406,1,0,0,0,404,402,1,0,0,0,404,405,1,0,0,0,405,407,1,0,0,0,406, + 404,1,0,0,0,407,409,5,23,0,0,408,404,1,0,0,0,408,409,1,0,0,0,409,57,1, + 0,0,0,410,418,5,27,0,0,411,413,5,1,0,0,412,411,1,0,0,0,413,416,1,0,0,0, + 414,412,1,0,0,0,414,415,1,0,0,0,415,417,1,0,0,0,416,414,1,0,0,0,417,419, + 5,23,0,0,418,414,1,0,0,0,418,419,1,0,0,0,419,59,1,0,0,0,420,421,3,62,31, + 0,421,61,1,0,0,0,422,424,3,64,32,0,423,425,3,74,37,0,424,423,1,0,0,0,424, + 425,1,0,0,0,425,63,1,0,0,0,426,428,5,1,0,0,427,426,1,0,0,0,428,431,1,0, + 0,0,429,427,1,0,0,0,429,430,1,0,0,0,430,432,1,0,0,0,431,429,1,0,0,0,432, + 434,5,9,0,0,433,435,3,66,33,0,434,433,1,0,0,0,434,435,1,0,0,0,435,437, + 1,0,0,0,436,438,5,38,0,0,437,436,1,0,0,0,437,438,1,0,0,0,438,440,1,0,0, + 0,439,441,3,68,34,0,440,439,1,0,0,0,440,441,1,0,0,0,441,65,1,0,0,0,442, + 444,7,4,0,0,443,442,1,0,0,0,444,445,1,0,0,0,445,443,1,0,0,0,445,446,1, + 0,0,0,446,67,1,0,0,0,447,453,3,70,35,0,448,453,3,72,36,0,449,453,5,37, + 0,0,450,453,5,38,0,0,451,453,5,1,0,0,452,447,1,0,0,0,452,448,1,0,0,0,452, + 449,1,0,0,0,452,450,1,0,0,0,452,451,1,0,0,0,453,454,1,0,0,0,454,452,1, + 0,0,0,454,455,1,0,0,0,455,69,1,0,0,0,456,457,5,35,0,0,457,71,1,0,0,0,458, + 459,5,36,0,0,459,73,1,0,0,0,460,461,3,76,38,0,461,462,3,4,2,0,462,465, + 1,0,0,0,463,465,3,8,4,0,464,460,1,0,0,0,464,463,1,0,0,0,465,466,1,0,0, + 0,466,464,1,0,0,0,466,467,1,0,0,0,467,75,1,0,0,0,468,470,5,1,0,0,469,468, + 1,0,0,0,470,473,1,0,0,0,471,469,1,0,0,0,471,472,1,0,0,0,472,474,1,0,0, + 0,473,471,1,0,0,0,474,478,5,8,0,0,475,477,7,2,0,0,476,475,1,0,0,0,477, + 480,1,0,0,0,478,476,1,0,0,0,478,479,1,0,0,0,479,77,1,0,0,0,480,478,1,0, + 0,0,481,482,3,80,40,0,482,79,1,0,0,0,483,485,5,1,0,0,484,483,1,0,0,0,485, + 488,1,0,0,0,486,484,1,0,0,0,486,487,1,0,0,0,487,489,1,0,0,0,488,486,1, + 0,0,0,489,493,5,11,0,0,490,492,5,1,0,0,491,490,1,0,0,0,492,495,1,0,0,0, + 493,491,1,0,0,0,493,494,1,0,0,0,494,81,1,0,0,0,495,493,1,0,0,0,496,497, + 3,84,42,0,497,83,1,0,0,0,498,500,5,1,0,0,499,498,1,0,0,0,500,503,1,0,0, + 0,501,499,1,0,0,0,501,502,1,0,0,0,502,504,1,0,0,0,503,501,1,0,0,0,504, + 508,5,12,0,0,505,507,5,1,0,0,506,505,1,0,0,0,507,510,1,0,0,0,508,506,1, + 0,0,0,508,509,1,0,0,0,509,85,1,0,0,0,510,508,1,0,0,0,511,512,3,88,44,0, + 512,87,1,0,0,0,513,515,3,90,45,0,514,513,1,0,0,0,514,515,1,0,0,0,515,517, + 1,0,0,0,516,518,3,92,46,0,517,516,1,0,0,0,517,518,1,0,0,0,518,519,1,0, + 0,0,519,520,3,94,47,0,520,521,3,98,49,0,521,523,3,104,52,0,522,524,3,108, + 54,0,523,522,1,0,0,0,523,524,1,0,0,0,524,89,1,0,0,0,525,527,5,1,0,0,526, + 525,1,0,0,0,527,530,1,0,0,0,528,526,1,0,0,0,528,529,1,0,0,0,529,531,1, + 0,0,0,530,528,1,0,0,0,531,532,5,3,0,0,532,91,1,0,0,0,533,535,5,1,0,0,534, + 533,1,0,0,0,535,538,1,0,0,0,536,534,1,0,0,0,536,537,1,0,0,0,537,539,1, + 0,0,0,538,536,1,0,0,0,539,540,5,14,0,0,540,93,1,0,0,0,541,543,5,1,0,0, + 542,541,1,0,0,0,543,546,1,0,0,0,544,542,1,0,0,0,544,545,1,0,0,0,545,547, + 1,0,0,0,546,544,1,0,0,0,547,548,5,6,0,0,548,549,3,96,48,0,549,95,1,0,0, + 0,550,552,5,40,0,0,551,550,1,0,0,0,552,555,1,0,0,0,553,551,1,0,0,0,553, + 554,1,0,0,0,554,97,1,0,0,0,555,553,1,0,0,0,556,558,5,1,0,0,557,556,1,0, + 0,0,558,561,1,0,0,0,559,557,1,0,0,0,559,560,1,0,0,0,560,568,1,0,0,0,561, + 559,1,0,0,0,562,563,3,100,50,0,563,564,3,4,2,0,564,567,1,0,0,0,565,567, + 3,102,51,0,566,562,1,0,0,0,566,565,1,0,0,0,567,570,1,0,0,0,568,566,1,0, + 0,0,568,569,1,0,0,0,569,99,1,0,0,0,570,568,1,0,0,0,571,575,5,8,0,0,572, + 574,7,5,0,0,573,572,1,0,0,0,574,577,1,0,0,0,575,573,1,0,0,0,575,576,1, + 0,0,0,576,101,1,0,0,0,577,575,1,0,0,0,578,580,7,1,0,0,579,578,1,0,0,0, + 580,581,1,0,0,0,581,579,1,0,0,0,581,582,1,0,0,0,582,103,1,0,0,0,583,585, + 3,106,53,0,584,583,1,0,0,0,584,585,1,0,0,0,585,586,1,0,0,0,586,592,3,114, + 57,0,587,589,3,114,57,0,588,590,3,106,53,0,589,588,1,0,0,0,589,590,1,0, + 0,0,590,592,1,0,0,0,591,584,1,0,0,0,591,587,1,0,0,0,592,105,1,0,0,0,593, + 595,5,1,0,0,594,593,1,0,0,0,595,598,1,0,0,0,596,594,1,0,0,0,596,597,1, + 0,0,0,597,599,1,0,0,0,598,596,1,0,0,0,599,602,5,13,0,0,600,603,3,110,55, + 0,601,603,3,112,56,0,602,600,1,0,0,0,602,601,1,0,0,0,603,604,1,0,0,0,604, + 602,1,0,0,0,604,605,1,0,0,0,605,107,1,0,0,0,606,608,5,1,0,0,607,606,1, + 0,0,0,608,611,1,0,0,0,609,607,1,0,0,0,609,610,1,0,0,0,610,612,1,0,0,0, + 611,609,1,0,0,0,612,615,5,16,0,0,613,616,3,110,55,0,614,616,3,112,56,0, + 615,613,1,0,0,0,615,614,1,0,0,0,616,617,1,0,0,0,617,615,1,0,0,0,617,618, + 1,0,0,0,618,109,1,0,0,0,619,621,5,1,0,0,620,619,1,0,0,0,621,624,1,0,0, + 0,622,620,1,0,0,0,622,623,1,0,0,0,623,625,1,0,0,0,624,622,1,0,0,0,625, + 629,5,8,0,0,626,628,7,5,0,0,627,626,1,0,0,0,628,631,1,0,0,0,629,627,1, + 0,0,0,629,630,1,0,0,0,630,632,1,0,0,0,631,629,1,0,0,0,632,633,3,4,2,0, + 633,111,1,0,0,0,634,636,7,1,0,0,635,634,1,0,0,0,636,637,1,0,0,0,637,635, + 1,0,0,0,637,638,1,0,0,0,638,113,1,0,0,0,639,641,5,1,0,0,640,639,1,0,0, + 0,641,644,1,0,0,0,642,640,1,0,0,0,642,643,1,0,0,0,643,645,1,0,0,0,644, + 642,1,0,0,0,645,646,5,15,0,0,646,115,1,0,0,0,647,648,3,118,59,0,648,117, + 1,0,0,0,649,651,5,1,0,0,650,649,1,0,0,0,651,654,1,0,0,0,652,650,1,0,0, + 0,652,653,1,0,0,0,653,655,1,0,0,0,654,652,1,0,0,0,655,656,5,4,0,0,656, + 119,1,0,0,0,94,123,126,128,141,146,153,158,166,173,181,183,191,197,202, + 212,217,222,227,235,237,243,251,258,260,265,272,279,285,287,292,299,303, + 308,313,318,322,327,331,336,340,345,350,361,366,375,384,391,397,404,408, + 414,418,424,429,434,437,440,445,452,454,464,466,471,478,486,493,501,508, + 514,517,523,528,536,544,553,559,566,568,575,581,584,589,591,596,602,604, + 609,615,617,622,629,637,642,652 }; public static readonly ATN _ATN = diff --git a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.interp b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.interp index 3458f71511..481811f9ed 100644 --- a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.interp +++ b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/Generated/LUFileParser.interp @@ -148,4 +148,4 @@ modelInfoDefinition atn: -[4, 1, 40, 655, 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, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 1, 0, 4, 0, 122, 8, 0, 11, 0, 12, 0, 123, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 138, 8, 1, 1, 2, 5, 2, 141, 8, 2, 10, 2, 12, 2, 144, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 3, 3, 150, 8, 3, 1, 4, 4, 4, 153, 8, 4, 11, 4, 12, 4, 154, 1, 5, 1, 5, 1, 5, 1, 6, 5, 6, 161, 8, 6, 10, 6, 12, 6, 164, 9, 6, 1, 6, 1, 6, 5, 6, 168, 8, 6, 10, 6, 12, 6, 171, 9, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 5, 7, 178, 8, 7, 10, 7, 12, 7, 181, 9, 7, 1, 8, 1, 8, 1, 8, 5, 8, 186, 8, 8, 10, 8, 12, 8, 189, 9, 8, 1, 9, 4, 9, 192, 8, 9, 11, 9, 12, 9, 193, 1, 10, 5, 10, 197, 8, 10, 10, 10, 12, 10, 200, 9, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 209, 8, 12, 1, 13, 5, 13, 212, 8, 13, 10, 13, 12, 13, 215, 9, 13, 1, 13, 1, 13, 3, 13, 219, 8, 13, 1, 13, 5, 13, 222, 8, 13, 10, 13, 12, 13, 225, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 5, 14, 232, 8, 14, 10, 14, 12, 14, 235, 9, 14, 1, 15, 5, 15, 238, 8, 15, 10, 15, 12, 15, 241, 9, 15, 1, 15, 1, 15, 1, 16, 5, 16, 246, 8, 16, 10, 16, 12, 16, 249, 9, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 4, 16, 256, 8, 16, 11, 16, 12, 16, 257, 1, 17, 5, 17, 261, 8, 17, 10, 17, 12, 17, 264, 9, 17, 1, 17, 1, 17, 5, 17, 268, 8, 17, 10, 17, 12, 17, 271, 9, 17, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 277, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 283, 8, 20, 11, 20, 12, 20, 284, 1, 21, 5, 21, 288, 8, 21, 10, 21, 12, 21, 291, 9, 21, 1, 21, 1, 21, 5, 21, 295, 8, 21, 10, 21, 12, 21, 298, 9, 21, 1, 21, 3, 21, 301, 8, 21, 1, 21, 5, 21, 304, 8, 21, 10, 21, 12, 21, 307, 9, 21, 1, 21, 1, 21, 3, 21, 311, 8, 21, 1, 21, 5, 21, 314, 8, 21, 10, 21, 12, 21, 317, 9, 21, 1, 21, 3, 21, 320, 8, 21, 1, 21, 5, 21, 323, 8, 21, 10, 21, 12, 21, 326, 9, 21, 1, 21, 3, 21, 329, 8, 21, 1, 21, 5, 21, 332, 8, 21, 10, 21, 12, 21, 335, 9, 21, 1, 21, 3, 21, 338, 8, 21, 1, 21, 5, 21, 341, 8, 21, 10, 21, 12, 21, 344, 9, 21, 1, 21, 1, 21, 3, 21, 348, 8, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 3, 25, 359, 8, 25, 1, 25, 5, 25, 362, 8, 25, 10, 25, 12, 25, 365, 9, 25, 1, 25, 1, 25, 1, 26, 1, 26, 5, 26, 371, 8, 26, 10, 26, 12, 26, 374, 9, 26, 1, 26, 1, 26, 1, 27, 1, 27, 5, 27, 380, 8, 27, 10, 27, 12, 27, 383, 9, 27, 1, 27, 1, 27, 5, 27, 387, 8, 27, 10, 27, 12, 27, 390, 9, 27, 1, 27, 5, 27, 393, 8, 27, 10, 27, 12, 27, 396, 9, 27, 1, 28, 1, 28, 5, 28, 400, 8, 28, 10, 28, 12, 28, 403, 9, 28, 1, 28, 3, 28, 406, 8, 28, 1, 29, 1, 29, 5, 29, 410, 8, 29, 10, 29, 12, 29, 413, 9, 29, 1, 29, 3, 29, 416, 8, 29, 1, 30, 1, 30, 1, 31, 1, 31, 3, 31, 422, 8, 31, 1, 32, 5, 32, 425, 8, 32, 10, 32, 12, 32, 428, 9, 32, 1, 32, 1, 32, 3, 32, 432, 8, 32, 1, 32, 3, 32, 435, 8, 32, 1, 32, 3, 32, 438, 8, 32, 1, 33, 4, 33, 441, 8, 33, 11, 33, 12, 33, 442, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 4, 34, 450, 8, 34, 11, 34, 12, 34, 451, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 4, 37, 462, 8, 37, 11, 37, 12, 37, 463, 1, 38, 5, 38, 467, 8, 38, 10, 38, 12, 38, 470, 9, 38, 1, 38, 1, 38, 5, 38, 474, 8, 38, 10, 38, 12, 38, 477, 9, 38, 1, 39, 1, 39, 1, 40, 5, 40, 482, 8, 40, 10, 40, 12, 40, 485, 9, 40, 1, 40, 1, 40, 5, 40, 489, 8, 40, 10, 40, 12, 40, 492, 9, 40, 1, 41, 1, 41, 1, 42, 5, 42, 497, 8, 42, 10, 42, 12, 42, 500, 9, 42, 1, 42, 1, 42, 5, 42, 504, 8, 42, 10, 42, 12, 42, 507, 9, 42, 1, 43, 1, 43, 1, 44, 3, 44, 512, 8, 44, 1, 44, 3, 44, 515, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 521, 8, 44, 1, 45, 5, 45, 524, 8, 45, 10, 45, 12, 45, 527, 9, 45, 1, 45, 1, 45, 1, 46, 5, 46, 532, 8, 46, 10, 46, 12, 46, 535, 9, 46, 1, 46, 1, 46, 1, 47, 5, 47, 540, 8, 47, 10, 47, 12, 47, 543, 9, 47, 1, 47, 1, 47, 1, 47, 1, 48, 5, 48, 549, 8, 48, 10, 48, 12, 48, 552, 9, 48, 1, 49, 5, 49, 555, 8, 49, 10, 49, 12, 49, 558, 9, 49, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 564, 8, 49, 10, 49, 12, 49, 567, 9, 49, 1, 50, 1, 50, 5, 50, 571, 8, 50, 10, 50, 12, 50, 574, 9, 50, 1, 51, 4, 51, 577, 8, 51, 11, 51, 12, 51, 578, 1, 52, 3, 52, 582, 8, 52, 1, 52, 1, 52, 1, 52, 3, 52, 587, 8, 52, 3, 52, 589, 8, 52, 1, 53, 5, 53, 592, 8, 53, 10, 53, 12, 53, 595, 9, 53, 1, 53, 1, 53, 1, 53, 4, 53, 600, 8, 53, 11, 53, 12, 53, 601, 1, 54, 5, 54, 605, 8, 54, 10, 54, 12, 54, 608, 9, 54, 1, 54, 1, 54, 1, 54, 4, 54, 613, 8, 54, 11, 54, 12, 54, 614, 1, 55, 5, 55, 618, 8, 55, 10, 55, 12, 55, 621, 9, 55, 1, 55, 1, 55, 5, 55, 625, 8, 55, 10, 55, 12, 55, 628, 9, 55, 1, 55, 1, 55, 1, 56, 4, 56, 633, 8, 56, 11, 56, 12, 56, 634, 1, 57, 5, 57, 638, 8, 57, 10, 57, 12, 57, 641, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 59, 5, 59, 648, 8, 59, 10, 59, 12, 59, 651, 9, 59, 1, 59, 1, 59, 1, 59, 1, 123, 0, 60, 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, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 0, 6, 1, 1, 2, 2, 2, 0, 1, 1, 17, 17, 2, 0, 1, 1, 31, 33, 1, 0, 26, 27, 2, 0, 1, 1, 37, 37, 2, 0, 1, 1, 33, 33, 700, 0, 121, 1, 0, 0, 0, 2, 137, 1, 0, 0, 0, 4, 142, 1, 0, 0, 0, 6, 147, 1, 0, 0, 0, 8, 152, 1, 0, 0, 0, 10, 156, 1, 0, 0, 0, 12, 162, 1, 0, 0, 0, 14, 174, 1, 0, 0, 0, 16, 182, 1, 0, 0, 0, 18, 191, 1, 0, 0, 0, 20, 198, 1, 0, 0, 0, 22, 204, 1, 0, 0, 0, 24, 206, 1, 0, 0, 0, 26, 213, 1, 0, 0, 0, 28, 228, 1, 0, 0, 0, 30, 239, 1, 0, 0, 0, 32, 247, 1, 0, 0, 0, 34, 262, 1, 0, 0, 0, 36, 272, 1, 0, 0, 0, 38, 274, 1, 0, 0, 0, 40, 282, 1, 0, 0, 0, 42, 289, 1, 0, 0, 0, 44, 351, 1, 0, 0, 0, 46, 353, 1, 0, 0, 0, 48, 355, 1, 0, 0, 0, 50, 358, 1, 0, 0, 0, 52, 368, 1, 0, 0, 0, 54, 377, 1, 0, 0, 0, 56, 397, 1, 0, 0, 0, 58, 407, 1, 0, 0, 0, 60, 417, 1, 0, 0, 0, 62, 419, 1, 0, 0, 0, 64, 426, 1, 0, 0, 0, 66, 440, 1, 0, 0, 0, 68, 449, 1, 0, 0, 0, 70, 453, 1, 0, 0, 0, 72, 455, 1, 0, 0, 0, 74, 461, 1, 0, 0, 0, 76, 468, 1, 0, 0, 0, 78, 478, 1, 0, 0, 0, 80, 483, 1, 0, 0, 0, 82, 493, 1, 0, 0, 0, 84, 498, 1, 0, 0, 0, 86, 508, 1, 0, 0, 0, 88, 511, 1, 0, 0, 0, 90, 525, 1, 0, 0, 0, 92, 533, 1, 0, 0, 0, 94, 541, 1, 0, 0, 0, 96, 550, 1, 0, 0, 0, 98, 556, 1, 0, 0, 0, 100, 568, 1, 0, 0, 0, 102, 576, 1, 0, 0, 0, 104, 588, 1, 0, 0, 0, 106, 593, 1, 0, 0, 0, 108, 606, 1, 0, 0, 0, 110, 619, 1, 0, 0, 0, 112, 632, 1, 0, 0, 0, 114, 639, 1, 0, 0, 0, 116, 644, 1, 0, 0, 0, 118, 649, 1, 0, 0, 0, 120, 122, 3, 2, 1, 0, 121, 120, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 126, 5, 0, 0, 1, 126, 1, 1, 0, 0, 0, 127, 138, 5, 2, 0, 0, 128, 138, 3, 10, 5, 0, 129, 138, 3, 22, 11, 0, 130, 138, 3, 60, 30, 0, 131, 138, 3, 36, 18, 0, 132, 138, 3, 78, 39, 0, 133, 138, 3, 82, 41, 0, 134, 138, 3, 86, 43, 0, 135, 138, 3, 116, 58, 0, 136, 138, 3, 6, 3, 0, 137, 127, 1, 0, 0, 0, 137, 128, 1, 0, 0, 0, 137, 129, 1, 0, 0, 0, 137, 130, 1, 0, 0, 0, 137, 131, 1, 0, 0, 0, 137, 132, 1, 0, 0, 0, 137, 133, 1, 0, 0, 0, 137, 134, 1, 0, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 3, 1, 0, 0, 0, 139, 141, 5, 1, 0, 0, 140, 139, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 145, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 145, 146, 7, 0, 0, 0, 146, 5, 1, 0, 0, 0, 147, 149, 5, 5, 0, 0, 148, 150, 5, 2, 0, 0, 149, 148, 1, 0, 0, 0, 149, 150, 1, 0, 0, 0, 150, 7, 1, 0, 0, 0, 151, 153, 7, 1, 0, 0, 152, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 9, 1, 0, 0, 0, 156, 157, 3, 12, 6, 0, 157, 158, 3, 18, 9, 0, 158, 11, 1, 0, 0, 0, 159, 161, 5, 1, 0, 0, 160, 159, 1, 0, 0, 0, 161, 164, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 165, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 165, 169, 5, 7, 0, 0, 166, 168, 5, 1, 0, 0, 167, 166, 1, 0, 0, 0, 168, 171, 1, 0, 0, 0, 169, 167, 1, 0, 0, 0, 169, 170, 1, 0, 0, 0, 170, 172, 1, 0, 0, 0, 171, 169, 1, 0, 0, 0, 172, 173, 3, 14, 7, 0, 173, 13, 1, 0, 0, 0, 174, 179, 3, 16, 8, 0, 175, 178, 5, 1, 0, 0, 176, 178, 3, 16, 8, 0, 177, 175, 1, 0, 0, 0, 177, 176, 1, 0, 0, 0, 178, 181, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 15, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 182, 187, 5, 29, 0, 0, 183, 184, 5, 30, 0, 0, 184, 186, 5, 29, 0, 0, 185, 183, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 17, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 192, 3, 20, 10, 0, 191, 190, 1, 0, 0, 0, 192, 193, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 19, 1, 0, 0, 0, 195, 197, 5, 1, 0, 0, 196, 195, 1, 0, 0, 0, 197, 200, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198, 199, 1, 0, 0, 0, 199, 201, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 201, 202, 5, 7, 0, 0, 202, 203, 3, 22, 11, 0, 203, 21, 1, 0, 0, 0, 204, 205, 3, 24, 12, 0, 205, 23, 1, 0, 0, 0, 206, 208, 3, 26, 13, 0, 207, 209, 3, 30, 15, 0, 208, 207, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 25, 1, 0, 0, 0, 210, 212, 5, 1, 0, 0, 211, 210, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 216, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 218, 5, 7, 0, 0, 217, 219, 5, 7, 0, 0, 218, 217, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 223, 1, 0, 0, 0, 220, 222, 5, 1, 0, 0, 221, 220, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 226, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 3, 28, 14, 0, 227, 27, 1, 0, 0, 0, 228, 233, 3, 16, 8, 0, 229, 232, 5, 1, 0, 0, 230, 232, 3, 16, 8, 0, 231, 229, 1, 0, 0, 0, 231, 230, 1, 0, 0, 0, 232, 235, 1, 0, 0, 0, 233, 231, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 29, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 236, 238, 5, 1, 0, 0, 237, 236, 1, 0, 0, 0, 238, 241, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 242, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 242, 243, 3, 32, 16, 0, 243, 31, 1, 0, 0, 0, 244, 246, 5, 1, 0, 0, 245, 244, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 255, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 3, 34, 17, 0, 251, 252, 3, 4, 2, 0, 252, 256, 1, 0, 0, 0, 253, 256, 3, 8, 4, 0, 254, 256, 3, 6, 3, 0, 255, 250, 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 255, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 33, 1, 0, 0, 0, 259, 261, 5, 1, 0, 0, 260, 259, 1, 0, 0, 0, 261, 264, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 265, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 265, 269, 5, 8, 0, 0, 266, 268, 7, 2, 0, 0, 267, 266, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 35, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 273, 3, 38, 19, 0, 273, 37, 1, 0, 0, 0, 274, 276, 3, 42, 21, 0, 275, 277, 3, 40, 20, 0, 276, 275, 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 39, 1, 0, 0, 0, 278, 279, 3, 76, 38, 0, 279, 280, 3, 4, 2, 0, 280, 283, 1, 0, 0, 0, 281, 283, 3, 8, 4, 0, 282, 278, 1, 0, 0, 0, 282, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 41, 1, 0, 0, 0, 286, 288, 5, 1, 0, 0, 287, 286, 1, 0, 0, 0, 288, 291, 1, 0, 0, 0, 289, 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 292, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 292, 296, 5, 10, 0, 0, 293, 295, 5, 1, 0, 0, 294, 293, 1, 0, 0, 0, 295, 298, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 300, 1, 0, 0, 0, 298, 296, 1, 0, 0, 0, 299, 301, 3, 48, 24, 0, 300, 299, 1, 0, 0, 0, 300, 301, 1, 0, 0, 0, 301, 305, 1, 0, 0, 0, 302, 304, 5, 1, 0, 0, 303, 302, 1, 0, 0, 0, 304, 307, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 310, 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 311, 3, 56, 28, 0, 309, 311, 3, 58, 29, 0, 310, 308, 1, 0, 0, 0, 310, 309, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 315, 1, 0, 0, 0, 312, 314, 5, 1, 0, 0, 313, 312, 1, 0, 0, 0, 314, 317, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 319, 1, 0, 0, 0, 317, 315, 1, 0, 0, 0, 318, 320, 3, 50, 25, 0, 319, 318, 1, 0, 0, 0, 319, 320, 1, 0, 0, 0, 320, 324, 1, 0, 0, 0, 321, 323, 5, 1, 0, 0, 322, 321, 1, 0, 0, 0, 323, 326, 1, 0, 0, 0, 324, 322, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 327, 329, 3, 52, 26, 0, 328, 327, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 333, 1, 0, 0, 0, 330, 332, 5, 1, 0, 0, 331, 330, 1, 0, 0, 0, 332, 335, 1, 0, 0, 0, 333, 331, 1, 0, 0, 0, 333, 334, 1, 0, 0, 0, 334, 337, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 336, 338, 5, 18, 0, 0, 337, 336, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 342, 1, 0, 0, 0, 339, 341, 5, 1, 0, 0, 340, 339, 1, 0, 0, 0, 341, 344, 1, 0, 0, 0, 342, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 347, 1, 0, 0, 0, 344, 342, 1, 0, 0, 0, 345, 348, 3, 44, 22, 0, 346, 348, 3, 46, 23, 0, 347, 345, 1, 0, 0, 0, 347, 346, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 350, 3, 4, 2, 0, 350, 43, 1, 0, 0, 0, 351, 352, 5, 24, 0, 0, 352, 45, 1, 0, 0, 0, 353, 354, 5, 25, 0, 0, 354, 47, 1, 0, 0, 0, 355, 356, 5, 22, 0, 0, 356, 49, 1, 0, 0, 0, 357, 359, 5, 20, 0, 0, 358, 357, 1, 0, 0, 0, 358, 359, 1, 0, 0, 0, 359, 363, 1, 0, 0, 0, 360, 362, 5, 1, 0, 0, 361, 360, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 366, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 366, 367, 3, 54, 27, 0, 367, 51, 1, 0, 0, 0, 368, 372, 5, 21, 0, 0, 369, 371, 5, 1, 0, 0, 370, 369, 1, 0, 0, 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 375, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 376, 3, 54, 27, 0, 376, 53, 1, 0, 0, 0, 377, 394, 7, 3, 0, 0, 378, 380, 5, 1, 0, 0, 379, 378, 1, 0, 0, 0, 380, 383, 1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 384, 1, 0, 0, 0, 383, 381, 1, 0, 0, 0, 384, 388, 5, 19, 0, 0, 385, 387, 5, 1, 0, 0, 386, 385, 1, 0, 0, 0, 387, 390, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 388, 389, 1, 0, 0, 0, 389, 391, 1, 0, 0, 0, 390, 388, 1, 0, 0, 0, 391, 393, 7, 3, 0, 0, 392, 381, 1, 0, 0, 0, 393, 396, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 55, 1, 0, 0, 0, 396, 394, 1, 0, 0, 0, 397, 405, 5, 26, 0, 0, 398, 400, 5, 1, 0, 0, 399, 398, 1, 0, 0, 0, 400, 403, 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 404, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 404, 406, 5, 23, 0, 0, 405, 401, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 57, 1, 0, 0, 0, 407, 415, 5, 27, 0, 0, 408, 410, 5, 1, 0, 0, 409, 408, 1, 0, 0, 0, 410, 413, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 414, 1, 0, 0, 0, 413, 411, 1, 0, 0, 0, 414, 416, 5, 23, 0, 0, 415, 411, 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416, 59, 1, 0, 0, 0, 417, 418, 3, 62, 31, 0, 418, 61, 1, 0, 0, 0, 419, 421, 3, 64, 32, 0, 420, 422, 3, 74, 37, 0, 421, 420, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 63, 1, 0, 0, 0, 423, 425, 5, 1, 0, 0, 424, 423, 1, 0, 0, 0, 425, 428, 1, 0, 0, 0, 426, 424, 1, 0, 0, 0, 426, 427, 1, 0, 0, 0, 427, 429, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 429, 431, 5, 9, 0, 0, 430, 432, 3, 66, 33, 0, 431, 430, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 434, 1, 0, 0, 0, 433, 435, 5, 38, 0, 0, 434, 433, 1, 0, 0, 0, 434, 435, 1, 0, 0, 0, 435, 437, 1, 0, 0, 0, 436, 438, 3, 68, 34, 0, 437, 436, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 65, 1, 0, 0, 0, 439, 441, 7, 4, 0, 0, 440, 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443, 67, 1, 0, 0, 0, 444, 450, 3, 70, 35, 0, 445, 450, 3, 72, 36, 0, 446, 450, 5, 37, 0, 0, 447, 450, 5, 38, 0, 0, 448, 450, 5, 1, 0, 0, 449, 444, 1, 0, 0, 0, 449, 445, 1, 0, 0, 0, 449, 446, 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 449, 448, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 69, 1, 0, 0, 0, 453, 454, 5, 35, 0, 0, 454, 71, 1, 0, 0, 0, 455, 456, 5, 36, 0, 0, 456, 73, 1, 0, 0, 0, 457, 458, 3, 76, 38, 0, 458, 459, 3, 4, 2, 0, 459, 462, 1, 0, 0, 0, 460, 462, 3, 8, 4, 0, 461, 457, 1, 0, 0, 0, 461, 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 75, 1, 0, 0, 0, 465, 467, 5, 1, 0, 0, 466, 465, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 471, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 471, 475, 5, 8, 0, 0, 472, 474, 7, 2, 0, 0, 473, 472, 1, 0, 0, 0, 474, 477, 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 77, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 478, 479, 3, 80, 40, 0, 479, 79, 1, 0, 0, 0, 480, 482, 5, 1, 0, 0, 481, 480, 1, 0, 0, 0, 482, 485, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 486, 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, 486, 490, 5, 11, 0, 0, 487, 489, 5, 1, 0, 0, 488, 487, 1, 0, 0, 0, 489, 492, 1, 0, 0, 0, 490, 488, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 81, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 493, 494, 3, 84, 42, 0, 494, 83, 1, 0, 0, 0, 495, 497, 5, 1, 0, 0, 496, 495, 1, 0, 0, 0, 497, 500, 1, 0, 0, 0, 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 501, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 501, 505, 5, 12, 0, 0, 502, 504, 5, 1, 0, 0, 503, 502, 1, 0, 0, 0, 504, 507, 1, 0, 0, 0, 505, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 85, 1, 0, 0, 0, 507, 505, 1, 0, 0, 0, 508, 509, 3, 88, 44, 0, 509, 87, 1, 0, 0, 0, 510, 512, 3, 90, 45, 0, 511, 510, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 514, 1, 0, 0, 0, 513, 515, 3, 92, 46, 0, 514, 513, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516, 517, 3, 94, 47, 0, 517, 518, 3, 98, 49, 0, 518, 520, 3, 104, 52, 0, 519, 521, 3, 108, 54, 0, 520, 519, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 89, 1, 0, 0, 0, 522, 524, 5, 1, 0, 0, 523, 522, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 528, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528, 529, 5, 3, 0, 0, 529, 91, 1, 0, 0, 0, 530, 532, 5, 1, 0, 0, 531, 530, 1, 0, 0, 0, 532, 535, 1, 0, 0, 0, 533, 531, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 536, 1, 0, 0, 0, 535, 533, 1, 0, 0, 0, 536, 537, 5, 14, 0, 0, 537, 93, 1, 0, 0, 0, 538, 540, 5, 1, 0, 0, 539, 538, 1, 0, 0, 0, 540, 543, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 544, 1, 0, 0, 0, 543, 541, 1, 0, 0, 0, 544, 545, 5, 6, 0, 0, 545, 546, 3, 96, 48, 0, 546, 95, 1, 0, 0, 0, 547, 549, 5, 40, 0, 0, 548, 547, 1, 0, 0, 0, 549, 552, 1, 0, 0, 0, 550, 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 97, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 553, 555, 5, 1, 0, 0, 554, 553, 1, 0, 0, 0, 555, 558, 1, 0, 0, 0, 556, 554, 1, 0, 0, 0, 556, 557, 1, 0, 0, 0, 557, 565, 1, 0, 0, 0, 558, 556, 1, 0, 0, 0, 559, 560, 3, 100, 50, 0, 560, 561, 3, 4, 2, 0, 561, 564, 1, 0, 0, 0, 562, 564, 3, 102, 51, 0, 563, 559, 1, 0, 0, 0, 563, 562, 1, 0, 0, 0, 564, 567, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 566, 99, 1, 0, 0, 0, 567, 565, 1, 0, 0, 0, 568, 572, 5, 8, 0, 0, 569, 571, 7, 5, 0, 0, 570, 569, 1, 0, 0, 0, 571, 574, 1, 0, 0, 0, 572, 570, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 101, 1, 0, 0, 0, 574, 572, 1, 0, 0, 0, 575, 577, 7, 1, 0, 0, 576, 575, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 576, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579, 103, 1, 0, 0, 0, 580, 582, 3, 106, 53, 0, 581, 580, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 589, 3, 114, 57, 0, 584, 586, 3, 114, 57, 0, 585, 587, 3, 106, 53, 0, 586, 585, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 589, 1, 0, 0, 0, 588, 581, 1, 0, 0, 0, 588, 584, 1, 0, 0, 0, 589, 105, 1, 0, 0, 0, 590, 592, 5, 1, 0, 0, 591, 590, 1, 0, 0, 0, 592, 595, 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, 596, 1, 0, 0, 0, 595, 593, 1, 0, 0, 0, 596, 599, 5, 13, 0, 0, 597, 600, 3, 110, 55, 0, 598, 600, 3, 112, 56, 0, 599, 597, 1, 0, 0, 0, 599, 598, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 107, 1, 0, 0, 0, 603, 605, 5, 1, 0, 0, 604, 603, 1, 0, 0, 0, 605, 608, 1, 0, 0, 0, 606, 604, 1, 0, 0, 0, 606, 607, 1, 0, 0, 0, 607, 609, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 609, 612, 5, 16, 0, 0, 610, 613, 3, 110, 55, 0, 611, 613, 3, 112, 56, 0, 612, 610, 1, 0, 0, 0, 612, 611, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 109, 1, 0, 0, 0, 616, 618, 5, 1, 0, 0, 617, 616, 1, 0, 0, 0, 618, 621, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 622, 1, 0, 0, 0, 621, 619, 1, 0, 0, 0, 622, 626, 5, 8, 0, 0, 623, 625, 7, 5, 0, 0, 624, 623, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 629, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 629, 630, 3, 4, 2, 0, 630, 111, 1, 0, 0, 0, 631, 633, 7, 1, 0, 0, 632, 631, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 634, 632, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 113, 1, 0, 0, 0, 636, 638, 5, 1, 0, 0, 637, 636, 1, 0, 0, 0, 638, 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 642, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 642, 643, 5, 15, 0, 0, 643, 115, 1, 0, 0, 0, 644, 645, 3, 118, 59, 0, 645, 117, 1, 0, 0, 0, 646, 648, 5, 1, 0, 0, 647, 646, 1, 0, 0, 0, 648, 651, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 649, 650, 1, 0, 0, 0, 650, 652, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 652, 653, 5, 4, 0, 0, 653, 119, 1, 0, 0, 0, 92, 123, 137, 142, 149, 154, 162, 169, 177, 179, 187, 193, 198, 208, 213, 218, 223, 231, 233, 239, 247, 255, 257, 262, 269, 276, 282, 284, 289, 296, 300, 305, 310, 315, 319, 324, 328, 333, 337, 342, 347, 358, 363, 372, 381, 388, 394, 401, 405, 411, 415, 421, 426, 431, 434, 437, 442, 449, 451, 461, 463, 468, 475, 483, 490, 498, 505, 511, 514, 520, 525, 533, 541, 550, 556, 563, 565, 572, 578, 581, 586, 588, 593, 599, 601, 606, 612, 614, 619, 626, 634, 639, 649] \ No newline at end of file +[4, 1, 40, 658, 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, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 1, 0, 4, 0, 122, 8, 0, 11, 0, 12, 0, 123, 1, 0, 3, 0, 127, 8, 0, 3, 0, 129, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 142, 8, 1, 1, 2, 5, 2, 145, 8, 2, 10, 2, 12, 2, 148, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 3, 3, 154, 8, 3, 1, 4, 4, 4, 157, 8, 4, 11, 4, 12, 4, 158, 1, 5, 1, 5, 1, 5, 1, 6, 5, 6, 165, 8, 6, 10, 6, 12, 6, 168, 9, 6, 1, 6, 1, 6, 5, 6, 172, 8, 6, 10, 6, 12, 6, 175, 9, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 5, 7, 182, 8, 7, 10, 7, 12, 7, 185, 9, 7, 1, 8, 1, 8, 1, 8, 5, 8, 190, 8, 8, 10, 8, 12, 8, 193, 9, 8, 1, 9, 4, 9, 196, 8, 9, 11, 9, 12, 9, 197, 1, 10, 5, 10, 201, 8, 10, 10, 10, 12, 10, 204, 9, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 213, 8, 12, 1, 13, 5, 13, 216, 8, 13, 10, 13, 12, 13, 219, 9, 13, 1, 13, 1, 13, 3, 13, 223, 8, 13, 1, 13, 5, 13, 226, 8, 13, 10, 13, 12, 13, 229, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 5, 14, 236, 8, 14, 10, 14, 12, 14, 239, 9, 14, 1, 15, 5, 15, 242, 8, 15, 10, 15, 12, 15, 245, 9, 15, 1, 15, 1, 15, 1, 16, 5, 16, 250, 8, 16, 10, 16, 12, 16, 253, 9, 16, 1, 16, 1, 16, 1, 16, 1, 16, 4, 16, 259, 8, 16, 11, 16, 12, 16, 260, 1, 17, 5, 17, 264, 8, 17, 10, 17, 12, 17, 267, 9, 17, 1, 17, 1, 17, 5, 17, 271, 8, 17, 10, 17, 12, 17, 274, 9, 17, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 280, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 286, 8, 20, 11, 20, 12, 20, 287, 1, 21, 5, 21, 291, 8, 21, 10, 21, 12, 21, 294, 9, 21, 1, 21, 1, 21, 5, 21, 298, 8, 21, 10, 21, 12, 21, 301, 9, 21, 1, 21, 3, 21, 304, 8, 21, 1, 21, 5, 21, 307, 8, 21, 10, 21, 12, 21, 310, 9, 21, 1, 21, 1, 21, 3, 21, 314, 8, 21, 1, 21, 5, 21, 317, 8, 21, 10, 21, 12, 21, 320, 9, 21, 1, 21, 3, 21, 323, 8, 21, 1, 21, 5, 21, 326, 8, 21, 10, 21, 12, 21, 329, 9, 21, 1, 21, 3, 21, 332, 8, 21, 1, 21, 5, 21, 335, 8, 21, 10, 21, 12, 21, 338, 9, 21, 1, 21, 3, 21, 341, 8, 21, 1, 21, 5, 21, 344, 8, 21, 10, 21, 12, 21, 347, 9, 21, 1, 21, 1, 21, 3, 21, 351, 8, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 3, 25, 362, 8, 25, 1, 25, 5, 25, 365, 8, 25, 10, 25, 12, 25, 368, 9, 25, 1, 25, 1, 25, 1, 26, 1, 26, 5, 26, 374, 8, 26, 10, 26, 12, 26, 377, 9, 26, 1, 26, 1, 26, 1, 27, 1, 27, 5, 27, 383, 8, 27, 10, 27, 12, 27, 386, 9, 27, 1, 27, 1, 27, 5, 27, 390, 8, 27, 10, 27, 12, 27, 393, 9, 27, 1, 27, 5, 27, 396, 8, 27, 10, 27, 12, 27, 399, 9, 27, 1, 28, 1, 28, 5, 28, 403, 8, 28, 10, 28, 12, 28, 406, 9, 28, 1, 28, 3, 28, 409, 8, 28, 1, 29, 1, 29, 5, 29, 413, 8, 29, 10, 29, 12, 29, 416, 9, 29, 1, 29, 3, 29, 419, 8, 29, 1, 30, 1, 30, 1, 31, 1, 31, 3, 31, 425, 8, 31, 1, 32, 5, 32, 428, 8, 32, 10, 32, 12, 32, 431, 9, 32, 1, 32, 1, 32, 3, 32, 435, 8, 32, 1, 32, 3, 32, 438, 8, 32, 1, 32, 3, 32, 441, 8, 32, 1, 33, 4, 33, 444, 8, 33, 11, 33, 12, 33, 445, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 4, 34, 453, 8, 34, 11, 34, 12, 34, 454, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 4, 37, 465, 8, 37, 11, 37, 12, 37, 466, 1, 38, 5, 38, 470, 8, 38, 10, 38, 12, 38, 473, 9, 38, 1, 38, 1, 38, 5, 38, 477, 8, 38, 10, 38, 12, 38, 480, 9, 38, 1, 39, 1, 39, 1, 40, 5, 40, 485, 8, 40, 10, 40, 12, 40, 488, 9, 40, 1, 40, 1, 40, 5, 40, 492, 8, 40, 10, 40, 12, 40, 495, 9, 40, 1, 41, 1, 41, 1, 42, 5, 42, 500, 8, 42, 10, 42, 12, 42, 503, 9, 42, 1, 42, 1, 42, 5, 42, 507, 8, 42, 10, 42, 12, 42, 510, 9, 42, 1, 43, 1, 43, 1, 44, 3, 44, 515, 8, 44, 1, 44, 3, 44, 518, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 524, 8, 44, 1, 45, 5, 45, 527, 8, 45, 10, 45, 12, 45, 530, 9, 45, 1, 45, 1, 45, 1, 46, 5, 46, 535, 8, 46, 10, 46, 12, 46, 538, 9, 46, 1, 46, 1, 46, 1, 47, 5, 47, 543, 8, 47, 10, 47, 12, 47, 546, 9, 47, 1, 47, 1, 47, 1, 47, 1, 48, 5, 48, 552, 8, 48, 10, 48, 12, 48, 555, 9, 48, 1, 49, 5, 49, 558, 8, 49, 10, 49, 12, 49, 561, 9, 49, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 567, 8, 49, 10, 49, 12, 49, 570, 9, 49, 1, 50, 1, 50, 5, 50, 574, 8, 50, 10, 50, 12, 50, 577, 9, 50, 1, 51, 4, 51, 580, 8, 51, 11, 51, 12, 51, 581, 1, 52, 3, 52, 585, 8, 52, 1, 52, 1, 52, 1, 52, 3, 52, 590, 8, 52, 3, 52, 592, 8, 52, 1, 53, 5, 53, 595, 8, 53, 10, 53, 12, 53, 598, 9, 53, 1, 53, 1, 53, 1, 53, 4, 53, 603, 8, 53, 11, 53, 12, 53, 604, 1, 54, 5, 54, 608, 8, 54, 10, 54, 12, 54, 611, 9, 54, 1, 54, 1, 54, 1, 54, 4, 54, 616, 8, 54, 11, 54, 12, 54, 617, 1, 55, 5, 55, 621, 8, 55, 10, 55, 12, 55, 624, 9, 55, 1, 55, 1, 55, 5, 55, 628, 8, 55, 10, 55, 12, 55, 631, 9, 55, 1, 55, 1, 55, 1, 56, 4, 56, 636, 8, 56, 11, 56, 12, 56, 637, 1, 57, 5, 57, 641, 8, 57, 10, 57, 12, 57, 644, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 59, 5, 59, 651, 8, 59, 10, 59, 12, 59, 654, 9, 59, 1, 59, 1, 59, 1, 59, 1, 123, 0, 60, 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, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 0, 6, 1, 1, 2, 2, 2, 0, 1, 1, 17, 17, 2, 0, 1, 1, 31, 33, 1, 0, 26, 27, 2, 0, 1, 1, 37, 37, 2, 0, 1, 1, 33, 33, 703, 0, 128, 1, 0, 0, 0, 2, 141, 1, 0, 0, 0, 4, 146, 1, 0, 0, 0, 6, 151, 1, 0, 0, 0, 8, 156, 1, 0, 0, 0, 10, 160, 1, 0, 0, 0, 12, 166, 1, 0, 0, 0, 14, 178, 1, 0, 0, 0, 16, 186, 1, 0, 0, 0, 18, 195, 1, 0, 0, 0, 20, 202, 1, 0, 0, 0, 22, 208, 1, 0, 0, 0, 24, 210, 1, 0, 0, 0, 26, 217, 1, 0, 0, 0, 28, 232, 1, 0, 0, 0, 30, 243, 1, 0, 0, 0, 32, 251, 1, 0, 0, 0, 34, 265, 1, 0, 0, 0, 36, 275, 1, 0, 0, 0, 38, 277, 1, 0, 0, 0, 40, 285, 1, 0, 0, 0, 42, 292, 1, 0, 0, 0, 44, 354, 1, 0, 0, 0, 46, 356, 1, 0, 0, 0, 48, 358, 1, 0, 0, 0, 50, 361, 1, 0, 0, 0, 52, 371, 1, 0, 0, 0, 54, 380, 1, 0, 0, 0, 56, 400, 1, 0, 0, 0, 58, 410, 1, 0, 0, 0, 60, 420, 1, 0, 0, 0, 62, 422, 1, 0, 0, 0, 64, 429, 1, 0, 0, 0, 66, 443, 1, 0, 0, 0, 68, 452, 1, 0, 0, 0, 70, 456, 1, 0, 0, 0, 72, 458, 1, 0, 0, 0, 74, 464, 1, 0, 0, 0, 76, 471, 1, 0, 0, 0, 78, 481, 1, 0, 0, 0, 80, 486, 1, 0, 0, 0, 82, 496, 1, 0, 0, 0, 84, 501, 1, 0, 0, 0, 86, 511, 1, 0, 0, 0, 88, 514, 1, 0, 0, 0, 90, 528, 1, 0, 0, 0, 92, 536, 1, 0, 0, 0, 94, 544, 1, 0, 0, 0, 96, 553, 1, 0, 0, 0, 98, 559, 1, 0, 0, 0, 100, 571, 1, 0, 0, 0, 102, 579, 1, 0, 0, 0, 104, 591, 1, 0, 0, 0, 106, 596, 1, 0, 0, 0, 108, 609, 1, 0, 0, 0, 110, 622, 1, 0, 0, 0, 112, 635, 1, 0, 0, 0, 114, 642, 1, 0, 0, 0, 116, 647, 1, 0, 0, 0, 118, 652, 1, 0, 0, 0, 120, 122, 3, 2, 1, 0, 121, 120, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 124, 129, 1, 0, 0, 0, 125, 127, 3, 6, 3, 0, 126, 125, 1, 0, 0, 0, 126, 127, 1, 0, 0, 0, 127, 129, 1, 0, 0, 0, 128, 121, 1, 0, 0, 0, 128, 126, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 131, 5, 0, 0, 1, 131, 1, 1, 0, 0, 0, 132, 142, 5, 2, 0, 0, 133, 142, 3, 10, 5, 0, 134, 142, 3, 22, 11, 0, 135, 142, 3, 60, 30, 0, 136, 142, 3, 36, 18, 0, 137, 142, 3, 78, 39, 0, 138, 142, 3, 82, 41, 0, 139, 142, 3, 86, 43, 0, 140, 142, 3, 116, 58, 0, 141, 132, 1, 0, 0, 0, 141, 133, 1, 0, 0, 0, 141, 134, 1, 0, 0, 0, 141, 135, 1, 0, 0, 0, 141, 136, 1, 0, 0, 0, 141, 137, 1, 0, 0, 0, 141, 138, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 141, 140, 1, 0, 0, 0, 142, 3, 1, 0, 0, 0, 143, 145, 5, 1, 0, 0, 144, 143, 1, 0, 0, 0, 145, 148, 1, 0, 0, 0, 146, 144, 1, 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 149, 1, 0, 0, 0, 148, 146, 1, 0, 0, 0, 149, 150, 7, 0, 0, 0, 150, 5, 1, 0, 0, 0, 151, 153, 5, 5, 0, 0, 152, 154, 5, 2, 0, 0, 153, 152, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 7, 1, 0, 0, 0, 155, 157, 7, 1, 0, 0, 156, 155, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 9, 1, 0, 0, 0, 160, 161, 3, 12, 6, 0, 161, 162, 3, 18, 9, 0, 162, 11, 1, 0, 0, 0, 163, 165, 5, 1, 0, 0, 164, 163, 1, 0, 0, 0, 165, 168, 1, 0, 0, 0, 166, 164, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 169, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 169, 173, 5, 7, 0, 0, 170, 172, 5, 1, 0, 0, 171, 170, 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 176, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 176, 177, 3, 14, 7, 0, 177, 13, 1, 0, 0, 0, 178, 183, 3, 16, 8, 0, 179, 182, 5, 1, 0, 0, 180, 182, 3, 16, 8, 0, 181, 179, 1, 0, 0, 0, 181, 180, 1, 0, 0, 0, 182, 185, 1, 0, 0, 0, 183, 181, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 15, 1, 0, 0, 0, 185, 183, 1, 0, 0, 0, 186, 191, 5, 29, 0, 0, 187, 188, 5, 30, 0, 0, 188, 190, 5, 29, 0, 0, 189, 187, 1, 0, 0, 0, 190, 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 17, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 194, 196, 3, 20, 10, 0, 195, 194, 1, 0, 0, 0, 196, 197, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 19, 1, 0, 0, 0, 199, 201, 5, 1, 0, 0, 200, 199, 1, 0, 0, 0, 201, 204, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 205, 1, 0, 0, 0, 204, 202, 1, 0, 0, 0, 205, 206, 5, 7, 0, 0, 206, 207, 3, 22, 11, 0, 207, 21, 1, 0, 0, 0, 208, 209, 3, 24, 12, 0, 209, 23, 1, 0, 0, 0, 210, 212, 3, 26, 13, 0, 211, 213, 3, 30, 15, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 25, 1, 0, 0, 0, 214, 216, 5, 1, 0, 0, 215, 214, 1, 0, 0, 0, 216, 219, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218, 220, 1, 0, 0, 0, 219, 217, 1, 0, 0, 0, 220, 222, 5, 7, 0, 0, 221, 223, 5, 7, 0, 0, 222, 221, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 227, 1, 0, 0, 0, 224, 226, 5, 1, 0, 0, 225, 224, 1, 0, 0, 0, 226, 229, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 230, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 230, 231, 3, 28, 14, 0, 231, 27, 1, 0, 0, 0, 232, 237, 3, 16, 8, 0, 233, 236, 5, 1, 0, 0, 234, 236, 3, 16, 8, 0, 235, 233, 1, 0, 0, 0, 235, 234, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238, 29, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 242, 5, 1, 0, 0, 241, 240, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 246, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 247, 3, 32, 16, 0, 247, 31, 1, 0, 0, 0, 248, 250, 5, 1, 0, 0, 249, 248, 1, 0, 0, 0, 250, 253, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 258, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 254, 255, 3, 34, 17, 0, 255, 256, 3, 4, 2, 0, 256, 259, 1, 0, 0, 0, 257, 259, 3, 8, 4, 0, 258, 254, 1, 0, 0, 0, 258, 257, 1, 0, 0, 0, 259, 260, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 33, 1, 0, 0, 0, 262, 264, 5, 1, 0, 0, 263, 262, 1, 0, 0, 0, 264, 267, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 268, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 268, 272, 5, 8, 0, 0, 269, 271, 7, 2, 0, 0, 270, 269, 1, 0, 0, 0, 271, 274, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 35, 1, 0, 0, 0, 274, 272, 1, 0, 0, 0, 275, 276, 3, 38, 19, 0, 276, 37, 1, 0, 0, 0, 277, 279, 3, 42, 21, 0, 278, 280, 3, 40, 20, 0, 279, 278, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 39, 1, 0, 0, 0, 281, 282, 3, 76, 38, 0, 282, 283, 3, 4, 2, 0, 283, 286, 1, 0, 0, 0, 284, 286, 3, 8, 4, 0, 285, 281, 1, 0, 0, 0, 285, 284, 1, 0, 0, 0, 286, 287, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 41, 1, 0, 0, 0, 289, 291, 5, 1, 0, 0, 290, 289, 1, 0, 0, 0, 291, 294, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293, 1, 0, 0, 0, 293, 295, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 295, 299, 5, 10, 0, 0, 296, 298, 5, 1, 0, 0, 297, 296, 1, 0, 0, 0, 298, 301, 1, 0, 0, 0, 299, 297, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 302, 304, 3, 48, 24, 0, 303, 302, 1, 0, 0, 0, 303, 304, 1, 0, 0, 0, 304, 308, 1, 0, 0, 0, 305, 307, 5, 1, 0, 0, 306, 305, 1, 0, 0, 0, 307, 310, 1, 0, 0, 0, 308, 306, 1, 0, 0, 0, 308, 309, 1, 0, 0, 0, 309, 313, 1, 0, 0, 0, 310, 308, 1, 0, 0, 0, 311, 314, 3, 56, 28, 0, 312, 314, 3, 58, 29, 0, 313, 311, 1, 0, 0, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 318, 1, 0, 0, 0, 315, 317, 5, 1, 0, 0, 316, 315, 1, 0, 0, 0, 317, 320, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 318, 319, 1, 0, 0, 0, 319, 322, 1, 0, 0, 0, 320, 318, 1, 0, 0, 0, 321, 323, 3, 50, 25, 0, 322, 321, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 327, 1, 0, 0, 0, 324, 326, 5, 1, 0, 0, 325, 324, 1, 0, 0, 0, 326, 329, 1, 0, 0, 0, 327, 325, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 331, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 330, 332, 3, 52, 26, 0, 331, 330, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 336, 1, 0, 0, 0, 333, 335, 5, 1, 0, 0, 334, 333, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 341, 5, 18, 0, 0, 340, 339, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 345, 1, 0, 0, 0, 342, 344, 5, 1, 0, 0, 343, 342, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 350, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 348, 351, 3, 44, 22, 0, 349, 351, 3, 46, 23, 0, 350, 348, 1, 0, 0, 0, 350, 349, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 353, 3, 4, 2, 0, 353, 43, 1, 0, 0, 0, 354, 355, 5, 24, 0, 0, 355, 45, 1, 0, 0, 0, 356, 357, 5, 25, 0, 0, 357, 47, 1, 0, 0, 0, 358, 359, 5, 22, 0, 0, 359, 49, 1, 0, 0, 0, 360, 362, 5, 20, 0, 0, 361, 360, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 366, 1, 0, 0, 0, 363, 365, 5, 1, 0, 0, 364, 363, 1, 0, 0, 0, 365, 368, 1, 0, 0, 0, 366, 364, 1, 0, 0, 0, 366, 367, 1, 0, 0, 0, 367, 369, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 369, 370, 3, 54, 27, 0, 370, 51, 1, 0, 0, 0, 371, 375, 5, 21, 0, 0, 372, 374, 5, 1, 0, 0, 373, 372, 1, 0, 0, 0, 374, 377, 1, 0, 0, 0, 375, 373, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 378, 1, 0, 0, 0, 377, 375, 1, 0, 0, 0, 378, 379, 3, 54, 27, 0, 379, 53, 1, 0, 0, 0, 380, 397, 7, 3, 0, 0, 381, 383, 5, 1, 0, 0, 382, 381, 1, 0, 0, 0, 383, 386, 1, 0, 0, 0, 384, 382, 1, 0, 0, 0, 384, 385, 1, 0, 0, 0, 385, 387, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 387, 391, 5, 19, 0, 0, 388, 390, 5, 1, 0, 0, 389, 388, 1, 0, 0, 0, 390, 393, 1, 0, 0, 0, 391, 389, 1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 394, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 394, 396, 7, 3, 0, 0, 395, 384, 1, 0, 0, 0, 396, 399, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 55, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 400, 408, 5, 26, 0, 0, 401, 403, 5, 1, 0, 0, 402, 401, 1, 0, 0, 0, 403, 406, 1, 0, 0, 0, 404, 402, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 407, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 407, 409, 5, 23, 0, 0, 408, 404, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 57, 1, 0, 0, 0, 410, 418, 5, 27, 0, 0, 411, 413, 5, 1, 0, 0, 412, 411, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 417, 1, 0, 0, 0, 416, 414, 1, 0, 0, 0, 417, 419, 5, 23, 0, 0, 418, 414, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 59, 1, 0, 0, 0, 420, 421, 3, 62, 31, 0, 421, 61, 1, 0, 0, 0, 422, 424, 3, 64, 32, 0, 423, 425, 3, 74, 37, 0, 424, 423, 1, 0, 0, 0, 424, 425, 1, 0, 0, 0, 425, 63, 1, 0, 0, 0, 426, 428, 5, 1, 0, 0, 427, 426, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 432, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 434, 5, 9, 0, 0, 433, 435, 3, 66, 33, 0, 434, 433, 1, 0, 0, 0, 434, 435, 1, 0, 0, 0, 435, 437, 1, 0, 0, 0, 436, 438, 5, 38, 0, 0, 437, 436, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 440, 1, 0, 0, 0, 439, 441, 3, 68, 34, 0, 440, 439, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 65, 1, 0, 0, 0, 442, 444, 7, 4, 0, 0, 443, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 67, 1, 0, 0, 0, 447, 453, 3, 70, 35, 0, 448, 453, 3, 72, 36, 0, 449, 453, 5, 37, 0, 0, 450, 453, 5, 38, 0, 0, 451, 453, 5, 1, 0, 0, 452, 447, 1, 0, 0, 0, 452, 448, 1, 0, 0, 0, 452, 449, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 452, 451, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 69, 1, 0, 0, 0, 456, 457, 5, 35, 0, 0, 457, 71, 1, 0, 0, 0, 458, 459, 5, 36, 0, 0, 459, 73, 1, 0, 0, 0, 460, 461, 3, 76, 38, 0, 461, 462, 3, 4, 2, 0, 462, 465, 1, 0, 0, 0, 463, 465, 3, 8, 4, 0, 464, 460, 1, 0, 0, 0, 464, 463, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 75, 1, 0, 0, 0, 468, 470, 5, 1, 0, 0, 469, 468, 1, 0, 0, 0, 470, 473, 1, 0, 0, 0, 471, 469, 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 474, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 474, 478, 5, 8, 0, 0, 475, 477, 7, 2, 0, 0, 476, 475, 1, 0, 0, 0, 477, 480, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 77, 1, 0, 0, 0, 480, 478, 1, 0, 0, 0, 481, 482, 3, 80, 40, 0, 482, 79, 1, 0, 0, 0, 483, 485, 5, 1, 0, 0, 484, 483, 1, 0, 0, 0, 485, 488, 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 489, 1, 0, 0, 0, 488, 486, 1, 0, 0, 0, 489, 493, 5, 11, 0, 0, 490, 492, 5, 1, 0, 0, 491, 490, 1, 0, 0, 0, 492, 495, 1, 0, 0, 0, 493, 491, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 81, 1, 0, 0, 0, 495, 493, 1, 0, 0, 0, 496, 497, 3, 84, 42, 0, 497, 83, 1, 0, 0, 0, 498, 500, 5, 1, 0, 0, 499, 498, 1, 0, 0, 0, 500, 503, 1, 0, 0, 0, 501, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 504, 1, 0, 0, 0, 503, 501, 1, 0, 0, 0, 504, 508, 5, 12, 0, 0, 505, 507, 5, 1, 0, 0, 506, 505, 1, 0, 0, 0, 507, 510, 1, 0, 0, 0, 508, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 85, 1, 0, 0, 0, 510, 508, 1, 0, 0, 0, 511, 512, 3, 88, 44, 0, 512, 87, 1, 0, 0, 0, 513, 515, 3, 90, 45, 0, 514, 513, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 517, 1, 0, 0, 0, 516, 518, 3, 92, 46, 0, 517, 516, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 3, 94, 47, 0, 520, 521, 3, 98, 49, 0, 521, 523, 3, 104, 52, 0, 522, 524, 3, 108, 54, 0, 523, 522, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 89, 1, 0, 0, 0, 525, 527, 5, 1, 0, 0, 526, 525, 1, 0, 0, 0, 527, 530, 1, 0, 0, 0, 528, 526, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 531, 1, 0, 0, 0, 530, 528, 1, 0, 0, 0, 531, 532, 5, 3, 0, 0, 532, 91, 1, 0, 0, 0, 533, 535, 5, 1, 0, 0, 534, 533, 1, 0, 0, 0, 535, 538, 1, 0, 0, 0, 536, 534, 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 539, 1, 0, 0, 0, 538, 536, 1, 0, 0, 0, 539, 540, 5, 14, 0, 0, 540, 93, 1, 0, 0, 0, 541, 543, 5, 1, 0, 0, 542, 541, 1, 0, 0, 0, 543, 546, 1, 0, 0, 0, 544, 542, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 547, 1, 0, 0, 0, 546, 544, 1, 0, 0, 0, 547, 548, 5, 6, 0, 0, 548, 549, 3, 96, 48, 0, 549, 95, 1, 0, 0, 0, 550, 552, 5, 40, 0, 0, 551, 550, 1, 0, 0, 0, 552, 555, 1, 0, 0, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 97, 1, 0, 0, 0, 555, 553, 1, 0, 0, 0, 556, 558, 5, 1, 0, 0, 557, 556, 1, 0, 0, 0, 558, 561, 1, 0, 0, 0, 559, 557, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 568, 1, 0, 0, 0, 561, 559, 1, 0, 0, 0, 562, 563, 3, 100, 50, 0, 563, 564, 3, 4, 2, 0, 564, 567, 1, 0, 0, 0, 565, 567, 3, 102, 51, 0, 566, 562, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 570, 1, 0, 0, 0, 568, 566, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 99, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 571, 575, 5, 8, 0, 0, 572, 574, 7, 5, 0, 0, 573, 572, 1, 0, 0, 0, 574, 577, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 575, 576, 1, 0, 0, 0, 576, 101, 1, 0, 0, 0, 577, 575, 1, 0, 0, 0, 578, 580, 7, 1, 0, 0, 579, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 103, 1, 0, 0, 0, 583, 585, 3, 106, 53, 0, 584, 583, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 592, 3, 114, 57, 0, 587, 589, 3, 114, 57, 0, 588, 590, 3, 106, 53, 0, 589, 588, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 592, 1, 0, 0, 0, 591, 584, 1, 0, 0, 0, 591, 587, 1, 0, 0, 0, 592, 105, 1, 0, 0, 0, 593, 595, 5, 1, 0, 0, 594, 593, 1, 0, 0, 0, 595, 598, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 599, 1, 0, 0, 0, 598, 596, 1, 0, 0, 0, 599, 602, 5, 13, 0, 0, 600, 603, 3, 110, 55, 0, 601, 603, 3, 112, 56, 0, 602, 600, 1, 0, 0, 0, 602, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 107, 1, 0, 0, 0, 606, 608, 5, 1, 0, 0, 607, 606, 1, 0, 0, 0, 608, 611, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 612, 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 612, 615, 5, 16, 0, 0, 613, 616, 3, 110, 55, 0, 614, 616, 3, 112, 56, 0, 615, 613, 1, 0, 0, 0, 615, 614, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 109, 1, 0, 0, 0, 619, 621, 5, 1, 0, 0, 620, 619, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 625, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 629, 5, 8, 0, 0, 626, 628, 7, 5, 0, 0, 627, 626, 1, 0, 0, 0, 628, 631, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 632, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 632, 633, 3, 4, 2, 0, 633, 111, 1, 0, 0, 0, 634, 636, 7, 1, 0, 0, 635, 634, 1, 0, 0, 0, 636, 637, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 113, 1, 0, 0, 0, 639, 641, 5, 1, 0, 0, 640, 639, 1, 0, 0, 0, 641, 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 642, 643, 1, 0, 0, 0, 643, 645, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 645, 646, 5, 15, 0, 0, 646, 115, 1, 0, 0, 0, 647, 648, 3, 118, 59, 0, 648, 117, 1, 0, 0, 0, 649, 651, 5, 1, 0, 0, 650, 649, 1, 0, 0, 0, 651, 654, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 655, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 655, 656, 5, 4, 0, 0, 656, 119, 1, 0, 0, 0, 94, 123, 126, 128, 141, 146, 153, 158, 166, 173, 181, 183, 191, 197, 202, 212, 217, 222, 227, 235, 237, 243, 251, 258, 260, 265, 272, 279, 285, 287, 292, 299, 303, 308, 313, 318, 322, 327, 331, 336, 340, 345, 350, 361, 366, 375, 384, 391, 397, 404, 408, 414, 418, 424, 429, 434, 437, 440, 445, 452, 454, 464, 466, 471, 478, 486, 493, 501, 508, 514, 517, 523, 528, 536, 544, 553, 559, 566, 568, 575, 581, 584, 589, 591, 596, 602, 604, 609, 615, 617, 622, 629, 637, 642, 652] \ No newline at end of file diff --git a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileLexer.g4 b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileLexer.g4 index 0e61614022..94403d2951 100644 --- a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileLexer.g4 +++ b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileLexer.g4 @@ -54,7 +54,7 @@ MODEL_INFO ; COMMENT - : WS* '>' ~('\r'|'\n')* + : WS* '>' ~('\r'|'\n')* -> skip ; QNA diff --git a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileParser.g4 b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileParser.g4 index e9876722f3..e654c29377 100644 --- a/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileParser.g4 +++ b/libraries/Parsers/Microsoft.Bot.Builder.Parsers.LU/LUFileParser.g4 @@ -3,7 +3,7 @@ parser grammar LUFileParser; options { tokenVocab=LUFileLexer; } file - : paragraph+? EOF + : (paragraph+? | commentDefinition?) EOF ; paragraph @@ -16,7 +16,6 @@ paragraph | referenceSection | qnaSection | modelInfoSection - | commentDefinition ; // Treat EOF as newline to hanle file end gracefully @@ -79,7 +78,7 @@ intentBody ; normalIntentBody - : WS* ((normalIntentString newline) | errorString | commentDefinition)+ + : WS* ((normalIntentString newline) | errorString)+ ; normalIntentString diff --git a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/LU_Sections_Unix.json b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/LU_Sections_Unix.json index 79c87b0fa4..e93dcb50d0 100644 --- a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/LU_Sections_Unix.json +++ b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/LU_Sections_Unix.json @@ -161,11 +161,11 @@ "errorMsgs": [ ], - "contextText": " - Please set {deviceTemperature = thermostat to 72}", + "contextText": "- Please set {deviceTemperature = thermostat to 72}", "range": { "Start": { "Line": 17, - "Character": 0 + "Character": 4 }, "End": { "Line": 17, diff --git a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/LU_Sections_Windows.json b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/LU_Sections_Windows.json index f58d0dc4faaae394e4fb882e95623435b274013b..32dd6b2ae5a7ce6f1020a5976885942acde7e90e 100644 GIT binary patch delta 44 zcmV+{0Mq}Rlm?WP2C#@DlRyRpvy>w;0h90qAd?{WV3UX>K9|@*0iJ^*CbuFc0s3Qo CQxM(& delta 37 vcmV+=0NVeQlm?uX2C#@Dm(V`}442en0b-NxBhZ)dI{|`&Kqa?8B>~iAF7^+a diff --git a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU131.json b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU131.json index 41bfee8909..4fb9dd3bd7 100644 --- a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU131.json +++ b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU131.json @@ -52,7 +52,7 @@ "Severity": "ERROR" }, { - "Message": "syntax error: extraneous input 'ml' expecting {, WS, NEWLINE, QNA_SOURCE_INFO, MODEL_INFO, COMMENT, QNA, HASH, '$', '@', IMPORT, REFERENCE, QNA_ID_MARK}", + "Message": "syntax error: extraneous input 'ml' expecting {, WS, NEWLINE, QNA_SOURCE_INFO, MODEL_INFO, QNA, HASH, '$', '@', IMPORT, REFERENCE, QNA_ID_MARK}", "Range": { "Start": { "Line": 2, diff --git a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU139.json b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU139.json index ed8891d6e8..49e5287375 100644 --- a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU139.json +++ b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU139.json @@ -52,7 +52,7 @@ "Severity": "ERROR" }, { - "Message": "syntax error: extraneous input 'regex' expecting {, WS, NEWLINE, QNA_SOURCE_INFO, MODEL_INFO, COMMENT, QNA, HASH, '$', '@', IMPORT, REFERENCE, QNA_ID_MARK}", + "Message": "syntax error: extraneous input 'regex' expecting {, WS, NEWLINE, QNA_SOURCE_INFO, MODEL_INFO, QNA, HASH, '$', '@', IMPORT, REFERENCE, QNA_ID_MARK}", "Range": { "Start": { "Line": 2, diff --git a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU153.json b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU153.json index 2f560c31e2..2480fe39d9 100644 --- a/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU153.json +++ b/tests/Parsers/Microsoft.Bot.Builder.Parsers.LU.Tests/Fixtures/testLU153.json @@ -37,7 +37,7 @@ "Severity": "ERROR" }, { - "Message": "syntax error: extraneous input 'abc' expecting {, WS, NEWLINE, QNA_SOURCE_INFO, MODEL_INFO, COMMENT, QNA, HASH, '$', '@', IMPORT, REFERENCE, QNA_ID_MARK}", + "Message": "syntax error: extraneous input 'abc' expecting {, WS, NEWLINE, QNA_SOURCE_INFO, MODEL_INFO, QNA, HASH, '$', '@', IMPORT, REFERENCE, QNA_ID_MARK}", "Range": { "Start": { "Line": 2,