This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch NLPCRAFT-206
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-206 by this push:
     new 8d122e2  WIP.
8d122e2 is described below

commit 8d122e266a37708eee42333ca08db47db6f588ea
Author: Aaron Radzinski <[email protected]>
AuthorDate: Thu Mar 18 12:02:58 2021 -0700

    WIP.
---
 .../apache/nlpcraft/examples/sql/sql_model.yaml    |   6 +-
 .../model/intent/compiler/NCIdlCompilerBase.scala  |   6 +-
 .../model/intent/compiler/antlr4/NCIntentIdl.g4    |   6 +-
 .../intent/compiler/antlr4/NCIntentIdlLexer.interp |   2 +-
 .../intent/compiler/antlr4/NCIntentIdlLexer.java   | 757 +++++++++++----------
 .../nlpcraft/model/intent/dsl/compiler/test_ok.nc  |   2 +-
 .../model/NCEnricherNestedModelSpec5.scala         |   2 +-
 7 files changed, 392 insertions(+), 389 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml
index 999d5e1..1a7eb0a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml
@@ -1455,17 +1455,17 @@ elements:
   groups:
     - "element"
   synonyms:
-    - "^^{id() == 'col' && has(list(4, 8), meta_part(part(this(), 'colName'), 
'sql:datatype'))}^^"
+    - "^^{id() == 'col' && has(list(4, 8), meta_part(find_part(token(), 
'colName'), 'sql:datatype'))}^^"
 - id: "col:date"
   groups:
     - "element"
   synonyms:
-    - "^^{id() == 'col' && meta_part(part(this(), 'colName'), 'sql:datatype') 
== 91}^^"
+    - "^^{id() == 'col' && meta_part(find_part(token(), 'colName'), 
'sql:datatype') == 91}^^"
 - id: "col:varchar"
   groups:
     - "element"
   synonyms:
-    - "^^{id() == 'col' && meta_part(part(this(), 'colName'), 'sql:datatype') 
== 12}^^"
+    - "^^{id() == 'col' && meta_part(find_part(token(), 'colName'), 
'sql:datatype') == 12}^^"
 - id: "condition:num"
   groups:
     - "condition"
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
index 0a7d546..c860319 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
@@ -810,9 +810,9 @@ trait NCIdlCompilerBase {
             case "aliases" ⇒ arg1Tok() match { case x ⇒ stack.push(() ⇒ { 
Z(toToken(x().value).getAliases, 1) }) }
             case "start_idx" ⇒ arg1Tok() match { case x ⇒ stack.push(() ⇒ { 
Z(toToken(x().value).getStartCharIndex, 1) }) }
             case "end_idx" ⇒ arg1Tok() match { case x ⇒ stack.push(() ⇒ { 
Z(toToken(x().value).getEndCharIndex, 1) }) }
-            case "this" ⇒ z0(() ⇒ Z(tok, 1))
-            case "part" ⇒ doPart()
-            case "parts" ⇒ doParts()
+            case "token" ⇒ z0(() ⇒ Z(tok, 1))
+            case "find_part" ⇒ doPart()
+            case "find_parts" ⇒ doParts()
 
             // Request data.
             case "req_id" ⇒ z0(() ⇒ Z(termCtx.req.getServerRequestId, 0))
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.g4
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.g4
index ed27486..bb3d321 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.g4
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdl.g4
@@ -132,9 +132,9 @@ FUN_NAME
     | 'json'
     | 'if'
     | 'id'
-    | 'this'
-    | 'part'
-    | 'parts'
+    | 'token'
+    | 'find_part'
+    | 'find_parts'
     | 'ancestors'
     | 'parent'
     | 'groups'
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp
index 218e2cb..97d72c1 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.interp
@@ -169,4 +169,4 @@ mode names:
 DEFAULT_MODE
 
 atn:
-[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 53, 1185, 8, 1, 
4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 
9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 
14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 
19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 
25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 
30, 4, 31, 9, 31, 4, 32, 9, [...]
\ No newline at end of file
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 53, 1196, 8, 1, 
4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 
9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 
14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 
19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 
25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 
30, 4, 31, 9, 31, 4, 32, 9, [...]
\ No newline at end of file
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java
index 70f4bf6..70f2fdb 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentIdlLexer.java
@@ -124,7 +124,7 @@ public class NCIntentIdlLexer extends Lexer {
        public ATN getATN() { return _ATN; }
 
        public static final String _serializedATN =
-               
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\65\u04a1\b\1\4\2"+
+               
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\65\u04ac\b\1\4\2"+
                
"\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+
                
"\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+
                
"\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"+
@@ -181,382 +181,385 @@ public class NCIntentIdlLexer extends Lexer {
                
"\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
                
"\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
                
"\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
-               
"\b\3\b\3\b\3\b\5\b\u03d6\n\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3"+
-               
"\n\3\n\3\n\7\n\u03e5\n\n\f\n\16\n\u03e8\13\n\3\n\3\n\3\13\3\13\3\13\3"+
-               
"\13\7\13\u03f0\n\13\f\13\16\13\u03f3\13\13\3\13\3\13\3\f\3\f\3\f\3\f\3"+
-               
"\f\3\f\3\f\3\f\3\f\5\f\u0400\n\f\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3"+
-               
"\17\3\17\3\17\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\23\3\23\3\24\3"+
-               
"\24\3\24\3\25\3\25\3\25\3\26\3\26\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3"+
-               "\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37\3\37\3 \3 
\3!\3!\3\""+
-               
"\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-"+
-               
"\3-\3.\3.\3.\7.\u0450\n.\f.\16.\u0453\13.\5.\u0455\n.\3/\3/\6/\u0459\n"+
-               
"/\r/\16/\u045a\3\60\3\60\5\60\u045f\n\60\3\60\3\60\3\61\3\61\3\62\3\62"+
-               
"\3\63\3\63\3\63\3\63\6\63\u046b\n\63\r\63\16\63\u046c\3\63\3\63\3\63\3"+
-               
"\63\3\63\3\63\3\63\7\63\u0476\n\63\f\63\16\63\u0479\13\63\3\64\3\64\3"+
-               
"\64\3\64\7\64\u047f\n\64\f\64\16\64\u0482\13\64\3\64\5\64\u0485\n\64\3"+
-               
"\64\5\64\u0488\n\64\3\64\3\64\3\64\3\64\7\64\u048e\n\64\f\64\16\64\u0491"+
-               
"\13\64\3\64\3\64\5\64\u0495\n\64\3\64\3\64\3\65\6\65\u049a\n\65\r\65\16"+
-               
"\65\u049b\3\65\3\65\3\66\3\66\3\u048f\2\67\3\3\5\4\7\5\t\6\13\7\r\b\17"+
-               
"\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+"+
-               "\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= 
?!A\"C#E$G%I&K\'M(O)Q*S+"+
-               
"U,W-Y.[/]\60_\61a\2c\2e\62g\63i\64k\65\3\2\16\3\2))\3\2$$\3\2\63;\4\2"+
-               
"\62;aa\3\2\62;\4\2GGgg\4\2--//\17\2\u00a2\u0251\u025b\u0294\u02b2\u0371"+
-               
"\u0402\u0501\u1e04\u1ef5\u1f03\u2001\u200e\u200f\u2041\u2042\u2072\u2191"+
-               
"\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff\4\2C\\c|\4\2\f\f\17\17"+
-               
"\3\3\f\f\5\2\13\f\16\17\"\"\2\u0531\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2"+
-               
"\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23"+
-               
"\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2"+
-               
"\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2"+
-               
"\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3"+
-               
"\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2"+
-               
"\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2"+
-               
"\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2["+
-               
"\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2"+
-               
"\2\2\3m\3\2\2\2\5t\3\2\2\2\7{\3\2\2\2\t\u0083\3\2\2\2\13\u0088\3\2\2\2"+
-               
"\r\u008d\3\2\2\2\17\u03d5\3\2\2\2\21\u03d7\3\2\2\2\23\u03e0\3\2\2\2\25"+
-               
"\u03eb\3\2\2\2\27\u03ff\3\2\2\2\31\u0401\3\2\2\2\33\u0406\3\2\2\2\35\u0409"+
-               
"\3\2\2\2\37\u040c\3\2\2\2!\u040f\3\2\2\2#\u0412\3\2\2\2%\u0414\3\2\2\2"+
-               
"\'\u0416\3\2\2\2)\u0419\3\2\2\2+\u041c\3\2\2\2-\u041e\3\2\2\2/\u0420\3"+
-               
"\2\2\2\61\u0422\3\2\2\2\63\u0424\3\2\2\2\65\u0426\3\2\2\2\67\u0428\3\2"+
-               
"\2\29\u042a\3\2\2\2;\u042c\3\2\2\2=\u042e\3\2\2\2?\u0430\3\2\2\2A\u0432"+
-               
"\3\2\2\2C\u0434\3\2\2\2E\u0436\3\2\2\2G\u0438\3\2\2\2I\u043a\3\2\2\2K"+
-               
"\u043c\3\2\2\2M\u043e\3\2\2\2O\u0440\3\2\2\2Q\u0442\3\2\2\2S\u0444\3\2"+
-               
"\2\2U\u0446\3\2\2\2W\u0448\3\2\2\2Y\u044a\3\2\2\2[\u0454\3\2\2\2]\u0456"+
-               
"\3\2\2\2_\u045c\3\2\2\2a\u0462\3\2\2\2c\u0464\3\2\2\2e\u046a\3\2\2\2g"+
-               
"\u0494\3\2\2\2i\u0499\3\2\2\2k\u049f\3\2\2\2mn\7k\2\2no\7o\2\2op\7r\2"+
-               
"\2pq\7q\2\2qr\7t\2\2rs\7v\2\2s\4\3\2\2\2tu\7k\2\2uv\7p\2\2vw\7v\2\2wx"+
-               
"\7g\2\2xy\7p\2\2yz\7v\2\2z\6\3\2\2\2{|\7q\2\2|}\7t\2\2}~\7f\2\2~\177\7"+
-               
"g\2\2\177\u0080\7t\2\2\u0080\u0081\7g\2\2\u0081\u0082\7f\2\2\u0082\b\3"+
-               
"\2\2\2\u0083\u0084\7h\2\2\u0084\u0085\7n\2\2\u0085\u0086\7q\2\2\u0086"+
-               
"\u0087\7y\2\2\u0087\n\3\2\2\2\u0088\u0089\7o\2\2\u0089\u008a\7g\2\2\u008a"+
-               
"\u008b\7v\2\2\u008b\u008c\7c\2\2\u008c\f\3\2\2\2\u008d\u008e\7v\2\2\u008e"+
-               
"\u008f\7g\2\2\u008f\u0090\7t\2\2\u0090\u0091\7o\2\2\u0091\16\3\2\2\2\u0092"+
-               
"\u0093\7o\2\2\u0093\u0094\7g\2\2\u0094\u0095\7v\2\2\u0095\u0096\7c\2\2"+
-               
"\u0096\u0097\7a\2\2\u0097\u0098\7v\2\2\u0098\u0099\7q\2\2\u0099\u009a"+
-               
"\7m\2\2\u009a\u009b\7g\2\2\u009b\u03d6\7p\2\2\u009c\u009d\7o\2\2\u009d"+
-               
"\u009e\7g\2\2\u009e\u009f\7v\2\2\u009f\u00a0\7c\2\2\u00a0\u00a1\7a\2\2"+
-               
"\u00a1\u00a2\7r\2\2\u00a2\u00a3\7c\2\2\u00a3\u00a4\7t\2\2\u00a4\u03d6"+
-               
"\7v\2\2\u00a5\u00a6\7o\2\2\u00a6\u00a7\7g\2\2\u00a7\u00a8\7v\2\2\u00a8"+
-               
"\u00a9\7c\2\2\u00a9\u00aa\7a\2\2\u00aa\u00ab\7o\2\2\u00ab\u00ac\7q\2\2"+
-               
"\u00ac\u00ad\7f\2\2\u00ad\u00ae\7g\2\2\u00ae\u03d6\7n\2\2\u00af\u00b0"+
-               
"\7o\2\2\u00b0\u00b1\7g\2\2\u00b1\u00b2\7v\2\2\u00b2\u00b3\7c\2\2\u00b3"+
-               
"\u00b4\7a\2\2\u00b4\u00b5\7k\2\2\u00b5\u00b6\7p\2\2\u00b6\u00b7\7v\2\2"+
-               
"\u00b7\u00b8\7g\2\2\u00b8\u00b9\7p\2\2\u00b9\u03d6\7v\2\2\u00ba\u00bb"+
-               
"\7o\2\2\u00bb\u00bc\7g\2\2\u00bc\u00bd\7v\2\2\u00bd\u00be\7c\2\2\u00be"+
-               
"\u00bf\7a\2\2\u00bf\u00c0\7t\2\2\u00c0\u00c1\7g\2\2\u00c1\u03d6\7s\2\2"+
-               
"\u00c2\u00c3\7o\2\2\u00c3\u00c4\7g\2\2\u00c4\u00c5\7v\2\2\u00c5\u00c6"+
-               
"\7c\2\2\u00c6\u00c7\7a\2\2\u00c7\u00c8\7w\2\2\u00c8\u00c9\7u\2\2\u00c9"+
-               
"\u00ca\7g\2\2\u00ca\u03d6\7t\2\2\u00cb\u00cc\7o\2\2\u00cc\u00cd\7g\2\2"+
-               
"\u00cd\u00ce\7v\2\2\u00ce\u00cf\7c\2\2\u00cf\u00d0\7a\2\2\u00d0\u00d1"+
-               
"\7e\2\2\u00d1\u00d2\7q\2\2\u00d2\u00d3\7o\2\2\u00d3\u00d4\7r\2\2\u00d4"+
-               
"\u00d5\7c\2\2\u00d5\u00d6\7p\2\2\u00d6\u03d6\7{\2\2\u00d7\u00d8\7o\2\2"+
-               
"\u00d8\u00d9\7g\2\2\u00d9\u00da\7v\2\2\u00da\u00db\7c\2\2\u00db\u00dc"+
-               
"\7a\2\2\u00dc\u00dd\7u\2\2\u00dd\u00de\7{\2\2\u00de\u03d6\7u\2\2\u00df"+
-               
"\u00e0\7o\2\2\u00e0\u00e1\7g\2\2\u00e1\u00e2\7v\2\2\u00e2\u00e3\7c\2\2"+
-               
"\u00e3\u00e4\7a\2\2\u00e4\u00e5\7e\2\2\u00e5\u00e6\7q\2\2\u00e6\u00e7"+
-               
"\7p\2\2\u00e7\u03d6\7x\2\2\u00e8\u00e9\7o\2\2\u00e9\u00ea\7g\2\2\u00ea"+
-               
"\u00eb\7v\2\2\u00eb\u00ec\7c\2\2\u00ec\u00ed\7a\2\2\u00ed\u00ee\7h\2\2"+
-               
"\u00ee\u00ef\7t\2\2\u00ef\u00f0\7c\2\2\u00f0\u03d6\7i\2\2\u00f1\u00f2"+
-               
"\7l\2\2\u00f2\u00f3\7u\2\2\u00f3\u00f4\7q\2\2\u00f4\u03d6\7p\2\2\u00f5"+
-               
"\u00f6\7k\2\2\u00f6\u03d6\7h\2\2\u00f7\u00f8\7k\2\2\u00f8\u03d6\7f\2\2"+
-               
"\u00f9\u00fa\7v\2\2\u00fa\u00fb\7j\2\2\u00fb\u00fc\7k\2\2\u00fc\u03d6"+
-               
"\7u\2\2\u00fd\u00fe\7r\2\2\u00fe\u00ff\7c\2\2\u00ff\u0100\7t\2\2\u0100"+
-               
"\u03d6\7v\2\2\u0101\u0102\7r\2\2\u0102\u0103\7c\2\2\u0103\u0104\7t\2\2"+
-               
"\u0104\u0105\7v\2\2\u0105\u03d6\7u\2\2\u0106\u0107\7c\2\2\u0107\u0108"+
-               
"\7p\2\2\u0108\u0109\7e\2\2\u0109\u010a\7g\2\2\u010a\u010b\7u\2\2\u010b"+
-               
"\u010c\7v\2\2\u010c\u010d\7q\2\2\u010d\u010e\7t\2\2\u010e\u03d6\7u\2\2"+
-               
"\u010f\u0110\7r\2\2\u0110\u0111\7c\2\2\u0111\u0112\7t\2\2\u0112\u0113"+
-               
"\7g\2\2\u0113\u0114\7p\2\2\u0114\u03d6\7v\2\2\u0115\u0116\7i\2\2\u0116"+
-               
"\u0117\7t\2\2\u0117\u0118\7q\2\2\u0118\u0119\7w\2\2\u0119\u011a\7r\2\2"+
-               
"\u011a\u03d6\7u\2\2\u011b\u011c\7x\2\2\u011c\u011d\7c\2\2\u011d\u011e"+
-               
"\7n\2\2\u011e\u011f\7w\2\2\u011f\u03d6\7g\2\2\u0120\u0121\7c\2\2\u0121"+
-               
"\u0122\7n\2\2\u0122\u0123\7k\2\2\u0123\u0124\7c\2\2\u0124\u0125\7u\2\2"+
-               
"\u0125\u0126\7g\2\2\u0126\u03d6\7u\2\2\u0127\u0128\7u\2\2\u0128\u0129"+
-               
"\7v\2\2\u0129\u012a\7c\2\2\u012a\u012b\7t\2\2\u012b\u012c\7v\2\2\u012c"+
-               
"\u012d\7a\2\2\u012d\u012e\7k\2\2\u012e\u012f\7f\2\2\u012f\u03d6\7z\2\2"+
-               
"\u0130\u0131\7g\2\2\u0131\u0132\7p\2\2\u0132\u0133\7f\2\2\u0133\u0134"+
-               
"\7a\2\2\u0134\u0135\7k\2\2\u0135\u0136\7f\2\2\u0136\u03d6\7z\2\2\u0137"+
-               
"\u0138\7t\2\2\u0138\u0139\7g\2\2\u0139\u013a\7s\2\2\u013a\u013b\7a\2\2"+
-               
"\u013b\u013c\7k\2\2\u013c\u03d6\7f\2\2\u013d\u013e\7t\2\2\u013e\u013f"+
-               
"\7g\2\2\u013f\u0140\7s\2\2\u0140\u0141\7a\2\2\u0141\u0142\7p\2\2\u0142"+
-               
"\u0143\7q\2\2\u0143\u0144\7t\2\2\u0144\u0145\7o\2\2\u0145\u0146\7v\2\2"+
-               
"\u0146\u0147\7g\2\2\u0147\u0148\7z\2\2\u0148\u03d6\7v\2\2\u0149\u014a"+
-               
"\7t\2\2\u014a\u014b\7g\2\2\u014b\u014c\7s\2\2\u014c\u014d\7a\2\2\u014d"+
-               
"\u014e\7v\2\2\u014e\u014f\7u\2\2\u014f\u0150\7v\2\2\u0150\u0151\7c\2\2"+
-               
"\u0151\u0152\7o\2\2\u0152\u03d6\7r\2\2\u0153\u0154\7t\2\2\u0154\u0155"+
-               
"\7g\2\2\u0155\u0156\7s\2\2\u0156\u0157\7a\2\2\u0157\u0158\7c\2\2\u0158"+
-               
"\u0159\7f\2\2\u0159\u015a\7f\2\2\u015a\u03d6\7t\2\2\u015b\u015c\7t\2\2"+
-               
"\u015c\u015d\7g\2\2\u015d\u015e\7s\2\2\u015e\u015f\7a\2\2\u015f\u0160"+
-               
"\7c\2\2\u0160\u0161\7i\2\2\u0161\u0162\7g\2\2\u0162\u0163\7p\2\2\u0163"+
-               
"\u03d6\7v\2\2\u0164\u0165\7w\2\2\u0165\u0166\7u\2\2\u0166\u0167\7g\2\2"+
-               
"\u0167\u0168\7t\2\2\u0168\u0169\7a\2\2\u0169\u016a\7k\2\2\u016a\u03d6"+
-               
"\7f\2\2\u016b\u016c\7w\2\2\u016c\u016d\7u\2\2\u016d\u016e\7g\2\2\u016e"+
-               
"\u016f\7t\2\2\u016f\u0170\7a\2\2\u0170\u0171\7h\2\2\u0171\u0172\7p\2\2"+
-               
"\u0172\u0173\7c\2\2\u0173\u0174\7o\2\2\u0174\u03d6\7g\2\2\u0175\u0176"+
-               
"\7w\2\2\u0176\u0177\7u\2\2\u0177\u0178\7g\2\2\u0178\u0179\7t\2\2\u0179"+
-               
"\u017a\7a\2\2\u017a\u017b\7n\2\2\u017b\u017c\7p\2\2\u017c\u017d\7c\2\2"+
-               
"\u017d\u017e\7o\2\2\u017e\u03d6\7g\2\2\u017f\u0180\7w\2\2\u0180\u0181"+
-               
"\7u\2\2\u0181\u0182\7g\2\2\u0182\u0183\7t\2\2\u0183\u0184\7a\2\2\u0184"+
-               
"\u0185\7g\2\2\u0185\u0186\7o\2\2\u0186\u0187\7c\2\2\u0187\u0188\7k\2\2"+
-               
"\u0188\u03d6\7n\2\2\u0189\u018a\7w\2\2\u018a\u018b\7u\2\2\u018b\u018c"+
-               
"\7g\2\2\u018c\u018d\7t\2\2\u018d\u018e\7a\2\2\u018e\u018f\7c\2\2\u018f"+
-               
"\u0190\7f\2\2\u0190\u0191\7o\2\2\u0191\u0192\7k\2\2\u0192\u03d6\7p\2\2"+
-               
"\u0193\u0194\7w\2\2\u0194\u0195\7u\2\2\u0195\u0196\7g\2\2\u0196\u0197"+
-               
"\7t\2\2\u0197\u0198\7a\2\2\u0198\u0199\7u\2\2\u0199\u019a\7k\2\2\u019a"+
-               
"\u019b\7i\2\2\u019b\u019c\7p\2\2\u019c\u019d\7w\2\2\u019d\u019e\7r\2\2"+
-               
"\u019e\u019f\7a\2\2\u019f\u01a0\7v\2\2\u01a0\u01a1\7u\2\2\u01a1\u01a2"+
-               
"\7v\2\2\u01a2\u01a3\7c\2\2\u01a3\u01a4\7o\2\2\u01a4\u03d6\7r\2\2\u01a5"+
-               
"\u01a6\7e\2\2\u01a6\u01a7\7q\2\2\u01a7\u01a8\7o\2\2\u01a8\u01a9\7r\2\2"+
-               
"\u01a9\u01aa\7a\2\2\u01aa\u01ab\7k\2\2\u01ab\u03d6\7f\2\2\u01ac\u01ad"+
-               
"\7e\2\2\u01ad\u01ae\7q\2\2\u01ae\u01af\7o\2\2\u01af\u01b0\7r\2\2\u01b0"+
-               
"\u01b1\7a\2\2\u01b1\u01b2\7p\2\2\u01b2\u01b3\7c\2\2\u01b3\u01b4\7o\2\2"+
-               
"\u01b4\u03d6\7g\2\2\u01b5\u01b6\7e\2\2\u01b6\u01b7\7q\2\2\u01b7\u01b8"+
-               
"\7o\2\2\u01b8\u01b9\7r\2\2\u01b9\u01ba\7a\2\2\u01ba\u01bb\7y\2\2\u01bb"+
-               
"\u01bc\7g\2\2\u01bc\u01bd\7d\2\2\u01bd\u01be\7u\2\2\u01be\u01bf\7k\2\2"+
-               
"\u01bf\u01c0\7v\2\2\u01c0\u03d6\7g\2\2\u01c1\u01c2\7e\2\2\u01c2\u01c3"+
-               
"\7q\2\2\u01c3\u01c4\7o\2\2\u01c4\u01c5\7r\2\2\u01c5\u01c6\7a\2\2\u01c6"+
-               
"\u01c7\7e\2\2\u01c7\u01c8\7q\2\2\u01c8\u01c9\7w\2\2\u01c9\u01ca\7p\2\2"+
-               
"\u01ca\u01cb\7v\2\2\u01cb\u01cc\7t\2\2\u01cc\u03d6\7{\2\2\u01cd\u01ce"+
-               
"\7e\2\2\u01ce\u01cf\7q\2\2\u01cf\u01d0\7o\2\2\u01d0\u01d1\7r\2\2\u01d1"+
-               
"\u01d2\7a\2\2\u01d2\u01d3\7t\2\2\u01d3\u01d4\7g\2\2\u01d4\u01d5\7i\2\2"+
-               
"\u01d5\u01d6\7k\2\2\u01d6\u01d7\7q\2\2\u01d7\u03d6\7p\2\2\u01d8\u01d9"+
-               
"\7e\2\2\u01d9\u01da\7q\2\2\u01da\u01db\7o\2\2\u01db\u01dc\7r\2\2\u01dc"+
-               
"\u01dd\7a\2\2\u01dd\u01de\7e\2\2\u01de\u01df\7k\2\2\u01df\u01e0\7v\2\2"+
-               
"\u01e0\u03d6\7{\2\2\u01e1\u01e2\7e\2\2\u01e2\u01e3\7q\2\2\u01e3\u01e4"+
-               
"\7o\2\2\u01e4\u01e5\7r\2\2\u01e5\u01e6\7a\2\2\u01e6\u01e7\7c\2\2\u01e7"+
-               
"\u01e8\7f\2\2\u01e8\u01e9\7f\2\2\u01e9\u03d6\7t\2\2\u01ea\u01eb\7e\2\2"+
-               
"\u01eb\u01ec\7q\2\2\u01ec\u01ed\7o\2\2\u01ed\u01ee\7r\2\2\u01ee\u01ef"+
-               
"\7a\2\2\u01ef\u01f0\7r\2\2\u01f0\u01f1\7q\2\2\u01f1\u01f2\7u\2\2\u01f2"+
-               
"\u01f3\7v\2\2\u01f3\u01f4\7e\2\2\u01f4\u01f5\7q\2\2\u01f5\u01f6\7f\2\2"+
-               
"\u01f6\u03d6\7g\2\2\u01f7\u01f8\7v\2\2\u01f8\u01f9\7t\2\2\u01f9\u01fa"+
-               
"\7k\2\2\u01fa\u03d6\7o\2\2\u01fb\u01fc\7u\2\2\u01fc\u01fd\7v\2\2\u01fd"+
-               
"\u01fe\7t\2\2\u01fe\u01ff\7k\2\2\u01ff\u03d6\7r\2\2\u0200\u0201\7w\2\2"+
-               
"\u0201\u0202\7r\2\2\u0202\u0203\7r\2\2\u0203\u0204\7g\2\2\u0204\u0205"+
-               
"\7t\2\2\u0205\u0206\7e\2\2\u0206\u0207\7c\2\2\u0207\u0208\7u\2\2\u0208"+
-               
"\u03d6\7g\2\2\u0209\u020a\7n\2\2\u020a\u020b\7q\2\2\u020b\u020c\7y\2\2"+
-               
"\u020c\u020d\7g\2\2\u020d\u020e\7t\2\2\u020e\u020f\7e\2\2\u020f\u0210"+
-               
"\7c\2\2\u0210\u0211\7u\2\2\u0211\u03d6\7g\2\2\u0212\u0213\7k\2\2\u0213"+
-               
"\u0214\7u\2\2\u0214\u0215\7a\2\2\u0215\u0216\7c\2\2\u0216\u0217\7n\2\2"+
-               
"\u0217\u0218\7r\2\2\u0218\u0219\7j\2\2\u0219\u03d6\7c\2\2\u021a\u021b"+
-               
"\7k\2\2\u021b\u021c\7u\2\2\u021c\u021d\7a\2\2\u021d\u021e\7c\2\2\u021e"+
-               
"\u021f\7n\2\2\u021f\u0220\7r\2\2\u0220\u0221\7j\2\2\u0221\u0222\7c\2\2"+
-               
"\u0222\u0223\7p\2\2\u0223\u0224\7w\2\2\u0224\u03d6\7o\2\2\u0225\u0226"+
-               
"\7k\2\2\u0226\u0227\7u\2\2\u0227\u0228\7a\2\2\u0228\u0229\7y\2\2\u0229"+
-               
"\u022a\7j\2\2\u022a\u022b\7k\2\2\u022b\u022c\7v\2\2\u022c\u022d\7g\2\2"+
-               
"\u022d\u022e\7u\2\2\u022e\u022f\7r\2\2\u022f\u0230\7c\2\2\u0230\u0231"+
-               
"\7e\2\2\u0231\u03d6\7g\2\2\u0232\u0233\7k\2\2\u0233\u0234\7u\2\2\u0234"+
-               
"\u0235\7a\2\2\u0235\u0236\7p\2\2\u0236\u0237\7w\2\2\u0237\u03d6\7o\2\2"+
-               
"\u0238\u0239\7k\2\2\u0239\u023a\7u\2\2\u023a\u023b\7a\2\2\u023b\u023c"+
-               
"\7p\2\2\u023c\u023d\7w\2\2\u023d\u023e\7o\2\2\u023e\u023f\7u\2\2\u023f"+
-               
"\u0240\7r\2\2\u0240\u0241\7c\2\2\u0241\u0242\7e\2\2\u0242\u03d6\7g\2\2"+
-               
"\u0243\u0244\7k\2\2\u0244\u0245\7u\2\2\u0245\u0246\7a\2\2\u0246\u0247"+
-               
"\7c\2\2\u0247\u0248\7n\2\2\u0248\u0249\7r\2\2\u0249\u024a\7j\2\2\u024a"+
-               
"\u024b\7c\2\2\u024b\u024c\7u\2\2\u024c\u024d\7r\2\2\u024d\u024e\7c\2\2"+
-               
"\u024e\u024f\7e\2\2\u024f\u03d6\7g\2\2\u0250\u0251\7k\2\2\u0251\u0252"+
-               
"\7u\2\2\u0252\u0253\7a\2\2\u0253\u0254\7c\2\2\u0254\u0255\7n\2\2\u0255"+
-               
"\u0256\7r\2\2\u0256\u0257\7j\2\2\u0257\u0258\7c\2\2\u0258\u0259\7p\2\2"+
-               
"\u0259\u025a\7w\2\2\u025a\u025b\7o\2\2\u025b\u025c\7u\2\2\u025c\u025d"+
-               
"\7r\2\2\u025d\u025e\7c\2\2\u025e\u025f\7e\2\2\u025f\u03d6\7g\2\2\u0260"+
-               
"\u0261\7u\2\2\u0261\u0262\7w\2\2\u0262\u0263\7d\2\2\u0263\u0264\7u\2\2"+
-               
"\u0264\u0265\7v\2\2\u0265\u0266\7t\2\2\u0266\u0267\7k\2\2\u0267\u0268"+
-               
"\7p\2\2\u0268\u03d6\7i\2\2\u0269\u026a\7e\2\2\u026a\u026b\7j\2\2\u026b"+
-               
"\u026c\7c\2\2\u026c\u026d\7t\2\2\u026d\u026e\7C\2\2\u026e\u03d6\7v\2\2"+
-               
"\u026f\u0270\7t\2\2\u0270\u0271\7g\2\2\u0271\u0272\7i\2\2\u0272\u0273"+
-               
"\7g\2\2\u0273\u03d6\7z\2\2\u0274\u0275\7u\2\2\u0275\u0276\7q\2\2\u0276"+
-               
"\u0277\7w\2\2\u0277\u0278\7p\2\2\u0278\u0279\7f\2\2\u0279\u027a\7g\2\2"+
-               
"\u027a\u03d6\7z\2\2\u027b\u027c\7u\2\2\u027c\u027d\7r\2\2\u027d\u027e"+
-               
"\7n\2\2\u027e\u027f\7k\2\2\u027f\u03d6\7v\2\2\u0280\u0281\7u\2\2\u0281"+
-               
"\u0282\7r\2\2\u0282\u0283\7n\2\2\u0283\u0284\7k\2\2\u0284\u0285\7v\2\2"+
-               
"\u0285\u0286\7a\2\2\u0286\u0287\7v\2\2\u0287\u0288\7t\2\2\u0288\u0289"+
-               
"\7k\2\2\u0289\u03d6\7o\2\2\u028a\u028b\7t\2\2\u028b\u028c\7g\2\2\u028c"+
-               
"\u028d\7r\2\2\u028d\u028e\7n\2\2\u028e\u028f\7c\2\2\u028f\u0290\7e\2\2"+
-               
"\u0290\u03d6\7g\2\2\u0291\u0292\7c\2\2\u0292\u0293\7d\2\2\u0293\u03d6"+
-               
"\7u\2\2\u0294\u0295\7e\2\2\u0295\u0296\7g\2\2\u0296\u0297\7k\2\2\u0297"+
-               
"\u03d6\7n\2\2\u0298\u0299\7h\2\2\u0299\u029a\7n\2\2\u029a\u029b\7q\2\2"+
-               
"\u029b\u029c\7q\2\2\u029c\u03d6\7t\2\2\u029d\u029e\7t\2\2\u029e\u029f"+
-               
"\7k\2\2\u029f\u02a0\7p\2\2\u02a0\u03d6\7v\2\2\u02a1\u02a2\7t\2\2\u02a2"+
-               
"\u02a3\7q\2\2\u02a3\u02a4\7w\2\2\u02a4\u02a5\7p\2\2\u02a5\u03d6\7f\2\2"+
-               
"\u02a6\u02a7\7u\2\2\u02a7\u02a8\7k\2\2\u02a8\u02a9\7i\2\2\u02a9\u02aa"+
-               
"\7p\2\2\u02aa\u02ab\7w\2\2\u02ab\u03d6\7o\2\2\u02ac\u02ad\7u\2\2\u02ad"+
-               
"\u02ae\7s\2\2\u02ae\u02af\7t\2\2\u02af\u03d6\7v\2\2\u02b0\u02b1\7e\2\2"+
-               
"\u02b1\u02b2\7d\2\2\u02b2\u02b3\7t\2\2\u02b3\u03d6\7v\2\2\u02b4\u02b5"+
-               
"\7r\2\2\u02b5\u03d6\7k\2\2\u02b6\u02b7\7g\2\2\u02b7\u02b8\7w\2\2\u02b8"+
-               
"\u02b9\7n\2\2\u02b9\u02ba\7g\2\2\u02ba\u03d6\7t\2\2\u02bb\u02bc\7c\2\2"+
-               
"\u02bc\u02bd\7e\2\2\u02bd\u02be\7q\2\2\u02be\u03d6\7u\2\2\u02bf\u02c0"+
-               
"\7c\2\2\u02c0\u02c1\7u\2\2\u02c1\u02c2\7k\2\2\u02c2\u03d6\7p\2\2\u02c3"+
-               
"\u02c4\7c\2\2\u02c4\u02c5\7v\2\2\u02c5\u02c6\7c\2\2\u02c6\u03d6\7p\2\2"+
-               
"\u02c7\u02c8\7e\2\2\u02c8\u02c9\7q\2\2\u02c9\u03d6\7u\2\2\u02ca\u02cb"+
-               
"\7u\2\2\u02cb\u02cc\7k\2\2\u02cc\u03d6\7p\2\2\u02cd\u02ce\7v\2\2\u02ce"+
-               
"\u02cf\7c\2\2\u02cf\u03d6\7p\2\2\u02d0\u02d1\7e\2\2\u02d1\u02d2\7q\2\2"+
-               
"\u02d2\u02d3\7u\2\2\u02d3\u03d6\7j\2\2\u02d4\u02d5\7u\2\2\u02d5\u02d6"+
-               
"\7k\2\2\u02d6\u02d7\7p\2\2\u02d7\u03d6\7j\2\2\u02d8\u02d9\7v\2\2\u02d9"+
-               
"\u02da\7c\2\2\u02da\u02db\7p\2\2\u02db\u03d6\7j\2\2\u02dc\u02dd\7c\2\2"+
-               
"\u02dd\u02de\7v\2\2\u02de\u02df\7p\2\2\u02df\u03d6\7\64\2\2\u02e0\u02e1"+
-               
"\7f\2\2\u02e1\u02e2\7g\2\2\u02e2\u02e3\7i\2\2\u02e3\u02e4\7t\2\2\u02e4"+
-               
"\u02e5\7g\2\2\u02e5\u02e6\7g\2\2\u02e6\u03d6\7u\2\2\u02e7\u02e8\7t\2\2"+
-               
"\u02e8\u02e9\7c\2\2\u02e9\u02ea\7f\2\2\u02ea\u02eb\7k\2\2\u02eb\u02ec"+
-               
"\7c\2\2\u02ec\u02ed\7p\2\2\u02ed\u03d6\7u\2\2\u02ee\u02ef\7g\2\2\u02ef"+
-               
"\u02f0\7z\2\2\u02f0\u03d6\7r\2\2\u02f1\u02f2\7g\2\2\u02f2\u02f3\7z\2\2"+
-               
"\u02f3\u02f4\7r\2\2\u02f4\u02f5\7o\2\2\u02f5\u03d6\7\63\2\2\u02f6\u02f7"+
-               
"\7j\2\2\u02f7\u02f8\7{\2\2\u02f8\u02f9\7r\2\2\u02f9\u02fa\7q\2\2\u02fa"+
-               
"\u03d6\7v\2\2\u02fb\u02fc\7n\2\2\u02fc\u02fd\7q\2\2\u02fd\u03d6\7i\2\2"+
-               
"\u02fe\u02ff\7n\2\2\u02ff\u0300\7q\2\2\u0300\u0301\7i\2\2\u0301\u0302"+
-               
"\7\63\2\2\u0302\u03d6\7\62\2\2\u0303\u0304\7n\2\2\u0304\u0305\7q\2\2\u0305"+
-               
"\u0306\7i\2\2\u0306\u0307\7\63\2\2\u0307\u03d6\7r\2\2\u0308\u0309\7r\2"+
-               
"\2\u0309\u030a\7q\2\2\u030a\u03d6\7y\2\2\u030b\u030c\7t\2\2\u030c\u030d"+
-               
"\7c\2\2\u030d\u030e\7p\2\2\u030e\u03d6\7f\2\2\u030f\u0310\7u\2\2\u0310"+
-               
"\u0311\7s\2\2\u0311\u0312\7w\2\2\u0312\u0313\7c\2\2\u0313\u0314\7t\2\2"+
-               
"\u0314\u03d6\7g\2\2\u0315\u0316\7n\2\2\u0316\u0317\7k\2\2\u0317\u0318"+
-               
"\7u\2\2\u0318\u03d6\7v\2\2\u0319\u031a\7i\2\2\u031a\u031b\7g\2\2\u031b"+
-               
"\u03d6\7v\2\2\u031c\u031d\7j\2\2\u031d\u031e\7c\2\2\u031e\u03d6\7u\2\2"+
-               
"\u031f\u0320\7h\2\2\u0320\u0321\7k\2\2\u0321\u0322\7t\2\2\u0322\u0323"+
-               
"\7u\2\2\u0323\u03d6\7v\2\2\u0324\u0325\7n\2\2\u0325\u0326\7c\2\2\u0326"+
-               
"\u0327\7u\2\2\u0327\u03d6\7v\2\2\u0328\u0329\7m\2\2\u0329\u032a\7g\2\2"+
-               
"\u032a\u032b\7{\2\2\u032b\u03d6\7u\2\2\u032c\u032d\7x\2\2\u032d\u032e"+
-               
"\7c\2\2\u032e\u032f\7n\2\2\u032f\u0330\7w\2\2\u0330\u0331\7g\2\2\u0331"+
-               
"\u03d6\7u\2\2\u0332\u0333\7n\2\2\u0333\u0334\7g\2\2\u0334\u0335\7p\2\2"+
-               
"\u0335\u0336\7i\2\2\u0336\u0337\7v\2\2\u0337\u03d6\7j\2\2\u0338\u0339"+
-               
"\7e\2\2\u0339\u033a\7q\2\2\u033a\u033b\7w\2\2\u033b\u033c\7p\2\2\u033c"+
-               
"\u03d6\7v\2\2\u033d\u033e\7u\2\2\u033e\u033f\7k\2\2\u033f\u0340\7|\2\2"+
-               
"\u0340\u03d6\7g\2\2\u0341\u0342\7u\2\2\u0342\u0343\7q\2\2\u0343\u0344"+
-               
"\7t\2\2\u0344\u03d6\7v\2\2\u0345\u0346\7t\2\2\u0346\u0347\7g\2\2\u0347"+
-               
"\u0348\7x\2\2\u0348\u0349\7g\2\2\u0349\u034a\7t\2\2\u034a\u034b\7u\2\2"+
-               
"\u034b\u03d6\7g\2\2\u034c\u034d\7k\2\2\u034d\u034e\7u\2\2\u034e\u034f"+
-               
"\7a\2\2\u034f\u0350\7g\2\2\u0350\u0351\7o\2\2\u0351\u0352\7r\2\2\u0352"+
-               
"\u0353\7v\2\2\u0353\u03d6\7{\2\2\u0354\u0355\7p\2\2\u0355\u0356\7q\2\2"+
-               
"\u0356\u0357\7p\2\2\u0357\u0358\7a\2\2\u0358\u0359\7g\2\2\u0359\u035a"+
-               
"\7o\2\2\u035a\u035b\7r\2\2\u035b\u035c\7v\2\2\u035c\u03d6\7{\2\2\u035d"+
-               
"\u035e\7v\2\2\u035e\u035f\7q\2\2\u035f\u0360\7a\2\2\u0360\u0361\7u\2\2"+
-               
"\u0361\u0362\7v\2\2\u0362\u0363\7t\2\2\u0363\u0364\7k\2\2\u0364\u0365"+
-               
"\7p\2\2\u0365\u03d6\7i\2\2\u0366\u0367\7c\2\2\u0367\u0368\7x\2\2\u0368"+
-               
"\u03d6\7i\2\2\u0369\u036a\7o\2\2\u036a\u036b\7c\2\2\u036b\u03d6\7z\2\2"+
-               
"\u036c\u036d\7o\2\2\u036d\u036e\7k\2\2\u036e\u03d6\7p\2\2\u036f\u0370"+
-               
"\7u\2\2\u0370\u0371\7v\2\2\u0371\u0372\7f\2\2\u0372\u0373\7g\2\2\u0373"+
-               
"\u03d6\7x\2\2\u0374\u0375\7u\2\2\u0375\u0376\7w\2\2\u0376\u03d6\7o\2\2"+
-               
"\u0377\u0378\7{\2\2\u0378\u0379\7g\2\2\u0379\u037a\7c\2\2\u037a\u03d6"+
-               
"\7t\2\2\u037b\u037c\7o\2\2\u037c\u037d\7q\2\2\u037d\u037e\7p\2\2\u037e"+
-               
"\u037f\7v\2\2\u037f\u03d6\7j\2\2\u0380\u0381\7f\2\2\u0381\u0382\7c\2\2"+
-               
"\u0382\u0383\7{\2\2\u0383\u0384\7a\2\2\u0384\u0385\7q\2\2\u0385\u0386"+
-               
"\7h\2\2\u0386\u0387\7a\2\2\u0387\u0388\7o\2\2\u0388\u0389\7q\2\2\u0389"+
-               
"\u038a\7p\2\2\u038a\u038b\7v\2\2\u038b\u03d6\7j\2\2\u038c\u038d\7f\2\2"+
-               
"\u038d\u038e\7c\2\2\u038e\u038f\7{\2\2\u038f\u0390\7a\2\2\u0390\u0391"+
-               
"\7q\2\2\u0391\u0392\7h\2\2\u0392\u0393\7a\2\2\u0393\u0394\7y\2\2\u0394"+
-               
"\u0395\7g\2\2\u0395\u0396\7g\2\2\u0396\u03d6\7m\2\2\u0397\u0398\7f\2\2"+
-               
"\u0398\u0399\7c\2\2\u0399\u039a\7{\2\2\u039a\u039b\7a\2\2\u039b\u039c"+
-               
"\7q\2\2\u039c\u039d\7h\2\2\u039d\u039e\7a\2\2\u039e\u039f\7{\2\2\u039f"+
-               
"\u03a0\7g\2\2\u03a0\u03a1\7c\2\2\u03a1\u03d6\7t\2\2\u03a2\u03a3\7j\2\2"+
-               
"\u03a3\u03a4\7q\2\2\u03a4\u03a5\7w\2\2\u03a5\u03d6\7t\2\2\u03a6\u03a7"+
-               
"\7o\2\2\u03a7\u03a8\7k\2\2\u03a8\u03a9\7p\2\2\u03a9\u03aa\7w\2\2\u03aa"+
-               
"\u03ab\7v\2\2\u03ab\u03d6\7g\2\2\u03ac\u03ad\7u\2\2\u03ad\u03ae\7g\2\2"+
-               
"\u03ae\u03af\7e\2\2\u03af\u03b0\7q\2\2\u03b0\u03b1\7p\2\2\u03b1\u03d6"+
-               
"\7f\2\2\u03b2\u03b3\7y\2\2\u03b3\u03b4\7g\2\2\u03b4\u03b5\7g\2\2\u03b5"+
-               
"\u03b6\7m\2\2\u03b6\u03b7\7a\2\2\u03b7\u03b8\7q\2\2\u03b8\u03b9\7h\2\2"+
-               
"\u03b9\u03ba\7a\2\2\u03ba\u03bb\7o\2\2\u03bb\u03bc\7q\2\2\u03bc\u03bd"+
-               
"\7p\2\2\u03bd\u03be\7v\2\2\u03be\u03d6\7j\2\2\u03bf\u03c0\7y\2\2\u03c0"+
-               
"\u03c1\7g\2\2\u03c1\u03c2\7g\2\2\u03c2\u03c3\7m\2\2\u03c3\u03c4\7a\2\2"+
-               
"\u03c4\u03c5\7q\2\2\u03c5\u03c6\7h\2\2\u03c6\u03c7\7a\2\2\u03c7\u03c8"+
-               
"\7{\2\2\u03c8\u03c9\7g\2\2\u03c9\u03ca\7c\2\2\u03ca\u03d6\7t\2\2\u03cb"+
-               
"\u03cc\7s\2\2\u03cc\u03cd\7w\2\2\u03cd\u03ce\7c\2\2\u03ce\u03cf\7t\2\2"+
-               
"\u03cf\u03d0\7v\2\2\u03d0\u03d1\7g\2\2\u03d1\u03d6\7t\2\2\u03d2\u03d3"+
-               
"\7p\2\2\u03d3\u03d4\7q\2\2\u03d4\u03d6\7y\2\2\u03d5\u0092\3\2\2\2\u03d5"+
-               
"\u009c\3\2\2\2\u03d5\u00a5\3\2\2\2\u03d5\u00af\3\2\2\2\u03d5\u00ba\3\2"+
-               
"\2\2\u03d5\u00c2\3\2\2\2\u03d5\u00cb\3\2\2\2\u03d5\u00d7\3\2\2\2\u03d5"+
-               
"\u00df\3\2\2\2\u03d5\u00e8\3\2\2\2\u03d5\u00f1\3\2\2\2\u03d5\u00f5\3\2"+
-               
"\2\2\u03d5\u00f7\3\2\2\2\u03d5\u00f9\3\2\2\2\u03d5\u00fd\3\2\2\2\u03d5"+
-               
"\u0101\3\2\2\2\u03d5\u0106\3\2\2\2\u03d5\u010f\3\2\2\2\u03d5\u0115\3\2"+
-               
"\2\2\u03d5\u011b\3\2\2\2\u03d5\u0120\3\2\2\2\u03d5\u0127\3\2\2\2\u03d5"+
-               
"\u0130\3\2\2\2\u03d5\u0137\3\2\2\2\u03d5\u013d\3\2\2\2\u03d5\u0149\3\2"+
-               
"\2\2\u03d5\u0153\3\2\2\2\u03d5\u015b\3\2\2\2\u03d5\u0164\3\2\2\2\u03d5"+
-               
"\u016b\3\2\2\2\u03d5\u0175\3\2\2\2\u03d5\u017f\3\2\2\2\u03d5\u0189\3\2"+
-               
"\2\2\u03d5\u0193\3\2\2\2\u03d5\u01a5\3\2\2\2\u03d5\u01ac\3\2\2\2\u03d5"+
-               
"\u01b5\3\2\2\2\u03d5\u01c1\3\2\2\2\u03d5\u01cd\3\2\2\2\u03d5\u01d8\3\2"+
-               
"\2\2\u03d5\u01e1\3\2\2\2\u03d5\u01ea\3\2\2\2\u03d5\u01f7\3\2\2\2\u03d5"+
-               
"\u01fb\3\2\2\2\u03d5\u0200\3\2\2\2\u03d5\u0209\3\2\2\2\u03d5\u0212\3\2"+
-               
"\2\2\u03d5\u021a\3\2\2\2\u03d5\u0225\3\2\2\2\u03d5\u0232\3\2\2\2\u03d5"+
-               
"\u0238\3\2\2\2\u03d5\u0243\3\2\2\2\u03d5\u0250\3\2\2\2\u03d5\u0260\3\2"+
-               
"\2\2\u03d5\u0269\3\2\2\2\u03d5\u026f\3\2\2\2\u03d5\u0274\3\2\2\2\u03d5"+
-               
"\u027b\3\2\2\2\u03d5\u0280\3\2\2\2\u03d5\u028a\3\2\2\2\u03d5\u0291\3\2"+
-               
"\2\2\u03d5\u0294\3\2\2\2\u03d5\u0298\3\2\2\2\u03d5\u029d\3\2\2\2\u03d5"+
-               
"\u02a1\3\2\2\2\u03d5\u02a6\3\2\2\2\u03d5\u02ac\3\2\2\2\u03d5\u02b0\3\2"+
-               
"\2\2\u03d5\u02b4\3\2\2\2\u03d5\u02b6\3\2\2\2\u03d5\u02bb\3\2\2\2\u03d5"+
-               
"\u02bf\3\2\2\2\u03d5\u02c3\3\2\2\2\u03d5\u02c7\3\2\2\2\u03d5\u02ca\3\2"+
-               
"\2\2\u03d5\u02cd\3\2\2\2\u03d5\u02d0\3\2\2\2\u03d5\u02d4\3\2\2\2\u03d5"+
-               
"\u02d8\3\2\2\2\u03d5\u02dc\3\2\2\2\u03d5\u02e0\3\2\2\2\u03d5\u02e7\3\2"+
-               
"\2\2\u03d5\u02ee\3\2\2\2\u03d5\u02f1\3\2\2\2\u03d5\u02f6\3\2\2\2\u03d5"+
-               
"\u02fb\3\2\2\2\u03d5\u02fe\3\2\2\2\u03d5\u0303\3\2\2\2\u03d5\u0308\3\2"+
-               
"\2\2\u03d5\u030b\3\2\2\2\u03d5\u030f\3\2\2\2\u03d5\u0315\3\2\2\2\u03d5"+
-               
"\u0319\3\2\2\2\u03d5\u031c\3\2\2\2\u03d5\u031f\3\2\2\2\u03d5\u0324\3\2"+
-               
"\2\2\u03d5\u0328\3\2\2\2\u03d5\u032c\3\2\2\2\u03d5\u0332\3\2\2\2\u03d5"+
-               
"\u0338\3\2\2\2\u03d5\u033d\3\2\2\2\u03d5\u0341\3\2\2\2\u03d5\u0345\3\2"+
-               
"\2\2\u03d5\u034c\3\2\2\2\u03d5\u0354\3\2\2\2\u03d5\u035d\3\2\2\2\u03d5"+
-               
"\u0366\3\2\2\2\u03d5\u0369\3\2\2\2\u03d5\u036c\3\2\2\2\u03d5\u036f\3\2"+
-               
"\2\2\u03d5\u0374\3\2\2\2\u03d5\u0377\3\2\2\2\u03d5\u037b\3\2\2\2\u03d5"+
-               
"\u0380\3\2\2\2\u03d5\u038c\3\2\2\2\u03d5\u0397\3\2\2\2\u03d5\u03a2\3\2"+
-               
"\2\2\u03d5\u03a6\3\2\2\2\u03d5\u03ac\3\2\2\2\u03d5\u03b2\3\2\2\2\u03d5"+
-               
"\u03bf\3\2\2\2\u03d5\u03cb\3\2\2\2\u03d5\u03d2\3\2\2\2\u03d6\20\3\2\2"+
-               
"\2\u03d7\u03d8\7h\2\2\u03d8\u03d9\7t\2\2\u03d9\u03da\7c\2\2\u03da\u03db"+
-               
"\7i\2\2\u03db\u03dc\7o\2\2\u03dc\u03dd\7g\2\2\u03dd\u03de\7p\2\2\u03de"+
-               
"\u03df\7v\2\2\u03df\22\3\2\2\2\u03e0\u03e6\5\67\34\2\u03e1\u03e5\n\2\2"+
-               
"\2\u03e2\u03e3\7^\2\2\u03e3\u03e5\7)\2\2\u03e4\u03e1\3\2\2\2\u03e4\u03e2"+
-               
"\3\2\2\2\u03e5\u03e8\3\2\2\2\u03e6\u03e4\3\2\2\2\u03e6\u03e7\3\2\2\2\u03e7"+
-               
"\u03e9\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e9\u03ea\5\67\34\2\u03ea\24\3\2"+
-               
"\2\2\u03eb\u03f1\59\35\2\u03ec\u03f0\n\3\2\2\u03ed\u03ee\7^\2\2\u03ee"+
-               
"\u03f0\7$\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2\2\u03f0\u03f3\3\2"+
-               
"\2\2\u03f1\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f4\3\2\2\2\u03f3"+
-               
"\u03f1\3\2\2\2\u03f4\u03f5\59\35\2\u03f5\26\3\2\2\2\u03f6\u03f7\7v\2\2"+
-               
"\u03f7\u03f8\7t\2\2\u03f8\u03f9\7w\2\2\u03f9\u0400\7g\2\2\u03fa\u03fb"+
-               
"\7h\2\2\u03fb\u03fc\7c\2\2\u03fc\u03fd\7n\2\2\u03fd\u03fe\7u\2\2\u03fe"+
-               
"\u0400\7g\2\2\u03ff\u03f6\3\2\2\2\u03ff\u03fa\3\2\2\2\u0400\30\3\2\2\2"+
-               
"\u0401\u0402\7p\2\2\u0402\u0403\7w\2\2\u0403\u0404\7n\2\2\u0404\u0405"+
-               
"\7n\2\2\u0405\32\3\2\2\2\u0406\u0407\7?\2\2\u0407\u0408\7?\2\2\u0408\34"+
-               
"\3\2\2\2\u0409\u040a\7#\2\2\u040a\u040b\7?\2\2\u040b\36\3\2\2\2\u040c"+
-               "\u040d\7@\2\2\u040d\u040e\7?\2\2\u040e 
\3\2\2\2\u040f\u0410\7>\2\2\u0410"+
-               
"\u0411\7?\2\2\u0411\"\3\2\2\2\u0412\u0413\7@\2\2\u0413$\3\2\2\2\u0414"+
-               
"\u0415\7>\2\2\u0415&\3\2\2\2\u0416\u0417\7(\2\2\u0417\u0418\7(\2\2\u0418"+
-               
"(\3\2\2\2\u0419\u041a\7~\2\2\u041a\u041b\7~\2\2\u041b*\3\2\2\2\u041c\u041d"+
-               
"\7~\2\2\u041d,\3\2\2\2\u041e\u041f\7#\2\2\u041f.\3\2\2\2\u0420\u0421\7"+
-               
"*\2\2\u0421\60\3\2\2\2\u0422\u0423\7+\2\2\u0423\62\3\2\2\2\u0424\u0425"+
-               
"\7}\2\2\u0425\64\3\2\2\2\u0426\u0427\7\177\2\2\u0427\66\3\2\2\2\u0428"+
-               
"\u0429\7)\2\2\u04298\3\2\2\2\u042a\u042b\7$\2\2\u042b:\3\2\2\2\u042c\u042d"+
-               
"\7\u0080\2\2\u042d<\3\2\2\2\u042e\u042f\7]\2\2\u042f>\3\2\2\2\u0430\u0431"+
-               
"\7_\2\2\u0431@\3\2\2\2\u0432\u0433\7%\2\2\u0433B\3\2\2\2\u0434\u0435\7"+
-               
".\2\2\u0435D\3\2\2\2\u0436\u0437\7<\2\2\u0437F\3\2\2\2\u0438\u0439\7/"+
-               
"\2\2\u0439H\3\2\2\2\u043a\u043b\7\60\2\2\u043bJ\3\2\2\2\u043c\u043d\7"+
-               
"a\2\2\u043dL\3\2\2\2\u043e\u043f\7?\2\2\u043fN\3\2\2\2\u0440\u0441\7-"+
-               
"\2\2\u0441P\3\2\2\2\u0442\u0443\7A\2\2\u0443R\3\2\2\2\u0444\u0445\7,\2"+
-               
"\2\u0445T\3\2\2\2\u0446\u0447\7\61\2\2\u0447V\3\2\2\2\u0448\u0449\7\'"+
-               
"\2\2\u0449X\3\2\2\2\u044a\u044b\7&\2\2\u044bZ\3\2\2\2\u044c\u0455\7\62"+
-               
"\2\2\u044d\u0451\t\4\2\2\u044e\u0450\t\5\2\2\u044f\u044e\3\2\2\2\u0450"+
-               
"\u0453\3\2\2\2\u0451\u044f\3\2\2\2\u0451\u0452\3\2\2\2\u0452\u0455\3\2"+
-               
"\2\2\u0453\u0451\3\2\2\2\u0454\u044c\3\2\2\2\u0454\u044d\3\2\2\2\u0455"+
-               
"\\\3\2\2\2\u0456\u0458\5I%\2\u0457\u0459\t\6\2\2\u0458\u0457\3\2\2\2\u0459"+
-               
"\u045a\3\2\2\2\u045a\u0458\3\2\2\2\u045a\u045b\3\2\2\2\u045b^\3\2\2\2"+
-               
"\u045c\u045e\t\7\2\2\u045d\u045f\t\b\2\2\u045e\u045d\3\2\2\2\u045e\u045f"+
-               
"\3\2\2\2\u045f\u0460\3\2\2\2\u0460\u0461\5[.\2\u0461`\3\2\2\2\u0462\u0463"+
-               
"\t\t\2\2\u0463b\3\2\2\2\u0464\u0465\t\n\2\2\u0465d\3\2\2\2\u0466\u046b"+
-               
"\5a\61\2\u0467\u046b\5K&\2\u0468\u046b\5c\62\2\u0469\u046b\5Y-\2\u046a"+
-               
"\u0466\3\2\2\2\u046a\u0467\3\2\2\2\u046a\u0468\3\2\2\2\u046a\u0469\3\2"+
-               
"\2\2\u046b\u046c\3\2\2\2\u046c\u046a\3\2\2\2\u046c\u046d\3\2\2\2\u046d"+
-               
"\u0477\3\2\2\2\u046e\u0476\5a\61\2\u046f\u0476\5Y-\2\u0470\u0476\5c\62"+
-               
"\2\u0471\u0476\t\6\2\2\u0472\u0476\5E#\2\u0473\u0476\5G$\2\u0474\u0476"+
-               
"\5K&\2\u0475\u046e\3\2\2\2\u0475\u046f\3\2\2\2\u0475\u0470\3\2\2\2\u0475"+
-               
"\u0471\3\2\2\2\u0475\u0472\3\2\2\2\u0475\u0473\3\2\2\2\u0475\u0474\3\2"+
-               
"\2\2\u0476\u0479\3\2\2\2\u0477\u0475\3\2\2\2\u0477\u0478\3\2\2\2\u0478"+
-               
"f\3\2\2\2\u0479\u0477\3\2\2\2\u047a\u047b\7\61\2\2\u047b\u047c\7\61\2"+
-               
"\2\u047c\u0480\3\2\2\2\u047d\u047f\n\13\2\2\u047e\u047d\3\2\2\2\u047f"+
-               
"\u0482\3\2\2\2\u0480\u047e\3\2\2\2\u0480\u0481\3\2\2\2\u0481\u0484\3\2"+
-               
"\2\2\u0482\u0480\3\2\2\2\u0483\u0485\7\17\2\2\u0484\u0483\3\2\2\2\u0484"+
-               
"\u0485\3\2\2\2\u0485\u0487\3\2\2\2\u0486\u0488\t\f\2\2\u0487\u0486\3\2"+
-               
"\2\2\u0488\u0495\3\2\2\2\u0489\u048a\7\61\2\2\u048a\u048b\7,\2\2\u048b"+
-               
"\u048f\3\2\2\2\u048c\u048e\13\2\2\2\u048d\u048c\3\2\2\2\u048e\u0491\3"+
-               
"\2\2\2\u048f\u0490\3\2\2\2\u048f\u048d\3\2\2\2\u0490\u0492\3\2\2\2\u0491"+
-               
"\u048f\3\2\2\2\u0492\u0493\7,\2\2\u0493\u0495\7\61\2\2\u0494\u047a\3\2"+
-               
"\2\2\u0494\u0489\3\2\2\2\u0495\u0496\3\2\2\2\u0496\u0497\b\64\2\2\u0497"+
-               
"h\3\2\2\2\u0498\u049a\t\r\2\2\u0499\u0498\3\2\2\2\u049a\u049b\3\2\2\2"+
-               
"\u049b\u0499\3\2\2\2\u049b\u049c\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e"+
-               
"\b\65\2\2\u049ej\3\2\2\2\u049f\u04a0\13\2\2\2\u04a0l\3\2\2\2\27\2\u03d5"+
-               
"\u03e4\u03e6\u03ef\u03f1\u03ff\u0451\u0454\u045a\u045e\u046a\u046c\u0475"+
-               "\u0477\u0480\u0484\u0487\u048f\u0494\u049b\3\b\2\2";
+               
"\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u03e1\n"+
+               
"\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\7\n\u03f0\n\n\f"+
+               
"\n\16\n\u03f3\13\n\3\n\3\n\3\13\3\13\3\13\3\13\7\13\u03fb\n\13\f\13\16"+
+               
"\13\u03fe\13\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u040b"+
+               
"\n\f\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\20\3\20\3\20"+
+               
"\3\21\3\21\3\21\3\22\3\22\3\23\3\23\3\24\3\24\3\24\3\25\3\25\3\25\3\26"+
+               
"\3\26\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\35"+
+               "\3\35\3\36\3\36\3\37\3\37\3 \3 
\3!\3!\3\"\3\"\3#\3#\3$\3$\3%\3%\3&\3&"+
+               
"\3\'\3\'\3(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-\3-\3.\3.\3.\7.\u045b\n.\f.\16"+
+               
".\u045e\13.\5.\u0460\n.\3/\3/\6/\u0464\n/\r/\16/\u0465\3\60\3\60\5\60"+
+               
"\u046a\n\60\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\63\3\63\6\63\u0476"+
+               
"\n\63\r\63\16\63\u0477\3\63\3\63\3\63\3\63\3\63\3\63\3\63\7\63\u0481\n"+
+               
"\63\f\63\16\63\u0484\13\63\3\64\3\64\3\64\3\64\7\64\u048a\n\64\f\64\16"+
+               
"\64\u048d\13\64\3\64\5\64\u0490\n\64\3\64\5\64\u0493\n\64\3\64\3\64\3"+
+               
"\64\3\64\7\64\u0499\n\64\f\64\16\64\u049c\13\64\3\64\3\64\5\64\u04a0\n"+
+               
"\64\3\64\3\64\3\65\6\65\u04a5\n\65\r\65\16\65\u04a6\3\65\3\65\3\66\3\66"+
+               
"\3\u049a\2\67\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16"+
+               
"\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34"+
+               "\67\359\36;\37= 
?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\2c\2e\62g\63"+
+               
"i\64k\65\3\2\16\3\2))\3\2$$\3\2\63;\4\2\62;aa\3\2\62;\4\2GGgg\4\2--//"+
+               
"\17\2\u00a2\u0251\u025b\u0294\u02b2\u0371\u0402\u0501\u1e04\u1ef5\u1f03"+
+               
"\u2001\u200e\u200f\u2041\u2042\u2072\u2191\u2c02\u2ff1\u3003\ud801\uf902"+
+               
"\ufdd1\ufdf2\uffff\4\2C\\c|\4\2\f\f\17\17\3\3\f\f\5\2\13\f\16\17\"\"\2"+
+               
"\u053c\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2"+
+               
"\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3"+
+               
"\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2"+
+               
"\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2"+
+               
"/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2"+
+               
"\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2"+
+               
"G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3"+
+               
"\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2"+
+               
"\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\3m\3\2\2\2\5t\3\2\2\2\7"+
+               
"{\3\2\2\2\t\u0083\3\2\2\2\13\u0088\3\2\2\2\r\u008d\3\2\2\2\17\u03e0\3"+
+               
"\2\2\2\21\u03e2\3\2\2\2\23\u03eb\3\2\2\2\25\u03f6\3\2\2\2\27\u040a\3\2"+
+               
"\2\2\31\u040c\3\2\2\2\33\u0411\3\2\2\2\35\u0414\3\2\2\2\37\u0417\3\2\2"+
+               
"\2!\u041a\3\2\2\2#\u041d\3\2\2\2%\u041f\3\2\2\2\'\u0421\3\2\2\2)\u0424"+
+               
"\3\2\2\2+\u0427\3\2\2\2-\u0429\3\2\2\2/\u042b\3\2\2\2\61\u042d\3\2\2\2"+
+               
"\63\u042f\3\2\2\2\65\u0431\3\2\2\2\67\u0433\3\2\2\29\u0435\3\2\2\2;\u0437"+
+               
"\3\2\2\2=\u0439\3\2\2\2?\u043b\3\2\2\2A\u043d\3\2\2\2C\u043f\3\2\2\2E"+
+               
"\u0441\3\2\2\2G\u0443\3\2\2\2I\u0445\3\2\2\2K\u0447\3\2\2\2M\u0449\3\2"+
+               
"\2\2O\u044b\3\2\2\2Q\u044d\3\2\2\2S\u044f\3\2\2\2U\u0451\3\2\2\2W\u0453"+
+               
"\3\2\2\2Y\u0455\3\2\2\2[\u045f\3\2\2\2]\u0461\3\2\2\2_\u0467\3\2\2\2a"+
+               
"\u046d\3\2\2\2c\u046f\3\2\2\2e\u0475\3\2\2\2g\u049f\3\2\2\2i\u04a4\3\2"+
+               
"\2\2k\u04aa\3\2\2\2mn\7k\2\2no\7o\2\2op\7r\2\2pq\7q\2\2qr\7t\2\2rs\7v"+
+               
"\2\2s\4\3\2\2\2tu\7k\2\2uv\7p\2\2vw\7v\2\2wx\7g\2\2xy\7p\2\2yz\7v\2\2"+
+               
"z\6\3\2\2\2{|\7q\2\2|}\7t\2\2}~\7f\2\2~\177\7g\2\2\177\u0080\7t\2\2\u0080"+
+               
"\u0081\7g\2\2\u0081\u0082\7f\2\2\u0082\b\3\2\2\2\u0083\u0084\7h\2\2\u0084"+
+               
"\u0085\7n\2\2\u0085\u0086\7q\2\2\u0086\u0087\7y\2\2\u0087\n\3\2\2\2\u0088"+
+               
"\u0089\7o\2\2\u0089\u008a\7g\2\2\u008a\u008b\7v\2\2\u008b\u008c\7c\2\2"+
+               
"\u008c\f\3\2\2\2\u008d\u008e\7v\2\2\u008e\u008f\7g\2\2\u008f\u0090\7t"+
+               
"\2\2\u0090\u0091\7o\2\2\u0091\16\3\2\2\2\u0092\u0093\7o\2\2\u0093\u0094"+
+               
"\7g\2\2\u0094\u0095\7v\2\2\u0095\u0096\7c\2\2\u0096\u0097\7a\2\2\u0097"+
+               
"\u0098\7v\2\2\u0098\u0099\7q\2\2\u0099\u009a\7m\2\2\u009a\u009b\7g\2\2"+
+               
"\u009b\u03e1\7p\2\2\u009c\u009d\7o\2\2\u009d\u009e\7g\2\2\u009e\u009f"+
+               
"\7v\2\2\u009f\u00a0\7c\2\2\u00a0\u00a1\7a\2\2\u00a1\u00a2\7r\2\2\u00a2"+
+               
"\u00a3\7c\2\2\u00a3\u00a4\7t\2\2\u00a4\u03e1\7v\2\2\u00a5\u00a6\7o\2\2"+
+               
"\u00a6\u00a7\7g\2\2\u00a7\u00a8\7v\2\2\u00a8\u00a9\7c\2\2\u00a9\u00aa"+
+               
"\7a\2\2\u00aa\u00ab\7o\2\2\u00ab\u00ac\7q\2\2\u00ac\u00ad\7f\2\2\u00ad"+
+               
"\u00ae\7g\2\2\u00ae\u03e1\7n\2\2\u00af\u00b0\7o\2\2\u00b0\u00b1\7g\2\2"+
+               
"\u00b1\u00b2\7v\2\2\u00b2\u00b3\7c\2\2\u00b3\u00b4\7a\2\2\u00b4\u00b5"+
+               
"\7k\2\2\u00b5\u00b6\7p\2\2\u00b6\u00b7\7v\2\2\u00b7\u00b8\7g\2\2\u00b8"+
+               
"\u00b9\7p\2\2\u00b9\u03e1\7v\2\2\u00ba\u00bb\7o\2\2\u00bb\u00bc\7g\2\2"+
+               
"\u00bc\u00bd\7v\2\2\u00bd\u00be\7c\2\2\u00be\u00bf\7a\2\2\u00bf\u00c0"+
+               
"\7t\2\2\u00c0\u00c1\7g\2\2\u00c1\u03e1\7s\2\2\u00c2\u00c3\7o\2\2\u00c3"+
+               
"\u00c4\7g\2\2\u00c4\u00c5\7v\2\2\u00c5\u00c6\7c\2\2\u00c6\u00c7\7a\2\2"+
+               
"\u00c7\u00c8\7w\2\2\u00c8\u00c9\7u\2\2\u00c9\u00ca\7g\2\2\u00ca\u03e1"+
+               
"\7t\2\2\u00cb\u00cc\7o\2\2\u00cc\u00cd\7g\2\2\u00cd\u00ce\7v\2\2\u00ce"+
+               
"\u00cf\7c\2\2\u00cf\u00d0\7a\2\2\u00d0\u00d1\7e\2\2\u00d1\u00d2\7q\2\2"+
+               
"\u00d2\u00d3\7o\2\2\u00d3\u00d4\7r\2\2\u00d4\u00d5\7c\2\2\u00d5\u00d6"+
+               
"\7p\2\2\u00d6\u03e1\7{\2\2\u00d7\u00d8\7o\2\2\u00d8\u00d9\7g\2\2\u00d9"+
+               
"\u00da\7v\2\2\u00da\u00db\7c\2\2\u00db\u00dc\7a\2\2\u00dc\u00dd\7u\2\2"+
+               
"\u00dd\u00de\7{\2\2\u00de\u03e1\7u\2\2\u00df\u00e0\7o\2\2\u00e0\u00e1"+
+               
"\7g\2\2\u00e1\u00e2\7v\2\2\u00e2\u00e3\7c\2\2\u00e3\u00e4\7a\2\2\u00e4"+
+               
"\u00e5\7e\2\2\u00e5\u00e6\7q\2\2\u00e6\u00e7\7p\2\2\u00e7\u03e1\7x\2\2"+
+               
"\u00e8\u00e9\7o\2\2\u00e9\u00ea\7g\2\2\u00ea\u00eb\7v\2\2\u00eb\u00ec"+
+               
"\7c\2\2\u00ec\u00ed\7a\2\2\u00ed\u00ee\7h\2\2\u00ee\u00ef\7t\2\2\u00ef"+
+               
"\u00f0\7c\2\2\u00f0\u03e1\7i\2\2\u00f1\u00f2\7l\2\2\u00f2\u00f3\7u\2\2"+
+               
"\u00f3\u00f4\7q\2\2\u00f4\u03e1\7p\2\2\u00f5\u00f6\7k\2\2\u00f6\u03e1"+
+               
"\7h\2\2\u00f7\u00f8\7k\2\2\u00f8\u03e1\7f\2\2\u00f9\u00fa\7v\2\2\u00fa"+
+               
"\u00fb\7q\2\2\u00fb\u00fc\7m\2\2\u00fc\u00fd\7g\2\2\u00fd\u03e1\7p\2\2"+
+               
"\u00fe\u00ff\7h\2\2\u00ff\u0100\7k\2\2\u0100\u0101\7p\2\2\u0101\u0102"+
+               
"\7f\2\2\u0102\u0103\7a\2\2\u0103\u0104\7r\2\2\u0104\u0105\7c\2\2\u0105"+
+               
"\u0106\7t\2\2\u0106\u03e1\7v\2\2\u0107\u0108\7h\2\2\u0108\u0109\7k\2\2"+
+               
"\u0109\u010a\7p\2\2\u010a\u010b\7f\2\2\u010b\u010c\7a\2\2\u010c\u010d"+
+               
"\7r\2\2\u010d\u010e\7c\2\2\u010e\u010f\7t\2\2\u010f\u0110\7v\2\2\u0110"+
+               
"\u03e1\7u\2\2\u0111\u0112\7c\2\2\u0112\u0113\7p\2\2\u0113\u0114\7e\2\2"+
+               
"\u0114\u0115\7g\2\2\u0115\u0116\7u\2\2\u0116\u0117\7v\2\2\u0117\u0118"+
+               
"\7q\2\2\u0118\u0119\7t\2\2\u0119\u03e1\7u\2\2\u011a\u011b\7r\2\2\u011b"+
+               
"\u011c\7c\2\2\u011c\u011d\7t\2\2\u011d\u011e\7g\2\2\u011e\u011f\7p\2\2"+
+               
"\u011f\u03e1\7v\2\2\u0120\u0121\7i\2\2\u0121\u0122\7t\2\2\u0122\u0123"+
+               
"\7q\2\2\u0123\u0124\7w\2\2\u0124\u0125\7r\2\2\u0125\u03e1\7u\2\2\u0126"+
+               
"\u0127\7x\2\2\u0127\u0128\7c\2\2\u0128\u0129\7n\2\2\u0129\u012a\7w\2\2"+
+               
"\u012a\u03e1\7g\2\2\u012b\u012c\7c\2\2\u012c\u012d\7n\2\2\u012d\u012e"+
+               
"\7k\2\2\u012e\u012f\7c\2\2\u012f\u0130\7u\2\2\u0130\u0131\7g\2\2\u0131"+
+               
"\u03e1\7u\2\2\u0132\u0133\7u\2\2\u0133\u0134\7v\2\2\u0134\u0135\7c\2\2"+
+               
"\u0135\u0136\7t\2\2\u0136\u0137\7v\2\2\u0137\u0138\7a\2\2\u0138\u0139"+
+               
"\7k\2\2\u0139\u013a\7f\2\2\u013a\u03e1\7z\2\2\u013b\u013c\7g\2\2\u013c"+
+               
"\u013d\7p\2\2\u013d\u013e\7f\2\2\u013e\u013f\7a\2\2\u013f\u0140\7k\2\2"+
+               
"\u0140\u0141\7f\2\2\u0141\u03e1\7z\2\2\u0142\u0143\7t\2\2\u0143\u0144"+
+               
"\7g\2\2\u0144\u0145\7s\2\2\u0145\u0146\7a\2\2\u0146\u0147\7k\2\2\u0147"+
+               
"\u03e1\7f\2\2\u0148\u0149\7t\2\2\u0149\u014a\7g\2\2\u014a\u014b\7s\2\2"+
+               
"\u014b\u014c\7a\2\2\u014c\u014d\7p\2\2\u014d\u014e\7q\2\2\u014e\u014f"+
+               
"\7t\2\2\u014f\u0150\7o\2\2\u0150\u0151\7v\2\2\u0151\u0152\7g\2\2\u0152"+
+               
"\u0153\7z\2\2\u0153\u03e1\7v\2\2\u0154\u0155\7t\2\2\u0155\u0156\7g\2\2"+
+               
"\u0156\u0157\7s\2\2\u0157\u0158\7a\2\2\u0158\u0159\7v\2\2\u0159\u015a"+
+               
"\7u\2\2\u015a\u015b\7v\2\2\u015b\u015c\7c\2\2\u015c\u015d\7o\2\2\u015d"+
+               
"\u03e1\7r\2\2\u015e\u015f\7t\2\2\u015f\u0160\7g\2\2\u0160\u0161\7s\2\2"+
+               
"\u0161\u0162\7a\2\2\u0162\u0163\7c\2\2\u0163\u0164\7f\2\2\u0164\u0165"+
+               
"\7f\2\2\u0165\u03e1\7t\2\2\u0166\u0167\7t\2\2\u0167\u0168\7g\2\2\u0168"+
+               
"\u0169\7s\2\2\u0169\u016a\7a\2\2\u016a\u016b\7c\2\2\u016b\u016c\7i\2\2"+
+               
"\u016c\u016d\7g\2\2\u016d\u016e\7p\2\2\u016e\u03e1\7v\2\2\u016f\u0170"+
+               
"\7w\2\2\u0170\u0171\7u\2\2\u0171\u0172\7g\2\2\u0172\u0173\7t\2\2\u0173"+
+               
"\u0174\7a\2\2\u0174\u0175\7k\2\2\u0175\u03e1\7f\2\2\u0176\u0177\7w\2\2"+
+               
"\u0177\u0178\7u\2\2\u0178\u0179\7g\2\2\u0179\u017a\7t\2\2\u017a\u017b"+
+               
"\7a\2\2\u017b\u017c\7h\2\2\u017c\u017d\7p\2\2\u017d\u017e\7c\2\2\u017e"+
+               
"\u017f\7o\2\2\u017f\u03e1\7g\2\2\u0180\u0181\7w\2\2\u0181\u0182\7u\2\2"+
+               
"\u0182\u0183\7g\2\2\u0183\u0184\7t\2\2\u0184\u0185\7a\2\2\u0185\u0186"+
+               
"\7n\2\2\u0186\u0187\7p\2\2\u0187\u0188\7c\2\2\u0188\u0189\7o\2\2\u0189"+
+               
"\u03e1\7g\2\2\u018a\u018b\7w\2\2\u018b\u018c\7u\2\2\u018c\u018d\7g\2\2"+
+               
"\u018d\u018e\7t\2\2\u018e\u018f\7a\2\2\u018f\u0190\7g\2\2\u0190\u0191"+
+               
"\7o\2\2\u0191\u0192\7c\2\2\u0192\u0193\7k\2\2\u0193\u03e1\7n\2\2\u0194"+
+               
"\u0195\7w\2\2\u0195\u0196\7u\2\2\u0196\u0197\7g\2\2\u0197\u0198\7t\2\2"+
+               
"\u0198\u0199\7a\2\2\u0199\u019a\7c\2\2\u019a\u019b\7f\2\2\u019b\u019c"+
+               
"\7o\2\2\u019c\u019d\7k\2\2\u019d\u03e1\7p\2\2\u019e\u019f\7w\2\2\u019f"+
+               
"\u01a0\7u\2\2\u01a0\u01a1\7g\2\2\u01a1\u01a2\7t\2\2\u01a2\u01a3\7a\2\2"+
+               
"\u01a3\u01a4\7u\2\2\u01a4\u01a5\7k\2\2\u01a5\u01a6\7i\2\2\u01a6\u01a7"+
+               
"\7p\2\2\u01a7\u01a8\7w\2\2\u01a8\u01a9\7r\2\2\u01a9\u01aa\7a\2\2\u01aa"+
+               
"\u01ab\7v\2\2\u01ab\u01ac\7u\2\2\u01ac\u01ad\7v\2\2\u01ad\u01ae\7c\2\2"+
+               
"\u01ae\u01af\7o\2\2\u01af\u03e1\7r\2\2\u01b0\u01b1\7e\2\2\u01b1\u01b2"+
+               
"\7q\2\2\u01b2\u01b3\7o\2\2\u01b3\u01b4\7r\2\2\u01b4\u01b5\7a\2\2\u01b5"+
+               
"\u01b6\7k\2\2\u01b6\u03e1\7f\2\2\u01b7\u01b8\7e\2\2\u01b8\u01b9\7q\2\2"+
+               
"\u01b9\u01ba\7o\2\2\u01ba\u01bb\7r\2\2\u01bb\u01bc\7a\2\2\u01bc\u01bd"+
+               
"\7p\2\2\u01bd\u01be\7c\2\2\u01be\u01bf\7o\2\2\u01bf\u03e1\7g\2\2\u01c0"+
+               
"\u01c1\7e\2\2\u01c1\u01c2\7q\2\2\u01c2\u01c3\7o\2\2\u01c3\u01c4\7r\2\2"+
+               
"\u01c4\u01c5\7a\2\2\u01c5\u01c6\7y\2\2\u01c6\u01c7\7g\2\2\u01c7\u01c8"+
+               
"\7d\2\2\u01c8\u01c9\7u\2\2\u01c9\u01ca\7k\2\2\u01ca\u01cb\7v\2\2\u01cb"+
+               
"\u03e1\7g\2\2\u01cc\u01cd\7e\2\2\u01cd\u01ce\7q\2\2\u01ce\u01cf\7o\2\2"+
+               
"\u01cf\u01d0\7r\2\2\u01d0\u01d1\7a\2\2\u01d1\u01d2\7e\2\2\u01d2\u01d3"+
+               
"\7q\2\2\u01d3\u01d4\7w\2\2\u01d4\u01d5\7p\2\2\u01d5\u01d6\7v\2\2\u01d6"+
+               
"\u01d7\7t\2\2\u01d7\u03e1\7{\2\2\u01d8\u01d9\7e\2\2\u01d9\u01da\7q\2\2"+
+               
"\u01da\u01db\7o\2\2\u01db\u01dc\7r\2\2\u01dc\u01dd\7a\2\2\u01dd\u01de"+
+               
"\7t\2\2\u01de\u01df\7g\2\2\u01df\u01e0\7i\2\2\u01e0\u01e1\7k\2\2\u01e1"+
+               
"\u01e2\7q\2\2\u01e2\u03e1\7p\2\2\u01e3\u01e4\7e\2\2\u01e4\u01e5\7q\2\2"+
+               
"\u01e5\u01e6\7o\2\2\u01e6\u01e7\7r\2\2\u01e7\u01e8\7a\2\2\u01e8\u01e9"+
+               
"\7e\2\2\u01e9\u01ea\7k\2\2\u01ea\u01eb\7v\2\2\u01eb\u03e1\7{\2\2\u01ec"+
+               
"\u01ed\7e\2\2\u01ed\u01ee\7q\2\2\u01ee\u01ef\7o\2\2\u01ef\u01f0\7r\2\2"+
+               
"\u01f0\u01f1\7a\2\2\u01f1\u01f2\7c\2\2\u01f2\u01f3\7f\2\2\u01f3\u01f4"+
+               
"\7f\2\2\u01f4\u03e1\7t\2\2\u01f5\u01f6\7e\2\2\u01f6\u01f7\7q\2\2\u01f7"+
+               
"\u01f8\7o\2\2\u01f8\u01f9\7r\2\2\u01f9\u01fa\7a\2\2\u01fa\u01fb\7r\2\2"+
+               
"\u01fb\u01fc\7q\2\2\u01fc\u01fd\7u\2\2\u01fd\u01fe\7v\2\2\u01fe\u01ff"+
+               
"\7e\2\2\u01ff\u0200\7q\2\2\u0200\u0201\7f\2\2\u0201\u03e1\7g\2\2\u0202"+
+               
"\u0203\7v\2\2\u0203\u0204\7t\2\2\u0204\u0205\7k\2\2\u0205\u03e1\7o\2\2"+
+               
"\u0206\u0207\7u\2\2\u0207\u0208\7v\2\2\u0208\u0209\7t\2\2\u0209\u020a"+
+               
"\7k\2\2\u020a\u03e1\7r\2\2\u020b\u020c\7w\2\2\u020c\u020d\7r\2\2\u020d"+
+               
"\u020e\7r\2\2\u020e\u020f\7g\2\2\u020f\u0210\7t\2\2\u0210\u0211\7e\2\2"+
+               
"\u0211\u0212\7c\2\2\u0212\u0213\7u\2\2\u0213\u03e1\7g\2\2\u0214\u0215"+
+               
"\7n\2\2\u0215\u0216\7q\2\2\u0216\u0217\7y\2\2\u0217\u0218\7g\2\2\u0218"+
+               
"\u0219\7t\2\2\u0219\u021a\7e\2\2\u021a\u021b\7c\2\2\u021b\u021c\7u\2\2"+
+               
"\u021c\u03e1\7g\2\2\u021d\u021e\7k\2\2\u021e\u021f\7u\2\2\u021f\u0220"+
+               
"\7a\2\2\u0220\u0221\7c\2\2\u0221\u0222\7n\2\2\u0222\u0223\7r\2\2\u0223"+
+               
"\u0224\7j\2\2\u0224\u03e1\7c\2\2\u0225\u0226\7k\2\2\u0226\u0227\7u\2\2"+
+               
"\u0227\u0228\7a\2\2\u0228\u0229\7c\2\2\u0229\u022a\7n\2\2\u022a\u022b"+
+               
"\7r\2\2\u022b\u022c\7j\2\2\u022c\u022d\7c\2\2\u022d\u022e\7p\2\2\u022e"+
+               
"\u022f\7w\2\2\u022f\u03e1\7o\2\2\u0230\u0231\7k\2\2\u0231\u0232\7u\2\2"+
+               
"\u0232\u0233\7a\2\2\u0233\u0234\7y\2\2\u0234\u0235\7j\2\2\u0235\u0236"+
+               
"\7k\2\2\u0236\u0237\7v\2\2\u0237\u0238\7g\2\2\u0238\u0239\7u\2\2\u0239"+
+               
"\u023a\7r\2\2\u023a\u023b\7c\2\2\u023b\u023c\7e\2\2\u023c\u03e1\7g\2\2"+
+               
"\u023d\u023e\7k\2\2\u023e\u023f\7u\2\2\u023f\u0240\7a\2\2\u0240\u0241"+
+               
"\7p\2\2\u0241\u0242\7w\2\2\u0242\u03e1\7o\2\2\u0243\u0244\7k\2\2\u0244"+
+               
"\u0245\7u\2\2\u0245\u0246\7a\2\2\u0246\u0247\7p\2\2\u0247\u0248\7w\2\2"+
+               
"\u0248\u0249\7o\2\2\u0249\u024a\7u\2\2\u024a\u024b\7r\2\2\u024b\u024c"+
+               
"\7c\2\2\u024c\u024d\7e\2\2\u024d\u03e1\7g\2\2\u024e\u024f\7k\2\2\u024f"+
+               
"\u0250\7u\2\2\u0250\u0251\7a\2\2\u0251\u0252\7c\2\2\u0252\u0253\7n\2\2"+
+               
"\u0253\u0254\7r\2\2\u0254\u0255\7j\2\2\u0255\u0256\7c\2\2\u0256\u0257"+
+               
"\7u\2\2\u0257\u0258\7r\2\2\u0258\u0259\7c\2\2\u0259\u025a\7e\2\2\u025a"+
+               
"\u03e1\7g\2\2\u025b\u025c\7k\2\2\u025c\u025d\7u\2\2\u025d\u025e\7a\2\2"+
+               
"\u025e\u025f\7c\2\2\u025f\u0260\7n\2\2\u0260\u0261\7r\2\2\u0261\u0262"+
+               
"\7j\2\2\u0262\u0263\7c\2\2\u0263\u0264\7p\2\2\u0264\u0265\7w\2\2\u0265"+
+               
"\u0266\7o\2\2\u0266\u0267\7u\2\2\u0267\u0268\7r\2\2\u0268\u0269\7c\2\2"+
+               
"\u0269\u026a\7e\2\2\u026a\u03e1\7g\2\2\u026b\u026c\7u\2\2\u026c\u026d"+
+               
"\7w\2\2\u026d\u026e\7d\2\2\u026e\u026f\7u\2\2\u026f\u0270\7v\2\2\u0270"+
+               
"\u0271\7t\2\2\u0271\u0272\7k\2\2\u0272\u0273\7p\2\2\u0273\u03e1\7i\2\2"+
+               
"\u0274\u0275\7e\2\2\u0275\u0276\7j\2\2\u0276\u0277\7c\2\2\u0277\u0278"+
+               
"\7t\2\2\u0278\u0279\7C\2\2\u0279\u03e1\7v\2\2\u027a\u027b\7t\2\2\u027b"+
+               
"\u027c\7g\2\2\u027c\u027d\7i\2\2\u027d\u027e\7g\2\2\u027e\u03e1\7z\2\2"+
+               
"\u027f\u0280\7u\2\2\u0280\u0281\7q\2\2\u0281\u0282\7w\2\2\u0282\u0283"+
+               
"\7p\2\2\u0283\u0284\7f\2\2\u0284\u0285\7g\2\2\u0285\u03e1\7z\2\2\u0286"+
+               
"\u0287\7u\2\2\u0287\u0288\7r\2\2\u0288\u0289\7n\2\2\u0289\u028a\7k\2\2"+
+               
"\u028a\u03e1\7v\2\2\u028b\u028c\7u\2\2\u028c\u028d\7r\2\2\u028d\u028e"+
+               
"\7n\2\2\u028e\u028f\7k\2\2\u028f\u0290\7v\2\2\u0290\u0291\7a\2\2\u0291"+
+               
"\u0292\7v\2\2\u0292\u0293\7t\2\2\u0293\u0294\7k\2\2\u0294\u03e1\7o\2\2"+
+               
"\u0295\u0296\7t\2\2\u0296\u0297\7g\2\2\u0297\u0298\7r\2\2\u0298\u0299"+
+               
"\7n\2\2\u0299\u029a\7c\2\2\u029a\u029b\7e\2\2\u029b\u03e1\7g\2\2\u029c"+
+               
"\u029d\7c\2\2\u029d\u029e\7d\2\2\u029e\u03e1\7u\2\2\u029f\u02a0\7e\2\2"+
+               
"\u02a0\u02a1\7g\2\2\u02a1\u02a2\7k\2\2\u02a2\u03e1\7n\2\2\u02a3\u02a4"+
+               
"\7h\2\2\u02a4\u02a5\7n\2\2\u02a5\u02a6\7q\2\2\u02a6\u02a7\7q\2\2\u02a7"+
+               
"\u03e1\7t\2\2\u02a8\u02a9\7t\2\2\u02a9\u02aa\7k\2\2\u02aa\u02ab\7p\2\2"+
+               
"\u02ab\u03e1\7v\2\2\u02ac\u02ad\7t\2\2\u02ad\u02ae\7q\2\2\u02ae\u02af"+
+               
"\7w\2\2\u02af\u02b0\7p\2\2\u02b0\u03e1\7f\2\2\u02b1\u02b2\7u\2\2\u02b2"+
+               
"\u02b3\7k\2\2\u02b3\u02b4\7i\2\2\u02b4\u02b5\7p\2\2\u02b5\u02b6\7w\2\2"+
+               
"\u02b6\u03e1\7o\2\2\u02b7\u02b8\7u\2\2\u02b8\u02b9\7s\2\2\u02b9\u02ba"+
+               
"\7t\2\2\u02ba\u03e1\7v\2\2\u02bb\u02bc\7e\2\2\u02bc\u02bd\7d\2\2\u02bd"+
+               
"\u02be\7t\2\2\u02be\u03e1\7v\2\2\u02bf\u02c0\7r\2\2\u02c0\u03e1\7k\2\2"+
+               
"\u02c1\u02c2\7g\2\2\u02c2\u02c3\7w\2\2\u02c3\u02c4\7n\2\2\u02c4\u02c5"+
+               
"\7g\2\2\u02c5\u03e1\7t\2\2\u02c6\u02c7\7c\2\2\u02c7\u02c8\7e\2\2\u02c8"+
+               
"\u02c9\7q\2\2\u02c9\u03e1\7u\2\2\u02ca\u02cb\7c\2\2\u02cb\u02cc\7u\2\2"+
+               
"\u02cc\u02cd\7k\2\2\u02cd\u03e1\7p\2\2\u02ce\u02cf\7c\2\2\u02cf\u02d0"+
+               
"\7v\2\2\u02d0\u02d1\7c\2\2\u02d1\u03e1\7p\2\2\u02d2\u02d3\7e\2\2\u02d3"+
+               
"\u02d4\7q\2\2\u02d4\u03e1\7u\2\2\u02d5\u02d6\7u\2\2\u02d6\u02d7\7k\2\2"+
+               
"\u02d7\u03e1\7p\2\2\u02d8\u02d9\7v\2\2\u02d9\u02da\7c\2\2\u02da\u03e1"+
+               
"\7p\2\2\u02db\u02dc\7e\2\2\u02dc\u02dd\7q\2\2\u02dd\u02de\7u\2\2\u02de"+
+               
"\u03e1\7j\2\2\u02df\u02e0\7u\2\2\u02e0\u02e1\7k\2\2\u02e1\u02e2\7p\2\2"+
+               
"\u02e2\u03e1\7j\2\2\u02e3\u02e4\7v\2\2\u02e4\u02e5\7c\2\2\u02e5\u02e6"+
+               
"\7p\2\2\u02e6\u03e1\7j\2\2\u02e7\u02e8\7c\2\2\u02e8\u02e9\7v\2\2\u02e9"+
+               
"\u02ea\7p\2\2\u02ea\u03e1\7\64\2\2\u02eb\u02ec\7f\2\2\u02ec\u02ed\7g\2"+
+               
"\2\u02ed\u02ee\7i\2\2\u02ee\u02ef\7t\2\2\u02ef\u02f0\7g\2\2\u02f0\u02f1"+
+               
"\7g\2\2\u02f1\u03e1\7u\2\2\u02f2\u02f3\7t\2\2\u02f3\u02f4\7c\2\2\u02f4"+
+               
"\u02f5\7f\2\2\u02f5\u02f6\7k\2\2\u02f6\u02f7\7c\2\2\u02f7\u02f8\7p\2\2"+
+               
"\u02f8\u03e1\7u\2\2\u02f9\u02fa\7g\2\2\u02fa\u02fb\7z\2\2\u02fb\u03e1"+
+               
"\7r\2\2\u02fc\u02fd\7g\2\2\u02fd\u02fe\7z\2\2\u02fe\u02ff\7r\2\2\u02ff"+
+               
"\u0300\7o\2\2\u0300\u03e1\7\63\2\2\u0301\u0302\7j\2\2\u0302\u0303\7{\2"+
+               
"\2\u0303\u0304\7r\2\2\u0304\u0305\7q\2\2\u0305\u03e1\7v\2\2\u0306\u0307"+
+               
"\7n\2\2\u0307\u0308\7q\2\2\u0308\u03e1\7i\2\2\u0309\u030a\7n\2\2\u030a"+
+               
"\u030b\7q\2\2\u030b\u030c\7i\2\2\u030c\u030d\7\63\2\2\u030d\u03e1\7\62"+
+               
"\2\2\u030e\u030f\7n\2\2\u030f\u0310\7q\2\2\u0310\u0311\7i\2\2\u0311\u0312"+
+               
"\7\63\2\2\u0312\u03e1\7r\2\2\u0313\u0314\7r\2\2\u0314\u0315\7q\2\2\u0315"+
+               
"\u03e1\7y\2\2\u0316\u0317\7t\2\2\u0317\u0318\7c\2\2\u0318\u0319\7p\2\2"+
+               
"\u0319\u03e1\7f\2\2\u031a\u031b\7u\2\2\u031b\u031c\7s\2\2\u031c\u031d"+
+               
"\7w\2\2\u031d\u031e\7c\2\2\u031e\u031f\7t\2\2\u031f\u03e1\7g\2\2\u0320"+
+               
"\u0321\7n\2\2\u0321\u0322\7k\2\2\u0322\u0323\7u\2\2\u0323\u03e1\7v\2\2"+
+               
"\u0324\u0325\7i\2\2\u0325\u0326\7g\2\2\u0326\u03e1\7v\2\2\u0327\u0328"+
+               
"\7j\2\2\u0328\u0329\7c\2\2\u0329\u03e1\7u\2\2\u032a\u032b\7h\2\2\u032b"+
+               
"\u032c\7k\2\2\u032c\u032d\7t\2\2\u032d\u032e\7u\2\2\u032e\u03e1\7v\2\2"+
+               
"\u032f\u0330\7n\2\2\u0330\u0331\7c\2\2\u0331\u0332\7u\2\2\u0332\u03e1"+
+               
"\7v\2\2\u0333\u0334\7m\2\2\u0334\u0335\7g\2\2\u0335\u0336\7{\2\2\u0336"+
+               
"\u03e1\7u\2\2\u0337\u0338\7x\2\2\u0338\u0339\7c\2\2\u0339\u033a\7n\2\2"+
+               
"\u033a\u033b\7w\2\2\u033b\u033c\7g\2\2\u033c\u03e1\7u\2\2\u033d\u033e"+
+               
"\7n\2\2\u033e\u033f\7g\2\2\u033f\u0340\7p\2\2\u0340\u0341\7i\2\2\u0341"+
+               
"\u0342\7v\2\2\u0342\u03e1\7j\2\2\u0343\u0344\7e\2\2\u0344\u0345\7q\2\2"+
+               
"\u0345\u0346\7w\2\2\u0346\u0347\7p\2\2\u0347\u03e1\7v\2\2\u0348\u0349"+
+               
"\7u\2\2\u0349\u034a\7k\2\2\u034a\u034b\7|\2\2\u034b\u03e1\7g\2\2\u034c"+
+               
"\u034d\7u\2\2\u034d\u034e\7q\2\2\u034e\u034f\7t\2\2\u034f\u03e1\7v\2\2"+
+               
"\u0350\u0351\7t\2\2\u0351\u0352\7g\2\2\u0352\u0353\7x\2\2\u0353\u0354"+
+               
"\7g\2\2\u0354\u0355\7t\2\2\u0355\u0356\7u\2\2\u0356\u03e1\7g\2\2\u0357"+
+               
"\u0358\7k\2\2\u0358\u0359\7u\2\2\u0359\u035a\7a\2\2\u035a\u035b\7g\2\2"+
+               
"\u035b\u035c\7o\2\2\u035c\u035d\7r\2\2\u035d\u035e\7v\2\2\u035e\u03e1"+
+               
"\7{\2\2\u035f\u0360\7p\2\2\u0360\u0361\7q\2\2\u0361\u0362\7p\2\2\u0362"+
+               
"\u0363\7a\2\2\u0363\u0364\7g\2\2\u0364\u0365\7o\2\2\u0365\u0366\7r\2\2"+
+               
"\u0366\u0367\7v\2\2\u0367\u03e1\7{\2\2\u0368\u0369\7v\2\2\u0369\u036a"+
+               
"\7q\2\2\u036a\u036b\7a\2\2\u036b\u036c\7u\2\2\u036c\u036d\7v\2\2\u036d"+
+               
"\u036e\7t\2\2\u036e\u036f\7k\2\2\u036f\u0370\7p\2\2\u0370\u03e1\7i\2\2"+
+               
"\u0371\u0372\7c\2\2\u0372\u0373\7x\2\2\u0373\u03e1\7i\2\2\u0374\u0375"+
+               
"\7o\2\2\u0375\u0376\7c\2\2\u0376\u03e1\7z\2\2\u0377\u0378\7o\2\2\u0378"+
+               
"\u0379\7k\2\2\u0379\u03e1\7p\2\2\u037a\u037b\7u\2\2\u037b\u037c\7v\2\2"+
+               
"\u037c\u037d\7f\2\2\u037d\u037e\7g\2\2\u037e\u03e1\7x\2\2\u037f\u0380"+
+               
"\7u\2\2\u0380\u0381\7w\2\2\u0381\u03e1\7o\2\2\u0382\u0383\7{\2\2\u0383"+
+               
"\u0384\7g\2\2\u0384\u0385\7c\2\2\u0385\u03e1\7t\2\2\u0386\u0387\7o\2\2"+
+               
"\u0387\u0388\7q\2\2\u0388\u0389\7p\2\2\u0389\u038a\7v\2\2\u038a\u03e1"+
+               
"\7j\2\2\u038b\u038c\7f\2\2\u038c\u038d\7c\2\2\u038d\u038e\7{\2\2\u038e"+
+               
"\u038f\7a\2\2\u038f\u0390\7q\2\2\u0390\u0391\7h\2\2\u0391\u0392\7a\2\2"+
+               
"\u0392\u0393\7o\2\2\u0393\u0394\7q\2\2\u0394\u0395\7p\2\2\u0395\u0396"+
+               
"\7v\2\2\u0396\u03e1\7j\2\2\u0397\u0398\7f\2\2\u0398\u0399\7c\2\2\u0399"+
+               
"\u039a\7{\2\2\u039a\u039b\7a\2\2\u039b\u039c\7q\2\2\u039c\u039d\7h\2\2"+
+               
"\u039d\u039e\7a\2\2\u039e\u039f\7y\2\2\u039f\u03a0\7g\2\2\u03a0\u03a1"+
+               
"\7g\2\2\u03a1\u03e1\7m\2\2\u03a2\u03a3\7f\2\2\u03a3\u03a4\7c\2\2\u03a4"+
+               
"\u03a5\7{\2\2\u03a5\u03a6\7a\2\2\u03a6\u03a7\7q\2\2\u03a7\u03a8\7h\2\2"+
+               
"\u03a8\u03a9\7a\2\2\u03a9\u03aa\7{\2\2\u03aa\u03ab\7g\2\2\u03ab\u03ac"+
+               
"\7c\2\2\u03ac\u03e1\7t\2\2\u03ad\u03ae\7j\2\2\u03ae\u03af\7q\2\2\u03af"+
+               
"\u03b0\7w\2\2\u03b0\u03e1\7t\2\2\u03b1\u03b2\7o\2\2\u03b2\u03b3\7k\2\2"+
+               
"\u03b3\u03b4\7p\2\2\u03b4\u03b5\7w\2\2\u03b5\u03b6\7v\2\2\u03b6\u03e1"+
+               
"\7g\2\2\u03b7\u03b8\7u\2\2\u03b8\u03b9\7g\2\2\u03b9\u03ba\7e\2\2\u03ba"+
+               
"\u03bb\7q\2\2\u03bb\u03bc\7p\2\2\u03bc\u03e1\7f\2\2\u03bd\u03be\7y\2\2"+
+               
"\u03be\u03bf\7g\2\2\u03bf\u03c0\7g\2\2\u03c0\u03c1\7m\2\2\u03c1\u03c2"+
+               
"\7a\2\2\u03c2\u03c3\7q\2\2\u03c3\u03c4\7h\2\2\u03c4\u03c5\7a\2\2\u03c5"+
+               
"\u03c6\7o\2\2\u03c6\u03c7\7q\2\2\u03c7\u03c8\7p\2\2\u03c8\u03c9\7v\2\2"+
+               
"\u03c9\u03e1\7j\2\2\u03ca\u03cb\7y\2\2\u03cb\u03cc\7g\2\2\u03cc\u03cd"+
+               
"\7g\2\2\u03cd\u03ce\7m\2\2\u03ce\u03cf\7a\2\2\u03cf\u03d0\7q\2\2\u03d0"+
+               
"\u03d1\7h\2\2\u03d1\u03d2\7a\2\2\u03d2\u03d3\7{\2\2\u03d3\u03d4\7g\2\2"+
+               
"\u03d4\u03d5\7c\2\2\u03d5\u03e1\7t\2\2\u03d6\u03d7\7s\2\2\u03d7\u03d8"+
+               
"\7w\2\2\u03d8\u03d9\7c\2\2\u03d9\u03da\7t\2\2\u03da\u03db\7v\2\2\u03db"+
+               
"\u03dc\7g\2\2\u03dc\u03e1\7t\2\2\u03dd\u03de\7p\2\2\u03de\u03df\7q\2\2"+
+               
"\u03df\u03e1\7y\2\2\u03e0\u0092\3\2\2\2\u03e0\u009c\3\2\2\2\u03e0\u00a5"+
+               
"\3\2\2\2\u03e0\u00af\3\2\2\2\u03e0\u00ba\3\2\2\2\u03e0\u00c2\3\2\2\2\u03e0"+
+               
"\u00cb\3\2\2\2\u03e0\u00d7\3\2\2\2\u03e0\u00df\3\2\2\2\u03e0\u00e8\3\2"+
+               
"\2\2\u03e0\u00f1\3\2\2\2\u03e0\u00f5\3\2\2\2\u03e0\u00f7\3\2\2\2\u03e0"+
+               
"\u00f9\3\2\2\2\u03e0\u00fe\3\2\2\2\u03e0\u0107\3\2\2\2\u03e0\u0111\3\2"+
+               
"\2\2\u03e0\u011a\3\2\2\2\u03e0\u0120\3\2\2\2\u03e0\u0126\3\2\2\2\u03e0"+
+               
"\u012b\3\2\2\2\u03e0\u0132\3\2\2\2\u03e0\u013b\3\2\2\2\u03e0\u0142\3\2"+
+               
"\2\2\u03e0\u0148\3\2\2\2\u03e0\u0154\3\2\2\2\u03e0\u015e\3\2\2\2\u03e0"+
+               
"\u0166\3\2\2\2\u03e0\u016f\3\2\2\2\u03e0\u0176\3\2\2\2\u03e0\u0180\3\2"+
+               
"\2\2\u03e0\u018a\3\2\2\2\u03e0\u0194\3\2\2\2\u03e0\u019e\3\2\2\2\u03e0"+
+               
"\u01b0\3\2\2\2\u03e0\u01b7\3\2\2\2\u03e0\u01c0\3\2\2\2\u03e0\u01cc\3\2"+
+               
"\2\2\u03e0\u01d8\3\2\2\2\u03e0\u01e3\3\2\2\2\u03e0\u01ec\3\2\2\2\u03e0"+
+               
"\u01f5\3\2\2\2\u03e0\u0202\3\2\2\2\u03e0\u0206\3\2\2\2\u03e0\u020b\3\2"+
+               
"\2\2\u03e0\u0214\3\2\2\2\u03e0\u021d\3\2\2\2\u03e0\u0225\3\2\2\2\u03e0"+
+               
"\u0230\3\2\2\2\u03e0\u023d\3\2\2\2\u03e0\u0243\3\2\2\2\u03e0\u024e\3\2"+
+               
"\2\2\u03e0\u025b\3\2\2\2\u03e0\u026b\3\2\2\2\u03e0\u0274\3\2\2\2\u03e0"+
+               
"\u027a\3\2\2\2\u03e0\u027f\3\2\2\2\u03e0\u0286\3\2\2\2\u03e0\u028b\3\2"+
+               
"\2\2\u03e0\u0295\3\2\2\2\u03e0\u029c\3\2\2\2\u03e0\u029f\3\2\2\2\u03e0"+
+               
"\u02a3\3\2\2\2\u03e0\u02a8\3\2\2\2\u03e0\u02ac\3\2\2\2\u03e0\u02b1\3\2"+
+               
"\2\2\u03e0\u02b7\3\2\2\2\u03e0\u02bb\3\2\2\2\u03e0\u02bf\3\2\2\2\u03e0"+
+               
"\u02c1\3\2\2\2\u03e0\u02c6\3\2\2\2\u03e0\u02ca\3\2\2\2\u03e0\u02ce\3\2"+
+               
"\2\2\u03e0\u02d2\3\2\2\2\u03e0\u02d5\3\2\2\2\u03e0\u02d8\3\2\2\2\u03e0"+
+               
"\u02db\3\2\2\2\u03e0\u02df\3\2\2\2\u03e0\u02e3\3\2\2\2\u03e0\u02e7\3\2"+
+               
"\2\2\u03e0\u02eb\3\2\2\2\u03e0\u02f2\3\2\2\2\u03e0\u02f9\3\2\2\2\u03e0"+
+               
"\u02fc\3\2\2\2\u03e0\u0301\3\2\2\2\u03e0\u0306\3\2\2\2\u03e0\u0309\3\2"+
+               
"\2\2\u03e0\u030e\3\2\2\2\u03e0\u0313\3\2\2\2\u03e0\u0316\3\2\2\2\u03e0"+
+               
"\u031a\3\2\2\2\u03e0\u0320\3\2\2\2\u03e0\u0324\3\2\2\2\u03e0\u0327\3\2"+
+               
"\2\2\u03e0\u032a\3\2\2\2\u03e0\u032f\3\2\2\2\u03e0\u0333\3\2\2\2\u03e0"+
+               
"\u0337\3\2\2\2\u03e0\u033d\3\2\2\2\u03e0\u0343\3\2\2\2\u03e0\u0348\3\2"+
+               
"\2\2\u03e0\u034c\3\2\2\2\u03e0\u0350\3\2\2\2\u03e0\u0357\3\2\2\2\u03e0"+
+               
"\u035f\3\2\2\2\u03e0\u0368\3\2\2\2\u03e0\u0371\3\2\2\2\u03e0\u0374\3\2"+
+               
"\2\2\u03e0\u0377\3\2\2\2\u03e0\u037a\3\2\2\2\u03e0\u037f\3\2\2\2\u03e0"+
+               
"\u0382\3\2\2\2\u03e0\u0386\3\2\2\2\u03e0\u038b\3\2\2\2\u03e0\u0397\3\2"+
+               
"\2\2\u03e0\u03a2\3\2\2\2\u03e0\u03ad\3\2\2\2\u03e0\u03b1\3\2\2\2\u03e0"+
+               
"\u03b7\3\2\2\2\u03e0\u03bd\3\2\2\2\u03e0\u03ca\3\2\2\2\u03e0\u03d6\3\2"+
+               
"\2\2\u03e0\u03dd\3\2\2\2\u03e1\20\3\2\2\2\u03e2\u03e3\7h\2\2\u03e3\u03e4"+
+               
"\7t\2\2\u03e4\u03e5\7c\2\2\u03e5\u03e6\7i\2\2\u03e6\u03e7\7o\2\2\u03e7"+
+               
"\u03e8\7g\2\2\u03e8\u03e9\7p\2\2\u03e9\u03ea\7v\2\2\u03ea\22\3\2\2\2\u03eb"+
+               
"\u03f1\5\67\34\2\u03ec\u03f0\n\2\2\2\u03ed\u03ee\7^\2\2\u03ee\u03f0\7"+
+               
")\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2\2\u03f0\u03f3\3\2\2\2\u03f1"+
+               
"\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f4\3\2\2\2\u03f3\u03f1\3\2"+
+               
"\2\2\u03f4\u03f5\5\67\34\2\u03f5\24\3\2\2\2\u03f6\u03fc\59\35\2\u03f7"+
+               
"\u03fb\n\3\2\2\u03f8\u03f9\7^\2\2\u03f9\u03fb\7$\2\2\u03fa\u03f7\3\2\2"+
+               
"\2\u03fa\u03f8\3\2\2\2\u03fb\u03fe\3\2\2\2\u03fc\u03fa\3\2\2\2\u03fc\u03fd"+
+               
"\3\2\2\2\u03fd\u03ff\3\2\2\2\u03fe\u03fc\3\2\2\2\u03ff\u0400\59\35\2\u0400"+
+               
"\26\3\2\2\2\u0401\u0402\7v\2\2\u0402\u0403\7t\2\2\u0403\u0404\7w\2\2\u0404"+
+               
"\u040b\7g\2\2\u0405\u0406\7h\2\2\u0406\u0407\7c\2\2\u0407\u0408\7n\2\2"+
+               
"\u0408\u0409\7u\2\2\u0409\u040b\7g\2\2\u040a\u0401\3\2\2\2\u040a\u0405"+
+               
"\3\2\2\2\u040b\30\3\2\2\2\u040c\u040d\7p\2\2\u040d\u040e\7w\2\2\u040e"+
+               
"\u040f\7n\2\2\u040f\u0410\7n\2\2\u0410\32\3\2\2\2\u0411\u0412\7?\2\2\u0412"+
+               
"\u0413\7?\2\2\u0413\34\3\2\2\2\u0414\u0415\7#\2\2\u0415\u0416\7?\2\2\u0416"+
+               "\36\3\2\2\2\u0417\u0418\7@\2\2\u0418\u0419\7?\2\2\u0419 
\3\2\2\2\u041a"+
+               
"\u041b\7>\2\2\u041b\u041c\7?\2\2\u041c\"\3\2\2\2\u041d\u041e\7@\2\2\u041e"+
+               
"$\3\2\2\2\u041f\u0420\7>\2\2\u0420&\3\2\2\2\u0421\u0422\7(\2\2\u0422\u0423"+
+               
"\7(\2\2\u0423(\3\2\2\2\u0424\u0425\7~\2\2\u0425\u0426\7~\2\2\u0426*\3"+
+               
"\2\2\2\u0427\u0428\7~\2\2\u0428,\3\2\2\2\u0429\u042a\7#\2\2\u042a.\3\2"+
+               
"\2\2\u042b\u042c\7*\2\2\u042c\60\3\2\2\2\u042d\u042e\7+\2\2\u042e\62\3"+
+               
"\2\2\2\u042f\u0430\7}\2\2\u0430\64\3\2\2\2\u0431\u0432\7\177\2\2\u0432"+
+               
"\66\3\2\2\2\u0433\u0434\7)\2\2\u04348\3\2\2\2\u0435\u0436\7$\2\2\u0436"+
+               
":\3\2\2\2\u0437\u0438\7\u0080\2\2\u0438<\3\2\2\2\u0439\u043a\7]\2\2\u043a"+
+               
">\3\2\2\2\u043b\u043c\7_\2\2\u043c@\3\2\2\2\u043d\u043e\7%\2\2\u043eB"+
+               
"\3\2\2\2\u043f\u0440\7.\2\2\u0440D\3\2\2\2\u0441\u0442\7<\2\2\u0442F\3"+
+               
"\2\2\2\u0443\u0444\7/\2\2\u0444H\3\2\2\2\u0445\u0446\7\60\2\2\u0446J\3"+
+               
"\2\2\2\u0447\u0448\7a\2\2\u0448L\3\2\2\2\u0449\u044a\7?\2\2\u044aN\3\2"+
+               
"\2\2\u044b\u044c\7-\2\2\u044cP\3\2\2\2\u044d\u044e\7A\2\2\u044eR\3\2\2"+
+               
"\2\u044f\u0450\7,\2\2\u0450T\3\2\2\2\u0451\u0452\7\61\2\2\u0452V\3\2\2"+
+               
"\2\u0453\u0454\7\'\2\2\u0454X\3\2\2\2\u0455\u0456\7&\2\2\u0456Z\3\2\2"+
+               
"\2\u0457\u0460\7\62\2\2\u0458\u045c\t\4\2\2\u0459\u045b\t\5\2\2\u045a"+
+               
"\u0459\3\2\2\2\u045b\u045e\3\2\2\2\u045c\u045a\3\2\2\2\u045c\u045d\3\2"+
+               
"\2\2\u045d\u0460\3\2\2\2\u045e\u045c\3\2\2\2\u045f\u0457\3\2\2\2\u045f"+
+               
"\u0458\3\2\2\2\u0460\\\3\2\2\2\u0461\u0463\5I%\2\u0462\u0464\t\6\2\2\u0463"+
+               
"\u0462\3\2\2\2\u0464\u0465\3\2\2\2\u0465\u0463\3\2\2\2\u0465\u0466\3\2"+
+               
"\2\2\u0466^\3\2\2\2\u0467\u0469\t\7\2\2\u0468\u046a\t\b\2\2\u0469\u0468"+
+               
"\3\2\2\2\u0469\u046a\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u046c\5[.\2\u046c"+
+               
"`\3\2\2\2\u046d\u046e\t\t\2\2\u046eb\3\2\2\2\u046f\u0470\t\n\2\2\u0470"+
+               
"d\3\2\2\2\u0471\u0476\5a\61\2\u0472\u0476\5K&\2\u0473\u0476\5c\62\2\u0474"+
+               
"\u0476\5Y-\2\u0475\u0471\3\2\2\2\u0475\u0472\3\2\2\2\u0475\u0473\3\2\2"+
+               
"\2\u0475\u0474\3\2\2\2\u0476\u0477\3\2\2\2\u0477\u0475\3\2\2\2\u0477\u0478"+
+               
"\3\2\2\2\u0478\u0482\3\2\2\2\u0479\u0481\5a\61\2\u047a\u0481\5Y-\2\u047b"+
+               
"\u0481\5c\62\2\u047c\u0481\t\6\2\2\u047d\u0481\5E#\2\u047e\u0481\5G$\2"+
+               
"\u047f\u0481\5K&\2\u0480\u0479\3\2\2\2\u0480\u047a\3\2\2\2\u0480\u047b"+
+               
"\3\2\2\2\u0480\u047c\3\2\2\2\u0480\u047d\3\2\2\2\u0480\u047e\3\2\2\2\u0480"+
+               
"\u047f\3\2\2\2\u0481\u0484\3\2\2\2\u0482\u0480\3\2\2\2\u0482\u0483\3\2"+
+               
"\2\2\u0483f\3\2\2\2\u0484\u0482\3\2\2\2\u0485\u0486\7\61\2\2\u0486\u0487"+
+               
"\7\61\2\2\u0487\u048b\3\2\2\2\u0488\u048a\n\13\2\2\u0489\u0488\3\2\2\2"+
+               
"\u048a\u048d\3\2\2\2\u048b\u0489\3\2\2\2\u048b\u048c\3\2\2\2\u048c\u048f"+
+               
"\3\2\2\2\u048d\u048b\3\2\2\2\u048e\u0490\7\17\2\2\u048f\u048e\3\2\2\2"+
+               
"\u048f\u0490\3\2\2\2\u0490\u0492\3\2\2\2\u0491\u0493\t\f\2\2\u0492\u0491"+
+               
"\3\2\2\2\u0493\u04a0\3\2\2\2\u0494\u0495\7\61\2\2\u0495\u0496\7,\2\2\u0496"+
+               
"\u049a\3\2\2\2\u0497\u0499\13\2\2\2\u0498\u0497\3\2\2\2\u0499\u049c\3"+
+               
"\2\2\2\u049a\u049b\3\2\2\2\u049a\u0498\3\2\2\2\u049b\u049d\3\2\2\2\u049c"+
+               
"\u049a\3\2\2\2\u049d\u049e\7,\2\2\u049e\u04a0\7\61\2\2\u049f\u0485\3\2"+
+               
"\2\2\u049f\u0494\3\2\2\2\u04a0\u04a1\3\2\2\2\u04a1\u04a2\b\64\2\2\u04a2"+
+               
"h\3\2\2\2\u04a3\u04a5\t\r\2\2\u04a4\u04a3\3\2\2\2\u04a5\u04a6\3\2\2\2"+
+               
"\u04a6\u04a4\3\2\2\2\u04a6\u04a7\3\2\2\2\u04a7\u04a8\3\2\2\2\u04a8\u04a9"+
+               
"\b\65\2\2\u04a9j\3\2\2\2\u04aa\u04ab\13\2\2\2\u04abl\3\2\2\2\27\2\u03e0"+
+               
"\u03ef\u03f1\u03fa\u03fc\u040a\u045c\u045f\u0465\u0469\u0475\u0477\u0480"+
+               "\u0482\u048b\u048f\u0492\u049a\u049f\u04a6\3\b\2\2";
        public static final ATN _ATN =
                new ATNDeserializer().deserialize(_serializedATN.toCharArray());
        static {
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/test_ok.nc
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/test_ok.nc
index 2c1cfcc..0d5214d 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/test_ok.nc
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/dsl/compiler/test_ok.nc
@@ -21,7 +21,7 @@
 
 // Re-usable predicate #1.
 fragment=p1
-    term={id(part(this(), "alias")) == 2}
+    term={id(find_part(token(), "alias")) == 2}
 
 // Intent #1.
 intent=i1
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
index eefaaea..70e4737 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
@@ -37,7 +37,7 @@ class NCNestedTestModel5 extends NCModelAdapter(
         "intent=bigCity " +
         "term(city)={" +
         "    id() == 'cityWrapper' && " +
-        "    get(meta_part(part(this(), 'cityAlias'), 
'nlpcraft:city:citymeta'), 'population') >= 10381222" +
+        "    get(meta_part(part_token(token(), 'cityAlias'), 
'nlpcraft:city:citymeta'), 'population') >= 10381222" +
         "}"
     )
     private def onBigCity(ctx: NCIntentMatch): NCResult = NCResult.text("OK")

Reply via email to