diff --git a/libraries/adaptive-expressions/src/parser/ExpressionAntlrLexer.g4 b/libraries/adaptive-expressions/src/parser/ExpressionAntlrLexer.g4 index 5e62ba181b..300f74c587 100644 --- a/libraries/adaptive-expressions/src/parser/ExpressionAntlrLexer.g4 +++ b/libraries/adaptive-expressions/src/parser/ExpressionAntlrLexer.g4 @@ -59,7 +59,7 @@ NUMBER : DIGIT + ( '.' DIGIT +)? ; WHITESPACE : (' '|'\t'|'\ufeff'|'\u00a0') {this.ignoreWS}? -> skip; -IDENTIFIER : (LETTER | '_' | '#' | '@' | '@@' | '$' | '%') (LETTER | DIGIT | '-' | '_')*; +IDENTIFIER : (LETTER | '_' | '#' | '@' | '@@' | '$' | '%') (LETTER | DIGIT | '_')*; NEWLINE : '\r'? '\n' -> skip; diff --git a/libraries/adaptive-expressions/src/parser/generated/ExpressionAntlrLexer.ts b/libraries/adaptive-expressions/src/parser/generated/ExpressionAntlrLexer.ts index 4b79bf04d3..23207facba 100644 --- a/libraries/adaptive-expressions/src/parser/generated/ExpressionAntlrLexer.ts +++ b/libraries/adaptive-expressions/src/parser/generated/ExpressionAntlrLexer.ts @@ -181,42 +181,42 @@ export class ExpressionAntlrLexer extends Lexer { "\x1C\x02\r\x1E\x02\x0E \x02\x0F\"\x02\x10$\x02\x11&\x02\x12(\x02\x13*" + "\x02\x14,\x02\x15.\x02\x160\x02\x172\x02\x184\x02\x196\x02\x1A8\x02\x1B" + ":\x02\x1C<\x02\x1D>\x02\x1E@\x02\x1FB\x02 D\x02\x02F\x02!H\x02\"J\x02" + - "#\x04\x02\x03\r\x04\x02C\\c|\x03\x022;\x06\x02\v\v\"\"\xA2\xA2\uFF01\uFF01" + - "\x05\x02%%BBaa\x04\x02//aa\x04\x02))^^\x03\x02))\x04\x02$$^^\x03\x02$" + - "$\b\x02\f\f\x0F\x0F$$))}}\x7F\x7F\x04\x02\f\f\x0F\x0F\xFA\x02\b\x03\x02" + - "\x02\x02\x02\n\x03\x02\x02\x02\x02\f\x03\x02\x02\x02\x02\x0E\x03\x02\x02" + - "\x02\x02\x10\x03\x02\x02\x02\x02\x12\x03\x02\x02\x02\x02\x14\x03\x02\x02" + - "\x02\x02\x16\x03\x02\x02\x02\x02\x18\x03\x02\x02\x02\x02\x1A\x03\x02\x02" + - "\x02\x02\x1C\x03\x02\x02\x02\x02\x1E\x03\x02\x02\x02\x02 \x03\x02\x02" + - "\x02\x02\"\x03\x02\x02\x02\x02$\x03\x02\x02\x02\x02&\x03\x02\x02\x02\x02" + - "(\x03\x02\x02\x02\x02*\x03\x02\x02\x02\x02,\x03\x02\x02\x02\x02.\x03\x02" + - "\x02\x02\x020\x03\x02\x02\x02\x022\x03\x02\x02\x02\x024\x03\x02\x02\x02" + - "\x026\x03\x02\x02\x02\x028\x03\x02\x02\x02\x02:\x03\x02\x02\x02\x02<\x03" + - "\x02\x02\x02\x02>\x03\x02\x02\x02\x02@\x03\x02\x02\x02\x02B\x03\x02\x02" + - "\x02\x03D\x03\x02\x02\x02\x03F\x03\x02\x02\x02\x03H\x03\x02\x02\x02\x03" + - "J\x03\x02\x02\x02\x04L\x03\x02\x02\x02\x06N\x03\x02\x02\x02\bP\x03\x02" + - "\x02\x02\nU\x03\x02\x02\x02\fW\x03\x02\x02\x02\x0EY\x03\x02\x02\x02\x10" + - "[\x03\x02\x02\x02\x12]\x03\x02\x02\x02\x14_\x03\x02\x02\x02\x16a\x03\x02" + - "\x02\x02\x18c\x03\x02\x02\x02\x1Aj\x03\x02\x02\x02\x1Cl\x03\x02\x02\x02" + - "\x1En\x03\x02\x02\x02 q\x03\x02\x02\x02\"t\x03\x02\x02\x02$v\x03\x02\x02" + - "\x02&x\x03\x02\x02\x02({\x03\x02\x02\x02*~\x03\x02\x02\x02,\x80\x03\x02" + - "\x02\x02.\x82\x03\x02\x02\x020\x84\x03\x02\x02\x022\x86\x03\x02\x02\x02" + - "4\x88\x03\x02\x02\x026\x8B\x03\x02\x02\x028\x97\x03\x02\x02\x02:\xA1\x03" + - "\x02\x02\x02<\xAC\x03\x02\x02\x02>\xC6\x03\x02\x02\x02@\xC8\x03\x02\x02" + - "\x02B\xD1\x03\x02\x02\x02D\xD3\x03\x02\x02\x02F\xD9\x03\x02\x02\x02H\xE4" + - "\x03\x02\x02\x02J\xE8\x03\x02\x02\x02LM\t\x02\x02\x02M\x05\x03\x02\x02" + - "\x02NO\t\x03\x02\x02O\x07\x03\x02\x02\x02PQ\x07b\x02\x02QR\b\x04\x02\x02" + - "RS\x03\x02\x02\x02ST\b\x04\x03\x02T\t\x03\x02\x02\x02UV\x07-\x02\x02V" + - "\v\x03\x02\x02\x02WX\x07/\x02\x02X\r\x03\x02\x02\x02YZ\x07#\x02\x02Z\x0F" + - "\x03\x02\x02\x02[\\\x07`\x02\x02\\\x11\x03\x02\x02\x02]^\x07,\x02\x02" + - "^\x13\x03\x02\x02\x02_`\x071\x02\x02`\x15\x03\x02\x02\x02ab\x07\'\x02" + - "\x02b\x17\x03\x02\x02\x02cd\x07?\x02\x02de\x07?\x02\x02e\x19\x03\x02\x02" + - "\x02fg\x07#\x02\x02gk\x07?\x02\x02hi\x07>\x02\x02ik\x07@\x02\x02jf\x03" + - "\x02\x02\x02jh\x03\x02\x02\x02k\x1B\x03\x02\x02\x02lm\x07(\x02\x02m\x1D" + - "\x03\x02\x02\x02no\x07(\x02\x02op\x07(\x02\x02p\x1F\x03\x02\x02\x02qr" + - "\x07~\x02\x02rs\x07~\x02\x02s!\x03\x02\x02\x02tu\x07>\x02\x02u#\x03\x02" + - "\x02\x02vw\x07@\x02\x02w%\x03\x02\x02\x02xy\x07>\x02\x02yz\x07?\x02\x02" + - "z\'\x03\x02\x02\x02{|\x07@\x02\x02|}\x07?\x02\x02})\x03\x02\x02\x02~\x7F" + + "#\x04\x02\x03\f\x04\x02C\\c|\x03\x022;\x06\x02\v\v\"\"\xA2\xA2\uFF01\uFF01" + + "\x05\x02%%BBaa\x04\x02))^^\x03\x02))\x04\x02$$^^\x03\x02$$\b\x02\f\f\x0F" + + "\x0F$$))}}\x7F\x7F\x04\x02\f\f\x0F\x0F\xFA\x02\b\x03\x02\x02\x02\x02\n" + + "\x03\x02\x02\x02\x02\f\x03\x02\x02\x02\x02\x0E\x03\x02\x02\x02\x02\x10" + + "\x03\x02\x02\x02\x02\x12\x03\x02\x02\x02\x02\x14\x03\x02\x02\x02\x02\x16" + + "\x03\x02\x02\x02\x02\x18\x03\x02\x02\x02\x02\x1A\x03\x02\x02\x02\x02\x1C" + + "\x03\x02\x02\x02\x02\x1E\x03\x02\x02\x02\x02 \x03\x02\x02\x02\x02\"\x03" + + "\x02\x02\x02\x02$\x03\x02\x02\x02\x02&\x03\x02\x02\x02\x02(\x03\x02\x02" + + "\x02\x02*\x03\x02\x02\x02\x02,\x03\x02\x02\x02\x02.\x03\x02\x02\x02\x02" + + "0\x03\x02\x02\x02\x022\x03\x02\x02\x02\x024\x03\x02\x02\x02\x026\x03\x02" + + "\x02\x02\x028\x03\x02\x02\x02\x02:\x03\x02\x02\x02\x02<\x03\x02\x02\x02" + + "\x02>\x03\x02\x02\x02\x02@\x03\x02\x02\x02\x02B\x03\x02\x02\x02\x03D\x03" + + "\x02\x02\x02\x03F\x03\x02\x02\x02\x03H\x03\x02\x02\x02\x03J\x03\x02\x02" + + "\x02\x04L\x03\x02\x02\x02\x06N\x03\x02\x02\x02\bP\x03\x02\x02\x02\nU\x03" + + "\x02\x02\x02\fW\x03\x02\x02\x02\x0EY\x03\x02\x02\x02\x10[\x03\x02\x02" + + "\x02\x12]\x03\x02\x02\x02\x14_\x03\x02\x02\x02\x16a\x03\x02\x02\x02\x18" + + "c\x03\x02\x02\x02\x1Aj\x03\x02\x02\x02\x1Cl\x03\x02\x02\x02\x1En\x03\x02" + + "\x02\x02 q\x03\x02\x02\x02\"t\x03\x02\x02\x02$v\x03\x02\x02\x02&x\x03" + + "\x02\x02\x02({\x03\x02\x02\x02*~\x03\x02\x02\x02,\x80\x03\x02\x02\x02" + + ".\x82\x03\x02\x02\x020\x84\x03\x02\x02\x022\x86\x03\x02\x02\x024\x88\x03" + + "\x02\x02\x026\x8B\x03\x02\x02\x028\x97\x03\x02\x02\x02:\xA1\x03\x02\x02" + + "\x02<\xAC\x03\x02\x02\x02>\xC6\x03\x02\x02\x02@\xC8\x03\x02\x02\x02B\xD1" + + "\x03\x02\x02\x02D\xD3\x03\x02\x02\x02F\xD9\x03\x02\x02\x02H\xE4\x03\x02" + + "\x02\x02J\xE8\x03\x02\x02\x02LM\t\x02\x02\x02M\x05\x03\x02\x02\x02NO\t" + + "\x03\x02\x02O\x07\x03\x02\x02\x02PQ\x07b\x02\x02QR\b\x04\x02\x02RS\x03" + + "\x02\x02\x02ST\b\x04\x03\x02T\t\x03\x02\x02\x02UV\x07-\x02\x02V\v\x03" + + "\x02\x02\x02WX\x07/\x02\x02X\r\x03\x02\x02\x02YZ\x07#\x02\x02Z\x0F\x03" + + "\x02\x02\x02[\\\x07`\x02\x02\\\x11\x03\x02\x02\x02]^\x07,\x02\x02^\x13" + + "\x03\x02\x02\x02_`\x071\x02\x02`\x15\x03\x02\x02\x02ab\x07\'\x02\x02b" + + "\x17\x03\x02\x02\x02cd\x07?\x02\x02de\x07?\x02\x02e\x19\x03\x02\x02\x02" + + "fg\x07#\x02\x02gk\x07?\x02\x02hi\x07>\x02\x02ik\x07@\x02\x02jf\x03\x02" + + "\x02\x02jh\x03\x02\x02\x02k\x1B\x03\x02\x02\x02lm\x07(\x02\x02m\x1D\x03" + + "\x02\x02\x02no\x07(\x02\x02op\x07(\x02\x02p\x1F\x03\x02\x02\x02qr\x07" + + "~\x02\x02rs\x07~\x02\x02s!\x03\x02\x02\x02tu\x07>\x02\x02u#\x03\x02\x02" + + "\x02vw\x07@\x02\x02w%\x03\x02\x02\x02xy\x07>\x02\x02yz\x07?\x02\x02z\'" + + "\x03\x02\x02\x02{|\x07@\x02\x02|}\x07?\x02\x02})\x03\x02\x02\x02~\x7F" + "\x07*\x02\x02\x7F+\x03\x02\x02\x02\x80\x81\x07+\x02\x02\x81-\x03\x02\x02" + "\x02\x82\x83\x070\x02\x02\x83/\x03\x02\x02\x02\x84\x85\x07]\x02\x02\x85" + "1\x03\x02\x02\x02\x86\x87\x07_\x02\x02\x873\x03\x02\x02\x02\x88\x89\x07" + @@ -231,35 +231,35 @@ export class ExpressionAntlrLexer extends Lexer { "\x9E\x9F\x07B\x02\x02\x9F\xA2\x07B\x02\x02\xA0\xA2\x04&\'\x02\xA1\x9C" + "\x03\x02\x02\x02\xA1\x9D\x03\x02\x02\x02\xA1\x9E\x03\x02\x02\x02\xA1\xA0" + "\x03\x02\x02\x02\xA2\xA8\x03\x02\x02\x02\xA3\xA7\x05\x04\x02\x02\xA4\xA7" + - "\x05\x06\x03\x02\xA5\xA7\t\x06\x02\x02\xA6\xA3\x03\x02\x02\x02\xA6\xA4" + + "\x05\x06\x03\x02\xA5\xA7\x07a\x02\x02\xA6\xA3\x03\x02\x02\x02\xA6\xA4" + "\x03\x02\x02\x02\xA6\xA5\x03\x02\x02\x02\xA7\xAA\x03\x02\x02\x02\xA8\xA6" + "\x03\x02\x02\x02\xA8\xA9\x03\x02\x02\x02\xA9;\x03\x02\x02\x02\xAA\xA8" + "\x03\x02\x02\x02\xAB\xAD\x07\x0F\x02\x02\xAC\xAB\x03\x02\x02\x02\xAC\xAD" + "\x03\x02\x02\x02\xAD\xAE\x03\x02\x02\x02\xAE\xAF\x07\f\x02\x02\xAF\xB0" + "\x03\x02\x02\x02\xB0\xB1\b\x1E\x04\x02\xB1=\x03\x02\x02\x02\xB2\xB8\x07" + - ")\x02\x02\xB3\xB4\x07^\x02\x02\xB4\xB7\t\x07\x02\x02\xB5\xB7\n\b\x02\x02" + - "\xB6\xB3\x03\x02\x02\x02\xB6\xB5\x03\x02\x02\x02\xB7\xBA\x03\x02\x02\x02" + - "\xB8\xB9\x03\x02\x02\x02\xB8\xB6\x03\x02\x02\x02\xB9\xBB\x03\x02\x02\x02" + - "\xBA\xB8\x03\x02\x02\x02\xBB\xC7\x07)\x02\x02\xBC\xC2\x07$\x02\x02\xBD" + - "\xBE\x07^\x02\x02\xBE\xC1\t\t\x02\x02\xBF\xC1\n\n\x02\x02\xC0\xBD\x03" + - "\x02\x02\x02\xC0\xBF\x03\x02\x02\x02\xC1\xC4\x03\x02\x02\x02\xC2\xC3\x03" + - "\x02\x02\x02\xC2\xC0\x03\x02\x02\x02\xC3\xC5\x03\x02\x02\x02\xC4\xC2\x03" + - "\x02\x02\x02\xC5\xC7\x07$\x02\x02\xC6\xB2\x03\x02\x02\x02\xC6\xBC\x03" + - "\x02\x02\x02\xC7?\x03\x02\x02\x02\xC8\xCC\x07}\x02\x02\xC9\xCB\x058\x1C" + - "\x02\xCA\xC9\x03\x02\x02\x02\xCB\xCE\x03\x02\x02\x02\xCC\xCA\x03\x02\x02" + - "\x02\xCC\xCD\x03\x02\x02\x02\xCD\xCF\x03\x02\x02\x02\xCE\xCC\x03\x02\x02" + - "\x02\xCF\xD0\x07\x7F\x02\x02\xD0A\x03\x02\x02\x02\xD1\xD2\v\x02\x02\x02" + - "\xD2C\x03\x02\x02\x02\xD3\xD4\x07b\x02\x02\xD4\xD5\b\"\x05\x02\xD5\xD6" + - "\x03\x02\x02\x02\xD6\xD7\b\"\x06\x02\xD7\xD8\b\"\x07\x02\xD8E\x03\x02" + - "\x02\x02\xD9\xDA\x07&\x02\x02\xDA\xDF\x07}\x02\x02\xDB\xDE\x05>\x1F\x02" + - "\xDC\xDE\n\v\x02\x02\xDD\xDB\x03\x02\x02\x02\xDD\xDC\x03\x02\x02\x02\xDE" + - "\xE1\x03\x02\x02\x02\xDF\xE0\x03\x02\x02\x02\xDF\xDD\x03\x02\x02\x02\xE0" + - "\xE2\x03\x02\x02\x02\xE1\xDF\x03\x02\x02\x02\xE2\xE3\x07\x7F\x02\x02\xE3" + - "G\x03\x02\x02\x02\xE4\xE6\x07^\x02\x02\xE5\xE7\n\f\x02\x02\xE6\xE5\x03" + - "\x02\x02\x02\xE6\xE7\x03\x02\x02\x02\xE7I\x03\x02\x02\x02\xE8\xE9\n\f" + - "\x02\x02\xE9K\x03\x02\x02\x02\x15\x02\x03j\x8D\x93\x95\xA1\xA6\xA8\xAC" + - "\xB6\xB8\xC0\xC2\xC6\xCC\xDD\xDF\xE6\b\x03\x04\x02\x07\x03\x02\b\x02\x02" + - "\x03\"\x03\t\x03\x02\x06\x02\x02"; + ")\x02\x02\xB3\xB4\x07^\x02\x02\xB4\xB7\t\x06\x02\x02\xB5\xB7\n\x07\x02" + + "\x02\xB6\xB3\x03\x02\x02\x02\xB6\xB5\x03\x02\x02\x02\xB7\xBA\x03\x02\x02" + + "\x02\xB8\xB9\x03\x02\x02\x02\xB8\xB6\x03\x02\x02\x02\xB9\xBB\x03\x02\x02" + + "\x02\xBA\xB8\x03\x02\x02\x02\xBB\xC7\x07)\x02\x02\xBC\xC2\x07$\x02\x02" + + "\xBD\xBE\x07^\x02\x02\xBE\xC1\t\b\x02\x02\xBF\xC1\n\t\x02\x02\xC0\xBD" + + "\x03\x02\x02\x02\xC0\xBF\x03\x02\x02\x02\xC1\xC4\x03\x02\x02\x02\xC2\xC3" + + "\x03\x02\x02\x02\xC2\xC0\x03\x02\x02\x02\xC3\xC5\x03\x02\x02\x02\xC4\xC2" + + "\x03\x02\x02\x02\xC5\xC7\x07$\x02\x02\xC6\xB2\x03\x02\x02\x02\xC6\xBC" + + "\x03\x02\x02\x02\xC7?\x03\x02\x02\x02\xC8\xCC\x07}\x02\x02\xC9\xCB\x05" + + "8\x1C\x02\xCA\xC9\x03\x02\x02\x02\xCB\xCE\x03\x02\x02\x02\xCC\xCA\x03" + + "\x02\x02\x02\xCC\xCD\x03\x02\x02\x02\xCD\xCF\x03\x02\x02\x02\xCE\xCC\x03" + + "\x02\x02\x02\xCF\xD0\x07\x7F\x02\x02\xD0A\x03\x02\x02\x02\xD1\xD2\v\x02" + + "\x02\x02\xD2C\x03\x02\x02\x02\xD3\xD4\x07b\x02\x02\xD4\xD5\b\"\x05\x02" + + "\xD5\xD6\x03\x02\x02\x02\xD6\xD7\b\"\x06\x02\xD7\xD8\b\"\x07\x02\xD8E" + + "\x03\x02\x02\x02\xD9\xDA\x07&\x02\x02\xDA\xDF\x07}\x02\x02\xDB\xDE\x05" + + ">\x1F\x02\xDC\xDE\n\n\x02\x02\xDD\xDB\x03\x02\x02\x02\xDD\xDC\x03\x02" + + "\x02\x02\xDE\xE1\x03\x02\x02\x02\xDF\xE0\x03\x02\x02\x02\xDF\xDD\x03\x02" + + "\x02\x02\xE0\xE2\x03\x02\x02\x02\xE1\xDF\x03\x02\x02\x02\xE2\xE3\x07\x7F" + + "\x02\x02\xE3G\x03\x02\x02\x02\xE4\xE6\x07^\x02\x02\xE5\xE7\n\v\x02\x02" + + "\xE6\xE5\x03\x02\x02\x02\xE6\xE7\x03\x02\x02\x02\xE7I\x03\x02\x02\x02" + + "\xE8\xE9\n\v\x02\x02\xE9K\x03\x02\x02\x02\x15\x02\x03j\x8D\x93\x95\xA1" + + "\xA6\xA8\xAC\xB6\xB8\xC0\xC2\xC6\xCC\xDD\xDF\xE6\b\x03\x04\x02\x07\x03" + + "\x02\b\x02\x02\x03\"\x03\t\x03\x02\x06\x02\x02"; public static __ATN: ATN; public static get _ATN(): ATN { if (!ExpressionAntlrLexer.__ATN) { diff --git a/libraries/adaptive-expressions/tests/expressionParser.test.js b/libraries/adaptive-expressions/tests/expressionParser.test.js index 6e22882c49..6b4390354e 100644 --- a/libraries/adaptive-expressions/tests/expressionParser.test.js +++ b/libraries/adaptive-expressions/tests/expressionParser.test.js @@ -41,6 +41,12 @@ const dataSource = [ // Operators tests + ['user.income-user.outcome', -10.0], + ['user.income - user.outcome', -10.0], + ['user.income!=user.outcome', true], + ['user.income != user.outcome', true], + ['user.income==user.outcome', false], + ['user.income == user.outcome', false], ['1 + 2', 3], ['1 +\n 2', 3], ['1 \n+ 2', 3], @@ -654,6 +660,8 @@ const scope = { unixTimestamp: 1521118800, user: { + income: 110.0, + outcome: 120.0, nickname:'John', lists: { diff --git a/libraries/botbuilder-dialogs-adaptive/tests/lg/test.en.lg b/libraries/botbuilder-dialogs-adaptive/tests/lg/test.en.lg index af3ba19795..39445a5774 100644 --- a/libraries/botbuilder-dialogs-adaptive/tests/lg/test.en.lg +++ b/libraries/botbuilder-dialogs-adaptive/tests/lg/test.en.lg @@ -1,26 +1,26 @@ # test - english -# tag1-test2 +# tag1_test2 - tag1 test2 -# tag1-test +# tag1_test - tag1 test -# tag2-test +# tag2_test - tag2 test -# x-property +# x_property - test x -# y-property +# y_property - test y -# z-property +# z_property - test z -# tag2-y-property +# tag2_y_property - test tag2 y -# x-property2 +# x_property2 - test2 x diff --git a/libraries/botbuilder-lg/src/LGFileLexer.g4 b/libraries/botbuilder-lg/src/LGFileLexer.g4 index 5ec3f08bd9..066ff34f64 100644 --- a/libraries/botbuilder-lg/src/LGFileLexer.g4 +++ b/libraries/botbuilder-lg/src/LGFileLexer.g4 @@ -99,7 +99,7 @@ NEWLINE_IN_NAME ; IDENTIFIER - : (LETTER | NUMBER | '_') (LETTER | NUMBER | '-' | '_')* + : (LETTER | NUMBER | '_') (LETTER | NUMBER | '_')* ; DOT diff --git a/libraries/botbuilder-lg/src/generated/LGFileLexer.ts b/libraries/botbuilder-lg/src/generated/LGFileLexer.ts index 4b9e112b8b..676ee177f2 100644 --- a/libraries/botbuilder-lg/src/generated/LGFileLexer.ts +++ b/libraries/botbuilder-lg/src/generated/LGFileLexer.ts @@ -660,250 +660,249 @@ export class LGFileLexer extends Lexer { "\x02\x1Bb\x02\x1Cd\x02\x1Df\x02\x1Eh\x02\x1Fj\x02 l\x02\x02n\x02\x02p" + "\x02\x02r\x02!t\x02\"v\x02#x\x02$z\x02%|\x02&~\x02\'\x80\x02(\x82\x02" + ")\x84\x02*\x86\x02+\x88\x02,\x8A\x02-\x8C\x02.\b\x02\x03\x04\x05\x06\x07" + - "\x1C\x04\x02CCcc\x04\x02EEee\x04\x02FFff\x04\x02GGgg\x04\x02HHhh\x04\x02" + + "\x1B\x04\x02CCcc\x04\x02EEee\x04\x02FFff\x04\x02GGgg\x04\x02HHhh\x04\x02" + "JJjj\x04\x02KKkk\x04\x02NNnn\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02" + "YYyy\x04\x02C\\c|\x06\x02\v\v\"\"\xA2\xA2\uFF01\uFF01\x04\x02))^^\x03" + "\x02))\x04\x02$$^^\x03\x02$$\x04\x02^^bb\x03\x02bb\x06\x02$$))bb\x7F\x7F" + "\x04\x02\f\f\x0F\x0F\x06\x02\f\f\x0F\x0F]]__\x05\x02\f\f\x0F\x0F*+\x04" + - "\x02//aa\x04\x02/0aa\u028C\x020\x03\x02\x02\x02\x022\x03\x02\x02\x02\x02" + - "4\x03\x02\x02\x02\x026\x03\x02\x02\x02\x028\x03\x02\x02\x02\x02:\x03\x02" + - "\x02\x02\x02<\x03\x02\x02\x02\x02>\x03\x02\x02\x02\x02@\x03\x02\x02\x02" + - "\x03B\x03\x02\x02\x02\x03D\x03\x02\x02\x02\x03F\x03\x02\x02\x02\x03H\x03" + - "\x02\x02\x02\x03J\x03\x02\x02\x02\x03L\x03\x02\x02\x02\x03N\x03\x02\x02" + - "\x02\x03P\x03\x02\x02\x02\x04R\x03\x02\x02\x02\x04T\x03\x02\x02\x02\x04" + - "V\x03\x02\x02\x02\x04X\x03\x02\x02\x02\x04Z\x03\x02\x02\x02\x04\\\x03" + - "\x02\x02\x02\x04^\x03\x02\x02\x02\x04`\x03\x02\x02\x02\x04b\x03\x02\x02" + - "\x02\x04d\x03\x02\x02\x02\x04f\x03\x02\x02\x02\x04h\x03\x02\x02\x02\x05" + - "j\x03\x02\x02\x02\x05l\x03\x02\x02\x02\x05n\x03\x02\x02\x02\x05p\x03\x02" + - "\x02\x02\x06r\x03\x02\x02\x02\x06t\x03\x02\x02\x02\x06v\x03\x02\x02\x02" + - "\x06x\x03\x02\x02\x02\x07z\x03\x02\x02\x02\x07|\x03\x02\x02\x02\x07~\x03" + - "\x02\x02\x02\x07\x80\x03\x02\x02\x02\x07\x82\x03\x02\x02\x02\x07\x84\x03" + - "\x02\x02\x02\x07\x86\x03\x02\x02\x02\x07\x88\x03\x02\x02\x02\x07\x8A\x03" + - "\x02\x02\x02\x07\x8C\x03\x02\x02\x02\b\x8E\x03\x02\x02\x02\n\x90\x03\x02" + - "\x02\x02\f\x92\x03\x02\x02\x02\x0E\x94\x03\x02\x02\x02\x10\x96\x03\x02" + - "\x02\x02\x12\x98\x03\x02\x02\x02\x14\x9A\x03\x02\x02\x02\x16\x9C\x03\x02" + - "\x02\x02\x18\x9E\x03\x02\x02\x02\x1A\xA0\x03\x02\x02\x02\x1C\xA2\x03\x02" + - "\x02\x02\x1E\xA4\x03\x02\x02\x02 \xA6\x03\x02\x02\x02\"\xA8\x03\x02\x02" + - "\x02$\xAA\x03\x02\x02\x02&\xAC\x03\x02\x02\x02(\xC9\x03\x02\x02\x02*\xCB" + - "\x03\x02\x02\x02,\xD6\x03\x02\x02\x02.\xE3\x03\x02\x02\x020\xE7\x03\x02" + - "\x02\x022\xF6\x03\x02\x02\x024\u0100\x03\x02\x02\x026\u0107\x03\x02\x02" + - "\x028\u010D\x03\x02\x02\x02:\u0112\x03\x02\x02\x02<\u0118\x03\x02\x02" + - "\x02>\u011D\x03\x02\x02\x02@\u012F\x03\x02\x02\x02B\u0133\x03\x02\x02" + - "\x02D\u013A\x03\x02\x02\x02F\u0145\x03\x02\x02\x02H\u014F\x03\x02\x02" + - "\x02J\u0151\x03\x02\x02\x02L\u0153\x03\x02\x02\x02N\u0155\x03\x02\x02" + - "\x02P\u0158\x03\x02\x02\x02R\u015D\x03\x02\x02\x02T\u0165\x03\x02\x02" + - "\x02V\u016F\x03\x02\x02\x02X\u0177\x03\x02\x02\x02Z\u0183\x03\x02\x02" + - "\x02\\\u0199\x03\x02\x02\x02^\u01A7\x03\x02\x02\x02`\u01B7\x03\x02\x02" + - "\x02b\u01C5\x03\x02\x02\x02d\u01D6\x03\x02\x02\x02f\u01D9\x03\x02\x02" + - "\x02h\u01DD\x03\x02\x02\x02j\u01E3\x03\x02\x02\x02l\u01EB\x03\x02\x02" + - "\x02n\u01EF\x03\x02\x02\x02p\u01F8\x03\x02\x02\x02r\u01FF\x03\x02\x02" + - "\x02t\u0206\x03\x02\x02\x02v\u0212\x03\x02\x02\x02x\u021D\x03\x02\x02" + - "\x02z\u0221\x03\x02\x02\x02|\u0231\x03\x02\x02\x02~\u023A\x03\x02\x02" + - "\x02\x80\u023F\x03\x02\x02\x02\x82\u0249\x03\x02\x02\x02\x84\u0256\x03" + - "\x02\x02\x02\x86\u025A\x03\x02\x02\x02\x88\u025D\x03\x02\x02\x02\x8A\u0260" + - "\x03\x02\x02\x02\x8C\u0264\x03\x02\x02\x02\x8E\x8F\t\x02\x02\x02\x8F\t" + - "\x03\x02\x02\x02\x90\x91\t\x03\x02\x02\x91\v\x03\x02\x02\x02\x92\x93\t" + - "\x04\x02\x02\x93\r\x03\x02\x02\x02\x94\x95\t\x05\x02\x02\x95\x0F\x03\x02" + - "\x02\x02\x96\x97\t\x06\x02\x02\x97\x11\x03\x02\x02\x02\x98\x99\t\x07\x02" + - "\x02\x99\x13\x03\x02\x02\x02\x9A\x9B\t\b\x02\x02\x9B\x15\x03\x02\x02\x02" + - "\x9C\x9D\t\t\x02\x02\x9D\x17\x03\x02\x02\x02\x9E\x9F\t\n\x02\x02\x9F\x19" + - "\x03\x02\x02\x02\xA0\xA1\t\v\x02\x02\xA1\x1B\x03\x02\x02\x02\xA2\xA3\t" + - "\f\x02\x02\xA3\x1D\x03\x02\x02\x02\xA4\xA5\t\r\x02\x02\xA5\x1F\x03\x02" + - "\x02\x02\xA6\xA7\t\x0E\x02\x02\xA7!\x03\x02\x02\x02\xA8\xA9\x042;\x02" + - "\xA9#\x03\x02\x02\x02\xAA\xAB\t\x0F\x02\x02\xAB%\x03\x02\x02\x02\xAC\xB0" + - "\x07}\x02\x02\xAD\xAF\x05$\x10\x02\xAE\xAD\x03\x02\x02\x02\xAF\xB2\x03" + - "\x02\x02\x02\xB0\xAE\x03\x02\x02\x02\xB0\xB1\x03\x02\x02\x02\xB1\xB3\x03" + - "\x02\x02\x02\xB2\xB0\x03\x02\x02\x02\xB3\xB4\x07\x7F\x02\x02\xB4\'\x03" + - "\x02\x02\x02\xB5\xBB\x07)\x02\x02\xB6\xB7\x07^\x02\x02\xB7\xBA\t\x10\x02" + - "\x02\xB8\xBA\n\x11\x02\x02\xB9\xB6\x03\x02\x02\x02\xB9\xB8\x03\x02\x02" + - "\x02\xBA\xBD\x03\x02\x02\x02\xBB\xBC\x03\x02\x02\x02\xBB\xB9\x03\x02\x02" + - "\x02\xBC\xBE\x03\x02\x02\x02\xBD\xBB\x03\x02\x02\x02\xBE\xCA\x07)\x02" + - "\x02\xBF\xC5\x07$\x02\x02\xC0\xC1\x07^\x02\x02\xC1\xC4\t\x12\x02\x02\xC2" + - "\xC4\n\x13\x02\x02\xC3\xC0\x03\x02\x02\x02\xC3\xC2\x03\x02\x02\x02\xC4" + - "\xC7\x03\x02\x02\x02\xC5\xC6\x03\x02\x02\x02\xC5\xC3\x03\x02\x02\x02\xC6" + - "\xC8\x03\x02\x02\x02\xC7\xC5\x03\x02\x02\x02\xC8\xCA\x07$\x02\x02\xC9" + - "\xB5\x03\x02\x02\x02\xC9\xBF\x03\x02\x02\x02\xCA)\x03\x02\x02\x02\xCB" + - "\xD1\x07b\x02\x02\xCC\xCD\x07^\x02\x02\xCD\xD0\t\x14\x02\x02\xCE\xD0\n" + - "\x15\x02\x02\xCF\xCC\x03\x02\x02\x02\xCF\xCE\x03\x02\x02\x02\xD0\xD3\x03" + - "\x02\x02\x02\xD1\xD2\x03\x02\x02\x02\xD1\xCF\x03\x02\x02\x02\xD2\xD4\x03" + - "\x02\x02\x02\xD3\xD1\x03\x02\x02\x02\xD4\xD5\x07b\x02\x02\xD5+\x03\x02" + - "\x02\x02\xD6\xD7\x07&\x02\x02\xD7\xDC\x07}\x02\x02\xD8\xDD\x05(\x12\x02" + - "\xD9\xDD\x05*\x13\x02\xDA\xDD\x05&\x11\x02\xDB\xDD\n\x16\x02\x02\xDC\xD8" + - "\x03\x02\x02\x02\xDC\xD9\x03\x02\x02\x02\xDC\xDA\x03\x02\x02\x02\xDC\xDB" + - "\x03\x02\x02\x02\xDD\xDE\x03\x02\x02\x02\xDE\xDC\x03\x02\x02\x02\xDE\xDF" + - "\x03\x02\x02\x02\xDF\xE1\x03\x02\x02\x02\xE0\xE2\x07\x7F\x02\x02\xE1\xE0" + - "\x03\x02\x02\x02\xE1\xE2\x03\x02\x02\x02\xE2-\x03\x02\x02\x02\xE3\xE5" + - "\x07^\x02\x02\xE4\xE6\n\x17\x02\x02\xE5\xE4\x03\x02\x02\x02\xE5\xE6\x03" + - "\x02\x02\x02\xE6/\x03\x02\x02\x02\xE7\xEB\x07@\x02\x02\xE8\xEA\x05$\x10" + - "\x02\xE9\xE8\x03\x02\x02\x02\xEA\xED\x03\x02\x02\x02\xEB\xE9\x03\x02\x02" + - "\x02\xEB\xEC\x03\x02\x02\x02\xEC\xEE\x03\x02\x02\x02\xED\xEB\x03\x02\x02" + - "\x02\xEE\xEF\x07#\x02\x02\xEF\xF0\x07%\x02\x02\xF0\xF2\x03\x02\x02\x02" + - "\xF1\xF3\n\x17\x02\x02\xF2\xF1\x03\x02\x02\x02\xF3\xF4\x03\x02\x02\x02" + - "\xF4\xF2\x03\x02\x02\x02\xF4\xF5\x03\x02\x02\x02\xF51\x03\x02\x02\x02" + - "\xF6\xFA\x07@\x02\x02\xF7\xF9\n\x17\x02\x02\xF8\xF7\x03\x02\x02\x02\xF9" + - "\xFC\x03\x02\x02\x02\xFA\xF8\x03\x02\x02\x02\xFA\xFB\x03\x02\x02\x02\xFB" + - "\xFD\x03\x02\x02\x02\xFC\xFA\x03\x02\x02\x02\xFD\xFE\b\x17\x02\x02\xFE" + - "3\x03\x02\x02\x02\xFF\u0101\x05$\x10\x02\u0100\xFF\x03\x02\x02\x02\u0101" + - "\u0102\x03\x02\x02\x02\u0102\u0100\x03\x02\x02\x02\u0102\u0103\x03\x02" + - "\x02\x02\u0103\u0104\x03\x02\x02\x02\u0104\u0105\b\x18\x02\x02\u01055" + - "\x03\x02\x02\x02\u0106\u0108\x07\x0F\x02\x02\u0107\u0106\x03\x02\x02\x02" + - "\u0107\u0108\x03\x02\x02\x02\u0108\u0109\x03\x02\x02\x02\u0109\u010A\x07" + - "\f\x02\x02\u010A\u010B\x03\x02\x02\x02\u010B\u010C\b\x19\x02\x02\u010C" + - "7\x03\x02\x02\x02\u010D\u010E\x07%\x02\x02\u010E\u010F\b\x1A\x03\x02\u010F" + - "\u0110\x03\x02\x02\x02\u0110\u0111\b\x1A\x04\x02\u01119\x03\x02\x02\x02" + - "\u0112\u0113\x07/\x02\x02\u0113\u0114\x06\x1B\x02\x02\u0114\u0115\b\x1B" + - "\x05\x02\u0115\u0116\x03\x02\x02\x02\u0116\u0117\b\x1B\x06\x02\u0117;" + - "\x03\x02\x02\x02\u0118\u0119\x07]\x02\x02\u0119\u011A\x06\x1C\x03\x02" + - "\u011A\u011B\x03\x02\x02\x02\u011B\u011C\b\x1C\x07\x02\u011C=\x03\x02" + - "\x02\x02\u011D\u0121\x07]\x02\x02\u011E\u0120\n\x18\x02\x02\u011F\u011E" + - "\x03\x02\x02\x02\u0120\u0123\x03\x02\x02\x02\u0121\u0122\x03\x02\x02\x02" + - "\u0121\u011F\x03\x02\x02\x02\u0122\u0124\x03\x02\x02\x02\u0123\u0121\x03" + - "\x02\x02\x02\u0124\u0125\x07_\x02\x02\u0125\u0129\x07*\x02\x02\u0126\u0128" + - "\n\x19\x02\x02\u0127\u0126\x03\x02\x02\x02\u0128\u012B\x03\x02\x02\x02" + - "\u0129\u012A\x03\x02\x02\x02\u0129\u0127\x03\x02\x02\x02\u012A\u012C\x03" + - "\x02\x02\x02\u012B\u0129\x03\x02\x02\x02\u012C\u012D\x07+\x02\x02\u012D" + - "\u012E\b\x1D\b\x02\u012E?\x03\x02\x02\x02\u012F\u0130\v\x02\x02\x02\u0130" + - "\u0131\b\x1E\t\x02\u0131A\x03\x02\x02\x02\u0132\u0134\x05$\x10\x02\u0133" + - "\u0132\x03\x02\x02\x02\u0134\u0135\x03\x02\x02\x02\u0135\u0133\x03\x02" + - "\x02\x02\u0135\u0136\x03\x02\x02\x02\u0136\u0137\x03\x02\x02\x02\u0137" + - "\u0138\b\x1F\x02\x02\u0138C\x03\x02\x02\x02\u0139\u013B\x07\x0F\x02\x02" + - "\u013A\u0139\x03\x02\x02\x02\u013A\u013B\x03\x02\x02\x02\u013B\u013C\x03" + - "\x02\x02\x02\u013C\u013D\x07\f\x02\x02\u013D\u013E\b \n\x02\u013E\u013F" + - "\x03\x02\x02\x02\u013F\u0140\b \x02\x02\u0140\u0141\b \v\x02\u0141E\x03" + - "\x02\x02\x02\u0142\u0146\x05 \x0E\x02\u0143\u0146\x05\"\x0F\x02\u0144" + - "\u0146\x07a\x02\x02\u0145\u0142\x03\x02\x02\x02\u0145\u0143\x03\x02\x02" + - "\x02\u0145\u0144\x03\x02\x02\x02\u0146\u014C\x03\x02\x02\x02\u0147\u014B" + - "\x05 \x0E\x02\u0148\u014B\x05\"\x0F\x02\u0149\u014B\t\x1A\x02\x02\u014A" + - "\u0147\x03\x02\x02\x02\u014A\u0148\x03\x02\x02\x02\u014A\u0149\x03\x02" + - "\x02\x02\u014B\u014E\x03\x02\x02\x02\u014C\u014A\x03\x02\x02\x02\u014C" + - "\u014D\x03\x02\x02\x02\u014DG\x03\x02\x02\x02\u014E\u014C\x03\x02\x02" + - "\x02\u014F\u0150\x070\x02\x02\u0150I\x03\x02\x02\x02\u0151\u0152\x07*" + - "\x02\x02\u0152K\x03\x02\x02\x02\u0153\u0154\x07+\x02\x02\u0154M\x03\x02" + - "\x02\x02\u0155\u0156\x07.\x02\x02\u0156O\x03\x02\x02\x02\u0157\u0159\n" + - "\x17\x02\x02\u0158\u0157\x03\x02\x02\x02\u0159\u015A\x03\x02\x02\x02\u015A" + - "\u015B\x03\x02\x02\x02\u015A\u0158\x03\x02\x02\x02\u015BQ\x03\x02\x02" + - "\x02\u015C\u015E\x05$\x10\x02\u015D\u015C\x03\x02\x02\x02\u015E\u015F" + - "\x03\x02\x02\x02\u015F\u015D\x03\x02\x02\x02\u015F\u0160\x03\x02\x02\x02" + - "\u0160\u0161\x03\x02\x02\x02\u0161\u0162\x06\'\x04\x02\u0162\u0163\x03" + - "\x02\x02\x02\u0163\u0164\b\'\x02\x02\u0164S\x03\x02\x02\x02\u0165\u0166" + - "\x07b\x02\x02\u0166\u0167\x07b\x02\x02\u0167\u0168\x07b\x02\x02\u0168" + - "\u0169\x03\x02\x02\x02\u0169\u016A\x06(\x05\x02\u016A\u016B\b(\f\x02\u016B" + - "\u016C\x03\x02\x02\x02\u016C\u016D\b(\r\x02\u016DU\x03\x02\x02\x02\u016E" + - "\u0170\x07\x0F\x02\x02\u016F\u016E\x03\x02\x02\x02\u016F\u0170\x03\x02" + - "\x02\x02\u0170\u0171\x03\x02\x02\x02\u0171\u0172\x07\f\x02\x02\u0172\u0173" + - "\b)\x0E\x02\u0173\u0174\x03\x02\x02\x02\u0174\u0175\b)\x02\x02\u0175\u0176" + - "\b)\v\x02\u0176W\x03\x02\x02\x02\u0177\u0178\x05\x14\b\x02\u0178\u017C" + - "\x05\x10\x06\x02\u0179\u017B\x05$\x10\x02\u017A\u0179\x03\x02\x02\x02" + - "\u017B\u017E\x03\x02\x02\x02\u017C\u017A\x03\x02\x02\x02\u017C\u017D\x03" + - "\x02\x02\x02\u017D\u017F\x03\x02\x02\x02\u017E\u017C\x03\x02\x02\x02\u017F" + - "\u0180\x07<\x02\x02\u0180\u0181\x06*\x06\x02\u0181\u0182\b*\x0F\x02\u0182" + - "Y\x03\x02\x02\x02\u0183\u0184\x05\x0E\x05\x02\u0184\u0185\x05\x16\t\x02" + - "\u0185\u0186\x05\x18\n\x02\u0186\u018A\x05\x0E\x05\x02\u0187\u0189\x05" + - "$\x10\x02\u0188\u0187\x03\x02\x02\x02\u0189\u018C\x03\x02\x02\x02\u018A" + - "\u0188\x03\x02\x02\x02\u018A\u018B\x03\x02\x02\x02\u018B\u018D\x03\x02" + - "\x02\x02\u018C\u018A\x03\x02\x02\x02\u018D\u018E\x05\x14\b\x02\u018E\u0192" + - "\x05\x10\x06\x02\u018F\u0191\x05$\x10\x02\u0190\u018F\x03\x02\x02\x02" + - "\u0191\u0194\x03\x02\x02\x02\u0192\u0190\x03\x02\x02\x02\u0192\u0193\x03" + - "\x02\x02\x02\u0193\u0195\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0195" + - "\u0196\x07<\x02\x02\u0196\u0197\x06+\x07\x02\u0197\u0198\b+\x10\x02\u0198" + - "[\x03\x02\x02\x02\u0199\u019A\x05\x0E\x05\x02\u019A\u019B\x05\x16\t\x02" + - "\u019B\u019C\x05\x18\n\x02\u019C\u01A0\x05\x0E\x05\x02\u019D\u019F\x05" + - "$\x10\x02\u019E\u019D\x03\x02\x02\x02\u019F\u01A2\x03\x02\x02\x02\u01A0" + - "\u019E\x03\x02\x02\x02\u01A0\u01A1\x03\x02\x02\x02\u01A1\u01A3\x03\x02" + - "\x02\x02\u01A2\u01A0\x03\x02\x02\x02\u01A3\u01A4\x07<\x02\x02\u01A4\u01A5" + - "\x06,\b\x02\u01A5\u01A6\b,\x11\x02\u01A6]\x03\x02\x02\x02\u01A7\u01A8" + - "\x05\x18\n\x02\u01A8\u01A9\x05\x1E\r\x02\u01A9\u01AA\x05\x14\b\x02\u01AA" + - "\u01AB\x05\x1A\v\x02\u01AB\u01AC\x05\n\x03\x02\u01AC\u01B0\x05\x12\x07" + - "\x02\u01AD\u01AF\x05$\x10\x02\u01AE\u01AD\x03\x02\x02\x02\u01AF\u01B2" + - "\x03\x02\x02\x02\u01B0\u01AE\x03\x02\x02\x02\u01B0\u01B1\x03\x02\x02\x02" + - "\u01B1\u01B3\x03\x02\x02\x02\u01B2\u01B0\x03\x02\x02\x02\u01B3\u01B4\x07" + - "<\x02\x02\u01B4\u01B5\x06-\t\x02\u01B5\u01B6\b-\x12\x02\u01B6_\x03\x02" + - "\x02\x02\u01B7\u01B8\x05\n\x03\x02\u01B8\u01B9\x05\b\x02\x02\u01B9\u01BA" + - "\x05\x18\n\x02\u01BA\u01BE\x05\x0E\x05\x02\u01BB\u01BD\x05$\x10\x02\u01BC" + - "\u01BB\x03\x02\x02\x02\u01BD\u01C0\x03\x02\x02\x02\u01BE\u01BC\x03\x02" + - "\x02\x02\u01BE\u01BF\x03\x02\x02\x02\u01BF\u01C1\x03\x02\x02\x02\u01C0" + - "\u01BE\x03\x02\x02\x02\u01C1\u01C2\x07<\x02\x02\u01C2\u01C3\x06.\n\x02" + - "\u01C3\u01C4\b.\x13\x02\u01C4a\x03\x02\x02\x02\u01C5\u01C6\x05\f\x04\x02" + - "\u01C6\u01C7\x05\x0E\x05\x02\u01C7\u01C8\x05\x10\x06\x02\u01C8\u01C9\x05" + - "\b\x02\x02\u01C9\u01CA\x05\x1C\f\x02\u01CA\u01CB\x05\x16\t\x02\u01CB\u01CF" + - "\x05\x1A\v\x02\u01CC\u01CE\x05$\x10\x02\u01CD\u01CC\x03\x02\x02\x02\u01CE" + - "\u01D1\x03\x02\x02\x02\u01CF\u01CD\x03\x02\x02\x02\u01CF\u01D0\x03\x02" + - "\x02\x02\u01D0\u01D2\x03\x02\x02\x02\u01D1\u01CF\x03\x02\x02\x02\u01D2" + - "\u01D3\x07<\x02\x02\u01D3\u01D4\x06/\v\x02\u01D4\u01D5\b/\x14\x02\u01D5" + - "c\x03\x02\x02\x02\u01D6\u01D7\x05.\x15\x02\u01D7\u01D8\b0\x15\x02\u01D8" + - "e\x03\x02\x02\x02\u01D9\u01DA\x05,\x14\x02\u01DA\u01DB\b1\x16\x02\u01DB" + - "g\x03\x02\x02\x02\u01DC\u01DE\n\x17\x02\x02\u01DD\u01DC\x03\x02\x02\x02" + - "\u01DE\u01DF\x03\x02\x02\x02\u01DF\u01E0\x03\x02\x02\x02\u01DF\u01DD\x03" + - "\x02\x02\x02\u01E0\u01E1\x03\x02\x02\x02\u01E1\u01E2\b2\x17\x02\u01E2" + - "i\x03\x02\x02\x02\u01E3\u01E4\x07b\x02\x02\u01E4\u01E5\x07b\x02\x02\u01E5" + - "\u01E6\x07b\x02\x02\u01E6\u01E7\x03\x02\x02\x02\u01E7\u01E8\b3\x18\x02" + - "\u01E8\u01E9\x03\x02\x02\x02\u01E9\u01EA\b3\v\x02\u01EAk\x03\x02\x02\x02" + - "\u01EB\u01EC\x05.\x15\x02\u01EC\u01ED\x03\x02\x02\x02\u01ED\u01EE\b4\x19" + - "\x02\u01EEm\x03\x02\x02\x02\u01EF\u01F0\x05,\x14\x02\u01F0\u01F1\x03\x02" + - "\x02\x02\u01F1\u01F2\b5\x1A\x02\u01F2o\x03\x02\x02\x02\u01F3\u01F5\x07" + - "\x0F\x02\x02\u01F4\u01F3\x03\x02\x02\x02\u01F4\u01F5\x03\x02\x02\x02\u01F5" + - "\u01F6\x03\x02\x02\x02\u01F6\u01F9\x07\f\x02\x02\u01F7\u01F9\n\x17\x02" + - "\x02\u01F8\u01F4\x03\x02\x02\x02\u01F8\u01F7\x03\x02\x02\x02\u01F9\u01FA" + - "\x03\x02\x02\x02\u01FA\u01FB\x03\x02\x02\x02\u01FA\u01F8\x03\x02\x02\x02" + - "\u01FB\u01FC\x03\x02\x02\x02\u01FC\u01FD\b6\x1B\x02\u01FDq\x03\x02\x02" + - "\x02\u01FE\u0200\x05$\x10\x02\u01FF\u01FE\x03\x02\x02\x02\u0200\u0201" + - "\x03\x02\x02\x02\u0201\u01FF\x03\x02\x02\x02\u0201\u0202\x03\x02\x02\x02" + - "\u0202\u0203\x03\x02\x02\x02\u0203\u0204\b7\x02\x02\u0204s\x03\x02\x02" + - "\x02\u0205\u0207\x07\x0F\x02\x02\u0206\u0205\x03\x02\x02\x02\u0206\u0207" + - "\x03\x02\x02\x02\u0207\u0208\x03\x02\x02\x02\u0208\u0209\x07\f\x02\x02" + - "\u0209\u020A\b8\x1C\x02\u020A\u020B\b8\x1D\x02\u020B\u020C\x03\x02\x02" + - "\x02\u020C\u020D\b8\x02\x02\u020D\u020E\b8\x1E\x02\u020Eu\x03\x02\x02" + - "\x02\u020F\u0213\x05 \x0E\x02\u0210\u0213\x05\"\x0F\x02\u0211\u0213\x07" + - "a\x02\x02\u0212\u020F\x03\x02\x02\x02\u0212\u0210\x03\x02\x02\x02\u0212" + - "\u0211\x03\x02\x02"; + "\x02/0aa\u028C\x020\x03\x02\x02\x02\x022\x03\x02\x02\x02\x024\x03\x02" + + "\x02\x02\x026\x03\x02\x02\x02\x028\x03\x02\x02\x02\x02:\x03\x02\x02\x02" + + "\x02<\x03\x02\x02\x02\x02>\x03\x02\x02\x02\x02@\x03\x02\x02\x02\x03B\x03" + + "\x02\x02\x02\x03D\x03\x02\x02\x02\x03F\x03\x02\x02\x02\x03H\x03\x02\x02" + + "\x02\x03J\x03\x02\x02\x02\x03L\x03\x02\x02\x02\x03N\x03\x02\x02\x02\x03" + + "P\x03\x02\x02\x02\x04R\x03\x02\x02\x02\x04T\x03\x02\x02\x02\x04V\x03\x02" + + "\x02\x02\x04X\x03\x02\x02\x02\x04Z\x03\x02\x02\x02\x04\\\x03\x02\x02\x02" + + "\x04^\x03\x02\x02\x02\x04`\x03\x02\x02\x02\x04b\x03\x02\x02\x02\x04d\x03" + + "\x02\x02\x02\x04f\x03\x02\x02\x02\x04h\x03\x02\x02\x02\x05j\x03\x02\x02" + + "\x02\x05l\x03\x02\x02\x02\x05n\x03\x02\x02\x02\x05p\x03\x02\x02\x02\x06" + + "r\x03\x02\x02\x02\x06t\x03\x02\x02\x02\x06v\x03\x02\x02\x02\x06x\x03\x02" + + "\x02\x02\x07z\x03\x02\x02\x02\x07|\x03\x02\x02\x02\x07~\x03\x02\x02\x02" + + "\x07\x80\x03\x02\x02\x02\x07\x82\x03\x02\x02\x02\x07\x84\x03\x02\x02\x02" + + "\x07\x86\x03\x02\x02\x02\x07\x88\x03\x02\x02\x02\x07\x8A\x03\x02\x02\x02" + + "\x07\x8C\x03\x02\x02\x02\b\x8E\x03\x02\x02\x02\n\x90\x03\x02\x02\x02\f" + + "\x92\x03\x02\x02\x02\x0E\x94\x03\x02\x02\x02\x10\x96\x03\x02\x02\x02\x12" + + "\x98\x03\x02\x02\x02\x14\x9A\x03\x02\x02\x02\x16\x9C\x03\x02\x02\x02\x18" + + "\x9E\x03\x02\x02\x02\x1A\xA0\x03\x02\x02\x02\x1C\xA2\x03\x02\x02\x02\x1E" + + "\xA4\x03\x02\x02\x02 \xA6\x03\x02\x02\x02\"\xA8\x03\x02\x02\x02$\xAA\x03" + + "\x02\x02\x02&\xAC\x03\x02\x02\x02(\xC9\x03\x02\x02\x02*\xCB\x03\x02\x02" + + "\x02,\xD6\x03\x02\x02\x02.\xE3\x03\x02\x02\x020\xE7\x03\x02\x02\x022\xF6" + + "\x03\x02\x02\x024\u0100\x03\x02\x02\x026\u0107\x03\x02\x02\x028\u010D" + + "\x03\x02\x02\x02:\u0112\x03\x02\x02\x02<\u0118\x03\x02\x02\x02>\u011D" + + "\x03\x02\x02\x02@\u012F\x03\x02\x02\x02B\u0133\x03\x02\x02\x02D\u013A" + + "\x03\x02\x02\x02F\u0145\x03\x02\x02\x02H\u014F\x03\x02\x02\x02J\u0151" + + "\x03\x02\x02\x02L\u0153\x03\x02\x02\x02N\u0155\x03\x02\x02\x02P\u0158" + + "\x03\x02\x02\x02R\u015D\x03\x02\x02\x02T\u0165\x03\x02\x02\x02V\u016F" + + "\x03\x02\x02\x02X\u0177\x03\x02\x02\x02Z\u0183\x03\x02\x02\x02\\\u0199" + + "\x03\x02\x02\x02^\u01A7\x03\x02\x02\x02`\u01B7\x03\x02\x02\x02b\u01C5" + + "\x03\x02\x02\x02d\u01D6\x03\x02\x02\x02f\u01D9\x03\x02\x02\x02h\u01DD" + + "\x03\x02\x02\x02j\u01E3\x03\x02\x02\x02l\u01EB\x03\x02\x02\x02n\u01EF" + + "\x03\x02\x02\x02p\u01F8\x03\x02\x02\x02r\u01FF\x03\x02\x02\x02t\u0206" + + "\x03\x02\x02\x02v\u0212\x03\x02\x02\x02x\u021D\x03\x02\x02\x02z\u0221" + + "\x03\x02\x02\x02|\u0231\x03\x02\x02\x02~\u023A\x03\x02\x02\x02\x80\u023F" + + "\x03\x02\x02\x02\x82\u0249\x03\x02\x02\x02\x84\u0256\x03\x02\x02\x02\x86" + + "\u025A\x03\x02\x02\x02\x88\u025D\x03\x02\x02\x02\x8A\u0260\x03\x02\x02" + + "\x02\x8C\u0264\x03\x02\x02\x02\x8E\x8F\t\x02\x02\x02\x8F\t\x03\x02\x02" + + "\x02\x90\x91\t\x03\x02\x02\x91\v\x03\x02\x02\x02\x92\x93\t\x04\x02\x02" + + "\x93\r\x03\x02\x02\x02\x94\x95\t\x05\x02\x02\x95\x0F\x03\x02\x02\x02\x96" + + "\x97\t\x06\x02\x02\x97\x11\x03\x02\x02\x02\x98\x99\t\x07\x02\x02\x99\x13" + + "\x03\x02\x02\x02\x9A\x9B\t\b\x02\x02\x9B\x15\x03\x02\x02\x02\x9C\x9D\t" + + "\t\x02\x02\x9D\x17\x03\x02\x02\x02\x9E\x9F\t\n\x02\x02\x9F\x19\x03\x02" + + "\x02\x02\xA0\xA1\t\v\x02\x02\xA1\x1B\x03\x02\x02\x02\xA2\xA3\t\f\x02\x02" + + "\xA3\x1D\x03\x02\x02\x02\xA4\xA5\t\r\x02\x02\xA5\x1F\x03\x02\x02\x02\xA6" + + "\xA7\t\x0E\x02\x02\xA7!\x03\x02\x02\x02\xA8\xA9\x042;\x02\xA9#\x03\x02" + + "\x02\x02\xAA\xAB\t\x0F\x02\x02\xAB%\x03\x02\x02\x02\xAC\xB0\x07}\x02\x02" + + "\xAD\xAF\x05$\x10\x02\xAE\xAD\x03\x02\x02\x02\xAF\xB2\x03\x02\x02\x02" + + "\xB0\xAE\x03\x02\x02\x02\xB0\xB1\x03\x02\x02\x02\xB1\xB3\x03\x02\x02\x02" + + "\xB2\xB0\x03\x02\x02\x02\xB3\xB4\x07\x7F\x02\x02\xB4\'\x03\x02\x02\x02" + + "\xB5\xBB\x07)\x02\x02\xB6\xB7\x07^\x02\x02\xB7\xBA\t\x10\x02\x02\xB8\xBA" + + "\n\x11\x02\x02\xB9\xB6\x03\x02\x02\x02\xB9\xB8\x03\x02\x02\x02\xBA\xBD" + + "\x03\x02\x02\x02\xBB\xBC\x03\x02\x02\x02\xBB\xB9\x03\x02\x02\x02\xBC\xBE" + + "\x03\x02\x02\x02\xBD\xBB\x03\x02\x02\x02\xBE\xCA\x07)\x02\x02\xBF\xC5" + + "\x07$\x02\x02\xC0\xC1\x07^\x02\x02\xC1\xC4\t\x12\x02\x02\xC2\xC4\n\x13" + + "\x02\x02\xC3\xC0\x03\x02\x02\x02\xC3\xC2\x03\x02\x02\x02\xC4\xC7\x03\x02" + + "\x02\x02\xC5\xC6\x03\x02\x02\x02\xC5\xC3\x03\x02\x02\x02\xC6\xC8\x03\x02" + + "\x02\x02\xC7\xC5\x03\x02\x02\x02\xC8\xCA\x07$\x02\x02\xC9\xB5\x03\x02" + + "\x02\x02\xC9\xBF\x03\x02\x02\x02\xCA)\x03\x02\x02\x02\xCB\xD1\x07b\x02" + + "\x02\xCC\xCD\x07^\x02\x02\xCD\xD0\t\x14\x02\x02\xCE\xD0\n\x15\x02\x02" + + "\xCF\xCC\x03\x02\x02\x02\xCF\xCE\x03\x02\x02\x02\xD0\xD3\x03\x02\x02\x02" + + "\xD1\xD2\x03\x02\x02\x02\xD1\xCF\x03\x02\x02\x02\xD2\xD4\x03\x02\x02\x02" + + "\xD3\xD1\x03\x02\x02\x02\xD4\xD5\x07b\x02\x02\xD5+\x03\x02\x02\x02\xD6" + + "\xD7\x07&\x02\x02\xD7\xDC\x07}\x02\x02\xD8\xDD\x05(\x12\x02\xD9\xDD\x05" + + "*\x13\x02\xDA\xDD\x05&\x11\x02\xDB\xDD\n\x16\x02\x02\xDC\xD8\x03\x02\x02" + + "\x02\xDC\xD9\x03\x02\x02\x02\xDC\xDA\x03\x02\x02\x02\xDC\xDB\x03\x02\x02" + + "\x02\xDD\xDE\x03\x02\x02\x02\xDE\xDC\x03\x02\x02\x02\xDE\xDF\x03\x02\x02" + + "\x02\xDF\xE1\x03\x02\x02\x02\xE0\xE2\x07\x7F\x02\x02\xE1\xE0\x03\x02\x02" + + "\x02\xE1\xE2\x03\x02\x02\x02\xE2-\x03\x02\x02\x02\xE3\xE5\x07^\x02\x02" + + "\xE4\xE6\n\x17\x02\x02\xE5\xE4\x03\x02\x02\x02\xE5\xE6\x03\x02\x02\x02" + + "\xE6/\x03\x02\x02\x02\xE7\xEB\x07@\x02\x02\xE8\xEA\x05$\x10\x02\xE9\xE8" + + "\x03\x02\x02\x02\xEA\xED\x03\x02\x02\x02\xEB\xE9\x03\x02\x02\x02\xEB\xEC" + + "\x03\x02\x02\x02\xEC\xEE\x03\x02\x02\x02\xED\xEB\x03\x02\x02\x02\xEE\xEF" + + "\x07#\x02\x02\xEF\xF0\x07%\x02\x02\xF0\xF2\x03\x02\x02\x02\xF1\xF3\n\x17" + + "\x02\x02\xF2\xF1\x03\x02\x02\x02\xF3\xF4\x03\x02\x02\x02\xF4\xF2\x03\x02" + + "\x02\x02\xF4\xF5\x03\x02\x02\x02\xF51\x03\x02\x02\x02\xF6\xFA\x07@\x02" + + "\x02\xF7\xF9\n\x17\x02\x02\xF8\xF7\x03\x02\x02\x02\xF9\xFC\x03\x02\x02" + + "\x02\xFA\xF8\x03\x02\x02\x02\xFA\xFB\x03\x02\x02\x02\xFB\xFD\x03\x02\x02" + + "\x02\xFC\xFA\x03\x02\x02\x02\xFD\xFE\b\x17\x02\x02\xFE3\x03\x02\x02\x02" + + "\xFF\u0101\x05$\x10\x02\u0100\xFF\x03\x02\x02\x02\u0101\u0102\x03\x02" + + "\x02\x02\u0102\u0100\x03\x02\x02\x02\u0102\u0103\x03\x02\x02\x02\u0103" + + "\u0104\x03\x02\x02\x02\u0104\u0105\b\x18\x02\x02\u01055\x03\x02\x02\x02" + + "\u0106\u0108\x07\x0F\x02\x02\u0107\u0106\x03\x02\x02\x02\u0107\u0108\x03" + + "\x02\x02\x02\u0108\u0109\x03\x02\x02\x02\u0109\u010A\x07\f\x02\x02\u010A" + + "\u010B\x03\x02\x02\x02\u010B\u010C\b\x19\x02\x02\u010C7\x03\x02\x02\x02" + + "\u010D\u010E\x07%\x02\x02\u010E\u010F\b\x1A\x03\x02\u010F\u0110\x03\x02" + + "\x02\x02\u0110\u0111\b\x1A\x04\x02\u01119\x03\x02\x02\x02\u0112\u0113" + + "\x07/\x02\x02\u0113\u0114\x06\x1B\x02\x02\u0114\u0115\b\x1B\x05\x02\u0115" + + "\u0116\x03\x02\x02\x02\u0116\u0117\b\x1B\x06\x02\u0117;\x03\x02\x02\x02" + + "\u0118\u0119\x07]\x02\x02\u0119\u011A\x06\x1C\x03\x02\u011A\u011B\x03" + + "\x02\x02\x02\u011B\u011C\b\x1C\x07\x02\u011C=\x03\x02\x02\x02\u011D\u0121" + + "\x07]\x02\x02\u011E\u0120\n\x18\x02\x02\u011F\u011E\x03\x02\x02\x02\u0120" + + "\u0123\x03\x02\x02\x02\u0121\u0122\x03\x02\x02\x02\u0121\u011F\x03\x02" + + "\x02\x02\u0122\u0124\x03\x02\x02\x02\u0123\u0121\x03\x02\x02\x02\u0124" + + "\u0125\x07_\x02\x02\u0125\u0129\x07*\x02\x02\u0126\u0128\n\x19\x02\x02" + + "\u0127\u0126\x03\x02\x02\x02\u0128\u012B\x03\x02\x02\x02\u0129\u012A\x03" + + "\x02\x02\x02\u0129\u0127\x03\x02\x02\x02\u012A\u012C\x03\x02\x02\x02\u012B" + + "\u0129\x03\x02\x02\x02\u012C\u012D\x07+\x02\x02\u012D\u012E\b\x1D\b\x02" + + "\u012E?\x03\x02\x02\x02\u012F\u0130\v\x02\x02\x02\u0130\u0131\b\x1E\t" + + "\x02\u0131A\x03\x02\x02\x02\u0132\u0134\x05$\x10\x02\u0133\u0132\x03\x02" + + "\x02\x02\u0134\u0135\x03\x02\x02\x02\u0135\u0133\x03\x02\x02\x02\u0135" + + "\u0136\x03\x02\x02\x02\u0136\u0137\x03\x02\x02\x02\u0137\u0138\b\x1F\x02" + + "\x02\u0138C\x03\x02\x02\x02\u0139\u013B\x07\x0F\x02\x02\u013A\u0139\x03" + + "\x02\x02\x02\u013A\u013B\x03\x02\x02\x02\u013B\u013C\x03\x02\x02\x02\u013C" + + "\u013D\x07\f\x02\x02\u013D\u013E\b \n\x02\u013E\u013F\x03\x02\x02\x02" + + "\u013F\u0140\b \x02\x02\u0140\u0141\b \v\x02\u0141E\x03\x02\x02\x02\u0142" + + "\u0146\x05 \x0E\x02\u0143\u0146\x05\"\x0F\x02\u0144\u0146\x07a\x02\x02" + + "\u0145\u0142\x03\x02\x02\x02\u0145\u0143\x03\x02\x02\x02\u0145\u0144\x03" + + "\x02\x02\x02\u0146\u014C\x03\x02\x02\x02\u0147\u014B\x05 \x0E\x02\u0148" + + "\u014B\x05\"\x0F\x02\u0149\u014B\x07a\x02\x02\u014A\u0147\x03\x02\x02" + + "\x02\u014A\u0148\x03\x02\x02\x02\u014A\u0149\x03\x02\x02\x02\u014B\u014E" + + "\x03\x02\x02\x02\u014C\u014A\x03\x02\x02\x02\u014C\u014D\x03\x02\x02\x02" + + "\u014DG\x03\x02\x02\x02\u014E\u014C\x03\x02\x02\x02\u014F\u0150\x070\x02" + + "\x02\u0150I\x03\x02\x02\x02\u0151\u0152\x07*\x02\x02\u0152K\x03\x02\x02" + + "\x02\u0153\u0154\x07+\x02\x02\u0154M\x03\x02\x02\x02\u0155\u0156\x07." + + "\x02\x02\u0156O\x03\x02\x02\x02\u0157\u0159\n\x17\x02\x02\u0158\u0157" + + "\x03\x02\x02\x02\u0159\u015A\x03\x02\x02\x02\u015A\u015B\x03\x02\x02\x02" + + "\u015A\u0158\x03\x02\x02\x02\u015BQ\x03\x02\x02\x02\u015C\u015E\x05$\x10" + + "\x02\u015D\u015C\x03\x02\x02\x02\u015E\u015F\x03\x02\x02\x02\u015F\u015D" + + "\x03\x02\x02\x02\u015F\u0160\x03\x02\x02\x02\u0160\u0161\x03\x02\x02\x02" + + "\u0161\u0162\x06\'\x04\x02\u0162\u0163\x03\x02\x02\x02\u0163\u0164\b\'" + + "\x02\x02\u0164S\x03\x02\x02\x02\u0165\u0166\x07b\x02\x02\u0166\u0167\x07" + + "b\x02\x02\u0167\u0168\x07b\x02\x02\u0168\u0169\x03\x02\x02\x02\u0169\u016A" + + "\x06(\x05\x02\u016A\u016B\b(\f\x02\u016B\u016C\x03\x02\x02\x02\u016C\u016D" + + "\b(\r\x02\u016DU\x03\x02\x02\x02\u016E\u0170\x07\x0F\x02\x02\u016F\u016E" + + "\x03\x02\x02\x02\u016F\u0170\x03\x02\x02\x02\u0170\u0171\x03\x02\x02\x02" + + "\u0171\u0172\x07\f\x02\x02\u0172\u0173\b)\x0E\x02\u0173\u0174\x03\x02" + + "\x02\x02\u0174\u0175\b)\x02\x02\u0175\u0176\b)\v\x02\u0176W\x03\x02\x02" + + "\x02\u0177\u0178\x05\x14\b\x02\u0178\u017C\x05\x10\x06\x02\u0179\u017B" + + "\x05$\x10\x02\u017A\u0179\x03\x02\x02\x02\u017B\u017E\x03\x02\x02\x02" + + "\u017C\u017A\x03\x02\x02\x02\u017C\u017D\x03\x02\x02\x02\u017D\u017F\x03" + + "\x02\x02\x02\u017E\u017C\x03\x02\x02\x02\u017F\u0180\x07<\x02\x02\u0180" + + "\u0181\x06*\x06\x02\u0181\u0182\b*\x0F\x02\u0182Y\x03\x02\x02\x02\u0183" + + "\u0184\x05\x0E\x05\x02\u0184\u0185\x05\x16\t\x02\u0185\u0186\x05\x18\n" + + "\x02\u0186\u018A\x05\x0E\x05\x02\u0187\u0189\x05$\x10\x02\u0188\u0187" + + "\x03\x02\x02\x02\u0189\u018C\x03\x02\x02\x02\u018A\u0188\x03\x02\x02\x02" + + "\u018A\u018B\x03\x02\x02\x02\u018B\u018D\x03\x02\x02\x02\u018C\u018A\x03" + + "\x02\x02\x02\u018D\u018E\x05\x14\b\x02\u018E\u0192\x05\x10\x06\x02\u018F" + + "\u0191\x05$\x10\x02\u0190\u018F\x03\x02\x02\x02\u0191\u0194\x03\x02\x02" + + "\x02\u0192\u0190\x03\x02\x02\x02\u0192\u0193\x03\x02\x02\x02\u0193\u0195" + + "\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0195\u0196\x07<\x02\x02" + + "\u0196\u0197\x06+\x07\x02\u0197\u0198\b+\x10\x02\u0198[\x03\x02\x02\x02" + + "\u0199\u019A\x05\x0E\x05\x02\u019A\u019B\x05\x16\t\x02\u019B\u019C\x05" + + "\x18\n\x02\u019C\u01A0\x05\x0E\x05\x02\u019D\u019F\x05$\x10\x02\u019E" + + "\u019D\x03\x02\x02\x02\u019F\u01A2\x03\x02\x02\x02\u01A0\u019E\x03\x02" + + "\x02\x02\u01A0\u01A1\x03\x02\x02\x02\u01A1\u01A3\x03\x02\x02\x02\u01A2" + + "\u01A0\x03\x02\x02\x02\u01A3\u01A4\x07<\x02\x02\u01A4\u01A5\x06,\b\x02" + + "\u01A5\u01A6\b,\x11\x02\u01A6]\x03\x02\x02\x02\u01A7\u01A8\x05\x18\n\x02" + + "\u01A8\u01A9\x05\x1E\r\x02\u01A9\u01AA\x05\x14\b\x02\u01AA\u01AB\x05\x1A" + + "\v\x02\u01AB\u01AC\x05\n\x03\x02\u01AC\u01B0\x05\x12\x07\x02\u01AD\u01AF" + + "\x05$\x10\x02\u01AE\u01AD\x03\x02\x02\x02\u01AF\u01B2\x03\x02\x02\x02" + + "\u01B0\u01AE\x03\x02\x02\x02\u01B0\u01B1\x03\x02\x02\x02\u01B1\u01B3\x03" + + "\x02\x02\x02\u01B2\u01B0\x03\x02\x02\x02\u01B3\u01B4\x07<\x02\x02\u01B4" + + "\u01B5\x06-\t\x02\u01B5\u01B6\b-\x12\x02\u01B6_\x03\x02\x02\x02\u01B7" + + "\u01B8\x05\n\x03\x02\u01B8\u01B9\x05\b\x02\x02\u01B9\u01BA\x05\x18\n\x02" + + "\u01BA\u01BE\x05\x0E\x05\x02\u01BB\u01BD\x05$\x10\x02\u01BC\u01BB\x03" + + "\x02\x02\x02\u01BD\u01C0\x03\x02\x02\x02\u01BE\u01BC\x03\x02\x02\x02\u01BE" + + "\u01BF\x03\x02\x02\x02\u01BF\u01C1\x03\x02\x02\x02\u01C0\u01BE\x03\x02" + + "\x02\x02\u01C1\u01C2\x07<\x02\x02\u01C2\u01C3\x06.\n\x02\u01C3\u01C4\b" + + ".\x13\x02\u01C4a\x03\x02\x02\x02\u01C5\u01C6\x05\f\x04\x02\u01C6\u01C7" + + "\x05\x0E\x05\x02\u01C7\u01C8\x05\x10\x06\x02\u01C8\u01C9\x05\b\x02\x02" + + "\u01C9\u01CA\x05\x1C\f\x02\u01CA\u01CB\x05\x16\t\x02\u01CB\u01CF\x05\x1A" + + "\v\x02\u01CC\u01CE\x05$\x10\x02\u01CD\u01CC\x03\x02\x02\x02\u01CE\u01D1" + + "\x03\x02\x02\x02\u01CF\u01CD\x03\x02\x02\x02\u01CF\u01D0\x03\x02\x02\x02" + + "\u01D0\u01D2\x03\x02\x02\x02\u01D1\u01CF\x03\x02\x02\x02\u01D2\u01D3\x07" + + "<\x02\x02\u01D3\u01D4\x06/\v\x02\u01D4\u01D5\b/\x14\x02\u01D5c\x03\x02" + + "\x02\x02\u01D6\u01D7\x05.\x15\x02\u01D7\u01D8\b0\x15\x02\u01D8e\x03\x02" + + "\x02\x02\u01D9\u01DA\x05,\x14\x02\u01DA\u01DB\b1\x16\x02\u01DBg\x03\x02" + + "\x02\x02\u01DC\u01DE\n\x17\x02\x02\u01DD\u01DC\x03\x02\x02\x02\u01DE\u01DF" + + "\x03\x02\x02\x02\u01DF\u01E0\x03\x02\x02\x02\u01DF\u01DD\x03\x02\x02\x02" + + "\u01E0\u01E1\x03\x02\x02\x02\u01E1\u01E2\b2\x17\x02\u01E2i\x03\x02\x02" + + "\x02\u01E3\u01E4\x07b\x02\x02\u01E4\u01E5\x07b\x02\x02\u01E5\u01E6\x07" + + "b\x02\x02\u01E6\u01E7\x03\x02\x02\x02\u01E7\u01E8\b3\x18\x02\u01E8\u01E9" + + "\x03\x02\x02\x02\u01E9\u01EA\b3\v\x02\u01EAk\x03\x02\x02\x02\u01EB\u01EC" + + "\x05.\x15\x02\u01EC\u01ED\x03\x02\x02\x02\u01ED\u01EE\b4\x19\x02\u01EE" + + "m\x03\x02\x02\x02\u01EF\u01F0\x05,\x14\x02\u01F0\u01F1\x03\x02\x02\x02" + + "\u01F1\u01F2\b5\x1A\x02\u01F2o\x03\x02\x02\x02\u01F3\u01F5\x07\x0F\x02" + + "\x02\u01F4\u01F3\x03\x02\x02\x02\u01F4\u01F5\x03\x02\x02\x02\u01F5\u01F6" + + "\x03\x02\x02\x02\u01F6\u01F9\x07\f\x02\x02\u01F7\u01F9\n\x17\x02\x02\u01F8" + + "\u01F4\x03\x02\x02\x02\u01F8\u01F7\x03\x02\x02\x02\u01F9\u01FA\x03\x02" + + "\x02\x02\u01FA\u01FB\x03\x02\x02\x02\u01FA\u01F8\x03\x02\x02\x02\u01FB" + + "\u01FC\x03\x02\x02\x02\u01FC\u01FD\b6\x1B\x02\u01FDq\x03\x02\x02\x02\u01FE" + + "\u0200\x05$\x10\x02\u01FF\u01FE\x03\x02\x02\x02\u0200\u0201\x03\x02\x02" + + "\x02\u0201\u01FF\x03\x02\x02\x02\u0201\u0202\x03\x02\x02\x02\u0202\u0203" + + "\x03\x02\x02\x02\u0203\u0204\b7\x02\x02\u0204s\x03\x02\x02\x02\u0205\u0207" + + "\x07\x0F\x02\x02\u0206\u0205\x03\x02\x02\x02\u0206\u0207\x03\x02\x02\x02" + + "\u0207\u0208\x03\x02\x02\x02\u0208\u0209\x07\f\x02\x02\u0209\u020A\b8" + + "\x1C\x02\u020A\u020B\b8\x1D\x02\u020B\u020C\x03\x02\x02\x02\u020C\u020D" + + "\b8\x02\x02\u020D\u020E\b8\x1E\x02\u020Eu\x03\x02\x02\x02\u020F\u0213" + + "\x05 \x0E\x02\u0210\u0213\x05\"\x0F\x02\u0211\u0213\x07a\x02\x02\u0212" + + "\u020F\x03\x02\x02\x02\u0212\u0210\x03\x02\x02\x02\u0212\u0211\x03\x02" + + "\x02\x02\u0213\u0219\x03\x02\x02"; private static readonly _serializedATNSegment1: string = - "\x02\u0213\u0219\x03\x02\x02\x02\u0214\u0218\x05 \x0E\x02\u0215\u0218" + - "\x05\"\x0F\x02\u0216\u0218\t\x1B\x02\x02\u0217\u0214\x03\x02\x02\x02\u0217" + - "\u0215\x03\x02\x02\x02\u0217\u0216\x03\x02\x02\x02\u0218\u021B\x03\x02" + - "\x02\x02\u0219\u0217\x03\x02\x02\x02\u0219\u021A\x03\x02\x02\x02\u021A" + - "w\x03\x02\x02\x02\u021B\u0219\x03\x02\x02\x02\u021C\u021E\n\x17\x02\x02" + - "\u021D\u021C\x03\x02\x02\x02\u021E\u021F\x03\x02\x02\x02\u021F\u0220\x03" + - "\x02\x02\x02\u021F\u021D\x03\x02\x02\x02\u0220y\x03\x02\x02\x02\u0221" + - "\u0225\x07@\x02\x02\u0222\u0224\n\x17\x02\x02\u0223\u0222\x03\x02\x02" + - "\x02\u0224\u0227\x03\x02\x02\x02\u0225\u0223\x03\x02\x02\x02\u0225\u0226" + - "\x03\x02\x02\x02\u0226\u0229\x03\x02\x02\x02\u0227\u0225\x03\x02\x02\x02" + - "\u0228\u022A\x07\x0F\x02\x02\u0229\u0228\x03\x02\x02\x02\u0229\u022A\x03" + - "\x02\x02\x02\u022A\u022B\x03\x02\x02\x02\u022B\u022C\x07\f\x02\x02\u022C" + - "\u022D\x06;\f\x02\u022D\u022E\x03\x02\x02\x02\u022E\u022F\b;\x02\x02\u022F" + - "{\x03\x02\x02\x02\u0230\u0232\x05$\x10\x02\u0231\u0230\x03\x02\x02\x02" + - "\u0232\u0233\x03\x02\x02\x02\u0233\u0231\x03\x02\x02\x02\u0233\u0234\x03" + - "\x02\x02\x02\u0234\u0235\x03\x02\x02\x02\u0235\u0236\x06<\r\x02\u0236" + - "\u0237\x03\x02\x02\x02\u0237\u0238\b<\x02\x02\u0238}\x03\x02\x02\x02\u0239" + - "\u023B\x07\x0F\x02\x02\u023A\u0239\x03\x02\x02\x02\u023A\u023B\x03\x02" + - "\x02\x02\u023B\u023C\x03\x02\x02\x02\u023C\u023D\x07\f\x02\x02\u023D\u023E" + - "\b=\x1F\x02\u023E\x7F\x03\x02\x02\x02\u023F\u0240\x07_\x02\x02\u0240\u0241" + - "\x06>\x0E\x02\u0241\u0242\b> \x02\u0242\u0243\x03\x02\x02\x02\u0243\u0244" + - "\b>\v\x02\u0244\u0245\b>\v\x02\u0245\x81\x03\x02\x02\x02\u0246\u024A\x05" + - " \x0E\x02\u0247\u024A\x05\"\x0F\x02\u0248\u024A\x07a\x02\x02\u0249\u0246" + - "\x03\x02\x02\x02\u0249\u0247\x03\x02\x02\x02\u0249\u0248\x03\x02\x02\x02" + - "\u024A\u0250\x03\x02\x02\x02\u024B\u024F\x05 \x0E\x02\u024C\u024F\x05" + - "\"\x0F\x02\u024D\u024F\t\x1B\x02\x02\u024E\u024B\x03\x02\x02\x02\u024E" + - "\u024C\x03\x02\x02\x02\u024E\u024D\x03\x02\x02\x02\u024F\u0252\x03\x02" + - "\x02\x02\u0250\u024E\x03\x02\x02\x02\u0250\u0251\x03\x02\x02\x02\u0251" + - "\u0253\x03\x02\x02\x02\u0252\u0250\x03\x02\x02\x02\u0253\u0254\x06?\x0F" + - "\x02\u0254\u0255\b?!\x02\u0255\x83\x03\x02\x02\x02\u0256\u0257\x07?\x02" + - "\x02\u0257\u0258\x06@\x10\x02\u0258\u0259\b@\"\x02\u0259\x85\x03\x02\x02" + - "\x02\u025A\u025B\x07~\x02\x02\u025B\u025C\bA#\x02\u025C\x87\x03\x02\x02" + - "\x02\u025D\u025E\x05.\x15\x02\u025E\u025F\bB$\x02\u025F\x89\x03\x02\x02" + - "\x02\u0260\u0261\x05,\x14\x02\u0261\u0262\bC%\x02\u0262\x8B\x03\x02\x02" + - "\x02\u0263\u0265\n\x17\x02\x02\u0264\u0263\x03\x02\x02\x02\u0265\u0266" + - "\x03\x02\x02\x02\u0266\u0267\x03\x02\x02\x02\u0266\u0264\x03\x02\x02\x02" + - "\u0267\u0268\x03\x02\x02\x02\u0268\u0269\bD&\x02\u0269\x8D\x03\x02\x02" + - "\x02<\x02\x03\x04\x05\x06\x07\xB0\xB9\xBB\xC3\xC5\xC9\xCF\xD1\xDC\xDE" + - "\xE1\xE5\xEB\xF4\xFA\u0102\u0107\u0121\u0129\u0135\u013A\u0145\u014A\u014C" + - "\u015A\u015F\u016F\u017C\u018A\u0192\u01A0\u01B0\u01BE\u01CF\u01DF\u01F4" + - "\u01F8\u01FA\u0201\u0206\u0212\u0217\u0219\u021F\u0225\u0229\u0233\u023A" + - "\u0249\u024E\u0250\u0266\'\b\x02\x02\x03\x1A\x02\x07\x03\x02\x03\x1B\x03" + - "\x07\x04\x02\x07\x06\x02\x03\x1D\x04\x03\x1E\x05\x03 \x06\x06\x02\x02" + - "\x03(\x07\x07\x05\x02\x03)\b\x03*\t\x03+\n\x03,\v\x03-\f\x03.\r\x03/\x0E" + - "\x030\x0F\x031\x10\x032\x11\x033\x12\t\x1D\x02\t\x1E\x02\t\x1F\x02\x03" + - "8\x13\x038\x14\x07\x07\x02\x03=\x15\x03>\x16\x03?\x17\x03@\x18\x03A\x19" + - "\x03B\x1A\x03C\x1B\x03D\x1C"; + "\x02\u0214\u0218\x05 \x0E\x02\u0215\u0218\x05\"\x0F\x02\u0216\u0218\t" + + "\x1A\x02\x02\u0217\u0214\x03\x02\x02\x02\u0217\u0215\x03\x02\x02\x02\u0217" + + "\u0216\x03\x02\x02\x02\u0218\u021B\x03\x02\x02\x02\u0219\u0217\x03\x02" + + "\x02\x02\u0219\u021A\x03\x02\x02\x02\u021Aw\x03\x02\x02\x02\u021B\u0219" + + "\x03\x02\x02\x02\u021C\u021E\n\x17\x02\x02\u021D\u021C\x03\x02\x02\x02" + + "\u021E\u021F\x03\x02\x02\x02\u021F\u0220\x03\x02\x02\x02\u021F\u021D\x03" + + "\x02\x02\x02\u0220y\x03\x02\x02\x02\u0221\u0225\x07@\x02\x02\u0222\u0224" + + "\n\x17\x02\x02\u0223\u0222\x03\x02\x02\x02\u0224\u0227\x03\x02\x02\x02" + + "\u0225\u0223\x03\x02\x02\x02\u0225\u0226\x03\x02\x02\x02\u0226\u0229\x03" + + "\x02\x02\x02\u0227\u0225\x03\x02\x02\x02\u0228\u022A\x07\x0F\x02\x02\u0229" + + "\u0228\x03\x02\x02\x02\u0229\u022A\x03\x02\x02\x02\u022A\u022B\x03\x02" + + "\x02\x02\u022B\u022C\x07\f\x02\x02\u022C\u022D\x06;\f\x02\u022D\u022E" + + "\x03\x02\x02\x02\u022E\u022F\b;\x02\x02\u022F{\x03\x02\x02\x02\u0230\u0232" + + "\x05$\x10\x02\u0231\u0230\x03\x02\x02\x02\u0232\u0233\x03\x02\x02\x02" + + "\u0233\u0231\x03\x02\x02\x02\u0233\u0234\x03\x02\x02\x02\u0234\u0235\x03" + + "\x02\x02\x02\u0235\u0236\x06<\r\x02\u0236\u0237\x03\x02\x02\x02\u0237" + + "\u0238\b<\x02\x02\u0238}\x03\x02\x02\x02\u0239\u023B\x07\x0F\x02\x02\u023A" + + "\u0239\x03\x02\x02\x02\u023A\u023B\x03\x02\x02\x02\u023B\u023C\x03\x02" + + "\x02\x02\u023C\u023D\x07\f\x02\x02\u023D\u023E\b=\x1F\x02\u023E\x7F\x03" + + "\x02\x02\x02\u023F\u0240\x07_\x02\x02\u0240\u0241\x06>\x0E\x02\u0241\u0242" + + "\b> \x02\u0242\u0243\x03\x02\x02\x02\u0243\u0244\b>\v\x02\u0244\u0245" + + "\b>\v\x02\u0245\x81\x03\x02\x02\x02\u0246\u024A\x05 \x0E\x02\u0247\u024A" + + "\x05\"\x0F\x02\u0248\u024A\x07a\x02\x02\u0249\u0246\x03\x02\x02\x02\u0249" + + "\u0247\x03\x02\x02\x02\u0249\u0248\x03\x02\x02\x02\u024A\u0250\x03\x02" + + "\x02\x02\u024B\u024F\x05 \x0E\x02\u024C\u024F\x05\"\x0F\x02\u024D\u024F" + + "\t\x1A\x02\x02\u024E\u024B\x03\x02\x02\x02\u024E\u024C\x03\x02\x02\x02" + + "\u024E\u024D\x03\x02\x02\x02\u024F\u0252\x03\x02\x02\x02\u0250\u024E\x03" + + "\x02\x02\x02\u0250\u0251\x03\x02\x02\x02\u0251\u0253\x03\x02\x02\x02\u0252" + + "\u0250\x03\x02\x02\x02\u0253\u0254\x06?\x0F\x02\u0254\u0255\b?!\x02\u0255" + + "\x83\x03\x02\x02\x02\u0256\u0257\x07?\x02\x02\u0257\u0258\x06@\x10\x02" + + "\u0258\u0259\b@\"\x02\u0259\x85\x03\x02\x02\x02\u025A\u025B\x07~\x02\x02" + + "\u025B\u025C\bA#\x02\u025C\x87\x03\x02\x02\x02\u025D\u025E\x05.\x15\x02" + + "\u025E\u025F\bB$\x02\u025F\x89\x03\x02\x02\x02\u0260\u0261\x05,\x14\x02" + + "\u0261\u0262\bC%\x02\u0262\x8B\x03\x02\x02\x02\u0263\u0265\n\x17\x02\x02" + + "\u0264\u0263\x03\x02\x02\x02\u0265\u0266\x03\x02\x02\x02\u0266\u0267\x03" + + "\x02\x02\x02\u0266\u0264\x03\x02\x02\x02\u0267\u0268\x03\x02\x02\x02\u0268" + + "\u0269\bD&\x02\u0269\x8D\x03\x02\x02\x02<\x02\x03\x04\x05\x06\x07\xB0" + + "\xB9\xBB\xC3\xC5\xC9\xCF\xD1\xDC\xDE\xE1\xE5\xEB\xF4\xFA\u0102\u0107\u0121" + + "\u0129\u0135\u013A\u0145\u014A\u014C\u015A\u015F\u016F\u017C\u018A\u0192" + + "\u01A0\u01B0\u01BE\u01CF\u01DF\u01F4\u01F8\u01FA\u0201\u0206\u0212\u0217" + + "\u0219\u021F\u0225\u0229\u0233\u023A\u0249\u024E\u0250\u0266\'\b\x02\x02" + + "\x03\x1A\x02\x07\x03\x02\x03\x1B\x03\x07\x04\x02\x07\x06\x02\x03\x1D\x04" + + "\x03\x1E\x05\x03 \x06\x06\x02\x02\x03(\x07\x07\x05\x02\x03)\b\x03*\t\x03" + + "+\n\x03,\v\x03-\f\x03.\r\x03/\x0E\x030\x0F\x031\x10\x032\x11\x033\x12" + + "\t\x1D\x02\t\x1E\x02\t\x1F\x02\x038\x13\x038\x14\x07\x07\x02\x03=\x15" + + "\x03>\x16\x03?\x17\x03@\x18\x03A\x19\x03B\x1A\x03C\x1B\x03D\x1C"; public static readonly _serializedATN: string = Utils.join( [ LGFileLexer._serializedATNSegment0, diff --git a/libraries/botbuilder-lg/src/templates.ts b/libraries/botbuilder-lg/src/templates.ts index 048c759506..c908bac1e5 100644 --- a/libraries/botbuilder-lg/src/templates.ts +++ b/libraries/botbuilder-lg/src/templates.ts @@ -223,7 +223,7 @@ export class Templates implements Iterable