diff --git a/php.api.phpmodule/manifest.mf b/php.api.phpmodule/manifest.mf --- a/php.api.phpmodule/manifest.mf +++ b/php.api.phpmodule/manifest.mf @@ -1,4 +1,4 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.modules.php.api.phpmodule OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/php/api/phpmodule/resources/Bundle.properties -OpenIDE-Module-Specification-Version: 2.60 +OpenIDE-Module-Specification-Version: 2.61 diff --git a/php.api.phpmodule/src/org/netbeans/modules/php/api/PhpVersion.java b/php.api.phpmodule/src/org/netbeans/modules/php/api/PhpVersion.java --- a/php.api.phpmodule/src/org/netbeans/modules/php/api/PhpVersion.java +++ b/php.api.phpmodule/src/org/netbeans/modules/php/api/PhpVersion.java @@ -55,6 +55,7 @@ "PhpVersion.PHP_56=PHP 5.6", "PhpVersion.PHP_70=PHP 7.0", "PhpVersion.PHP_71=PHP 7.1", + "PhpVersion.PHP_72=PHP 7.2", }) public enum PhpVersion { @@ -88,7 +89,12 @@ * PHP 7.1. * @since 2.60 */ - PHP_71(Bundle.PhpVersion_PHP_71()); + PHP_71(Bundle.PhpVersion_PHP_71()), + /** + * PHP 7.2. + * @since 2.61 + */ + PHP_72(Bundle.PhpVersion_PHP_72()); private final String displayName; private final boolean namespaces; diff --git a/php.editor/nbproject/project.properties b/php.editor/nbproject/project.properties --- a/php.editor/nbproject/project.properties +++ b/php.editor/nbproject/project.properties @@ -41,7 +41,7 @@ nbjavac.ignore.missing.enclosing=**/CUP$ASTPHP5Parser$actions.class javac.compilerargs=-J-Xmx512m nbm.needs.restart=true -spec.version.base=1.75.0 +spec.version.base=1.76.0 release.external/predefined_vars.zip=docs/predefined_vars.zip sigtest.gen.fail.on.error=false diff --git a/php.editor/nbproject/project.xml b/php.editor/nbproject/project.xml --- a/php.editor/nbproject/project.xml +++ b/php.editor/nbproject/project.xml @@ -323,7 +323,7 @@ - 2.60 + 2.61 diff --git a/php.editor/src/org/netbeans/modules/php/editor/completion/CompletionContextFinder.java b/php.editor/src/org/netbeans/modules/php/editor/completion/CompletionContextFinder.java --- a/php.editor/src/org/netbeans/modules/php/editor/completion/CompletionContextFinder.java +++ b/php.editor/src/org/netbeans/modules/php/editor/completion/CompletionContextFinder.java @@ -990,7 +990,8 @@ || id.equals(PHPTokenId.PHP_TYPE_FLOAT) || id.equals(PHPTokenId.PHP_TYPE_INT) || id.equals(PHPTokenId.PHP_TYPE_STRING) - || id.equals(PHPTokenId.PHP_TYPE_VOID); + || id.equals(PHPTokenId.PHP_TYPE_VOID) + || id.equals(PHPTokenId.PHP_TYPE_OBJECT); } private static boolean isComma(Token token) { diff --git a/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java b/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java --- a/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java +++ b/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java @@ -1713,15 +1713,15 @@ formatTokens.add(new FormatToken.IndentToken(ts.offset(), options.indentSize)); if (items.isEmpty()) { addFormatToken(formatTokens); + formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_GROUP_USE_LEFT_BRACE, ts.offset() + ts.token().text().length())); break; } } addFormatToken(formatTokens); } - formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_GROUP_USE_LEFT_BRACE, ts.offset())); - if (!items.isEmpty()) { + formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_GROUP_USE_LEFT_BRACE, ts.offset())); ts.movePrevious(); addListOfNodes(items, FormatToken.Kind.WHITESPACE_IN_GROUP_USE_LIST); } diff --git a/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java b/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java --- a/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java +++ b/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java @@ -577,11 +577,7 @@ countSpaces = indent; } if (templateEdit) { - // #262205 don't add spaces if existing spaces have new lines - if (oldText == null) { - newLines = 0; - countSpaces = 0; - } else { + if (oldText != null) { ws = countExistingWS(oldText); newLines = ws.lines; countSpaces = ws.spaces; diff --git a/php.editor/src/org/netbeans/modules/php/editor/lexer/PHP5ColoringLexer.java b/php.editor/src/org/netbeans/modules/php/editor/lexer/PHP5ColoringLexer.java --- a/php.editor/src/org/netbeans/modules/php/editor/lexer/PHP5ColoringLexer.java +++ b/php.editor/src/org/netbeans/modules/php/editor/lexer/PHP5ColoringLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 17/05/01 14:58 */ +/* The following code was generated by JFlex 1.4.3 on 17/07/11 14:07 */ /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. @@ -53,7 +53,7 @@ /** * This class is a scanner generated by * JFlex 1.4.3 - * on 17/05/01 14:58 from the specification file + * on 17/07/11 14:07 from the specification file * /home/junichi11/hg/web-main/php.editor/tools/Php5ColoringScanner.flex */ public class PHP5ColoringLexer { @@ -103,16 +103,16 @@ * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\16\1\15\2\0\1\21\22\0\1\16\1\32\1\23\1\121"+ - "\1\22\1\36\1\37\1\103\1\104\1\70\1\34\1\31\1\105\1\4"+ - "\1\2\1\35\1\5\1\11\10\1\1\112\1\20\1\33\1\27\1\30"+ - "\1\43\1\42\1\46\1\10\1\73\1\50\1\3\1\7\1\100\1\102"+ - "\1\74\1\114\1\111\1\77\1\107\1\47\1\44\1\75\1\116\1\45"+ - "\1\72\1\76\1\101\1\113\1\110\1\6\1\106\1\13\1\120\1\24"+ - "\1\17\1\41\1\115\1\25\1\57\1\63\1\67\1\65\1\66\1\54"+ - "\1\62\1\102\1\51\1\114\1\111\1\55\1\107\1\52\1\56\1\71"+ - "\1\116\1\61\1\60\1\53\1\101\1\64\1\110\1\6\1\106\1\13"+ - "\1\26\1\40\1\117\1\42\53\13\1\13\12\13\1\13\4\13\1\13"+ + "\11\0\1\16\1\15\2\0\1\21\22\0\1\16\1\32\1\23\1\122"+ + "\1\22\1\36\1\37\1\104\1\105\1\71\1\34\1\31\1\106\1\4"+ + "\1\2\1\35\1\5\1\11\10\1\1\113\1\20\1\33\1\27\1\30"+ + "\1\43\1\42\1\46\1\10\1\74\1\50\1\3\1\7\1\101\1\103"+ + "\1\75\1\115\1\112\1\100\1\110\1\47\1\44\1\76\1\117\1\45"+ + "\1\73\1\77\1\102\1\114\1\111\1\6\1\107\1\13\1\121\1\24"+ + "\1\17\1\41\1\116\1\25\1\57\1\63\1\70\1\65\1\66\1\54"+ + "\1\62\1\103\1\51\1\67\1\112\1\55\1\110\1\52\1\56\1\72"+ + "\1\117\1\61\1\60\1\53\1\102\1\64\1\111\1\6\1\107\1\13"+ + "\1\26\1\40\1\120\1\42\53\13\1\13\12\13\1\13\4\13\1\13"+ "\5\13\27\13\1\13\37\13\1\13\10\13\u01c2\12\4\0\14\12\16\0"+ "\5\12\7\0\1\12\1\0\1\12\201\0\5\12\1\0\2\12\2\0"+ "\4\12\10\0\1\12\1\0\3\12\1\0\1\12\1\0\24\12\1\0"+ @@ -206,7 +206,7 @@ private static final String ZZ_ACTION_PACKED_0 = "\25\0\2\1\1\2\1\3\1\4\1\5\1\6\1\3"+ "\4\5\1\7\1\4\1\10\1\4\1\11\1\12\1\13"+ - "\1\14\14\6\1\4\22\5\1\2\1\4\1\15\2\5"+ + "\1\14\14\6\1\4\23\5\1\2\1\4\1\15\2\5"+ "\1\4\2\5\1\16\1\17\1\20\1\21\1\22\2\21"+ "\1\20\3\21\3\23\1\24\1\23\4\21\1\2\1\21"+ "\2\25\3\2\1\0\1\2\2\26\1\2\1\27\1\30"+ @@ -215,41 +215,41 @@ "\1\43\1\44\1\0\1\3\2\0\6\5\1\45\2\0"+ "\4\5\1\0\1\5\1\0\1\46\2\0\1\21\2\0"+ "\2\6\1\0\1\47\1\50\1\51\1\52\4\5\1\53"+ - "\4\5\1\54\1\5\1\55\32\5\13\0\2\5\1\56"+ + "\4\5\1\54\1\5\1\55\33\5\13\0\2\5\1\56"+ "\1\5\3\0\2\57\2\60\1\61\1\62\1\60\3\0"+ "\1\57\2\60\1\63\1\64\3\0\1\21\2\0\1\65"+ "\2\0\1\66\7\0\1\67\2\0\1\70\1\0\1\71"+ "\2\0\1\72\1\57\1\0\1\73\1\0\1\74\1\75"+ "\1\36\1\76\1\77\3\0\7\5\2\3\1\100\3\5"+ "\1\0\1\5\3\0\4\5\1\101\4\5\1\102\3\5"+ - "\1\103\5\5\1\104\12\5\1\105\14\5\1\106\12\0"+ + "\1\103\5\5\1\104\13\5\1\105\14\5\1\106\12\0"+ "\12\5\3\107\1\110\1\0\1\111\1\0\1\112\1\21"+ "\1\0\1\113\1\0\1\113\1\0\1\114\1\115\1\36"+ "\2\0\1\116\6\5\1\117\1\120\1\121\6\5\4\0"+ - "\1\122\5\5\1\123\11\5\1\124\2\5\1\125\1\126"+ - "\3\5\1\127\1\5\1\130\1\131\4\5\1\132\10\5"+ - "\12\0\13\5\1\110\1\0\1\36\1\133\1\0\3\5"+ - "\1\134\3\5\1\135\1\5\1\136\1\137\1\5\1\140"+ - "\2\141\3\0\3\5\1\142\10\5\1\143\1\5\1\144"+ - "\1\145\1\146\5\5\1\147\1\150\1\5\1\151\1\152"+ - "\1\5\1\153\3\5\1\154\10\0\1\155\1\0\1\156"+ - "\1\157\11\5\1\36\1\0\1\5\1\160\3\5\1\161"+ - "\3\5\3\0\1\162\13\5\1\163\1\164\1\165\1\166"+ - "\4\5\1\167\1\170\5\0\11\5\1\36\1\1\1\171"+ - "\4\5\1\172\1\173\1\5\2\174\1\0\1\175\2\5"+ - "\1\176\1\177\3\5\1\200\5\5\1\201\3\0\3\5"+ - "\1\202\5\5\1\36\1\0\3\5\1\203\1\204\1\0"+ - "\1\5\1\205\5\5\1\206\1\5\1\207\1\210\1\5"+ - "\1\0\1\211\3\5\1\212\3\5\1\36\1\0\2\5"+ - "\1\213\1\42\1\5\1\214\1\215\1\216\3\5\1\217"+ - "\1\0\2\5\1\220\1\221\2\5\1\36\1\0\1\222"+ - "\1\223\1\5\1\224\1\5\1\225\1\226\3\5\1\227"+ - "\1\36\1\0\5\5\1\0\1\230\1\231\1\232\2\5"+ - "\1\0\1\233\1\5\1\0\1\5\1\0\1\234\14\0"+ - "\1\235\1\0"; + "\1\122\5\5\1\123\11\5\1\124\2\5\1\125\1\5"+ + "\1\126\3\5\1\127\1\5\1\130\1\131\4\5\1\132"+ + "\10\5\12\0\13\5\1\110\1\0\1\36\1\133\1\0"+ + "\3\5\1\134\3\5\1\135\1\5\1\136\1\137\1\5"+ + "\1\140\2\141\3\0\3\5\1\142\10\5\1\143\1\5"+ + "\1\144\1\145\1\146\6\5\1\147\1\150\1\5\1\151"+ + "\1\152\1\5\1\153\3\5\1\154\10\0\1\155\1\0"+ + "\1\156\1\157\11\5\1\36\1\0\1\5\1\160\3\5"+ + "\1\161\3\5\3\0\1\162\13\5\1\163\1\164\1\165"+ + "\1\166\1\167\4\5\1\170\1\171\5\0\11\5\1\36"+ + "\1\1\1\172\4\5\1\173\1\174\1\5\2\175\1\0"+ + "\1\176\2\5\1\177\1\200\3\5\1\201\5\5\1\202"+ + "\3\0\3\5\1\203\5\5\1\36\1\0\3\5\1\204"+ + "\1\205\1\0\1\5\1\206\5\5\1\207\1\5\1\210"+ + "\1\211\1\5\1\0\1\212\3\5\1\213\3\5\1\36"+ + "\1\0\2\5\1\214\1\42\1\5\1\215\1\216\1\217"+ + "\3\5\1\220\1\0\2\5\1\221\1\222\2\5\1\36"+ + "\1\0\1\223\1\224\1\5\1\225\1\5\1\226\1\227"+ + "\3\5\1\230\1\36\1\0\5\5\1\0\1\231\1\232"+ + "\1\233\2\5\1\0\1\234\1\5\1\0\1\5\1\0"+ + "\1\235\14\0\1\236\1\0"; private static int [] zzUnpackAction() { - int [] result = new int[729]; + int [] result = new int[735]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -274,101 +274,101 @@ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\122\0\244\0\366\0\u0148\0\u019a\0\u01ec\0\u023e"+ - "\0\u0290\0\u02e2\0\u0334\0\u0386\0\u03d8\0\u042a\0\u047c\0\u04ce"+ - "\0\u0520\0\u0572\0\u05c4\0\u0616\0\u0668\0\u06ba\0\u070c\0\u075e"+ - "\0\u07b0\0\u0802\0\u0854\0\u08a6\0\u08f8\0\u094a\0\u099c\0\u09ee"+ - "\0\u0a40\0\u0a92\0\u075e\0\u075e\0\u0ae4\0\u0b36\0\u075e\0\u075e"+ - "\0\u075e\0\u0b88\0\u0bda\0\u0c2c\0\u0c7e\0\u0cd0\0\u0d22\0\u0d74"+ - "\0\u0dc6\0\u0e18\0\u0e6a\0\u0ebc\0\u075e\0\u0f0e\0\u0f60\0\u0fb2"+ - "\0\u1004\0\u1056\0\u10a8\0\u10fa\0\u114c\0\u119e\0\u11f0\0\u1242"+ - "\0\u1294\0\u12e6\0\u1338\0\u138a\0\u13dc\0\u142e\0\u1480\0\u14d2"+ - "\0\u1524\0\u1576\0\u075e\0\u15c8\0\u161a\0\u166c\0\u16be\0\u1710"+ - "\0\u075e\0\u075e\0\u1762\0\u17b4\0\u075e\0\u1806\0\u1858\0\u18aa"+ - "\0\u18fc\0\u194e\0\u19a0\0\u075e\0\u19f2\0\u1a44\0\u1a96\0\u1ae8"+ - "\0\u1b3a\0\u1b8c\0\u1bde\0\u1c30\0\u1c82\0\u1a44\0\u075e\0\u1cd4"+ - "\0\u1d26\0\u1d78\0\u1dca\0\u1e1c\0\u1e1c\0\u075e\0\u1e6e\0\u1ec0"+ - "\0\u075e\0\u1f12\0\u1f64\0\u075e\0\u075e\0\u1fb6\0\u2008\0\u075e"+ - "\0\u205a\0\u075e\0\u20ac\0\u075e\0\u20fe\0\u2150\0\u21a2\0\u21f4"+ - "\0\u2246\0\u075e\0\u2298\0\u22ea\0\u233c\0\u238e\0\u075e\0\u23e0"+ - "\0\u0668\0\u2432\0\u2484\0\u24d6\0\u2528\0\u257a\0\u25cc\0\u261e"+ - "\0\u2670\0\u26c2\0\u2714\0\u2766\0\u27b8\0\u280a\0\u075e\0\u285c"+ - "\0\u28ae\0\u2900\0\u2952\0\u29a4\0\u29f6\0\u2a48\0\u2a9a\0\u1524"+ - "\0\u2aec\0\u0b36\0\u2b3e\0\u075e\0\u2b90\0\u2be2\0\u2c34\0\u2c86"+ - "\0\u2cd8\0\u2d2a\0\u2d7c\0\u2dce\0\u0a40\0\u2e20\0\u2e72\0\u2ec4"+ - "\0\u2f16\0\u0a40\0\u2f68\0\u2fba\0\u300c\0\u305e\0\u0a40\0\u30b0"+ - "\0\u0a40\0\u3102\0\u3154\0\u31a6\0\u31f8\0\u324a\0\u329c\0\u32ee"+ - "\0\u3340\0\u3392\0\u33e4\0\u3436\0\u3488\0\u34da\0\u352c\0\u357e"+ - "\0\u35d0\0\u3622\0\u3674\0\u36c6\0\u3718\0\u376a\0\u37bc\0\u380e"+ - "\0\u3860\0\u38b2\0\u3904\0\u3956\0\u39a8\0\u39fa\0\u1576\0\u3a4c"+ - "\0\u3a9e\0\u3af0\0\u3b42\0\u3b94\0\u3be6\0\u3c38\0\u3c8a\0\u3cdc"+ - "\0\u075e\0\u3d2e\0\u3d80\0\u1806\0\u3dd2\0\u3e24\0\u3e76\0\u3d80"+ - "\0\u075e\0\u075e\0\u075e\0\u3dd2\0\u3ec8\0\u194e\0\u3f1a\0\u3f6c"+ - "\0\u3ec8\0\u3f1a\0\u075e\0\u075e\0\u3fbe\0\u4010\0\u4062\0\u40b4"+ - "\0\u4106\0\u1cd4\0\u075e\0\u4158\0\u1d26\0\u075e\0\u41aa\0\u1d78"+ - "\0\u1dca\0\u41fc\0\u424e\0\u42a0\0\u1e6e\0\u075e\0\u42f2\0\u1ec0"+ - "\0\u075e\0\u4344\0\u075e\0\u1fb6\0\u4396\0\u075e\0\u43e8\0\u443a"+ - "\0\u075e\0\u448c\0\u075e\0\u075e\0\u44de\0\u4530\0\u075e\0\u4582"+ - "\0\u45d4\0\u2008\0\u4626\0\u4678\0\u46ca\0\u471c\0\u476e\0\u47c0"+ - "\0\u4812\0\u285c\0\u28ae\0\u4864\0\u48b6\0\u4908\0\u495a\0\u49ac"+ - "\0\u49fe\0\u4a50\0\u4aa2\0\u4af4\0\u4b46\0\u4b98\0\u4bea\0\u4c3c"+ - "\0\u0a40\0\u4c8e\0\u4ce0\0\u4d32\0\u4d84\0\u0a40\0\u4dd6\0\u4e28"+ - "\0\u4e7a\0\u4dd6\0\u4ecc\0\u4f1e\0\u4f70\0\u4fc2\0\u5014\0\u0a40"+ - "\0\u5066\0\u50b8\0\u510a\0\u515c\0\u51ae\0\u5200\0\u5252\0\u52a4"+ - "\0\u52f6\0\u5348\0\u0a40\0\u539a\0\u53ec\0\u543e\0\u5490\0\u54e2"+ - "\0\u5534\0\u5586\0\u55d8\0\u562a\0\u567c\0\u56ce\0\u5720\0\u0a40"+ - "\0\u5772\0\u57c4\0\u5816\0\u5868\0\u58ba\0\u590c\0\u595e\0\u59b0"+ - "\0\u5a02\0\u5a54\0\u5aa6\0\u5af8\0\u5b4a\0\u5b9c\0\u5bee\0\u5c40"+ - "\0\u5c92\0\u5ce4\0\u5d36\0\u5d88\0\u075e\0\u1762\0\u18aa\0\u5dda"+ - "\0\u5e2c\0\u075e\0\u5e7e\0\u075e\0\u5ed0\0\u5f22\0\u075e\0\u5f74"+ - "\0\u1e1c\0\u5fc6\0\u075e\0\u075e\0\u6018\0\u606a\0\u60bc\0\u0a40"+ - "\0\u610e\0\u6160\0\u61b2\0\u6204\0\u6256\0\u62a8\0\u62fa\0\u0a40"+ - "\0\u0a40\0\u634c\0\u639e\0\u63f0\0\u6442\0\u6494\0\u64e6\0\u6538"+ - "\0\u658a\0\u65dc\0\u662e\0\u4af4\0\u6680\0\u66d2\0\u6724\0\u6776"+ - "\0\u67c8\0\u0a40\0\u681a\0\u686c\0\u68be\0\u6910\0\u6962\0\u69b4"+ - "\0\u6a06\0\u6a58\0\u6aaa\0\u0a40\0\u6afc\0\u6b4e\0\u0a40\0\u0a40"+ - "\0\u6ba0\0\u6bf2\0\u6c44\0\u0a40\0\u6c96\0\u0a40\0\u0a40\0\u6ce8"+ - "\0\u6d3a\0\u6d8c\0\u6dde\0\u0a40\0\u6e30\0\u6e82\0\u6ed4\0\u6f26"+ - "\0\u6f78\0\u6fca\0\u701c\0\u706e\0\u70c0\0\u7112\0\u7164\0\u71b6"+ - "\0\u7208\0\u725a\0\u72ac\0\u72fe\0\u7350\0\u73a2\0\u73f4\0\u7446"+ - "\0\u7498\0\u74ea\0\u753c\0\u758e\0\u75e0\0\u7632\0\u7684\0\u76d6"+ - "\0\u7728\0\u075e\0\u777a\0\u77cc\0\u075e\0\u781e\0\u7870\0\u78c2"+ - "\0\u7914\0\u0a40\0\u7966\0\u79b8\0\u7a0a\0\u0a40\0\u7a5c\0\u0a40"+ - "\0\u7aae\0\u7b00\0\u0a40\0\u075e\0\u7b52\0\u7ba4\0\u7bf6\0\u7c48"+ - "\0\u7c9a\0\u7cec\0\u7d3e\0\u0a40\0\u7d90\0\u7de2\0\u7e34\0\u7e86"+ - "\0\u7ed8\0\u7f2a\0\u7f7c\0\u7fce\0\u0a40\0\u8020\0\u0a40\0\u0a40"+ - "\0\u0a40\0\u8072\0\u80c4\0\u8116\0\u8168\0\u81ba\0\u0a40\0\u0a40"+ - "\0\u820c\0\u0a40\0\u0a40\0\u825e\0\u0a40\0\u82b0\0\u8302\0\u8354"+ - "\0\u0a40\0\u83a6\0\u83f8\0\u844a\0\u849c\0\u84ee\0\u8540\0\u8592"+ - "\0\u85e4\0\u075e\0\u8636\0\u8688\0\u0a40\0\u86da\0\u872c\0\u877e"+ - "\0\u87d0\0\u8822\0\u8874\0\u88c6\0\u8918\0\u896a\0\u89bc\0\u8a0e"+ - "\0\u8a60\0\u8ab2\0\u8b04\0\u8b56\0\u8ba8\0\u0a40\0\u8bfa\0\u8c4c"+ - "\0\u8c9e\0\u8cf0\0\u8d42\0\u8d94\0\u0a40\0\u8de6\0\u8e38\0\u8e8a"+ - "\0\u8edc\0\u8f2e\0\u8f80\0\u8fd2\0\u9024\0\u9076\0\u90c8\0\u911a"+ - "\0\u0a40\0\u0a40\0\u0a40\0\u0a40\0\u916c\0\u91be\0\u9210\0\u9262"+ - "\0\u0a40\0\u0a40\0\u92b4\0\u9306\0\u9358\0\u93aa\0\u93fc\0\u944e"+ - "\0\u94a0\0\u94f2\0\u9544\0\u9596\0\u95e8\0\u963a\0\u968c\0\u96de"+ - "\0\u9730\0\u9782\0\u0a40\0\u97d4\0\u9826\0\u9878\0\u98ca\0\u0a40"+ - "\0\u0a40\0\u991c\0\u075e\0\u996e\0\u99c0\0\u9a12\0\u9a64\0\u9ab6"+ - "\0\u0a40\0\u0a40\0\u9b08\0\u9b5a\0\u9bac\0\u9bfe\0\u9c50\0\u9ca2"+ - "\0\u9cf4\0\u9d46\0\u9d98\0\u0a40\0\u9dea\0\u9e3c\0\u9e8e\0\u9ee0"+ - "\0\u9f32\0\u9f84\0\u0a40\0\u9fd6\0\ua028\0\ua07a\0\ua0cc\0\ua11e"+ - "\0\ua170\0\ua1c2\0\ua214\0\ua266\0\ua2b8\0\u0a40\0\u0a40\0\ua30a"+ - "\0\ua35c\0\u0a40\0\ua3ae\0\ua400\0\ua452\0\ua4a4\0\ua4f6\0\u0a40"+ - "\0\ua548\0\u0a40\0\u0a40\0\ua59a\0\ua5ec\0\u0a40\0\ua63e\0\ua690"+ - "\0\ua6e2\0\u0a40\0\ua734\0\ua786\0\ua7d8\0\ua82a\0\ua87c\0\ua8ce"+ - "\0\ua920\0\u0a40\0\ua972\0\ua9c4\0\u0a40\0\u0a40\0\u0a40\0\uaa16"+ - "\0\uaa68\0\uaaba\0\u0a40\0\uab0c\0\uab5e\0\uabb0\0\u0a40\0\u0a40"+ - "\0\uac02\0\uac54\0\uaca6\0\uacf8\0\u0a40\0\u0a40\0\uad4a\0\u0a40"+ - "\0\uad9c\0\u0a40\0\u075e\0\uadee\0\uae40\0\uae92\0\u0a40\0\ua972"+ - "\0\uaee4\0\uaf36\0\uaf88\0\uafda\0\ub02c\0\ub07e\0\ub0d0\0\u0a40"+ - "\0\u0a40\0\u0a40\0\ub122\0\ub174\0\ub1c6\0\u0a40\0\ub218\0\ub26a"+ - "\0\ub2bc\0\ub30e\0\u0a40\0\ub360\0\ub3b2\0\ub404\0\ub456\0\ub4a8"+ - "\0\ub4fa\0\ub54c\0\ub59e\0\ub5f0\0\ub642\0\ub694\0\ub6e6\0\u075e"+ - "\0\ub738"; + "\0\0\0\123\0\246\0\371\0\u014c\0\u019f\0\u01f2\0\u0245"+ + "\0\u0298\0\u02eb\0\u033e\0\u0391\0\u03e4\0\u0437\0\u048a\0\u04dd"+ + "\0\u0530\0\u0583\0\u05d6\0\u0629\0\u067c\0\u06cf\0\u0722\0\u0775"+ + "\0\u07c8\0\u081b\0\u086e\0\u08c1\0\u0914\0\u0967\0\u09ba\0\u0a0d"+ + "\0\u0a60\0\u0ab3\0\u0775\0\u0775\0\u0b06\0\u0b59\0\u0775\0\u0775"+ + "\0\u0775\0\u0bac\0\u0bff\0\u0c52\0\u0ca5\0\u0cf8\0\u0d4b\0\u0d9e"+ + "\0\u0df1\0\u0e44\0\u0e97\0\u0eea\0\u0775\0\u0f3d\0\u0f90\0\u0fe3"+ + "\0\u1036\0\u1089\0\u10dc\0\u112f\0\u1182\0\u11d5\0\u1228\0\u127b"+ + "\0\u12ce\0\u1321\0\u1374\0\u13c7\0\u141a\0\u146d\0\u14c0\0\u1513"+ + "\0\u1566\0\u15b9\0\u160c\0\u0775\0\u165f\0\u16b2\0\u1705\0\u1758"+ + "\0\u17ab\0\u0775\0\u0775\0\u17fe\0\u1851\0\u0775\0\u18a4\0\u18f7"+ + "\0\u194a\0\u199d\0\u19f0\0\u1a43\0\u0775\0\u1a96\0\u1ae9\0\u1b3c"+ + "\0\u1b8f\0\u1be2\0\u1c35\0\u1c88\0\u1cdb\0\u1d2e\0\u1ae9\0\u0775"+ + "\0\u1d81\0\u1dd4\0\u1e27\0\u1e7a\0\u1ecd\0\u1ecd\0\u0775\0\u1f20"+ + "\0\u1f73\0\u0775\0\u1fc6\0\u2019\0\u0775\0\u0775\0\u206c\0\u20bf"+ + "\0\u0775\0\u2112\0\u0775\0\u2165\0\u0775\0\u21b8\0\u220b\0\u225e"+ + "\0\u22b1\0\u2304\0\u0775\0\u2357\0\u23aa\0\u23fd\0\u2450\0\u0775"+ + "\0\u24a3\0\u067c\0\u24f6\0\u2549\0\u259c\0\u25ef\0\u2642\0\u2695"+ + "\0\u26e8\0\u273b\0\u278e\0\u27e1\0\u2834\0\u2887\0\u28da\0\u0775"+ + "\0\u292d\0\u2980\0\u29d3\0\u2a26\0\u2a79\0\u2acc\0\u2b1f\0\u2b72"+ + "\0\u15b9\0\u2bc5\0\u0b59\0\u2c18\0\u0775\0\u2c6b\0\u2cbe\0\u2d11"+ + "\0\u2d64\0\u2db7\0\u2e0a\0\u2e5d\0\u2eb0\0\u0a60\0\u2f03\0\u2f56"+ + "\0\u2fa9\0\u2ffc\0\u0a60\0\u304f\0\u30a2\0\u30f5\0\u3148\0\u0a60"+ + "\0\u319b\0\u0a60\0\u31ee\0\u3241\0\u3294\0\u32e7\0\u333a\0\u338d"+ + "\0\u33e0\0\u3433\0\u3486\0\u34d9\0\u352c\0\u357f\0\u35d2\0\u3625"+ + "\0\u3678\0\u36cb\0\u371e\0\u3771\0\u37c4\0\u3817\0\u386a\0\u38bd"+ + "\0\u3910\0\u3963\0\u39b6\0\u3a09\0\u3a5c\0\u3aaf\0\u3b02\0\u3b55"+ + "\0\u160c\0\u3ba8\0\u3bfb\0\u3c4e\0\u3ca1\0\u3cf4\0\u3d47\0\u3d9a"+ + "\0\u3ded\0\u3e40\0\u0775\0\u3e93\0\u3ee6\0\u18a4\0\u3f39\0\u3f8c"+ + "\0\u3fdf\0\u3ee6\0\u0775\0\u0775\0\u0775\0\u3f39\0\u4032\0\u19f0"+ + "\0\u4085\0\u40d8\0\u4032\0\u4085\0\u0775\0\u0775\0\u412b\0\u417e"+ + "\0\u41d1\0\u4224\0\u4277\0\u1d81\0\u0775\0\u42ca\0\u1dd4\0\u0775"+ + "\0\u431d\0\u1e27\0\u1e7a\0\u4370\0\u43c3\0\u4416\0\u1f20\0\u0775"+ + "\0\u4469\0\u1f73\0\u0775\0\u44bc\0\u0775\0\u206c\0\u450f\0\u0775"+ + "\0\u4562\0\u45b5\0\u0775\0\u4608\0\u0775\0\u0775\0\u465b\0\u46ae"+ + "\0\u0775\0\u4701\0\u4754\0\u20bf\0\u47a7\0\u47fa\0\u484d\0\u48a0"+ + "\0\u48f3\0\u4946\0\u4999\0\u292d\0\u2980\0\u49ec\0\u4a3f\0\u4a92"+ + "\0\u4ae5\0\u4b38\0\u4b8b\0\u4bde\0\u4c31\0\u4c84\0\u4cd7\0\u4d2a"+ + "\0\u4d7d\0\u4dd0\0\u0a60\0\u4e23\0\u4e76\0\u4ec9\0\u4f1c\0\u0a60"+ + "\0\u4f6f\0\u4fc2\0\u5015\0\u4f6f\0\u5068\0\u50bb\0\u510e\0\u5161"+ + "\0\u51b4\0\u0a60\0\u5207\0\u525a\0\u52ad\0\u5300\0\u5353\0\u53a6"+ + "\0\u53f9\0\u544c\0\u549f\0\u54f2\0\u5545\0\u0a60\0\u5598\0\u55eb"+ + "\0\u563e\0\u5691\0\u56e4\0\u5737\0\u578a\0\u57dd\0\u5830\0\u5883"+ + "\0\u58d6\0\u5929\0\u0a60\0\u597c\0\u59cf\0\u5a22\0\u5a75\0\u5ac8"+ + "\0\u5b1b\0\u5b6e\0\u5bc1\0\u5c14\0\u5c67\0\u5cba\0\u5d0d\0\u5d60"+ + "\0\u5db3\0\u5e06\0\u5e59\0\u5eac\0\u5eff\0\u5f52\0\u5fa5\0\u0775"+ + "\0\u17fe\0\u194a\0\u5ff8\0\u604b\0\u0775\0\u609e\0\u0775\0\u60f1"+ + "\0\u6144\0\u0775\0\u6197\0\u1ecd\0\u61ea\0\u0775\0\u0775\0\u623d"+ + "\0\u6290\0\u62e3\0\u0a60\0\u6336\0\u6389\0\u63dc\0\u642f\0\u6482"+ + "\0\u64d5\0\u6528\0\u0a60\0\u0a60\0\u657b\0\u65ce\0\u6621\0\u6674"+ + "\0\u66c7\0\u671a\0\u676d\0\u67c0\0\u6813\0\u6866\0\u4c84\0\u68b9"+ + "\0\u690c\0\u695f\0\u69b2\0\u6a05\0\u0a60\0\u6a58\0\u6aab\0\u6afe"+ + "\0\u6b51\0\u6ba4\0\u6bf7\0\u6c4a\0\u6c9d\0\u6cf0\0\u0a60\0\u6d43"+ + "\0\u6d96\0\u0a60\0\u6de9\0\u0a60\0\u6e3c\0\u6e8f\0\u6ee2\0\u0a60"+ + "\0\u6f35\0\u0a60\0\u0a60\0\u6f88\0\u6fdb\0\u702e\0\u7081\0\u0a60"+ + "\0\u70d4\0\u7127\0\u717a\0\u71cd\0\u7220\0\u7273\0\u72c6\0\u7319"+ + "\0\u736c\0\u73bf\0\u7412\0\u7465\0\u74b8\0\u750b\0\u755e\0\u75b1"+ + "\0\u7604\0\u7657\0\u76aa\0\u76fd\0\u7750\0\u77a3\0\u77f6\0\u7849"+ + "\0\u789c\0\u78ef\0\u7942\0\u7995\0\u79e8\0\u0775\0\u7a3b\0\u7a8e"+ + "\0\u0775\0\u7ae1\0\u7b34\0\u7b87\0\u7bda\0\u0a60\0\u7c2d\0\u7c80"+ + "\0\u7cd3\0\u0a60\0\u7d26\0\u0a60\0\u7d79\0\u7dcc\0\u0a60\0\u0775"+ + "\0\u7e1f\0\u7e72\0\u7ec5\0\u7f18\0\u7f6b\0\u7fbe\0\u8011\0\u0a60"+ + "\0\u8064\0\u80b7\0\u810a\0\u815d\0\u81b0\0\u8203\0\u8256\0\u82a9"+ + "\0\u0a60\0\u82fc\0\u0a60\0\u0a60\0\u0a60\0\u834f\0\u83a2\0\u83f5"+ + "\0\u8448\0\u849b\0\u84ee\0\u0a60\0\u0a60\0\u8541\0\u0a60\0\u0a60"+ + "\0\u8594\0\u0a60\0\u85e7\0\u863a\0\u868d\0\u0a60\0\u86e0\0\u8733"+ + "\0\u8786\0\u87d9\0\u882c\0\u887f\0\u88d2\0\u8925\0\u0775\0\u8978"+ + "\0\u89cb\0\u0a60\0\u8a1e\0\u8a71\0\u8ac4\0\u8b17\0\u8b6a\0\u8bbd"+ + "\0\u8c10\0\u8c63\0\u8cb6\0\u8d09\0\u8d5c\0\u8daf\0\u8e02\0\u8e55"+ + "\0\u8ea8\0\u8efb\0\u0a60\0\u8f4e\0\u8fa1\0\u8ff4\0\u9047\0\u909a"+ + "\0\u90ed\0\u0a60\0\u9140\0\u9193\0\u91e6\0\u9239\0\u928c\0\u92df"+ + "\0\u9332\0\u9385\0\u93d8\0\u942b\0\u947e\0\u0a60\0\u0a60\0\u0a60"+ + "\0\u0a60\0\u0a60\0\u94d1\0\u9524\0\u9577\0\u95ca\0\u0a60\0\u0a60"+ + "\0\u961d\0\u9670\0\u96c3\0\u9716\0\u9769\0\u97bc\0\u980f\0\u9862"+ + "\0\u98b5\0\u9908\0\u995b\0\u99ae\0\u9a01\0\u9a54\0\u9aa7\0\u9afa"+ + "\0\u0a60\0\u9b4d\0\u9ba0\0\u9bf3\0\u9c46\0\u0a60\0\u0a60\0\u9c99"+ + "\0\u0775\0\u9cec\0\u9d3f\0\u9d92\0\u9de5\0\u9e38\0\u0a60\0\u0a60"+ + "\0\u9e8b\0\u9ede\0\u9f31\0\u9f84\0\u9fd7\0\ua02a\0\ua07d\0\ua0d0"+ + "\0\ua123\0\u0a60\0\ua176\0\ua1c9\0\ua21c\0\ua26f\0\ua2c2\0\ua315"+ + "\0\u0a60\0\ua368\0\ua3bb\0\ua40e\0\ua461\0\ua4b4\0\ua507\0\ua55a"+ + "\0\ua5ad\0\ua600\0\ua653\0\u0a60\0\u0a60\0\ua6a6\0\ua6f9\0\u0a60"+ + "\0\ua74c\0\ua79f\0\ua7f2\0\ua845\0\ua898\0\u0a60\0\ua8eb\0\u0a60"+ + "\0\u0a60\0\ua93e\0\ua991\0\u0a60\0\ua9e4\0\uaa37\0\uaa8a\0\u0a60"+ + "\0\uaadd\0\uab30\0\uab83\0\uabd6\0\uac29\0\uac7c\0\uaccf\0\u0a60"+ + "\0\uad22\0\uad75\0\u0a60\0\u0a60\0\u0a60\0\uadc8\0\uae1b\0\uae6e"+ + "\0\u0a60\0\uaec1\0\uaf14\0\uaf67\0\u0a60\0\u0a60\0\uafba\0\ub00d"+ + "\0\ub060\0\ub0b3\0\u0a60\0\u0a60\0\ub106\0\u0a60\0\ub159\0\u0a60"+ + "\0\u0775\0\ub1ac\0\ub1ff\0\ub252\0\u0a60\0\uad22\0\ub2a5\0\ub2f8"+ + "\0\ub34b\0\ub39e\0\ub3f1\0\ub444\0\ub497\0\u0a60\0\u0a60\0\u0a60"+ + "\0\ub4ea\0\ub53d\0\ub590\0\u0a60\0\ub5e3\0\ub636\0\ub689\0\ub6dc"+ + "\0\u0a60\0\ub72f\0\ub782\0\ub7d5\0\ub828\0\ub87b\0\ub8ce\0\ub921"+ + "\0\ub974\0\ub9c7\0\uba1a\0\uba6d\0\ubac0\0\u0775\0\ubb13"; private static int [] zzUnpackRowMap() { - int [] result = new int[729]; + int [] result = new int[735]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -391,989 +391,1000 @@ private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\33\26\1\27\66\26\1\30\1\31\1\32\1\33\1\34"+ + "\33\26\1\27\67\26\1\30\1\31\1\32\1\33\1\34"+ "\1\35\1\36\1\37\1\40\1\31\2\41\1\30\2\42"+ "\1\43\1\44\1\42\1\45\1\46\1\47\1\50\1\51"+ "\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61"+ "\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71"+ - "\1\72\1\73\1\74\1\72\1\75\1\76\1\77\1\67"+ - "\1\71\1\100\1\70\1\101\1\102\1\103\1\73\1\33"+ - "\1\104\1\43\1\105\1\106\1\104\1\107\1\105\1\75"+ - "\1\77\1\101\1\110\1\41\1\111\1\112\1\113\1\114"+ - "\1\41\1\115\1\41\1\116\1\117\1\41\1\120\1\41"+ - "\1\121\1\43\1\122\22\123\1\124\1\125\1\126\1\123"+ - "\1\127\73\123\22\130\1\131\1\130\1\132\1\125\1\133"+ - "\73\130\4\134\1\135\21\134\1\136\76\134\1\137\2\134"+ - "\3\137\1\134\2\137\1\134\2\42\2\134\1\42\22\134"+ - "\24\137\1\134\12\137\3\134\4\137\1\140\4\137\3\134"+ - "\15\141\1\142\3\141\1\143\1\144\1\141\1\145\1\141"+ - "\1\146\73\141\3\147\1\150\2\147\3\150\1\147\2\150"+ - "\30\147\24\150\1\147\12\150\3\147\4\150\1\147\4\150"+ - "\3\147\3\30\1\151\2\30\3\151\1\30\2\151\1\30"+ - "\1\0\26\30\24\151\1\30\12\151\3\30\4\151\1\30"+ - "\4\151\3\30\3\152\1\153\2\152\3\153\2\152\1\153"+ - "\1\152\1\154\3\152\1\155\22\152\24\153\1\152\12\153"+ - "\3\152\4\153\1\152\4\153\3\152\3\156\1\157\2\156"+ - "\3\157\1\156\2\157\30\156\24\157\1\156\12\157\3\156"+ - "\4\157\1\156\4\157\3\156\3\30\1\160\2\30\3\160"+ - "\1\30\2\160\1\30\1\0\26\30\24\160\1\30\12\160"+ - "\3\30\4\160\1\30\4\160\3\30\3\161\1\162\1\163"+ - "\1\161\3\162\1\161\2\162\1\161\2\42\2\161\1\42"+ - "\22\161\24\162\1\161\12\162\3\161\4\162\1\161\4\162"+ - "\6\161\1\162\2\161\3\162\1\161\2\162\1\161\2\42"+ - "\2\161\1\42\22\161\24\162\1\161\12\162\1\161\1\164"+ - "\1\161\4\162\1\161\4\162\3\161\3\165\1\166\2\165"+ - "\3\166\1\165\2\166\1\165\2\42\2\165\1\42\22\165"+ - "\24\166\1\165\12\166\3\165\4\166\1\165\4\166\3\165"+ - "\1\30\1\167\1\170\1\41\1\30\1\171\3\41\1\167"+ - "\2\41\1\30\2\172\1\164\1\170\1\172\1\173\1\170"+ - "\1\172\2\170\6\30\1\170\5\30\1\170\24\41\1\170"+ - "\12\41\1\172\2\170\4\41\1\170\4\41\1\170\1\174"+ - "\1\172\34\175\1\176\65\175\34\177\1\200\65\177\15\201"+ - "\1\202\3\201\1\203\11\201\1\204\2\201\1\205\4\201"+ - "\1\206\56\201\15\207\2\210\2\207\1\210\100\207\122\211"+ - "\33\26\1\212\121\26\1\0\2\26\1\213\4\26\1\214"+ - "\5\26\1\0\1\26\1\0\4\26\1\215\1\0\5\26"+ - "\3\0\12\26\1\0\15\26\123\0\1\31\1\216\1\217"+ - "\1\0\1\31\3\0\1\31\54\0\1\217\34\0\1\216"+ - "\1\220\2\0\1\216\3\0\1\216\15\0\1\65\73\0"+ - "\1\41\1\0\1\41\1\0\1\41\1\221\6\41\27\0"+ - "\3\41\1\222\2\41\1\222\2\41\1\223\6\41\1\224"+ - "\2\41\1\225\1\0\2\41\1\225\3\41\1\223\3\41"+ - "\3\0\1\41\1\226\2\41\1\0\1\224\3\41\7\0"+ - "\1\65\22\0\1\65\1\227\72\0\1\31\1\216\1\217"+ - "\1\0\1\31\1\230\1\0\1\231\1\31\51\0\1\231"+ - "\2\0\1\217\34\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\67\11\41\1\67\11\41\1\0\12\41\3\0"+ + "\1\72\1\73\1\74\1\72\1\75\1\76\1\77\1\100"+ + "\1\71\1\101\1\70\1\102\1\103\1\104\1\73\1\33"+ + "\1\41\1\105\1\43\1\106\1\107\1\105\1\110\1\106"+ + "\1\75\1\77\1\102\1\111\1\41\1\112\1\113\1\114"+ + "\1\115\1\41\1\116\1\41\1\117\1\120\1\41\1\121"+ + "\1\41\1\122\1\43\1\123\22\124\1\125\1\126\1\127"+ + "\1\124\1\130\74\124\22\131\1\132\1\131\1\133\1\126"+ + "\1\134\74\131\4\135\1\136\21\135\1\137\77\135\1\140"+ + "\2\135\3\140\1\135\2\140\1\135\2\42\2\135\1\42"+ + "\22\135\25\140\1\135\12\140\3\135\4\140\1\141\4\140"+ + "\3\135\15\142\1\143\3\142\1\144\1\145\1\142\1\146"+ + "\1\142\1\147\74\142\3\150\1\151\2\150\3\151\1\150"+ + "\2\151\30\150\25\151\1\150\12\151\3\150\4\151\1\150"+ + "\4\151\3\150\3\30\1\152\2\30\3\152\1\30\2\152"+ + "\1\30\1\0\26\30\25\152\1\30\12\152\3\30\4\152"+ + "\1\30\4\152\3\30\3\153\1\154\2\153\3\154\2\153"+ + "\1\154\1\153\1\155\3\153\1\156\22\153\25\154\1\153"+ + "\12\154\3\153\4\154\1\153\4\154\3\153\3\157\1\160"+ + "\2\157\3\160\1\157\2\160\30\157\25\160\1\157\12\160"+ + "\3\157\4\160\1\157\4\160\3\157\3\30\1\161\2\30"+ + "\3\161\1\30\2\161\1\30\1\0\26\30\25\161\1\30"+ + "\12\161\3\30\4\161\1\30\4\161\3\30\3\162\1\163"+ + "\1\164\1\162\3\163\1\162\2\163\1\162\2\42\2\162"+ + "\1\42\22\162\25\163\1\162\12\163\3\162\4\163\1\162"+ + "\4\163\6\162\1\163\2\162\3\163\1\162\2\163\1\162"+ + "\2\42\2\162\1\42\22\162\25\163\1\162\12\163\1\162"+ + "\1\165\1\162\4\163\1\162\4\163\3\162\3\166\1\167"+ + "\2\166\3\167\1\166\2\167\1\166\2\42\2\166\1\42"+ + "\22\166\25\167\1\166\12\167\3\166\4\167\1\166\4\167"+ + "\3\166\1\30\1\170\1\171\1\41\1\30\1\172\3\41"+ + "\1\170\2\41\1\30\2\173\1\165\1\171\1\173\1\174"+ + "\1\171\1\173\2\171\6\30\1\171\5\30\1\171\25\41"+ + "\1\171\12\41\1\173\2\171\4\41\1\171\4\41\1\171"+ + "\1\175\1\173\34\176\1\177\66\176\34\200\1\201\66\200"+ + "\15\202\1\203\3\202\1\204\11\202\1\205\2\202\1\206"+ + "\4\202\1\207\57\202\15\210\2\211\2\210\1\211\101\210"+ + "\123\212\33\26\1\213\122\26\1\0\2\26\1\214\4\26"+ + "\1\215\5\26\1\0\1\26\1\0\4\26\1\216\1\0"+ + "\6\26\3\0\12\26\1\0\15\26\124\0\1\31\1\217"+ + "\1\220\1\0\1\31\3\0\1\31\54\0\1\220\35\0"+ + "\1\217\1\221\2\0\1\217\3\0\1\217\15\0\1\65"+ + "\74\0\1\41\1\0\1\41\1\0\1\41\1\222\6\41"+ + "\27\0\3\41\1\223\2\41\1\223\2\41\1\224\6\41"+ + "\1\225\3\41\1\226\1\0\2\41\1\226\3\41\1\224"+ + "\3\41\3\0\1\41\1\227\2\41\1\0\1\225\3\41"+ + "\7\0\1\65\22\0\1\65\1\230\73\0\1\31\1\217"+ + "\1\220\1\0\1\31\1\231\1\0\1\232\1\31\51\0"+ + "\1\232\2\0\1\220\35\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\1\67\11\41\1\67\12\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\1\233\1\41\1\234\2\41\1\235"+ + "\4\41\1\233\1\234\11\41\1\0\3\41\1\235\4\41"+ + "\1\236\1\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\6\0\1\46\7\0\1\237"+ + "\10\0\1\41\1\240\13\41\1\240\7\41\1\0\12\41"+ + "\1\241\2\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\20\0\2\42\2\0\1\42\104\0"+ + "\1\242\2\0\3\242\1\0\2\242\30\0\25\242\1\0"+ + "\12\242\3\0\4\242\1\0\4\242\3\0\22\243\1\244"+ + "\1\245\1\246\1\243\1\247\74\243\27\0\1\64\1\65"+ + "\121\0\1\65\1\64\121\0\1\65\1\0\1\65\120\0"+ + "\1\64\122\0\1\250\1\65\2\0\1\251\1\0\1\252"+ + "\114\0\1\65\4\0\1\64\115\0\1\65\4\0\1\253"+ + "\1\123\114\0\1\65\1\254\121\0\1\65\7\0\1\65"+ + "\112\0\1\65\10\0\1\65\111\0\1\65\123\0\1\255"+ + "\12\0\1\65\60\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\41\1\256\13\41\1\256\7\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\257"+ + "\1\0\10\41\27\0\22\41\1\257\2\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\3\41\1\260\4\41\27\0\1\41\1\261\1\41"+ + "\1\262\2\41\1\262\5\41\1\263\1\261\1\41\1\260"+ + "\5\41\1\0\1\41\1\263\10\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\264\1\0\10\41\27\0"+ + "\2\41\1\265\10\41\1\265\6\41\1\264\2\41\1\0"+ + "\10\41\1\266\1\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\267\1\0\10\41\27\0\1\270\4\41"+ + "\1\271\4\41\1\270\7\41\1\267\2\41\1\0\3\41"+ + "\1\271\6\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\2\41\1\272\5\41\27\0\3\41"+ + "\1\273\2\41\1\274\1\275\1\272\3\41\1\276\10\41"+ + "\1\0\1\41\1\276\10\41\3\0\1\41\1\277\2\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\41\1\300\13\41\1\300\7\41\1\0\11\41"+ + "\1\301\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\1\233\1\41\1\234\2\41"+ + "\1\235\3\41\1\302\1\233\1\234\11\41\1\0\3\41"+ + "\1\235\4\41\1\236\1\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\5\41"+ + "\1\303\17\41\1\0\3\41\1\303\6\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\41\1\256\13\41\1\256\1\41\1\304\5\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\305\1\0\10\41\27\0\7\41\1\306\12\41"+ + "\1\305\2\41\1\0\5\41\1\307\4\41\3\0\2\41"+ + "\1\310\1\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\1\311\10\41\1\312\1\311\12\41"+ + "\1\0\6\41\1\312\3\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\6\0\1\46"+ + "\7\0\1\237\10\0\1\41\1\240\10\41\1\313\2\41"+ + "\1\240\7\41\1\0\12\41\1\241\2\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\2\41\1\314\7\41\1\315\1\314\11\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\1\316\1\41\1\317\6\41\1\320"+ + "\1\316\1\317\11\41\1\0\6\41\1\320\3\41\3\0"+ "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\1\232\1\41\1\233\2\41\1\234\4\41"+ - "\1\232\1\233\10\41\1\0\3\41\1\234\4\41\1\235"+ - "\1\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\6\0\1\46\7\0\1\236\10\0"+ - "\1\41\1\237\13\41\1\237\6\41\1\0\12\41\1\240"+ - "\2\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\20\0\2\42\2\0\1\42\103\0\1\241"+ - "\2\0\3\241\1\0\2\241\30\0\24\241\1\0\12\241"+ - "\3\0\4\241\1\0\4\241\3\0\22\242\1\243\1\244"+ - "\1\245\1\242\1\246\73\242\27\0\1\64\1\65\120\0"+ - "\1\65\1\64\120\0\1\65\1\0\1\65\117\0\1\64"+ - "\121\0\1\247\1\65\2\0\1\250\1\0\1\251\113\0"+ - "\1\65\4\0\1\64\114\0\1\65\4\0\1\252\1\122"+ - "\113\0\1\65\1\253\120\0\1\65\7\0\1\65\111\0"+ - "\1\65\10\0\1\65\110\0\1\65\122\0\1\254\12\0"+ - "\1\65\57\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\41\1\255\13\41\1\255\6\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\256\1\0"+ - "\10\41\27\0\22\41\1\256\1\41\1\0\12\41\3\0"+ + "\10\41\27\0\1\41\1\321\1\322\10\41\1\322\1\41"+ + "\1\321\7\41\1\0\10\41\1\323\1\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\305\1\0\10\41"+ + "\27\0\7\41\1\307\12\41\1\305\2\41\1\0\5\41"+ + "\1\307\4\41\3\0\2\41\1\310\1\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\2\41\1\272\5\41"+ + "\27\0\3\41\1\273\2\41\1\273\1\41\1\272\3\41"+ + "\1\276\10\41\1\0\1\41\1\276\10\41\3\0\1\41"+ + "\1\277\2\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\3\41\1\324\2\41\1\324\5\41"+ + "\1\325\10\41\1\0\1\41\1\325\10\41\3\0\4\41"+ + "\1\0\4\41\3\0\24\241\1\326\57\241\1\245\16\241"+ + "\7\0\1\327\1\330\5\0\1\331\25\0\1\332\1\333"+ + "\1\334\1\0\1\335\1\336\2\0\1\327\1\0\1\332"+ + "\1\334\1\337\1\333\1\0\1\330\1\0\1\335\5\0"+ + "\1\337\1\0\1\336\4\0\1\340\21\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\5\41\1\341\17\41\1\0"+ + "\3\41\1\341\6\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\25\41\1\0"+ + "\11\41\1\342\3\0\4\41\1\0\4\41\116\0\1\343"+ + "\10\0\1\41\1\0\1\41\1\0\10\41\27\0\2\41"+ + "\1\314\10\41\1\314\11\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\25\41\1\0\12\41\3\0\4\41\1\0\2\41"+ + "\1\344\1\41\3\0\22\124\1\345\1\0\1\346\1\124"+ + "\1\347\77\124\1\350\2\124\3\350\1\124\1\351\1\350"+ + "\6\124\1\352\1\353\1\346\1\124\1\354\15\124\25\350"+ + "\1\124\12\350\3\124\4\350\1\124\4\350\150\124\1\355"+ + "\1\353\1\346\1\124\1\356\74\124\22\131\1\357\1\131"+ + "\1\360\1\0\1\361\77\131\1\350\2\131\3\350\1\131"+ + "\1\362\1\350\6\131\1\363\1\131\1\360\1\353\1\354"+ + "\15\131\25\350\1\131\12\350\3\131\4\350\1\131\4\350"+ + "\150\131\1\355\1\131\1\360\1\353\1\364\74\131\30\0"+ + "\1\365\114\0\1\355\101\0\1\140\1\0\1\140\1\0"+ + "\10\140\27\0\25\140\1\0\12\140\3\0\4\140\1\0"+ + "\4\140\116\0\1\366\7\0\15\142\1\0\3\142\1\0"+ + "\1\367\1\142\1\370\1\142\1\371\77\142\1\372\2\142"+ + "\3\372\1\142\2\372\1\142\1\0\3\142\1\0\1\367"+ + "\1\142\1\370\1\142\1\371\15\142\25\372\1\142\12\372"+ + "\3\142\4\372\1\142\4\372\6\142\1\372\2\142\3\372"+ + "\1\142\2\372\1\142\1\373\3\142\1\0\1\367\1\142"+ + "\1\370\1\142\1\371\15\142\25\372\1\142\12\372\3\142"+ + "\4\372\1\142\4\372\3\142\3\0\1\350\2\0\3\350"+ + "\1\0\2\350\12\0\1\354\15\0\25\350\1\0\12\350"+ + "\3\0\4\350\1\0\4\350\3\0\123\142\1\0\1\374"+ + "\1\0\1\374\1\0\10\374\1\375\2\0\1\376\1\375"+ + "\22\0\25\374\1\0\12\374\3\0\4\374\1\0\4\374"+ + "\4\0\1\377\1\0\1\377\1\0\10\377\1\u0100\2\0"+ + "\1\u0101\1\u0100\22\0\25\377\1\0\12\377\3\0\4\377"+ + "\1\0\4\377\3\0\15\u0102\1\155\3\u0102\1\155\102\u0102"+ + "\1\u0103\1\u0102\1\u0103\1\u0102\5\u0103\1\u0102\1\u0103\1\u0102"+ + "\1\0\2\u0102\1\u0104\1\0\22\u0102\25\u0103\1\u0102\12\u0103"+ + "\3\u0102\4\u0103\1\u0102\4\u0103\6\u0102\1\u0105\2\u0102\3\u0105"+ + "\1\u0102\1\u0106\1\u0105\1\u0102\1\155\3\u0102\1\155\22\u0102"+ + "\25\u0105\1\u0102\12\u0105\3\u0102\4\u0105\1\u0102\4\u0105\3\u0102"+ + "\1\0\1\u0107\1\0\1\u0107\1\0\10\u0107\1\u0108\2\0"+ + "\1\u0109\1\u0108\22\0\25\u0107\1\0\12\u0107\3\0\4\u0107"+ + "\1\0\4\u0107\4\0\1\u010a\1\0\1\u010a\1\0\10\u010a"+ + "\1\u010b\2\0\1\u010c\1\u010b\22\0\25\u010a\1\0\12\u010a"+ + "\3\0\4\u010a\1\0\4\u010a\4\0\1\163\1\0\1\163"+ + "\1\0\10\163\27\0\25\163\1\0\12\163\3\0\4\163"+ + "\1\0\4\163\33\0\1\u010d\73\0\1\u010e\1\0\1\u010e"+ + "\1\0\10\u010e\2\u010f\2\0\1\u010f\5\0\1\u0110\14\0"+ + "\25\u010e\1\0\12\u010e\3\0\4\u010e\1\0\4\u010e\4\0"+ + "\1\170\3\0\1\170\3\0\1\170\112\0\1\170\3\0"+ + "\1\170\1\231\2\0\1\170\114\0\1\u0111\2\0\3\u0111"+ + "\1\0\2\u0111\30\0\25\u0111\1\0\12\u0111\3\0\4\u0111"+ + "\1\0\4\u0111\3\0\34\176\1\u0112\122\176\1\u0112\1\u0113"+ + "\65\176\34\200\1\u0114\122\200\1\u0114\1\u0115\65\200\15\202"+ + "\1\203\3\202\1\203\14\202\1\203\4\202\1\203\57\202"+ + "\15\0\1\u0116\105\0\15\202\1\203\3\202\1\203\13\202"+ + "\1\u0117\1\203\4\202\1\203\57\202\30\0\1\u0118\122\0"+ + "\1\255\107\0\2\211\2\0\1\211\101\0\33\26\1\0"+ + "\2\26\1\0\4\26\1\0\5\26\1\0\1\26\1\0"+ + "\4\26\2\0\6\26\3\0\12\26\1\0\15\26\27\0"+ + "\1\u0119\122\0\1\u0119\42\0\1\u011a\3\0\1\u011a\114\0"+ + "\1\u011b\3\0\1\u011b\27\0\1\217\1\0\1\220\1\0"+ + "\1\217\3\0\1\217\54\0\1\220\35\0\1\170\2\0"+ + "\1\u011c\1\170\3\0\1\170\17\0\1\u011c\73\0\1\65"+ + "\121\0\1\41\1\0\1\41\1\0\10\41\27\0\5\41"+ + "\1\u011d\1\41\1\u011e\15\41\1\0\3\41\1\u011d\1\41"+ + "\1\u011e\4\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\4\41\1\u011f\14\41"+ + "\1\u011f\3\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\14\41"+ + "\1\u0120\10\41\1\0\1\41\1\u0120\10\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\2\41\1\u0121\10\41\1\u0121\11\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\25\41\1\0\11\41\1\u0122\3\0"+ "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\3\41\1\257\4\41\27\0\1\41\1\260\1\41\1\261"+ - "\2\41\1\261\5\41\1\262\1\260\1\41\1\257\4\41"+ - "\1\0\1\41\1\262\10\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\263\1\0\10\41\27\0\2\41"+ - "\1\264\10\41\1\264\6\41\1\263\1\41\1\0\10\41"+ - "\1\265\1\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\266\1\0\10\41\27\0\1\267\4\41\1\270"+ - "\4\41\1\267\7\41\1\266\1\41\1\0\3\41\1\270"+ + "\10\41\27\0\25\41\1\0\1\u0123\3\41\1\u0123\5\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\u0124\1\0\1\u0124"+ + "\1\0\1\u0124\1\0\3\u0124\34\0\1\u0124\1\0\1\u0124"+ + "\3\0\1\u0124\2\0\1\u0124\3\0\1\u0124\1\0\2\u0124"+ + "\1\0\1\u0124\3\0\1\u0124\33\0\1\u0125\3\0\1\u0125"+ + "\112\0\1\41\1\0\1\41\1\0\10\41\27\0\1\41"+ + "\1\u0126\13\41\1\u0126\7\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\11\41\1\u0127\13\41\1\0\6\41\1\u0127\3\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\3\41\1\u0128\2\41\1\u0128\16\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\3\41\1\u0129\2\41"+ + "\1\u0129\16\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\36\0\1\u012a\70\0\1\41\1\0\1\u012b\1\0\10\41"+ + "\27\0\22\41\1\u012b\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\242\1\0\1\242\1\0\10\242"+ + "\27\0\25\242\1\0\12\242\3\0\4\242\1\0\4\242"+ + "\3\0\3\243\1\0\2\243\3\0\2\243\1\0\6\243"+ + "\1\244\1\245\1\246\1\243\1\0\15\243\25\0\1\243"+ + "\12\0\3\243\4\0\1\243\4\0\150\243\1\0\1\245"+ + "\1\246\1\243\1\247\74\243\30\0\1\65\121\0\1\65"+ + "\3\0\1\u012c\147\0\1\u012d\12\0\1\u012d\63\0\1\u012e"+ + "\103\0\2\254\2\0\1\254\116\0\2\255\2\0\1\255"+ + "\102\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u012f\15\41\1\0\5\41\1\u012f\4\41\3\0\4\41"+ + "\1\0\3\41\1\u0130\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\14\41\1\u0131\10\41\1\0\1\41\1\u0131"+ + "\10\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\1\41\1\u0132\13\41\1\u0132"+ + "\7\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\4\41\1\256"+ + "\14\41\1\256\3\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\25\41\1\0\12\41\3\0\2\41\1\u0133\1\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\25\41\1\0\12\41\3\0\1\41\1\u0134\2\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\11\41\1\u0135\13\41\1\0\6\41\1\u0135\3\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\2\41\1\u0136\5\41\27\0\10\41\1\u0136\13\41\1\u0137"+ + "\1\0\2\41\1\u0137\7\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\u0138\1\0\10\41\27\0\22\41"+ + "\1\u0138\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u0139\4\41\1\u013a\7\41\1\u013b\1\0\1\41\1\u013a"+ + "\1\u013b\2\41\1\u0139\4\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u013c\4\41\1\u013a\7\41\1\u013b\1\0\1\41\1\u013a"+ + "\1\u013b\2\41\1\u0139\4\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\22\41"+ + "\1\u013d\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\14\41"+ + "\1\u013e\10\41\1\0\1\41\1\u013e\10\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\25\41\1\0\1\u013f\3\41\1\u013f\5\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\2\41\1\u0140\10\41\1\u0140\11\41\1\0"+ + "\10\41\1\u0141\1\41\3\0\1\u0142\3\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\41"+ + "\1\u0143\13\41\1\u0143\7\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\12\41\1\u0144\12\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\14\41\1\u0145\10\41\1\0\1\41\1\u0145\10\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\23\41\1\u0146\1\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\11\41\1\u0147\13\41\1\0\6\41"+ + "\1\u0147\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\2\41\1\u0148\10\41"+ + "\1\u0148\1\41\1\u0149\7\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\2\41\1\u0148\10\41\1\u0148\11\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\5\41\1\u014a\17\41\1\0\3\41"+ + "\1\u014a\6\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\7\41\1\u014b\15\41"+ + "\1\0\5\41\1\u014b\4\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\u014c"+ + "\11\41\1\u014c\12\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\12\41\1\u014d\12\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\1\41\1\u014e\13\41\1\u014e\7\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\5\41\1\u014f\17\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\3\41\1\u0150\2\41\1\u0150\16\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\7\41\1\u0151\1\41\1\u0152"+ + "\2\41\1\u0153\10\41\1\0\1\41\1\u0153\3\41\1\u0151"+ + "\1\u0152\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\1\u0154\1\41\1\u0155"+ + "\7\41\1\u0154\1\u0155\11\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\u0156\4\41\1\u0157\4\41\1\u0156\12\41\1\0"+ + "\3\41\1\u0157\6\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\1\41\1\u0158"+ + "\13\41\1\u0158\7\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\3\41\1\u0159"+ + "\4\41\27\0\17\41\1\u0159\5\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\14\41\1\u015a\10\41\1\0\1\41\1\u015a"+ + "\10\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\u015b\1\0\10\41\27\0\22\41\1\u015b\2\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\3\0\123\241\55\0"+ + "\1\u015c\22\0\1\u015c\66\0\1\u015d\4\0\1\u015e\4\0"+ + "\1\u015d\16\0\1\u015e\35\0\1\u015f\52\0\1\u015f\42\0"+ + "\1\u0160\62\0\1\u0160\101\0\1\u0161\13\0\1\u0161\105\0"+ + "\1\u0162\11\0\1\u0162\113\0\1\u0163\2\0\1\u0163\123\0"+ + "\1\u0164\23\0\1\u0164\72\0\1\u0165\2\0\1\u0165\51\0"+ + "\1\41\1\0\1\u0166\1\0\10\41\27\0\22\41\1\u0166"+ + "\2\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\5\41\1\u0167"+ + "\17\41\1\0\3\41\1\u0167\6\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\2\41\1\u0168"+ + "\5\41\27\0\3\41\1\u0169\1\u016a\1\41\1\u0169\1\u016b"+ + "\1\u0168\1\u016c\7\41\1\u016a\2\41\1\u016d\1\0\2\41"+ + "\1\u016d\2\41\1\u016b\1\u016c\2\41\1\u016e\3\0\1\41"+ + "\1\u016f\2\41\1\0\4\41\3\0\3\124\1\0\2\124"+ + "\3\0\2\124\1\0\6\124\1\352\1\353\1\346\1\124"+ + "\1\0\15\124\25\0\1\124\12\0\3\124\4\0\1\124"+ + "\4\0\25\124\1\0\1\353\1\346\1\124\1\356\74\124"+ + "\1\0\1\350\1\0\1\350\1\0\10\350\27\0\25\350"+ + "\1\0\12\350\3\0\4\350\1\0\4\350\1\0\1\u0170"+ + "\1\0\1\124\1\351\1\124\1\351\1\124\10\351\5\124"+ + "\1\345\1\0\1\346\1\124\1\347\15\124\25\351\1\124"+ + "\12\351\3\124\4\351\1\124\4\351\1\124\1\u0171\1\124"+ + "\3\131\1\0\2\131\3\0\2\131\1\0\6\131\1\363"+ + "\1\131\1\360\1\353\1\0\15\131\25\0\1\131\12\0"+ + "\3\131\4\0\1\131\4\0\25\131\1\0\1\131\1\360"+ + "\1\353\1\364\75\131\1\362\1\131\1\362\1\131\10\362"+ + "\5\131\1\357\1\131\1\360\1\0\1\361\15\131\25\362"+ + "\1\131\12\362\3\131\4\362\1\131\4\362\1\131\1\u0172"+ + "\1\131\3\142\1\u0173\2\142\3\u0173\2\142\1\u0173\1\142"+ + "\1\0\3\142\1\0\1\u0174\1\142\1\370\1\142\1\u0175"+ + "\15\142\25\u0173\1\142\12\u0173\3\142\4\u0173\1\142\4\u0173"+ + "\20\142\1\0\3\142\1\0\116\142\1\0\3\142\1\0"+ + "\1\u0175\1\142\1\370\1\142\1\u0176\75\142\1\372\1\142"+ + "\1\372\1\142\10\372\1\u0177\2\142\1\u0178\1\u0177\1\367"+ + "\1\142\1\370\1\142\1\371\15\142\25\372\1\142\12\372"+ + "\3\142\4\372\1\142\4\372\3\142\3\0\1\u0179\2\0"+ + "\3\u0179\1\0\2\u0179\30\0\25\u0179\1\0\12\u0179\3\0"+ + "\4\u0179\1\0\4\u0179\20\0\1\375\3\0\1\375\116\0"+ + "\1\u0100\3\0\1\u0100\101\0\15\u0102\1\0\3\u0102\1\0"+ + "\102\u0102\1\u0105\1\u0102\1\u0105\1\u0102\5\u0105\1\u0106\1\u0105"+ + "\1\u0106\1\u017a\2\u0102\1\u017b\1\u017a\22\u0102\25\u0105\1\u0102"+ + "\12\u0105\3\u0102\4\u0105\1\u0102\4\u0105\4\u0102\1\u0106\1\u0102"+ + "\1\u0106\1\u0102\10\u0106\1\u017c\2\u0102\1\u017d\1\u017c\22\u0102"+ + "\25\u0106\1\u0102\12\u0106\3\u0102\4\u0106\1\u0102\4\u0106\3\u0102"+ + "\15\0\1\u0108\3\0\1\u0108\116\0\1\u010b\3\0\1\u010b"+ + "\116\0\2\u010f\2\0\1\u010f\5\0\1\u0110\74\0\1\u0111"+ + "\1\0\1\u0111\1\0\10\u0111\27\0\25\u0111\1\0\12\u0111"+ + "\3\0\4\u0111\1\0\4\u0111\3\0\34\176\1\u0112\1\u017e"+ + "\65\176\34\200\1\u0114\1\u017f\65\200\15\202\1\203\3\202"+ + "\1\203\14\202\1\203\4\202\1\203\14\202\1\u0180\12\202"+ + "\1\u0180\27\202\15\0\2\u0118\2\0\1\u0118\204\0\1\u0181"+ + "\64\0\1\u0182\13\0\1\u0182\42\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\7\41\1\u0183\15\41\1\0\5\41"+ + "\1\u0183\4\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u0184\1\0\10\41\27\0\22\41\1\u0184\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\2\41\1\u0185\5\41\27\0\4\41"+ + "\1\u0186\1\u0187\2\41\1\u0185\3\41\1\u0188\4\41\1\u0186"+ + "\3\41\1\0\1\41\1\u0188\1\41\1\u0187\6\41\3\0"+ + "\2\41\1\u0189\1\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\u018a\1\0\10\41\27\0\22\41\1\u018a\2\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\11\41\1\u018b\13\41\1\0"+ + "\6\41\1\u018b\3\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\1\u018c\11\41"+ + "\1\u018c\12\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u018d\15\41\1\0\5\41\1\u018d\4\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u018e\1\0\10\41"+ + "\27\0\22\41\1\u018e\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\14\41\1\u018f\10\41\1\0\1\41\1\u018f\10\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\2\41\1\u0190\10\41\1\u0190\11\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\24\41\1\u0191\1\0"+ + "\2\41\1\u0191\7\41\3\0\4\41\1\0\4\41\36\0"+ + "\1\u012c\70\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\2\41\1\u0192\10\41\1\u0192\11\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\6\0\1\u0193\2\0\3\u0193\1\0"+ + "\2\u0193\2\0\1\u012c\4\0\1\u0194\20\0\25\u0193\1\0"+ + "\12\u0193\1\u0195\2\0\4\u0193\1\0\4\u0193\73\0\1\u0196"+ + "\3\0\1\u0196\43\0\2\u0197\2\0\1\u0197\102\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\10\41"+ + "\1\u0198\1\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\10\41"+ + "\1\u0199\1\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\7\41\1\u019a\15\41"+ + "\1\0\5\41\1\u019a\4\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\2\41"+ + "\1\u019b\10\41\1\u019b\11\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u019c\1\0\10\41"+ + "\27\0\22\41\1\u019c\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\11\41\1\u019d\13\41\1\0\6\41\1\u019d\3\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\2\41\1\u019e\10\41\1\u019e\11\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\11\41\1\u019f\13\41"+ + "\1\0\6\41\1\u019f\3\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\u01a0\1\0\10\41\27\0\22\41"+ + "\1\u01a0\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u01a1\15\41\1\0\5\41\1\u01a1\4\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\11\41\1\u01a2\13\41\1\0\6\41\1\u01a2\3\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\15\41\1\u01a3\7\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u01a4"+ + "\1\0\10\41\27\0\22\41\1\u01a4\2\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\11\41\1\u01a5\13\41\1\0\6\41"+ + "\1\u01a5\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\5\41\1\u01a6\17\41"+ + "\1\0\3\41\1\u01a6\6\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\u01a7\1\0\10\41\27\0\22\41"+ + "\1\u01a7\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\u01a8"+ + "\11\41\1\u01a8\12\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\13\41\1\u01a9\11\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\7\41\1\u01aa\15\41\1\0\5\41\1\u01aa\4\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\22\41\1\u01ab\2\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\2\41\1\u01ac\5\41\27\0\10\41\1\u01ac\14\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\7\41\1\u01ad\15\41\1\0"+ + "\5\41\1\u01ad\4\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\5\41\1\u01ae"+ + "\17\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u01af"+ + "\15\41\1\0\5\41\1\u01af\4\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\1\u01b0\11\41\1\u01b0\12\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\3\41"+ + "\1\u01b1\4\41\27\0\17\41\1\u01b1\5\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\11\41\1\u01b2\13\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\21\41\1\u01b3\3\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\7\41\1\u01b4\4\41\1\u01b5\10\41"+ + "\1\0\1\41\1\u01b5\3\41\1\u01b4\4\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\24\41\1\u01b6\1\0\2\41\1\u01b6\7\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\11\41\1\u01b7\13\41\1\0\6\41\1\u01b7"+ + "\3\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\u01b8\1\0\10\41\27\0\22\41\1\u01b8\2\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\3\41\1\u01b9\2\41\1\u01b9"+ + "\16\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\14\41\1\u01ba"+ + "\10\41\1\0\1\41\1\u01ba\10\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\7\41\1\u01bb\15\41\1\0\5\41\1\u01bb\4\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\3\41\1\u01bc\2\41\1\u01bc\11\41\1\u01bd"+ + "\4\41\1\0\12\41\3\0\4\41\1\0\1\u01bd\3\41"+ + "\4\0\1\41\1\0\1\u01be\1\0\10\41\27\0\22\41"+ + "\1\u01be\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\11\41"+ + "\1\u01bf\13\41\1\0\6\41\1\u01bf\3\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u01c0\1\0\10\41"+ + "\27\0\22\41\1\u01c0\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\47\0\1\u01c1\11\0\1\u01c1\110\0\1\u01c2"+ + "\11\0\1\u01c2\113\0\1\u01c3\2\0\1\u01c3\137\0\1\u01c4"+ + "\25\0\1\u01c4\53\0\1\u01c5\10\0\1\u01c5\110\0\1\u01c6"+ + "\13\0\1\u01c6\143\0\1\u01c7\73\0\1\u01c8\23\0\1\u01c8"+ + "\70\0\1\u01c9\13\0\1\u01c9\121\0\1\u01ca\12\0\1\u01ca"+ + "\30\0\1\41\1\0\1\41\1\0\10\41\27\0\11\41"+ + "\1\u01cb\13\41\1\0\6\41\1\u01cb\3\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\11\41\1\u01cc\13\41\1\0\6\41\1\u01cc\3\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\5\41\1\u01cd\17\41\1\0\3\41"+ + "\1\u01cd\4\41\1\u01ce\1\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\2\41"+ + "\1\u01cf\10\41\1\u01cf\11\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\5\41\1\u01d0\17\41\1\0\3\41\1\u01d0\6\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\1\41\1\u01d1\13\41\1\u01d1\7\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\5\41\1\u01d2\17\41"+ + "\1\0\3\41\1\u01d2\6\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\11\41"+ + "\1\u01d3\13\41\1\0\6\41\1\u01d3\3\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\2\41\1\u01d4\10\41\1\u01d4\11\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u01d5"+ + "\1\0\10\41\27\0\22\41\1\u01d5\2\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\u0173\1\0\1\u0173"+ + "\1\0\10\u0173\27\0\25\u0173\1\0\12\u0173\3\0\4\u0173"+ + "\1\0\4\u0173\1\0\1\u01d6\1\0\3\142\1\0\2\142"+ + "\3\0\2\142\1\0\1\142\1\0\3\142\1\0\1\u0174"+ + "\1\142\1\370\1\142\1\0\15\142\25\0\1\142\12\0"+ + "\3\142\4\0\1\142\4\0\20\142\1\0\3\142\2\0"+ + "\1\142\1\370\1\142\1\u0176\111\142\1\u0177\3\142\1\u0177"+ + "\1\367\1\142\1\370\1\142\1\371\74\142\1\0\1\u0179"+ + "\1\0\1\u0179\1\0\10\u0179\1\u0177\2\0\1\u01d7\1\u0177"+ + "\22\0\25\u0179\1\0\12\u0179\3\0\4\u0179\1\0\4\u0179"+ + "\3\0\15\u0102\1\u017a\3\u0102\1\u017a\116\u0102\1\u017c\3\u0102"+ + "\1\u017c\101\u0102\15\202\1\203\3\202\1\203\14\202\1\203"+ + "\4\202\1\203\24\202\1\u01d8\3\202\1\u01d8\26\202\72\0"+ + "\1\u01d9\3\0\1\u01d9\75\0\1\u01da\23\0\1\u01da\26\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\3\41\1\u01db"+ + "\2\41\1\u01db\16\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\1\u01dc\11\41\1\u01dc\12\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u01dd\1\0\10\41"+ + "\27\0\22\41\1\u01dd\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\2\41"+ + "\1\u01de\5\41\27\0\10\41\1\u01de\14\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\25\41\1\0\12\41\3\0\2\41"+ + "\1\u01df\1\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\25\41\1\0\11\41\1\u01e0\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\5\41\1\u01e1\17\41\1\0\3\41\1\u01e1"+ "\6\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\2\41\1\271\5\41\27\0\3\41\1\272"+ - "\2\41\1\273\1\274\1\271\3\41\1\275\7\41\1\0"+ - "\1\41\1\275\10\41\3\0\1\41\1\276\2\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\12\41\3\0"+ + "\1\u01e2\3\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\2\41\1\u01e3\10\41\1\u01e3\11\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u01e4\1\0\10\41\27\0\22\41\1\u01e4\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\11\41\1\u01e5\13\41"+ + "\1\0\6\41\1\u01e5\3\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u01e6\15\41\1\0\5\41\1\u01e6\4\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\25\41\1\0\12\41\3\0\3\41\1\u01e7\1\0"+ + "\4\41\4\0\1\u0193\1\0\1\u0193\1\0\10\u0193\1\u01e8"+ + "\3\0\1\u01e9\22\0\25\u0193\1\0\12\u0193\3\0\4\u0193"+ + "\1\0\4\u0193\6\0\1\u01ea\2\0\3\u01ea\1\0\2\u01ea"+ + "\30\0\25\u01ea\1\0\12\u01ea\3\0\4\u01ea\1\0\4\u01ea"+ + "\6\0\1\u01eb\2\0\3\u01eb\1\0\2\u01eb\30\0\25\u01eb"+ + "\1\0\12\u01eb\3\0\4\u01eb\1\0\4\u01eb\50\0\1\u01ec"+ + "\13\0\1\u01ec\42\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\41\1\u01ed\13\41\1\u01ed\7\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\5\41\1\u01ee\17\41\1\0\3\41"+ + "\1\u01ee\6\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\1\41\1\u01ef\13\41"+ + "\1\u01ef\7\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\1\u01f0\3\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\14\41\1\u01f1"+ + "\10\41\1\0\1\41\1\u01f1\10\41\3\0\4\41\1\0"+ "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\41\1\277\13\41\1\277\6\41\1\0\11\41\1\300"+ + "\25\41\1\0\10\41\1\u01f2\1\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\2\41\1\u01f3\10\41\1\u01f3\11\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\1\41\1\u01f4\13\41\1\u01f4\7\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\u01f5\1\0\10\41\27\0\2\41\1\u01f6\10\41\1\u01f6"+ + "\6\41\1\u01f5\2\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\25\41\1\0\10\41\1\u01f7\1\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\13\41\1\u01f8\11\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\7\41\1\u01f9\15\41\1\0\5\41\1\u01f9\4\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\u01fa\1\0"+ + "\10\41\27\0\22\41\1\u01fa\2\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\7\41\1\u01fb\15\41\1\0\5\41\1\u01fb"+ + "\4\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\12\41\3\0"+ + "\2\41\1\u01fc\1\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\7\41\1\u01fd\15\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\24\41\1\u01fe\1\0\12\41"+ "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\1\232\1\41\1\233\2\41\1\234"+ - "\3\41\1\301\1\232\1\233\10\41\1\0\3\41\1\234"+ - "\4\41\1\235\1\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\5\41\1\302"+ - "\16\41\1\0\3\41\1\302\6\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\303\1\0\10\41\27\0"+ - "\7\41\1\304\12\41\1\303\1\41\1\0\5\41\1\305"+ - "\4\41\3\0\2\41\1\306\1\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\1\307\10\41"+ - "\1\310\1\307\11\41\1\0\6\41\1\310\3\41\3\0"+ + "\1\0\10\41\27\0\5\41\1\u01ff\17\41\1\0\3\41"+ + "\1\u01ff\6\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\6\41\1\u0200\16\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\24\41\1\u0201\1\0"+ + "\2\41\1\u0201\7\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u0202"+ + "\10\41\1\u0202\11\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\5\41\1\u0203\17\41\1\0\3\41\1\u0203\6\41\3\0"+ "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\6\0\1\46\7\0\1\236\10\0\1\41\1\237"+ - "\10\41\1\311\2\41\1\237\6\41\1\0\12\41\1\240"+ - "\2\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\2\41\1\312\7\41\1\313\1\312"+ - "\10\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\1\314\1\41"+ - "\1\315\6\41\1\316\1\314\1\315\10\41\1\0\6\41"+ - "\1\316\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\1\41\1\317\1\320"+ - "\10\41\1\320\1\41\1\317\6\41\1\0\10\41\1\321"+ - "\1\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\303\1\0\10\41\27\0\7\41\1\305\12\41\1\303"+ - "\1\41\1\0\5\41\1\305\4\41\3\0\2\41\1\306"+ - "\1\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\2\41\1\271\5\41\27\0\3\41\1\272\2\41\1\272"+ - "\1\41\1\271\3\41\1\275\7\41\1\0\1\41\1\275"+ - "\10\41\3\0\1\41\1\276\2\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\3\41\1\322"+ - "\2\41\1\322\5\41\1\323\7\41\1\0\1\41\1\323"+ - "\10\41\3\0\4\41\1\0\4\41\3\0\24\240\1\324"+ - "\56\240\1\244\16\240\7\0\1\325\1\326\5\0\1\327"+ - "\25\0\1\330\1\331\1\332\1\0\1\333\1\334\2\0"+ - "\1\325\1\0\1\330\1\332\1\335\1\331\1\0\1\326"+ - "\1\0\1\333\4\0\1\335\1\0\1\334\4\0\1\336"+ - "\21\0\1\41\1\0\1\41\1\0\10\41\27\0\5\41"+ - "\1\337\16\41\1\0\3\41\1\337\6\41\3\0\4\41"+ + "\10\41\27\0\7\41\1\u0204\15\41\1\0\5\41\1\u0204"+ + "\4\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\11\41\1\u0205"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\2\41\1\u0206\10\41\1\u0206\11\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u0207\1\0\10\41\27\0\22\41\1\u0207\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\14\41\1\u0208\10\41"+ + "\1\0\1\41\1\u0208\10\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\u0209\1\0\10\41\27\0\22\41"+ + "\1\u0209\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u020a\15\41\1\0\5\41\1\u020a\4\41\3\0\4\41"+ "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\11\41\1\340\3\0\4\41\1\0"+ - "\4\41\115\0\1\341\10\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\2\41\1\312\10\41\1\312\10\41\1\0"+ + "\27\0\2\41\1\u020b\10\41\1\u020b\11\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\3\41\1\u020c\2\41\1\u020c\16\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\5\41\1\u020d\17\41"+ + "\1\0\3\41\1\u020d\6\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u020e\15\41\1\0\5\41\1\u020e\4\41\3\0\4\41"+ + "\1\0\4\41\51\0\1\u020f\10\0\1\u020f\120\0\1\u0210"+ + "\22\0\1\u0210\70\0\1\u0211\10\0\1\u0211\46\0\1\u0212"+ + "\62\0\1\u0212\111\0\1\u0213\22\0\1\u0213\70\0\1\u0214"+ + "\10\0\1\u0214\53\0\1\u0215\52\0\1\u0215\42\0\1\u0216"+ + "\12\0\1\u0213\47\0\1\u0216\2\0\1\u0217\102\0\1\u0218"+ + "\23\0\1\u0218\30\0\1\u020f\62\0\1\u020f\35\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\4\41\1\u0219\14\41"+ + "\1\u0219\3\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\u021a\1\0\10\41\27\0\22\41"+ + "\1\u021a\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\11\41"+ + "\1\u021b\13\41\1\0\6\41\1\u021b\3\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\3\41\1\u021c\2\41\1\u021c\16\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\25\41\1\0\12\41\3\0\1\41"+ + "\1\u021d\2\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\1\41\1\u021e\13\41\1\u021e\7\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\2\41\1\u021f\10\41"+ + "\1\u021f\11\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\3\41"+ + "\1\u0220\2\41\1\u0220\16\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\2\41\1\u0221\10\41\1\u0221\11\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\11\41\1\u0222\13\41\1\0\6\41"+ + "\1\u0222\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\7\41\1\u0223\15\41"+ + "\1\0\5\41\1\u0223\4\41\3\0\4\41\1\0\4\41"+ + "\20\0\1\u0177\3\0\1\u0177\101\0\15\202\1\203\3\202"+ + "\1\203\14\202\1\203\4\202\1\203\1\202\1\u0224\13\202"+ + "\1\u0224\41\202\72\0\1\u0225\3\0\1\u0225\25\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\4\41\1\u0226\14\41"+ + "\1\u0226\3\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\41"+ + "\1\u0227\13\41\1\u0227\7\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\24\41\1\u0228\1\0\2\41\1\u0228\7\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\5\41\1\u0229\17\41\1\0\3\41\1\u0229"+ + "\6\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\5\41\1\u022a\17\41\1\0"+ + "\3\41\1\u022a\6\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\2\41\1\u022b\5\41\27\0"+ + "\10\41\1\u022b\14\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\24\41\1\u022c\1\0\2\41\1\u022c\7\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\11\41\1\u022d\13\41\1\0\6\41\1\u022d\3\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\5\41\1\u022e\17\41\1\0\3\41"+ + "\1\u022e\6\41\3\0\4\41\1\0\4\41\20\0\1\u01e8"+ + "\106\0\1\u01ea\1\0\1\u01ea\1\0\10\u01ea\6\0\1\u022f"+ + "\20\0\25\u01ea\1\0\12\u01ea\3\0\4\u01ea\1\0\4\u01ea"+ + "\4\0\1\u01eb\1\0\1\u01eb\1\0\10\u01eb\27\0\25\u01eb"+ + "\1\0\12\u01eb\1\u0230\2\0\4\u01eb\1\0\4\u01eb\54\0"+ + "\1\u0231\23\0\1\u0231\26\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\3\41\1\u0232\2\41\1\u0232\16\41\1\0"+ "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\24\41\1\0\12\41\3\0"+ - "\4\41\1\0\2\41\1\342\1\41\3\0\22\123\1\343"+ - "\1\0\1\344\1\123\1\345\76\123\1\346\2\123\3\346"+ - "\1\123\1\347\1\346\6\123\1\350\1\351\1\344\1\123"+ - "\1\352\15\123\24\346\1\123\12\346\3\123\4\346\1\123"+ - "\4\346\147\123\1\353\1\351\1\344\1\123\1\354\73\123"+ - "\22\130\1\355\1\130\1\356\1\0\1\357\76\130\1\346"+ - "\2\130\3\346\1\130\1\360\1\346\6\130\1\361\1\130"+ - "\1\356\1\351\1\352\15\130\24\346\1\130\12\346\3\130"+ - "\4\346\1\130\4\346\147\130\1\353\1\130\1\356\1\351"+ - "\1\362\73\130\30\0\1\363\113\0\1\353\100\0\1\137"+ - "\1\0\1\137\1\0\10\137\27\0\24\137\1\0\12\137"+ - "\3\0\4\137\1\0\4\137\115\0\1\364\7\0\15\141"+ - "\1\0\3\141\1\0\1\365\1\141\1\366\1\141\1\367"+ - "\76\141\1\370\2\141\3\370\1\141\2\370\1\141\1\0"+ - "\3\141\1\0\1\365\1\141\1\366\1\141\1\367\15\141"+ - "\24\370\1\141\12\370\3\141\4\370\1\141\4\370\6\141"+ - "\1\370\2\141\3\370\1\141\2\370\1\141\1\371\3\141"+ - "\1\0\1\365\1\141\1\366\1\141\1\367\15\141\24\370"+ - "\1\141\12\370\3\141\4\370\1\141\4\370\3\141\3\0"+ - "\1\346\2\0\3\346\1\0\2\346\12\0\1\352\15\0"+ - "\24\346\1\0\12\346\3\0\4\346\1\0\4\346\3\0"+ - "\122\141\1\0\1\372\1\0\1\372\1\0\10\372\1\373"+ - "\2\0\1\374\1\373\22\0\24\372\1\0\12\372\3\0"+ - "\4\372\1\0\4\372\4\0\1\375\1\0\1\375\1\0"+ - "\10\375\1\376\2\0\1\377\1\376\22\0\24\375\1\0"+ - "\12\375\3\0\4\375\1\0\4\375\3\0\15\u0100\1\154"+ - "\3\u0100\1\154\101\u0100\1\u0101\1\u0100\1\u0101\1\u0100\5\u0101"+ - "\1\u0100\1\u0101\1\u0100\1\0\2\u0100\1\u0102\1\0\22\u0100"+ - "\24\u0101\1\u0100\12\u0101\3\u0100\4\u0101\1\u0100\4\u0101\6\u0100"+ - "\1\u0103\2\u0100\3\u0103\1\u0100\1\u0104\1\u0103\1\u0100\1\154"+ - "\3\u0100\1\154\22\u0100\24\u0103\1\u0100\12\u0103\3\u0100\4\u0103"+ - "\1\u0100\4\u0103\3\u0100\1\0\1\u0105\1\0\1\u0105\1\0"+ - "\10\u0105\1\u0106\2\0\1\u0107\1\u0106\22\0\24\u0105\1\0"+ - "\12\u0105\3\0\4\u0105\1\0\4\u0105\4\0\1\u0108\1\0"+ - "\1\u0108\1\0\10\u0108\1\u0109\2\0\1\u010a\1\u0109\22\0"+ - "\24\u0108\1\0\12\u0108\3\0\4\u0108\1\0\4\u0108\4\0"+ - "\1\162\1\0\1\162\1\0\10\162\27\0\24\162\1\0"+ - "\12\162\3\0\4\162\1\0\4\162\33\0\1\u010b\72\0"+ - "\1\u010c\1\0\1\u010c\1\0\10\u010c\2\u010d\2\0\1\u010d"+ - "\5\0\1\u010e\14\0\24\u010c\1\0\12\u010c\3\0\4\u010c"+ - "\1\0\4\u010c\4\0\1\167\3\0\1\167\3\0\1\167"+ - "\111\0\1\167\3\0\1\167\1\230\2\0\1\167\113\0"+ - "\1\u010f\2\0\3\u010f\1\0\2\u010f\30\0\24\u010f\1\0"+ - "\12\u010f\3\0\4\u010f\1\0\4\u010f\3\0\34\175\1\u0110"+ - "\121\175\1\u0110\1\u0111\64\175\34\177\1\u0112\121\177\1\u0112"+ - "\1\u0113\64\177\15\201\1\202\3\201\1\202\14\201\1\202"+ - "\4\201\1\202\56\201\15\0\1\u0114\104\0\15\201\1\202"+ - "\3\201\1\202\13\201\1\u0115\1\202\4\201\1\202\56\201"+ - "\30\0\1\u0116\121\0\1\254\106\0\2\210\2\0\1\210"+ - "\100\0\33\26\1\0\2\26\1\0\4\26\1\0\5\26"+ - "\1\0\1\26\1\0\4\26\2\0\5\26\3\0\12\26"+ - "\1\0\15\26\27\0\1\u0117\121\0\1\u0117\41\0\1\u0118"+ - "\3\0\1\u0118\113\0\1\u0119\3\0\1\u0119\27\0\1\216"+ - "\1\0\1\217\1\0\1\216\3\0\1\216\54\0\1\217"+ - "\34\0\1\167\2\0\1\u011a\1\167\3\0\1\167\17\0"+ - "\1\u011a\72\0\1\65\120\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\5\41\1\u011b\1\41\1\u011c\14\41\1\0"+ - "\3\41\1\u011b\1\41\1\u011c\4\41\3\0\4\41\1\0"+ + "\1\41\1\0\10\41\27\0\1\41\1\u0233\13\41\1\u0233"+ + "\7\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u0234"+ + "\10\41\1\u0234\11\41\1\0\12\41\3\0\4\41\1\0"+ "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\4\41\1\u011d\14\41\1\u011d\2\41\1\0\12\41\3\0"+ + "\25\41\1\0\1\u0235\3\41\1\u0235\5\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\11\41\1\u0236\13\41\1\0\6\41\1\u0236\3\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\1\41\1\u0237\13\41\1\u0237\7\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\2\41\1\u0238\5\41\27\0\10\41"+ + "\1\u0238\14\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\2\41"+ + "\1\u0239\10\41\1\u0239\11\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\3\41\1\u023a\2\41\1\u023a\16\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\4\41\1\u023b\14\41\1\u023b\3\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\17\41\1\u023c\5\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\12\41"+ + "\3\0\1\41\1\u023d\2\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\7\41\1\u023e\15\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\24\41\1\u023f\1\0"+ + "\2\41\1\u023f\7\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\16\41\1\u0240"+ + "\6\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\25\41\1\0"+ + "\11\41\1\u0241\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\11\41\1\u0242\13\41"+ + "\1\0\6\41\1\u0242\3\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\3\41"+ + "\1\u0243\2\41\1\u0243\16\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\3\41"+ + "\1\u0244\4\41\27\0\17\41\1\u0244\5\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\24\41\1\u0245\1\0\2\41\1\u0245"+ + "\7\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\7\41\1\u0246\15\41\1\0"+ + "\5\41\1\u0246\4\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u0247"+ + "\15\41\1\0\5\41\1\u0247\4\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\24\41\1\u0248\1\0\2\41\1\u0248\7\41\3\0\4\41"+ + "\1\0\4\41\56\0\1\u0213\23\0\1\u0213\26\0\1\u0249"+ + "\12\0\1\u0213\47\0\1\u0249\2\0\1\u0217\76\0\1\u0214"+ + "\13\0\1\u0214\131\0\1\u020f\3\0\1\u020f\44\0\1\u0213"+ + "\52\0\1\u0217\140\0\1\u0213\70\0\1\u024a\22\0\1\u024a"+ + "\104\0\1\u024b\16\0\1\u024b\70\0\1\u024c\2\0\1\u024c"+ + "\51\0\1\41\1\0\1\41\1\0\10\41\2\u024d\2\0"+ + "\1\u024d\22\0\25\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\u024e\1\0\10\41\27\0"+ + "\22\41\1\u024e\2\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\24\41\1\u024f\1\0\2\41\1\u024f\7\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u0250\1\0\10\41"+ + "\27\0\22\41\1\u0250\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\25\41\1\0\12\41\3\0\4\41\1\0\2\41"+ + "\1\u0251\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\5\41\1\u0252\17\41\1\0\3\41\1\u0252\6\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u0253"+ + "\1\0\10\41\27\0\22\41\1\u0253\2\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\14\41\1\u0254\10\41\1\0\1\41"+ + "\1\u0254\10\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\7\41\1\u0255\15\41"+ + "\1\0\5\41\1\u0255\4\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\11\41\1\u0256\3\0\4\41\1\0\4\41\3\0"+ + "\15\202\1\203\3\202\1\203\14\202\1\203\4\202\1\203"+ + "\5\202\1\u0257\23\202\1\u0257\25\202\53\0\1\u0258\23\0"+ + "\1\u0258\24\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\14\41\1\u0259\10\41\1\0\1\41\1\u0259\10\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\u025a\1\0"+ + "\10\41\27\0\22\41\1\u025a\2\41\1\0\12\41\3\0"+ "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\14\41\1\u011e\7\41\1\0\1\41\1\u011e"+ - "\10\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\2\41\1\u011f\10\41\1\u011f"+ - "\10\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\11\41\1\u0120\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\1\u0121"+ - "\3\41\1\u0121\5\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\u0122\1\0\1\u0122\1\0\1\u0122\1\0\3\u0122\34\0"+ - "\1\u0122\1\0\1\u0122\3\0\1\u0122\2\0\1\u0122\3\0"+ - "\1\u0122\1\0\3\u0122\3\0\1\u0122\33\0\1\u0123\3\0"+ - "\1\u0123\111\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\41\1\u0124\13\41\1\u0124\6\41\1\0\12\41\3\0"+ + "\10\41\27\0\11\41\1\u025b\13\41\1\0\6\41\1\u025b"+ + "\3\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\7\41\1\u025c\15\41\1\0"+ + "\5\41\1\u025c\4\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\11\41\1\u025d"+ + "\13\41\1\0\6\41\1\u025d\3\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\25\41\1\0\11\41\1\u025e\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\1\u025f\3\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\1\u0260\11\41"+ + "\1\u0260\12\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\20\0\1\u01e8\3\0\1\u01e9\116\0\1\u0261\3\0\1\u0262"+ + "\173\0\1\u0263\3\0\1\u0263\25\0\1\41\1\0\1\u0264"+ + "\1\0\10\41\27\0\22\41\1\u0264\2\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\24\41\1\u0265\1\0\2\41\1\u0265"+ + "\7\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\2\41\1\u0266\10\41\1\u0266"+ + "\11\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u0267"+ + "\15\41\1\0\5\41\1\u0267\4\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\u0268\1\0\10\41\27\0"+ + "\22\41\1\u0268\2\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\2\41\1\u0269\10\41\1\u0269\11\41\1\0\12\41\3\0"+ "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\11\41\1\u0125\12\41\1\0\6\41\1\u0125"+ - "\3\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\3\41\1\u0126\2\41\1\u0126"+ - "\15\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\3\41\1\u0127"+ - "\2\41\1\u0127\15\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\36\0\1\u0128\67\0\1\41\1\0\1\u0129\1\0"+ - "\10\41\27\0\22\41\1\u0129\1\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\241\1\0\1\241\1\0"+ - "\10\241\27\0\24\241\1\0\12\241\3\0\4\241\1\0"+ - "\4\241\3\0\3\242\1\0\2\242\3\0\2\242\1\0"+ - "\6\242\1\243\1\244\1\245\1\242\1\0\15\242\24\0"+ - "\1\242\12\0\3\242\4\0\1\242\4\0\147\242\1\0"+ - "\1\244\1\245\1\242\1\246\73\242\30\0\1\65\120\0"+ - "\1\65\3\0\1\u012a\146\0\1\u012b\11\0\1\u012b\63\0"+ - "\1\u012c\102\0\2\253\2\0\1\253\115\0\2\254\2\0"+ - "\1\254\101\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\7\41\1\u012d\14\41\1\0\5\41\1\u012d\4\41\3\0"+ - "\4\41\1\0\3\41\1\u012e\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\14\41\1\u012f\7\41\1\0\1\41"+ - "\1\u012f\10\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\1\41\1\u0130\13\41"+ - "\1\u0130\6\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\4\41"+ - "\1\255\14\41\1\255\2\41\1\0\12\41\3\0\4\41"+ + "\10\41\27\0\4\41\1\u026a\14\41\1\u026a\3\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\24\41\1\u026b\1\0\2\41"+ + "\1\u026b\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u026c\1\0\10\41\27\0\22\41\1\u026c\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\11\41\1\u026d\13\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u026e\1\0\10\41\27\0\22\41\1\u026e\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\10\41"+ + "\1\u026f\1\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\11\41\1\u0270\13\41"+ + "\1\0\6\41\1\u0270\3\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ + "\1\u0271\15\41\1\0\5\41\1\u0271\4\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u0272\1\0\10\41"+ + "\27\0\22\41\1\u0272\2\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\51\0\1\u0273\10\0\1\u0273\46\0\1\u0213"+ + "\62\0\1\u0213\37\0\1\u0274\62\0\1\u0274\116\0\1\u0213"+ + "\16\0\1\u0213\30\0\1\u0275\5\0\2\u024d\2\0\1\u024d"+ + "\32\0\1\u0275\47\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\25\41\1\0\12\41\3\0\4\41\1\0\2\41"+ + "\1\u0276\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\7\41\1\u0277\15\41\1\0\5\41\1\u0277\4\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\14\41\1\u0278\10\41\1\0\1\41"+ + "\1\u0278\10\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\12\41"+ + "\3\0\4\41\1\0\2\41\1\u0279\1\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\7\41\1\u027a\15\41"+ + "\1\0\5\41\1\u027a\4\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\4\41\1\0\2\41\1\u027b\1\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\14\41"+ + "\1\u027c\10\41\1\0\1\41\1\u027c\10\41\3\0\4\41"+ "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\12\41\3\0\2\41\1\u0131\1\41"+ + "\27\0\25\41\1\0\12\41\3\0\4\41\1\0\2\41"+ + "\1\u027d\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\u027e\11\41\1\u027e\12\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\3\0\15\202\1\203\3\202\1\203"+ + "\14\202\1\203\4\202\1\203\26\202\1\u027f\3\202\1\u027f"+ + "\24\202\15\0\2\u0280\2\0\1\u0280\102\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\2\41\1\u0281\10\41\1\u0281"+ + "\11\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u0282"+ + "\10\41\1\u0282\11\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\24\41\1\u0283\1\0\2\41\1\u0283\7\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\u0284\1\0\10\41"+ + "\27\0\22\41\1\u0284\2\41\1\0\12\41\3\0\4\41"+ "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\12\41\3\0\1\41\1\u0132\2\41"+ + "\27\0\3\41\1\u0285\2\41\1\u0285\16\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\20\0\1\u0261\160\0\1\u0286"+ + "\23\0\1\u0286\24\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\25\41\1\0\12\41\3\0\4\41\1\0\2\41"+ + "\1\u0287\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\7\41\1\u0288\15\41\1\0\5\41\1\u0288\4\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\24\41\1\u0289\1\0\2\41\1\u0289"+ + "\7\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\24\41\1\u028a\1\0\2\41"+ + "\1\u028a\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\1\u028b\11\41\1\u028b"+ + "\12\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\u028c\1\0\10\41\27\0\22\41\1\u028c"+ + "\2\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\25\41\1\0"+ + "\12\41\3\0\4\41\1\0\2\41\1\u028d\1\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\22\41\1\u028e"+ + "\2\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\3\41\1\u028f"+ + "\2\41\1\u028f\16\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\u0290\1\0\10\41\27\0"+ + "\22\41\1\u0290\2\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\u0291\1\0\10\41\27\0"+ + "\22\41\1\u0291\2\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\u0292\1\0\10\41\27\0"+ + "\22\41\1\u0292\2\41\1\0\12\41\3\0\4\41\1\0"+ + "\4\41\52\0\1\u0213\2\0\1\u0213\115\0\1\u0213\13\0"+ + "\1\u0213\106\0\1\u0293\13\0\1\u0293\42\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\12\41\3\0"+ + "\4\41\1\0\2\41\1\u0294\1\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\5\41\1\u0295\17\41\1\0"+ + "\3\41\1\u0295\6\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\25\41\1\0"+ + "\1\u0296\3\41\1\u0296\5\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0297\1\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0298\1\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0299\1\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ + "\1\u029a\1\0\2\41\1\u029a\7\41\3\0\4\41\1\0"+ + "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\4\41\1\u029b\14\41\1\u029b\3\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\3\0\15\202\1\203\3\202\1\203"+ + "\14\202\1\203\4\202\1\203\7\202\1\u029c\23\202\1\u029c"+ + "\23\202\15\0\2\u0280\2\0\1\u0280\33\0\1\u029d\22\0"+ + "\1\u029d\23\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\24\41\1\u029e\1\0\2\41\1\u029e\7\41\3\0\4\41"+ "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\11\41\1\u0133\12\41\1\0\6\41\1\u0133\3\41"+ + "\27\0\1\41\1\u029f\13\41\1\u029f\7\41\1\0\12\41"+ "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\2\41\1\u0134\5\41\27\0\10\41\1\u0134\12\41"+ - "\1\u0135\1\0\2\41\1\u0135\7\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u0136\1\0\10\41\27\0"+ - "\22\41\1\u0136\1\41\1\0\12\41\3\0\4\41\1\0"+ + "\1\0\10\41\27\0\25\41\1\0\11\41\1\u02a0\3\0"+ + "\4\41\1\0\4\41\33\0\1\u02a1\73\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\1\u02a2\11\41\1\u02a2\12\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u02a3\1\0\10\41\27\0\22\41\1\u02a3\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\u02a4\1\0\10\41\27\0\22\41\1\u02a4\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\2\41\1\u02a5\5\41\27\0\10\41"+ + "\1\u02a5\14\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\u02a6"+ + "\11\41\1\u02a6\12\41\1\0\12\41\3\0\4\41\1\0"+ "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\7\41\1\u0137\4\41\1\u0138\6\41\1\u0139\1\0\1\41"+ - "\1\u0138\1\u0139\2\41\1\u0137\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\7\41\1\u013a\4\41\1\u0138\6\41\1\u0139\1\0\1\41"+ - "\1\u0138\1\u0139\2\41\1\u0137\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\22\41\1\u013b\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\14\41\1\u013c\7\41\1\0\1\41\1\u013c\10\41\3\0"+ + "\1\u02a7\11\41\1\u02a7\12\41\1\0\12\41\3\0\4\41"+ + "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\7\41\1\u02a8\15\41\1\0\5\41\1\u02a8\4\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\4\41\1\u02a9\14\41\1\u02a9\3\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\47\0\1\u02aa"+ + "\11\0\1\u02aa\45\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\u02ab\11\41\1\u02ab\12\41\1\0\12\41\3\0"+ "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\24\41\1\0\1\u013d\3\41\1\u013d\5\41"+ + "\10\41\27\0\2\41\1\u02ac\10\41\1\u02ac\11\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\12\41\3\0"+ + "\4\41\1\0\2\41\1\u02ad\1\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\25\41\1\0\12\41\3\0"+ + "\4\41\1\0\2\41\1\u02ae\1\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\1\u02af\11\41\1\u02af\12\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\12\41"+ + "\3\0\4\41\1\0\2\41\1\u02b0\1\41\3\0\15\202"+ + "\1\203\3\202\1\203\6\202\1\u02b1\5\202\1\203\4\202"+ + "\1\203\57\202\46\0\1\u02b2\10\0\1\u02b2\44\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\11\41"+ + "\1\u02b3\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\u02b4\1\0\10\41\27\0\22\41\1\u02b4\2\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\20\0\2\u02a1\2\0"+ + "\1\u02a1\102\0\1\41\1\0\1\41\1\0\10\41\27\0"+ + "\3\41\1\u02b5\2\41\1\u02b5\16\41\1\0\12\41\3\0"+ + "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ + "\2\41\1\u02b6\5\41\27\0\10\41\1\u02b6\14\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\3\41\1\u02b7\2\41\1\u02b7"+ + "\16\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\14\41\1\u02b8"+ + "\10\41\1\0\1\41\1\u02b8\10\41\3\0\4\41\1\0"+ + "\4\41\113\0\1\u02b9\13\0\1\41\1\0\1\41\1\0"+ + "\10\41\27\0\3\41\1\u02ba\2\41\1\u02ba\16\41\1\0"+ + "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\24\41\1\u02bb\1\0\2\41"+ + "\1\u02bb\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\12\41"+ + "\3\0\1\41\1\u02bc\2\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\25\41\1\0\12\41"+ + "\3\0\4\41\1\0\2\41\1\u02bd\1\41\3\0\15\202"+ + "\1\u02be\1\u02b1\2\202\1\u02be\14\202\1\203\4\202\1\203"+ + "\57\202\47\0\1\u02bf\2\0\1\u02bf\51\0\1\41\1\0"+ + "\1\41\1\0\10\41\27\0\24\41\1\u02c0\1\0\2\41"+ + "\1\u02c0\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ + "\1\0\1\41\1\0\10\41\27\0\24\41\1\u02c1\1\0"+ + "\2\41\1\u02c1\7\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\25\41\1\0"+ + "\12\41\3\0\4\41\1\0\2\41\1\u02c2\1\41\4\0"+ + "\1\41\1\0\1\u02c3\1\0\10\41\27\0\22\41\1\u02c3"+ + "\2\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ + "\1\41\1\0\1\41\1\0\10\41\27\0\25\41\1\0"+ + "\1\u02c4\3\41\1\u02c4\5\41\3\0\4\41\1\0\4\41"+ + "\65\0\1\u02c5\16\0\1\u02c5\22\0\1\41\1\0\1\u02c6"+ + "\1\0\10\41\27\0\22\41\1\u02c6\2\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u02c7"+ + "\1\0\10\41\27\0\22\41\1\u02c7\2\41\1\0\12\41"+ "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\2\41\1\u013e\10\41\1\u013e\10\41"+ - "\1\0\10\41\1\u013f\1\41\3\0\1\u0140\3\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\41\1\u0141\13\41\1\u0141\6\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\12\41\1\u0142\11\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\14\41\1\u0143\7\41\1\0\1\41\1\u0143"+ - "\10\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\11\41\1\u0144\12\41\1\0"+ - "\6\41\1\u0144\3\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u0145"+ - "\10\41\1\u0145\1\41\1\u0146\6\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\2\41\1\u0145\10\41\1\u0145\10\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\5\41\1\u0147\16\41\1\0"+ - "\3\41\1\u0147\6\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u0148"+ - "\14\41\1\0\5\41\1\u0148\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\u0149\11\41\1\u0149\11\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\12\41\1\u014a\11\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\41\1\u014b\13\41\1\u014b\6\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\5\41\1\u014c\16\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\3\41\1\u014d\2\41\1\u014d\15\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\7\41\1\u014e\1\41"+ - "\1\u014f\2\41\1\u0150\7\41\1\0\1\41\1\u0150\3\41"+ - "\1\u014e\1\u014f\3\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\1\u0151\1\41"+ - "\1\u0152\7\41\1\u0151\1\u0152\10\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\1\u0153\4\41\1\u0154\4\41\1\u0153\11\41"+ - "\1\0\3\41\1\u0154\6\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\41"+ - "\1\u0155\13\41\1\u0155\6\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\3\41"+ - "\1\u0156\4\41\27\0\17\41\1\u0156\4\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\14\41\1\u0157\7\41\1\0\1\41"+ - "\1\u0157\10\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u0158\1\0\10\41\27\0\22\41\1\u0158\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\3\0\122\240"+ - "\55\0\1\u0159\21\0\1\u0159\66\0\1\u015a\4\0\1\u015b"+ - "\4\0\1\u015a\15\0\1\u015b\35\0\1\u015c\52\0\1\u015c"+ - "\41\0\1\u015d\62\0\1\u015d\100\0\1\u015e\13\0\1\u015e"+ - "\104\0\1\u015f\11\0\1\u015f\112\0\1\u0160\2\0\1\u0160"+ - "\122\0\1\u0161\22\0\1\u0161\72\0\1\u0162\2\0\1\u0162"+ - "\50\0\1\41\1\0\1\u0163\1\0\10\41\27\0\22\41"+ - "\1\u0163\1\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\5\41"+ - "\1\u0164\16\41\1\0\3\41\1\u0164\6\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\2\41"+ - "\1\u0165\5\41\27\0\3\41\1\u0166\1\u0167\1\41\1\u0166"+ - "\1\u0168\1\u0165\1\u0169\7\41\1\u0167\1\41\1\u016a\1\0"+ - "\2\41\1\u016a\2\41\1\u0168\1\u0169\2\41\1\u016b\3\0"+ - "\1\41\1\u016c\2\41\1\0\4\41\3\0\3\123\1\0"+ - "\2\123\3\0\2\123\1\0\6\123\1\350\1\351\1\344"+ - "\1\123\1\0\15\123\24\0\1\123\12\0\3\123\4\0"+ - "\1\123\4\0\25\123\1\0\1\351\1\344\1\123\1\354"+ - "\73\123\1\0\1\346\1\0\1\346\1\0\10\346\27\0"+ - "\24\346\1\0\12\346\3\0\4\346\1\0\4\346\1\0"+ - "\1\u016d\1\0\1\123\1\347\1\123\1\347\1\123\10\347"+ - "\5\123\1\343\1\0\1\344\1\123\1\345\15\123\24\347"+ - "\1\123\12\347\3\123\4\347\1\123\4\347\1\123\1\u016e"+ - "\1\123\3\130\1\0\2\130\3\0\2\130\1\0\6\130"+ - "\1\361\1\130\1\356\1\351\1\0\15\130\24\0\1\130"+ - "\12\0\3\130\4\0\1\130\4\0\25\130\1\0\1\130"+ - "\1\356\1\351\1\362\74\130\1\360\1\130\1\360\1\130"+ - "\10\360\5\130\1\355\1\130\1\356\1\0\1\357\15\130"+ - "\24\360\1\130\12\360\3\130\4\360\1\130\4\360\1\130"+ - "\1\u016f\1\130\3\141\1\u0170\2\141\3\u0170\2\141\1\u0170"+ - "\1\141\1\0\3\141\1\0\1\u0171\1\141\1\366\1\141"+ - "\1\u0172\15\141\24\u0170\1\141\12\u0170\3\141\4\u0170\1\141"+ - "\4\u0170\20\141\1\0\3\141\1\0\115\141\1\0\3\141"+ - "\1\0\1\u0172\1\141\1\366\1\141\1\u0173\74\141\1\370"+ - "\1\141\1\370\1\141\10\370\1\u0174\2\141\1\u0175\1\u0174"+ - "\1\365\1\141\1\366\1\141\1\367\15\141\24\370\1\141"+ - "\12\370\3\141\4\370\1\141\4\370\3\141\3\0\1\u0176"+ - "\2\0\3\u0176\1\0\2\u0176\30\0\24\u0176\1\0\12\u0176"+ - "\3\0\4\u0176\1\0\4\u0176\20\0\1\373\3\0\1\373"+ - "\115\0\1\376\3\0\1\376\100\0\15\u0100\1\0\3\u0100"+ - "\1\0\101\u0100\1\u0103\1\u0100\1\u0103\1\u0100\5\u0103\1\u0104"+ - "\1\u0103\1\u0104\1\u0177\2\u0100\1\u0178\1\u0177\22\u0100\24\u0103"+ - "\1\u0100\12\u0103\3\u0100\4\u0103\1\u0100\4\u0103\4\u0100\1\u0104"+ - "\1\u0100\1\u0104\1\u0100\10\u0104\1\u0179\2\u0100\1\u017a\1\u0179"+ - "\22\u0100\24\u0104\1\u0100\12\u0104\3\u0100\4\u0104\1\u0100\4\u0104"+ - "\3\u0100\15\0\1\u0106\3\0\1\u0106\115\0\1\u0109\3\0"+ - "\1\u0109\115\0\2\u010d\2\0\1\u010d\5\0\1\u010e\73\0"+ - "\1\u010f\1\0\1\u010f\1\0\10\u010f\27\0\24\u010f\1\0"+ - "\12\u010f\3\0\4\u010f\1\0\4\u010f\3\0\34\175\1\u0110"+ - "\1\u017b\64\175\34\177\1\u0112\1\u017c\64\177\15\201\1\202"+ - "\3\201\1\202\14\201\1\202\4\201\1\202\14\201\1\u017d"+ - "\11\201\1\u017d\27\201\15\0\2\u0116\2\0\1\u0116\202\0"+ - "\1\u017e\64\0\1\u017f\13\0\1\u017f\41\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\7\41\1\u0180\14\41\1\0"+ - "\5\41\1\u0180\4\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\u0181\1\0\10\41\27\0\22\41\1\u0181"+ - "\1\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\2\41\1\u0182\5\41\27\0"+ - "\4\41\1\u0183\1\u0184\2\41\1\u0182\3\41\1\u0185\4\41"+ - "\1\u0183\2\41\1\0\1\41\1\u0185\1\41\1\u0184\6\41"+ - "\3\0\2\41\1\u0186\1\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u0187\1\0\10\41\27\0\22\41\1\u0187\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\11\41\1\u0188\12\41"+ - "\1\0\6\41\1\u0188\3\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\u0189"+ - "\11\41\1\u0189\11\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\7\41\1\u018a\14\41\1\0\5\41\1\u018a\4\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\u018b\1\0"+ - "\10\41\27\0\22\41\1\u018b\1\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\14\41\1\u018c\7\41\1\0\1\41\1\u018c"+ - "\10\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\2\41\1\u018d\10\41\1\u018d"+ - "\10\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\23\41\1\u018e"+ - "\1\0\2\41\1\u018e\7\41\3\0\4\41\1\0\4\41"+ - "\36\0\1\u012a\67\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\2\41\1\u018f\10\41\1\u018f\10\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\6\0\1\u0190\2\0\3\u0190"+ - "\1\0\2\u0190\2\0\1\u012a\4\0\1\u0191\20\0\24\u0190"+ - "\1\0\12\u0190\1\u0192\2\0\4\u0190\1\0\4\u0190\72\0"+ - "\1\u0193\3\0\1\u0193\43\0\2\u0194\2\0\1\u0194\101\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\10\41\1\u0195\1\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\10\41\1\u0196\1\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u0197"+ - "\14\41\1\0\5\41\1\u0197\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\2\41\1\u0198\10\41\1\u0198\10\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\u0199\1\0"+ - "\10\41\27\0\22\41\1\u0199\1\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\11\41\1\u019a\12\41\1\0\6\41\1\u019a"+ - "\3\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\2\41\1\u019b\10\41\1\u019b"+ - "\10\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\11\41\1\u019c"+ - "\12\41\1\0\6\41\1\u019c\3\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u019d\1\0\10\41\27\0"+ - "\22\41\1\u019d\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\7\41\1\u019e\14\41\1\0\5\41\1\u019e\4\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\11\41\1\u019f\12\41\1\0\6\41\1\u019f"+ - "\3\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\15\41\1\u01a0\6\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\u01a1\1\0\10\41\27\0\22\41\1\u01a1\1\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\11\41\1\u01a2\12\41\1\0"+ - "\6\41\1\u01a2\3\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\5\41\1\u01a3"+ - "\16\41\1\0\3\41\1\u01a3\6\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u01a4\1\0\10\41\27\0"+ - "\22\41\1\u01a4\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\u01a5\11\41\1\u01a5\11\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\13\41\1\u01a6\10\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\7\41\1\u01a7\14\41\1\0\5\41\1\u01a7\4\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\2\41\1\u01a8\5\41\27\0\10\41\1\u01a8\13\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\7\41\1\u01a9\14\41"+ - "\1\0\5\41\1\u01a9\4\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\5\41"+ - "\1\u01aa\16\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ - "\1\u01ab\14\41\1\0\5\41\1\u01ab\4\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\u01ac\11\41\1\u01ac\11\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\3\41\1\u01ad\4\41\27\0\17\41\1\u01ad\4\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\11\41\1\u01ae\12\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\21\41\1\u01af\2\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\7\41\1\u01b0\4\41\1\u01b1"+ - "\7\41\1\0\1\41\1\u01b1\3\41\1\u01b0\4\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\23\41\1\u01b2\1\0\2\41\1\u01b2\7\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\11\41\1\u01b3\12\41\1\0\6\41"+ - "\1\u01b3\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u01b4\1\0\10\41\27\0\22\41\1\u01b4\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\3\41\1\u01b5\2\41"+ - "\1\u01b5\15\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\14\41"+ - "\1\u01b6\7\41\1\0\1\41\1\u01b6\10\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\7\41\1\u01b7\14\41\1\0\5\41\1\u01b7\4\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\3\41\1\u01b8\2\41\1\u01b8\11\41"+ - "\1\u01b9\3\41\1\0\12\41\3\0\4\41\1\0\1\u01b9"+ - "\3\41\4\0\1\41\1\0\1\u01ba\1\0\10\41\27\0"+ - "\22\41\1\u01ba\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\11\41\1\u01bb\12\41\1\0\6\41\1\u01bb\3\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\u01bc\1\0"+ - "\10\41\27\0\22\41\1\u01bc\1\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\47\0\1\u01bd\11\0\1\u01bd\107\0"+ - "\1\u01be\11\0\1\u01be\112\0\1\u01bf\2\0\1\u01bf\163\0"+ - "\1\u01c0\53\0\1\u01c1\10\0\1\u01c1\107\0\1\u01c2\13\0"+ - "\1\u01c2\141\0\1\u01c3\73\0\1\u01c4\22\0\1\u01c4\70\0"+ - "\1\u01c5\13\0\1\u01c5\120\0\1\u01c6\11\0\1\u01c6\30\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\11\41\1\u01c7"+ - "\12\41\1\0\6\41\1\u01c7\3\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\11\41\1\u01c8\12\41\1\0\6\41\1\u01c8\3\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\5\41\1\u01c9\16\41\1\0\3\41\1\u01c9"+ - "\4\41\1\u01ca\1\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u01cb"+ - "\10\41\1\u01cb\10\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\5\41\1\u01cc\16\41\1\0\3\41\1\u01cc\6\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\1\41\1\u01cd\13\41\1\u01cd\6\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\5\41\1\u01ce\16\41\1\0"+ - "\3\41\1\u01ce\6\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\11\41\1\u01cf"+ - "\12\41\1\0\6\41\1\u01cf\3\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\2\41\1\u01d0\10\41\1\u01d0\10\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\u01d1\1\0"+ - "\10\41\27\0\22\41\1\u01d1\1\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\u0170\1\0\1\u0170\1\0"+ - "\10\u0170\27\0\24\u0170\1\0\12\u0170\3\0\4\u0170\1\0"+ - "\4\u0170\1\0\1\u01d2\1\0\3\141\1\0\2\141\3\0"+ - "\2\141\1\0\1\141\1\0\3\141\1\0\1\u0171\1\141"+ - "\1\366\1\141\1\0\15\141\24\0\1\141\12\0\3\141"+ - "\4\0\1\141\4\0\20\141\1\0\3\141\2\0\1\141"+ - "\1\366\1\141\1\u0173\110\141\1\u0174\3\141\1\u0174\1\365"+ - "\1\141\1\366\1\141\1\367\73\141\1\0\1\u0176\1\0"+ - "\1\u0176\1\0\10\u0176\1\u0174\2\0\1\u01d3\1\u0174\22\0"+ - "\24\u0176\1\0\12\u0176\3\0\4\u0176\1\0\4\u0176\3\0"+ - "\15\u0100\1\u0177\3\u0100\1\u0177\115\u0100\1\u0179\3\u0100\1\u0179"+ - "\100\u0100\15\201\1\202\3\201\1\202\14\201\1\202\4\201"+ - "\1\202\23\201\1\u01d4\3\201\1\u01d4\26\201\71\0\1\u01d5"+ - "\3\0\1\u01d5\75\0\1\u01d6\22\0\1\u01d6\26\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\3\41\1\u01d7\2\41"+ - "\1\u01d7\15\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\u01d8"+ - "\11\41\1\u01d8\11\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u01d9\1\0\10\41\27\0"+ - "\22\41\1\u01d9\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\2\41\1\u01da"+ - "\5\41\27\0\10\41\1\u01da\13\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\24\41\1\0\12\41\3\0\2\41\1\u01db"+ - "\1\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\24\41\1\0\11\41\1\u01dc\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\5\41\1\u01dd\16\41\1\0\3\41\1\u01dd\6\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\12\41\3\0\1\u01de"+ - "\3\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\2\41\1\u01df\10\41\1\u01df\10\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\u01e0\1\0\10\41\27\0\22\41\1\u01e0\1\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\11\41\1\u01e1\12\41\1\0"+ - "\6\41\1\u01e1\3\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u01e2"+ - "\14\41\1\0\5\41\1\u01e2\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\24\41\1\0\12\41\3\0\3\41\1\u01e3\1\0\4\41"+ - "\4\0\1\u0190\1\0\1\u0190\1\0\10\u0190\1\u01e4\3\0"+ - "\1\u01e5\22\0\24\u0190\1\0\12\u0190\3\0\4\u0190\1\0"+ - "\4\u0190\6\0\1\u01e6\2\0\3\u01e6\1\0\2\u01e6\30\0"+ - "\24\u01e6\1\0\12\u01e6\3\0\4\u01e6\1\0\4\u01e6\6\0"+ - "\1\u01e7\2\0\3\u01e7\1\0\2\u01e7\30\0\24\u01e7\1\0"+ - "\12\u01e7\3\0\4\u01e7\1\0\4\u01e7\50\0\1\u01e8\13\0"+ - "\1\u01e8\41\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\41\1\u01e9\13\41\1\u01e9\6\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\5\41\1\u01ea\16\41\1\0\3\41\1\u01ea"+ - "\6\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\1\41\1\u01eb\13\41\1\u01eb"+ - "\6\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\12\41\3\0\1\u01ec\3\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\14\41\1\u01ed\7\41"+ - "\1\0\1\41\1\u01ed\10\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\10\41\1\u01ee\1\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\2\41"+ - "\1\u01ef\10\41\1\u01ef\10\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\41\1\u01f0\13\41\1\u01f0\6\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u01f1"+ - "\1\0\10\41\27\0\2\41\1\u01f2\10\41\1\u01f2\6\41"+ - "\1\u01f1\1\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\10\41\1\u01f3\1\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\13\41"+ - "\1\u01f4\10\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ - "\1\u01f5\14\41\1\0\5\41\1\u01f5\4\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\u01f6\1\0\10\41"+ - "\27\0\22\41\1\u01f6\1\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\7\41\1\u01f7\14\41\1\0\5\41\1\u01f7\4\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\12\41\3\0\2\41"+ - "\1\u01f8\1\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\7\41\1\u01f9\14\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\5\41\1\u01fa\16\41\1\0\3\41"+ - "\1\u01fa\6\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\6\41\1\u01fb\15\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\23\41\1\u01fc\1\0"+ - "\2\41\1\u01fc\7\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u01fd"+ - "\10\41\1\u01fd\10\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\5\41\1\u01fe\16\41\1\0\3\41\1\u01fe\6\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\7\41\1\u01ff\14\41\1\0\5\41\1\u01ff"+ - "\4\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\24\41\1\0\11\41\1\u0200"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\2\41\1\u0201\10\41\1\u0201\10\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u0202\1\0\10\41\27\0\22\41\1\u0202\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\14\41\1\u0203\7\41"+ - "\1\0\1\41\1\u0203\10\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\u0204\1\0\10\41\27\0\22\41"+ - "\1\u0204\1\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ - "\1\u0205\14\41\1\0\5\41\1\u0205\4\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\2\41\1\u0206\10\41\1\u0206\10\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\3\41\1\u0207\2\41\1\u0207\15\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\5\41\1\u0208\16\41"+ - "\1\0\3\41\1\u0208\6\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ - "\1\u0209\14\41\1\0\5\41\1\u0209\4\41\3\0\4\41"+ - "\1\0\4\41\51\0\1\u020a\10\0\1\u020a\117\0\1\u020b"+ - "\21\0\1\u020b\70\0\1\u020c\10\0\1\u020c\45\0\1\u020d"+ - "\62\0\1\u020d\110\0\1\u020e\21\0\1\u020e\70\0\1\u020f"+ - "\10\0\1\u020f\52\0\1\u0210\52\0\1\u0210\41\0\1\u0211"+ - "\12\0\1\u020e\47\0\1\u0211\1\0\1\u0212\102\0\1\u0213"+ - "\22\0\1\u0213\30\0\1\u020a\62\0\1\u020a\34\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\4\41\1\u0214\14\41"+ - "\1\u0214\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\u0215\1\0\10\41\27\0\22\41"+ - "\1\u0215\1\41\1\0\12\41\3\0\4\41\1\0\4\41"+ + "\1\0\10\41\27\0\25\41\1\0\12\41\3\0\4\41"+ + "\1\0\2\41\1\u02c8\1\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\25\41\1\0\12\41\3\0\4\41"+ + "\1\0\2\41\1\u02c9\1\41\4\0\1\41\1\0\1\41"+ + "\1\0\10\41\27\0\5\41\1\u02ca\17\41\1\0\3\41"+ + "\1\u02ca\6\41\3\0\4\41\1\0\4\41\105\0\1\u02cb"+ + "\21\0\1\41\1\0\1\41\1\0\10\41\27\0\25\41"+ + "\1\0\12\41\3\0\4\41\1\0\2\41\1\u02cc\1\41"+ "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\11\41"+ - "\1\u0216\12\41\1\0\6\41\1\u0216\3\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\3\41\1\u0217\2\41\1\u0217\15\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\12\41\3\0\1\41"+ - "\1\u0218\2\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\1\41\1\u0219\13\41\1\u0219\6\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\2\41\1\u021a\10\41"+ - "\1\u021a\10\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\3\41"+ - "\1\u021b\2\41\1\u021b\15\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\2\41\1\u021c\10\41\1\u021c\10\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\11\41\1\u021d\12\41\1\0\6\41"+ - "\1\u021d\3\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\7\41\1\u021e\14\41"+ - "\1\0\5\41\1\u021e\4\41\3\0\4\41\1\0\4\41"+ - "\20\0\1\u0174\3\0\1\u0174\100\0\15\201\1\202\3\201"+ - "\1\202\14\201\1\202\4\201\1\202\1\201\1\u021f\13\201"+ - "\1\u021f\40\201\71\0\1\u0220\3\0\1\u0220\25\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\4\41\1\u0221\14\41"+ - "\1\u0221\2\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\41"+ - "\1\u0222\13\41\1\u0222\6\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\23\41\1\u0223\1\0\2\41\1\u0223\7\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\5\41\1\u0224\16\41\1\0\3\41\1\u0224"+ - "\6\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\5\41\1\u0225\16\41\1\0"+ - "\3\41\1\u0225\6\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\2\41\1\u0226\5\41\27\0"+ - "\10\41\1\u0226\13\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\23\41\1\u0227\1\0\2\41\1\u0227\7\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\11\41\1\u0228\12\41\1\0\6\41\1\u0228\3\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\5\41\1\u0229\16\41\1\0\3\41"+ - "\1\u0229\6\41\3\0\4\41\1\0\4\41\20\0\1\u01e4"+ - "\105\0\1\u01e6\1\0\1\u01e6\1\0\10\u01e6\6\0\1\u022a"+ - "\20\0\24\u01e6\1\0\12\u01e6\3\0\4\u01e6\1\0\4\u01e6"+ - "\4\0\1\u01e7\1\0\1\u01e7\1\0\10\u01e7\27\0\24\u01e7"+ - "\1\0\12\u01e7\1\u022b\2\0\4\u01e7\1\0\4\u01e7\54\0"+ - "\1\u022c\22\0\1\u022c\26\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\3\41\1\u022d\2\41\1\u022d\15\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\1\41\1\u022e\13\41\1\u022e"+ - "\6\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u022f"+ - "\10\41\1\u022f\10\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\24\41\1\0\1\u0230\3\41\1\u0230\5\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\11\41\1\u0231\12\41\1\0\6\41\1\u0231\3\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\1\41\1\u0232\13\41\1\u0232\6\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\2\41\1\u0233\5\41\27\0\10\41"+ - "\1\u0233\13\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\2\41"+ - "\1\u0234\10\41\1\u0234\10\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\3\41\1\u0235\2\41\1\u0235\15\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\4\41\1\u0236\14\41\1\u0236\2\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\17\41\1\u0237\4\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\12\41"+ - "\3\0\1\41\1\u0238\2\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\23\41\1\u0239\1\0"+ - "\2\41\1\u0239\7\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\16\41\1\u023a"+ - "\5\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\11\41\1\u023b\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\11\41\1\u023c\12\41"+ - "\1\0\6\41\1\u023c\3\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\3\41"+ - "\1\u023d\2\41\1\u023d\15\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\3\41"+ - "\1\u023e\4\41\27\0\17\41\1\u023e\4\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\23\41\1\u023f\1\0\2\41\1\u023f"+ - "\7\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\7\41\1\u0240\14\41\1\0"+ - "\5\41\1\u0240\4\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u0241"+ - "\14\41\1\0\5\41\1\u0241\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\23\41\1\u0242\1\0\2\41\1\u0242\7\41\3\0\4\41"+ - "\1\0\4\41\56\0\1\u020e\22\0\1\u020e\26\0\1\u0243"+ - "\12\0\1\u020e\47\0\1\u0243\1\0\1\u0212\76\0\1\u020f"+ - "\13\0\1\u020f\127\0\1\u020a\3\0\1\u020a\44\0\1\u020e"+ - "\51\0\1\u0212\137\0\1\u020e\70\0\1\u0244\21\0\1\u0244"+ - "\104\0\1\u0245\15\0\1\u0245\70\0\1\u0246\2\0\1\u0246"+ - "\50\0\1\41\1\0\1\41\1\0\10\41\2\u0247\2\0"+ - "\1\u0247\22\0\24\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u0248\1\0\10\41\27\0"+ - "\22\41\1\u0248\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\23\41\1\u0249\1\0\2\41\1\u0249\7\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\u024a\1\0\10\41"+ - "\27\0\22\41\1\u024a\1\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\12\41\3\0\4\41\1\0\2\41"+ - "\1\u024b\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\5\41\1\u024c\16\41\1\0\3\41\1\u024c\6\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u024d"+ - "\1\0\10\41\27\0\22\41\1\u024d\1\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\14\41\1\u024e\7\41\1\0\1\41"+ - "\1\u024e\10\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\7\41\1\u024f\14\41"+ - "\1\0\5\41\1\u024f\4\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\11\41\1\u0250\3\0\4\41\1\0\4\41\3\0"+ - "\15\201\1\202\3\201\1\202\14\201\1\202\4\201\1\202"+ - "\5\201\1\u0251\22\201\1\u0251\25\201\53\0\1\u0252\22\0"+ - "\1\u0252\24\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\14\41\1\u0253\7\41\1\0\1\41\1\u0253\10\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\u0254\1\0"+ - "\10\41\27\0\22\41\1\u0254\1\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\11\41\1\u0255\12\41\1\0\6\41\1\u0255"+ - "\3\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\7\41\1\u0256\14\41\1\0"+ - "\5\41\1\u0256\4\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\11\41\1\u0257"+ - "\12\41\1\0\6\41\1\u0257\3\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\24\41\1\0\11\41\1\u0258\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\12\41\3\0\1\u0259\3\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\1\u025a\11\41"+ - "\1\u025a\11\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\20\0\1\u01e4\3\0\1\u01e5\115\0\1\u025b\3\0\1\u025c"+ - "\171\0\1\u025d\3\0\1\u025d\25\0\1\41\1\0\1\u025e"+ - "\1\0\10\41\27\0\22\41\1\u025e\1\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\23\41\1\u025f\1\0\2\41\1\u025f"+ - "\7\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\2\41\1\u0260\10\41\1\u0260"+ - "\10\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\7\41\1\u0261"+ - "\14\41\1\0\5\41\1\u0261\4\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u0262\1\0\10\41\27\0"+ - "\22\41\1\u0262\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\2\41\1\u0263\10\41\1\u0263\10\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\4\41\1\u0264\14\41\1\u0264\2\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\23\41\1\u0265\1\0\2\41"+ - "\1\u0265\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u0266\1\0\10\41\27\0\22\41\1\u0266\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\11\41\1\u0267\12\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u0268\1\0\10\41\27\0\22\41\1\u0268\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\10\41"+ - "\1\u0269\1\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\11\41\1\u026a\12\41"+ - "\1\0\6\41\1\u026a\3\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\7\41"+ - "\1\u026b\14\41\1\0\5\41\1\u026b\4\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\u026c\1\0\10\41"+ - "\27\0\22\41\1\u026c\1\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\51\0\1\u026d\10\0\1\u026d\45\0\1\u020e"+ - "\62\0\1\u020e\36\0\1\u026e\62\0\1\u026e\115\0\1\u020e"+ - "\15\0\1\u020e\30\0\1\u026f\5\0\2\u0247\2\0\1\u0247"+ - "\32\0\1\u026f\46\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\12\41\3\0\4\41\1\0\2\41"+ - "\1\u0270\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\7\41\1\u0271\14\41\1\0\5\41\1\u0271\4\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\14\41\1\u0272\7\41\1\0\1\41"+ - "\1\u0272\10\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\12\41"+ - "\3\0\4\41\1\0\2\41\1\u0273\1\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\7\41\1\u0274\14\41"+ - "\1\0\5\41\1\u0274\4\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0275\1\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\14\41"+ - "\1\u0276\7\41\1\0\1\41\1\u0276\10\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\12\41\3\0\4\41\1\0\2\41"+ - "\1\u0277\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\u0278\11\41\1\u0278\11\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\3\0\15\201\1\202\3\201\1\202"+ - "\14\201\1\202\4\201\1\202\25\201\1\u0279\3\201\1\u0279"+ - "\24\201\15\0\2\u027a\2\0\1\u027a\101\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\2\41\1\u027b\10\41\1\u027b"+ - "\10\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\2\41\1\u027c"+ - "\10\41\1\u027c\10\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\23\41\1\u027d\1\0\2\41\1\u027d\7\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\u027e\1\0\10\41"+ - "\27\0\22\41\1\u027e\1\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\3\41\1\u027f\2\41\1\u027f\15\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\20\0\1\u025b\157\0\1\u0280"+ - "\22\0\1\u0280\24\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\24\41\1\0\12\41\3\0\4\41\1\0\2\41"+ - "\1\u0281\1\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\7\41\1\u0282\14\41\1\0\5\41\1\u0282\4\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\23\41\1\u0283\1\0\2\41\1\u0283"+ - "\7\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\23\41\1\u0284\1\0\2\41"+ - "\1\u0284\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\1\u0285\11\41\1\u0285"+ - "\11\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\u0286\1\0\10\41\27\0\22\41\1\u0286"+ - "\1\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\12\41\3\0\4\41\1\0\2\41\1\u0287\1\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\22\41\1\u0288"+ - "\1\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\3\41\1\u0289"+ - "\2\41\1\u0289\15\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u028a\1\0\10\41\27\0"+ - "\22\41\1\u028a\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u028b\1\0\10\41\27\0"+ - "\22\41\1\u028b\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\u028c\1\0\10\41\27\0"+ - "\22\41\1\u028c\1\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\52\0\1\u020e\2\0\1\u020e\114\0\1\u020e\13\0"+ - "\1\u020e\105\0\1\u028d\13\0\1\u028d\41\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\24\41\1\0\12\41\3\0"+ - "\4\41\1\0\2\41\1\u028e\1\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\5\41\1\u028f\16\41\1\0"+ - "\3\41\1\u028f\6\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\1\u0290\3\41\1\u0290\5\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0291\1\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0292\1\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\12\41\3\0\4\41\1\0\2\41\1\u0293\1\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\23\41"+ - "\1\u0294\1\0\2\41\1\u0294\7\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\4\41\1\u0295\14\41\1\u0295\2\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\3\0\15\201\1\202\3\201\1\202"+ - "\14\201\1\202\4\201\1\202\7\201\1\u0296\22\201\1\u0296"+ - "\23\201\15\0\2\u027a\2\0\1\u027a\33\0\1\u0297\21\0"+ - "\1\u0297\23\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\23\41\1\u0298\1\0\2\41\1\u0298\7\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\41\1\u0299\13\41\1\u0299\6\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\11\41\1\u029a\3\0"+ - "\4\41\1\0\4\41\33\0\1\u029b\72\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\1\u029c\11\41\1\u029c\11\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u029d\1\0\10\41\27\0\22\41\1\u029d\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\u029e\1\0\10\41\27\0\22\41\1\u029e\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\2\41\1\u029f\5\41\27\0\10\41"+ - "\1\u029f\13\41\1\0\12\41\3\0\4\41\1\0\4\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\1\u02a0"+ - "\11\41\1\u02a0\11\41\1\0\12\41\3\0\4\41\1\0"+ - "\4\41\4\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\1\u02a1\11\41\1\u02a1\11\41\1\0\12\41\3\0\4\41"+ - "\1\0\4\41\4\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\7\41\1\u02a2\14\41\1\0\5\41\1\u02a2\4\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\4\41\1\u02a3\14\41\1\u02a3\2\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\47\0\1\u02a4"+ - "\11\0\1\u02a4\44\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\u02a5\11\41\1\u02a5\11\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\2\41\1\u02a6\10\41\1\u02a6\10\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\24\41\1\0\12\41\3\0"+ - "\4\41\1\0\2\41\1\u02a7\1\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\24\41\1\0\12\41\3\0"+ - "\4\41\1\0\2\41\1\u02a8\1\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\1\u02a9\11\41\1\u02a9\11\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\12\41"+ - "\3\0\4\41\1\0\2\41\1\u02aa\1\41\3\0\15\201"+ - "\1\202\3\201\1\202\6\201\1\u02ab\5\201\1\202\4\201"+ - "\1\202\56\201\46\0\1\u02ac\10\0\1\u02ac\43\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\11\41"+ - "\1\u02ad\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\u02ae\1\0\10\41\27\0\22\41\1\u02ae\1\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\20\0\2\u029b\2\0"+ - "\1\u029b\101\0\1\41\1\0\1\41\1\0\10\41\27\0"+ - "\3\41\1\u02af\2\41\1\u02af\15\41\1\0\12\41\3\0"+ - "\4\41\1\0\4\41\4\0\1\41\1\0\1\41\1\0"+ - "\2\41\1\u02b0\5\41\27\0\10\41\1\u02b0\13\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\3\41\1\u02b1\2\41\1\u02b1"+ - "\15\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\14\41\1\u02b2"+ - "\7\41\1\0\1\41\1\u02b2\10\41\3\0\4\41\1\0"+ - "\4\41\112\0\1\u02b3\13\0\1\41\1\0\1\41\1\0"+ - "\10\41\27\0\3\41\1\u02b4\2\41\1\u02b4\15\41\1\0"+ - "\12\41\3\0\4\41\1\0\4\41\4\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\23\41\1\u02b5\1\0\2\41"+ - "\1\u02b5\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\12\41"+ - "\3\0\1\41\1\u02b6\2\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\24\41\1\0\12\41"+ - "\3\0\4\41\1\0\2\41\1\u02b7\1\41\3\0\15\201"+ - "\1\u02b8\1\u02ab\2\201\1\u02b8\14\201\1\202\4\201\1\202"+ - "\56\201\47\0\1\u02b9\2\0\1\u02b9\50\0\1\41\1\0"+ - "\1\41\1\0\10\41\27\0\23\41\1\u02ba\1\0\2\41"+ - "\1\u02ba\7\41\3\0\4\41\1\0\4\41\4\0\1\41"+ - "\1\0\1\41\1\0\10\41\27\0\23\41\1\u02bb\1\0"+ - "\2\41\1\u02bb\7\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\12\41\3\0\4\41\1\0\2\41\1\u02bc\1\41\4\0"+ - "\1\41\1\0\1\u02bd\1\0\10\41\27\0\22\41\1\u02bd"+ - "\1\41\1\0\12\41\3\0\4\41\1\0\4\41\4\0"+ - "\1\41\1\0\1\41\1\0\10\41\27\0\24\41\1\0"+ - "\1\u02be\3\41\1\u02be\5\41\3\0\4\41\1\0\4\41"+ - "\65\0\1\u02bf\15\0\1\u02bf\22\0\1\41\1\0\1\u02c0"+ - "\1\0\10\41\27\0\22\41\1\u02c0\1\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\u02c1"+ - "\1\0\10\41\27\0\22\41\1\u02c1\1\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\12\41\3\0\4\41"+ - "\1\0\2\41\1\u02c2\1\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\24\41\1\0\12\41\3\0\4\41"+ - "\1\0\2\41\1\u02c3\1\41\4\0\1\41\1\0\1\41"+ - "\1\0\10\41\27\0\5\41\1\u02c4\16\41\1\0\3\41"+ - "\1\u02c4\6\41\3\0\4\41\1\0\4\41\104\0\1\u02c5"+ - "\21\0\1\41\1\0\1\41\1\0\10\41\27\0\24\41"+ - "\1\0\12\41\3\0\4\41\1\0\2\41\1\u02c6\1\41"+ - "\4\0\1\41\1\0\1\41\1\0\10\41\27\0\11\41"+ - "\1\u02c7\12\41\1\0\6\41\1\u02c7\3\41\3\0\4\41"+ - "\1\0\4\41\51\0\1\u02c8\10\0\1\u02c8\43\0\1\41"+ - "\1\0\1\u02c9\1\0\10\41\27\0\22\41\1\u02c9\1\41"+ - "\1\0\12\41\3\0\4\41\1\0\4\41\65\0\1\u02ca"+ - "\15\0\1\u02ca\22\0\1\41\1\0\1\41\1\0\10\41"+ - "\27\0\1\41\1\u02cb\13\41\1\u02cb\6\41\1\0\12\41"+ - "\3\0\4\41\1\0\4\41\6\0\1\u02cc\62\0\1\u02cc"+ - "\50\0\2\u02cc\2\0\1\u02cc\5\0\1\u02cd\107\0\2\u02cd"+ - "\2\0\1\u02cd\1\0\1\u02ce\45\0\1\u02cf\3\0\1\u02cf"+ - "\5\0\1\u02d0\107\0\1\u02d1\3\0\1\u02d1\126\0\1\u02d2"+ - "\110\0\1\u02d3\3\0\1\u02d3\126\0\1\u02d4\110\0\1\u02d5"+ - "\3\0\1\u02d5\126\0\1\u02d6\110\0\1\u02d7\3\0\1\u02d7"+ - "\41\0\2\u02d5\2\0\1\u02d5\6\0\1\u02d8\162\0\1\u02d9"+ - "\3\0\1\u02d9\47\0\1\u02d5\201\0\1\u02d5\16\0"; + "\1\u02cd\13\41\1\0\6\41\1\u02cd\3\41\3\0\4\41"+ + "\1\0\4\41\51\0\1\u02ce\10\0\1\u02ce\44\0\1\41"+ + "\1\0\1\u02cf\1\0\10\41\27\0\22\41\1\u02cf\2\41"+ + "\1\0\12\41\3\0\4\41\1\0\4\41\65\0\1\u02d0"+ + "\16\0\1\u02d0\22\0\1\41\1\0\1\41\1\0\10\41"+ + "\27\0\1\41\1\u02d1\13\41\1\u02d1\7\41\1\0\12\41"+ + "\3\0\4\41\1\0\4\41\6\0\1\u02d2\62\0\1\u02d2"+ + "\51\0\2\u02d2\2\0\1\u02d2\5\0\1\u02d3\110\0\2\u02d3"+ + "\2\0\1\u02d3\1\0\1\u02d4\46\0\1\u02d5\3\0\1\u02d5"+ + "\5\0\1\u02d6\110\0\1\u02d7\3\0\1\u02d7\127\0\1\u02d8"+ + "\111\0\1\u02d9\3\0\1\u02d9\127\0\1\u02da\111\0\1\u02db"+ + "\3\0\1\u02db\127\0\1\u02dc\111\0\1\u02dd\3\0\1\u02dd"+ + "\41\0\2\u02db\2\0\1\u02db\6\0\1\u02de\164\0\1\u02df"+ + "\3\0\1\u02df\47\0\1\u02db\203\0\1\u02db\16\0"; private static int [] zzUnpackTrans() { - int [] result = new int[46986]; + int [] result = new int[47974]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -1412,22 +1423,22 @@ private static final String ZZ_ATTRIBUTE_PACKED_0 = "\25\0\2\1\1\11\12\1\2\11\2\1\3\11\13\1"+ - "\1\11\25\1\1\11\5\1\2\11\2\1\1\11\6\1"+ + "\1\11\26\1\1\11\5\1\2\11\2\1\1\11\6\1"+ "\1\11\12\1\1\11\4\1\1\0\1\1\1\11\2\1"+ "\1\11\2\1\2\11\2\1\1\11\1\1\1\11\1\1"+ "\1\11\4\0\1\1\1\11\4\1\1\11\2\1\1\0"+ "\2\1\1\0\1\1\2\0\6\1\1\11\2\0\4\1"+ "\1\0\1\1\1\0\1\1\2\0\1\11\2\0\2\1"+ - "\1\0\52\1\13\0\2\1\1\11\1\1\3\0\3\1"+ + "\1\0\53\1\13\0\2\1\1\11\1\1\3\0\3\1"+ "\3\11\1\1\3\0\3\1\2\11\3\0\1\1\2\0"+ "\1\11\2\0\1\11\7\0\1\11\2\0\1\11\1\0"+ "\1\11\2\0\1\11\1\1\1\0\1\11\1\0\2\11"+ - "\2\1\1\11\3\0\15\1\1\0\1\1\3\0\54\1"+ + "\2\1\1\11\3\0\15\1\1\0\1\1\3\0\55\1"+ "\12\0\12\1\1\11\3\1\1\0\1\11\1\0\1\11"+ "\1\1\1\0\1\11\1\0\1\1\1\0\2\11\1\1"+ - "\2\0\20\1\4\0\51\1\12\0\13\1\1\11\1\0"+ - "\1\1\1\11\1\0\15\1\1\11\1\1\3\0\41\1"+ - "\10\0\1\11\1\0\14\1\1\0\11\1\3\0\26\1"+ + "\2\0\20\1\4\0\52\1\12\0\13\1\1\11\1\0"+ + "\1\1\1\11\1\0\15\1\1\11\1\1\3\0\42\1"+ + "\10\0\1\11\1\0\14\1\1\0\11\1\3\0\27\1"+ "\5\0\23\1\1\11\1\1\1\0\17\1\3\0\12\1"+ "\1\0\5\1\1\0\14\1\1\0\11\1\1\0\14\1"+ "\1\0\7\1\1\0\6\1\1\11\5\1\1\0\5\1"+ @@ -1435,7 +1446,7 @@ "\14\0\1\11\1\0"; private static int [] zzUnpackAttribute() { - int [] result = new int[729]; + int [] result = new int[735]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -1887,16 +1898,16 @@ { //the difference from the original rules comes from the fact that we took ';' out out of tokens return PHPTokenId.UNKNOWN_TOKEN; } - case 158: break; + case 159: break; case 94: { return PHPTokenId.PHP_FALSE; } - case 159: break; + case 160: break; case 22: { yypushback(1); yybegin(ST_PHP_NOWDOC); } - case 160: break; + case 161: break; case 30: { String yytext = yytext(); switch (yytext.charAt(yytext.length() - 1)) { @@ -1909,12 +1920,12 @@ } return PHPTokenId.PHP_LINE_COMMENT; } - case 161: break; + case 162: break; case 73: { yypushback(2); return PHPTokenId.PHP_ENCAPSED_AND_WHITESPACE; } - case 162: break; + case 163: break; case 4: { if(isInConst) { // for checking arrays @@ -1939,37 +1950,37 @@ } return PHPTokenId.PHP_TOKEN; } - case 163: break; + case 164: break; case 60: { popState(); return PHPTokenId.PHPDOC_COMMENT_END; } - case 164: break; - case 128: + case 165: break; + case 129: { return PHPTokenId.PHP_INCLUDE; } - case 165: break; - case 147: + case 166: break; + case 148: { return PHPTokenId.PHP_ENDDECLARE; } - case 166: break; + case 167: break; case 32: { return PHPTokenId.UNKNOWN_TOKEN; } - case 167: break; - case 118: + case 168: break; + case 119: { return PHPTokenId.PHP_GLOBAL; } - case 168: break; - case 154: + case 169: break; + case 155: { return PHPTokenId.PHP__FUNCTION__; } - case 169: break; + case 170: break; case 18: { popState(); return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } - case 170: break; + case 171: break; case 36: { if (shortTagsAllowed ) { //yybegin(ST_PHP_IN_SCRIPTING); @@ -1981,34 +1992,38 @@ return PHPTokenId.T_INLINE_HTML; } } - case 171: break; + case 172: break; case 50: { yypushback(1); pushState(ST_PHP_IN_SCRIPTING); return PHPTokenId.PHP_CURLY_OPEN; } - case 172: break; + case 173: break; + case 115: + { return PHPTokenId.PHP_TYPE_OBJECT; + } + case 174: break; case 85: { return PHPTokenId.PHP_LIST; } - case 173: break; + case 175: break; case 93: { return PHPTokenId.PHP_EMPTY; } - case 174: break; + case 176: break; case 15: { pushState(ST_PHP_LINE_COMMENT); return PHPTokenId.PHP_LINE_COMMENT; } - case 175: break; + case 177: break; case 90: { return PHPTokenId.PHP_CASE; } - case 176: break; + case 178: break; case 38: { return PHPTokenId.PHP_VARIABLE; } - case 177: break; + case 179: break; case 41: { //popState(); yybegin(YYINITIAL); @@ -2018,7 +2033,7 @@ stack.clear(); return PHPTokenId.PHP_CLOSETAG; } - case 178: break; + case 180: break; case 8: { if(isInConst) { isInConst = false; @@ -2027,7 +2042,7 @@ } return PHPTokenId.PHP_SEMICOLON; } - case 179: break; + case 181: break; case 40: { if (aspTagsAllowed) { yybegin(YYINITIAL); @@ -2036,35 +2051,35 @@ } return PHPTokenId.UNKNOWN_TOKEN; } - case 180: break; + case 182: break; case 31: { return PHPTokenId.PHP_LINE_COMMENT; } - case 181: break; + case 183: break; case 82: { pushState(ST_PHP_DOC_COMMENT); yypushback(yylength()-3); return PHPTokenId.PHPDOC_COMMENT_START; } - case 182: break; + case 184: break; case 99: { return PHPTokenId.PHP_ISSET; } - case 183: break; - case 137: + case 185: break; + case 138: { return PHPTokenId.PHP__FILE__; } - case 184: break; + case 186: break; case 45: { return PHPTokenId.PHP_IF; } - case 185: break; + case 187: break; case 51: { popState(); pushState(ST_PHP_LOOKING_FOR_PROPERTY); return PHPTokenId.PHP_OBJECT_OPERATOR; } - case 186: break; + case 188: break; case 62: { if (aspTagsAllowed) { yybegin(YYINITIAL); @@ -2077,57 +2092,57 @@ } return PHPTokenId.PHP_LINE_COMMENT; } - case 187: break; + case 189: break; case 43: { return PHPTokenId.PHP_AS; } - case 188: break; - case 156: + case 190: break; + case 157: { pushState(ST_HALTED_COMPILER); return PHPTokenId.PHP_HALT_COMPILER; } - case 189: break; + case 191: break; case 70: { return PHPTokenId.PHP_USE; } - case 190: break; + case 192: break; case 102: { return PHPTokenId.PHP_TYPE_FLOAT; } - case 191: break; - case 155: + case 193: break; + case 156: { return PHPTokenId.PHP__NAMESPACE__; } - case 192: break; + case 194: break; case 61: { popState(); return PHPTokenId.PHP_LINE_COMMENT; } - case 193: break; - case 153: + case 195: break; + case 154: { return PHPTokenId.PHP_INCLUDE_ONCE; } - case 194: break; - case 140: + case 196: break; + case 141: { return PHPTokenId.PHP_NAMESPACE; } - case 195: break; + case 197: break; case 13: { if (isInConst) { pushState(ST_PHP_LOOKING_FOR_CONSTANT_NAME); } return PHPTokenId.PHP_TOKEN; } - case 196: break; + case 198: break; case 59: { popState(); return PHPTokenId.PHP_COMMENT_END; } - case 197: break; - case 134: + case 199: break; + case 135: { return PHPTokenId.PHP_ITERABLE; } - case 198: break; + case 200: break; case 97: { int bprefix = (yytext().charAt(0) != '<') ? 1 : 0; int startString=3+bprefix; @@ -2145,7 +2160,7 @@ yybegin(ST_PHP_START_HEREDOC); return PHPTokenId.PHP_HEREDOC_TAG_START; } - case 199: break; + case 201: break; case 58: { // const keyword is also used within group uses. so check "=", otherwise it matches the following: // use A\{const CONSTANTA, function myFunction,...} @@ -2160,151 +2175,151 @@ yypushback(back); return PHPTokenId.PHP_STRING; } - case 200: break; + case 202: break; case 34: { popState(); return PHPTokenId.T_INLINE_HTML; } - case 201: break; + case 203: break; case 6: { return PHPTokenId.PHP_OPERATOR; } - case 202: break; + case 204: break; case 11: { pushState(ST_PHP_BACKQUOTE); return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } - case 203: break; + case 205: break; case 47: { pushState(ST_PHP_QUOTES_AFTER_VARIABLE); return PHPTokenId.PHP_VARIABLE; } - case 204: break; + case 206: break; case 3: { return PHPTokenId.PHP_NUMBER; } - case 205: break; + case 207: break; case 71: { yypushback(1); pushState(ST_PHP_VAR_OFFSET); return PHPTokenId.PHP_VARIABLE; } - case 206: break; - case 125: + case 208: break; + case 126: { return PHPTokenId.PHP_REQUIRE; } - case 207: break; - case 127: + case 209: break; + case 128: { return PHPTokenId.PHP_DECLARE; } - case 208: break; + case 210: break; case 105: { return PHPTokenId.PHP_CLONE; } - case 209: break; + case 211: break; case 100: { return PHPTokenId.PHP_TRAIT; } - case 210: break; + case 212: break; case 49: { pushState(ST_PHP_IN_SCRIPTING); return PHPTokenId.PHP_TOKEN; } - case 211: break; + case 213: break; case 65: { return PHPTokenId.PHP_NEW; } - case 212: break; + case 214: break; case 76: { yypushback(2); return PHPTokenId.PHP_COMMENT; } - case 213: break; + case 215: break; case 57: { return PHPTokenId.PHP_OBJECT_OPERATOR; } - case 214: break; + case 216: break; case 19: { yypushback(1); popState(); } - case 215: break; - case 121: + case 217: break; + case 122: { return PHPTokenId.PHP_EXTENDS; } - case 216: break; + case 218: break; case 83: { return PHPTokenId.PHP_NULL; } - case 217: break; + case 219: break; case 91: { pushState(ST_PHP_IN_SCRIPTING); //yybegin(ST_PHP_IN_SCRIPTING); return PHPTokenId.PHP_OPENTAG; //return createSymbol(ASTSymbol.T_OPEN_TAG); } - case 218: break; + case 220: break; case 111: { return PHPTokenId.PHP_WHILE; } - case 219: break; - case 139: + case 221: break; + case 140: { return PHPTokenId.PHP_ENDSWITCH; } - case 220: break; - case 129: + case 222: break; + case 130: { return PHPTokenId.PHP_PRIVATE; } - case 221: break; + case 223: break; case 1: { return PHPTokenId.T_INLINE_HTML; } - case 222: break; - case 150: + case 224: break; + case 151: { return PHPTokenId.PHP_YIELD_FROM; } - case 223: break; + case 225: break; case 92: { return PHPTokenId.PHP_ENDIF; } - case 224: break; + case 226: break; case 28: { yypushback(1); popState(); if (yylength() > 0) return PHPTokenId.PHP_ENCAPSED_AND_WHITESPACE; } - case 225: break; - case 115: + case 227: break; + case 116: { return PHPTokenId.PHP_STATIC; } - case 226: break; - case 126: + case 228: break; + case 127: { return PHPTokenId.PHP_DEFAULT; } - case 227: break; + case 229: break; case 17: { return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } - case 228: break; + case 230: break; case 25: { popState(); return PHPTokenId.PHP_TOKEN; } - case 229: break; + case 231: break; case 37: { pushState(ST_PHP_LOOKING_FOR_PROPERTY); return PHPTokenId.PHP_OBJECT_OPERATOR; } - case 230: break; - case 138: + case 232: break; + case 139: { return PHPTokenId.PHP__LINE__; } - case 231: break; + case 233: break; case 78: { return PHPTokenId.PHP_EXIT; } - case 232: break; + case 234: break; case 35: { if (aspTagsAllowed) { //yybegin(ST_PHP_IN_SCRIPTING); @@ -2316,16 +2331,16 @@ return PHPTokenId.T_INLINE_HTML; } } - case 233: break; + case 235: break; case 39: { pushState(ST_PHP_COMMENT); return PHPTokenId.PHP_COMMENT_START; } - case 234: break; + case 236: break; case 96: { return PHPTokenId.PHP_BREAK; } - case 235: break; + case 237: break; case 26: { if(parenBalanceInConst == 0 && bracketBalanceInConst == 0) { isInConst = false; @@ -2333,20 +2348,20 @@ yypushback(1); popState(); } - case 236: break; + case 238: break; case 21: { yypushback(1); yybegin(ST_PHP_HEREDOC); } - case 237: break; - case 142: + case 239: break; + case 143: { return PHPTokenId.PHP_INSTEADOF; } - case 238: break; - case 143: + case 240: break; + case 144: { return PHPTokenId.PHP_PROTECTED; } - case 239: break; + case 241: break; case 63: { String text = yytext(); if ((text.charAt(1)=='%' && aspTagsAllowed) @@ -2360,32 +2375,32 @@ return PHPTokenId.T_INLINE_HTML; } } - case 240: break; + case 242: break; case 107: { return PHPTokenId.PHP_PRINT; } - case 241: break; + case 243: break; case 69: { return PHPTokenId.PHP_VAR; } - case 242: break; - case 157: + case 244: break; + case 158: { pushState(ST_PHP_IN_SCRIPTING); return PHPTokenId.T_INLINE_HTML; } - case 243: break; + case 245: break; case 101: { return PHPTokenId.PHP_THROW; } - case 244: break; - case 119: + case 246: break; + case 120: { return PHPTokenId.PHP_PARENT; } - case 245: break; - case 117: + case 247: break; + case 118: { return PHPTokenId.PHP_SWITCH; } - case 246: break; + case 248: break; case 74: { int trailingNewLineLength = 1; int label_len = yylength() - trailingNewLineLength; @@ -2404,36 +2419,36 @@ return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } } - case 247: break; + case 249: break; case 77: { yypushback(2); // go back to mark end of comment in the next token return PHPTokenId.PHPDOC_COMMENT; } - case 248: break; + case 250: break; case 67: { return PHPTokenId.PHP_TYPE_INT; } - case 249: break; + case 251: break; case 109: { return PHPTokenId.PHP_CASTING; } - case 250: break; + case 252: break; case 42: { return PHPTokenId.PHP_TEXTUAL_OPERATOR; } - case 251: break; + case 253: break; case 33: { popState();return PHPTokenId.WHITESPACE; } - case 252: break; + case 254: break; case 66: { return PHPTokenId.PHP_DIE; } - case 253: break; - case 145: + case 255: break; + case 146: { return PHPTokenId.PHP__CLASS__; } - case 254: break; + case 256: break; case 75: { int label_len = yylength() - 1; int back = 1; @@ -2452,65 +2467,65 @@ } return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } - case 255: break; + case 257: break; case 2: { yypushback(1); pushState(ST_PHP_HIGHLIGHTING_ERROR); } - case 256: break; + case 258: break; case 106: { return PHPTokenId.PHP_CLASS; } - case 257: break; - case 123: + case 259: break; + case 124: { return PHPTokenId.PHP_FINALLY; } - case 258: break; - case 141: + case 260: break; + case 142: { return PHPTokenId.PHP_INTERFACE; } - case 259: break; - case 144: + case 261: break; + case 145: { return PHPTokenId.PHP__TRAIT__; } - case 260: break; + case 262: break; case 108: { return PHPTokenId.PHP_UNSET; } - case 261: break; + case 263: break; case 12: { return PHPTokenId.PHP_CURLY_OPEN; } - case 262: break; + case 264: break; case 23: { yypushback(1); popState(); } - case 263: break; - case 120: + case 265: break; + case 121: { return PHPTokenId.PHP_PUBLIC; } - case 264: break; - case 152: + case 266: break; + case 153: { return PHPTokenId.PHP_REQUIRE_ONCE; } - case 265: break; - case 146: + case 267: break; + case 147: { return PHPTokenId.PHP_ENDFOREACH; } - case 266: break; - case 116: + case 268: break; + case 117: { return PHPTokenId.PHP_TYPE_STRING; } - case 267: break; + case 269: break; case 80: { return PHPTokenId.PHP_EVAL; } - case 268: break; + case 270: break; case 87: { return PHPTokenId.PHP_GOTO; } - case 269: break; + case 271: break; case 103: { isInConst = true; parenBalanceInConst = 0; @@ -2518,109 +2533,109 @@ pushState(ST_PHP_LOOKING_FOR_CONSTANT_NAME); return PHPTokenId.PHP_CONST; } - case 270: break; + case 272: break; case 20: { popState(); return PHPTokenId.PHP_STRING; } - case 271: break; - case 133: + case 273: break; + case 134: { return PHPTokenId.PHP_ABSTRACT; } - case 272: break; + case 274: break; case 9: { pushState(ST_PHP_DOUBLE_QUOTES); return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } - case 273: break; + case 275: break; case 81: { return PHPTokenId.PHP_ECHO; } - case 274: break; + case 276: break; case 95: { return PHPTokenId.PHP_FINAL; } - case 275: break; - case 151: + case 277: break; + case 152: { return PHPTokenId.PHP__METHOD__; } - case 276: break; + case 278: break; case 10: { return PHPTokenId.PHP_NS_SEPARATOR; } - case 277: break; + case 279: break; case 110: { return PHPTokenId.PHP_YIELD; } - case 278: break; - case 132: + case 280: break; + case 133: { pushState(ST_PHP_LOOKING_FOR_FUNCTION_NAME); return PHPTokenId.PHP_FUNCTION; } - case 279: break; - case 130: + case 281: break; + case 131: { return PHPTokenId.PHP__DIR__; } - case 280: break; + case 282: break; case 5: { return PHPTokenId.PHP_STRING; } - case 281: break; - case 135: + case 283: break; + case 136: { return PHPTokenId.PHP_CONTINUE; } - case 282: break; - case 149: + case 284: break; + case 150: { return PHPTokenId.PHP_IMPLEMENTS; } - case 283: break; + case 285: break; case 68: { return PHPTokenId.PHP_TRY; } - case 284: break; + case 286: break; case 98: { return PHPTokenId.PHP_ARRAY; } - case 285: break; + case 287: break; case 7: { return PHPTokenId.WHITESPACE; } - case 286: break; + case 288: break; case 114: { return PHPTokenId.PHP_RETURN; } - case 287: break; + case 289: break; case 29: { return PHPTokenId.PHP_TOKEN; } - case 288: break; + case 290: break; case 16: { return PHPTokenId.PHP_ENCAPSED_AND_WHITESPACE; } - case 289: break; + case 291: break; case 104: { return PHPTokenId.PHP_CATCH; } - case 290: break; + case 292: break; case 72: { String text = yytext(); int lastIndexOfDollar = text.lastIndexOf('$'); yypushback(text.length() - lastIndexOfDollar); return PHPTokenId.PHP_ENCAPSED_AND_WHITESPACE; } - case 291: break; + case 293: break; case 52: { return PHPTokenId.PHP_PAAMAYIM_NEKUDOTAYIM; } - case 292: break; - case 136: + case 294: break; + case 137: { return PHPTokenId.PHP_CALLABLE; } - case 293: break; - case 148: + case 295: break; + case 149: { return PHPTokenId.PHP_INSTANCEOF; } - case 294: break; + case 296: break; case 54: { heredoc=null; hereocLength=0; @@ -2633,8 +2648,8 @@ yypushback(back); return PHPTokenId.PHP_HEREDOC_TAG_END; } - case 295: break; - case 124: + case 297: break; + case 125: { int bprefix = (yytext().charAt(0) != '<') ? 1 : 0; int startString=3+bprefix; /* 3 is <<<, 2 is quotes, 1 is newline */ @@ -2649,19 +2664,19 @@ yybegin(ST_PHP_START_NOWDOC); return PHPTokenId.PHP_NOWDOC_TAG_START; } - case 296: break; + case 298: break; case 88: { return PHPTokenId.PHP_TYPE_BOOL; } - case 297: break; + case 299: break; case 112: { return PHPTokenId.PHP_ENDFOR; } - case 298: break; + case 300: break; case 64: { return PHPTokenId.PHP_FOR; } - case 299: break; + case 301: break; case 55: { int label_len = yylength() - 1; @@ -2678,29 +2693,29 @@ return PHPTokenId.PHP_CONSTANT_ENCAPSED_STRING; } } - case 300: break; - case 122: + case 302: break; + case 123: { return PHPTokenId.PHP_FOREACH; } - case 301: break; + case 303: break; case 46: { pushState(ST_PHP_LOOKING_FOR_STATIC_PROPERTY); return PHPTokenId.PHP_PAAMAYIM_NEKUDOTAYIM; } - case 302: break; + case 304: break; case 24: { popState(); return PHPTokenId.PHP_STRING; } - case 303: break; + case 305: break; case 79: { return PHPTokenId.PHP_ELSE; } - case 304: break; + case 306: break; case 86: { return PHPTokenId.PHP_SELF; } - case 305: break; + case 307: break; case 56: { heredoc=null; hereocLength=0; yybegin(ST_PHP_IN_SCRIPTING); @@ -2712,12 +2727,12 @@ yypushback(back); return PHPTokenId.PHP_NOWDOC_TAG_END; } - case 306: break; + case 308: break; case 48: { yypushback(1); return PHPTokenId.PHP_ENCAPSED_AND_WHITESPACE; } - case 307: break; + case 309: break; case 14: { int lastState = stack.peek(); if (lastState != ST_PHP_IN_SCRIPTING && lastState != YYINITIAL) { @@ -2726,11 +2741,11 @@ } return PHPTokenId.PHP_CURLY_CLOSE; } - case 308: break; + case 310: break; case 44: { return PHPTokenId.PHP_DO; } - case 309: break; + case 311: break; case 53: { int trailingNewLineLength = 1; int label_len = yylength() - trailingNewLineLength; @@ -2749,23 +2764,23 @@ yybegin(ST_PHP_HEREDOC); } } - case 310: break; + case 312: break; case 89: { return PHPTokenId.PHP_TYPE_VOID; } - case 311: break; - case 131: + case 313: break; + case 132: { return PHPTokenId.PHP_ENDWHILE; } - case 312: break; + case 314: break; case 113: { return PHPTokenId.PHP_ELSEIF; } - case 313: break; + case 315: break; case 84: { return PHPTokenId.PHP_TRUE; } - case 314: break; + case 316: break; default: if (zzInput == YYEOF) //zzAtEOF = true; @@ -2779,7 +2794,7 @@ return null; } } - case 730: break; + case 736: break; case ST_PHP_DOC_COMMENT: { if (input.readLength() > 0) { input.backup(1); // backup eof @@ -2789,7 +2804,7 @@ return null; } } - case 731: break; + case 737: break; default: { if(input.readLength() > 0) { // backup eof diff --git a/php.editor/src/org/netbeans/modules/php/editor/lexer/PHPTokenId.java b/php.editor/src/org/netbeans/modules/php/editor/lexer/PHPTokenId.java --- a/php.editor/src/org/netbeans/modules/php/editor/lexer/PHPTokenId.java +++ b/php.editor/src/org/netbeans/modules/php/editor/lexer/PHPTokenId.java @@ -81,6 +81,7 @@ PHP_TYPE_STRING("string", "keyword"), //NOI18N PHP_TYPE_BOOL("bool", "keyword"), //NOI18N PHP_TYPE_VOID("void", "keyword"), //NOI18N + PHP_TYPE_OBJECT("object", "keyword"), //NOI18N PHP_FINAL(null, "keyword"), //NOI18N PHP_PAAMAYIM_NEKUDOTAYIM(null, "operator"), //NOI18N PHP_EXTENDS(null, "keyword"), //NOI18N diff --git a/php.editor/src/org/netbeans/modules/php/editor/model/impl/Type.java b/php.editor/src/org/netbeans/modules/php/editor/model/impl/Type.java --- a/php.editor/src/org/netbeans/modules/php/editor/model/impl/Type.java +++ b/php.editor/src/org/netbeans/modules/php/editor/model/impl/Type.java @@ -72,8 +72,8 @@ public static final String VOID = "void"; //NOI18N public static final String MIXED = "mixed"; //NOI18N - private static final List TYPES_FOR_EDITOR = Arrays.asList(ARRAY, CALLABLE, ITERABLE, BOOL, FLOAT, INT, STRING); - private static final List TYPES_FOR_RETURN_TYPE = Arrays.asList(ARRAY, CALLABLE, ITERABLE, BOOL, FLOAT, INT, STRING, VOID); + private static final List TYPES_FOR_EDITOR = Arrays.asList(ARRAY, CALLABLE, ITERABLE, BOOL, FLOAT, INT, STRING, OBJECT); + private static final List TYPES_FOR_RETURN_TYPE = Arrays.asList(ARRAY, CALLABLE, ITERABLE, BOOL, FLOAT, INT, STRING, VOID, OBJECT); private static final List TYPES_FOR_PHP_DOC = Arrays.asList(STRING, INTEGER, INT, BOOLEAN, BOOL, FLOAT, DOUBLE, OBJECT, MIXED, ARRAY, RESOURCE, VOID, NULL, CALLBACK, CALLABLE, ITERABLE, "false", "true", "self"); // NOI18N diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java b/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java @@ -42,7 +42,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 -// Wed May 17 13:21:18 JST 2017 +// Tue Jul 11 14:57:20 JST 2017 //---------------------------------------------------- package org.netbeans.modules.php.editor.parser; @@ -52,7 +52,7 @@ import org.openide.util.Pair; /** CUP v0.11a beta 20060608 generated parser. - * @version Wed May 17 13:21:18 JST 2017 + * @version Tue Jul 11 14:57:20 JST 2017 */ @org.netbeans.api.annotations.common.SuppressWarnings({"EI_EXPOSE_REP", "MS_PKGPROTECT", "BC_BAD_CAST_TO_CONCRETE_COLLECTION"}) public class ASTPHP5Parser extends java_cup.runtime.lr_parser { @@ -102,7 +102,7 @@ "\000\002\013\006\000\002\013\004\000\002\011\005\000" + "\002\011\003\000\002\010\003\000\002\010\005\000\002" + "\010\007\000\002\010\004\000\002\010\006\000\002\010" + - "\010\000\002\005\003\000\002\005\002\000\002\006\005" + + "\010\000\002\005\004\000\002\005\002\000\002\006\005" + "\000\002\006\003\000\002\007\003\000\002\007\005\000" + "\002\007\004\000\002\007\006\000\002\007\004\000\002" + "\007\006\000\002\015\004\000\002\015\002\000\002\016" + @@ -293,7 +293,7 @@ /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { - "\000\u0538\000\006\002\003\012\004\001\001\000\002\001" + + "\000\u0539\000\006\002\003\012\004\001\001\000\002\001" + "\001\000\140\003\174\004\101\013\206\014\200\017\132" + "\062\167\063\124\064\153\065\051\070\131\074\015\100" + "\016\101\100\103\165\104\176\105\204\106\063\107\170" + @@ -302,16 +302,16 @@ "\177\121\200\150\201\025\212\160\213\023\214\054\223" + "\171\225\116\226\006\230\021\233\134\240\111\243\032" + "\244\040\245\047\256\056\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\006\050\u052a\051\u052d" + + "\002\001\001\000\002\001\001\000\006\050\u052b\051\u052e" + "\001\001\000\002\001\001\000\112\003\174\004\101\062" + - "\167\063\124\064\153\065\051\070\131\074\015\100\u0525" + - "\103\u0526\104\u0527\105\204\106\063\107\170\110\144\121" + + "\167\063\124\064\153\065\051\070\131\074\015\100\u0526" + + "\103\u0527\104\u0528\105\204\106\063\107\170\110\144\121" + "\106\131\075\151\126\152\043\153\022\154\137\155\077" + "\156\055\157\110\161\070\201\025\223\171\225\116\226" + "\006\230\021\233\134\240\111\243\032\244\040\245\047" + "\256\056\001\001\000\002\001\001\000\106\003\174\004" + "\101\062\167\063\124\064\153\065\051\070\131\074\015" + - "\100\u0521\105\204\106\063\107\170\110\144\121\106\131" + + "\100\u0522\105\204\106\063\107\170\110\144\121\106\131" + "\075\151\126\152\043\153\022\154\137\155\077\156\055" + "\157\110\161\070\201\025\223\171\225\116\226\006\230" + "\021\233\134\240\111\243\032\244\040\245\047\256\056" + @@ -1733,50 +1733,50 @@ "\047\256\056\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\010\003\u04f7\010\u04f9" + - "\011\u0518\001\001\000\002\001\001\000\004\003\u0502\001" + + "\011\u0519\001\001\000\002\001\001\000\004\003\u0502\001" + "\001\000\010\003\u04f7\010\u04f9\011\u0500\001\001\000\002" + "\001\001\000\006\003\u04f7\010\u04ff\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\012\003\u050c\005\u050b\006\u050a\007\u0507" + - "\001\001\000\002\001\001\000\004\003\u0515\001\001\000" + - "\004\003\u0512\001\001\000\002\001\001\000\002\001\001" + + "\001\001\000\002\001\001\000\004\003\u0516\001\001\000" + + "\004\003\u0513\001\001\000\004\076\u0511\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\006\003\u050c\007\u0512\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\006\003\u050c\007\u0511\001\001\000\002" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\012\003\u050c\005\u051e" + - "\006\u050a\007\u0507\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\116\003\174" + - "\004\101\062\167\063\124\064\153\065\051\070\131\074" + - "\015\100\u02d8\105\204\106\063\107\170\110\144\121\106" + - "\122\u0523\123\u02d9\124\u02db\125\u02da\131\075\151\126\152" + - "\043\153\022\154\137\155\077\156\055\157\110\161\070" + - "\201\025\223\171\225\116\226\006\230\021\233\134\240" + - "\111\243\032\244\040\245\047\256\056\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\106\003\174\004\101\062\167" + - "\063\124\064\153\065\051\070\131\074\015\100\u0529\105" + - "\204\106\063\107\170\110\144\121\106\131\075\151\126" + - "\152\043\153\022\154\137\155\077\156\055\157\110\161" + - "\070\201\025\223\171\225\116\226\006\230\021\233\134" + - "\240\111\243\032\244\040\245\047\256\056\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\054" + - "\003\337\064\153\065\051\105\334\106\063\107\325\110" + - "\144\121\106\152\043\155\326\156\055\161\332\201\u052f" + - "\223\u052e\226\006\230\021\233\134\243\032\244\040\245" + + "\000\012\003\u050c\005\u051f\006\u050a\007\u0507\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\116\003\174\004\101\062\167\063\124\064" + + "\153\065\051\070\131\074\015\100\u02d8\105\204\106\063" + + "\107\170\110\144\121\106\122\u0524\123\u02d9\124\u02db\125" + + "\u02da\131\075\151\126\152\043\153\022\154\137\155\077" + + "\156\055\157\110\161\070\201\025\223\171\225\116\226" + + "\006\230\021\233\134\240\111\243\032\244\040\245\047" + + "\256\056\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\106" + + "\003\174\004\101\062\167\063\124\064\153\065\051\070" + + "\131\074\015\100\u052a\105\204\106\063\107\170\110\144" + + "\121\106\131\075\151\126\152\043\153\022\154\137\155" + + "\077\156\055\157\110\161\070\201\025\223\171\225\116" + + "\226\006\230\021\233\134\240\111\243\032\244\040\245" + "\047\256\056\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\106\003\174\004\101\062\167\063" + - "\124\064\153\065\051\070\131\074\015\100\u0531\105\204" + - "\106\063\107\170\110\144\121\106\131\075\151\126\152" + - "\043\153\022\154\137\155\077\156\055\157\110\161\070" + - "\201\025\223\171\225\116\226\006\230\021\233\134\240" + - "\111\243\032\244\040\245\047\256\056\001\001\000\002" + - "\001\001\000\002\001\001\000\004\051\u0535\001\001\000" + - "\002\001\001\000\002\001\001\000\010\046\u0537\047\343" + - "\056\344\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001" }); + "\000\002\001\001\000\054\003\337\064\153\065\051\105" + + "\334\106\063\107\325\110\144\121\106\152\043\155\326" + + "\156\055\161\332\201\u0530\223\u052f\226\006\230\021\233" + + "\134\243\032\244\040\245\047\256\056\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\106\003" + + "\174\004\101\062\167\063\124\064\153\065\051\070\131" + + "\074\015\100\u0532\105\204\106\063\107\170\110\144\121" + + "\106\131\075\151\126\152\043\153\022\154\137\155\077" + + "\156\055\157\110\161\070\201\025\223\171\225\116\226" + + "\006\230\021\233\134\240\111\243\032\244\040\245\047" + + "\256\056\001\001\000\002\001\001\000\002\001\001\000" + + "\004\051\u0536\001\001\000\002\001\001\000\002\001\001" + + "\000\010\046\u0538\047\343\056\344\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001" }); /** Access to reduce_goto table. */ public short[][] reduce_table() {return _reduce_table;} @@ -3739,16 +3739,16 @@ return CUP$ASTPHP5Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 107: // group_namespace_parts ::= non_empty_group_namespace_parts - { - List RESULT =null; - int listleft = ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.peek()).left; - int listright = ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.peek()).right; - List list = (List)((java_cup.runtime.Symbol) CUP$ASTPHP5Parser$stack.peek()).value; - - RESULT = list; - - CUP$ASTPHP5Parser$result = parser.getSymbolFactory().newSymbol("group_namespace_parts",3, ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.peek()), RESULT); + case 107: // group_namespace_parts ::= non_empty_group_namespace_parts possible_comma + { + List RESULT =null; + int listleft = ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.elementAt(CUP$ASTPHP5Parser$top-1)).left; + int listright = ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.elementAt(CUP$ASTPHP5Parser$top-1)).right; + List list = (List)((java_cup.runtime.Symbol) CUP$ASTPHP5Parser$stack.elementAt(CUP$ASTPHP5Parser$top-1)).value; + + RESULT = list; + + CUP$ASTPHP5Parser$result = parser.getSymbolFactory().newSymbol("group_namespace_parts",3, ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.elementAt(CUP$ASTPHP5Parser$top-1)), ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.peek()), RESULT); } return CUP$ASTPHP5Parser$result; diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java b/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java @@ -42,7 +42,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 -// Wed May 17 13:21:18 JST 2017 +// Tue Jul 11 14:57:20 JST 2017 //---------------------------------------------------- package org.netbeans.modules.php.editor.parser; diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable1.java b/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable1.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable1.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable1.java @@ -51,7 +51,7 @@ } protected EncodedActionTable1() { sb = new StringBuilder(); - sb.append("\000\u0538\000\256\002\uffaa\003\uffaa\004\uffaa\005\uffaa\006"); + sb.append("\000\u0539\000\256\002\uffaa\003\uffaa\004\uffaa\005\uffaa\006"); sb.append("\uffaa\007\uffaa\010\uffaa\011\uffaa\012\uffaa\014\uffaa\015\uffaa"); sb.append("\016\uffaa\017\uffaa\020\uffaa\021\uffaa\023\uffaa\025\uffaa\027"); sb.append("\uffaa\032\uffaa\034\uffaa\040\uffaa\041\uffaa\042\uffaa\043\uffaa"); @@ -64,7 +64,7 @@ sb.append("\174\uffaa\175\uffaa\177\uffaa\200\uffaa\201\uffaa\202\uffaa\203"); sb.append("\uffaa\204\uffaa\205\uffaa\206\uffaa\207\uffaa\210\uffaa\211\uffaa"); sb.append("\213\uffaa\217\uffaa\220\uffaa\221\uffaa\225\uffaa\230\uffaa\231"); - sb.append("\uffaa\232\uffaa\233\uffaa\235\uffaa\001\002\000\004\002\u053a"); + sb.append("\uffaa\232\uffaa\233\uffaa\235\uffaa\001\002\000\004\002\u053b"); sb.append("\001\002\000\256\002\001\003\142\004\174\005\211\006"); sb.append("\130\007\012\010\036\011\063\012\072\014\113\015\160"); sb.append("\016\155\017\150\020\144\021\051\023\035\025\121\027"); @@ -84,7 +84,7 @@ sb.append("\153\ufe27\154\ufe27\155\ufe27\156\ufe27\157\ufe27\160\ufe27\161"); sb.append("\ufe27\162\ufe27\163\ufe27\164\ufe27\165\ufe27\166\ufe27\167\ufe27"); sb.append("\170\ufe27\171\ufe27\172\ufe27\173\ufe27\176\ufe27\212\ufe27\226"); - sb.append("\ufe27\227\ufe27\237\ufe27\242\ufe27\001\002\000\004\225\u0537"); + sb.append("\ufe27\227\ufe27\237\ufe27\242\ufe27\001\002\000\004\225\u0538"); sb.append("\001\002\000\304\002\uff6c\003\uff6c\004\uff6c\005\uff6c\006"); sb.append("\uff6c\007\uff6c\010\uff6c\011\uff6c\012\uff6c\014\uff6c\015\uff6c"); sb.append("\016\uff6c\017\uff6c\020\uff6c\021\uff6c\022\uff6c\023\uff6c\024"); @@ -100,7 +100,7 @@ sb.append("\202\uff6c\203\uff6c\204\uff6c\205\uff6c\206\uff6c\207\uff6c\210"); sb.append("\uff6c\211\uff6c\213\uff6c\214\uff6c\215\uff6c\216\uff6c\217\uff6c"); sb.append("\220\uff6c\221\uff6c\225\uff6c\230\uff6c\231\uff6c\232\uff6c\233"); - sb.append("\uff6c\235\uff6c\001\002\000\006\012\u052c\230\u052d\001\002"); + sb.append("\uff6c\235\uff6c\001\002\000\006\012\u052d\230\u052e\001\002"); sb.append("\000\114\031\ufe2a\033\ufe2a\070\ufe2a\107\ufe2a\124\ufe2a\125"); sb.append("\ufe2a\126\ufe2a\127\ufe2a\145\ufe2a\146\ufe2a\147\ufe2a\150\ufe2a"); sb.append("\151\ufe2a\152\ufe2a\153\ufe2a\154\ufe2a\155\ufe2a\156\ufe2a\157"); @@ -121,7 +121,7 @@ sb.append("\030\202\163\203\042\204\153\205\110\206\164\207\104"); sb.append("\210\040\211\061\212\ufdd1\213\114\217\215\225\203\226"); sb.append("\ufdd1\227\ufdd1\230\120\231\134\232\070\233\143\237\ufdd1"); - sb.append("\242\ufdd1\001\002\000\004\225\u0523\001\002\000\156\004"); + sb.append("\242\ufdd1\001\002\000\004\225\u0524\001\002\000\156\004"); sb.append("\174\006\130\007\012\010\214\011\063\012\072\015\160"); sb.append("\016\155\032\123\043\217\060\200\061\032\071\202\072"); sb.append("\014\074\021\075\141\076\053\077\054\100\162\101\006"); @@ -142,7 +142,7 @@ sb.append("\155\252\156\232\157\247\160\264\161\263\162\245\163"); sb.append("\243\164\262\165\256\166\251\167\266\170\244\171\255"); sb.append("\172\253\173\233\176\240\212\ufdc5\226\ufdc5\227\ufdc5\237"); - sb.append("\242\242\234\001\002\000\004\063\u0521\001\002\000\114"); + sb.append("\242\242\234\001\002\000\004\063\u0522\001\002\000\114"); sb.append("\031\ufe25\033\ufe25\070\ufe25\107\ufe25\124\ufe25\125\ufe25\126"); sb.append("\ufe25\127\ufe25\145\ufe25\146\ufe25\147\ufe25\150\ufe25\151\ufe25"); sb.append("\152\ufe25\153\ufe25\154\ufe25\155\ufe25\156\ufe25\157\ufe25\160"); diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java b/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java @@ -1126,9 +1126,9 @@ sb.append("\000"); sb.append("\012"); sb.append("\033"); + sb.append("\u051d"); + sb.append("\114"); sb.append("\u051c"); - sb.append("\114"); - sb.append("\u051b"); sb.append("\124"); sb.append("\uff9c"); sb.append("\146"); @@ -1636,7 +1636,7 @@ sb.append("\000"); sb.append("\006"); sb.append("\107"); - sb.append("\uff96"); + sb.append("\ufdd8"); sb.append("\124"); sb.append("\u0511"); sb.append("\001"); @@ -1682,18 +1682,26 @@ sb.append("\001"); sb.append("\002"); sb.append("\000"); - sb.append("\012"); + sb.append("\014"); sb.append("\010"); sb.append("\314"); sb.append("\043"); sb.append("\u0509"); sb.append("\044"); sb.append("\u050a"); + sb.append("\107"); + sb.append("\ufdd7"); sb.append("\116"); sb.append("\065"); sb.append("\001"); sb.append("\002"); sb.append("\000"); + sb.append("\004"); + sb.append("\107"); + sb.append("\uff96"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); sb.append("\006"); sb.append("\107"); sb.append("\uff94"); @@ -1704,7 +1712,7 @@ sb.append("\000"); sb.append("\012"); sb.append("\033"); - sb.append("\u0514"); + sb.append("\u0515"); sb.append("\107"); sb.append("\uff8e"); sb.append("\114"); @@ -1716,7 +1724,7 @@ sb.append("\000"); sb.append("\004"); sb.append("\010"); - sb.append("\u0515"); + sb.append("\u0516"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -1730,7 +1738,7 @@ sb.append("\000"); sb.append("\012"); sb.append("\033"); - sb.append("\u0517"); + sb.append("\u0518"); sb.append("\107"); sb.append("\uff90"); sb.append("\114"); @@ -1742,7 +1750,7 @@ sb.append("\000"); sb.append("\004"); sb.append("\010"); - sb.append("\u0518"); + sb.append("\u0519"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -1758,7 +1766,7 @@ sb.append("\124"); sb.append("\u04fe"); sb.append("\146"); - sb.append("\u051a"); + sb.append("\u051b"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -1944,13 +1952,13 @@ sb.append("\010"); sb.append("\322"); sb.append("\106"); - sb.append("\u051e"); + sb.append("\u051f"); sb.append("\001"); sb.append("\002"); sb.append("\000"); sb.append("\004"); sb.append("\010"); - sb.append("\u051d"); + sb.append("\u051e"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -1978,7 +1986,7 @@ sb.append("\000"); sb.append("\004"); sb.append("\107"); - sb.append("\u0520"); + sb.append("\u0521"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -2194,7 +2202,7 @@ sb.append("\000"); sb.append("\004"); sb.append("\226"); - sb.append("\u0525"); + sb.append("\u0526"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -2288,7 +2296,7 @@ sb.append("\033"); sb.append("\ufdce"); sb.append("\070"); - sb.append("\u0529"); + sb.append("\u052a"); sb.append("\107"); sb.append("\ufdce"); sb.append("\124"); @@ -2708,9 +2716,9 @@ sb.append("\000"); sb.append("\006"); sb.append("\124"); - sb.append("\u0534"); + sb.append("\u0535"); sb.append("\146"); - sb.append("\u0535"); + sb.append("\u0536"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -2732,7 +2740,7 @@ sb.append("\072"); sb.append("\014"); sb.append("\106"); - sb.append("\u0531"); + sb.append("\u0532"); sb.append("\111"); sb.append("\337"); sb.append("\114"); @@ -2890,7 +2898,7 @@ sb.append("\031"); sb.append("\257"); sb.append("\107"); - sb.append("\u0533"); + sb.append("\u0534"); sb.append("\125"); sb.append("\246"); sb.append("\126"); @@ -2960,9 +2968,9 @@ sb.append("\000"); sb.append("\006"); sb.append("\012"); - sb.append("\u052c"); + sb.append("\u052d"); sb.append("\230"); - sb.append("\u052d"); + sb.append("\u052e"); sb.append("\001"); sb.append("\002"); sb.append("\000"); @@ -3292,7 +3300,7 @@ sb.append("\000"); sb.append("\004"); sb.append("\226"); - sb.append("\u0539"); + sb.append("\u053a"); sb.append("\001"); sb.append("\002"); sb.append("\000"); diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/astnodes/GroupUseStatementPart.java b/php.editor/src/org/netbeans/modules/php/editor/parser/astnodes/GroupUseStatementPart.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/astnodes/GroupUseStatementPart.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/astnodes/GroupUseStatementPart.java @@ -51,6 +51,7 @@ *
  * some\namespace\{ClassA, sub\ClassB, ClassC as C};
  * some\namespace\{ClassA, function sub\myfnc, const MY_CONST as C};
+ * some\namespace\{ClassA,}; // PHP7.2
  * 
*/ public class GroupUseStatementPart extends UseStatementPart { diff --git a/php.editor/src/org/netbeans/modules/php/editor/resources/layer.xml b/php.editor/src/org/netbeans/modules/php/editor/resources/layer.xml --- a/php.editor/src/org/netbeans/modules/php/editor/resources/layer.xml +++ b/php.editor/src/org/netbeans/modules/php/editor/resources/layer.xml @@ -435,6 +435,7 @@ + diff --git a/php.editor/src/org/netbeans/modules/php/editor/verification/PHP72UnhandledError.java b/php.editor/src/org/netbeans/modules/php/editor/verification/PHP72UnhandledError.java new file mode 100644 --- /dev/null +++ b/php.editor/src/org/netbeans/modules/php/editor/verification/PHP72UnhandledError.java @@ -0,0 +1,197 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ +package org.netbeans.modules.php.editor.verification; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import org.netbeans.api.lexer.Token; +import org.netbeans.api.lexer.TokenSequence; +import org.netbeans.api.lexer.TokenUtilities; +import org.netbeans.editor.BaseDocument; +import org.netbeans.modules.csl.api.Error; +import org.netbeans.modules.csl.spi.GsfUtilities; +import org.netbeans.modules.csl.spi.support.CancelSupport; +import org.netbeans.modules.php.api.PhpVersion; +import org.netbeans.modules.php.editor.CodeUtils; +import org.netbeans.modules.php.editor.lexer.LexUtilities; +import org.netbeans.modules.php.editor.lexer.PHPTokenId; +import org.netbeans.modules.php.editor.parser.PHPParseResult; +import org.netbeans.modules.php.editor.parser.astnodes.ASTNode; +import org.netbeans.modules.php.editor.parser.astnodes.GroupUseStatementPart; +import org.netbeans.modules.php.editor.parser.astnodes.SingleUseStatementPart; +import org.netbeans.modules.php.editor.parser.astnodes.visitors.DefaultVisitor; +import org.openide.filesystems.FileObject; +import org.openide.util.NbBundle; + +public class PHP72UnhandledError extends UnhandledErrorRule { + + @NbBundle.Messages("PHP72UnhandledError.displayName=Language feature not compatible with PHP version indicated in project settings") + @Override + public String getDisplayName() { + return Bundle.PHP72UnhandledError_displayName(); + } + + @Override + public void invoke(PHPRuleContext context, List errors) { + PHPParseResult phpParseResult = (PHPParseResult) context.parserResult; + if (phpParseResult.getProgram() == null) { + return; + } + FileObject fileObject = phpParseResult.getSnapshot().getSource().getFileObject(); + if (fileObject != null + && appliesTo(fileObject)) { + if (CancelSupport.getDefault().isCancelled()) { + return; + } + CheckVisitor checkVisitor = new CheckVisitor(fileObject); + phpParseResult.getProgram().accept(checkVisitor); + if (CancelSupport.getDefault().isCancelled()) { + return; + } + errors.addAll(checkVisitor.getErrors()); + } + } + + private static boolean appliesTo(FileObject fileObject) { + return CodeUtils.isPhpVersionLessThan(fileObject, PhpVersion.PHP_72); + } + + //~ Inner classes + private static final class CheckVisitor extends DefaultVisitor { + + private final List errors = new ArrayList<>(); + private final List lastUseStatementParts = new ArrayList<>(); + private final FileObject fileObject; + + public CheckVisitor(FileObject fileObject) { + this.fileObject = fileObject; + } + + public Collection getErrors() { + checkGroupUseTrailingCommas(); + return Collections.unmodifiableCollection(errors); + } + + @Override + public void visit(GroupUseStatementPart node) { + if (CancelSupport.getDefault().isCancelled()) { + return; + } + List items = node.getItems(); + if (!items.isEmpty()) { + lastUseStatementParts.add(items.get(items.size() - 1)); + } + super.visit(node); + } + + private void checkGroupUseTrailingCommas() { + if (!lastUseStatementParts.isEmpty()) { + BaseDocument document = GsfUtilities.getDocument(fileObject, true); + if (document == null) { + return; + } + document.readLock(); + try { + TokenSequence ts = LexUtilities.getPHPTokenSequence(document, 0); + if (ts == null) { + return; + } + lastUseStatementParts.forEach((lastUseStatementPart) -> { + if (CancelSupport.getDefault().isCancelled()) { + return; + } + ts.move(lastUseStatementPart.getEndOffset()); + if (ts.moveNext()) { + Token token = LexUtilities.findNext(ts, Arrays.asList(PHPTokenId.WHITESPACE)); + if (token == null) { + return; + } + if (token.id() == PHPTokenId.PHP_TOKEN && TokenUtilities.textEquals(token.text(), ",")) { // NOI18N + createError(lastUseStatementPart); + } + } + }); + } finally { + document.readUnlock(); + lastUseStatementParts.clear(); + } + } + } + + private void createError(int startOffset, int endOffset) { + errors.add(new PHP72VersionError(fileObject, startOffset, endOffset)); + } + + private void createError(ASTNode node) { + createError(node.getStartOffset(), node.getEndOffset()); + } + + } + + private static final class PHP72VersionError extends VerificationError { + + private static final String KEY = "Php.Version.72"; // NOI18N + + private PHP72VersionError(FileObject fileObject, int startOffset, int endOffset) { + super(fileObject, startOffset, endOffset); + } + + @NbBundle.Messages("PHP72VersionError.displayName=Language feature not compatible with PHP version indicated in project settings") + @Override + public String getDisplayName() { + return Bundle.PHP72VersionError_displayName(); + } + + @NbBundle.Messages("PHP72VersionError.description=Detected language features not compatible with PHP version indicated in project settings") + @Override + public String getDescription() { + return Bundle.PHP72VersionError_description(); + } + + @Override + public String getKey() { + return KEY; + } + + } +} diff --git a/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/lexer/PHP72FeaturesTest/lexer/object_type_01.pass b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/lexer/PHP72FeaturesTest/lexer/object_type_01.pass new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/lexer/PHP72FeaturesTest/lexer/object_type_01.pass @@ -0,0 +1,73 @@ +token #0 PHP_OPENTAG + + + use + + + some + + + \ + + + ns + + + \ + + + { + + + ClassA + + + , + + + ClassB + + + , + + + ClassC + + + as + + + C + + + , + + + } + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_02.pass b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_02.pass new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_02.pass @@ -0,0 +1,95 @@ + + + + use + + + function + + + some + + + \ + + + ns + + + \ + + + { + + + fn_a + + + , + + + fn_b + + + , + + + fn_c + + + , + + + } + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_03.pass b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_03.pass new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_03.pass @@ -0,0 +1,95 @@ + + + + use + + + const + + + some + + + \ + + + ns + + + \ + + + { + + + ConstA + + + , + + + ConstB + + + , + + + ConstC + + + , + + + } + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_04.pass b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_04.pass new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest/parser/groupUseTrailingCommas_04.pass @@ -0,0 +1,134 @@ + + + + use + + + foo + + + \ + + + math + + + \ + + + { + + + Math + + + , + + + const + + + PI + + + , + + + function + + + sin + + + , + + + function + + + cos + + + , + + + function + + + cosh + + + , + + + } + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences01.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences01.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences03.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences03.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences05.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences05.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences05.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences05.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences07.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences07.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences07.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences07.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences08.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences08.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences08.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences08.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences10.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences10.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences10.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences10.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences12.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences12.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences12.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences12.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences14.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences14.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences14.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences14.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences16.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences16.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences16.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences16.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences18.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences18.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences18.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences18.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences20.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences20.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences20.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences20.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences22.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences22.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences22.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences22.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences24.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences24.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences24.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences24.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences26.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences26.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences26.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences26.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences28.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences28.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences28.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences28.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences30.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences30.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences30.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences30.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences32.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences32.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences32.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences32.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences34.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences34.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences34.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences34.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences36.completion b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences36.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences36.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/byReferences/byReferences.php.testByReferences36.completion @@ -11,4 +11,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes11.completion b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes11.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes11.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes11.completion @@ -10,4 +10,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes14.completion b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes14.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes14.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes14.completion @@ -10,4 +10,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes5.completion b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes5.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes5.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes5.completion @@ -10,4 +10,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes8.completion b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes8.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes8.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/netbeans68version/paramdecltypes/paramdecltypes.php.testParamDeclTypes8.completion @@ -10,4 +10,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_01.completion @@ -17,4 +17,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php54/callableTypeHint.php.testCallableTypeHint_03.completion @@ -17,4 +17,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType01.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType03.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType05.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType05.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType05.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType05.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType07.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType07.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType07.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType07.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType12.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType12.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType12.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType12.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType13.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType13.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType13.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType13.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType14.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType14.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType14.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypes.php.testReturnType14.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping01.php.testReturnTypesTyping01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping01.php.testReturnTypesTyping01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping01.php.testReturnTypesTyping01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping01.php.testReturnTypesTyping01.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping02.php.testReturnTypesTyping02.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping02.php.testReturnTypesTyping02.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping02.php.testReturnTypesTyping02.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping02.php.testReturnTypesTyping02.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping03.php.testReturnTypesTyping03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping03.php.testReturnTypesTyping03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping03.php.testReturnTypesTyping03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping03.php.testReturnTypesTyping03.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04a.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04a.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04a.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04a.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04b.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04b.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04b.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping04.php.testReturnTypesTyping04b.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping05.php.testReturnTypesTyping05.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping05.php.testReturnTypesTyping05.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping05.php.testReturnTypesTyping05.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping05.php.testReturnTypesTyping05.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping06.php.testReturnTypesTyping06.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping06.php.testReturnTypesTyping06.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping06.php.testReturnTypesTyping06.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping06.php.testReturnTypesTyping06.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping07.php.testReturnTypesTyping07.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping07.php.testReturnTypesTyping07.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping07.php.testReturnTypesTyping07.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping07.php.testReturnTypesTyping07.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08a.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08a.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08a.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08a.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08b.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08b.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08b.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping08.php.testReturnTypesTyping08b.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping09.php.testReturnTypesTyping09.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping09.php.testReturnTypesTyping09.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping09.php.testReturnTypesTyping09.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping09.php.testReturnTypesTyping09.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping10.php.testReturnTypesTyping10.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping10.php.testReturnTypesTyping10.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping10.php.testReturnTypesTyping10.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping10.php.testReturnTypesTyping10.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping11.php.testReturnTypesTyping11.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping11.php.testReturnTypesTyping11.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping11.php.testReturnTypesTyping11.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping11.php.testReturnTypesTyping11.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12a.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12a.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12a.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12a.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12b.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12b.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12b.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/returnTypesTyping12.php.testReturnTypesTyping12b.completion @@ -53,5 +53,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint01.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testBoolTypeHint03.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint01.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testFloatTypeHint03.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint01.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testIntTypeHint03.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint01.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php70/base/scalarTypeHints.php.testStringTypeHint03.completion @@ -53,4 +53,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType01.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType03.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType07.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType07.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType07.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType07.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType09.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType09.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType09.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType09.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType11.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType11.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType11.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType11.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType13.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType13.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType13.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ParameterType13.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType01.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType03.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType05.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType05.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType05.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType05.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType09.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType09.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType09.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType09.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType11.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType11.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType11.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType11.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType13.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType13.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType13.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType13.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType15.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType15.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType15.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/nullableTypes.php.testNullableTypes_ReturnType15.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType01.php.testNullableTypes_TypingParameterType01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType01.php.testNullableTypes_TypingParameterType01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType01.php.testNullableTypes_TypingParameterType01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType01.php.testNullableTypes_TypingParameterType01.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType02.php.testNullableTypes_TypingParameterType02.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType02.php.testNullableTypes_TypingParameterType02.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType02.php.testNullableTypes_TypingParameterType02.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType02.php.testNullableTypes_TypingParameterType02.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType03.php.testNullableTypes_TypingParameterType03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType03.php.testNullableTypes_TypingParameterType03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType03.php.testNullableTypes_TypingParameterType03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType03.php.testNullableTypes_TypingParameterType03.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType04.php.testNullableTypes_TypingParameterType04.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType04.php.testNullableTypes_TypingParameterType04.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType04.php.testNullableTypes_TypingParameterType04.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType04.php.testNullableTypes_TypingParameterType04.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType05.php.testNullableTypes_TypingParameterType05.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType05.php.testNullableTypes_TypingParameterType05.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType05.php.testNullableTypes_TypingParameterType05.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType05.php.testNullableTypes_TypingParameterType05.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType06.php.testNullableTypes_TypingParameterType06.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType06.php.testNullableTypes_TypingParameterType06.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType06.php.testNullableTypes_TypingParameterType06.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType06.php.testNullableTypes_TypingParameterType06.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType07.php.testNullableTypes_TypingParameterType07.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType07.php.testNullableTypes_TypingParameterType07.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType07.php.testNullableTypes_TypingParameterType07.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType07.php.testNullableTypes_TypingParameterType07.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType08.php.testNullableTypes_TypingParameterType08.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType08.php.testNullableTypes_TypingParameterType08.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType08.php.testNullableTypes_TypingParameterType08.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType08.php.testNullableTypes_TypingParameterType08.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType09.php.testNullableTypes_TypingParameterType09.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType09.php.testNullableTypes_TypingParameterType09.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType09.php.testNullableTypes_TypingParameterType09.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType09.php.testNullableTypes_TypingParameterType09.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType10.php.testNullableTypes_TypingParameterType10.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType10.php.testNullableTypes_TypingParameterType10.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType10.php.testNullableTypes_TypingParameterType10.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType10.php.testNullableTypes_TypingParameterType10.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType11.php.testNullableTypes_TypingParameterType11.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType11.php.testNullableTypes_TypingParameterType11.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType11.php.testNullableTypes_TypingParameterType11.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType11.php.testNullableTypes_TypingParameterType11.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType12.php.testNullableTypes_TypingParameterType12.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType12.php.testNullableTypes_TypingParameterType12.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType12.php.testNullableTypes_TypingParameterType12.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingParameterType12.php.testNullableTypes_TypingParameterType12.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType01.php.testNullableTypes_TypingReturnType01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType01.php.testNullableTypes_TypingReturnType01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType01.php.testNullableTypes_TypingReturnType01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType01.php.testNullableTypes_TypingReturnType01.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType02.php.testNullableTypes_TypingReturnType02.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType02.php.testNullableTypes_TypingReturnType02.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType02.php.testNullableTypes_TypingReturnType02.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType02.php.testNullableTypes_TypingReturnType02.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType03.php.testNullableTypes_TypingReturnType03.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType03.php.testNullableTypes_TypingReturnType03.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType03.php.testNullableTypes_TypingReturnType03.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType03.php.testNullableTypes_TypingReturnType03.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType04.php.testNullableTypes_TypingReturnType04.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType04.php.testNullableTypes_TypingReturnType04.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType04.php.testNullableTypes_TypingReturnType04.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType04.php.testNullableTypes_TypingReturnType04.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType05.php.testNullableTypes_TypingReturnType05.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType05.php.testNullableTypes_TypingReturnType05.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType05.php.testNullableTypes_TypingReturnType05.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType05.php.testNullableTypes_TypingReturnType05.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType06.php.testNullableTypes_TypingReturnType06.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType06.php.testNullableTypes_TypingReturnType06.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType06.php.testNullableTypes_TypingReturnType06.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType06.php.testNullableTypes_TypingReturnType06.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType07.php.testNullableTypes_TypingReturnType07.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType07.php.testNullableTypes_TypingReturnType07.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType07.php.testNullableTypes_TypingReturnType07.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType07.php.testNullableTypes_TypingReturnType07.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType08.php.testNullableTypes_TypingReturnType08.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType08.php.testNullableTypes_TypingReturnType08.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType08.php.testNullableTypes_TypingReturnType08.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType08.php.testNullableTypes_TypingReturnType08.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType09.php.testNullableTypes_TypingReturnType09.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType09.php.testNullableTypes_TypingReturnType09.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType09.php.testNullableTypes_TypingReturnType09.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType09.php.testNullableTypes_TypingReturnType09.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType10.php.testNullableTypes_TypingReturnType10.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType10.php.testNullableTypes_TypingReturnType10.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType10.php.testNullableTypes_TypingReturnType10.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType10.php.testNullableTypes_TypingReturnType10.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType11.php.testNullableTypes_TypingReturnType11.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType11.php.testNullableTypes_TypingReturnType11.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType11.php.testNullableTypes_TypingReturnType11.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType11.php.testNullableTypes_TypingReturnType11.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType12.php.testNullableTypes_TypingReturnType12.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType12.php.testNullableTypes_TypingReturnType12.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType12.php.testNullableTypes_TypingReturnType12.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypes/typingReturnType12.php.testNullableTypes_TypingReturnType12.completion @@ -29,4 +29,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType04.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType04.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType04.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType04.completion @@ -9,4 +9,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType06.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType06.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType06.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testNullableTypesInPHPDoc/nullableTypesInPHPDoc.php.testNullableTypesInPHPDoc_NullableType06.completion @@ -9,4 +9,5 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Class01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Class01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Class01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Class01.completion @@ -10,5 +10,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Function01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Function01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Function01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Function01.completion @@ -10,5 +10,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Interface01.completion b/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Interface01.completion --- a/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Interface01.completion +++ b/php.editor/test/unit/data/testfiles/completion/lib/php71/testVoidReturnType/voidReturnType.php.testVoidReturnType_Interface01.completion @@ -10,5 +10,6 @@ KEYWORD float null KEYWORD int null KEYWORD iterable null +KEYWORD object null KEYWORD string null KEYWORD void null diff --git a/php.editor/test/unit/data/testfiles/completion/lib/php72/testObjectTypeHint/objectTypeHint.php b/php.editor/test/unit/data/testfiles/completion/lib/php72/testObjectTypeHint/objectTypeHint.php new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/completion/lib/php72/testObjectTypeHint/objectTypeHint.php @@ -0,0 +1,18 @@ +MARK_OCCURRENCES:Foo<| { + |>MARK_OCCURRENCES:Foo<|, +$foo = new |>MARK_OCCURRENCES:Foo<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Foo<| { + |>MARK_OCCURRENCES:Fo^o<|, +$foo = new |>MARK_OCCURRENCES:Foo<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Foo<| { + |>MARK_OCCURRENCES:Foo<|, +$foo = new |>MARK_OCCURRENCES:Fo^o<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:B^ar<| { + |>MARK_OCCURRENCES:Bar<|, +$bar = new |>MARK_OCCURRENCES:Bar<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Bar<| { + |>MARK_OCCURRENCES:Ba^r<|, +$bar = new |>MARK_OCCURRENCES:Bar<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Bar<| { + |>MARK_OCCURRENCES:Bar<|, +$bar = new |>MARK_OCCURRENCES:Ba^r<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Ba^z<| { + B\|>MARK_OCCURRENCES:Baz<|, +$baz = new |>MARK_OCCURRENCES:Baz<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Baz<| { + B\|>MARK_OCCURRENCES:Ba^z<|, +$baz = new |>MARK_OCCURRENCES:Baz<|(); diff --git a/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences @@ -0,0 +1,3 @@ +class |>MARK_OCCURRENCES:Baz<| { + B\|>MARK_OCCURRENCES:Baz<|, +$baz = new |>MARK_OCCURRENCES:Ba^z<|(); diff --git a/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP72CodeCompletionTest.java b/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP72CodeCompletionTest.java new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP72CodeCompletionTest.java @@ -0,0 +1,101 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ +package org.netbeans.modules.php.editor.completion; + +import java.io.File; +import java.util.Collections; +import java.util.Map; +import org.netbeans.api.java.classpath.ClassPath; +import org.netbeans.modules.php.project.api.PhpSourcePath; +import org.netbeans.spi.java.classpath.support.ClassPathSupport; +import org.openide.filesystems.FileObject; +import org.openide.filesystems.FileUtil; + + +public class PHP72CodeCompletionTest extends PHPCodeCompletionTestBase { + + public PHP72CodeCompletionTest(String testName) { + super(testName); + } + + @Override + protected Map createClassPathsForTest() { + return Collections.singletonMap( + PhpSourcePath.SOURCE_CP, + ClassPathSupport.createClassPath(new FileObject[]{ + FileUtil.toFileObject(new File(getDataDir(), "/testfiles/completion/lib/php72/" + getTestDirName())) + }) + ); + } + + private String getTestDirName() { + String name = getName(); + int indexOf = name.indexOf("_"); + if (indexOf != -1) { + name = name.substring(0, indexOf); + } + return name; + } + + private String getTestPath(String fileName) { + return String.format("testfiles/completion/lib/php72/%s/%s.php", getTestDirName(), fileName); + } + + public void testObjectTypeHint_ParameterType01() throws Exception { + checkCompletion(getTestPath("objectTypeHint"), "function parameterType01(^) {", false); + } + + public void testObjectTypeHint_ParameterType02() throws Exception { + checkCompletion(getTestPath("objectTypeHint"), "function parameterType02(obje^ct $arg) {", false); + } + + public void testObjectTypeHint_ParameterType03() throws Exception { + checkCompletion(getTestPath("objectTypeHint"), " function __construct(obj^ect $arg) {", false); + } + + public void testObjectTypeHint_ReturnType01() throws Exception { + checkCompletion(getTestPath("objectTypeHint"), "function returnType01(object $arg): ob^ject {", false); + } + + public void testObjectTypeHint_ReturnType02() throws Exception { + checkCompletion(getTestPath("objectTypeHint"), "function returnType02(object $arg): ^ {", false); + } + +} diff --git a/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP72Test.java b/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP72Test.java new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP72Test.java @@ -0,0 +1,73 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ +package org.netbeans.modules.php.editor.csl; + + +public class GotoDeclarationPHP72Test extends GotoDeclarationTestBase { + + public GotoDeclarationPHP72Test(String testName) { + super(testName); + } + + public void testGroupUseTrailingCommas_01() throws Exception { + checkDeclaration(getTestPath(), " F^oo,", "class ^Foo {"); + } + + public void testGroupUseTrailingCommas_02() throws Exception { + checkDeclaration(getTestPath(), "$foo = new Fo^o();", "class ^Foo {"); + } + + public void testGroupUseTrailingCommas_03() throws Exception { + checkDeclaration(getTestPath(), " ^Bar,", "class ^Bar {"); + } + + public void testGroupUseTrailingCommas_04() throws Exception { + checkDeclaration(getTestPath(), "$bar = new Ba^r();", "class ^Bar {"); + } + + public void testGroupUseTrailingCommas_05() throws Exception { + checkDeclaration(getTestPath(), " B\\Ba^z", "class ^Baz {"); + } + + public void testGroupUseTrailingCommas_06() throws Exception { + checkDeclaration(getTestPath(), "$baz = new Ba^z();", "class ^Baz {"); + } + +} diff --git a/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP72Test.java b/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP72Test.java new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP72Test.java @@ -0,0 +1,85 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ +package org.netbeans.modules.php.editor.csl; + + +public class OccurrencesFinderImplPHP72Test extends OccurrencesFinderImplTestBase { + + public OccurrencesFinderImplPHP72Test(String testName) { + super(testName); + } + + public void testGroupUseTrailingCommas_01() throws Exception { + checkOccurrences(getTestPath(), "class ^Foo {", true); + } + + public void testGroupUseTrailingCommas_02() throws Exception { + checkOccurrences(getTestPath(), " Fo^o,", true); + } + + public void testGroupUseTrailingCommas_03() throws Exception { + checkOccurrences(getTestPath(), "$foo = new Fo^o();", true); + } + + public void testGroupUseTrailingCommas_04() throws Exception { + checkOccurrences(getTestPath(), "class B^ar {", true); + } + + public void testGroupUseTrailingCommas_05() throws Exception { + checkOccurrences(getTestPath(), " Ba^r,", true); + } + + public void testGroupUseTrailingCommas_06() throws Exception { + checkOccurrences(getTestPath(), "$bar = new Ba^r();", true); + } + + public void testGroupUseTrailingCommas_07() throws Exception { + checkOccurrences(getTestPath(), "class Ba^z {", true); + } + + public void testGroupUseTrailingCommas_08() throws Exception { + checkOccurrences(getTestPath(), " B\\Ba^z,", true); + } + + public void testGroupUseTrailingCommas_09() throws Exception { + checkOccurrences(getTestPath(), "$baz = new Ba^z();", true); + } + +} diff --git a/php.editor/test/unit/src/org/netbeans/modules/php/editor/lexer/PHP72FeaturesTest.java b/php.editor/test/unit/src/org/netbeans/modules/php/editor/lexer/PHP72FeaturesTest.java new file mode 100644 --- /dev/null +++ b/php.editor/test/unit/src/org/netbeans/modules/php/editor/lexer/PHP72FeaturesTest.java @@ -0,0 +1,53 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ +package org.netbeans.modules.php.editor.lexer; + + +public class PHP72FeaturesTest extends PHPLexerTestBase { + + public PHP72FeaturesTest(String testName) { + super(testName); + } + + public void testObjectType01() throws Exception { + performTest("lexer/object_type_01"); + } + +} diff --git a/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java b/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java --- a/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java +++ b/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java @@ -872,6 +872,23 @@ performTest("parser/contextSensitiveLexerWithConstVisibility_01"); } + // PHP 7.2 + public void testGroupUseTrailingCommas_01() throws Exception { + performTest("parser/groupUseTrailingCommas_01"); + } + + public void testGroupUseTrailingCommas_02() throws Exception { + performTest("parser/groupUseTrailingCommas_02"); + } + + public void testGroupUseTrailingCommas_03() throws Exception { + performTest("parser/groupUseTrailingCommas_03"); + } + + public void testGroupUseTrailingCommas_04() throws Exception { + performTest("parser/groupUseTrailingCommas_04"); + } + @Override protected String getTestResult(String filename) throws Exception { // the same is shown twice becase the scanner is used twice diff --git a/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java b/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java --- a/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java +++ b/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java @@ -781,4 +781,20 @@ checkErrors("testfiles/parser/contextSensitiveLexerWithConstVisibility_01.php"); } + public void testGroupUseTrailingCommas_01() throws Exception { + checkErrors("testfiles/parser/groupUseTrailingCommas_01.php"); + } + + public void testGroupUseTrailingCommas_02() throws Exception { + checkErrors("testfiles/parser/groupUseTrailingCommas_02.php"); + } + + public void testGroupUseTrailingCommas_03() throws Exception { + checkErrors("testfiles/parser/groupUseTrailingCommas_03.php"); + } + + public void testGroupUseTrailingCommas_04() throws Exception { + checkErrors("testfiles/parser/groupUseTrailingCommas_04.php"); + } + } diff --git a/php.editor/tools/ASTPHP5Parser.cup b/php.editor/tools/ASTPHP5Parser.cup --- a/php.editor/tools/ASTPHP5Parser.cup +++ b/php.editor/tools/ASTPHP5Parser.cup @@ -1196,7 +1196,7 @@ // used only in group uses group_namespace_parts ::= -non_empty_group_namespace_parts:list +non_empty_group_namespace_parts:list possible_comma {: RESULT = list; :} diff --git a/php.editor/tools/Php5ColoringScanner.flex b/php.editor/tools/Php5ColoringScanner.flex --- a/php.editor/tools/Php5ColoringScanner.flex +++ b/php.editor/tools/Php5ColoringScanner.flex @@ -275,6 +275,8 @@ // PHP7.1: These may be used as type names in PHP7.0 or older PHP_TYPE_VOID=[v][o][i][d] PHP_ITERABLE=[i][t][e][r][a][b][l][e] +// PHP7.2 +PHP_TYPE_OBJECT=[o][b][j][e][c][t] @@ -587,6 +589,10 @@ return PHPTokenId.PHP_TYPE_VOID; } +{PHP_TYPE_OBJECT} { + return PHPTokenId.PHP_TYPE_OBJECT; +} + "->" { pushState(ST_PHP_LOOKING_FOR_PROPERTY); return PHPTokenId.PHP_OBJECT_OPERATOR;