From c4b5abc7894c63c56a6404426c0056eeaf51dea5 Mon Sep 17 00:00:00 2001 From: NITHIN NAMBIAR Date: Mon, 7 Oct 2019 12:19:08 +0100 Subject: [PATCH 001/123] repo-3989 xerces library version update (#161) * repo-3989 xerces librarty version update * repo-3989 updated pom version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 08a2e5e5b4..38e7386151 100644 --- a/pom.xml +++ b/pom.xml @@ -308,7 +308,7 @@ xerces xercesImpl - 2.11.0-alfresco-patched-20180402 + 2.12.0-alfresco-patched-20191004 xpp3 From 9bd6649516d91118442689416531bf7f31525ada Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 7 Oct 2019 11:26:46 +0000 Subject: [PATCH 002/123] [maven-release-plugin][skip ci] prepare release 8.51 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 38e7386151..cf29831dd7 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.51-SNAPSHOT + 8.51 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.51 From 310aa264e78b30bf39483f806c6631a870597ead Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 7 Oct 2019 11:26:52 +0000 Subject: [PATCH 003/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index cf29831dd7..df4ae15217 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.51 + 8.52-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.51 + HEAD From 35f9e6480198284b50d4c98e635ccb127aaa721b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2019 22:48:31 +0100 Subject: [PATCH 004/123] Bump jackson-core from 2.9.9 to 2.10.0 (#160) [no-release] Bumps [jackson-core](https://github.com/FasterXML/jackson-core) from 2.9.9 to 2.10.0. - [Release notes](https://github.com/FasterXML/jackson-core/releases) - [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.9.9...jackson-core-2.10.0) Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index df4ae15217..70671c00c9 100644 --- a/pom.xml +++ b/pom.xml @@ -234,7 +234,7 @@ com.fasterxml.jackson.core jackson-core - 2.9.9 + 2.10.0 From f40cb117120f227dda6193dd95bd51ec8c25330f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2019 22:49:17 +0100 Subject: [PATCH 005/123] Bump jackson-annotations from 2.9.9 to 2.10.0 (#159) [no-release] Bumps [jackson-annotations](https://github.com/FasterXML/jackson) from 2.9.9 to 2.10.0. - [Release notes](https://github.com/FasterXML/jackson/releases) - [Commits](https://github.com/FasterXML/jackson/commits) Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 70671c00c9..96986d8871 100644 --- a/pom.xml +++ b/pom.xml @@ -240,7 +240,7 @@ com.fasterxml.jackson.core jackson-annotations - 2.9.9 + 2.10.0 From 3d648b3ff9eb165d56db9c2c4d3a5a9a6cfd60c3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2019 22:49:42 +0100 Subject: [PATCH 006/123] Bump bcmail-jdk15on from 1.62 to 1.63 (#155) [no-release] Bumps [bcmail-jdk15on](https://github.com/bcgit/bc-java) from 1.62 to 1.63. - [Release notes](https://github.com/bcgit/bc-java/releases) - [Changelog](https://github.com/bcgit/bc-java/blob/master/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 96986d8871..cff72c6726 100644 --- a/pom.xml +++ b/pom.xml @@ -171,7 +171,7 @@ org.bouncycastle bcmail-jdk15on - 1.62 + 1.63 From 7fe2aa93525a8f9f846ca19cfd84d7d0a6860411 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2019 22:50:15 +0100 Subject: [PATCH 007/123] Bump guava from 28.0-jre to 28.1-jre (#152) [no-release] Bumps [guava](https://github.com/google/guava) from 28.0-jre to 28.1-jre. - [Release notes](https://github.com/google/guava/releases) - [Commits](https://github.com/google/guava/commits) Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cff72c6726..abb2669373 100644 --- a/pom.xml +++ b/pom.xml @@ -189,7 +189,7 @@ com.google.guava guava - 28.0-jre + 28.1-jre From ea514c72fc2adf16ccb301ea79efff0430b8716b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2019 21:50:47 +0000 Subject: [PATCH 008/123] Bump dependency.cxf.version from 3.3.2 to 3.3.3 (#149) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index abb2669373..268b9a68d1 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 7.21 - 3.3.2 + 3.3.3 source/java/org/alfresco/repo/search/impl/parsers/CMIS*er.java, From 7df7513f0f903535c5ecdf97a48d3b38c149ccc7 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 8 Oct 2019 21:55:56 +0000 Subject: [PATCH 009/123] [maven-release-plugin][skip ci] prepare release 8.52 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 268b9a68d1..b214c5fe28 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.52-SNAPSHOT + 8.52 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.52 From c37fcc00749e26ebdc927ee6d05f9bf4987a9874 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 8 Oct 2019 21:56:02 +0000 Subject: [PATCH 010/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index b214c5fe28..6a32faa46d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.52 + 8.53-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.52 + HEAD From 1452066803e31b654e1d9627f903bc136a80d4ac Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Tue, 15 Oct 2019 12:59:30 +0100 Subject: [PATCH 011/123] REPO-4712 AIS default AI rendition definitions (via XML) are lost after startup (at **:30) (#168) - Open up a method on ConfigScheduler to allow a test in alfresco-repository to force a reload of its registry data. (cherry picked from commit 0bede55ff0290162a9e430babcf3fa999b0d7cf7) on 8.50.N for ACS 6.2 --- src/main/java/org/alfresco/util/ConfigFileFinder.java | 2 +- src/main/java/org/alfresco/util/ConfigScheduler.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/alfresco/util/ConfigFileFinder.java b/src/main/java/org/alfresco/util/ConfigFileFinder.java index a33b18f698..5b89a3a375 100644 --- a/src/main/java/org/alfresco/util/ConfigFileFinder.java +++ b/src/main/java/org/alfresco/util/ConfigFileFinder.java @@ -105,7 +105,7 @@ public abstract class ConfigFileFinder if (!somethingRead.get()) { - log.warn("No config read from "+path); + log.debug("No config read from "+path); } } catch (IOException e) diff --git a/src/main/java/org/alfresco/util/ConfigScheduler.java b/src/main/java/org/alfresco/util/ConfigScheduler.java index 48218d2e65..f7eb52bd61 100644 --- a/src/main/java/org/alfresco/util/ConfigScheduler.java +++ b/src/main/java/org/alfresco/util/ConfigScheduler.java @@ -193,7 +193,10 @@ public abstract class ConfigScheduler } } - private boolean readConfigAndReplace(boolean scheduledRead) + /** + * Should only be called directly from test code. + */ + public boolean readConfigAndReplace(boolean scheduledRead) { boolean successReadingConfig; log.debug((scheduledRead ? "Scheduled" : "Unscheduled")+" config read started"); From 60a40b18babca286bd9f7b960e86bea627877983 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 15 Oct 2019 12:03:53 +0000 Subject: [PATCH 012/123] [maven-release-plugin][skip ci] prepare release 8.53 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6a32faa46d..86e5fb761d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.53-SNAPSHOT + 8.53 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.53 From eab4e853ac1c83b1a4140b56631fd0c936cc5594 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 15 Oct 2019 12:03:59 +0000 Subject: [PATCH 013/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 86e5fb761d..bbbe4d91b9 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.53 + 8.54-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.53 + HEAD From 701b2397ceb60404f0e82f1557952c58baddc8ca Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2019 15:26:47 +0000 Subject: [PATCH 014/123] Bump alfresco-core from 7.21 to 7.22 (#164) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bbbe4d91b9..14ec814cec 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 7.21 + 7.22 3.3.3 From efb85bf724a1bfcda40983a603abb10cbd0b3b70 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 18 Nov 2019 15:31:18 +0000 Subject: [PATCH 015/123] [maven-release-plugin][skip ci] prepare release 8.54 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 14ec814cec..1f541f8ac1 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.54-SNAPSHOT + 8.54 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.54 From 4fd2c2679d1220c3483eabca92f12a3546a0315e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 18 Nov 2019 15:31:25 +0000 Subject: [PATCH 016/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1f541f8ac1..058967717a 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.54 + 8.55-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.54 + HEAD From 834f26cae45b173e991efbd2bbd9b4402108a1af Mon Sep 17 00:00:00 2001 From: Tom Page Date: Fri, 22 Nov 2019 16:40:57 +0000 Subject: [PATCH 017/123] SEARCH-840 Update FTS grammar to support queries like 'name:file.txt'. (#174) * SEARCH-840 Update FTS grammar to support queries like 'name:file.txt'. This change required manually editing the generated Antlr file. Add a README file to explain these steps. * SEARCH-840 Simplification following code review. --- .../alfresco/repo/search/impl/parsers/FTS.g | 67 +- .../repo/search/impl/parsers/FTSLexer.java | 694 +- .../repo/search/impl/parsers/FTSParser.java | 26331 ++++++++++------ .../repo/search/impl/parsers/README.md | 46 + .../repo/search/impl/parsers/fts_test.gunit | 7 + 5 files changed, 16497 insertions(+), 10648 deletions(-) create mode 100644 src/main/java/org/alfresco/repo/search/impl/parsers/README.md diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g b/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g index a85ee3aaf4..1fd5dfd0d3 100644 --- a/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g @@ -511,13 +511,22 @@ boost ftsTermOrPhrase : - (fieldReference COLON) => fieldReference COLON + (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON ( FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE fieldReference slop?) + -> ^(PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) | ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fieldReference fuzzy?) + -> ^(TERM ftsWord fieldReferenceWithPrefix fuzzy?) + ) + | + (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) ) | FTSPHRASE ((slop)=> slop)? @@ -532,13 +541,22 @@ ftsExactTermOrPhrase : EQUALS ( - (fieldReference COLON) => fieldReference COLON + (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON ( FTSPHRASE ((slop)=> slop)? - -> ^(EXACT_PHRASE FTSPHRASE fieldReference slop?) + -> ^(EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) | ftsWord ((fuzzy) => fuzzy)? - -> ^(EXACT_TERM ftsWord fieldReference fuzzy?) + -> ^(EXACT_TERM ftsWord fieldReferenceWithPrefix fuzzy?) + ) + | + (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(EXACT_TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) ) | FTSPHRASE ((slop)=> slop)? @@ -554,13 +572,22 @@ ftsTokenisedTermOrPhrase : TILDA ( - (fieldReference COLON) => fieldReference COLON + (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON ( FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE fieldReference slop?) + -> ^(PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) | ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fieldReference fuzzy?) + -> ^(TERM ftsWord fieldReferenceWithPrefix fuzzy?) + ) + | + (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) ) | FTSPHRASE ((slop)=> slop)? @@ -772,18 +799,26 @@ range_right -> EXCLUSIVE ; -/* Need to fix the generated parser for extra COLON check ??*/ - fieldReference + : + fieldReferenceWithPrefix + | fieldReferenceWithoutPrefix; + +fieldReferenceWithoutPrefix : AT? - ( - (prefix) => prefix - | uri - )? + uri? identifier -> - ^(FIELD_REF identifier prefix? uri?) + ^(FIELD_REF identifier uri?) + ; + +fieldReferenceWithPrefix + : + AT? + prefix identifier + -> + ^(FIELD_REF identifier prefix) ; tempReference diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java index 0864f88cf9..a3796913b4 100644 --- a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java @@ -4,26 +4,26 @@ * %% * Copyright (C) 2005 - 2016 Alfresco Software Limited * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . * #L% */ -// $ANTLR 3.5.2 W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g 2015-06-18 19:37:56 +// $ANTLR 3.5.2 src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g 2019-11-22 15:06:29 package org.alfresco.repo.search.impl.parsers; @@ -210,14 +210,14 @@ public class FTSLexer extends Lexer { public FTSLexer(CharStream input, RecognizerSharedState state) { super(input,state); } - @Override public String getGrammarFileName() { return "W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g"; } + @Override public String getGrammarFileName() { return "src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g"; } // $ANTLR start "FTSPHRASE" public final void mFTSPHRASE() throws RecognitionException { try { int _type = FTSPHRASE; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:935:9: ( '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:970:9: ( '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' ) int alt3=2; int LA3_0 = input.LA(1); if ( (LA3_0=='\"') ) { @@ -236,10 +236,10 @@ public class FTSLexer extends Lexer { switch (alt3) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:936:9: '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:971:9: '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' { match('\"'); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:937:9: ( F_ESC |~ ( '\\\\' | '\"' ) )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:972:9: ( F_ESC |~ ( '\\\\' | '\"' ) )* loop1: while (true) { int alt1=3; @@ -253,14 +253,14 @@ public class FTSLexer extends Lexer { switch (alt1) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:938:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:973:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:940:17: ~ ( '\\\\' | '\"' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:975:17: ~ ( '\\\\' | '\"' ) { if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) { input.consume(); @@ -284,10 +284,10 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:946:11: '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:981:11: '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' { match('\''); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:947:9: ( F_ESC |~ ( '\\\\' | '\\'' ) )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:982:9: ( F_ESC |~ ( '\\\\' | '\\'' ) )* loop2: while (true) { int alt2=3; @@ -301,14 +301,14 @@ public class FTSLexer extends Lexer { switch (alt2) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:948:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:983:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:950:17: ~ ( '\\\\' | '\\'' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:985:17: ~ ( '\\\\' | '\\'' ) { if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) { input.consume(); @@ -347,18 +347,18 @@ public class FTSLexer extends Lexer { try { int _type = URI; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:964:9: ( '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:965:9: '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:999:9: ( '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1000:9: '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' { match('{'); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:966:9: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1001:9: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? int alt5=2; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:967:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1002:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:973:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1008:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ int cnt4=0; loop4: while (true) { @@ -370,7 +370,7 @@ public class FTSLexer extends Lexer { switch (alt4) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= '9')||input.LA(1)==';'||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -401,7 +401,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:980:9: ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1015:9: ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0=='/') ) { @@ -415,16 +415,16 @@ public class FTSLexer extends Lexer { } switch (alt7) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:981:17: ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:17: ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:981:17: ( ( '//' )=> '//' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:981:19: ( '//' )=> '//' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:17: ( ( '//' )=> '//' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:19: ( '//' )=> '//' { match("//"); if (state.failed) return; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:982:17: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1017:17: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* loop6: while (true) { int alt6=2; @@ -439,7 +439,7 @@ public class FTSLexer extends Lexer { switch (alt6) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:983:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1018:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -464,7 +464,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:998:9: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1033:9: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* loop8: while (true) { int alt8=2; @@ -475,7 +475,7 @@ public class FTSLexer extends Lexer { switch (alt8) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -495,7 +495,7 @@ public class FTSLexer extends Lexer { } } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1005:9: ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1040:9: ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0=='?') ) { @@ -503,10 +503,10 @@ public class FTSLexer extends Lexer { } switch (alt10) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1006:17: '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1041:17: '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* { match('?'); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1007:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1042:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* loop9: while (true) { int alt9=2; @@ -517,7 +517,7 @@ public class FTSLexer extends Lexer { switch (alt9) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '?' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -542,7 +542,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1016:9: ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1051:9: ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0=='#') ) { @@ -550,10 +550,10 @@ public class FTSLexer extends Lexer { } switch (alt12) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1017:17: '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1052:17: '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* { match('#'); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1018:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1053:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* loop11: while (true) { int alt11=2; @@ -564,7 +564,7 @@ public class FTSLexer extends Lexer { switch (alt11) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||(input.LA(1) >= '#' && input.LA(1) <= '$')||(input.LA(1) >= '&' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '?' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -604,8 +604,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_ALPHA" public final void mF_URI_ALPHA() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1034:9: ( 'A' .. 'Z' | 'a' .. 'z' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1069:9: ( 'A' .. 'Z' | 'a' .. 'z' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -629,8 +629,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_DIGIT" public final void mF_URI_DIGIT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1041:9: ( '0' .. '9' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1076:9: ( '0' .. '9' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -654,8 +654,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_ESC" public final void mF_URI_ESC() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1047:9: ( '%' F_HEX F_HEX ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1048:9: '%' F_HEX F_HEX + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1082:9: ( '%' F_HEX F_HEX ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1083:9: '%' F_HEX F_HEX { match('%'); if (state.failed) return; mF_HEX(); if (state.failed) return; @@ -674,8 +674,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_OTHER" public final void mF_URI_OTHER() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1053:9: ( '-' | '.' | '_' | '~' | '[' | ']' | '@' | '!' | '$' | '&' | '\\'' | '(' | ')' | '*' | '+' | ',' | ';' | '=' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1088:9: ( '-' | '.' | '_' | '~' | '[' | ']' | '@' | '!' | '$' | '&' | '\\'' | '(' | ')' | '*' | '+' | ',' | ';' | '=' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||input.LA(1)==';'||input.LA(1)=='='||input.LA(1)=='@'||input.LA(1)=='['||input.LA(1)==']'||input.LA(1)=='_'||input.LA(1)=='~' ) { input.consume(); @@ -701,10 +701,10 @@ public class FTSLexer extends Lexer { try { int _type = DATETIME; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1084:9: ( ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:10: ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1119:9: ( ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:10: ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:10: ( SPECIFICDATETIME | NOW ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:10: ( SPECIFICDATETIME | NOW ) int alt13=2; int LA13_0 = input.LA(1); if ( ((LA13_0 >= '0' && LA13_0 <= '9')) ) { @@ -723,14 +723,14 @@ public class FTSLexer extends Lexer { switch (alt13) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:11: SPECIFICDATETIME + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:11: SPECIFICDATETIME { mSPECIFICDATETIME(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:30: NOW + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:30: NOW { mNOW(); if (state.failed) return; @@ -739,7 +739,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:35: ( FS UNIT )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:35: ( FS UNIT )? int alt14=2; int LA14_0 = input.LA(1); if ( (LA14_0=='/') ) { @@ -747,7 +747,7 @@ public class FTSLexer extends Lexer { } switch (alt14) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:36: FS UNIT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:36: FS UNIT { mFS(); if (state.failed) return; @@ -758,7 +758,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:46: ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:46: ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* loop16: while (true) { int alt16=2; @@ -769,7 +769,7 @@ public class FTSLexer extends Lexer { switch (alt16) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:48: ( PLUS | MINUS ) ( DIGIT )+ UNIT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:48: ( PLUS | MINUS ) ( DIGIT )+ UNIT { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -781,7 +781,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:61: ( DIGIT )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:61: ( DIGIT )+ int cnt15=0; loop15: while (true) { @@ -793,7 +793,7 @@ public class FTSLexer extends Lexer { switch (alt15) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -841,10 +841,10 @@ public class FTSLexer extends Lexer { // $ANTLR start "UNIT" public final void mUNIT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1085:9: ( ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:9: ( ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) int alt17=7; switch ( input.LA(1) ) { case 'Y': @@ -927,49 +927,49 @@ public class FTSLexer extends Lexer { } switch (alt17) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:10: YEAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:10: YEAR { mYEAR(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:17: MONTH + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:17: MONTH { mMONTH(); if (state.failed) return; } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:25: DAY + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:25: DAY { mDAY(); if (state.failed) return; } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:31: HOUR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:31: HOUR { mHOUR(); if (state.failed) return; } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:38: MINUTE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:38: MINUTE { mMINUTE(); if (state.failed) return; } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:47: SECOND + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:47: SECOND { mSECOND(); if (state.failed) return; } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1086:56: MILLIS + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:56: MILLIS { mMILLIS(); if (state.failed) return; @@ -990,8 +990,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "SPECIFICDATETIME" public final void mSPECIFICDATETIME() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1090:9: ( DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1091:12: DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1125:9: ( DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1126:12: DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? { mDIGIT(); if (state.failed) return; @@ -1001,7 +1001,7 @@ public class FTSLexer extends Lexer { mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:15: ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:15: ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? int alt26=2; int LA26_0 = input.LA(1); if ( (LA26_0=='-') ) { @@ -1009,14 +1009,14 @@ public class FTSLexer extends Lexer { } switch (alt26) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:17: '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:17: '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? { match('-'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:33: ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:33: ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? int alt25=2; int LA25_0 = input.LA(1); if ( (LA25_0=='-') ) { @@ -1024,14 +1024,14 @@ public class FTSLexer extends Lexer { } switch (alt25) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:35: '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:35: '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? { match('-'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:51: ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:51: ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? int alt24=2; int LA24_0 = input.LA(1); if ( (LA24_0=='T') ) { @@ -1039,10 +1039,10 @@ public class FTSLexer extends Lexer { } switch (alt24) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:53: 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:53: 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? { match('T'); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:57: ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:57: ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? int alt23=2; int LA23_0 = input.LA(1); if ( ((LA23_0 >= '0' && LA23_0 <= '9')) ) { @@ -1050,13 +1050,13 @@ public class FTSLexer extends Lexer { } switch (alt23) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:58: DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:58: DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? { mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:70: ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:70: ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? int alt22=2; int LA22_0 = input.LA(1); if ( (LA22_0==':') ) { @@ -1064,14 +1064,14 @@ public class FTSLexer extends Lexer { } switch (alt22) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:72: ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:72: ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? { match(':'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:88: ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:88: ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? int alt21=2; int LA21_0 = input.LA(1); if ( (LA21_0==':') ) { @@ -1079,14 +1079,14 @@ public class FTSLexer extends Lexer { } switch (alt21) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:90: ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:90: ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? { match(':'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:106: ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:106: ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? int alt20=2; int LA20_0 = input.LA(1); if ( (LA20_0=='.') ) { @@ -1094,7 +1094,7 @@ public class FTSLexer extends Lexer { } switch (alt20) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:108: '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:108: '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? { match('.'); if (state.failed) return; mDIGIT(); if (state.failed) return; @@ -1103,7 +1103,7 @@ public class FTSLexer extends Lexer { mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:130: ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:130: ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? int alt19=3; int LA19_0 = input.LA(1); if ( (LA19_0=='Z') ) { @@ -1114,16 +1114,16 @@ public class FTSLexer extends Lexer { } switch (alt19) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:132: 'Z' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:132: 'Z' { match('Z'); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:139: ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:139: ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -1139,7 +1139,7 @@ public class FTSLexer extends Lexer { mDIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:164: ( ':' DIGIT DIGIT )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:164: ( ':' DIGIT DIGIT )? int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==':') ) { @@ -1147,7 +1147,7 @@ public class FTSLexer extends Lexer { } switch (alt18) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1092:166: ':' DIGIT DIGIT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:166: ':' DIGIT DIGIT { match(':'); if (state.failed) return; mDIGIT(); if (state.failed) return; @@ -1213,8 +1213,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "NOW" public final void mNOW() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1096:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1097:12: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1131:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1132:12: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) { if ( input.LA(1)=='N'||input.LA(1)=='n' ) { input.consume(); @@ -1258,8 +1258,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "YEAR" public final void mYEAR() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1101:9: ( ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1102:11: ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1136:9: ( ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1137:11: ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? { if ( input.LA(1)=='Y'||input.LA(1)=='y' ) { input.consume(); @@ -1301,7 +1301,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1102:51: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1137:51: ( 'S' | 's' )? int alt27=2; int LA27_0 = input.LA(1); if ( (LA27_0=='S'||LA27_0=='s') ) { @@ -1309,7 +1309,7 @@ public class FTSLexer extends Lexer { } switch (alt27) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1338,8 +1338,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "MONTH" public final void mMONTH() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1106:9: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1107:11: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1141:9: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1142:11: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -1391,7 +1391,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1107:61: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1142:61: ( 'S' | 's' )? int alt28=2; int LA28_0 = input.LA(1); if ( (LA28_0=='S'||LA28_0=='s') ) { @@ -1399,7 +1399,7 @@ public class FTSLexer extends Lexer { } switch (alt28) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1428,7 +1428,7 @@ public class FTSLexer extends Lexer { // $ANTLR start "DAY" public final void mDAY() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1111:9: ( ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? | ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1146:9: ( ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? | ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ) int alt30=2; int LA30_0 = input.LA(1); if ( (LA30_0=='D'||LA30_0=='d') ) { @@ -1483,7 +1483,7 @@ public class FTSLexer extends Lexer { switch (alt30) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1112:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1147:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1515,7 +1515,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1112:41: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1147:41: ( 'S' | 's' )? int alt29=2; int LA29_0 = input.LA(1); if ( (LA29_0=='S'||LA29_0=='s') ) { @@ -1523,7 +1523,7 @@ public class FTSLexer extends Lexer { } switch (alt29) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1543,7 +1543,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1113:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1148:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1599,8 +1599,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "HOUR" public final void mHOUR() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1117:9: ( ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1118:11: ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1152:9: ( ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1153:11: ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? { if ( input.LA(1)=='H'||input.LA(1)=='h' ) { input.consume(); @@ -1642,7 +1642,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1118:51: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1153:51: ( 'S' | 's' )? int alt31=2; int LA31_0 = input.LA(1); if ( (LA31_0=='S'||LA31_0=='s') ) { @@ -1650,7 +1650,7 @@ public class FTSLexer extends Lexer { } switch (alt31) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1679,8 +1679,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "MINUTE" public final void mMINUTE() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1122:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1123:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1157:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1158:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -1742,7 +1742,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1123:71: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1158:71: ( 'S' | 's' )? int alt32=2; int LA32_0 = input.LA(1); if ( (LA32_0=='S'||LA32_0=='s') ) { @@ -1750,7 +1750,7 @@ public class FTSLexer extends Lexer { } switch (alt32) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1779,8 +1779,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "SECOND" public final void mSECOND() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1127:9: ( ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1128:11: ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1162:9: ( ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1163:11: ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1842,7 +1842,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1128:71: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1163:71: ( 'S' | 's' )? int alt33=2; int LA33_0 = input.LA(1); if ( (LA33_0=='S'||LA33_0=='s') ) { @@ -1850,7 +1850,7 @@ public class FTSLexer extends Lexer { } switch (alt33) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1879,7 +1879,7 @@ public class FTSLexer extends Lexer { // $ANTLR start "MILLIS" public final void mMILLIS() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1132:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? | ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1167:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? | ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? ) int alt36=2; int LA36_0 = input.LA(1); if ( (LA36_0=='M'||LA36_0=='m') ) { @@ -1985,7 +1985,7 @@ public class FTSLexer extends Lexer { switch (alt36) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1133:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1168:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2097,7 +2097,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1133:121: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1168:121: ( 'S' | 's' )? int alt34=2; int LA34_0 = input.LA(1); if ( (LA34_0=='S'||LA34_0=='s') ) { @@ -2105,7 +2105,7 @@ public class FTSLexer extends Lexer { } switch (alt34) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -2125,7 +2125,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1134:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1169:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2177,7 +2177,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1134:61: ( 'S' | 's' )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1169:61: ( 'S' | 's' )? int alt35=2; int LA35_0 = input.LA(1); if ( (LA35_0=='S'||LA35_0=='s') ) { @@ -2185,7 +2185,7 @@ public class FTSLexer extends Lexer { } switch (alt35) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -2216,8 +2216,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "FS" public final void mFS() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1138:9: ( '/' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1139:9: '/' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1173:9: ( '/' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1174:9: '/' { match('/'); if (state.failed) return; } @@ -2234,8 +2234,8 @@ public class FTSLexer extends Lexer { try { int _type = OR; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1148:9: ( ( 'O' | 'o' ) ( 'R' | 'r' ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1149:9: ( 'O' | 'o' ) ( 'R' | 'r' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1183:9: ( ( 'O' | 'o' ) ( 'R' | 'r' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1184:9: ( 'O' | 'o' ) ( 'R' | 'r' ) { if ( input.LA(1)=='O'||input.LA(1)=='o' ) { input.consume(); @@ -2273,8 +2273,8 @@ public class FTSLexer extends Lexer { try { int _type = AND; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1160:9: ( ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1161:9: ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1195:9: ( ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1196:9: ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) { if ( input.LA(1)=='A'||input.LA(1)=='a' ) { input.consume(); @@ -2322,8 +2322,8 @@ public class FTSLexer extends Lexer { try { int _type = NOT; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1176:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1177:9: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1211:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1212:9: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) { if ( input.LA(1)=='N'||input.LA(1)=='n' ) { input.consume(); @@ -2371,8 +2371,8 @@ public class FTSLexer extends Lexer { try { int _type = TILDA; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1192:9: ( '~' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1193:9: '~' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1227:9: ( '~' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1228:9: '~' { match('~'); if (state.failed) return; } @@ -2391,8 +2391,8 @@ public class FTSLexer extends Lexer { try { int _type = LPAREN; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1197:9: ( '(' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1198:9: '(' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1232:9: ( '(' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1233:9: '(' { match('('); if (state.failed) return; } @@ -2411,8 +2411,8 @@ public class FTSLexer extends Lexer { try { int _type = RPAREN; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1202:9: ( ')' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1203:9: ')' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1237:9: ( ')' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1238:9: ')' { match(')'); if (state.failed) return; } @@ -2431,8 +2431,8 @@ public class FTSLexer extends Lexer { try { int _type = PLUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1207:9: ( '+' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1208:9: '+' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1242:9: ( '+' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1243:9: '+' { match('+'); if (state.failed) return; } @@ -2451,8 +2451,8 @@ public class FTSLexer extends Lexer { try { int _type = MINUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1212:9: ( '-' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1213:9: '-' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1247:9: ( '-' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1248:9: '-' { match('-'); if (state.failed) return; } @@ -2471,8 +2471,8 @@ public class FTSLexer extends Lexer { try { int _type = COLON; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1217:9: ( ':' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1218:9: ':' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1252:9: ( ':' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1253:9: ':' { match(':'); if (state.failed) return; } @@ -2491,8 +2491,8 @@ public class FTSLexer extends Lexer { try { int _type = STAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1222:9: ( '*' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1223:9: '*' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1257:9: ( '*' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1258:9: '*' { match('*'); if (state.failed) return; } @@ -2509,8 +2509,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DOTDOT" public final void mDOTDOT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1228:9: ( '..' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1229:9: '..' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1263:9: ( '..' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1264:9: '..' { match(".."); if (state.failed) return; @@ -2526,8 +2526,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DOT" public final void mDOT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1234:9: ( '.' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1235:9: '.' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1269:9: ( '.' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1270:9: '.' { match('.'); if (state.failed) return; } @@ -2544,8 +2544,8 @@ public class FTSLexer extends Lexer { try { int _type = AMP; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1239:9: ( '&' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1240:9: '&' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1274:9: ( '&' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1275:9: '&' { match('&'); if (state.failed) return; } @@ -2564,8 +2564,8 @@ public class FTSLexer extends Lexer { try { int _type = EXCLAMATION; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1244:9: ( '!' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1245:9: '!' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1279:9: ( '!' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1280:9: '!' { match('!'); if (state.failed) return; } @@ -2584,8 +2584,8 @@ public class FTSLexer extends Lexer { try { int _type = BAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1249:9: ( '|' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1250:9: '|' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1284:9: ( '|' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1285:9: '|' { match('|'); if (state.failed) return; } @@ -2604,8 +2604,8 @@ public class FTSLexer extends Lexer { try { int _type = EQUALS; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1254:9: ( '=' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1255:9: '=' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1289:9: ( '=' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1290:9: '=' { match('='); if (state.failed) return; } @@ -2624,8 +2624,8 @@ public class FTSLexer extends Lexer { try { int _type = QUESTION_MARK; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1259:9: ( '?' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1260:9: '?' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1294:9: ( '?' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1295:9: '?' { match('?'); if (state.failed) return; } @@ -2644,8 +2644,8 @@ public class FTSLexer extends Lexer { try { int _type = LCURL; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1264:9: ( '{' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1265:9: '{' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1299:9: ( '{' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1300:9: '{' { match('{'); if (state.failed) return; } @@ -2664,8 +2664,8 @@ public class FTSLexer extends Lexer { try { int _type = RCURL; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1269:9: ( '}' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1270:9: '}' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1304:9: ( '}' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1305:9: '}' { match('}'); if (state.failed) return; } @@ -2684,8 +2684,8 @@ public class FTSLexer extends Lexer { try { int _type = LSQUARE; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1274:9: ( '[' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1275:9: '[' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1309:9: ( '[' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1310:9: '[' { match('['); if (state.failed) return; } @@ -2704,8 +2704,8 @@ public class FTSLexer extends Lexer { try { int _type = RSQUARE; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1279:9: ( ']' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1280:9: ']' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1314:9: ( ']' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1315:9: ']' { match(']'); if (state.failed) return; } @@ -2724,8 +2724,8 @@ public class FTSLexer extends Lexer { try { int _type = TO; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1284:9: ( ( 'T' | 't' ) ( 'O' | 'o' ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1285:9: ( 'T' | 't' ) ( 'O' | 'o' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1319:9: ( ( 'T' | 't' ) ( 'O' | 'o' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1320:9: ( 'T' | 't' ) ( 'O' | 'o' ) { if ( input.LA(1)=='T'||input.LA(1)=='t' ) { input.consume(); @@ -2763,8 +2763,8 @@ public class FTSLexer extends Lexer { try { int _type = COMMA; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1296:9: ( ',' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1297:9: ',' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1331:9: ( ',' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1332:9: ',' { match(','); if (state.failed) return; } @@ -2783,8 +2783,8 @@ public class FTSLexer extends Lexer { try { int _type = CARAT; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1301:9: ( '^' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1302:9: '^' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1336:9: ( '^' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1337:9: '^' { match('^'); if (state.failed) return; } @@ -2803,8 +2803,8 @@ public class FTSLexer extends Lexer { try { int _type = DOLLAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1306:9: ( '$' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1307:9: '$' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1341:9: ( '$' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1342:9: '$' { match('$'); if (state.failed) return; } @@ -2823,8 +2823,8 @@ public class FTSLexer extends Lexer { try { int _type = GT; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1311:9: ( '>' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1312:9: '>' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1346:9: ( '>' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1347:9: '>' { match('>'); if (state.failed) return; } @@ -2843,8 +2843,8 @@ public class FTSLexer extends Lexer { try { int _type = LT; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1316:9: ( '<' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1317:9: '<' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1351:9: ( '<' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1352:9: '<' { match('<'); if (state.failed) return; } @@ -2863,8 +2863,8 @@ public class FTSLexer extends Lexer { try { int _type = AT; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1321:9: ( '@' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1322:9: '@' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1356:9: ( '@' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1357:9: '@' { match('@'); if (state.failed) return; } @@ -2883,8 +2883,8 @@ public class FTSLexer extends Lexer { try { int _type = PERCENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1326:9: ( '%' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1327:9: '%' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1361:9: ( '%' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1362:9: '%' { match('%'); if (state.failed) return; } @@ -2903,10 +2903,10 @@ public class FTSLexer extends Lexer { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1342:9: ( ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1343:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1377:9: ( ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1378:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1343:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1378:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? int alt38=2; int LA38_0 = input.LA(1); if ( ((LA38_0 >= '0' && LA38_0 <= '9')) ) { @@ -2914,7 +2914,7 @@ public class FTSLexer extends Lexer { } switch (alt38) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1344:17: ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1379:17: ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -2926,7 +2926,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1345:17: ( '0' .. '9' | '$' | '#' | F_ESC )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:17: ( '0' .. '9' | '$' | '#' | F_ESC )* loop37: while (true) { int alt37=5; @@ -2963,25 +2963,25 @@ public class FTSLexer extends Lexer { } switch (alt37) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1345:19: '0' .. '9' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:19: '0' .. '9' { matchRange('0','9'); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1345:30: '$' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:30: '$' { match('$'); if (state.failed) return; } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1345:36: '#' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:36: '#' { match('#'); if (state.failed) return; } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1345:42: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:42: F_ESC { mF_ESC(); if (state.failed) return; @@ -3008,7 +3008,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:9: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:9: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* loop39: while (true) { int alt39=8; @@ -3110,43 +3110,43 @@ public class FTSLexer extends Lexer { } switch (alt39) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:11: 'a' .. 'z' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:11: 'a' .. 'z' { matchRange('a','z'); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:22: 'A' .. 'Z' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:22: 'A' .. 'Z' { matchRange('A','Z'); if (state.failed) return; } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:33: '0' .. '9' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:33: '0' .. '9' { matchRange('0','9'); if (state.failed) return; } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:44: '_' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:44: '_' { match('_'); if (state.failed) return; } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:50: '$' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:50: '$' { match('$'); if (state.failed) return; } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:56: '#' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:56: '#' { match('#'); if (state.failed) return; } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1348:62: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:62: F_ESC { mF_ESC(); if (state.failed) return; @@ -3172,8 +3172,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DECIMAL_INTEGER_LITERAL" public final void mDECIMAL_INTEGER_LITERAL() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1351:9: () - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1352:9: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1386:9: () + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1387:9: { } @@ -3189,10 +3189,10 @@ public class FTSLexer extends Lexer { try { int _type = FLOATING_POINT_LITERAL; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1355:9: ( ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1356:10: ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1390:9: ( ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1391:10: ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1356:10: ( PLUS | MINUS )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1391:10: ( PLUS | MINUS )? int alt40=2; int LA40_0 = input.LA(1); if ( (LA40_0=='+'||LA40_0=='-') ) { @@ -3200,7 +3200,7 @@ public class FTSLexer extends Lexer { } switch (alt40) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -3217,7 +3217,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1357:10: ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1392:10: ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) int alt50=2; int LA50_0 = input.LA(1); if ( ((LA50_0 >= '0' && LA50_0 <= '9')) ) { @@ -3236,9 +3236,9 @@ public class FTSLexer extends Lexer { switch (alt50) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1358:17: ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1393:17: ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1358:17: ( DIGIT )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1393:17: ( DIGIT )+ int cnt41=0; loop41: while (true) { @@ -3250,7 +3250,7 @@ public class FTSLexer extends Lexer { switch (alt41) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3274,7 +3274,7 @@ public class FTSLexer extends Lexer { cnt41++; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1359:17: ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1394:17: ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) int alt46=2; int LA46_0 = input.LA(1); if ( (LA46_0=='.') && ((input.LA(2) != '.'))) { @@ -3283,7 +3283,7 @@ public class FTSLexer extends Lexer { switch (alt46) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1360:25: {...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1395:25: {...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) { if ( !((input.LA(2) != '.')) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3291,7 +3291,7 @@ public class FTSLexer extends Lexer { } mDOT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1361:25: ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1396:25: ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) int alt44=3; switch ( input.LA(1) ) { case '0': @@ -3319,9 +3319,9 @@ public class FTSLexer extends Lexer { } switch (alt44) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1362:33: ( DIGIT )+ ( EXPONENT |{...}? => DOT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1397:33: ( DIGIT )+ ( EXPONENT |{...}? => DOT |) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1362:33: ( DIGIT )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1397:33: ( DIGIT )+ int cnt42=0; loop42: while (true) { @@ -3333,7 +3333,7 @@ public class FTSLexer extends Lexer { switch (alt42) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3357,7 +3357,7 @@ public class FTSLexer extends Lexer { cnt42++; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1363:33: ( EXPONENT |{...}? => DOT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1398:33: ( EXPONENT |{...}? => DOT |) int alt43=3; int LA43_0 = input.LA(1); if ( (LA43_0=='E'||LA43_0=='e') ) { @@ -3369,7 +3369,7 @@ public class FTSLexer extends Lexer { switch (alt43) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1364:37: EXPONENT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1399:37: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3377,7 +3377,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1367:37: {...}? => DOT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1402:37: {...}? => DOT { if ( !((input.LA(2) != '.')) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3404,7 +3404,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1385:37: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1420:37: { if ( state.backtracking==0 ) {_type = FLOATING_POINT_LITERAL; } } @@ -3415,7 +3415,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1388:33: EXPONENT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1423:33: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3423,7 +3423,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1391:33: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1426:33: { if ( state.backtracking==0 ) {_type = FLOATING_POINT_LITERAL; } } @@ -3434,9 +3434,9 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1394:25: ( EXPONENT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1429:25: ( EXPONENT |) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1394:25: ( EXPONENT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1429:25: ( EXPONENT |) int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0=='E'||LA45_0=='e') ) { @@ -3449,7 +3449,7 @@ public class FTSLexer extends Lexer { switch (alt45) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1395:33: EXPONENT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1430:33: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3457,7 +3457,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1398:33: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1433:33: { if ( state.backtracking==0 ) {_type = DECIMAL_INTEGER_LITERAL; } } @@ -3473,11 +3473,11 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1404:17: DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1439:17: DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) { mDOT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1405:17: ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1440:17: ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) int alt49=3; int LA49_0 = input.LA(1); if ( ((LA49_0 >= '0' && LA49_0 <= '9')) ) { @@ -3489,9 +3489,9 @@ public class FTSLexer extends Lexer { switch (alt49) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1406:25: ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1441:25: ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1406:25: ( DIGIT )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1441:25: ( DIGIT )+ int cnt47=0; loop47: while (true) { @@ -3503,7 +3503,7 @@ public class FTSLexer extends Lexer { switch (alt47) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3527,7 +3527,7 @@ public class FTSLexer extends Lexer { cnt47++; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1407:25: ( EXPONENT |{...}?{...}? => DOT |) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1442:25: ( EXPONENT |{...}?{...}? => DOT |) int alt48=3; int LA48_0 = input.LA(1); if ( (LA48_0=='E'||LA48_0=='e') ) { @@ -3539,7 +3539,7 @@ public class FTSLexer extends Lexer { switch (alt48) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1408:29: EXPONENT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1443:29: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3547,7 +3547,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1411:29: {...}?{...}? => DOT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1446:29: {...}?{...}? => DOT { if ( !((getText().startsWith("."))) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3574,7 +3574,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1426:29: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1461:29: { if ( state.backtracking==0 ) {_type = FLOATING_POINT_LITERAL; } } @@ -3585,7 +3585,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1430:25: {...}? => '.' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1465:25: {...}? => '.' { if ( !((input.LA(2) != '.')) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3596,7 +3596,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1433:25: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1468:25: { if ( state.backtracking==0 ) {_type = DOT; } } @@ -3623,7 +3623,7 @@ public class FTSLexer extends Lexer { // $ANTLR start "DECIMAL_NUMERAL" public final void mDECIMAL_NUMERAL() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1462:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ( DIGIT )* ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1497:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ( DIGIT )* ) int alt52=2; int LA52_0 = input.LA(1); if ( (LA52_0=='0') ) { @@ -3642,18 +3642,18 @@ public class FTSLexer extends Lexer { switch (alt52) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1463:9: ZERO_DIGIT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1498:9: ZERO_DIGIT { mZERO_DIGIT(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1464:11: NON_ZERO_DIGIT ( DIGIT )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1499:11: NON_ZERO_DIGIT ( DIGIT )* { mNON_ZERO_DIGIT(); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1464:26: ( DIGIT )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1499:26: ( DIGIT )* loop51: while (true) { int alt51=2; @@ -3664,7 +3664,7 @@ public class FTSLexer extends Lexer { switch (alt51) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3698,8 +3698,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DIGIT" public final void mDIGIT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1466:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1501:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3723,8 +3723,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "ZERO_DIGIT" public final void mZERO_DIGIT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1473:9: ( '0' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1474:9: '0' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1508:9: ( '0' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1509:9: '0' { match('0'); if (state.failed) return; } @@ -3739,8 +3739,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "NON_ZERO_DIGIT" public final void mNON_ZERO_DIGIT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1479:9: ( '1' .. '9' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1514:9: ( '1' .. '9' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '1' && input.LA(1) <= '9') ) { input.consume(); @@ -3764,8 +3764,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "E" public final void mE() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1485:9: ( ( 'e' | 'E' ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1520:9: ( ( 'e' | 'E' ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='E'||input.LA(1)=='e' ) { input.consume(); @@ -3789,8 +3789,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "EXPONENT" public final void mEXPONENT() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1494:9: ( E SIGNED_INTEGER ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1495:9: E SIGNED_INTEGER + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1529:9: ( E SIGNED_INTEGER ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1530:9: E SIGNED_INTEGER { mE(); if (state.failed) return; @@ -3808,10 +3808,10 @@ public class FTSLexer extends Lexer { // $ANTLR start "SIGNED_INTEGER" public final void mSIGNED_INTEGER() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1500:9: ( ( PLUS | MINUS )? ( DIGIT )+ ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1501:9: ( PLUS | MINUS )? ( DIGIT )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1535:9: ( ( PLUS | MINUS )? ( DIGIT )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1536:9: ( PLUS | MINUS )? ( DIGIT )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1501:9: ( PLUS | MINUS )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1536:9: ( PLUS | MINUS )? int alt53=2; int LA53_0 = input.LA(1); if ( (LA53_0=='+'||LA53_0=='-') ) { @@ -3819,7 +3819,7 @@ public class FTSLexer extends Lexer { } switch (alt53) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -3836,7 +3836,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1505:9: ( DIGIT )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1540:9: ( DIGIT )+ int cnt54=0; loop54: while (true) { @@ -3848,7 +3848,7 @@ public class FTSLexer extends Lexer { switch (alt54) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3886,10 +3886,10 @@ public class FTSLexer extends Lexer { try { int _type = FTSWORD; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1509:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1510:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1544:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1545:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1510:9: ( F_ESC | START_WORD ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1545:9: ( F_ESC | START_WORD ) int alt55=2; int LA55_0 = input.LA(1); if ( (LA55_0=='\\') ) { @@ -3908,14 +3908,14 @@ public class FTSLexer extends Lexer { switch (alt55) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1511:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1546:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1512:19: START_WORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1547:19: START_WORD { mSTART_WORD(); if (state.failed) return; @@ -3924,7 +3924,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1514:9: ( F_ESC | IN_WORD )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1549:9: ( F_ESC | IN_WORD )* loop56: while (true) { int alt56=3; @@ -3938,14 +3938,14 @@ public class FTSLexer extends Lexer { switch (alt56) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1515:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1550:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1516:19: IN_WORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1551:19: IN_WORD { mIN_WORD(); if (state.failed) return; @@ -3973,10 +3973,10 @@ public class FTSLexer extends Lexer { try { int _type = FTSPRE; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1521:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1522:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1556:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1557:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1522:9: ( F_ESC | START_WORD ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1557:9: ( F_ESC | START_WORD ) int alt57=2; int LA57_0 = input.LA(1); if ( (LA57_0=='\\') ) { @@ -3995,14 +3995,14 @@ public class FTSLexer extends Lexer { switch (alt57) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1523:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1558:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1524:19: START_WORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1559:19: START_WORD { mSTART_WORD(); if (state.failed) return; @@ -4011,7 +4011,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1526:9: ( F_ESC | IN_WORD )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1561:9: ( F_ESC | IN_WORD )* loop58: while (true) { int alt58=3; @@ -4025,14 +4025,14 @@ public class FTSLexer extends Lexer { switch (alt58) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1527:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1562:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1528:19: IN_WORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1563:19: IN_WORD { mIN_WORD(); if (state.failed) return; @@ -4062,10 +4062,10 @@ public class FTSLexer extends Lexer { try { int _type = FTSWILD; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1534:9: ( ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1535:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1569:9: ( ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1570:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1535:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1570:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) int alt59=4; int LA59_0 = input.LA(1); if ( (LA59_0=='\\') ) { @@ -4090,28 +4090,28 @@ public class FTSLexer extends Lexer { switch (alt59) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1536:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1571:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1537:19: START_WORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1572:19: START_WORD { mSTART_WORD(); if (state.failed) return; } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1538:19: STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1573:19: STAR { mSTAR(); if (state.failed) return; } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1539:19: QUESTION_MARK + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1574:19: QUESTION_MARK { mQUESTION_MARK(); if (state.failed) return; @@ -4120,7 +4120,7 @@ public class FTSLexer extends Lexer { } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1541:9: ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1576:9: ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* loop60: while (true) { int alt60=5; @@ -4140,28 +4140,28 @@ public class FTSLexer extends Lexer { switch (alt60) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1542:17: F_ESC + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1577:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1543:19: IN_WORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1578:19: IN_WORD { mIN_WORD(); if (state.failed) return; } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1544:19: STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1579:19: STAR { mSTAR(); if (state.failed) return; } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1545:19: QUESTION_MARK + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1580:19: QUESTION_MARK { mQUESTION_MARK(); if (state.failed) return; @@ -4187,11 +4187,11 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_ESC" public final void mF_ESC() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1552:9: ( '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1553:9: '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1587:9: ( '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1588:9: '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) { match('\\'); if (state.failed) return; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1554:9: ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1589:9: ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) int alt61=2; int LA61_0 = input.LA(1); if ( (LA61_0=='u') ) { @@ -4218,7 +4218,7 @@ public class FTSLexer extends Lexer { switch (alt61) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1556:17: 'u' F_HEX F_HEX F_HEX F_HEX + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1591:17: 'u' F_HEX F_HEX F_HEX F_HEX { match('u'); if (state.failed) return; mF_HEX(); if (state.failed) return; @@ -4232,7 +4232,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1558:19: . + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1593:19: . { matchAny(); if (state.failed) return; } @@ -4252,8 +4252,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_HEX" public final void mF_HEX() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1564:9: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1599:9: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) { input.consume(); @@ -4277,8 +4277,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "START_WORD" public final void mSTART_WORD() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1572:9: ( '\\u0024' | '\\u0030' .. '\\u0039' | '\\u0041' .. '\\u005a' | '\\u0061' .. '\\u007a' | '\\u00a2' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ae' | '\\u00b0' | '\\u00b2' .. '\\u00b3' | '\\u00b5' .. '\\u00b6' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u00be' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u0386' | '\\u0388' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03f5' | '\\u03f7' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05bd' | '\\u05bf' | '\\u05c1' .. '\\u05c2' | '\\u05c4' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f2' | '\\u060e' .. '\\u0615' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u066e' .. '\\u06d3' | '\\u06d5' .. '\\u06dc' | '\\u06de' .. '\\u06ff' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0963' | '\\u0966' .. '\\u096f' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df3' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e4e' | '\\u0e50' .. '\\u0e59' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f03' | '\\u0f13' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f84' | '\\u0f86' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1050' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1369' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u166c' | '\\u166f' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16ea' | '\\u16ee' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1734' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17d3' | '\\u17d7' | '\\u17db' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u180b' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1946' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u2079' | '\\u207f' .. '\\u2089' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u213f' | '\\u2145' .. '\\u214a' | '\\u2153' .. '\\u2183' | '\\u2195' .. '\\u2199' | '\\u219c' .. '\\u219f' | '\\u21a1' .. '\\u21a2' | '\\u21a4' .. '\\u21a5' | '\\u21a7' .. '\\u21ad' | '\\u21af' .. '\\u21cd' | '\\u21d0' .. '\\u21d1' | '\\u21d3' | '\\u21d5' .. '\\u21f3' | '\\u2300' .. '\\u2307' | '\\u230c' .. '\\u231f' | '\\u2322' .. '\\u2328' | '\\u232b' .. '\\u237b' | '\\u237d' .. '\\u239a' | '\\u23b7' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u25b6' | '\\u25b8' .. '\\u25c0' | '\\u25c2' .. '\\u25f7' | '\\u2600' .. '\\u2617' | '\\u2619' .. '\\u266e' | '\\u2670' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u2800' .. '\\u28ff' | '\\u2b00' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3004' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u3020' .. '\\u302f' | '\\u3031' .. '\\u303c' | '\\u303e' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u309f' | '\\u30a1' .. '\\u30fa' | '\\u30fc' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb28' | '\\ufb2a' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe69' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff04' | '\\uff10' .. '\\uff19' | '\\uff21' .. '\\uff3a' | '\\uff41' .. '\\uff5a' | '\\uff66' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe1' | '\\uffe4' .. '\\uffe6' | '\\uffe8' | '\\uffed' .. '\\uffee' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1607:9: ( '\\u0024' | '\\u0030' .. '\\u0039' | '\\u0041' .. '\\u005a' | '\\u0061' .. '\\u007a' | '\\u00a2' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ae' | '\\u00b0' | '\\u00b2' .. '\\u00b3' | '\\u00b5' .. '\\u00b6' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u00be' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u0386' | '\\u0388' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03f5' | '\\u03f7' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05bd' | '\\u05bf' | '\\u05c1' .. '\\u05c2' | '\\u05c4' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f2' | '\\u060e' .. '\\u0615' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u066e' .. '\\u06d3' | '\\u06d5' .. '\\u06dc' | '\\u06de' .. '\\u06ff' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0963' | '\\u0966' .. '\\u096f' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df3' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e4e' | '\\u0e50' .. '\\u0e59' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f03' | '\\u0f13' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f84' | '\\u0f86' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1050' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1369' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u166c' | '\\u166f' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16ea' | '\\u16ee' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1734' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17d3' | '\\u17d7' | '\\u17db' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u180b' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1946' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u2079' | '\\u207f' .. '\\u2089' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u213f' | '\\u2145' .. '\\u214a' | '\\u2153' .. '\\u2183' | '\\u2195' .. '\\u2199' | '\\u219c' .. '\\u219f' | '\\u21a1' .. '\\u21a2' | '\\u21a4' .. '\\u21a5' | '\\u21a7' .. '\\u21ad' | '\\u21af' .. '\\u21cd' | '\\u21d0' .. '\\u21d1' | '\\u21d3' | '\\u21d5' .. '\\u21f3' | '\\u2300' .. '\\u2307' | '\\u230c' .. '\\u231f' | '\\u2322' .. '\\u2328' | '\\u232b' .. '\\u237b' | '\\u237d' .. '\\u239a' | '\\u23b7' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u25b6' | '\\u25b8' .. '\\u25c0' | '\\u25c2' .. '\\u25f7' | '\\u2600' .. '\\u2617' | '\\u2619' .. '\\u266e' | '\\u2670' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u2800' .. '\\u28ff' | '\\u2b00' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3004' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u3020' .. '\\u302f' | '\\u3031' .. '\\u303c' | '\\u303e' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u309f' | '\\u30a1' .. '\\u30fa' | '\\u30fc' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb28' | '\\ufb2a' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe69' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff04' | '\\uff10' .. '\\uff19' | '\\uff21' .. '\\uff3a' | '\\uff41' .. '\\uff5a' | '\\uff66' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe1' | '\\uffe4' .. '\\uffe6' | '\\uffe8' | '\\uffed' .. '\\uffee' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='$'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||(input.LA(1) >= '\u00A2' && input.LA(1) <= '\u00A7')||(input.LA(1) >= '\u00A9' && input.LA(1) <= '\u00AA')||input.LA(1)=='\u00AE'||input.LA(1)=='\u00B0'||(input.LA(1) >= '\u00B2' && input.LA(1) <= '\u00B3')||(input.LA(1) >= '\u00B5' && input.LA(1) <= '\u00B6')||(input.LA(1) >= '\u00B9' && input.LA(1) <= '\u00BA')||(input.LA(1) >= '\u00BC' && input.LA(1) <= '\u00BE')||(input.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6')||(input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6')||(input.LA(1) >= '\u00F8' && input.LA(1) <= '\u0236')||(input.LA(1) >= '\u0250' && input.LA(1) <= '\u02C1')||(input.LA(1) >= '\u02C6' && input.LA(1) <= '\u02D1')||(input.LA(1) >= '\u02E0' && input.LA(1) <= '\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1) >= '\u0300' && input.LA(1) <= '\u0357')||(input.LA(1) >= '\u035D' && input.LA(1) <= '\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1) >= '\u0388' && input.LA(1) <= '\u038A')||input.LA(1)=='\u038C'||(input.LA(1) >= '\u038E' && input.LA(1) <= '\u03A1')||(input.LA(1) >= '\u03A3' && input.LA(1) <= '\u03CE')||(input.LA(1) >= '\u03D0' && input.LA(1) <= '\u03F5')||(input.LA(1) >= '\u03F7' && input.LA(1) <= '\u03FB')||(input.LA(1) >= '\u0400' && input.LA(1) <= '\u0486')||(input.LA(1) >= '\u0488' && input.LA(1) <= '\u04CE')||(input.LA(1) >= '\u04D0' && input.LA(1) <= '\u04F5')||(input.LA(1) >= '\u04F8' && input.LA(1) <= '\u04F9')||(input.LA(1) >= '\u0500' && input.LA(1) <= '\u050F')||(input.LA(1) >= '\u0531' && input.LA(1) <= '\u0556')||input.LA(1)=='\u0559'||(input.LA(1) >= '\u0561' && input.LA(1) <= '\u0587')||(input.LA(1) >= '\u0591' && input.LA(1) <= '\u05A1')||(input.LA(1) >= '\u05A3' && input.LA(1) <= '\u05B9')||(input.LA(1) >= '\u05BB' && input.LA(1) <= '\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1) >= '\u05C1' && input.LA(1) <= '\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1) >= '\u05D0' && input.LA(1) <= '\u05EA')||(input.LA(1) >= '\u05F0' && input.LA(1) <= '\u05F2')||(input.LA(1) >= '\u060E' && input.LA(1) <= '\u0615')||(input.LA(1) >= '\u0621' && input.LA(1) <= '\u063A')||(input.LA(1) >= '\u0640' && input.LA(1) <= '\u0658')||(input.LA(1) >= '\u0660' && input.LA(1) <= '\u0669')||(input.LA(1) >= '\u066E' && input.LA(1) <= '\u06D3')||(input.LA(1) >= '\u06D5' && input.LA(1) <= '\u06DC')||(input.LA(1) >= '\u06DE' && input.LA(1) <= '\u06FF')||(input.LA(1) >= '\u0710' && input.LA(1) <= '\u074A')||(input.LA(1) >= '\u074D' && input.LA(1) <= '\u074F')||(input.LA(1) >= '\u0780' && input.LA(1) <= '\u07B1')||(input.LA(1) >= '\u0901' && input.LA(1) <= '\u0939')||(input.LA(1) >= '\u093C' && input.LA(1) <= '\u094D')||(input.LA(1) >= '\u0950' && input.LA(1) <= '\u0954')||(input.LA(1) >= '\u0958' && input.LA(1) <= '\u0963')||(input.LA(1) >= '\u0966' && input.LA(1) <= '\u096F')||(input.LA(1) >= '\u0981' && input.LA(1) <= '\u0983')||(input.LA(1) >= '\u0985' && input.LA(1) <= '\u098C')||(input.LA(1) >= '\u098F' && input.LA(1) <= '\u0990')||(input.LA(1) >= '\u0993' && input.LA(1) <= '\u09A8')||(input.LA(1) >= '\u09AA' && input.LA(1) <= '\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1) >= '\u09B6' && input.LA(1) <= '\u09B9')||(input.LA(1) >= '\u09BC' && input.LA(1) <= '\u09C4')||(input.LA(1) >= '\u09C7' && input.LA(1) <= '\u09C8')||(input.LA(1) >= '\u09CB' && input.LA(1) <= '\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1) >= '\u09DC' && input.LA(1) <= '\u09DD')||(input.LA(1) >= '\u09DF' && input.LA(1) <= '\u09E3')||(input.LA(1) >= '\u09E6' && input.LA(1) <= '\u09FA')||(input.LA(1) >= '\u0A01' && input.LA(1) <= '\u0A03')||(input.LA(1) >= '\u0A05' && input.LA(1) <= '\u0A0A')||(input.LA(1) >= '\u0A0F' && input.LA(1) <= '\u0A10')||(input.LA(1) >= '\u0A13' && input.LA(1) <= '\u0A28')||(input.LA(1) >= '\u0A2A' && input.LA(1) <= '\u0A30')||(input.LA(1) >= '\u0A32' && input.LA(1) <= '\u0A33')||(input.LA(1) >= '\u0A35' && input.LA(1) <= '\u0A36')||(input.LA(1) >= '\u0A38' && input.LA(1) <= '\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1) >= '\u0A3E' && input.LA(1) <= '\u0A42')||(input.LA(1) >= '\u0A47' && input.LA(1) <= '\u0A48')||(input.LA(1) >= '\u0A4B' && input.LA(1) <= '\u0A4D')||(input.LA(1) >= '\u0A59' && input.LA(1) <= '\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1) >= '\u0A66' && input.LA(1) <= '\u0A74')||(input.LA(1) >= '\u0A81' && input.LA(1) <= '\u0A83')||(input.LA(1) >= '\u0A85' && input.LA(1) <= '\u0A8D')||(input.LA(1) >= '\u0A8F' && input.LA(1) <= '\u0A91')||(input.LA(1) >= '\u0A93' && input.LA(1) <= '\u0AA8')||(input.LA(1) >= '\u0AAA' && input.LA(1) <= '\u0AB0')||(input.LA(1) >= '\u0AB2' && input.LA(1) <= '\u0AB3')||(input.LA(1) >= '\u0AB5' && input.LA(1) <= '\u0AB9')||(input.LA(1) >= '\u0ABC' && input.LA(1) <= '\u0AC5')||(input.LA(1) >= '\u0AC7' && input.LA(1) <= '\u0AC9')||(input.LA(1) >= '\u0ACB' && input.LA(1) <= '\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1) >= '\u0AE0' && input.LA(1) <= '\u0AE3')||(input.LA(1) >= '\u0AE6' && input.LA(1) <= '\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1) >= '\u0B01' && input.LA(1) <= '\u0B03')||(input.LA(1) >= '\u0B05' && input.LA(1) <= '\u0B0C')||(input.LA(1) >= '\u0B0F' && input.LA(1) <= '\u0B10')||(input.LA(1) >= '\u0B13' && input.LA(1) <= '\u0B28')||(input.LA(1) >= '\u0B2A' && input.LA(1) <= '\u0B30')||(input.LA(1) >= '\u0B32' && input.LA(1) <= '\u0B33')||(input.LA(1) >= '\u0B35' && input.LA(1) <= '\u0B39')||(input.LA(1) >= '\u0B3C' && input.LA(1) <= '\u0B43')||(input.LA(1) >= '\u0B47' && input.LA(1) <= '\u0B48')||(input.LA(1) >= '\u0B4B' && input.LA(1) <= '\u0B4D')||(input.LA(1) >= '\u0B56' && input.LA(1) <= '\u0B57')||(input.LA(1) >= '\u0B5C' && input.LA(1) <= '\u0B5D')||(input.LA(1) >= '\u0B5F' && input.LA(1) <= '\u0B61')||(input.LA(1) >= '\u0B66' && input.LA(1) <= '\u0B71')||(input.LA(1) >= '\u0B82' && input.LA(1) <= '\u0B83')||(input.LA(1) >= '\u0B85' && input.LA(1) <= '\u0B8A')||(input.LA(1) >= '\u0B8E' && input.LA(1) <= '\u0B90')||(input.LA(1) >= '\u0B92' && input.LA(1) <= '\u0B95')||(input.LA(1) >= '\u0B99' && input.LA(1) <= '\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1) >= '\u0B9E' && input.LA(1) <= '\u0B9F')||(input.LA(1) >= '\u0BA3' && input.LA(1) <= '\u0BA4')||(input.LA(1) >= '\u0BA8' && input.LA(1) <= '\u0BAA')||(input.LA(1) >= '\u0BAE' && input.LA(1) <= '\u0BB5')||(input.LA(1) >= '\u0BB7' && input.LA(1) <= '\u0BB9')||(input.LA(1) >= '\u0BBE' && input.LA(1) <= '\u0BC2')||(input.LA(1) >= '\u0BC6' && input.LA(1) <= '\u0BC8')||(input.LA(1) >= '\u0BCA' && input.LA(1) <= '\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1) >= '\u0BE7' && input.LA(1) <= '\u0BFA')||(input.LA(1) >= '\u0C01' && input.LA(1) <= '\u0C03')||(input.LA(1) >= '\u0C05' && input.LA(1) <= '\u0C0C')||(input.LA(1) >= '\u0C0E' && input.LA(1) <= '\u0C10')||(input.LA(1) >= '\u0C12' && input.LA(1) <= '\u0C28')||(input.LA(1) >= '\u0C2A' && input.LA(1) <= '\u0C33')||(input.LA(1) >= '\u0C35' && input.LA(1) <= '\u0C39')||(input.LA(1) >= '\u0C3E' && input.LA(1) <= '\u0C44')||(input.LA(1) >= '\u0C46' && input.LA(1) <= '\u0C48')||(input.LA(1) >= '\u0C4A' && input.LA(1) <= '\u0C4D')||(input.LA(1) >= '\u0C55' && input.LA(1) <= '\u0C56')||(input.LA(1) >= '\u0C60' && input.LA(1) <= '\u0C61')||(input.LA(1) >= '\u0C66' && input.LA(1) <= '\u0C6F')||(input.LA(1) >= '\u0C82' && input.LA(1) <= '\u0C83')||(input.LA(1) >= '\u0C85' && input.LA(1) <= '\u0C8C')||(input.LA(1) >= '\u0C8E' && input.LA(1) <= '\u0C90')||(input.LA(1) >= '\u0C92' && input.LA(1) <= '\u0CA8')||(input.LA(1) >= '\u0CAA' && input.LA(1) <= '\u0CB3')||(input.LA(1) >= '\u0CB5' && input.LA(1) <= '\u0CB9')||(input.LA(1) >= '\u0CBC' && input.LA(1) <= '\u0CC4')||(input.LA(1) >= '\u0CC6' && input.LA(1) <= '\u0CC8')||(input.LA(1) >= '\u0CCA' && input.LA(1) <= '\u0CCD')||(input.LA(1) >= '\u0CD5' && input.LA(1) <= '\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1) >= '\u0CE0' && input.LA(1) <= '\u0CE1')||(input.LA(1) >= '\u0CE6' && input.LA(1) <= '\u0CEF')||(input.LA(1) >= '\u0D02' && input.LA(1) <= '\u0D03')||(input.LA(1) >= '\u0D05' && input.LA(1) <= '\u0D0C')||(input.LA(1) >= '\u0D0E' && input.LA(1) <= '\u0D10')||(input.LA(1) >= '\u0D12' && input.LA(1) <= '\u0D28')||(input.LA(1) >= '\u0D2A' && input.LA(1) <= '\u0D39')||(input.LA(1) >= '\u0D3E' && input.LA(1) <= '\u0D43')||(input.LA(1) >= '\u0D46' && input.LA(1) <= '\u0D48')||(input.LA(1) >= '\u0D4A' && input.LA(1) <= '\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1) >= '\u0D60' && input.LA(1) <= '\u0D61')||(input.LA(1) >= '\u0D66' && input.LA(1) <= '\u0D6F')||(input.LA(1) >= '\u0D82' && input.LA(1) <= '\u0D83')||(input.LA(1) >= '\u0D85' && input.LA(1) <= '\u0D96')||(input.LA(1) >= '\u0D9A' && input.LA(1) <= '\u0DB1')||(input.LA(1) >= '\u0DB3' && input.LA(1) <= '\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1) >= '\u0DC0' && input.LA(1) <= '\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1) >= '\u0DCF' && input.LA(1) <= '\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1) >= '\u0DD8' && input.LA(1) <= '\u0DDF')||(input.LA(1) >= '\u0DF2' && input.LA(1) <= '\u0DF3')||(input.LA(1) >= '\u0E01' && input.LA(1) <= '\u0E3A')||(input.LA(1) >= '\u0E3F' && input.LA(1) <= '\u0E4E')||(input.LA(1) >= '\u0E50' && input.LA(1) <= '\u0E59')||(input.LA(1) >= '\u0E81' && input.LA(1) <= '\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1) >= '\u0E87' && input.LA(1) <= '\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1) >= '\u0E94' && input.LA(1) <= '\u0E97')||(input.LA(1) >= '\u0E99' && input.LA(1) <= '\u0E9F')||(input.LA(1) >= '\u0EA1' && input.LA(1) <= '\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1) >= '\u0EAA' && input.LA(1) <= '\u0EAB')||(input.LA(1) >= '\u0EAD' && input.LA(1) <= '\u0EB9')||(input.LA(1) >= '\u0EBB' && input.LA(1) <= '\u0EBD')||(input.LA(1) >= '\u0EC0' && input.LA(1) <= '\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1) >= '\u0EC8' && input.LA(1) <= '\u0ECD')||(input.LA(1) >= '\u0ED0' && input.LA(1) <= '\u0ED9')||(input.LA(1) >= '\u0EDC' && input.LA(1) <= '\u0EDD')||(input.LA(1) >= '\u0F00' && input.LA(1) <= '\u0F03')||(input.LA(1) >= '\u0F13' && input.LA(1) <= '\u0F39')||(input.LA(1) >= '\u0F3E' && input.LA(1) <= '\u0F47')||(input.LA(1) >= '\u0F49' && input.LA(1) <= '\u0F6A')||(input.LA(1) >= '\u0F71' && input.LA(1) <= '\u0F84')||(input.LA(1) >= '\u0F86' && input.LA(1) <= '\u0F8B')||(input.LA(1) >= '\u0F90' && input.LA(1) <= '\u0F97')||(input.LA(1) >= '\u0F99' && input.LA(1) <= '\u0FBC')||(input.LA(1) >= '\u0FBE' && input.LA(1) <= '\u0FCC')||input.LA(1)=='\u0FCF'||(input.LA(1) >= '\u1000' && input.LA(1) <= '\u1021')||(input.LA(1) >= '\u1023' && input.LA(1) <= '\u1027')||(input.LA(1) >= '\u1029' && input.LA(1) <= '\u102A')||(input.LA(1) >= '\u102C' && input.LA(1) <= '\u1032')||(input.LA(1) >= '\u1036' && input.LA(1) <= '\u1039')||(input.LA(1) >= '\u1040' && input.LA(1) <= '\u1049')||(input.LA(1) >= '\u1050' && input.LA(1) <= '\u1059')||(input.LA(1) >= '\u10A0' && input.LA(1) <= '\u10C5')||(input.LA(1) >= '\u10D0' && input.LA(1) <= '\u10F8')||(input.LA(1) >= '\u1100' && input.LA(1) <= '\u1159')||(input.LA(1) >= '\u115F' && input.LA(1) <= '\u11A2')||(input.LA(1) >= '\u11A8' && input.LA(1) <= '\u11F9')||(input.LA(1) >= '\u1200' && input.LA(1) <= '\u1206')||(input.LA(1) >= '\u1208' && input.LA(1) <= '\u1246')||input.LA(1)=='\u1248'||(input.LA(1) >= '\u124A' && input.LA(1) <= '\u124D')||(input.LA(1) >= '\u1250' && input.LA(1) <= '\u1256')||input.LA(1)=='\u1258'||(input.LA(1) >= '\u125A' && input.LA(1) <= '\u125D')||(input.LA(1) >= '\u1260' && input.LA(1) <= '\u1286')||input.LA(1)=='\u1288'||(input.LA(1) >= '\u128A' && input.LA(1) <= '\u128D')||(input.LA(1) >= '\u1290' && input.LA(1) <= '\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1) >= '\u12B2' && input.LA(1) <= '\u12B5')||(input.LA(1) >= '\u12B8' && input.LA(1) <= '\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1) >= '\u12C2' && input.LA(1) <= '\u12C5')||(input.LA(1) >= '\u12C8' && input.LA(1) <= '\u12CE')||(input.LA(1) >= '\u12D0' && input.LA(1) <= '\u12D6')||(input.LA(1) >= '\u12D8' && input.LA(1) <= '\u12EE')||(input.LA(1) >= '\u12F0' && input.LA(1) <= '\u130E')||input.LA(1)=='\u1310'||(input.LA(1) >= '\u1312' && input.LA(1) <= '\u1315')||(input.LA(1) >= '\u1318' && input.LA(1) <= '\u131E')||(input.LA(1) >= '\u1320' && input.LA(1) <= '\u1346')||(input.LA(1) >= '\u1348' && input.LA(1) <= '\u135A')||(input.LA(1) >= '\u1369' && input.LA(1) <= '\u137C')||(input.LA(1) >= '\u13A0' && input.LA(1) <= '\u13F4')||(input.LA(1) >= '\u1401' && input.LA(1) <= '\u166C')||(input.LA(1) >= '\u166F' && input.LA(1) <= '\u1676')||(input.LA(1) >= '\u1681' && input.LA(1) <= '\u169A')||(input.LA(1) >= '\u16A0' && input.LA(1) <= '\u16EA')||(input.LA(1) >= '\u16EE' && input.LA(1) <= '\u16F0')||(input.LA(1) >= '\u1700' && input.LA(1) <= '\u170C')||(input.LA(1) >= '\u170E' && input.LA(1) <= '\u1714')||(input.LA(1) >= '\u1720' && input.LA(1) <= '\u1734')||(input.LA(1) >= '\u1740' && input.LA(1) <= '\u1753')||(input.LA(1) >= '\u1760' && input.LA(1) <= '\u176C')||(input.LA(1) >= '\u176E' && input.LA(1) <= '\u1770')||(input.LA(1) >= '\u1772' && input.LA(1) <= '\u1773')||(input.LA(1) >= '\u1780' && input.LA(1) <= '\u17B3')||(input.LA(1) >= '\u17B6' && input.LA(1) <= '\u17D3')||input.LA(1)=='\u17D7'||(input.LA(1) >= '\u17DB' && input.LA(1) <= '\u17DD')||(input.LA(1) >= '\u17E0' && input.LA(1) <= '\u17E9')||(input.LA(1) >= '\u17F0' && input.LA(1) <= '\u17F9')||(input.LA(1) >= '\u180B' && input.LA(1) <= '\u180D')||(input.LA(1) >= '\u1810' && input.LA(1) <= '\u1819')||(input.LA(1) >= '\u1820' && input.LA(1) <= '\u1877')||(input.LA(1) >= '\u1880' && input.LA(1) <= '\u18A9')||(input.LA(1) >= '\u1900' && input.LA(1) <= '\u191C')||(input.LA(1) >= '\u1920' && input.LA(1) <= '\u192B')||(input.LA(1) >= '\u1930' && input.LA(1) <= '\u193B')||input.LA(1)=='\u1940'||(input.LA(1) >= '\u1946' && input.LA(1) <= '\u196D')||(input.LA(1) >= '\u1970' && input.LA(1) <= '\u1974')||(input.LA(1) >= '\u19E0' && input.LA(1) <= '\u19FF')||(input.LA(1) >= '\u1D00' && input.LA(1) <= '\u1D6B')||(input.LA(1) >= '\u1E00' && input.LA(1) <= '\u1E9B')||(input.LA(1) >= '\u1EA0' && input.LA(1) <= '\u1EF9')||(input.LA(1) >= '\u1F00' && input.LA(1) <= '\u1F15')||(input.LA(1) >= '\u1F18' && input.LA(1) <= '\u1F1D')||(input.LA(1) >= '\u1F20' && input.LA(1) <= '\u1F45')||(input.LA(1) >= '\u1F48' && input.LA(1) <= '\u1F4D')||(input.LA(1) >= '\u1F50' && input.LA(1) <= '\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1) >= '\u1F5F' && input.LA(1) <= '\u1F7D')||(input.LA(1) >= '\u1F80' && input.LA(1) <= '\u1FB4')||(input.LA(1) >= '\u1FB6' && input.LA(1) <= '\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1) >= '\u1FC2' && input.LA(1) <= '\u1FC4')||(input.LA(1) >= '\u1FC6' && input.LA(1) <= '\u1FCC')||(input.LA(1) >= '\u1FD0' && input.LA(1) <= '\u1FD3')||(input.LA(1) >= '\u1FD6' && input.LA(1) <= '\u1FDB')||(input.LA(1) >= '\u1FE0' && input.LA(1) <= '\u1FEC')||(input.LA(1) >= '\u1FF2' && input.LA(1) <= '\u1FF4')||(input.LA(1) >= '\u1FF6' && input.LA(1) <= '\u1FFC')||(input.LA(1) >= '\u2070' && input.LA(1) <= '\u2071')||(input.LA(1) >= '\u2074' && input.LA(1) <= '\u2079')||(input.LA(1) >= '\u207F' && input.LA(1) <= '\u2089')||(input.LA(1) >= '\u20A0' && input.LA(1) <= '\u20B1')||(input.LA(1) >= '\u20D0' && input.LA(1) <= '\u20EA')||(input.LA(1) >= '\u2100' && input.LA(1) <= '\u213B')||(input.LA(1) >= '\u213D' && input.LA(1) <= '\u213F')||(input.LA(1) >= '\u2145' && input.LA(1) <= '\u214A')||(input.LA(1) >= '\u2153' && input.LA(1) <= '\u2183')||(input.LA(1) >= '\u2195' && input.LA(1) <= '\u2199')||(input.LA(1) >= '\u219C' && input.LA(1) <= '\u219F')||(input.LA(1) >= '\u21A1' && input.LA(1) <= '\u21A2')||(input.LA(1) >= '\u21A4' && input.LA(1) <= '\u21A5')||(input.LA(1) >= '\u21A7' && input.LA(1) <= '\u21AD')||(input.LA(1) >= '\u21AF' && input.LA(1) <= '\u21CD')||(input.LA(1) >= '\u21D0' && input.LA(1) <= '\u21D1')||input.LA(1)=='\u21D3'||(input.LA(1) >= '\u21D5' && input.LA(1) <= '\u21F3')||(input.LA(1) >= '\u2300' && input.LA(1) <= '\u2307')||(input.LA(1) >= '\u230C' && input.LA(1) <= '\u231F')||(input.LA(1) >= '\u2322' && input.LA(1) <= '\u2328')||(input.LA(1) >= '\u232B' && input.LA(1) <= '\u237B')||(input.LA(1) >= '\u237D' && input.LA(1) <= '\u239A')||(input.LA(1) >= '\u23B7' && input.LA(1) <= '\u23D0')||(input.LA(1) >= '\u2400' && input.LA(1) <= '\u2426')||(input.LA(1) >= '\u2440' && input.LA(1) <= '\u244A')||(input.LA(1) >= '\u2460' && input.LA(1) <= '\u25B6')||(input.LA(1) >= '\u25B8' && input.LA(1) <= '\u25C0')||(input.LA(1) >= '\u25C2' && input.LA(1) <= '\u25F7')||(input.LA(1) >= '\u2600' && input.LA(1) <= '\u2617')||(input.LA(1) >= '\u2619' && input.LA(1) <= '\u266E')||(input.LA(1) >= '\u2670' && input.LA(1) <= '\u267D')||(input.LA(1) >= '\u2680' && input.LA(1) <= '\u2691')||(input.LA(1) >= '\u26A0' && input.LA(1) <= '\u26A1')||(input.LA(1) >= '\u2701' && input.LA(1) <= '\u2704')||(input.LA(1) >= '\u2706' && input.LA(1) <= '\u2709')||(input.LA(1) >= '\u270C' && input.LA(1) <= '\u2727')||(input.LA(1) >= '\u2729' && input.LA(1) <= '\u274B')||input.LA(1)=='\u274D'||(input.LA(1) >= '\u274F' && input.LA(1) <= '\u2752')||input.LA(1)=='\u2756'||(input.LA(1) >= '\u2758' && input.LA(1) <= '\u275E')||(input.LA(1) >= '\u2761' && input.LA(1) <= '\u2767')||(input.LA(1) >= '\u2776' && input.LA(1) <= '\u2794')||(input.LA(1) >= '\u2798' && input.LA(1) <= '\u27AF')||(input.LA(1) >= '\u27B1' && input.LA(1) <= '\u27BE')||(input.LA(1) >= '\u2800' && input.LA(1) <= '\u28FF')||(input.LA(1) >= '\u2B00' && input.LA(1) <= '\u2B0D')||(input.LA(1) >= '\u2E80' && input.LA(1) <= '\u2E99')||(input.LA(1) >= '\u2E9B' && input.LA(1) <= '\u2EF3')||(input.LA(1) >= '\u2F00' && input.LA(1) <= '\u2FD5')||(input.LA(1) >= '\u2FF0' && input.LA(1) <= '\u2FFB')||(input.LA(1) >= '\u3004' && input.LA(1) <= '\u3007')||(input.LA(1) >= '\u3012' && input.LA(1) <= '\u3013')||(input.LA(1) >= '\u3020' && input.LA(1) <= '\u302F')||(input.LA(1) >= '\u3031' && input.LA(1) <= '\u303C')||(input.LA(1) >= '\u303E' && input.LA(1) <= '\u303F')||(input.LA(1) >= '\u3041' && input.LA(1) <= '\u3096')||(input.LA(1) >= '\u3099' && input.LA(1) <= '\u309A')||(input.LA(1) >= '\u309D' && input.LA(1) <= '\u309F')||(input.LA(1) >= '\u30A1' && input.LA(1) <= '\u30FA')||(input.LA(1) >= '\u30FC' && input.LA(1) <= '\u30FF')||(input.LA(1) >= '\u3105' && input.LA(1) <= '\u312C')||(input.LA(1) >= '\u3131' && input.LA(1) <= '\u318E')||(input.LA(1) >= '\u3190' && input.LA(1) <= '\u31B7')||(input.LA(1) >= '\u31F0' && input.LA(1) <= '\u321E')||(input.LA(1) >= '\u3220' && input.LA(1) <= '\u3243')||(input.LA(1) >= '\u3250' && input.LA(1) <= '\u327D')||(input.LA(1) >= '\u327F' && input.LA(1) <= '\u32FE')||(input.LA(1) >= '\u3300' && input.LA(1) <= '\u4DB5')||(input.LA(1) >= '\u4DC0' && input.LA(1) <= '\u9FA5')||(input.LA(1) >= '\uA000' && input.LA(1) <= '\uA48C')||(input.LA(1) >= '\uA490' && input.LA(1) <= '\uA4C6')||(input.LA(1) >= '\uAC00' && input.LA(1) <= '\uD7A3')||(input.LA(1) >= '\uF900' && input.LA(1) <= '\uFA2D')||(input.LA(1) >= '\uFA30' && input.LA(1) <= '\uFA6A')||(input.LA(1) >= '\uFB00' && input.LA(1) <= '\uFB06')||(input.LA(1) >= '\uFB13' && input.LA(1) <= '\uFB17')||(input.LA(1) >= '\uFB1D' && input.LA(1) <= '\uFB28')||(input.LA(1) >= '\uFB2A' && input.LA(1) <= '\uFB36')||(input.LA(1) >= '\uFB38' && input.LA(1) <= '\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1) >= '\uFB40' && input.LA(1) <= '\uFB41')||(input.LA(1) >= '\uFB43' && input.LA(1) <= '\uFB44')||(input.LA(1) >= '\uFB46' && input.LA(1) <= '\uFBB1')||(input.LA(1) >= '\uFBD3' && input.LA(1) <= '\uFD3D')||(input.LA(1) >= '\uFD50' && input.LA(1) <= '\uFD8F')||(input.LA(1) >= '\uFD92' && input.LA(1) <= '\uFDC7')||(input.LA(1) >= '\uFDF0' && input.LA(1) <= '\uFDFD')||(input.LA(1) >= '\uFE00' && input.LA(1) <= '\uFE0F')||(input.LA(1) >= '\uFE20' && input.LA(1) <= '\uFE23')||input.LA(1)=='\uFE69'||(input.LA(1) >= '\uFE70' && input.LA(1) <= '\uFE74')||(input.LA(1) >= '\uFE76' && input.LA(1) <= '\uFEFC')||input.LA(1)=='\uFF04'||(input.LA(1) >= '\uFF10' && input.LA(1) <= '\uFF19')||(input.LA(1) >= '\uFF21' && input.LA(1) <= '\uFF3A')||(input.LA(1) >= '\uFF41' && input.LA(1) <= '\uFF5A')||(input.LA(1) >= '\uFF66' && input.LA(1) <= '\uFFBE')||(input.LA(1) >= '\uFFC2' && input.LA(1) <= '\uFFC7')||(input.LA(1) >= '\uFFCA' && input.LA(1) <= '\uFFCF')||(input.LA(1) >= '\uFFD2' && input.LA(1) <= '\uFFD7')||(input.LA(1) >= '\uFFDA' && input.LA(1) <= '\uFFDC')||(input.LA(1) >= '\uFFE0' && input.LA(1) <= '\uFFE1')||(input.LA(1) >= '\uFFE4' && input.LA(1) <= '\uFFE6')||input.LA(1)=='\uFFE8'||(input.LA(1) >= '\uFFED' && input.LA(1) <= '\uFFEE') ) { input.consume(); @@ -4302,8 +4302,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "IN_WORD" public final void mIN_WORD() throws RecognitionException { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1995:9: ( '\\u0021' .. '\\u0027' | '\\u002b' | '\\u002d' | '\\u002f' .. '\\u0039' | '\\u003b' | '\\u003d' | '\\u0040' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u007c' | '\\u00a1' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ac' | '\\u00ae' | '\\u00b0' .. '\\u00b3' | '\\u00b5' .. '\\u00b7' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u037e' .. '\\u037e' | '\\u0386' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' .. '\\u055f' | '\\u0561' .. '\\u0587' | '\\u0589' .. '\\u058a' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f4' | '\\u060c' .. '\\u0615' | '\\u061b' .. '\\u061b' | '\\u061f' .. '\\u061f' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u06dc' | '\\u06de' .. '\\u070d' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0970' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df4' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e5b' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u10fb' .. '\\u10fb' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1361' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1736' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u1800' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1944' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2010' .. '\\u2017' | '\\u2020' .. '\\u2027' | '\\u2030' .. '\\u2038' | '\\u203b' .. '\\u2044' | '\\u2047' .. '\\u2054' | '\\u2057' .. '\\u2057' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u207c' | '\\u207f' .. '\\u208c' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u214b' | '\\u2153' .. '\\u2183' | '\\u2190' .. '\\u2328' | '\\u232b' .. '\\u23b3' | '\\u23b6' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u2617' | '\\u2619' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u27d0' .. '\\u27e5' | '\\u27f0' .. '\\u2982' | '\\u2999' .. '\\u29d7' | '\\u29dc' .. '\\u29fb' | '\\u29fe' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3001' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u301c' | '\\u3020' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe30' .. '\\ufe34' | '\\ufe45' .. '\\ufe46' | '\\ufe49' .. '\\ufe52' | '\\ufe54' .. '\\ufe58' | '\\ufe5f' .. '\\ufe66' | '\\ufe68' .. '\\ufe6b' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff01' .. '\\uff07' | '\\uff0a' .. '\\uff3a' | '\\uff3c' | '\\uff3f' | '\\uff41' .. '\\uff5a' | '\\uff5c' | '\\uff5e' | '\\uff61' | '\\uff64' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe2' | '\\uffe4' .. '\\uffe6' | '\\uffe8' .. '\\uffee' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2030:9: ( '\\u0021' .. '\\u0027' | '\\u002b' | '\\u002d' | '\\u002f' .. '\\u0039' | '\\u003b' | '\\u003d' | '\\u0040' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u007c' | '\\u00a1' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ac' | '\\u00ae' | '\\u00b0' .. '\\u00b3' | '\\u00b5' .. '\\u00b7' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u037e' .. '\\u037e' | '\\u0386' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' .. '\\u055f' | '\\u0561' .. '\\u0587' | '\\u0589' .. '\\u058a' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f4' | '\\u060c' .. '\\u0615' | '\\u061b' .. '\\u061b' | '\\u061f' .. '\\u061f' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u06dc' | '\\u06de' .. '\\u070d' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0970' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df4' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e5b' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u10fb' .. '\\u10fb' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1361' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1736' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u1800' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1944' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2010' .. '\\u2017' | '\\u2020' .. '\\u2027' | '\\u2030' .. '\\u2038' | '\\u203b' .. '\\u2044' | '\\u2047' .. '\\u2054' | '\\u2057' .. '\\u2057' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u207c' | '\\u207f' .. '\\u208c' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u214b' | '\\u2153' .. '\\u2183' | '\\u2190' .. '\\u2328' | '\\u232b' .. '\\u23b3' | '\\u23b6' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u2617' | '\\u2619' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u27d0' .. '\\u27e5' | '\\u27f0' .. '\\u2982' | '\\u2999' .. '\\u29d7' | '\\u29dc' .. '\\u29fb' | '\\u29fe' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3001' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u301c' | '\\u3020' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe30' .. '\\ufe34' | '\\ufe45' .. '\\ufe46' | '\\ufe49' .. '\\ufe52' | '\\ufe54' .. '\\ufe58' | '\\ufe5f' .. '\\ufe66' | '\\ufe68' .. '\\ufe6b' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff01' .. '\\uff07' | '\\uff0a' .. '\\uff3a' | '\\uff3c' | '\\uff3f' | '\\uff41' .. '\\uff5a' | '\\uff5c' | '\\uff5e' | '\\uff61' | '\\uff64' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe2' | '\\uffe4' .. '\\uffe6' | '\\uffe8' .. '\\uffee' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '!' && input.LA(1) <= '\'')||input.LA(1)=='+'||input.LA(1)=='-'||(input.LA(1) >= '/' && input.LA(1) <= '9')||input.LA(1)==';'||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='|'||(input.LA(1) >= '\u00A1' && input.LA(1) <= '\u00A7')||(input.LA(1) >= '\u00A9' && input.LA(1) <= '\u00AA')||input.LA(1)=='\u00AC'||input.LA(1)=='\u00AE'||(input.LA(1) >= '\u00B0' && input.LA(1) <= '\u00B3')||(input.LA(1) >= '\u00B5' && input.LA(1) <= '\u00B7')||(input.LA(1) >= '\u00B9' && input.LA(1) <= '\u00BA')||(input.LA(1) >= '\u00BC' && input.LA(1) <= '\u0236')||(input.LA(1) >= '\u0250' && input.LA(1) <= '\u02C1')||(input.LA(1) >= '\u02C6' && input.LA(1) <= '\u02D1')||(input.LA(1) >= '\u02E0' && input.LA(1) <= '\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1) >= '\u0300' && input.LA(1) <= '\u0357')||(input.LA(1) >= '\u035D' && input.LA(1) <= '\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u037E'||(input.LA(1) >= '\u0386' && input.LA(1) <= '\u038A')||input.LA(1)=='\u038C'||(input.LA(1) >= '\u038E' && input.LA(1) <= '\u03A1')||(input.LA(1) >= '\u03A3' && input.LA(1) <= '\u03CE')||(input.LA(1) >= '\u03D0' && input.LA(1) <= '\u03FB')||(input.LA(1) >= '\u0400' && input.LA(1) <= '\u0486')||(input.LA(1) >= '\u0488' && input.LA(1) <= '\u04CE')||(input.LA(1) >= '\u04D0' && input.LA(1) <= '\u04F5')||(input.LA(1) >= '\u04F8' && input.LA(1) <= '\u04F9')||(input.LA(1) >= '\u0500' && input.LA(1) <= '\u050F')||(input.LA(1) >= '\u0531' && input.LA(1) <= '\u0556')||(input.LA(1) >= '\u0559' && input.LA(1) <= '\u055F')||(input.LA(1) >= '\u0561' && input.LA(1) <= '\u0587')||(input.LA(1) >= '\u0589' && input.LA(1) <= '\u058A')||(input.LA(1) >= '\u0591' && input.LA(1) <= '\u05A1')||(input.LA(1) >= '\u05A3' && input.LA(1) <= '\u05B9')||(input.LA(1) >= '\u05BB' && input.LA(1) <= '\u05C4')||(input.LA(1) >= '\u05D0' && input.LA(1) <= '\u05EA')||(input.LA(1) >= '\u05F0' && input.LA(1) <= '\u05F4')||(input.LA(1) >= '\u060C' && input.LA(1) <= '\u0615')||input.LA(1)=='\u061B'||input.LA(1)=='\u061F'||(input.LA(1) >= '\u0621' && input.LA(1) <= '\u063A')||(input.LA(1) >= '\u0640' && input.LA(1) <= '\u0658')||(input.LA(1) >= '\u0660' && input.LA(1) <= '\u06DC')||(input.LA(1) >= '\u06DE' && input.LA(1) <= '\u070D')||(input.LA(1) >= '\u0710' && input.LA(1) <= '\u074A')||(input.LA(1) >= '\u074D' && input.LA(1) <= '\u074F')||(input.LA(1) >= '\u0780' && input.LA(1) <= '\u07B1')||(input.LA(1) >= '\u0901' && input.LA(1) <= '\u0939')||(input.LA(1) >= '\u093C' && input.LA(1) <= '\u094D')||(input.LA(1) >= '\u0950' && input.LA(1) <= '\u0954')||(input.LA(1) >= '\u0958' && input.LA(1) <= '\u0970')||(input.LA(1) >= '\u0981' && input.LA(1) <= '\u0983')||(input.LA(1) >= '\u0985' && input.LA(1) <= '\u098C')||(input.LA(1) >= '\u098F' && input.LA(1) <= '\u0990')||(input.LA(1) >= '\u0993' && input.LA(1) <= '\u09A8')||(input.LA(1) >= '\u09AA' && input.LA(1) <= '\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1) >= '\u09B6' && input.LA(1) <= '\u09B9')||(input.LA(1) >= '\u09BC' && input.LA(1) <= '\u09C4')||(input.LA(1) >= '\u09C7' && input.LA(1) <= '\u09C8')||(input.LA(1) >= '\u09CB' && input.LA(1) <= '\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1) >= '\u09DC' && input.LA(1) <= '\u09DD')||(input.LA(1) >= '\u09DF' && input.LA(1) <= '\u09E3')||(input.LA(1) >= '\u09E6' && input.LA(1) <= '\u09FA')||(input.LA(1) >= '\u0A01' && input.LA(1) <= '\u0A03')||(input.LA(1) >= '\u0A05' && input.LA(1) <= '\u0A0A')||(input.LA(1) >= '\u0A0F' && input.LA(1) <= '\u0A10')||(input.LA(1) >= '\u0A13' && input.LA(1) <= '\u0A28')||(input.LA(1) >= '\u0A2A' && input.LA(1) <= '\u0A30')||(input.LA(1) >= '\u0A32' && input.LA(1) <= '\u0A33')||(input.LA(1) >= '\u0A35' && input.LA(1) <= '\u0A36')||(input.LA(1) >= '\u0A38' && input.LA(1) <= '\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1) >= '\u0A3E' && input.LA(1) <= '\u0A42')||(input.LA(1) >= '\u0A47' && input.LA(1) <= '\u0A48')||(input.LA(1) >= '\u0A4B' && input.LA(1) <= '\u0A4D')||(input.LA(1) >= '\u0A59' && input.LA(1) <= '\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1) >= '\u0A66' && input.LA(1) <= '\u0A74')||(input.LA(1) >= '\u0A81' && input.LA(1) <= '\u0A83')||(input.LA(1) >= '\u0A85' && input.LA(1) <= '\u0A8D')||(input.LA(1) >= '\u0A8F' && input.LA(1) <= '\u0A91')||(input.LA(1) >= '\u0A93' && input.LA(1) <= '\u0AA8')||(input.LA(1) >= '\u0AAA' && input.LA(1) <= '\u0AB0')||(input.LA(1) >= '\u0AB2' && input.LA(1) <= '\u0AB3')||(input.LA(1) >= '\u0AB5' && input.LA(1) <= '\u0AB9')||(input.LA(1) >= '\u0ABC' && input.LA(1) <= '\u0AC5')||(input.LA(1) >= '\u0AC7' && input.LA(1) <= '\u0AC9')||(input.LA(1) >= '\u0ACB' && input.LA(1) <= '\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1) >= '\u0AE0' && input.LA(1) <= '\u0AE3')||(input.LA(1) >= '\u0AE6' && input.LA(1) <= '\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1) >= '\u0B01' && input.LA(1) <= '\u0B03')||(input.LA(1) >= '\u0B05' && input.LA(1) <= '\u0B0C')||(input.LA(1) >= '\u0B0F' && input.LA(1) <= '\u0B10')||(input.LA(1) >= '\u0B13' && input.LA(1) <= '\u0B28')||(input.LA(1) >= '\u0B2A' && input.LA(1) <= '\u0B30')||(input.LA(1) >= '\u0B32' && input.LA(1) <= '\u0B33')||(input.LA(1) >= '\u0B35' && input.LA(1) <= '\u0B39')||(input.LA(1) >= '\u0B3C' && input.LA(1) <= '\u0B43')||(input.LA(1) >= '\u0B47' && input.LA(1) <= '\u0B48')||(input.LA(1) >= '\u0B4B' && input.LA(1) <= '\u0B4D')||(input.LA(1) >= '\u0B56' && input.LA(1) <= '\u0B57')||(input.LA(1) >= '\u0B5C' && input.LA(1) <= '\u0B5D')||(input.LA(1) >= '\u0B5F' && input.LA(1) <= '\u0B61')||(input.LA(1) >= '\u0B66' && input.LA(1) <= '\u0B71')||(input.LA(1) >= '\u0B82' && input.LA(1) <= '\u0B83')||(input.LA(1) >= '\u0B85' && input.LA(1) <= '\u0B8A')||(input.LA(1) >= '\u0B8E' && input.LA(1) <= '\u0B90')||(input.LA(1) >= '\u0B92' && input.LA(1) <= '\u0B95')||(input.LA(1) >= '\u0B99' && input.LA(1) <= '\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1) >= '\u0B9E' && input.LA(1) <= '\u0B9F')||(input.LA(1) >= '\u0BA3' && input.LA(1) <= '\u0BA4')||(input.LA(1) >= '\u0BA8' && input.LA(1) <= '\u0BAA')||(input.LA(1) >= '\u0BAE' && input.LA(1) <= '\u0BB5')||(input.LA(1) >= '\u0BB7' && input.LA(1) <= '\u0BB9')||(input.LA(1) >= '\u0BBE' && input.LA(1) <= '\u0BC2')||(input.LA(1) >= '\u0BC6' && input.LA(1) <= '\u0BC8')||(input.LA(1) >= '\u0BCA' && input.LA(1) <= '\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1) >= '\u0BE7' && input.LA(1) <= '\u0BFA')||(input.LA(1) >= '\u0C01' && input.LA(1) <= '\u0C03')||(input.LA(1) >= '\u0C05' && input.LA(1) <= '\u0C0C')||(input.LA(1) >= '\u0C0E' && input.LA(1) <= '\u0C10')||(input.LA(1) >= '\u0C12' && input.LA(1) <= '\u0C28')||(input.LA(1) >= '\u0C2A' && input.LA(1) <= '\u0C33')||(input.LA(1) >= '\u0C35' && input.LA(1) <= '\u0C39')||(input.LA(1) >= '\u0C3E' && input.LA(1) <= '\u0C44')||(input.LA(1) >= '\u0C46' && input.LA(1) <= '\u0C48')||(input.LA(1) >= '\u0C4A' && input.LA(1) <= '\u0C4D')||(input.LA(1) >= '\u0C55' && input.LA(1) <= '\u0C56')||(input.LA(1) >= '\u0C60' && input.LA(1) <= '\u0C61')||(input.LA(1) >= '\u0C66' && input.LA(1) <= '\u0C6F')||(input.LA(1) >= '\u0C82' && input.LA(1) <= '\u0C83')||(input.LA(1) >= '\u0C85' && input.LA(1) <= '\u0C8C')||(input.LA(1) >= '\u0C8E' && input.LA(1) <= '\u0C90')||(input.LA(1) >= '\u0C92' && input.LA(1) <= '\u0CA8')||(input.LA(1) >= '\u0CAA' && input.LA(1) <= '\u0CB3')||(input.LA(1) >= '\u0CB5' && input.LA(1) <= '\u0CB9')||(input.LA(1) >= '\u0CBC' && input.LA(1) <= '\u0CC4')||(input.LA(1) >= '\u0CC6' && input.LA(1) <= '\u0CC8')||(input.LA(1) >= '\u0CCA' && input.LA(1) <= '\u0CCD')||(input.LA(1) >= '\u0CD5' && input.LA(1) <= '\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1) >= '\u0CE0' && input.LA(1) <= '\u0CE1')||(input.LA(1) >= '\u0CE6' && input.LA(1) <= '\u0CEF')||(input.LA(1) >= '\u0D02' && input.LA(1) <= '\u0D03')||(input.LA(1) >= '\u0D05' && input.LA(1) <= '\u0D0C')||(input.LA(1) >= '\u0D0E' && input.LA(1) <= '\u0D10')||(input.LA(1) >= '\u0D12' && input.LA(1) <= '\u0D28')||(input.LA(1) >= '\u0D2A' && input.LA(1) <= '\u0D39')||(input.LA(1) >= '\u0D3E' && input.LA(1) <= '\u0D43')||(input.LA(1) >= '\u0D46' && input.LA(1) <= '\u0D48')||(input.LA(1) >= '\u0D4A' && input.LA(1) <= '\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1) >= '\u0D60' && input.LA(1) <= '\u0D61')||(input.LA(1) >= '\u0D66' && input.LA(1) <= '\u0D6F')||(input.LA(1) >= '\u0D82' && input.LA(1) <= '\u0D83')||(input.LA(1) >= '\u0D85' && input.LA(1) <= '\u0D96')||(input.LA(1) >= '\u0D9A' && input.LA(1) <= '\u0DB1')||(input.LA(1) >= '\u0DB3' && input.LA(1) <= '\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1) >= '\u0DC0' && input.LA(1) <= '\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1) >= '\u0DCF' && input.LA(1) <= '\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1) >= '\u0DD8' && input.LA(1) <= '\u0DDF')||(input.LA(1) >= '\u0DF2' && input.LA(1) <= '\u0DF4')||(input.LA(1) >= '\u0E01' && input.LA(1) <= '\u0E3A')||(input.LA(1) >= '\u0E3F' && input.LA(1) <= '\u0E5B')||(input.LA(1) >= '\u0E81' && input.LA(1) <= '\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1) >= '\u0E87' && input.LA(1) <= '\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1) >= '\u0E94' && input.LA(1) <= '\u0E97')||(input.LA(1) >= '\u0E99' && input.LA(1) <= '\u0E9F')||(input.LA(1) >= '\u0EA1' && input.LA(1) <= '\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1) >= '\u0EAA' && input.LA(1) <= '\u0EAB')||(input.LA(1) >= '\u0EAD' && input.LA(1) <= '\u0EB9')||(input.LA(1) >= '\u0EBB' && input.LA(1) <= '\u0EBD')||(input.LA(1) >= '\u0EC0' && input.LA(1) <= '\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1) >= '\u0EC8' && input.LA(1) <= '\u0ECD')||(input.LA(1) >= '\u0ED0' && input.LA(1) <= '\u0ED9')||(input.LA(1) >= '\u0EDC' && input.LA(1) <= '\u0EDD')||(input.LA(1) >= '\u0F00' && input.LA(1) <= '\u0F39')||(input.LA(1) >= '\u0F3E' && input.LA(1) <= '\u0F47')||(input.LA(1) >= '\u0F49' && input.LA(1) <= '\u0F6A')||(input.LA(1) >= '\u0F71' && input.LA(1) <= '\u0F8B')||(input.LA(1) >= '\u0F90' && input.LA(1) <= '\u0F97')||(input.LA(1) >= '\u0F99' && input.LA(1) <= '\u0FBC')||(input.LA(1) >= '\u0FBE' && input.LA(1) <= '\u0FCC')||input.LA(1)=='\u0FCF'||(input.LA(1) >= '\u1000' && input.LA(1) <= '\u1021')||(input.LA(1) >= '\u1023' && input.LA(1) <= '\u1027')||(input.LA(1) >= '\u1029' && input.LA(1) <= '\u102A')||(input.LA(1) >= '\u102C' && input.LA(1) <= '\u1032')||(input.LA(1) >= '\u1036' && input.LA(1) <= '\u1039')||(input.LA(1) >= '\u1040' && input.LA(1) <= '\u1059')||(input.LA(1) >= '\u10A0' && input.LA(1) <= '\u10C5')||(input.LA(1) >= '\u10D0' && input.LA(1) <= '\u10F8')||input.LA(1)=='\u10FB'||(input.LA(1) >= '\u1100' && input.LA(1) <= '\u1159')||(input.LA(1) >= '\u115F' && input.LA(1) <= '\u11A2')||(input.LA(1) >= '\u11A8' && input.LA(1) <= '\u11F9')||(input.LA(1) >= '\u1200' && input.LA(1) <= '\u1206')||(input.LA(1) >= '\u1208' && input.LA(1) <= '\u1246')||input.LA(1)=='\u1248'||(input.LA(1) >= '\u124A' && input.LA(1) <= '\u124D')||(input.LA(1) >= '\u1250' && input.LA(1) <= '\u1256')||input.LA(1)=='\u1258'||(input.LA(1) >= '\u125A' && input.LA(1) <= '\u125D')||(input.LA(1) >= '\u1260' && input.LA(1) <= '\u1286')||input.LA(1)=='\u1288'||(input.LA(1) >= '\u128A' && input.LA(1) <= '\u128D')||(input.LA(1) >= '\u1290' && input.LA(1) <= '\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1) >= '\u12B2' && input.LA(1) <= '\u12B5')||(input.LA(1) >= '\u12B8' && input.LA(1) <= '\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1) >= '\u12C2' && input.LA(1) <= '\u12C5')||(input.LA(1) >= '\u12C8' && input.LA(1) <= '\u12CE')||(input.LA(1) >= '\u12D0' && input.LA(1) <= '\u12D6')||(input.LA(1) >= '\u12D8' && input.LA(1) <= '\u12EE')||(input.LA(1) >= '\u12F0' && input.LA(1) <= '\u130E')||input.LA(1)=='\u1310'||(input.LA(1) >= '\u1312' && input.LA(1) <= '\u1315')||(input.LA(1) >= '\u1318' && input.LA(1) <= '\u131E')||(input.LA(1) >= '\u1320' && input.LA(1) <= '\u1346')||(input.LA(1) >= '\u1348' && input.LA(1) <= '\u135A')||(input.LA(1) >= '\u1361' && input.LA(1) <= '\u137C')||(input.LA(1) >= '\u13A0' && input.LA(1) <= '\u13F4')||(input.LA(1) >= '\u1401' && input.LA(1) <= '\u1676')||(input.LA(1) >= '\u1681' && input.LA(1) <= '\u169A')||(input.LA(1) >= '\u16A0' && input.LA(1) <= '\u16F0')||(input.LA(1) >= '\u1700' && input.LA(1) <= '\u170C')||(input.LA(1) >= '\u170E' && input.LA(1) <= '\u1714')||(input.LA(1) >= '\u1720' && input.LA(1) <= '\u1736')||(input.LA(1) >= '\u1740' && input.LA(1) <= '\u1753')||(input.LA(1) >= '\u1760' && input.LA(1) <= '\u176C')||(input.LA(1) >= '\u176E' && input.LA(1) <= '\u1770')||(input.LA(1) >= '\u1772' && input.LA(1) <= '\u1773')||(input.LA(1) >= '\u1780' && input.LA(1) <= '\u17B3')||(input.LA(1) >= '\u17B6' && input.LA(1) <= '\u17DD')||(input.LA(1) >= '\u17E0' && input.LA(1) <= '\u17E9')||(input.LA(1) >= '\u17F0' && input.LA(1) <= '\u17F9')||(input.LA(1) >= '\u1800' && input.LA(1) <= '\u180D')||(input.LA(1) >= '\u1810' && input.LA(1) <= '\u1819')||(input.LA(1) >= '\u1820' && input.LA(1) <= '\u1877')||(input.LA(1) >= '\u1880' && input.LA(1) <= '\u18A9')||(input.LA(1) >= '\u1900' && input.LA(1) <= '\u191C')||(input.LA(1) >= '\u1920' && input.LA(1) <= '\u192B')||(input.LA(1) >= '\u1930' && input.LA(1) <= '\u193B')||input.LA(1)=='\u1940'||(input.LA(1) >= '\u1944' && input.LA(1) <= '\u196D')||(input.LA(1) >= '\u1970' && input.LA(1) <= '\u1974')||(input.LA(1) >= '\u19E0' && input.LA(1) <= '\u19FF')||(input.LA(1) >= '\u1D00' && input.LA(1) <= '\u1D6B')||(input.LA(1) >= '\u1E00' && input.LA(1) <= '\u1E9B')||(input.LA(1) >= '\u1EA0' && input.LA(1) <= '\u1EF9')||(input.LA(1) >= '\u1F00' && input.LA(1) <= '\u1F15')||(input.LA(1) >= '\u1F18' && input.LA(1) <= '\u1F1D')||(input.LA(1) >= '\u1F20' && input.LA(1) <= '\u1F45')||(input.LA(1) >= '\u1F48' && input.LA(1) <= '\u1F4D')||(input.LA(1) >= '\u1F50' && input.LA(1) <= '\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1) >= '\u1F5F' && input.LA(1) <= '\u1F7D')||(input.LA(1) >= '\u1F80' && input.LA(1) <= '\u1FB4')||(input.LA(1) >= '\u1FB6' && input.LA(1) <= '\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1) >= '\u1FC2' && input.LA(1) <= '\u1FC4')||(input.LA(1) >= '\u1FC6' && input.LA(1) <= '\u1FCC')||(input.LA(1) >= '\u1FD0' && input.LA(1) <= '\u1FD3')||(input.LA(1) >= '\u1FD6' && input.LA(1) <= '\u1FDB')||(input.LA(1) >= '\u1FE0' && input.LA(1) <= '\u1FEC')||(input.LA(1) >= '\u1FF2' && input.LA(1) <= '\u1FF4')||(input.LA(1) >= '\u1FF6' && input.LA(1) <= '\u1FFC')||(input.LA(1) >= '\u2010' && input.LA(1) <= '\u2017')||(input.LA(1) >= '\u2020' && input.LA(1) <= '\u2027')||(input.LA(1) >= '\u2030' && input.LA(1) <= '\u2038')||(input.LA(1) >= '\u203B' && input.LA(1) <= '\u2044')||(input.LA(1) >= '\u2047' && input.LA(1) <= '\u2054')||input.LA(1)=='\u2057'||(input.LA(1) >= '\u2070' && input.LA(1) <= '\u2071')||(input.LA(1) >= '\u2074' && input.LA(1) <= '\u207C')||(input.LA(1) >= '\u207F' && input.LA(1) <= '\u208C')||(input.LA(1) >= '\u20A0' && input.LA(1) <= '\u20B1')||(input.LA(1) >= '\u20D0' && input.LA(1) <= '\u20EA')||(input.LA(1) >= '\u2100' && input.LA(1) <= '\u213B')||(input.LA(1) >= '\u213D' && input.LA(1) <= '\u214B')||(input.LA(1) >= '\u2153' && input.LA(1) <= '\u2183')||(input.LA(1) >= '\u2190' && input.LA(1) <= '\u2328')||(input.LA(1) >= '\u232B' && input.LA(1) <= '\u23B3')||(input.LA(1) >= '\u23B6' && input.LA(1) <= '\u23D0')||(input.LA(1) >= '\u2400' && input.LA(1) <= '\u2426')||(input.LA(1) >= '\u2440' && input.LA(1) <= '\u244A')||(input.LA(1) >= '\u2460' && input.LA(1) <= '\u2617')||(input.LA(1) >= '\u2619' && input.LA(1) <= '\u267D')||(input.LA(1) >= '\u2680' && input.LA(1) <= '\u2691')||(input.LA(1) >= '\u26A0' && input.LA(1) <= '\u26A1')||(input.LA(1) >= '\u2701' && input.LA(1) <= '\u2704')||(input.LA(1) >= '\u2706' && input.LA(1) <= '\u2709')||(input.LA(1) >= '\u270C' && input.LA(1) <= '\u2727')||(input.LA(1) >= '\u2729' && input.LA(1) <= '\u274B')||input.LA(1)=='\u274D'||(input.LA(1) >= '\u274F' && input.LA(1) <= '\u2752')||input.LA(1)=='\u2756'||(input.LA(1) >= '\u2758' && input.LA(1) <= '\u275E')||(input.LA(1) >= '\u2761' && input.LA(1) <= '\u2767')||(input.LA(1) >= '\u2776' && input.LA(1) <= '\u2794')||(input.LA(1) >= '\u2798' && input.LA(1) <= '\u27AF')||(input.LA(1) >= '\u27B1' && input.LA(1) <= '\u27BE')||(input.LA(1) >= '\u27D0' && input.LA(1) <= '\u27E5')||(input.LA(1) >= '\u27F0' && input.LA(1) <= '\u2982')||(input.LA(1) >= '\u2999' && input.LA(1) <= '\u29D7')||(input.LA(1) >= '\u29DC' && input.LA(1) <= '\u29FB')||(input.LA(1) >= '\u29FE' && input.LA(1) <= '\u2B0D')||(input.LA(1) >= '\u2E80' && input.LA(1) <= '\u2E99')||(input.LA(1) >= '\u2E9B' && input.LA(1) <= '\u2EF3')||(input.LA(1) >= '\u2F00' && input.LA(1) <= '\u2FD5')||(input.LA(1) >= '\u2FF0' && input.LA(1) <= '\u2FFB')||(input.LA(1) >= '\u3001' && input.LA(1) <= '\u3007')||(input.LA(1) >= '\u3012' && input.LA(1) <= '\u3013')||input.LA(1)=='\u301C'||(input.LA(1) >= '\u3020' && input.LA(1) <= '\u303F')||(input.LA(1) >= '\u3041' && input.LA(1) <= '\u3096')||(input.LA(1) >= '\u3099' && input.LA(1) <= '\u309A')||(input.LA(1) >= '\u309D' && input.LA(1) <= '\u30FF')||(input.LA(1) >= '\u3105' && input.LA(1) <= '\u312C')||(input.LA(1) >= '\u3131' && input.LA(1) <= '\u318E')||(input.LA(1) >= '\u3190' && input.LA(1) <= '\u31B7')||(input.LA(1) >= '\u31F0' && input.LA(1) <= '\u321E')||(input.LA(1) >= '\u3220' && input.LA(1) <= '\u3243')||(input.LA(1) >= '\u3250' && input.LA(1) <= '\u327D')||(input.LA(1) >= '\u327F' && input.LA(1) <= '\u32FE')||(input.LA(1) >= '\u3300' && input.LA(1) <= '\u4DB5')||(input.LA(1) >= '\u4DC0' && input.LA(1) <= '\u9FA5')||(input.LA(1) >= '\uA000' && input.LA(1) <= '\uA48C')||(input.LA(1) >= '\uA490' && input.LA(1) <= '\uA4C6')||(input.LA(1) >= '\uAC00' && input.LA(1) <= '\uD7A3')||(input.LA(1) >= '\uF900' && input.LA(1) <= '\uFA2D')||(input.LA(1) >= '\uFA30' && input.LA(1) <= '\uFA6A')||(input.LA(1) >= '\uFB00' && input.LA(1) <= '\uFB06')||(input.LA(1) >= '\uFB13' && input.LA(1) <= '\uFB17')||(input.LA(1) >= '\uFB1D' && input.LA(1) <= '\uFB36')||(input.LA(1) >= '\uFB38' && input.LA(1) <= '\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1) >= '\uFB40' && input.LA(1) <= '\uFB41')||(input.LA(1) >= '\uFB43' && input.LA(1) <= '\uFB44')||(input.LA(1) >= '\uFB46' && input.LA(1) <= '\uFBB1')||(input.LA(1) >= '\uFBD3' && input.LA(1) <= '\uFD3D')||(input.LA(1) >= '\uFD50' && input.LA(1) <= '\uFD8F')||(input.LA(1) >= '\uFD92' && input.LA(1) <= '\uFDC7')||(input.LA(1) >= '\uFDF0' && input.LA(1) <= '\uFDFD')||(input.LA(1) >= '\uFE00' && input.LA(1) <= '\uFE0F')||(input.LA(1) >= '\uFE20' && input.LA(1) <= '\uFE23')||(input.LA(1) >= '\uFE30' && input.LA(1) <= '\uFE34')||(input.LA(1) >= '\uFE45' && input.LA(1) <= '\uFE46')||(input.LA(1) >= '\uFE49' && input.LA(1) <= '\uFE52')||(input.LA(1) >= '\uFE54' && input.LA(1) <= '\uFE58')||(input.LA(1) >= '\uFE5F' && input.LA(1) <= '\uFE66')||(input.LA(1) >= '\uFE68' && input.LA(1) <= '\uFE6B')||(input.LA(1) >= '\uFE70' && input.LA(1) <= '\uFE74')||(input.LA(1) >= '\uFE76' && input.LA(1) <= '\uFEFC')||(input.LA(1) >= '\uFF01' && input.LA(1) <= '\uFF07')||(input.LA(1) >= '\uFF0A' && input.LA(1) <= '\uFF3A')||input.LA(1)=='\uFF3C'||input.LA(1)=='\uFF3F'||(input.LA(1) >= '\uFF41' && input.LA(1) <= '\uFF5A')||input.LA(1)=='\uFF5C'||input.LA(1)=='\uFF5E'||input.LA(1)=='\uFF61'||(input.LA(1) >= '\uFF64' && input.LA(1) <= '\uFFBE')||(input.LA(1) >= '\uFFC2' && input.LA(1) <= '\uFFC7')||(input.LA(1) >= '\uFFCA' && input.LA(1) <= '\uFFCF')||(input.LA(1) >= '\uFFD2' && input.LA(1) <= '\uFFD7')||(input.LA(1) >= '\uFFDA' && input.LA(1) <= '\uFFDC')||(input.LA(1) >= '\uFFE0' && input.LA(1) <= '\uFFE2')||(input.LA(1) >= '\uFFE4' && input.LA(1) <= '\uFFE6')||(input.LA(1) >= '\uFFE8' && input.LA(1) <= '\uFFEE') ) { input.consume(); @@ -4329,10 +4329,10 @@ public class FTSLexer extends Lexer { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:2401:9: ( ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:2402:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2436:9: ( ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2437:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:2402:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2437:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ int cnt62=0; loop62: while (true) { @@ -4344,7 +4344,7 @@ public class FTSLexer extends Lexer { switch (alt62) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||(input.LA(1) >= '\f' && input.LA(1) <= '\r')||input.LA(1)==' '||input.LA(1)=='\u00A0'||input.LA(1)=='\u1680'||input.LA(1)=='\u180E'||(input.LA(1) >= '\u2000' && input.LA(1) <= '\u200B')||(input.LA(1) >= '\u2028' && input.LA(1) <= '\u2029')||input.LA(1)=='\u202F'||input.LA(1)=='\u205F'||input.LA(1)=='\u3000' ) { input.consume(); @@ -4382,257 +4382,257 @@ public class FTSLexer extends Lexer { @Override public void mTokens() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:8: ( FTSPHRASE | URI | DATETIME | OR | AND | NOT | TILDA | LPAREN | RPAREN | PLUS | MINUS | COLON | STAR | AMP | EXCLAMATION | BAR | EQUALS | QUESTION_MARK | LCURL | RCURL | LSQUARE | RSQUARE | TO | COMMA | CARAT | DOLLAR | GT | LT | AT | PERCENT | ID | FLOATING_POINT_LITERAL | FTSWORD | FTSPRE | FTSWILD | WS ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:8: ( FTSPHRASE | URI | DATETIME | OR | AND | NOT | TILDA | LPAREN | RPAREN | PLUS | MINUS | COLON | STAR | AMP | EXCLAMATION | BAR | EQUALS | QUESTION_MARK | LCURL | RCURL | LSQUARE | RSQUARE | TO | COMMA | CARAT | DOLLAR | GT | LT | AT | PERCENT | ID | FLOATING_POINT_LITERAL | FTSWORD | FTSPRE | FTSWILD | WS ) int alt63=36; alt63 = dfa63.predict(input); switch (alt63) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:10: FTSPHRASE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:10: FTSPHRASE { mFTSPHRASE(); if (state.failed) return; } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:20: URI + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:20: URI { mURI(); if (state.failed) return; } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:24: DATETIME + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:24: DATETIME { mDATETIME(); if (state.failed) return; } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:33: OR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:33: OR { mOR(); if (state.failed) return; } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:36: AND + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:36: AND { mAND(); if (state.failed) return; } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:40: NOT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:40: NOT { mNOT(); if (state.failed) return; } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:44: TILDA + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:44: TILDA { mTILDA(); if (state.failed) return; } break; case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:50: LPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:50: LPAREN { mLPAREN(); if (state.failed) return; } break; case 9 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:57: RPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:57: RPAREN { mRPAREN(); if (state.failed) return; } break; case 10 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:64: PLUS + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:64: PLUS { mPLUS(); if (state.failed) return; } break; case 11 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:69: MINUS + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:69: MINUS { mMINUS(); if (state.failed) return; } break; case 12 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:75: COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:75: COLON { mCOLON(); if (state.failed) return; } break; case 13 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:81: STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:81: STAR { mSTAR(); if (state.failed) return; } break; case 14 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:86: AMP + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:86: AMP { mAMP(); if (state.failed) return; } break; case 15 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:90: EXCLAMATION + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:90: EXCLAMATION { mEXCLAMATION(); if (state.failed) return; } break; case 16 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:102: BAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:102: BAR { mBAR(); if (state.failed) return; } break; case 17 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:106: EQUALS + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:106: EQUALS { mEQUALS(); if (state.failed) return; } break; case 18 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:113: QUESTION_MARK + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:113: QUESTION_MARK { mQUESTION_MARK(); if (state.failed) return; } break; case 19 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:127: LCURL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:127: LCURL { mLCURL(); if (state.failed) return; } break; case 20 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:133: RCURL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:133: RCURL { mRCURL(); if (state.failed) return; } break; case 21 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:139: LSQUARE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:139: LSQUARE { mLSQUARE(); if (state.failed) return; } break; case 22 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:147: RSQUARE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:147: RSQUARE { mRSQUARE(); if (state.failed) return; } break; case 23 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:155: TO + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:155: TO { mTO(); if (state.failed) return; } break; case 24 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:158: COMMA + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:158: COMMA { mCOMMA(); if (state.failed) return; } break; case 25 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:164: CARAT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:164: CARAT { mCARAT(); if (state.failed) return; } break; case 26 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:170: DOLLAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:170: DOLLAR { mDOLLAR(); if (state.failed) return; } break; case 27 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:177: GT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:177: GT { mGT(); if (state.failed) return; } break; case 28 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:180: LT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:180: LT { mLT(); if (state.failed) return; } break; case 29 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:183: AT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:183: AT { mAT(); if (state.failed) return; } break; case 30 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:186: PERCENT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:186: PERCENT { mPERCENT(); if (state.failed) return; } break; case 31 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:194: ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:194: ID { mID(); if (state.failed) return; } break; case 32 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:197: FLOATING_POINT_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:197: FLOATING_POINT_LITERAL { mFLOATING_POINT_LITERAL(); if (state.failed) return; } break; case 33 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:220: FTSWORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:220: FTSWORD { mFTSWORD(); if (state.failed) return; } break; case 34 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:228: FTSPRE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:228: FTSPRE { mFTSPRE(); if (state.failed) return; } break; case 35 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:235: FTSWILD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:235: FTSWILD { mFTSWILD(); if (state.failed) return; } break; case 36 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:1:243: WS + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:243: WS { mWS(); if (state.failed) return; @@ -4644,8 +4644,8 @@ public class FTSLexer extends Lexer { // $ANTLR start synpred1_FTS public final void synpred1_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:967:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1002:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= '9')||input.LA(1)==';'||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -4664,8 +4664,8 @@ public class FTSLexer extends Lexer { // $ANTLR start synpred2_FTS public final void synpred2_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:981:19: ( '//' ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:981:20: '//' + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:19: ( '//' ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:20: '//' { match("//"); if (state.failed) return; @@ -4676,8 +4676,8 @@ public class FTSLexer extends Lexer { // $ANTLR start synpred3_FTS public final void synpred3_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:983:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1018:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -4793,7 +4793,7 @@ public class FTSLexer extends Lexer { } @Override public String getDescription() { - return "966:9: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )?"; + return "1001:9: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )?"; } @Override public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java index 11c96dedca..00b90d1a8d 100644 --- a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java @@ -4,26 +4,26 @@ * %% * Copyright (C) 2005 - 2016 Alfresco Software Limited * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . * #L% */ -// $ANTLR 3.5.2 W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g 2015-06-18 19:37:48 +// $ANTLR 3.5.2 src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g 2019-11-22 15:06:19 package org.alfresco.repo.search.impl.parsers; @@ -189,7 +189,7 @@ public class FTSParser extends Parser { return adaptor; } @Override public String[] getTokenNames() { return FTSParser.tokenNames; } - @Override public String getGrammarFileName() { return "W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g"; } + @Override public String getGrammarFileName() { return "src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g"; } public enum Mode @@ -358,7 +358,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsQuery" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:342:1: ftsQuery : ftsDisjunction EOF -> ftsDisjunction ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:342:1: ftsQuery : ftsDisjunction EOF -> ftsDisjunction ; public final FTSParser.ftsQuery_return ftsQuery() throws RecognitionException { FTSParser.ftsQuery_return retval = new FTSParser.ftsQuery_return(); retval.start = input.LT(1); @@ -373,8 +373,8 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsDisjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsDisjunction"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:343:9: ( ftsDisjunction EOF -> ftsDisjunction ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:344:9: ftsDisjunction EOF + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:343:9: ( ftsDisjunction EOF -> ftsDisjunction ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:344:9: ftsDisjunction EOF { pushFollow(FOLLOW_ftsDisjunction_in_ftsQuery577); ftsDisjunction1=ftsDisjunction(); @@ -436,7 +436,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:353:1: ftsDisjunction : ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:353:1: ftsDisjunction : ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ); public final FTSParser.ftsDisjunction_return ftsDisjunction() throws RecognitionException { FTSParser.ftsDisjunction_return retval = new FTSParser.ftsDisjunction_return(); retval.start = input.LT(1); @@ -449,7 +449,7 @@ public class FTSParser extends Parser { try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:354:9: ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:354:9: ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ) int alt1=3; switch ( input.LA(1) ) { case COMMA: @@ -1186,7 +1186,7 @@ public class FTSParser extends Parser { } switch (alt1) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:355:11: {...}? cmisExplicitDisjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:355:11: {...}? cmisExplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -1204,7 +1204,7 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:356:11: {...}? ftsExplicitDisjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:356:11: {...}? ftsExplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -1222,7 +1222,7 @@ public class FTSParser extends Parser { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:357:11: {...}? ftsImplicitDisjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:357:11: {...}? ftsImplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -1270,7 +1270,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsExplicitDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:360:1: ftsExplicitDisjunction : ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:360:1: ftsExplicitDisjunction : ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ; public final FTSParser.ftsExplicitDisjunction_return ftsExplicitDisjunction() throws RecognitionException { FTSParser.ftsExplicitDisjunction_return retval = new FTSParser.ftsExplicitDisjunction_return(); retval.start = input.LT(1); @@ -1285,15 +1285,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsImplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsImplicitConjunction"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:361:9: ( ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:362:9: ftsImplicitConjunction ( or ftsImplicitConjunction )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:361:9: ( ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:9: ftsImplicitConjunction ( or ftsImplicitConjunction )* { pushFollow(FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction700); ftsImplicitConjunction6=ftsImplicitConjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsImplicitConjunction.add(ftsImplicitConjunction6.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:362:32: ( or ftsImplicitConjunction )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:32: ( or ftsImplicitConjunction )* loop2: while (true) { int alt2=2; @@ -1304,7 +1304,7 @@ public class FTSParser extends Parser { switch (alt2) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:362:33: or ftsImplicitConjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:33: or ftsImplicitConjunction { pushFollow(FOLLOW_or_in_ftsExplicitDisjunction703); or7=or(); @@ -1338,7 +1338,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 363:17: -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:364:25: ^( DISJUNCTION ( ftsImplicitConjunction )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:364:25: ^( DISJUNCTION ( ftsImplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DISJUNCTION, "DISJUNCTION"), root_1); @@ -1390,7 +1390,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisExplicitDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:367:1: cmisExplicitDisjunction : cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:367:1: cmisExplicitDisjunction : cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ; public final FTSParser.cmisExplicitDisjunction_return cmisExplicitDisjunction() throws RecognitionException { FTSParser.cmisExplicitDisjunction_return retval = new FTSParser.cmisExplicitDisjunction_return(); retval.start = input.LT(1); @@ -1405,15 +1405,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_or=new RewriteRuleSubtreeStream(adaptor,"rule or"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:368:9: ( cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:369:9: cmisConjunction ( or cmisConjunction )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:368:9: ( cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:9: cmisConjunction ( or cmisConjunction )* { pushFollow(FOLLOW_cmisConjunction_in_cmisExplicitDisjunction789); cmisConjunction9=cmisConjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_cmisConjunction.add(cmisConjunction9.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:369:25: ( or cmisConjunction )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:25: ( or cmisConjunction )* loop3: while (true) { int alt3=2; @@ -1424,7 +1424,7 @@ public class FTSParser extends Parser { switch (alt3) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:369:26: or cmisConjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:26: or cmisConjunction { pushFollow(FOLLOW_or_in_cmisExplicitDisjunction792); or10=or(); @@ -1458,7 +1458,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 370:17: -> ^( DISJUNCTION ( cmisConjunction )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:371:25: ^( DISJUNCTION ( cmisConjunction )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:371:25: ^( DISJUNCTION ( cmisConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DISJUNCTION, "DISJUNCTION"), root_1); @@ -1510,7 +1510,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsImplicitDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:374:1: ftsImplicitDisjunction : ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:374:1: ftsImplicitDisjunction : ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ; public final FTSParser.ftsImplicitDisjunction_return ftsImplicitDisjunction() throws RecognitionException { FTSParser.ftsImplicitDisjunction_return retval = new FTSParser.ftsImplicitDisjunction_return(); retval.start = input.LT(1); @@ -1524,10 +1524,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsExplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsExplicitConjunction"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:375:9: ( ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:375:9: ( ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ int cnt5=0; loop5: while (true) { @@ -1539,9 +1539,9 @@ public class FTSParser extends Parser { switch (alt5) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:376:10: ( or )? ftsExplicitConjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: ( or )? ftsExplicitConjunction { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:376:10: ( or )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: ( or )? int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==OR) ) { @@ -1558,7 +1558,7 @@ public class FTSParser extends Parser { } switch (alt4) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:376:10: or + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: or { pushFollow(FOLLOW_or_in_ftsImplicitDisjunction879); or12=or(); @@ -1601,7 +1601,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 377:17: -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:378:25: ^( DISJUNCTION ( ftsExplicitConjunction )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:378:25: ^( DISJUNCTION ( ftsExplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DISJUNCTION, "DISJUNCTION"), root_1); @@ -1653,7 +1653,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsExplicitConjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:385:1: ftsExplicitConjunction : ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:385:1: ftsExplicitConjunction : ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; public final FTSParser.ftsExplicitConjunction_return ftsExplicitConjunction() throws RecognitionException { FTSParser.ftsExplicitConjunction_return retval = new FTSParser.ftsExplicitConjunction_return(); retval.start = input.LT(1); @@ -1668,15 +1668,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule ftsPrefixed"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:386:9: ( ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:387:9: ftsPrefixed ( and ftsPrefixed )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:386:9: ( ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:9: ftsPrefixed ( and ftsPrefixed )* { pushFollow(FOLLOW_ftsPrefixed_in_ftsExplicitConjunction969); ftsPrefixed14=ftsPrefixed(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsPrefixed.add(ftsPrefixed14.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:387:21: ( and ftsPrefixed )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:21: ( and ftsPrefixed )* loop6: while (true) { int alt6=2; @@ -1694,7 +1694,7 @@ public class FTSParser extends Parser { switch (alt6) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:387:22: and ftsPrefixed + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:22: and ftsPrefixed { pushFollow(FOLLOW_and_in_ftsExplicitConjunction972); and15=and(); @@ -1728,7 +1728,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 388:17: -> ^( CONJUNCTION ( ftsPrefixed )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:389:25: ^( CONJUNCTION ( ftsPrefixed )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:389:25: ^( CONJUNCTION ( ftsPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONJUNCTION, "CONJUNCTION"), root_1); @@ -1780,7 +1780,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsImplicitConjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:392:1: ftsImplicitConjunction : ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:392:1: ftsImplicitConjunction : ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; public final FTSParser.ftsImplicitConjunction_return ftsImplicitConjunction() throws RecognitionException { FTSParser.ftsImplicitConjunction_return retval = new FTSParser.ftsImplicitConjunction_return(); retval.start = input.LT(1); @@ -1794,10 +1794,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule ftsPrefixed"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:393:9: ( ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:394:9: ( ( and )? ftsPrefixed )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:393:9: ( ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:9: ( ( and )? ftsPrefixed )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:394:9: ( ( and )? ftsPrefixed )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:9: ( ( and )? ftsPrefixed )+ int cnt8=0; loop8: while (true) { @@ -1855,9 +1855,9 @@ public class FTSParser extends Parser { } switch (alt8) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:394:10: ( and )? ftsPrefixed + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: ( and )? ftsPrefixed { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:394:10: ( and )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: ( and )? int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0==AND) ) { @@ -1871,7 +1871,7 @@ public class FTSParser extends Parser { } switch (alt7) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:394:10: and + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: and { pushFollow(FOLLOW_and_in_ftsImplicitConjunction1059); and17=and(); @@ -1914,7 +1914,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 395:17: -> ^( CONJUNCTION ( ftsPrefixed )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:396:25: ^( CONJUNCTION ( ftsPrefixed )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:396:25: ^( CONJUNCTION ( ftsPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONJUNCTION, "CONJUNCTION"), root_1); @@ -1966,7 +1966,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisConjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:399:1: cmisConjunction : ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:399:1: cmisConjunction : ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ; public final FTSParser.cmisConjunction_return cmisConjunction() throws RecognitionException { FTSParser.cmisConjunction_return retval = new FTSParser.cmisConjunction_return(); retval.start = input.LT(1); @@ -1978,10 +1978,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_cmisPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule cmisPrefixed"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:400:9: ( ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:401:9: ( cmisPrefixed )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:400:9: ( ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: ( cmisPrefixed )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:401:9: ( cmisPrefixed )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: ( cmisPrefixed )+ int cnt9=0; loop9: while (true) { @@ -1993,7 +1993,7 @@ public class FTSParser extends Parser { switch (alt9) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:401:9: cmisPrefixed + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: cmisPrefixed { pushFollow(FOLLOW_cmisPrefixed_in_cmisConjunction1146); cmisPrefixed19=cmisPrefixed(); @@ -2026,7 +2026,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 402:17: -> ^( CONJUNCTION ( cmisPrefixed )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:403:25: ^( CONJUNCTION ( cmisPrefixed )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:403:25: ^( CONJUNCTION ( cmisPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONJUNCTION, "CONJUNCTION"), root_1); @@ -2078,7 +2078,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsPrefixed" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:413:1: ftsPrefixed : ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:413:1: ftsPrefixed : ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ); public final FTSParser.ftsPrefixed_return ftsPrefixed() throws RecognitionException { FTSParser.ftsPrefixed_return retval = new FTSParser.ftsPrefixed_return(); retval.start = input.LT(1); @@ -2111,7 +2111,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsTest=new RewriteRuleSubtreeStream(adaptor,"rule ftsTest"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:414:9: ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:414:9: ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ) int alt15=5; int LA15_0 = input.LA(1); if ( (LA15_0==NOT) ) { @@ -2149,7 +2149,7 @@ public class FTSParser extends Parser { switch (alt15) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:415:9: ( not )=> not ftsTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:9: ( not )=> not ftsTest ( boost )? { pushFollow(FOLLOW_not_in_ftsPrefixed1238); not20=not(); @@ -2161,7 +2161,7 @@ public class FTSParser extends Parser { state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest21.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:415:30: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:30: ( boost )? int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0==CARAT) ) { @@ -2169,7 +2169,7 @@ public class FTSParser extends Parser { } switch (alt10) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:415:30: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:30: boost { pushFollow(FOLLOW_boost_in_ftsPrefixed1242); boost22=boost(); @@ -2195,12 +2195,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 416:17: -> ^( NEGATION ftsTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:417:25: ^( NEGATION ftsTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:417:25: ^( NEGATION ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NEGATION, "NEGATION"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:417:44: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:417:44: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2218,14 +2218,14 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:418:11: ftsTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:11: ftsTest ( boost )? { pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1306); ftsTest23=ftsTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest23.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:418:19: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:19: ( boost )? int alt11=2; int LA11_0 = input.LA(1); if ( (LA11_0==CARAT) ) { @@ -2233,7 +2233,7 @@ public class FTSParser extends Parser { } switch (alt11) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:418:19: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:19: boost { pushFollow(FOLLOW_boost_in_ftsPrefixed1308); boost24=boost(); @@ -2259,12 +2259,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 419:17: -> ^( DEFAULT ftsTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:420:25: ^( DEFAULT ftsTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:420:25: ^( DEFAULT ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFAULT, "DEFAULT"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:420:43: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:420:43: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2282,7 +2282,7 @@ public class FTSParser extends Parser { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:421:11: PLUS ftsTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:11: PLUS ftsTest ( boost )? { PLUS25=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsPrefixed1372); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PLUS.add(PLUS25); @@ -2292,7 +2292,7 @@ public class FTSParser extends Parser { state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest26.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:421:24: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:24: ( boost )? int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0==CARAT) ) { @@ -2300,7 +2300,7 @@ public class FTSParser extends Parser { } switch (alt12) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:421:24: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:24: boost { pushFollow(FOLLOW_boost_in_ftsPrefixed1376); boost27=boost(); @@ -2326,12 +2326,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 422:17: -> ^( MANDATORY ftsTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:423:25: ^( MANDATORY ftsTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:423:25: ^( MANDATORY ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MANDATORY, "MANDATORY"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:423:45: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:423:45: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2349,7 +2349,7 @@ public class FTSParser extends Parser { } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:424:11: BAR ftsTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:11: BAR ftsTest ( boost )? { BAR28=(Token)match(input,BAR,FOLLOW_BAR_in_ftsPrefixed1440); if (state.failed) return retval; if ( state.backtracking==0 ) stream_BAR.add(BAR28); @@ -2359,7 +2359,7 @@ public class FTSParser extends Parser { state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest29.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:424:23: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:23: ( boost )? int alt13=2; int LA13_0 = input.LA(1); if ( (LA13_0==CARAT) ) { @@ -2367,7 +2367,7 @@ public class FTSParser extends Parser { } switch (alt13) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:424:23: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:23: boost { pushFollow(FOLLOW_boost_in_ftsPrefixed1444); boost30=boost(); @@ -2393,12 +2393,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 425:17: -> ^( OPTIONAL ftsTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:426:25: ^( OPTIONAL ftsTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:426:25: ^( OPTIONAL ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTIONAL, "OPTIONAL"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:426:44: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:426:44: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2416,7 +2416,7 @@ public class FTSParser extends Parser { } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:427:11: MINUS ftsTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:11: MINUS ftsTest ( boost )? { MINUS31=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsPrefixed1508); if (state.failed) return retval; if ( state.backtracking==0 ) stream_MINUS.add(MINUS31); @@ -2426,7 +2426,7 @@ public class FTSParser extends Parser { state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest32.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:427:25: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:25: ( boost )? int alt14=2; int LA14_0 = input.LA(1); if ( (LA14_0==CARAT) ) { @@ -2434,7 +2434,7 @@ public class FTSParser extends Parser { } switch (alt14) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:427:25: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:25: boost { pushFollow(FOLLOW_boost_in_ftsPrefixed1512); boost33=boost(); @@ -2460,12 +2460,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 428:17: -> ^( EXCLUDE ftsTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:429:25: ^( EXCLUDE ftsTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:429:25: ^( EXCLUDE ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXCLUDE, "EXCLUDE"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:429:43: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:429:43: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2513,7 +2513,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisPrefixed" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:432:1: cmisPrefixed : ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:432:1: cmisPrefixed : ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ); public final FTSParser.cmisPrefixed_return cmisPrefixed() throws RecognitionException { FTSParser.cmisPrefixed_return retval = new FTSParser.cmisPrefixed_return(); retval.start = input.LT(1); @@ -2529,7 +2529,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_cmisTest=new RewriteRuleSubtreeStream(adaptor,"rule cmisTest"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:433:9: ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:433:9: ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ) int alt16=2; int LA16_0 = input.LA(1); if ( (LA16_0==COMMA||LA16_0==DATETIME||LA16_0==DECIMAL_INTEGER_LITERAL||LA16_0==DOT||LA16_0==FLOATING_POINT_LITERAL||(LA16_0 >= FTSPHRASE && LA16_0 <= FTSWORD)||LA16_0==ID||LA16_0==NOT||LA16_0==QUESTION_MARK||LA16_0==STAR||LA16_0==TO||LA16_0==URI) ) { @@ -2548,7 +2548,7 @@ public class FTSParser extends Parser { switch (alt16) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:434:9: cmisTest + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:434:9: cmisTest { pushFollow(FOLLOW_cmisTest_in_cmisPrefixed1597); cmisTest34=cmisTest(); @@ -2569,7 +2569,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 435:17: -> ^( DEFAULT cmisTest ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:436:25: ^( DEFAULT cmisTest ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:436:25: ^( DEFAULT cmisTest ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFAULT, "DEFAULT"), root_1); @@ -2586,7 +2586,7 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:437:11: MINUS cmisTest + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:437:11: MINUS cmisTest { MINUS35=(Token)match(input,MINUS,FOLLOW_MINUS_in_cmisPrefixed1657); if (state.failed) return retval; if ( state.backtracking==0 ) stream_MINUS.add(MINUS35); @@ -2610,7 +2610,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 438:17: -> ^( EXCLUDE cmisTest ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:439:25: ^( EXCLUDE cmisTest ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:439:25: ^( EXCLUDE cmisTest ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXCLUDE, "EXCLUDE"), root_1); @@ -2657,7 +2657,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsTest" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:445:1: ftsTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:445:1: ftsTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ); public final FTSParser.ftsTest_return ftsTest() throws RecognitionException { FTSParser.ftsTest_return retval = new FTSParser.ftsTest_return(); retval.start = input.LT(1); @@ -2686,12 +2686,12 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroup=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroup"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:446:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:446:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ) int alt17=8; alt17 = dfa17.predict(input); switch (alt17) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:447:12: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:12: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity { pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsTest1751); ftsFieldGroupProximity37=ftsFieldGroupProximity(); @@ -2712,7 +2712,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 448:17: -> ^( PROXIMITY ftsFieldGroupProximity ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:449:25: ^( PROXIMITY ftsFieldGroupProximity ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:449:25: ^( PROXIMITY ftsFieldGroupProximity ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROXIMITY, "PROXIMITY"), root_1); @@ -2729,7 +2729,7 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:451:12: ( ftsRange )=> ftsRange + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:12: ( ftsRange )=> ftsRange { pushFollow(FOLLOW_ftsRange_in_ftsTest1828); ftsRange38=ftsRange(); @@ -2750,7 +2750,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 452:17: -> ^( RANGE ftsRange ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:453:25: ^( RANGE ftsRange ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:453:25: ^( RANGE ftsRange ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RANGE, "RANGE"), root_1); @@ -2767,7 +2767,7 @@ public class FTSParser extends Parser { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:455:12: ( ftsFieldGroup )=> ftsFieldGroup + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:12: ( ftsFieldGroup )=> ftsFieldGroup { pushFollow(FOLLOW_ftsFieldGroup_in_ftsTest1907); ftsFieldGroup39=ftsFieldGroup(); @@ -2798,7 +2798,7 @@ public class FTSParser extends Parser { } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:458:12: ( ftsTermOrPhrase )=> ftsTermOrPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:12: ( ftsTermOrPhrase )=> ftsTermOrPhrase { root_0 = (Object)adaptor.nil(); @@ -2812,7 +2812,7 @@ public class FTSParser extends Parser { } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:460:12: ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:12: ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase { root_0 = (Object)adaptor.nil(); @@ -2826,7 +2826,7 @@ public class FTSParser extends Parser { } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:462:12: ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:12: ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase { root_0 = (Object)adaptor.nil(); @@ -2840,7 +2840,7 @@ public class FTSParser extends Parser { } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:465:12: LPAREN ftsDisjunction RPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:465:12: LPAREN ftsDisjunction RPAREN { LPAREN43=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsTest2046); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN43); @@ -2877,7 +2877,7 @@ public class FTSParser extends Parser { } break; case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:467:12: template + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:467:12: template { pushFollow(FOLLOW_template_in_ftsTest2083); template46=template(); @@ -2938,7 +2938,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisTest" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:471:1: cmisTest : ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:471:1: cmisTest : ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ); public final FTSParser.cmisTest_return cmisTest() throws RecognitionException { FTSParser.cmisTest_return retval = new FTSParser.cmisTest_return(); retval.start = input.LT(1); @@ -2952,7 +2952,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_cmisPhrase=new RewriteRuleSubtreeStream(adaptor,"rule cmisPhrase"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:472:9: ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:472:9: ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ) int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==COMMA||LA18_0==DATETIME||LA18_0==DECIMAL_INTEGER_LITERAL||LA18_0==DOT||LA18_0==FLOATING_POINT_LITERAL||(LA18_0 >= FTSPRE && LA18_0 <= FTSWORD)||LA18_0==ID||LA18_0==NOT||LA18_0==QUESTION_MARK||LA18_0==STAR||LA18_0==TO||LA18_0==URI) ) { @@ -2971,7 +2971,7 @@ public class FTSParser extends Parser { switch (alt18) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:473:9: cmisTerm + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:473:9: cmisTerm { pushFollow(FOLLOW_cmisTerm_in_cmisTest2136); cmisTerm47=cmisTerm(); @@ -2992,7 +2992,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 474:17: -> ^( TERM cmisTerm ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:475:25: ^( TERM cmisTerm ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:475:25: ^( TERM cmisTerm ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); @@ -3009,7 +3009,7 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:476:11: cmisPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:476:11: cmisPhrase { pushFollow(FOLLOW_cmisPhrase_in_cmisTest2196); cmisPhrase48=cmisPhrase(); @@ -3030,7 +3030,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 477:17: -> ^( PHRASE cmisPhrase ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:478:25: ^( PHRASE cmisPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:478:25: ^( PHRASE cmisPhrase ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); @@ -3077,7 +3077,7 @@ public class FTSParser extends Parser { // $ANTLR start "template" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:481:1: template : ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:481:1: template : ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ); public final FTSParser.template_return template() throws RecognitionException { FTSParser.template_return retval = new FTSParser.template_return(); retval.start = input.LT(1); @@ -3104,7 +3104,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_tempReference=new RewriteRuleSubtreeStream(adaptor,"rule tempReference"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:482:9: ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:482:9: ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ) int alt21=2; int LA21_0 = input.LA(1); if ( (LA21_0==PERCENT) ) { @@ -3140,7 +3140,7 @@ public class FTSParser extends Parser { switch (alt21) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:483:9: PERCENT tempReference + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:483:9: PERCENT tempReference { PERCENT49=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_template2277); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PERCENT.add(PERCENT49); @@ -3164,7 +3164,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 484:17: -> ^( TEMPLATE tempReference ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:485:25: ^( TEMPLATE tempReference ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:485:25: ^( TEMPLATE tempReference ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TEMPLATE, "TEMPLATE"), root_1); @@ -3181,7 +3181,7 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:486:11: PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:11: PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN { PERCENT51=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_template2339); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PERCENT.add(PERCENT51); @@ -3189,7 +3189,7 @@ public class FTSParser extends Parser { LPAREN52=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_template2341); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN52); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:486:26: ( tempReference ( COMMA )? )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:26: ( tempReference ( COMMA )? )+ int cnt20=0; loop20: while (true) { @@ -3201,14 +3201,14 @@ public class FTSParser extends Parser { switch (alt20) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:486:27: tempReference ( COMMA )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:27: tempReference ( COMMA )? { pushFollow(FOLLOW_tempReference_in_template2344); tempReference53=tempReference(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_tempReference.add(tempReference53.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:486:41: ( COMMA )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:41: ( COMMA )? int alt19=2; int LA19_0 = input.LA(1); if ( (LA19_0==COMMA) ) { @@ -3216,7 +3216,7 @@ public class FTSParser extends Parser { } switch (alt19) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:486:41: COMMA + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:41: COMMA { COMMA54=(Token)match(input,COMMA,FOLLOW_COMMA_in_template2346); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COMMA.add(COMMA54); @@ -3255,7 +3255,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 487:17: -> ^( TEMPLATE ( tempReference )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:488:25: ^( TEMPLATE ( tempReference )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:488:25: ^( TEMPLATE ( tempReference )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TEMPLATE, "TEMPLATE"), root_1); @@ -3309,7 +3309,7 @@ public class FTSParser extends Parser { // $ANTLR start "fuzzy" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:491:1: fuzzy : TILDA number -> ^( FUZZY number ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:491:1: fuzzy : TILDA number -> ^( FUZZY number ) ; public final FTSParser.fuzzy_return fuzzy() throws RecognitionException { FTSParser.fuzzy_return retval = new FTSParser.fuzzy_return(); retval.start = input.LT(1); @@ -3324,8 +3324,8 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_number=new RewriteRuleSubtreeStream(adaptor,"rule number"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:492:9: ( TILDA number -> ^( FUZZY number ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:493:9: TILDA number + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:492:9: ( TILDA number -> ^( FUZZY number ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:493:9: TILDA number { TILDA56=(Token)match(input,TILDA,FOLLOW_TILDA_in_fuzzy2433); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA56); @@ -3349,7 +3349,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 494:17: -> ^( FUZZY number ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:495:25: ^( FUZZY number ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:495:25: ^( FUZZY number ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1); @@ -3394,7 +3394,7 @@ public class FTSParser extends Parser { // $ANTLR start "slop" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:498:1: slop : TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:498:1: slop : TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ; public final FTSParser.slop_return slop() throws RecognitionException { FTSParser.slop_return retval = new FTSParser.slop_return(); retval.start = input.LT(1); @@ -3410,8 +3410,8 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_TILDA=new RewriteRuleTokenStream(adaptor,"token TILDA"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:499:9: ( TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:500:9: TILDA DECIMAL_INTEGER_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:499:9: ( TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:500:9: TILDA DECIMAL_INTEGER_LITERAL { TILDA58=(Token)match(input,TILDA,FOLLOW_TILDA_in_slop2516); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA58); @@ -3433,7 +3433,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 501:17: -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:502:25: ^( FUZZY DECIMAL_INTEGER_LITERAL ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:502:25: ^( FUZZY DECIMAL_INTEGER_LITERAL ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1); @@ -3478,7 +3478,7 @@ public class FTSParser extends Parser { // $ANTLR start "boost" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:505:1: boost : CARAT number -> ^( BOOST number ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:505:1: boost : CARAT number -> ^( BOOST number ) ; public final FTSParser.boost_return boost() throws RecognitionException { FTSParser.boost_return retval = new FTSParser.boost_return(); retval.start = input.LT(1); @@ -3493,8 +3493,8 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_number=new RewriteRuleSubtreeStream(adaptor,"rule number"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:506:9: ( CARAT number -> ^( BOOST number ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:507:9: CARAT number + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:506:9: ( CARAT number -> ^( BOOST number ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:507:9: CARAT number { CARAT60=(Token)match(input,CARAT,FOLLOW_CARAT_in_boost2599); if (state.failed) return retval; if ( state.backtracking==0 ) stream_CARAT.add(CARAT60); @@ -3518,7 +3518,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 508:17: -> ^( BOOST number ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:509:25: ^( BOOST number ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:509:25: ^( BOOST number ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOST, "BOOST"), root_1); @@ -3563,7 +3563,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsTermOrPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:512:1: ftsTermOrPhrase : ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:512:1: ftsTermOrPhrase : ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ); public final FTSParser.ftsTermOrPhrase_return ftsTermOrPhrase() throws RecognitionException { FTSParser.ftsTermOrPhrase_return retval = new FTSParser.ftsTermOrPhrase_return(); retval.start = input.LT(1); @@ -3572,348 +3572,51 @@ public class FTSParser extends Parser { Token COLON63=null; Token FTSPHRASE64=null; - Token FTSPHRASE68=null; - ParserRuleReturnScope fieldReference62 =null; + Token COLON69=null; + Token FTSPHRASE70=null; + Token FTSPHRASE74=null; + ParserRuleReturnScope fieldReferenceWithPrefix62 =null; ParserRuleReturnScope slop65 =null; ParserRuleReturnScope ftsWord66 =null; ParserRuleReturnScope fuzzy67 =null; - ParserRuleReturnScope slop69 =null; - ParserRuleReturnScope ftsWord70 =null; - ParserRuleReturnScope fuzzy71 =null; + ParserRuleReturnScope fieldReferenceWithoutPrefix68 =null; + ParserRuleReturnScope slop71 =null; + ParserRuleReturnScope ftsWord72 =null; + ParserRuleReturnScope fuzzy73 =null; + ParserRuleReturnScope slop75 =null; + ParserRuleReturnScope ftsWord76 =null; + ParserRuleReturnScope fuzzy77 =null; Object COLON63_tree=null; Object FTSPHRASE64_tree=null; - Object FTSPHRASE68_tree=null; + Object COLON69_tree=null; + Object FTSPHRASE70_tree=null; + Object FTSPHRASE74_tree=null; RewriteRuleTokenStream stream_FTSPHRASE=new RewriteRuleTokenStream(adaptor,"token FTSPHRASE"); RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); + RewriteRuleSubtreeStream stream_fieldReferenceWithoutPrefix=new RewriteRuleSubtreeStream(adaptor,"rule fieldReferenceWithoutPrefix"); RewriteRuleSubtreeStream stream_ftsWord=new RewriteRuleSubtreeStream(adaptor,"rule ftsWord"); - RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); RewriteRuleSubtreeStream stream_fuzzy=new RewriteRuleSubtreeStream(adaptor,"rule fuzzy"); + RewriteRuleSubtreeStream stream_fieldReferenceWithPrefix=new RewriteRuleSubtreeStream(adaptor,"rule fieldReferenceWithPrefix"); RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:513:9: ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) - int alt27=3; - int LA27_0 = input.LA(1); - if ( (LA27_0==AT) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_0==ID) ) { - int LA27_2 = input.LA(2); - if ( (LA27_2==DOT) ) { - int LA27_10 = input.LA(3); - if ( (LA27_10==ID) ) { - int LA27_17 = input.LA(4); - if ( (synpred8_FTS()) ) { - alt27=1; - } - else if ( (true) ) { - alt27=3; - } - - } - else if ( (LA27_10==EOF||(LA27_10 >= AMP && LA27_10 <= BAR)||LA27_10==CARAT||LA27_10==COMMA||LA27_10==DATETIME||LA27_10==DECIMAL_INTEGER_LITERAL||LA27_10==DOT||LA27_10==EQUALS||LA27_10==EXCLAMATION||LA27_10==FLOATING_POINT_LITERAL||(LA27_10 >= FTSPHRASE && LA27_10 <= FTSWORD)||(LA27_10 >= LPAREN && LA27_10 <= LT)||LA27_10==MINUS||LA27_10==NOT||(LA27_10 >= OR && LA27_10 <= PERCENT)||LA27_10==PLUS||LA27_10==QUESTION_MARK||LA27_10==RPAREN||LA27_10==STAR||(LA27_10 >= TILDA && LA27_10 <= TO)||LA27_10==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 10, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - else if ( (LA27_2==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_2==EOF||(LA27_2 >= AMP && LA27_2 <= BAR)||LA27_2==CARAT||LA27_2==COMMA||LA27_2==DATETIME||LA27_2==DECIMAL_INTEGER_LITERAL||LA27_2==EQUALS||LA27_2==EXCLAMATION||LA27_2==FLOATING_POINT_LITERAL||(LA27_2 >= FTSPHRASE && LA27_2 <= FTSWORD)||LA27_2==ID||(LA27_2 >= LPAREN && LA27_2 <= LT)||LA27_2==MINUS||LA27_2==NOT||(LA27_2 >= OR && LA27_2 <= PERCENT)||LA27_2==PLUS||LA27_2==QUESTION_MARK||LA27_2==RPAREN||LA27_2==STAR||(LA27_2 >= TILDA && LA27_2 <= TO)||LA27_2==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - input.consume(); - NoViableAltException nvae = - new NoViableAltException("", 27, 2, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - else if ( (LA27_0==TO) ) { - int LA27_3 = input.LA(2); - if ( (LA27_3==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_3==EOF||(LA27_3 >= AMP && LA27_3 <= BAR)||LA27_3==CARAT||LA27_3==COMMA||LA27_3==DATETIME||LA27_3==DECIMAL_INTEGER_LITERAL||LA27_3==DOT||LA27_3==EQUALS||LA27_3==EXCLAMATION||LA27_3==FLOATING_POINT_LITERAL||(LA27_3 >= FTSPHRASE && LA27_3 <= FTSWORD)||LA27_3==ID||(LA27_3 >= LPAREN && LA27_3 <= LT)||LA27_3==MINUS||LA27_3==NOT||(LA27_3 >= OR && LA27_3 <= PERCENT)||LA27_3==PLUS||LA27_3==QUESTION_MARK||LA27_3==RPAREN||LA27_3==STAR||(LA27_3 >= TILDA && LA27_3 <= TO)||LA27_3==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - input.consume(); - NoViableAltException nvae = - new NoViableAltException("", 27, 3, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - else if ( (LA27_0==OR) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_0==AND) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_0==NOT) ) { - int LA27_6 = input.LA(2); - if ( (LA27_6==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_6==EOF||(LA27_6 >= AMP && LA27_6 <= BAR)||LA27_6==CARAT||LA27_6==COMMA||LA27_6==DATETIME||LA27_6==DECIMAL_INTEGER_LITERAL||LA27_6==DOT||LA27_6==EQUALS||LA27_6==EXCLAMATION||LA27_6==FLOATING_POINT_LITERAL||(LA27_6 >= FTSPHRASE && LA27_6 <= FTSWORD)||LA27_6==ID||(LA27_6 >= LPAREN && LA27_6 <= LT)||LA27_6==MINUS||LA27_6==NOT||(LA27_6 >= OR && LA27_6 <= PERCENT)||LA27_6==PLUS||LA27_6==QUESTION_MARK||LA27_6==RPAREN||LA27_6==STAR||(LA27_6 >= TILDA && LA27_6 <= TO)||LA27_6==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - input.consume(); - NoViableAltException nvae = - new NoViableAltException("", 27, 6, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - else if ( (LA27_0==URI) ) { - switch ( input.LA(2) ) { - case ID: - { - int LA27_12 = input.LA(3); - if ( (LA27_12==DOT) ) { - int LA27_18 = input.LA(4); - if ( (LA27_18==ID) ) { - int LA27_20 = input.LA(5); - if ( (synpred8_FTS()) ) { - alt27=1; - } - else if ( (true) ) { - alt27=3; - } - - } - else if ( (LA27_18==EOF||(LA27_18 >= AMP && LA27_18 <= BAR)||LA27_18==CARAT||LA27_18==COMMA||LA27_18==DATETIME||LA27_18==DECIMAL_INTEGER_LITERAL||LA27_18==DOT||LA27_18==EQUALS||LA27_18==EXCLAMATION||LA27_18==FLOATING_POINT_LITERAL||(LA27_18 >= FTSPHRASE && LA27_18 <= FTSWORD)||(LA27_18 >= LPAREN && LA27_18 <= LT)||LA27_18==MINUS||LA27_18==NOT||(LA27_18 >= OR && LA27_18 <= PERCENT)||LA27_18==PLUS||LA27_18==QUESTION_MARK||LA27_18==RPAREN||LA27_18==STAR||(LA27_18 >= TILDA && LA27_18 <= TO)||LA27_18==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 18, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - else if ( (LA27_12==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_12==EOF||(LA27_12 >= AMP && LA27_12 <= BAR)||LA27_12==CARAT||LA27_12==COMMA||LA27_12==DATETIME||LA27_12==DECIMAL_INTEGER_LITERAL||LA27_12==EQUALS||LA27_12==EXCLAMATION||LA27_12==FLOATING_POINT_LITERAL||(LA27_12 >= FTSPHRASE && LA27_12 <= FTSWORD)||LA27_12==ID||(LA27_12 >= LPAREN && LA27_12 <= LT)||LA27_12==MINUS||LA27_12==NOT||(LA27_12 >= OR && LA27_12 <= PERCENT)||LA27_12==PLUS||LA27_12==QUESTION_MARK||LA27_12==RPAREN||LA27_12==STAR||(LA27_12 >= TILDA && LA27_12 <= TO)||LA27_12==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 12, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - break; - case TO: - { - int LA27_13 = input.LA(3); - if ( (LA27_13==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_13==EOF||(LA27_13 >= AMP && LA27_13 <= BAR)||LA27_13==CARAT||LA27_13==COMMA||LA27_13==DATETIME||LA27_13==DECIMAL_INTEGER_LITERAL||LA27_13==DOT||LA27_13==EQUALS||LA27_13==EXCLAMATION||LA27_13==FLOATING_POINT_LITERAL||(LA27_13 >= FTSPHRASE && LA27_13 <= FTSWORD)||LA27_13==ID||(LA27_13 >= LPAREN && LA27_13 <= LT)||LA27_13==MINUS||LA27_13==NOT||(LA27_13 >= OR && LA27_13 <= PERCENT)||LA27_13==PLUS||LA27_13==QUESTION_MARK||LA27_13==RPAREN||LA27_13==STAR||(LA27_13 >= TILDA && LA27_13 <= TO)||LA27_13==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 13, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - break; - case OR: - { - int LA27_14 = input.LA(3); - if ( (LA27_14==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_14==EOF||(LA27_14 >= AMP && LA27_14 <= BAR)||LA27_14==CARAT||LA27_14==COMMA||LA27_14==DATETIME||LA27_14==DECIMAL_INTEGER_LITERAL||LA27_14==DOT||LA27_14==EQUALS||LA27_14==EXCLAMATION||LA27_14==FLOATING_POINT_LITERAL||(LA27_14 >= FTSPHRASE && LA27_14 <= FTSWORD)||LA27_14==ID||(LA27_14 >= LPAREN && LA27_14 <= LT)||LA27_14==MINUS||LA27_14==NOT||(LA27_14 >= OR && LA27_14 <= PERCENT)||LA27_14==PLUS||LA27_14==QUESTION_MARK||LA27_14==RPAREN||LA27_14==STAR||(LA27_14 >= TILDA && LA27_14 <= TO)||LA27_14==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 14, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - break; - case AND: - { - int LA27_15 = input.LA(3); - if ( (LA27_15==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_15==EOF||(LA27_15 >= AMP && LA27_15 <= BAR)||LA27_15==CARAT||LA27_15==COMMA||LA27_15==DATETIME||LA27_15==DECIMAL_INTEGER_LITERAL||LA27_15==DOT||LA27_15==EQUALS||LA27_15==EXCLAMATION||LA27_15==FLOATING_POINT_LITERAL||(LA27_15 >= FTSPHRASE && LA27_15 <= FTSWORD)||LA27_15==ID||(LA27_15 >= LPAREN && LA27_15 <= LT)||LA27_15==MINUS||LA27_15==NOT||(LA27_15 >= OR && LA27_15 <= PERCENT)||LA27_15==PLUS||LA27_15==QUESTION_MARK||LA27_15==RPAREN||LA27_15==STAR||(LA27_15 >= TILDA && LA27_15 <= TO)||LA27_15==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 15, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - break; - case NOT: - { - int LA27_16 = input.LA(3); - if ( (LA27_16==COLON) && (synpred8_FTS())) { - alt27=1; - } - else if ( (LA27_16==EOF||(LA27_16 >= AMP && LA27_16 <= BAR)||LA27_16==CARAT||LA27_16==COMMA||LA27_16==DATETIME||LA27_16==DECIMAL_INTEGER_LITERAL||LA27_16==DOT||LA27_16==EQUALS||LA27_16==EXCLAMATION||LA27_16==FLOATING_POINT_LITERAL||(LA27_16 >= FTSPHRASE && LA27_16 <= FTSWORD)||LA27_16==ID||(LA27_16 >= LPAREN && LA27_16 <= LT)||LA27_16==MINUS||LA27_16==NOT||(LA27_16 >= OR && LA27_16 <= PERCENT)||LA27_16==PLUS||LA27_16==QUESTION_MARK||LA27_16==RPAREN||LA27_16==STAR||(LA27_16 >= TILDA && LA27_16 <= TO)||LA27_16==URI) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { - input.consume(); - } - NoViableAltException nvae = - new NoViableAltException("", 27, 16, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - - } - break; - default: - if (state.backtracking>0) {state.failed=true; return retval;} - int nvaeMark = input.mark(); - try { - input.consume(); - NoViableAltException nvae = - new NoViableAltException("", 27, 7, input); - throw nvae; - } finally { - input.rewind(nvaeMark); - } - } - } - else if ( (LA27_0==FTSPHRASE) ) { - alt27=2; - } - else if ( (LA27_0==COMMA||LA27_0==DATETIME||LA27_0==DECIMAL_INTEGER_LITERAL||LA27_0==DOT||LA27_0==FLOATING_POINT_LITERAL||(LA27_0 >= FTSPRE && LA27_0 <= FTSWORD)||LA27_0==QUESTION_MARK||LA27_0==STAR) ) { - alt27=3; - } - - else { - if (state.backtracking>0) {state.failed=true; return retval;} - NoViableAltException nvae = - new NoViableAltException("", 27, 0, input); - throw nvae; - } - - switch (alt27) { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:513:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) + int alt30=4; + alt30 = dfa30.predict(input); + switch (alt30) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:514:9: ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReference_in_ftsTermOrPhrase2690); - fieldReference62=fieldReference(); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsTermOrPhrase2690); + fieldReferenceWithPrefix62=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference62.getTree()); + if ( state.backtracking==0 ) stream_fieldReferenceWithPrefix.add(fieldReferenceWithPrefix62.getTree()); COLON63=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTermOrPhrase2692); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON63); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:515:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:515:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) int alt24=2; int LA24_0 = input.LA(1); if ( (LA24_0==FTSPHRASE) ) { @@ -3932,12 +3635,12 @@ public class FTSParser extends Parser { switch (alt24) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:516:17: FTSPHRASE ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:17: FTSPHRASE ( ( slop )=> slop )? { FTSPHRASE64=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2720); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE64); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:516:27: ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:27: ( ( slop )=> slop )? int alt22=2; int LA22_0 = input.LA(1); if ( (LA22_0==TILDA) ) { @@ -3951,7 +3654,7 @@ public class FTSParser extends Parser { } switch (alt22) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:516:28: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:28: ( slop )=> slop { pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2728); slop65=slop(); @@ -3964,7 +3667,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fieldReference, FTSPHRASE, slop + // elements: FTSPHRASE, fieldReferenceWithPrefix, slop // token labels: // rule labels: retval // token list labels: @@ -3975,15 +3678,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 517:17: -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) + // 517:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:517:20: ^( PHRASE FTSPHRASE fieldReference ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:517:20: ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - adaptor.addChild(root_1, stream_fieldReference.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:517:54: ( slop )? + adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:517:64: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4001,14 +3704,14 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:519:17: ftsWord ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:17: ftsWord ( ( fuzzy )=> fuzzy )? { pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2795); ftsWord66=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord66.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:519:25: ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:25: ( ( fuzzy )=> fuzzy )? int alt23=2; int LA23_0 = input.LA(1); if ( (LA23_0==TILDA) ) { @@ -4028,7 +3731,7 @@ public class FTSParser extends Parser { } switch (alt23) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:519:26: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:26: ( fuzzy )=> fuzzy { pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2804); fuzzy67=fuzzy(); @@ -4041,7 +3744,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsWord, fuzzy, fieldReference + // elements: ftsWord, fuzzy, fieldReferenceWithPrefix // token labels: // rule labels: retval // token list labels: @@ -4052,15 +3755,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 520:17: -> ^( TERM ftsWord fieldReference ( fuzzy )? ) + // 520:17: -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:520:20: ^( TERM ftsWord fieldReference ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:520:20: ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - adaptor.addChild(root_1, stream_fieldReference.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:520:50: ( fuzzy )? + adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:520:60: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4083,32 +3786,212 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:523:9: FTSPHRASE ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) { - FTSPHRASE68=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2865); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE68); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsTermOrPhrase2873); + fieldReferenceWithoutPrefix68=fieldReferenceWithoutPrefix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_fieldReferenceWithoutPrefix.add(fieldReferenceWithoutPrefix68.getTree()); + COLON69=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTermOrPhrase2875); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON69); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:523:19: ( ( slop )=> slop )? - int alt25=2; - int LA25_0 = input.LA(1); - if ( (LA25_0==TILDA) ) { - int LA25_1 = input.LA(2); - if ( (LA25_1==DECIMAL_INTEGER_LITERAL) ) { - int LA25_3 = input.LA(3); - if ( (synpred11_FTS()) ) { - alt25=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:524:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + int alt27=2; + int LA27_0 = input.LA(1); + if ( (LA27_0==FTSPHRASE) ) { + alt27=1; + } + else if ( (LA27_0==COMMA||LA27_0==DATETIME||LA27_0==DECIMAL_INTEGER_LITERAL||LA27_0==DOT||LA27_0==FLOATING_POINT_LITERAL||(LA27_0 >= FTSPRE && LA27_0 <= FTSWORD)||LA27_0==ID||LA27_0==NOT||LA27_0==QUESTION_MARK||LA27_0==STAR||LA27_0==TO||LA27_0==URI) ) { + alt27=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 27, 0, input); + throw nvae; + } + + switch (alt27) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:17: FTSPHRASE ( ( slop )=> slop )? + { + FTSPHRASE70=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2903); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE70); + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:27: ( ( slop )=> slop )? + int alt25=2; + int LA25_0 = input.LA(1); + if ( (LA25_0==TILDA) ) { + int LA25_1 = input.LA(2); + if ( (LA25_1==DECIMAL_INTEGER_LITERAL) ) { + int LA25_3 = input.LA(3); + if ( (synpred12_FTS()) ) { + alt25=1; + } + } + } + switch (alt25) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:28: ( slop )=> slop + { + pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2911); + slop71=slop(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_slop.add(slop71.getTree()); + } + break; + + } + + // AST REWRITE + // elements: slop, FTSPHRASE, fieldReferenceWithoutPrefix + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 526:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:526:20: ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); + adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); + adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:526:67: ( slop )? + if ( stream_slop.hasNext() ) { + adaptor.addChild(root_1, stream_slop.nextTree()); + } + stream_slop.reset(); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + break; + case 2 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:17: ftsWord ( ( fuzzy )=> fuzzy )? + { + pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2978); + ftsWord72=ftsWord(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord72.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:25: ( ( fuzzy )=> fuzzy )? + int alt26=2; + int LA26_0 = input.LA(1); + if ( (LA26_0==TILDA) ) { + int LA26_1 = input.LA(2); + if ( (LA26_1==DECIMAL_INTEGER_LITERAL) ) { + int LA26_3 = input.LA(3); + if ( (synpred13_FTS()) ) { + alt26=1; + } + } + else if ( (LA26_1==FLOATING_POINT_LITERAL) ) { + int LA26_4 = input.LA(3); + if ( (synpred13_FTS()) ) { + alt26=1; + } + } + } + switch (alt26) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:26: ( fuzzy )=> fuzzy + { + pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2987); + fuzzy73=fuzzy(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy73.getTree()); + } + break; + + } + + // AST REWRITE + // elements: fuzzy, ftsWord, fieldReferenceWithoutPrefix + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 529:17: -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:529:20: ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); + adaptor.addChild(root_1, stream_ftsWord.nextTree()); + adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:529:63: ( fuzzy )? + if ( stream_fuzzy.hasNext() ) { + adaptor.addChild(root_1, stream_fuzzy.nextTree()); + } + stream_fuzzy.reset(); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + break; + + } + + } + break; + case 3 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:9: FTSPHRASE ( ( slop )=> slop )? + { + FTSPHRASE74=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase3048); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE74); + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:19: ( ( slop )=> slop )? + int alt28=2; + int LA28_0 = input.LA(1); + if ( (LA28_0==TILDA) ) { + int LA28_1 = input.LA(2); + if ( (LA28_1==DECIMAL_INTEGER_LITERAL) ) { + int LA28_3 = input.LA(3); + if ( (synpred14_FTS()) ) { + alt28=1; } } } - switch (alt25) { + switch (alt28) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:523:20: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:20: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2873); - slop69=slop(); + pushFollow(FOLLOW_slop_in_ftsTermOrPhrase3056); + slop75=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop69.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop75.getTree()); } break; @@ -4126,14 +4009,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 524:17: -> ^( PHRASE FTSPHRASE ( slop )? ) + // 533:17: -> ^( PHRASE FTSPHRASE ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:524:20: ^( PHRASE FTSPHRASE ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:533:20: ^( PHRASE FTSPHRASE ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:524:39: ( slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:533:39: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4150,41 +4033,41 @@ public class FTSParser extends Parser { } break; - case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:526:9: ftsWord ( ( fuzzy )=> fuzzy )? + case 4 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:9: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2923); - ftsWord70=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase3106); + ftsWord76=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord70.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:526:17: ( ( fuzzy )=> fuzzy )? - int alt26=2; - int LA26_0 = input.LA(1); - if ( (LA26_0==TILDA) ) { - int LA26_1 = input.LA(2); - if ( (LA26_1==DECIMAL_INTEGER_LITERAL) ) { - int LA26_3 = input.LA(3); - if ( (synpred12_FTS()) ) { - alt26=1; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord76.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:17: ( ( fuzzy )=> fuzzy )? + int alt29=2; + int LA29_0 = input.LA(1); + if ( (LA29_0==TILDA) ) { + int LA29_1 = input.LA(2); + if ( (LA29_1==DECIMAL_INTEGER_LITERAL) ) { + int LA29_3 = input.LA(3); + if ( (synpred15_FTS()) ) { + alt29=1; } } - else if ( (LA26_1==FLOATING_POINT_LITERAL) ) { - int LA26_4 = input.LA(3); - if ( (synpred12_FTS()) ) { - alt26=1; + else if ( (LA29_1==FLOATING_POINT_LITERAL) ) { + int LA29_4 = input.LA(3); + if ( (synpred15_FTS()) ) { + alt29=1; } } } - switch (alt26) { + switch (alt29) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:526:18: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:18: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2932); - fuzzy71=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase3115); + fuzzy77=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy71.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy77.getTree()); } break; @@ -4202,14 +4085,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 527:17: -> ^( TERM ftsWord ( fuzzy )? ) + // 536:17: -> ^( TERM ftsWord ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:527:20: ^( TERM ftsWord ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:536:20: ^( TERM ftsWord ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:527:35: ( fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:536:35: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4257,111 +4140,120 @@ public class FTSParser extends Parser { // $ANTLR start "ftsExactTermOrPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:531:1: ftsExactTermOrPhrase : EQUALS ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:540:1: ftsExactTermOrPhrase : EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ; public final FTSParser.ftsExactTermOrPhrase_return ftsExactTermOrPhrase() throws RecognitionException { FTSParser.ftsExactTermOrPhrase_return retval = new FTSParser.ftsExactTermOrPhrase_return(); retval.start = input.LT(1); Object root_0 = null; - Token EQUALS72=null; - Token COLON74=null; - Token FTSPHRASE75=null; - Token FTSPHRASE79=null; - ParserRuleReturnScope fieldReference73 =null; - ParserRuleReturnScope slop76 =null; - ParserRuleReturnScope ftsWord77 =null; - ParserRuleReturnScope fuzzy78 =null; - ParserRuleReturnScope slop80 =null; - ParserRuleReturnScope ftsWord81 =null; - ParserRuleReturnScope fuzzy82 =null; + Token EQUALS78=null; + Token COLON80=null; + Token FTSPHRASE81=null; + Token COLON86=null; + Token FTSPHRASE87=null; + Token FTSPHRASE91=null; + ParserRuleReturnScope fieldReferenceWithPrefix79 =null; + ParserRuleReturnScope slop82 =null; + ParserRuleReturnScope ftsWord83 =null; + ParserRuleReturnScope fuzzy84 =null; + ParserRuleReturnScope fieldReferenceWithoutPrefix85 =null; + ParserRuleReturnScope slop88 =null; + ParserRuleReturnScope ftsWord89 =null; + ParserRuleReturnScope fuzzy90 =null; + ParserRuleReturnScope slop92 =null; + ParserRuleReturnScope ftsWord93 =null; + ParserRuleReturnScope fuzzy94 =null; - Object EQUALS72_tree=null; - Object COLON74_tree=null; - Object FTSPHRASE75_tree=null; - Object FTSPHRASE79_tree=null; + Object EQUALS78_tree=null; + Object COLON80_tree=null; + Object FTSPHRASE81_tree=null; + Object COLON86_tree=null; + Object FTSPHRASE87_tree=null; + Object FTSPHRASE91_tree=null; RewriteRuleTokenStream stream_FTSPHRASE=new RewriteRuleTokenStream(adaptor,"token FTSPHRASE"); RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS"); RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); + RewriteRuleSubtreeStream stream_fieldReferenceWithoutPrefix=new RewriteRuleSubtreeStream(adaptor,"rule fieldReferenceWithoutPrefix"); RewriteRuleSubtreeStream stream_ftsWord=new RewriteRuleSubtreeStream(adaptor,"rule ftsWord"); - RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); RewriteRuleSubtreeStream stream_fuzzy=new RewriteRuleSubtreeStream(adaptor,"rule fuzzy"); + RewriteRuleSubtreeStream stream_fieldReferenceWithPrefix=new RewriteRuleSubtreeStream(adaptor,"rule fieldReferenceWithPrefix"); RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:532:9: ( EQUALS ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:533:9: EQUALS ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:541:9: ( EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:542:9: EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) { - EQUALS72=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsExactTermOrPhrase3011); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS72); + EQUALS78=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsExactTermOrPhrase3194); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS78); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:534:9: ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) - int alt33=3; - alt33 = dfa33.predict(input); - switch (alt33) { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:543:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) + int alt39=4; + alt39 = dfa39.predict(input); + switch (alt39) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:535:9: ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReference_in_ftsExactTermOrPhrase3039); - fieldReference73=fieldReference(); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsExactTermOrPhrase3222); + fieldReferenceWithPrefix79=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference73.getTree()); - COLON74=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3041); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON74); + if ( state.backtracking==0 ) stream_fieldReferenceWithPrefix.add(fieldReferenceWithPrefix79.getTree()); + COLON80=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3224); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON80); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:536:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) - int alt30=2; - int LA30_0 = input.LA(1); - if ( (LA30_0==FTSPHRASE) ) { - alt30=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:545:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + int alt33=2; + int LA33_0 = input.LA(1); + if ( (LA33_0==FTSPHRASE) ) { + alt33=1; } - else if ( (LA30_0==COMMA||LA30_0==DATETIME||LA30_0==DECIMAL_INTEGER_LITERAL||LA30_0==DOT||LA30_0==FLOATING_POINT_LITERAL||(LA30_0 >= FTSPRE && LA30_0 <= FTSWORD)||LA30_0==ID||LA30_0==NOT||LA30_0==QUESTION_MARK||LA30_0==STAR||LA30_0==TO||LA30_0==URI) ) { - alt30=2; + else if ( (LA33_0==COMMA||LA33_0==DATETIME||LA33_0==DECIMAL_INTEGER_LITERAL||LA33_0==DOT||LA33_0==FLOATING_POINT_LITERAL||(LA33_0 >= FTSPRE && LA33_0 <= FTSWORD)||LA33_0==ID||LA33_0==NOT||LA33_0==QUESTION_MARK||LA33_0==STAR||LA33_0==TO||LA33_0==URI) ) { + alt33=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 30, 0, input); + new NoViableAltException("", 33, 0, input); throw nvae; } - switch (alt30) { + switch (alt33) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:537:17: FTSPHRASE ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE75=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3069); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE75); + FTSPHRASE81=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3252); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE81); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:537:27: ( ( slop )=> slop )? - int alt28=2; - int LA28_0 = input.LA(1); - if ( (LA28_0==TILDA) ) { - int LA28_1 = input.LA(2); - if ( (LA28_1==DECIMAL_INTEGER_LITERAL) ) { - int LA28_3 = input.LA(3); - if ( (synpred14_FTS()) ) { - alt28=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:27: ( ( slop )=> slop )? + int alt31=2; + int LA31_0 = input.LA(1); + if ( (LA31_0==TILDA) ) { + int LA31_1 = input.LA(2); + if ( (LA31_1==DECIMAL_INTEGER_LITERAL) ) { + int LA31_3 = input.LA(3); + if ( (synpred17_FTS()) ) { + alt31=1; } } } - switch (alt28) { + switch (alt31) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:537:28: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3077); - slop76=slop(); + pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3260); + slop82=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop76.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop82.getTree()); } break; } // AST REWRITE - // elements: FTSPHRASE, fieldReference, slop + // elements: fieldReferenceWithPrefix, FTSPHRASE, slop // token labels: // rule labels: retval // token list labels: @@ -4372,15 +4264,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 538:17: -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) + // 547:17: -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:538:20: ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:547:20: ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_PHRASE, "EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - adaptor.addChild(root_1, stream_fieldReference.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:538:60: ( slop )? + adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:547:70: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4398,47 +4290,47 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:540:17: ftsWord ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3144); - ftsWord77=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3327); + ftsWord83=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord77.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:540:25: ( ( fuzzy )=> fuzzy )? - int alt29=2; - int LA29_0 = input.LA(1); - if ( (LA29_0==TILDA) ) { - int LA29_1 = input.LA(2); - if ( (LA29_1==DECIMAL_INTEGER_LITERAL) ) { - int LA29_3 = input.LA(3); - if ( (synpred15_FTS()) ) { - alt29=1; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord83.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:25: ( ( fuzzy )=> fuzzy )? + int alt32=2; + int LA32_0 = input.LA(1); + if ( (LA32_0==TILDA) ) { + int LA32_1 = input.LA(2); + if ( (LA32_1==DECIMAL_INTEGER_LITERAL) ) { + int LA32_3 = input.LA(3); + if ( (synpred18_FTS()) ) { + alt32=1; } } - else if ( (LA29_1==FLOATING_POINT_LITERAL) ) { - int LA29_4 = input.LA(3); - if ( (synpred15_FTS()) ) { - alt29=1; + else if ( (LA32_1==FLOATING_POINT_LITERAL) ) { + int LA32_4 = input.LA(3); + if ( (synpred18_FTS()) ) { + alt32=1; } } } - switch (alt29) { + switch (alt32) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:540:26: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3153); - fuzzy78=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3336); + fuzzy84=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy78.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy84.getTree()); } break; } // AST REWRITE - // elements: fieldReference, fuzzy, ftsWord + // elements: fuzzy, ftsWord, fieldReferenceWithPrefix // token labels: // rule labels: retval // token list labels: @@ -4449,15 +4341,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 541:17: -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) + // 550:17: -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:541:20: ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:550:20: ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_TERM, "EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - adaptor.addChild(root_1, stream_fieldReference.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:541:56: ( fuzzy )? + adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:550:66: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4480,32 +4372,212 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:544:9: FTSPHRASE ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) { - FTSPHRASE79=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3214); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE79); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsExactTermOrPhrase3405); + fieldReferenceWithoutPrefix85=fieldReferenceWithoutPrefix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_fieldReferenceWithoutPrefix.add(fieldReferenceWithoutPrefix85.getTree()); + COLON86=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3407); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON86); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:544:19: ( ( slop )=> slop )? - int alt31=2; - int LA31_0 = input.LA(1); - if ( (LA31_0==TILDA) ) { - int LA31_1 = input.LA(2); - if ( (LA31_1==DECIMAL_INTEGER_LITERAL) ) { - int LA31_3 = input.LA(3); - if ( (synpred16_FTS()) ) { - alt31=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:554:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + int alt36=2; + int LA36_0 = input.LA(1); + if ( (LA36_0==FTSPHRASE) ) { + alt36=1; + } + else if ( (LA36_0==COMMA||LA36_0==DATETIME||LA36_0==DECIMAL_INTEGER_LITERAL||LA36_0==DOT||LA36_0==FLOATING_POINT_LITERAL||(LA36_0 >= FTSPRE && LA36_0 <= FTSWORD)||LA36_0==ID||LA36_0==NOT||LA36_0==QUESTION_MARK||LA36_0==STAR||LA36_0==TO||LA36_0==URI) ) { + alt36=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 36, 0, input); + throw nvae; + } + + switch (alt36) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:17: FTSPHRASE ( ( slop )=> slop )? + { + FTSPHRASE87=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3435); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE87); + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:27: ( ( slop )=> slop )? + int alt34=2; + int LA34_0 = input.LA(1); + if ( (LA34_0==TILDA) ) { + int LA34_1 = input.LA(2); + if ( (LA34_1==DECIMAL_INTEGER_LITERAL) ) { + int LA34_3 = input.LA(3); + if ( (synpred20_FTS()) ) { + alt34=1; + } + } + } + switch (alt34) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:28: ( slop )=> slop + { + pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3443); + slop88=slop(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_slop.add(slop88.getTree()); + } + break; + + } + + // AST REWRITE + // elements: FTSPHRASE, slop, fieldReferenceWithoutPrefix + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 556:17: -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:556:20: ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_PHRASE, "EXACT_PHRASE"), root_1); + adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); + adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:556:73: ( slop )? + if ( stream_slop.hasNext() ) { + adaptor.addChild(root_1, stream_slop.nextTree()); + } + stream_slop.reset(); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + break; + case 2 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:17: ftsWord ( ( fuzzy )=> fuzzy )? + { + pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3510); + ftsWord89=ftsWord(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord89.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:25: ( ( fuzzy )=> fuzzy )? + int alt35=2; + int LA35_0 = input.LA(1); + if ( (LA35_0==TILDA) ) { + int LA35_1 = input.LA(2); + if ( (LA35_1==DECIMAL_INTEGER_LITERAL) ) { + int LA35_3 = input.LA(3); + if ( (synpred21_FTS()) ) { + alt35=1; + } + } + else if ( (LA35_1==FLOATING_POINT_LITERAL) ) { + int LA35_4 = input.LA(3); + if ( (synpred21_FTS()) ) { + alt35=1; + } + } + } + switch (alt35) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:26: ( fuzzy )=> fuzzy + { + pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3519); + fuzzy90=fuzzy(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy90.getTree()); + } + break; + + } + + // AST REWRITE + // elements: fieldReferenceWithoutPrefix, ftsWord, fuzzy + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 559:17: -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:559:20: ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_TERM, "EXACT_TERM"), root_1); + adaptor.addChild(root_1, stream_ftsWord.nextTree()); + adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:559:69: ( fuzzy )? + if ( stream_fuzzy.hasNext() ) { + adaptor.addChild(root_1, stream_fuzzy.nextTree()); + } + stream_fuzzy.reset(); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + break; + + } + + } + break; + case 3 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:9: FTSPHRASE ( ( slop )=> slop )? + { + FTSPHRASE91=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3580); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE91); + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:19: ( ( slop )=> slop )? + int alt37=2; + int LA37_0 = input.LA(1); + if ( (LA37_0==TILDA) ) { + int LA37_1 = input.LA(2); + if ( (LA37_1==DECIMAL_INTEGER_LITERAL) ) { + int LA37_3 = input.LA(3); + if ( (synpred22_FTS()) ) { + alt37=1; } } } - switch (alt31) { + switch (alt37) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:544:20: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:20: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3222); - slop80=slop(); + pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3588); + slop92=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop80.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop92.getTree()); } break; @@ -4523,14 +4595,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 545:17: -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) + // 563:17: -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:545:20: ^( EXACT_PHRASE FTSPHRASE ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:563:20: ^( EXACT_PHRASE FTSPHRASE ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_PHRASE, "EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:545:45: ( slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:563:45: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4547,41 +4619,41 @@ public class FTSParser extends Parser { } break; - case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:547:9: ftsWord ( ( fuzzy )=> fuzzy )? + case 4 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:9: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3272); - ftsWord81=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3638); + ftsWord93=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord81.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:547:17: ( ( fuzzy )=> fuzzy )? - int alt32=2; - int LA32_0 = input.LA(1); - if ( (LA32_0==TILDA) ) { - int LA32_1 = input.LA(2); - if ( (LA32_1==DECIMAL_INTEGER_LITERAL) ) { - int LA32_3 = input.LA(3); - if ( (synpred17_FTS()) ) { - alt32=1; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord93.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:17: ( ( fuzzy )=> fuzzy )? + int alt38=2; + int LA38_0 = input.LA(1); + if ( (LA38_0==TILDA) ) { + int LA38_1 = input.LA(2); + if ( (LA38_1==DECIMAL_INTEGER_LITERAL) ) { + int LA38_3 = input.LA(3); + if ( (synpred23_FTS()) ) { + alt38=1; } } - else if ( (LA32_1==FLOATING_POINT_LITERAL) ) { - int LA32_4 = input.LA(3); - if ( (synpred17_FTS()) ) { - alt32=1; + else if ( (LA38_1==FLOATING_POINT_LITERAL) ) { + int LA38_4 = input.LA(3); + if ( (synpred23_FTS()) ) { + alt38=1; } } } - switch (alt32) { + switch (alt38) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:547:18: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:18: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3281); - fuzzy82=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3647); + fuzzy94=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy82.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy94.getTree()); } break; @@ -4599,14 +4671,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 548:17: -> ^( EXACT_TERM ftsWord ( fuzzy )? ) + // 566:17: -> ^( EXACT_TERM ftsWord ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:548:20: ^( EXACT_TERM ftsWord ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:566:20: ^( EXACT_TERM ftsWord ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_TERM, "EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:548:41: ( fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:566:41: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4657,111 +4729,120 @@ public class FTSParser extends Parser { // $ANTLR start "ftsTokenisedTermOrPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:553:1: ftsTokenisedTermOrPhrase : TILDA ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:571:1: ftsTokenisedTermOrPhrase : TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ; public final FTSParser.ftsTokenisedTermOrPhrase_return ftsTokenisedTermOrPhrase() throws RecognitionException { FTSParser.ftsTokenisedTermOrPhrase_return retval = new FTSParser.ftsTokenisedTermOrPhrase_return(); retval.start = input.LT(1); Object root_0 = null; - Token TILDA83=null; - Token COLON85=null; - Token FTSPHRASE86=null; - Token FTSPHRASE90=null; - ParserRuleReturnScope fieldReference84 =null; - ParserRuleReturnScope slop87 =null; - ParserRuleReturnScope ftsWord88 =null; - ParserRuleReturnScope fuzzy89 =null; - ParserRuleReturnScope slop91 =null; - ParserRuleReturnScope ftsWord92 =null; - ParserRuleReturnScope fuzzy93 =null; + Token TILDA95=null; + Token COLON97=null; + Token FTSPHRASE98=null; + Token COLON103=null; + Token FTSPHRASE104=null; + Token FTSPHRASE108=null; + ParserRuleReturnScope fieldReferenceWithPrefix96 =null; + ParserRuleReturnScope slop99 =null; + ParserRuleReturnScope ftsWord100 =null; + ParserRuleReturnScope fuzzy101 =null; + ParserRuleReturnScope fieldReferenceWithoutPrefix102 =null; + ParserRuleReturnScope slop105 =null; + ParserRuleReturnScope ftsWord106 =null; + ParserRuleReturnScope fuzzy107 =null; + ParserRuleReturnScope slop109 =null; + ParserRuleReturnScope ftsWord110 =null; + ParserRuleReturnScope fuzzy111 =null; - Object TILDA83_tree=null; - Object COLON85_tree=null; - Object FTSPHRASE86_tree=null; - Object FTSPHRASE90_tree=null; + Object TILDA95_tree=null; + Object COLON97_tree=null; + Object FTSPHRASE98_tree=null; + Object COLON103_tree=null; + Object FTSPHRASE104_tree=null; + Object FTSPHRASE108_tree=null; RewriteRuleTokenStream stream_FTSPHRASE=new RewriteRuleTokenStream(adaptor,"token FTSPHRASE"); RewriteRuleTokenStream stream_TILDA=new RewriteRuleTokenStream(adaptor,"token TILDA"); RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); + RewriteRuleSubtreeStream stream_fieldReferenceWithoutPrefix=new RewriteRuleSubtreeStream(adaptor,"rule fieldReferenceWithoutPrefix"); RewriteRuleSubtreeStream stream_ftsWord=new RewriteRuleSubtreeStream(adaptor,"rule ftsWord"); - RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); RewriteRuleSubtreeStream stream_fuzzy=new RewriteRuleSubtreeStream(adaptor,"rule fuzzy"); + RewriteRuleSubtreeStream stream_fieldReferenceWithPrefix=new RewriteRuleSubtreeStream(adaptor,"rule fieldReferenceWithPrefix"); RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:554:9: ( TILDA ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:555:9: TILDA ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:572:9: ( TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:573:9: TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) { - TILDA83=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3362); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TILDA.add(TILDA83); + TILDA95=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3728); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TILDA.add(TILDA95); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:556:9: ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) - int alt39=3; - alt39 = dfa39.predict(input); - switch (alt39) { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:574:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) + int alt48=4; + alt48 = dfa48.predict(input); + switch (alt48) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:557:9: ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReference_in_ftsTokenisedTermOrPhrase3390); - fieldReference84=fieldReference(); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsTokenisedTermOrPhrase3756); + fieldReferenceWithPrefix96=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference84.getTree()); - COLON85=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3392); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON85); + if ( state.backtracking==0 ) stream_fieldReferenceWithPrefix.add(fieldReferenceWithPrefix96.getTree()); + COLON97=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3758); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON97); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:558:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) - int alt36=2; - int LA36_0 = input.LA(1); - if ( (LA36_0==FTSPHRASE) ) { - alt36=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:576:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + int alt42=2; + int LA42_0 = input.LA(1); + if ( (LA42_0==FTSPHRASE) ) { + alt42=1; } - else if ( (LA36_0==COMMA||LA36_0==DATETIME||LA36_0==DECIMAL_INTEGER_LITERAL||LA36_0==DOT||LA36_0==FLOATING_POINT_LITERAL||(LA36_0 >= FTSPRE && LA36_0 <= FTSWORD)||LA36_0==ID||LA36_0==NOT||LA36_0==QUESTION_MARK||LA36_0==STAR||LA36_0==TO||LA36_0==URI) ) { - alt36=2; + else if ( (LA42_0==COMMA||LA42_0==DATETIME||LA42_0==DECIMAL_INTEGER_LITERAL||LA42_0==DOT||LA42_0==FLOATING_POINT_LITERAL||(LA42_0 >= FTSPRE && LA42_0 <= FTSWORD)||LA42_0==ID||LA42_0==NOT||LA42_0==QUESTION_MARK||LA42_0==STAR||LA42_0==TO||LA42_0==URI) ) { + alt42=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 36, 0, input); + new NoViableAltException("", 42, 0, input); throw nvae; } - switch (alt36) { + switch (alt42) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:559:17: FTSPHRASE ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE86=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3420); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE86); + FTSPHRASE98=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3786); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE98); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:559:27: ( ( slop )=> slop )? - int alt34=2; - int LA34_0 = input.LA(1); - if ( (LA34_0==TILDA) ) { - int LA34_1 = input.LA(2); - if ( (LA34_1==DECIMAL_INTEGER_LITERAL) ) { - int LA34_3 = input.LA(3); - if ( (synpred19_FTS()) ) { - alt34=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:27: ( ( slop )=> slop )? + int alt40=2; + int LA40_0 = input.LA(1); + if ( (LA40_0==TILDA) ) { + int LA40_1 = input.LA(2); + if ( (LA40_1==DECIMAL_INTEGER_LITERAL) ) { + int LA40_3 = input.LA(3); + if ( (synpred25_FTS()) ) { + alt40=1; } } } - switch (alt34) { + switch (alt40) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:559:28: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3428); - slop87=slop(); + pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3794); + slop99=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop87.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop99.getTree()); } break; } // AST REWRITE - // elements: FTSPHRASE, fieldReference, slop + // elements: FTSPHRASE, fieldReferenceWithPrefix, slop // token labels: // rule labels: retval // token list labels: @@ -4772,15 +4853,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 560:17: -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) + // 578:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:560:20: ^( PHRASE FTSPHRASE fieldReference ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:578:20: ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - adaptor.addChild(root_1, stream_fieldReference.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:560:54: ( slop )? + adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:578:64: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4798,47 +4879,47 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:562:17: ftsWord ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3495); - ftsWord88=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3861); + ftsWord100=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord88.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:562:25: ( ( fuzzy )=> fuzzy )? - int alt35=2; - int LA35_0 = input.LA(1); - if ( (LA35_0==TILDA) ) { - int LA35_1 = input.LA(2); - if ( (LA35_1==DECIMAL_INTEGER_LITERAL) ) { - int LA35_3 = input.LA(3); - if ( (synpred20_FTS()) ) { - alt35=1; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord100.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:25: ( ( fuzzy )=> fuzzy )? + int alt41=2; + int LA41_0 = input.LA(1); + if ( (LA41_0==TILDA) ) { + int LA41_1 = input.LA(2); + if ( (LA41_1==DECIMAL_INTEGER_LITERAL) ) { + int LA41_3 = input.LA(3); + if ( (synpred26_FTS()) ) { + alt41=1; } } - else if ( (LA35_1==FLOATING_POINT_LITERAL) ) { - int LA35_4 = input.LA(3); - if ( (synpred20_FTS()) ) { - alt35=1; + else if ( (LA41_1==FLOATING_POINT_LITERAL) ) { + int LA41_4 = input.LA(3); + if ( (synpred26_FTS()) ) { + alt41=1; } } } - switch (alt35) { + switch (alt41) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:562:26: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3504); - fuzzy89=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3870); + fuzzy101=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy89.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy101.getTree()); } break; } // AST REWRITE - // elements: fuzzy, ftsWord, fieldReference + // elements: ftsWord, fieldReferenceWithPrefix, fuzzy // token labels: // rule labels: retval // token list labels: @@ -4849,15 +4930,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 563:17: -> ^( TERM ftsWord fieldReference ( fuzzy )? ) + // 581:17: -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:563:20: ^( TERM ftsWord fieldReference ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:581:20: ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - adaptor.addChild(root_1, stream_fieldReference.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:563:50: ( fuzzy )? + adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:581:60: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4880,32 +4961,212 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:566:9: FTSPHRASE ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) { - FTSPHRASE90=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3565); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE90); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsTokenisedTermOrPhrase3939); + fieldReferenceWithoutPrefix102=fieldReferenceWithoutPrefix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_fieldReferenceWithoutPrefix.add(fieldReferenceWithoutPrefix102.getTree()); + COLON103=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3941); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON103); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:566:19: ( ( slop )=> slop )? - int alt37=2; - int LA37_0 = input.LA(1); - if ( (LA37_0==TILDA) ) { - int LA37_1 = input.LA(2); - if ( (LA37_1==DECIMAL_INTEGER_LITERAL) ) { - int LA37_3 = input.LA(3); - if ( (synpred21_FTS()) ) { - alt37=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:585:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + int alt45=2; + int LA45_0 = input.LA(1); + if ( (LA45_0==FTSPHRASE) ) { + alt45=1; + } + else if ( (LA45_0==COMMA||LA45_0==DATETIME||LA45_0==DECIMAL_INTEGER_LITERAL||LA45_0==DOT||LA45_0==FLOATING_POINT_LITERAL||(LA45_0 >= FTSPRE && LA45_0 <= FTSWORD)||LA45_0==ID||LA45_0==NOT||LA45_0==QUESTION_MARK||LA45_0==STAR||LA45_0==TO||LA45_0==URI) ) { + alt45=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 45, 0, input); + throw nvae; + } + + switch (alt45) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:17: FTSPHRASE ( ( slop )=> slop )? + { + FTSPHRASE104=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3969); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE104); + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:27: ( ( slop )=> slop )? + int alt43=2; + int LA43_0 = input.LA(1); + if ( (LA43_0==TILDA) ) { + int LA43_1 = input.LA(2); + if ( (LA43_1==DECIMAL_INTEGER_LITERAL) ) { + int LA43_3 = input.LA(3); + if ( (synpred28_FTS()) ) { + alt43=1; + } + } + } + switch (alt43) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:28: ( slop )=> slop + { + pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3977); + slop105=slop(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_slop.add(slop105.getTree()); + } + break; + + } + + // AST REWRITE + // elements: fieldReferenceWithoutPrefix, FTSPHRASE, slop + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 587:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:587:20: ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); + adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); + adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:587:67: ( slop )? + if ( stream_slop.hasNext() ) { + adaptor.addChild(root_1, stream_slop.nextTree()); + } + stream_slop.reset(); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + break; + case 2 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:17: ftsWord ( ( fuzzy )=> fuzzy )? + { + pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4044); + ftsWord106=ftsWord(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord106.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:25: ( ( fuzzy )=> fuzzy )? + int alt44=2; + int LA44_0 = input.LA(1); + if ( (LA44_0==TILDA) ) { + int LA44_1 = input.LA(2); + if ( (LA44_1==DECIMAL_INTEGER_LITERAL) ) { + int LA44_3 = input.LA(3); + if ( (synpred29_FTS()) ) { + alt44=1; + } + } + else if ( (LA44_1==FLOATING_POINT_LITERAL) ) { + int LA44_4 = input.LA(3); + if ( (synpred29_FTS()) ) { + alt44=1; + } + } + } + switch (alt44) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:26: ( fuzzy )=> fuzzy + { + pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4053); + fuzzy107=fuzzy(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy107.getTree()); + } + break; + + } + + // AST REWRITE + // elements: fuzzy, fieldReferenceWithoutPrefix, ftsWord + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 590:17: -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:590:20: ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); + adaptor.addChild(root_1, stream_ftsWord.nextTree()); + adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:590:63: ( fuzzy )? + if ( stream_fuzzy.hasNext() ) { + adaptor.addChild(root_1, stream_fuzzy.nextTree()); + } + stream_fuzzy.reset(); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + break; + + } + + } + break; + case 3 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:9: FTSPHRASE ( ( slop )=> slop )? + { + FTSPHRASE108=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase4114); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE108); + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:19: ( ( slop )=> slop )? + int alt46=2; + int LA46_0 = input.LA(1); + if ( (LA46_0==TILDA) ) { + int LA46_1 = input.LA(2); + if ( (LA46_1==DECIMAL_INTEGER_LITERAL) ) { + int LA46_3 = input.LA(3); + if ( (synpred30_FTS()) ) { + alt46=1; } } } - switch (alt37) { + switch (alt46) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:566:20: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:20: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3573); - slop91=slop(); + pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase4122); + slop109=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop91.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop109.getTree()); } break; @@ -4923,14 +5184,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 567:17: -> ^( PHRASE FTSPHRASE ( slop )? ) + // 594:17: -> ^( PHRASE FTSPHRASE ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:567:20: ^( PHRASE FTSPHRASE ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:594:20: ^( PHRASE FTSPHRASE ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:567:39: ( slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:594:39: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4947,48 +5208,48 @@ public class FTSParser extends Parser { } break; - case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:569:9: ftsWord ( ( fuzzy )=> fuzzy )? + case 4 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:9: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3623); - ftsWord92=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4172); + ftsWord110=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord92.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:569:17: ( ( fuzzy )=> fuzzy )? - int alt38=2; - int LA38_0 = input.LA(1); - if ( (LA38_0==TILDA) ) { - int LA38_1 = input.LA(2); - if ( (LA38_1==DECIMAL_INTEGER_LITERAL) ) { - int LA38_3 = input.LA(3); - if ( (synpred22_FTS()) ) { - alt38=1; + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord110.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:17: ( ( fuzzy )=> fuzzy )? + int alt47=2; + int LA47_0 = input.LA(1); + if ( (LA47_0==TILDA) ) { + int LA47_1 = input.LA(2); + if ( (LA47_1==DECIMAL_INTEGER_LITERAL) ) { + int LA47_3 = input.LA(3); + if ( (synpred31_FTS()) ) { + alt47=1; } } - else if ( (LA38_1==FLOATING_POINT_LITERAL) ) { - int LA38_4 = input.LA(3); - if ( (synpred22_FTS()) ) { - alt38=1; + else if ( (LA47_1==FLOATING_POINT_LITERAL) ) { + int LA47_4 = input.LA(3); + if ( (synpred31_FTS()) ) { + alt47=1; } } } - switch (alt38) { + switch (alt47) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:569:18: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:18: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3632); - fuzzy93=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4181); + fuzzy111=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy93.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy111.getTree()); } break; } // AST REWRITE - // elements: ftsWord, fuzzy + // elements: fuzzy, ftsWord // token labels: // rule labels: retval // token list labels: @@ -4999,14 +5260,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 570:17: -> ^( TERM ftsWord ( fuzzy )? ) + // 597:17: -> ^( TERM ftsWord ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:570:20: ^( TERM ftsWord ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:597:20: ^( TERM ftsWord ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:570:35: ( fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:597:35: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -5057,26 +5318,26 @@ public class FTSParser extends Parser { // $ANTLR start "cmisTerm" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:575:1: cmisTerm : ftsWord -> ftsWord ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:602:1: cmisTerm : ftsWord -> ftsWord ; public final FTSParser.cmisTerm_return cmisTerm() throws RecognitionException { FTSParser.cmisTerm_return retval = new FTSParser.cmisTerm_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope ftsWord94 =null; + ParserRuleReturnScope ftsWord112 =null; RewriteRuleSubtreeStream stream_ftsWord=new RewriteRuleSubtreeStream(adaptor,"rule ftsWord"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:576:9: ( ftsWord -> ftsWord ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:577:9: ftsWord + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:603:9: ( ftsWord -> ftsWord ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:604:9: ftsWord { - pushFollow(FOLLOW_ftsWord_in_cmisTerm3705); - ftsWord94=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_cmisTerm4254); + ftsWord112=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord94.getTree()); + if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord112.getTree()); // AST REWRITE // elements: ftsWord // token labels: @@ -5089,7 +5350,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 578:17: -> ftsWord + // 605:17: -> ftsWord { adaptor.addChild(root_0, stream_ftsWord.nextTree()); } @@ -5129,24 +5390,24 @@ public class FTSParser extends Parser { // $ANTLR start "cmisPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:582:1: cmisPhrase : FTSPHRASE -> FTSPHRASE ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:609:1: cmisPhrase : FTSPHRASE -> FTSPHRASE ; public final FTSParser.cmisPhrase_return cmisPhrase() throws RecognitionException { FTSParser.cmisPhrase_return retval = new FTSParser.cmisPhrase_return(); retval.start = input.LT(1); Object root_0 = null; - Token FTSPHRASE95=null; + Token FTSPHRASE113=null; - Object FTSPHRASE95_tree=null; + Object FTSPHRASE113_tree=null; RewriteRuleTokenStream stream_FTSPHRASE=new RewriteRuleTokenStream(adaptor,"token FTSPHRASE"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:583:9: ( FTSPHRASE -> FTSPHRASE ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:584:9: FTSPHRASE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:610:9: ( FTSPHRASE -> FTSPHRASE ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:611:9: FTSPHRASE { - FTSPHRASE95=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_cmisPhrase3759); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE95); + FTSPHRASE113=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_cmisPhrase4308); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE113); // AST REWRITE // elements: FTSPHRASE @@ -5160,7 +5421,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 585:17: -> FTSPHRASE + // 612:17: -> FTSPHRASE { adaptor.addChild(root_0, stream_FTSPHRASE.nextNode()); } @@ -5200,28 +5461,28 @@ public class FTSParser extends Parser { // $ANTLR start "ftsRange" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:589:1: ftsRange : ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:616:1: ftsRange : ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ; public final FTSParser.ftsRange_return ftsRange() throws RecognitionException { FTSParser.ftsRange_return retval = new FTSParser.ftsRange_return(); retval.start = input.LT(1); Object root_0 = null; - Token COLON97=null; - ParserRuleReturnScope fieldReference96 =null; - ParserRuleReturnScope ftsFieldGroupRange98 =null; + Token COLON115=null; + ParserRuleReturnScope fieldReference114 =null; + ParserRuleReturnScope ftsFieldGroupRange116 =null; - Object COLON97_tree=null; + Object COLON115_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleSubtreeStream stream_ftsFieldGroupRange=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupRange"); RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:590:9: ( ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:591:9: ( fieldReference COLON )? ftsFieldGroupRange + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:617:9: ( ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:9: ( fieldReference COLON )? ftsFieldGroupRange { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:591:9: ( fieldReference COLON )? - int alt40=2; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:9: ( fieldReference COLON )? + int alt49=2; switch ( input.LA(1) ) { case AND: case AT: @@ -5229,14 +5490,14 @@ public class FTSParser extends Parser { case OR: case TO: { - alt40=1; + alt49=1; } break; case ID: { - int LA40_2 = input.LA(2); - if ( (LA40_2==COLON||LA40_2==DOT) ) { - alt40=1; + int LA49_2 = input.LA(2); + if ( (LA49_2==COLON||LA49_2==DOT) ) { + alt49=1; } } break; @@ -5245,50 +5506,50 @@ public class FTSParser extends Parser { switch ( input.LA(2) ) { case ID: { - int LA40_5 = input.LA(3); - if ( (LA40_5==DOT) ) { - int LA40_10 = input.LA(4); - if ( (LA40_10==ID) ) { - int LA40_11 = input.LA(5); - if ( (LA40_11==COLON) ) { - alt40=1; + int LA49_5 = input.LA(3); + if ( (LA49_5==DOT) ) { + int LA49_10 = input.LA(4); + if ( (LA49_10==ID) ) { + int LA49_11 = input.LA(5); + if ( (LA49_11==COLON) ) { + alt49=1; } } } - else if ( (LA40_5==COLON) ) { - alt40=1; + else if ( (LA49_5==COLON) ) { + alt49=1; } } break; case TO: { - int LA40_6 = input.LA(3); - if ( (LA40_6==COLON) ) { - alt40=1; + int LA49_6 = input.LA(3); + if ( (LA49_6==COLON) ) { + alt49=1; } } break; case OR: { - int LA40_7 = input.LA(3); - if ( (LA40_7==COLON) ) { - alt40=1; + int LA49_7 = input.LA(3); + if ( (LA49_7==COLON) ) { + alt49=1; } } break; case AND: { - int LA40_8 = input.LA(3); - if ( (LA40_8==COLON) ) { - alt40=1; + int LA49_8 = input.LA(3); + if ( (LA49_8==COLON) ) { + alt49=1; } } break; case NOT: { - int LA40_9 = input.LA(3); - if ( (LA40_9==COLON) ) { - alt40=1; + int LA49_9 = input.LA(3); + if ( (LA49_9==COLON) ) { + alt49=1; } } break; @@ -5296,28 +5557,28 @@ public class FTSParser extends Parser { } break; } - switch (alt40) { + switch (alt49) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:591:10: fieldReference COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:10: fieldReference COLON { - pushFollow(FOLLOW_fieldReference_in_ftsRange3814); - fieldReference96=fieldReference(); + pushFollow(FOLLOW_fieldReference_in_ftsRange4363); + fieldReference114=fieldReference(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference96.getTree()); - COLON97=(Token)match(input,COLON,FOLLOW_COLON_in_ftsRange3816); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON97); + if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference114.getTree()); + COLON115=(Token)match(input,COLON,FOLLOW_COLON_in_ftsRange4365); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON115); } break; } - pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsRange3820); - ftsFieldGroupRange98=ftsFieldGroupRange(); + pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsRange4369); + ftsFieldGroupRange116=ftsFieldGroupRange(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupRange.add(ftsFieldGroupRange98.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupRange.add(ftsFieldGroupRange116.getTree()); // AST REWRITE // elements: fieldReference, ftsFieldGroupRange // token labels: @@ -5330,10 +5591,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 592:17: -> ftsFieldGroupRange ( fieldReference )? + // 619:17: -> ftsFieldGroupRange ( fieldReference )? { adaptor.addChild(root_0, stream_ftsFieldGroupRange.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:592:39: ( fieldReference )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:619:39: ( fieldReference )? if ( stream_fieldReference.hasNext() ) { adaptor.addChild(root_0, stream_fieldReference.nextTree()); } @@ -5376,22 +5637,22 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroup" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:595:1: ftsFieldGroup : fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:622:1: ftsFieldGroup : fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ; public final FTSParser.ftsFieldGroup_return ftsFieldGroup() throws RecognitionException { FTSParser.ftsFieldGroup_return retval = new FTSParser.ftsFieldGroup_return(); retval.start = input.LT(1); Object root_0 = null; - Token COLON100=null; - Token LPAREN101=null; - Token RPAREN103=null; - ParserRuleReturnScope fieldReference99 =null; - ParserRuleReturnScope ftsFieldGroupDisjunction102 =null; + Token COLON118=null; + Token LPAREN119=null; + Token RPAREN121=null; + ParserRuleReturnScope fieldReference117 =null; + ParserRuleReturnScope ftsFieldGroupDisjunction120 =null; - Object COLON100_tree=null; - Object LPAREN101_tree=null; - Object RPAREN103_tree=null; + Object COLON118_tree=null; + Object LPAREN119_tree=null; + Object RPAREN121_tree=null; RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); @@ -5399,27 +5660,27 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:596:9: ( fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:597:9: fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:623:9: ( fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:624:9: fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN { - pushFollow(FOLLOW_fieldReference_in_ftsFieldGroup3876); - fieldReference99=fieldReference(); + pushFollow(FOLLOW_fieldReference_in_ftsFieldGroup4425); + fieldReference117=fieldReference(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference99.getTree()); - COLON100=(Token)match(input,COLON,FOLLOW_COLON_in_ftsFieldGroup3878); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON100); + if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference117.getTree()); + COLON118=(Token)match(input,COLON,FOLLOW_COLON_in_ftsFieldGroup4427); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON118); - LPAREN101=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroup3880); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN101); + LPAREN119=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroup4429); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN119); - pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup3882); - ftsFieldGroupDisjunction102=ftsFieldGroupDisjunction(); + pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup4431); + ftsFieldGroupDisjunction120=ftsFieldGroupDisjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupDisjunction.add(ftsFieldGroupDisjunction102.getTree()); - RPAREN103=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroup3884); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN103); + if ( state.backtracking==0 ) stream_ftsFieldGroupDisjunction.add(ftsFieldGroupDisjunction120.getTree()); + RPAREN121=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroup4433); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN121); // AST REWRITE // elements: fieldReference, ftsFieldGroupDisjunction @@ -5433,9 +5694,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 598:17: -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) + // 625:17: -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:599:25: ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:626:25: ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_GROUP, "FIELD_GROUP"), root_1); @@ -5481,35 +5742,35 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:602:1: ftsFieldGroupDisjunction : ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:629:1: ftsFieldGroupDisjunction : ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ); public final FTSParser.ftsFieldGroupDisjunction_return ftsFieldGroupDisjunction() throws RecognitionException { FTSParser.ftsFieldGroupDisjunction_return retval = new FTSParser.ftsFieldGroupDisjunction_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope ftsFieldGroupExplicitDisjunction104 =null; - ParserRuleReturnScope ftsFieldGroupImplicitDisjunction105 =null; + ParserRuleReturnScope ftsFieldGroupExplicitDisjunction122 =null; + ParserRuleReturnScope ftsFieldGroupImplicitDisjunction123 =null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:603:9: ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ) - int alt41=2; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:630:9: ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ) + int alt50=2; switch ( input.LA(1) ) { case AMP: case AND: { - alt41=1; + alt50=1; } break; case NOT: { - int LA41_3 = input.LA(2); + int LA50_3 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5518,7 +5779,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 3, input); + new NoViableAltException("", 50, 3, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5529,12 +5790,12 @@ public class FTSParser extends Parser { break; case ID: { - int LA41_4 = input.LA(2); + int LA50_4 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5543,7 +5804,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 4, input); + new NoViableAltException("", 50, 4, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5554,12 +5815,12 @@ public class FTSParser extends Parser { break; case FTSWORD: { - int LA41_5 = input.LA(2); + int LA50_5 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5568,7 +5829,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 5, input); + new NoViableAltException("", 50, 5, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5579,12 +5840,12 @@ public class FTSParser extends Parser { break; case FTSPRE: { - int LA41_6 = input.LA(2); + int LA50_6 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5593,7 +5854,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 6, input); + new NoViableAltException("", 50, 6, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5604,12 +5865,12 @@ public class FTSParser extends Parser { break; case FTSWILD: { - int LA41_7 = input.LA(2); + int LA50_7 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5618,7 +5879,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 7, input); + new NoViableAltException("", 50, 7, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5629,12 +5890,12 @@ public class FTSParser extends Parser { break; case EXCLAMATION: { - int LA41_8 = input.LA(2); + int LA50_8 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5643,7 +5904,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 8, input); + new NoViableAltException("", 50, 8, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5654,12 +5915,12 @@ public class FTSParser extends Parser { break; case TO: { - int LA41_9 = input.LA(2); + int LA50_9 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5668,7 +5929,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 9, input); + new NoViableAltException("", 50, 9, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5679,12 +5940,12 @@ public class FTSParser extends Parser { break; case DECIMAL_INTEGER_LITERAL: { - int LA41_10 = input.LA(2); + int LA50_10 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5693,7 +5954,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 10, input); + new NoViableAltException("", 50, 10, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5704,12 +5965,12 @@ public class FTSParser extends Parser { break; case FLOATING_POINT_LITERAL: { - int LA41_11 = input.LA(2); + int LA50_11 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5718,7 +5979,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 11, input); + new NoViableAltException("", 50, 11, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5729,12 +5990,12 @@ public class FTSParser extends Parser { break; case DATETIME: { - int LA41_12 = input.LA(2); + int LA50_12 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5743,7 +6004,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 12, input); + new NoViableAltException("", 50, 12, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5754,12 +6015,12 @@ public class FTSParser extends Parser { break; case STAR: { - int LA41_13 = input.LA(2); + int LA50_13 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5768,7 +6029,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 13, input); + new NoViableAltException("", 50, 13, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5779,12 +6040,12 @@ public class FTSParser extends Parser { break; case URI: { - int LA41_14 = input.LA(2); + int LA50_14 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5793,7 +6054,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 14, input); + new NoViableAltException("", 50, 14, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5805,12 +6066,12 @@ public class FTSParser extends Parser { case COMMA: case DOT: { - int LA41_15 = input.LA(2); + int LA50_15 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5819,7 +6080,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 15, input); + new NoViableAltException("", 50, 15, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5830,12 +6091,12 @@ public class FTSParser extends Parser { break; case QUESTION_MARK: { - int LA41_16 = input.LA(2); + int LA50_16 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5844,7 +6105,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 16, input); + new NoViableAltException("", 50, 16, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5855,12 +6116,12 @@ public class FTSParser extends Parser { break; case EQUALS: { - int LA41_17 = input.LA(2); + int LA50_17 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5869,7 +6130,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 17, input); + new NoViableAltException("", 50, 17, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5880,12 +6141,12 @@ public class FTSParser extends Parser { break; case FTSPHRASE: { - int LA41_18 = input.LA(2); + int LA50_18 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5894,7 +6155,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 18, input); + new NoViableAltException("", 50, 18, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5905,12 +6166,12 @@ public class FTSParser extends Parser { break; case TILDA: { - int LA41_19 = input.LA(2); + int LA50_19 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5919,7 +6180,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 19, input); + new NoViableAltException("", 50, 19, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5930,12 +6191,12 @@ public class FTSParser extends Parser { break; case LSQUARE: { - int LA41_20 = input.LA(2); + int LA50_20 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5944,7 +6205,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 20, input); + new NoViableAltException("", 50, 20, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5955,12 +6216,12 @@ public class FTSParser extends Parser { break; case LT: { - int LA41_21 = input.LA(2); + int LA50_21 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5969,7 +6230,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 21, input); + new NoViableAltException("", 50, 21, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -5980,12 +6241,12 @@ public class FTSParser extends Parser { break; case LPAREN: { - int LA41_22 = input.LA(2); + int LA50_22 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -5994,7 +6255,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 22, input); + new NoViableAltException("", 50, 22, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -6005,12 +6266,12 @@ public class FTSParser extends Parser { break; case PLUS: { - int LA41_23 = input.LA(2); + int LA50_23 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -6019,7 +6280,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 23, input); + new NoViableAltException("", 50, 23, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -6030,12 +6291,12 @@ public class FTSParser extends Parser { break; case BAR: { - int LA41_24 = input.LA(2); + int LA50_24 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -6044,7 +6305,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 24, input); + new NoViableAltException("", 50, 24, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -6055,12 +6316,12 @@ public class FTSParser extends Parser { break; case MINUS: { - int LA41_25 = input.LA(2); + int LA50_25 = input.LA(2); if ( ((defaultFieldConjunction() == true)) ) { - alt41=1; + alt50=1; } else if ( ((defaultFieldConjunction() == false)) ) { - alt41=2; + alt50=2; } else { @@ -6069,7 +6330,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 41, 25, input); + new NoViableAltException("", 50, 25, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -6080,18 +6341,18 @@ public class FTSParser extends Parser { break; case OR: { - alt41=2; + alt50=2; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 41, 0, input); + new NoViableAltException("", 50, 0, input); throw nvae; } - switch (alt41) { + switch (alt50) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:604:9: {...}? ftsFieldGroupExplicitDisjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:631:9: {...}? ftsFieldGroupExplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -6100,16 +6361,16 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsFieldGroupDisjunction", "defaultFieldConjunction() == true"); } - pushFollow(FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction3969); - ftsFieldGroupExplicitDisjunction104=ftsFieldGroupExplicitDisjunction(); + pushFollow(FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction4518); + ftsFieldGroupExplicitDisjunction122=ftsFieldGroupExplicitDisjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsFieldGroupExplicitDisjunction104.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsFieldGroupExplicitDisjunction122.getTree()); } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:605:11: {...}? ftsFieldGroupImplicitDisjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:632:11: {...}? ftsFieldGroupImplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -6118,11 +6379,11 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsFieldGroupDisjunction", "defaultFieldConjunction() == false"); } - pushFollow(FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction3983); - ftsFieldGroupImplicitDisjunction105=ftsFieldGroupImplicitDisjunction(); + pushFollow(FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction4532); + ftsFieldGroupImplicitDisjunction123=ftsFieldGroupImplicitDisjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsFieldGroupImplicitDisjunction105.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsFieldGroupImplicitDisjunction123.getTree()); } break; @@ -6157,57 +6418,57 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExplicitDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:608:1: ftsFieldGroupExplicitDisjunction : ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:635:1: ftsFieldGroupExplicitDisjunction : ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ; public final FTSParser.ftsFieldGroupExplicitDisjunction_return ftsFieldGroupExplicitDisjunction() throws RecognitionException { FTSParser.ftsFieldGroupExplicitDisjunction_return retval = new FTSParser.ftsFieldGroupExplicitDisjunction_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope ftsFieldGroupImplicitConjunction106 =null; - ParserRuleReturnScope or107 =null; - ParserRuleReturnScope ftsFieldGroupImplicitConjunction108 =null; + ParserRuleReturnScope ftsFieldGroupImplicitConjunction124 =null; + ParserRuleReturnScope or125 =null; + ParserRuleReturnScope ftsFieldGroupImplicitConjunction126 =null; RewriteRuleSubtreeStream stream_ftsFieldGroupImplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupImplicitConjunction"); RewriteRuleSubtreeStream stream_or=new RewriteRuleSubtreeStream(adaptor,"rule or"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:609:9: ( ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:610:9: ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:636:9: ( ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:9: ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* { - pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4016); - ftsFieldGroupImplicitConjunction106=ftsFieldGroupImplicitConjunction(); + pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4565); + ftsFieldGroupImplicitConjunction124=ftsFieldGroupImplicitConjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupImplicitConjunction.add(ftsFieldGroupImplicitConjunction106.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:610:42: ( or ftsFieldGroupImplicitConjunction )* - loop42: + if ( state.backtracking==0 ) stream_ftsFieldGroupImplicitConjunction.add(ftsFieldGroupImplicitConjunction124.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:42: ( or ftsFieldGroupImplicitConjunction )* + loop51: while (true) { - int alt42=2; - int LA42_0 = input.LA(1); - if ( (LA42_0==BAR||LA42_0==OR) ) { - alt42=1; + int alt51=2; + int LA51_0 = input.LA(1); + if ( (LA51_0==BAR||LA51_0==OR) ) { + alt51=1; } - switch (alt42) { + switch (alt51) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:610:43: or ftsFieldGroupImplicitConjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:43: or ftsFieldGroupImplicitConjunction { - pushFollow(FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4019); - or107=or(); + pushFollow(FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4568); + or125=or(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_or.add(or107.getTree()); - pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4021); - ftsFieldGroupImplicitConjunction108=ftsFieldGroupImplicitConjunction(); + if ( state.backtracking==0 ) stream_or.add(or125.getTree()); + pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4570); + ftsFieldGroupImplicitConjunction126=ftsFieldGroupImplicitConjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupImplicitConjunction.add(ftsFieldGroupImplicitConjunction108.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupImplicitConjunction.add(ftsFieldGroupImplicitConjunction126.getTree()); } break; default : - break loop42; + break loop51; } } @@ -6223,9 +6484,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 611:17: -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) + // 638:17: -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:612:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:639:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DISJUNCTION, "FIELD_DISJUNCTION"), root_1); @@ -6277,78 +6538,78 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupImplicitDisjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:615:1: ftsFieldGroupImplicitDisjunction : ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:642:1: ftsFieldGroupImplicitDisjunction : ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ; public final FTSParser.ftsFieldGroupImplicitDisjunction_return ftsFieldGroupImplicitDisjunction() throws RecognitionException { FTSParser.ftsFieldGroupImplicitDisjunction_return retval = new FTSParser.ftsFieldGroupImplicitDisjunction_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope or109 =null; - ParserRuleReturnScope ftsFieldGroupExplicitConjunction110 =null; + ParserRuleReturnScope or127 =null; + ParserRuleReturnScope ftsFieldGroupExplicitConjunction128 =null; RewriteRuleSubtreeStream stream_or=new RewriteRuleSubtreeStream(adaptor,"rule or"); RewriteRuleSubtreeStream stream_ftsFieldGroupExplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupExplicitConjunction"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:616:9: ( ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:617:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:643:9: ( ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:617:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ - int cnt44=0; - loop44: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ + int cnt53=0; + loop53: while (true) { - int alt44=2; - int LA44_0 = input.LA(1); - if ( (LA44_0==BAR||LA44_0==COMMA||LA44_0==DATETIME||LA44_0==DECIMAL_INTEGER_LITERAL||LA44_0==DOT||LA44_0==EQUALS||LA44_0==EXCLAMATION||LA44_0==FLOATING_POINT_LITERAL||(LA44_0 >= FTSPHRASE && LA44_0 <= FTSWORD)||LA44_0==ID||(LA44_0 >= LPAREN && LA44_0 <= LT)||LA44_0==MINUS||LA44_0==NOT||LA44_0==OR||LA44_0==PLUS||LA44_0==QUESTION_MARK||LA44_0==STAR||(LA44_0 >= TILDA && LA44_0 <= TO)||LA44_0==URI) ) { - alt44=1; + int alt53=2; + int LA53_0 = input.LA(1); + if ( (LA53_0==BAR||LA53_0==COMMA||LA53_0==DATETIME||LA53_0==DECIMAL_INTEGER_LITERAL||LA53_0==DOT||LA53_0==EQUALS||LA53_0==EXCLAMATION||LA53_0==FLOATING_POINT_LITERAL||(LA53_0 >= FTSPHRASE && LA53_0 <= FTSWORD)||LA53_0==ID||(LA53_0 >= LPAREN && LA53_0 <= LT)||LA53_0==MINUS||LA53_0==NOT||LA53_0==OR||LA53_0==PLUS||LA53_0==QUESTION_MARK||LA53_0==STAR||(LA53_0 >= TILDA && LA53_0 <= TO)||LA53_0==URI) ) { + alt53=1; } - switch (alt44) { + switch (alt53) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:617:10: ( or )? ftsFieldGroupExplicitConjunction + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: ( or )? ftsFieldGroupExplicitConjunction { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:617:10: ( or )? - int alt43=2; - int LA43_0 = input.LA(1); - if ( (LA43_0==OR) ) { - alt43=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: ( or )? + int alt52=2; + int LA52_0 = input.LA(1); + if ( (LA52_0==OR) ) { + alt52=1; } - else if ( (LA43_0==BAR) ) { - int LA43_2 = input.LA(2); - if ( (LA43_2==BAR) ) { - alt43=1; + else if ( (LA52_0==BAR) ) { + int LA52_2 = input.LA(2); + if ( (LA52_2==BAR) ) { + alt52=1; } } - switch (alt43) { + switch (alt52) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:617:10: or + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: or { - pushFollow(FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4106); - or109=or(); + pushFollow(FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4655); + or127=or(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_or.add(or109.getTree()); + if ( state.backtracking==0 ) stream_or.add(or127.getTree()); } break; } - pushFollow(FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4109); - ftsFieldGroupExplicitConjunction110=ftsFieldGroupExplicitConjunction(); + pushFollow(FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4658); + ftsFieldGroupExplicitConjunction128=ftsFieldGroupExplicitConjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupExplicitConjunction.add(ftsFieldGroupExplicitConjunction110.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupExplicitConjunction.add(ftsFieldGroupExplicitConjunction128.getTree()); } break; default : - if ( cnt44 >= 1 ) break loop44; + if ( cnt53 >= 1 ) break loop53; if (state.backtracking>0) {state.failed=true; return retval;} - EarlyExitException eee = new EarlyExitException(44, input); + EarlyExitException eee = new EarlyExitException(53, input); throw eee; } - cnt44++; + cnt53++; } // AST REWRITE @@ -6363,9 +6624,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 618:17: -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) + // 645:17: -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:619:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:646:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DISJUNCTION, "FIELD_DISJUNCTION"), root_1); @@ -6417,57 +6678,57 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExplicitConjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:626:1: ftsFieldGroupExplicitConjunction : ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:653:1: ftsFieldGroupExplicitConjunction : ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; public final FTSParser.ftsFieldGroupExplicitConjunction_return ftsFieldGroupExplicitConjunction() throws RecognitionException { FTSParser.ftsFieldGroupExplicitConjunction_return retval = new FTSParser.ftsFieldGroupExplicitConjunction_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope ftsFieldGroupPrefixed111 =null; - ParserRuleReturnScope and112 =null; - ParserRuleReturnScope ftsFieldGroupPrefixed113 =null; + ParserRuleReturnScope ftsFieldGroupPrefixed129 =null; + ParserRuleReturnScope and130 =null; + ParserRuleReturnScope ftsFieldGroupPrefixed131 =null; RewriteRuleSubtreeStream stream_ftsFieldGroupPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupPrefixed"); RewriteRuleSubtreeStream stream_and=new RewriteRuleSubtreeStream(adaptor,"rule and"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:627:9: ( ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:628:9: ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:654:9: ( ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:9: ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* { - pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4196); - ftsFieldGroupPrefixed111=ftsFieldGroupPrefixed(); + pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4745); + ftsFieldGroupPrefixed129=ftsFieldGroupPrefixed(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed111.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:628:31: ( and ftsFieldGroupPrefixed )* - loop45: + if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed129.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:31: ( and ftsFieldGroupPrefixed )* + loop54: while (true) { - int alt45=2; - int LA45_0 = input.LA(1); - if ( ((LA45_0 >= AMP && LA45_0 <= AND)) ) { - alt45=1; + int alt54=2; + int LA54_0 = input.LA(1); + if ( ((LA54_0 >= AMP && LA54_0 <= AND)) ) { + alt54=1; } - switch (alt45) { + switch (alt54) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:628:32: and ftsFieldGroupPrefixed + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:32: and ftsFieldGroupPrefixed { - pushFollow(FOLLOW_and_in_ftsFieldGroupExplicitConjunction4199); - and112=and(); + pushFollow(FOLLOW_and_in_ftsFieldGroupExplicitConjunction4748); + and130=and(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_and.add(and112.getTree()); - pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4201); - ftsFieldGroupPrefixed113=ftsFieldGroupPrefixed(); + if ( state.backtracking==0 ) stream_and.add(and130.getTree()); + pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4750); + ftsFieldGroupPrefixed131=ftsFieldGroupPrefixed(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed113.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed131.getTree()); } break; default : - break loop45; + break loop54; } } @@ -6483,9 +6744,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 629:17: -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) + // 656:17: -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:630:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:657:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_CONJUNCTION, "FIELD_CONJUNCTION"), root_1); @@ -6537,79 +6798,79 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupImplicitConjunction" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:633:1: ftsFieldGroupImplicitConjunction : ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:660:1: ftsFieldGroupImplicitConjunction : ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; public final FTSParser.ftsFieldGroupImplicitConjunction_return ftsFieldGroupImplicitConjunction() throws RecognitionException { FTSParser.ftsFieldGroupImplicitConjunction_return retval = new FTSParser.ftsFieldGroupImplicitConjunction_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope and114 =null; - ParserRuleReturnScope ftsFieldGroupPrefixed115 =null; + ParserRuleReturnScope and132 =null; + ParserRuleReturnScope ftsFieldGroupPrefixed133 =null; RewriteRuleSubtreeStream stream_ftsFieldGroupPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupPrefixed"); RewriteRuleSubtreeStream stream_and=new RewriteRuleSubtreeStream(adaptor,"rule and"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:634:9: ( ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:635:9: ( ( and )? ftsFieldGroupPrefixed )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:661:9: ( ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:9: ( ( and )? ftsFieldGroupPrefixed )+ { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:635:9: ( ( and )? ftsFieldGroupPrefixed )+ - int cnt47=0; - loop47: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:9: ( ( and )? ftsFieldGroupPrefixed )+ + int cnt56=0; + loop56: while (true) { - int alt47=2; - int LA47_0 = input.LA(1); - if ( (LA47_0==BAR) ) { - int LA47_2 = input.LA(2); - if ( (LA47_2==COMMA||LA47_2==DATETIME||LA47_2==DECIMAL_INTEGER_LITERAL||LA47_2==DOT||LA47_2==EQUALS||LA47_2==FLOATING_POINT_LITERAL||(LA47_2 >= FTSPHRASE && LA47_2 <= FTSWORD)||LA47_2==ID||(LA47_2 >= LPAREN && LA47_2 <= LT)||LA47_2==NOT||LA47_2==QUESTION_MARK||LA47_2==STAR||(LA47_2 >= TILDA && LA47_2 <= TO)||LA47_2==URI) ) { - alt47=1; + int alt56=2; + int LA56_0 = input.LA(1); + if ( (LA56_0==BAR) ) { + int LA56_2 = input.LA(2); + if ( (LA56_2==COMMA||LA56_2==DATETIME||LA56_2==DECIMAL_INTEGER_LITERAL||LA56_2==DOT||LA56_2==EQUALS||LA56_2==FLOATING_POINT_LITERAL||(LA56_2 >= FTSPHRASE && LA56_2 <= FTSWORD)||LA56_2==ID||(LA56_2 >= LPAREN && LA56_2 <= LT)||LA56_2==NOT||LA56_2==QUESTION_MARK||LA56_2==STAR||(LA56_2 >= TILDA && LA56_2 <= TO)||LA56_2==URI) ) { + alt56=1; } } - else if ( ((LA47_0 >= AMP && LA47_0 <= AND)||LA47_0==COMMA||LA47_0==DATETIME||LA47_0==DECIMAL_INTEGER_LITERAL||LA47_0==DOT||LA47_0==EQUALS||LA47_0==EXCLAMATION||LA47_0==FLOATING_POINT_LITERAL||(LA47_0 >= FTSPHRASE && LA47_0 <= FTSWORD)||LA47_0==ID||(LA47_0 >= LPAREN && LA47_0 <= LT)||LA47_0==MINUS||LA47_0==NOT||LA47_0==PLUS||LA47_0==QUESTION_MARK||LA47_0==STAR||(LA47_0 >= TILDA && LA47_0 <= TO)||LA47_0==URI) ) { - alt47=1; + else if ( ((LA56_0 >= AMP && LA56_0 <= AND)||LA56_0==COMMA||LA56_0==DATETIME||LA56_0==DECIMAL_INTEGER_LITERAL||LA56_0==DOT||LA56_0==EQUALS||LA56_0==EXCLAMATION||LA56_0==FLOATING_POINT_LITERAL||(LA56_0 >= FTSPHRASE && LA56_0 <= FTSWORD)||LA56_0==ID||(LA56_0 >= LPAREN && LA56_0 <= LT)||LA56_0==MINUS||LA56_0==NOT||LA56_0==PLUS||LA56_0==QUESTION_MARK||LA56_0==STAR||(LA56_0 >= TILDA && LA56_0 <= TO)||LA56_0==URI) ) { + alt56=1; } - switch (alt47) { + switch (alt56) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:635:10: ( and )? ftsFieldGroupPrefixed + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: ( and )? ftsFieldGroupPrefixed { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:635:10: ( and )? - int alt46=2; - int LA46_0 = input.LA(1); - if ( ((LA46_0 >= AMP && LA46_0 <= AND)) ) { - alt46=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: ( and )? + int alt55=2; + int LA55_0 = input.LA(1); + if ( ((LA55_0 >= AMP && LA55_0 <= AND)) ) { + alt55=1; } - switch (alt46) { + switch (alt55) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:635:10: and + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: and { - pushFollow(FOLLOW_and_in_ftsFieldGroupImplicitConjunction4286); - and114=and(); + pushFollow(FOLLOW_and_in_ftsFieldGroupImplicitConjunction4835); + and132=and(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_and.add(and114.getTree()); + if ( state.backtracking==0 ) stream_and.add(and132.getTree()); } break; } - pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4289); - ftsFieldGroupPrefixed115=ftsFieldGroupPrefixed(); + pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4838); + ftsFieldGroupPrefixed133=ftsFieldGroupPrefixed(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed115.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed133.getTree()); } break; default : - if ( cnt47 >= 1 ) break loop47; + if ( cnt56 >= 1 ) break loop56; if (state.backtracking>0) {state.failed=true; return retval;} - EarlyExitException eee = new EarlyExitException(47, input); + EarlyExitException eee = new EarlyExitException(56, input); throw eee; } - cnt47++; + cnt56++; } // AST REWRITE @@ -6624,9 +6885,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 636:17: -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) + // 663:17: -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:637:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:664:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_CONJUNCTION, "FIELD_CONJUNCTION"), root_1); @@ -6678,31 +6939,31 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupPrefixed" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:640:1: ftsFieldGroupPrefixed : ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:667:1: ftsFieldGroupPrefixed : ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ); public final FTSParser.ftsFieldGroupPrefixed_return ftsFieldGroupPrefixed() throws RecognitionException { FTSParser.ftsFieldGroupPrefixed_return retval = new FTSParser.ftsFieldGroupPrefixed_return(); retval.start = input.LT(1); Object root_0 = null; - Token PLUS121=null; - Token BAR124=null; - Token MINUS127=null; - ParserRuleReturnScope not116 =null; - ParserRuleReturnScope ftsFieldGroupTest117 =null; - ParserRuleReturnScope boost118 =null; - ParserRuleReturnScope ftsFieldGroupTest119 =null; - ParserRuleReturnScope boost120 =null; - ParserRuleReturnScope ftsFieldGroupTest122 =null; - ParserRuleReturnScope boost123 =null; - ParserRuleReturnScope ftsFieldGroupTest125 =null; - ParserRuleReturnScope boost126 =null; - ParserRuleReturnScope ftsFieldGroupTest128 =null; - ParserRuleReturnScope boost129 =null; + Token PLUS139=null; + Token BAR142=null; + Token MINUS145=null; + ParserRuleReturnScope not134 =null; + ParserRuleReturnScope ftsFieldGroupTest135 =null; + ParserRuleReturnScope boost136 =null; + ParserRuleReturnScope ftsFieldGroupTest137 =null; + ParserRuleReturnScope boost138 =null; + ParserRuleReturnScope ftsFieldGroupTest140 =null; + ParserRuleReturnScope boost141 =null; + ParserRuleReturnScope ftsFieldGroupTest143 =null; + ParserRuleReturnScope boost144 =null; + ParserRuleReturnScope ftsFieldGroupTest146 =null; + ParserRuleReturnScope boost147 =null; - Object PLUS121_tree=null; - Object BAR124_tree=null; - Object MINUS127_tree=null; + Object PLUS139_tree=null; + Object BAR142_tree=null; + Object MINUS145_tree=null; RewriteRuleTokenStream stream_BAR=new RewriteRuleTokenStream(adaptor,"token BAR"); RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS"); RewriteRuleTokenStream stream_MINUS=new RewriteRuleTokenStream(adaptor,"token MINUS"); @@ -6711,78 +6972,78 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_boost=new RewriteRuleSubtreeStream(adaptor,"rule boost"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:641:9: ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ) - int alt53=5; - int LA53_0 = input.LA(1); - if ( (LA53_0==NOT) ) { - int LA53_1 = input.LA(2); - if ( (synpred23_FTS()) ) { - alt53=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:668:9: ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ) + int alt62=5; + int LA62_0 = input.LA(1); + if ( (LA62_0==NOT) ) { + int LA62_1 = input.LA(2); + if ( (synpred32_FTS()) ) { + alt62=1; } else if ( (true) ) { - alt53=2; + alt62=2; } } - else if ( (LA53_0==COMMA||LA53_0==DATETIME||LA53_0==DECIMAL_INTEGER_LITERAL||LA53_0==DOT||LA53_0==EQUALS||LA53_0==FLOATING_POINT_LITERAL||(LA53_0 >= FTSPHRASE && LA53_0 <= FTSWORD)||LA53_0==ID||(LA53_0 >= LPAREN && LA53_0 <= LT)||LA53_0==QUESTION_MARK||LA53_0==STAR||(LA53_0 >= TILDA && LA53_0 <= TO)||LA53_0==URI) ) { - alt53=2; + else if ( (LA62_0==COMMA||LA62_0==DATETIME||LA62_0==DECIMAL_INTEGER_LITERAL||LA62_0==DOT||LA62_0==EQUALS||LA62_0==FLOATING_POINT_LITERAL||(LA62_0 >= FTSPHRASE && LA62_0 <= FTSWORD)||LA62_0==ID||(LA62_0 >= LPAREN && LA62_0 <= LT)||LA62_0==QUESTION_MARK||LA62_0==STAR||(LA62_0 >= TILDA && LA62_0 <= TO)||LA62_0==URI) ) { + alt62=2; } - else if ( (LA53_0==EXCLAMATION) && (synpred23_FTS())) { - alt53=1; + else if ( (LA62_0==EXCLAMATION) && (synpred32_FTS())) { + alt62=1; } - else if ( (LA53_0==PLUS) ) { - alt53=3; + else if ( (LA62_0==PLUS) ) { + alt62=3; } - else if ( (LA53_0==BAR) ) { - alt53=4; + else if ( (LA62_0==BAR) ) { + alt62=4; } - else if ( (LA53_0==MINUS) ) { - alt53=5; + else if ( (LA62_0==MINUS) ) { + alt62=5; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 53, 0, input); + new NoViableAltException("", 62, 0, input); throw nvae; } - switch (alt53) { + switch (alt62) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:642:9: ( not )=> not ftsFieldGroupTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:9: ( not )=> not ftsFieldGroupTest ( boost )? { - pushFollow(FOLLOW_not_in_ftsFieldGroupPrefixed4379); - not116=not(); + pushFollow(FOLLOW_not_in_ftsFieldGroupPrefixed4928); + not134=not(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_not.add(not116.getTree()); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4381); - ftsFieldGroupTest117=ftsFieldGroupTest(); + if ( state.backtracking==0 ) stream_not.add(not134.getTree()); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4930); + ftsFieldGroupTest135=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest117.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:642:40: ( boost )? - int alt48=2; - int LA48_0 = input.LA(1); - if ( (LA48_0==CARAT) ) { - alt48=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest135.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:40: ( boost )? + int alt57=2; + int LA57_0 = input.LA(1); + if ( (LA57_0==CARAT) ) { + alt57=1; } - switch (alt48) { + switch (alt57) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:642:40: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:40: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4383); - boost118=boost(); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4932); + boost136=boost(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_boost.add(boost118.getTree()); + if ( state.backtracking==0 ) stream_boost.add(boost136.getTree()); } break; } // AST REWRITE - // elements: ftsFieldGroupTest, boost + // elements: boost, ftsFieldGroupTest // token labels: // rule labels: retval // token list labels: @@ -6793,14 +7054,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 643:17: -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) + // 670:17: -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:644:25: ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:671:25: ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_NEGATION, "FIELD_NEGATION"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:644:60: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:671:60: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -6818,35 +7079,35 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:645:11: ftsFieldGroupTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:11: ftsFieldGroupTest ( boost )? { - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4447); - ftsFieldGroupTest119=ftsFieldGroupTest(); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4996); + ftsFieldGroupTest137=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest119.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:645:29: ( boost )? - int alt49=2; - int LA49_0 = input.LA(1); - if ( (LA49_0==CARAT) ) { - alt49=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest137.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:29: ( boost )? + int alt58=2; + int LA58_0 = input.LA(1); + if ( (LA58_0==CARAT) ) { + alt58=1; } - switch (alt49) { + switch (alt58) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:645:29: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:29: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4449); - boost120=boost(); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4998); + boost138=boost(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_boost.add(boost120.getTree()); + if ( state.backtracking==0 ) stream_boost.add(boost138.getTree()); } break; } // AST REWRITE - // elements: boost, ftsFieldGroupTest + // elements: ftsFieldGroupTest, boost // token labels: // rule labels: retval // token list labels: @@ -6857,14 +7118,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 646:17: -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) + // 673:17: -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:647:25: ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:674:25: ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DEFAULT, "FIELD_DEFAULT"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:647:59: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:674:59: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -6882,38 +7143,38 @@ public class FTSParser extends Parser { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:648:11: PLUS ftsFieldGroupTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:11: PLUS ftsFieldGroupTest ( boost )? { - PLUS121=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsFieldGroupPrefixed4513); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_PLUS.add(PLUS121); + PLUS139=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsFieldGroupPrefixed5062); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_PLUS.add(PLUS139); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4515); - ftsFieldGroupTest122=ftsFieldGroupTest(); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5064); + ftsFieldGroupTest140=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest122.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:648:34: ( boost )? - int alt50=2; - int LA50_0 = input.LA(1); - if ( (LA50_0==CARAT) ) { - alt50=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest140.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:34: ( boost )? + int alt59=2; + int LA59_0 = input.LA(1); + if ( (LA59_0==CARAT) ) { + alt59=1; } - switch (alt50) { + switch (alt59) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:648:34: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:34: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4517); - boost123=boost(); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5066); + boost141=boost(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_boost.add(boost123.getTree()); + if ( state.backtracking==0 ) stream_boost.add(boost141.getTree()); } break; } // AST REWRITE - // elements: boost, ftsFieldGroupTest + // elements: ftsFieldGroupTest, boost // token labels: // rule labels: retval // token list labels: @@ -6924,14 +7185,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 649:17: -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) + // 676:17: -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:650:25: ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:677:25: ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_MANDATORY, "FIELD_MANDATORY"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:650:61: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:677:61: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -6949,38 +7210,38 @@ public class FTSParser extends Parser { } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:651:11: BAR ftsFieldGroupTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:11: BAR ftsFieldGroupTest ( boost )? { - BAR124=(Token)match(input,BAR,FOLLOW_BAR_in_ftsFieldGroupPrefixed4581); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_BAR.add(BAR124); + BAR142=(Token)match(input,BAR,FOLLOW_BAR_in_ftsFieldGroupPrefixed5130); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_BAR.add(BAR142); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4583); - ftsFieldGroupTest125=ftsFieldGroupTest(); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5132); + ftsFieldGroupTest143=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest125.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:651:33: ( boost )? - int alt51=2; - int LA51_0 = input.LA(1); - if ( (LA51_0==CARAT) ) { - alt51=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest143.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:33: ( boost )? + int alt60=2; + int LA60_0 = input.LA(1); + if ( (LA60_0==CARAT) ) { + alt60=1; } - switch (alt51) { + switch (alt60) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:651:33: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:33: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4585); - boost126=boost(); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5134); + boost144=boost(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_boost.add(boost126.getTree()); + if ( state.backtracking==0 ) stream_boost.add(boost144.getTree()); } break; } // AST REWRITE - // elements: boost, ftsFieldGroupTest + // elements: ftsFieldGroupTest, boost // token labels: // rule labels: retval // token list labels: @@ -6991,14 +7252,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 652:17: -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) + // 679:17: -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:653:25: ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:680:25: ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_OPTIONAL, "FIELD_OPTIONAL"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:653:60: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:680:60: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7016,31 +7277,31 @@ public class FTSParser extends Parser { } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:654:11: MINUS ftsFieldGroupTest ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:11: MINUS ftsFieldGroupTest ( boost )? { - MINUS127=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsFieldGroupPrefixed4649); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_MINUS.add(MINUS127); + MINUS145=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsFieldGroupPrefixed5198); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_MINUS.add(MINUS145); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4651); - ftsFieldGroupTest128=ftsFieldGroupTest(); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5200); + ftsFieldGroupTest146=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest128.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:654:35: ( boost )? - int alt52=2; - int LA52_0 = input.LA(1); - if ( (LA52_0==CARAT) ) { - alt52=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest146.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:35: ( boost )? + int alt61=2; + int LA61_0 = input.LA(1); + if ( (LA61_0==CARAT) ) { + alt61=1; } - switch (alt52) { + switch (alt61) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:654:35: boost + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:35: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4653); - boost129=boost(); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5202); + boost147=boost(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_boost.add(boost129.getTree()); + if ( state.backtracking==0 ) stream_boost.add(boost147.getTree()); } break; @@ -7058,14 +7319,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 655:17: -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) + // 682:17: -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:656:25: ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:683:25: ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_EXCLUDE, "FIELD_EXCLUDE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:656:59: ( boost )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:683:59: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7113,33 +7374,33 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupTest" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:659:1: ftsFieldGroupTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:686:1: ftsFieldGroupTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ); public final FTSParser.ftsFieldGroupTest_return ftsFieldGroupTest() throws RecognitionException { FTSParser.ftsFieldGroupTest_return retval = new FTSParser.ftsFieldGroupTest_return(); retval.start = input.LT(1); Object root_0 = null; - Token LPAREN144=null; - Token RPAREN146=null; - ParserRuleReturnScope ftsFieldGroupProximity130 =null; - ParserRuleReturnScope ftsFieldGroupTerm131 =null; - ParserRuleReturnScope fuzzy132 =null; - ParserRuleReturnScope ftsFieldGroupExactTerm133 =null; - ParserRuleReturnScope fuzzy134 =null; - ParserRuleReturnScope ftsFieldGroupPhrase135 =null; - ParserRuleReturnScope slop136 =null; - ParserRuleReturnScope ftsFieldGroupExactPhrase137 =null; - ParserRuleReturnScope slop138 =null; - ParserRuleReturnScope ftsFieldGroupTokenisedPhrase139 =null; - ParserRuleReturnScope slop140 =null; - ParserRuleReturnScope ftsFieldGroupSynonym141 =null; - ParserRuleReturnScope fuzzy142 =null; - ParserRuleReturnScope ftsFieldGroupRange143 =null; - ParserRuleReturnScope ftsFieldGroupDisjunction145 =null; + Token LPAREN162=null; + Token RPAREN164=null; + ParserRuleReturnScope ftsFieldGroupProximity148 =null; + ParserRuleReturnScope ftsFieldGroupTerm149 =null; + ParserRuleReturnScope fuzzy150 =null; + ParserRuleReturnScope ftsFieldGroupExactTerm151 =null; + ParserRuleReturnScope fuzzy152 =null; + ParserRuleReturnScope ftsFieldGroupPhrase153 =null; + ParserRuleReturnScope slop154 =null; + ParserRuleReturnScope ftsFieldGroupExactPhrase155 =null; + ParserRuleReturnScope slop156 =null; + ParserRuleReturnScope ftsFieldGroupTokenisedPhrase157 =null; + ParserRuleReturnScope slop158 =null; + ParserRuleReturnScope ftsFieldGroupSynonym159 =null; + ParserRuleReturnScope fuzzy160 =null; + ParserRuleReturnScope ftsFieldGroupRange161 =null; + ParserRuleReturnScope ftsFieldGroupDisjunction163 =null; - Object LPAREN144_tree=null; - Object RPAREN146_tree=null; + Object LPAREN162_tree=null; + Object RPAREN164_tree=null; RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleSubtreeStream stream_ftsFieldGroupSynonym=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupSynonym"); @@ -7155,18 +7416,18 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:660:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ) - int alt60=9; - alt60 = dfa60.predict(input); - switch (alt60) { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:687:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ) + int alt69=9; + alt69 = dfa69.predict(input); + switch (alt69) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:661:9: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:9: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity { - pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest4744); - ftsFieldGroupProximity130=ftsFieldGroupProximity(); + pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest5293); + ftsFieldGroupProximity148=ftsFieldGroupProximity(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupProximity.add(ftsFieldGroupProximity130.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupProximity.add(ftsFieldGroupProximity148.getTree()); // AST REWRITE // elements: ftsFieldGroupProximity // token labels: @@ -7179,9 +7440,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 662:17: -> ^( FG_PROXIMITY ftsFieldGroupProximity ) + // 689:17: -> ^( FG_PROXIMITY ftsFieldGroupProximity ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:663:25: ^( FG_PROXIMITY ftsFieldGroupProximity ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:690:25: ^( FG_PROXIMITY ftsFieldGroupProximity ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_PROXIMITY, "FG_PROXIMITY"), root_1); @@ -7198,40 +7459,40 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:11: ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:11: ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest4810); - ftsFieldGroupTerm131=ftsFieldGroupTerm(); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest5359); + ftsFieldGroupTerm149=ftsFieldGroupTerm(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm131.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:52: ( ( fuzzy )=> fuzzy )? - int alt54=2; - int LA54_0 = input.LA(1); - if ( (LA54_0==TILDA) ) { - int LA54_1 = input.LA(2); - if ( (LA54_1==DECIMAL_INTEGER_LITERAL) ) { - int LA54_3 = input.LA(3); - if ( (synpred26_FTS()) ) { - alt54=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm149.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:52: ( ( fuzzy )=> fuzzy )? + int alt63=2; + int LA63_0 = input.LA(1); + if ( (LA63_0==TILDA) ) { + int LA63_1 = input.LA(2); + if ( (LA63_1==DECIMAL_INTEGER_LITERAL) ) { + int LA63_3 = input.LA(3); + if ( (synpred35_FTS()) ) { + alt63=1; } } - else if ( (LA54_1==FLOATING_POINT_LITERAL) ) { - int LA54_4 = input.LA(3); - if ( (synpred26_FTS()) ) { - alt54=1; + else if ( (LA63_1==FLOATING_POINT_LITERAL) ) { + int LA63_4 = input.LA(3); + if ( (synpred35_FTS()) ) { + alt63=1; } } } - switch (alt54) { + switch (alt63) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:54: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:54: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest4820); - fuzzy132=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5369); + fuzzy150=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy132.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy150.getTree()); } break; @@ -7249,14 +7510,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 665:17: -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) + // 692:17: -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:666:25: ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:693:25: ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_TERM, "FG_TERM"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTerm.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:666:53: ( fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:693:53: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -7274,47 +7535,47 @@ public class FTSParser extends Parser { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:11: ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:11: ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest4891); - ftsFieldGroupExactTerm133=ftsFieldGroupExactTerm(); + pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest5440); + ftsFieldGroupExactTerm151=ftsFieldGroupExactTerm(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupExactTerm.add(ftsFieldGroupExactTerm133.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:62: ( ( fuzzy )=> fuzzy )? - int alt55=2; - int LA55_0 = input.LA(1); - if ( (LA55_0==TILDA) ) { - int LA55_1 = input.LA(2); - if ( (LA55_1==DECIMAL_INTEGER_LITERAL) ) { - int LA55_3 = input.LA(3); - if ( (synpred28_FTS()) ) { - alt55=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupExactTerm.add(ftsFieldGroupExactTerm151.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:62: ( ( fuzzy )=> fuzzy )? + int alt64=2; + int LA64_0 = input.LA(1); + if ( (LA64_0==TILDA) ) { + int LA64_1 = input.LA(2); + if ( (LA64_1==DECIMAL_INTEGER_LITERAL) ) { + int LA64_3 = input.LA(3); + if ( (synpred37_FTS()) ) { + alt64=1; } } - else if ( (LA55_1==FLOATING_POINT_LITERAL) ) { - int LA55_4 = input.LA(3); - if ( (synpred28_FTS()) ) { - alt55=1; + else if ( (LA64_1==FLOATING_POINT_LITERAL) ) { + int LA64_4 = input.LA(3); + if ( (synpred37_FTS()) ) { + alt64=1; } } } - switch (alt55) { + switch (alt64) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:64: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:64: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest4901); - fuzzy134=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5450); + fuzzy152=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy134.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy152.getTree()); } break; } // AST REWRITE - // elements: ftsFieldGroupExactTerm, fuzzy + // elements: fuzzy, ftsFieldGroupExactTerm // token labels: // rule labels: retval // token list labels: @@ -7325,14 +7586,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 668:17: -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) + // 695:17: -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:669:25: ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:696:25: ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_EXACT_TERM, "FG_EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupExactTerm.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:669:64: ( fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:696:64: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -7350,41 +7611,41 @@ public class FTSParser extends Parser { } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:11: ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:11: ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? { - pushFollow(FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest4972); - ftsFieldGroupPhrase135=ftsFieldGroupPhrase(); + pushFollow(FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest5521); + ftsFieldGroupPhrase153=ftsFieldGroupPhrase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupPhrase.add(ftsFieldGroupPhrase135.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:56: ( ( slop )=> slop )? - int alt56=2; - int LA56_0 = input.LA(1); - if ( (LA56_0==TILDA) ) { - int LA56_1 = input.LA(2); - if ( (LA56_1==DECIMAL_INTEGER_LITERAL) ) { - int LA56_3 = input.LA(3); - if ( (synpred30_FTS()) ) { - alt56=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupPhrase.add(ftsFieldGroupPhrase153.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:56: ( ( slop )=> slop )? + int alt65=2; + int LA65_0 = input.LA(1); + if ( (LA65_0==TILDA) ) { + int LA65_1 = input.LA(2); + if ( (LA65_1==DECIMAL_INTEGER_LITERAL) ) { + int LA65_3 = input.LA(3); + if ( (synpred39_FTS()) ) { + alt65=1; } } } - switch (alt56) { + switch (alt65) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:58: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:58: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsFieldGroupTest4982); - slop136=slop(); + pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5531); + slop154=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop136.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop154.getTree()); } break; } // AST REWRITE - // elements: slop, ftsFieldGroupPhrase + // elements: ftsFieldGroupPhrase, slop // token labels: // rule labels: retval // token list labels: @@ -7395,14 +7656,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 671:17: -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) + // 698:17: -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:672:25: ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:699:25: ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_PHRASE, "FG_PHRASE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupPhrase.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:672:57: ( slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:699:57: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -7420,34 +7681,34 @@ public class FTSParser extends Parser { } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:11: ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:11: ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? { - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5053); - ftsFieldGroupExactPhrase137=ftsFieldGroupExactPhrase(); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5602); + ftsFieldGroupExactPhrase155=ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase137.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:66: ( ( slop )=> slop )? - int alt57=2; - int LA57_0 = input.LA(1); - if ( (LA57_0==TILDA) ) { - int LA57_1 = input.LA(2); - if ( (LA57_1==DECIMAL_INTEGER_LITERAL) ) { - int LA57_3 = input.LA(3); - if ( (synpred32_FTS()) ) { - alt57=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase155.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:66: ( ( slop )=> slop )? + int alt66=2; + int LA66_0 = input.LA(1); + if ( (LA66_0==TILDA) ) { + int LA66_1 = input.LA(2); + if ( (LA66_1==DECIMAL_INTEGER_LITERAL) ) { + int LA66_3 = input.LA(3); + if ( (synpred41_FTS()) ) { + alt66=1; } } } - switch (alt57) { + switch (alt66) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:68: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:68: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5063); - slop138=slop(); + pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5612); + slop156=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop138.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop156.getTree()); } break; @@ -7465,14 +7726,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 674:17: -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) + // 701:17: -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:675:25: ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:702:25: ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_EXACT_PHRASE, "FG_EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupExactPhrase.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:675:68: ( slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:702:68: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -7490,41 +7751,41 @@ public class FTSParser extends Parser { } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:11: ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:11: ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? { - pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5134); - ftsFieldGroupTokenisedPhrase139=ftsFieldGroupTokenisedPhrase(); + pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5683); + ftsFieldGroupTokenisedPhrase157=ftsFieldGroupTokenisedPhrase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTokenisedPhrase.add(ftsFieldGroupTokenisedPhrase139.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:74: ( ( slop )=> slop )? - int alt58=2; - int LA58_0 = input.LA(1); - if ( (LA58_0==TILDA) ) { - int LA58_1 = input.LA(2); - if ( (LA58_1==DECIMAL_INTEGER_LITERAL) ) { - int LA58_3 = input.LA(3); - if ( (synpred34_FTS()) ) { - alt58=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupTokenisedPhrase.add(ftsFieldGroupTokenisedPhrase157.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:74: ( ( slop )=> slop )? + int alt67=2; + int LA67_0 = input.LA(1); + if ( (LA67_0==TILDA) ) { + int LA67_1 = input.LA(2); + if ( (LA67_1==DECIMAL_INTEGER_LITERAL) ) { + int LA67_3 = input.LA(3); + if ( (synpred43_FTS()) ) { + alt67=1; } } } - switch (alt58) { + switch (alt67) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:76: ( slop )=> slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:76: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5144); - slop140=slop(); + pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5693); + slop158=slop(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_slop.add(slop140.getTree()); + if ( state.backtracking==0 ) stream_slop.add(slop158.getTree()); } break; } // AST REWRITE - // elements: slop, ftsFieldGroupTokenisedPhrase + // elements: ftsFieldGroupTokenisedPhrase, slop // token labels: // rule labels: retval // token list labels: @@ -7535,14 +7796,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 677:17: -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) + // 704:17: -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:678:25: ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:705:25: ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_PHRASE, "FG_PHRASE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTokenisedPhrase.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:678:66: ( slop )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:705:66: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -7560,47 +7821,47 @@ public class FTSParser extends Parser { } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:11: ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:11: ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5215); - ftsFieldGroupSynonym141=ftsFieldGroupSynonym(); + pushFollow(FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5764); + ftsFieldGroupSynonym159=ftsFieldGroupSynonym(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupSynonym.add(ftsFieldGroupSynonym141.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:58: ( ( fuzzy )=> fuzzy )? - int alt59=2; - int LA59_0 = input.LA(1); - if ( (LA59_0==TILDA) ) { - int LA59_1 = input.LA(2); - if ( (LA59_1==DECIMAL_INTEGER_LITERAL) ) { - int LA59_3 = input.LA(3); - if ( (synpred36_FTS()) ) { - alt59=1; + if ( state.backtracking==0 ) stream_ftsFieldGroupSynonym.add(ftsFieldGroupSynonym159.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:58: ( ( fuzzy )=> fuzzy )? + int alt68=2; + int LA68_0 = input.LA(1); + if ( (LA68_0==TILDA) ) { + int LA68_1 = input.LA(2); + if ( (LA68_1==DECIMAL_INTEGER_LITERAL) ) { + int LA68_3 = input.LA(3); + if ( (synpred45_FTS()) ) { + alt68=1; } } - else if ( (LA59_1==FLOATING_POINT_LITERAL) ) { - int LA59_4 = input.LA(3); - if ( (synpred36_FTS()) ) { - alt59=1; + else if ( (LA68_1==FLOATING_POINT_LITERAL) ) { + int LA68_4 = input.LA(3); + if ( (synpred45_FTS()) ) { + alt68=1; } } } - switch (alt59) { + switch (alt68) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:60: ( fuzzy )=> fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:60: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5225); - fuzzy142=fuzzy(); + pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5774); + fuzzy160=fuzzy(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy142.getTree()); + if ( state.backtracking==0 ) stream_fuzzy.add(fuzzy160.getTree()); } break; } // AST REWRITE - // elements: fuzzy, ftsFieldGroupSynonym + // elements: ftsFieldGroupSynonym, fuzzy // token labels: // rule labels: retval // token list labels: @@ -7611,14 +7872,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 680:17: -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) + // 707:17: -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:681:25: ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:708:25: ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_SYNONYM, "FG_SYNONYM"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupSynonym.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:681:59: ( fuzzy )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:708:59: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -7636,13 +7897,13 @@ public class FTSParser extends Parser { } break; case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:682:11: ( ftsFieldGroupRange )=> ftsFieldGroupRange + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:11: ( ftsFieldGroupRange )=> ftsFieldGroupRange { - pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5296); - ftsFieldGroupRange143=ftsFieldGroupRange(); + pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5845); + ftsFieldGroupRange161=ftsFieldGroupRange(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupRange.add(ftsFieldGroupRange143.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupRange.add(ftsFieldGroupRange161.getTree()); // AST REWRITE // elements: ftsFieldGroupRange // token labels: @@ -7655,9 +7916,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 683:17: -> ^( FG_RANGE ftsFieldGroupRange ) + // 710:17: -> ^( FG_RANGE ftsFieldGroupRange ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:684:25: ^( FG_RANGE ftsFieldGroupRange ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:711:25: ^( FG_RANGE ftsFieldGroupRange ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_RANGE, "FG_RANGE"), root_1); @@ -7674,18 +7935,18 @@ public class FTSParser extends Parser { } break; case 9 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:685:11: LPAREN ftsFieldGroupDisjunction RPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:712:11: LPAREN ftsFieldGroupDisjunction RPAREN { - LPAREN144=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroupTest5356); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN144); + LPAREN162=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroupTest5905); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN162); - pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5358); - ftsFieldGroupDisjunction145=ftsFieldGroupDisjunction(); + pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5907); + ftsFieldGroupDisjunction163=ftsFieldGroupDisjunction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupDisjunction.add(ftsFieldGroupDisjunction145.getTree()); - RPAREN146=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroupTest5360); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN146); + if ( state.backtracking==0 ) stream_ftsFieldGroupDisjunction.add(ftsFieldGroupDisjunction163.getTree()); + RPAREN164=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroupTest5909); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN164); // AST REWRITE // elements: ftsFieldGroupDisjunction @@ -7699,7 +7960,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 686:17: -> ftsFieldGroupDisjunction + // 713:17: -> ftsFieldGroupDisjunction { adaptor.addChild(root_0, stream_ftsFieldGroupDisjunction.nextTree()); } @@ -7741,28 +8002,28 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupTerm" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:689:1: ftsFieldGroupTerm : ftsWord ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:716:1: ftsFieldGroupTerm : ftsWord ; public final FTSParser.ftsFieldGroupTerm_return ftsFieldGroupTerm() throws RecognitionException { FTSParser.ftsFieldGroupTerm_return retval = new FTSParser.ftsFieldGroupTerm_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope ftsWord147 =null; + ParserRuleReturnScope ftsWord165 =null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:690:9: ( ftsWord ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:691:9: ftsWord + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:717:9: ( ftsWord ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:718:9: ftsWord { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWord_in_ftsFieldGroupTerm5413); - ftsWord147=ftsWord(); + pushFollow(FOLLOW_ftsWord_in_ftsFieldGroupTerm5962); + ftsWord165=ftsWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWord147.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWord165.getTree()); } @@ -7795,32 +8056,32 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExactTerm" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:694:1: ftsFieldGroupExactTerm : EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:721:1: ftsFieldGroupExactTerm : EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ; public final FTSParser.ftsFieldGroupExactTerm_return ftsFieldGroupExactTerm() throws RecognitionException { FTSParser.ftsFieldGroupExactTerm_return retval = new FTSParser.ftsFieldGroupExactTerm_return(); retval.start = input.LT(1); Object root_0 = null; - Token EQUALS148=null; - ParserRuleReturnScope ftsFieldGroupTerm149 =null; + Token EQUALS166=null; + ParserRuleReturnScope ftsFieldGroupTerm167 =null; - Object EQUALS148_tree=null; + Object EQUALS166_tree=null; RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS"); RewriteRuleSubtreeStream stream_ftsFieldGroupTerm=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupTerm"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:695:9: ( EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:696:9: EQUALS ftsFieldGroupTerm + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:722:9: ( EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:723:9: EQUALS ftsFieldGroupTerm { - EQUALS148=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5446); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS148); + EQUALS166=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5995); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS166); - pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5448); - ftsFieldGroupTerm149=ftsFieldGroupTerm(); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5997); + ftsFieldGroupTerm167=ftsFieldGroupTerm(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm149.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm167.getTree()); // AST REWRITE // elements: ftsFieldGroupTerm // token labels: @@ -7833,7 +8094,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 697:17: -> ftsFieldGroupTerm + // 724:17: -> ftsFieldGroupTerm { adaptor.addChild(root_0, stream_ftsFieldGroupTerm.nextTree()); } @@ -7873,28 +8134,28 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:700:1: ftsFieldGroupPhrase : FTSPHRASE ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:727:1: ftsFieldGroupPhrase : FTSPHRASE ; public final FTSParser.ftsFieldGroupPhrase_return ftsFieldGroupPhrase() throws RecognitionException { FTSParser.ftsFieldGroupPhrase_return retval = new FTSParser.ftsFieldGroupPhrase_return(); retval.start = input.LT(1); Object root_0 = null; - Token FTSPHRASE150=null; + Token FTSPHRASE168=null; - Object FTSPHRASE150_tree=null; + Object FTSPHRASE168_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:701:9: ( FTSPHRASE ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:702:9: FTSPHRASE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:728:9: ( FTSPHRASE ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:729:9: FTSPHRASE { root_0 = (Object)adaptor.nil(); - FTSPHRASE150=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase5501); if (state.failed) return retval; + FTSPHRASE168=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase6050); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSPHRASE150_tree = (Object)adaptor.create(FTSPHRASE150); - adaptor.addChild(root_0, FTSPHRASE150_tree); + FTSPHRASE168_tree = (Object)adaptor.create(FTSPHRASE168); + adaptor.addChild(root_0, FTSPHRASE168_tree); } } @@ -7928,32 +8189,32 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExactPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:705:1: ftsFieldGroupExactPhrase : EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:732:1: ftsFieldGroupExactPhrase : EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; public final FTSParser.ftsFieldGroupExactPhrase_return ftsFieldGroupExactPhrase() throws RecognitionException { FTSParser.ftsFieldGroupExactPhrase_return retval = new FTSParser.ftsFieldGroupExactPhrase_return(); retval.start = input.LT(1); Object root_0 = null; - Token EQUALS151=null; - ParserRuleReturnScope ftsFieldGroupExactPhrase152 =null; + Token EQUALS169=null; + ParserRuleReturnScope ftsFieldGroupExactPhrase170 =null; - Object EQUALS151_tree=null; + Object EQUALS169_tree=null; RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS"); RewriteRuleSubtreeStream stream_ftsFieldGroupExactPhrase=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupExactPhrase"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:706:9: ( EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:707:9: EQUALS ftsFieldGroupExactPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:733:9: ( EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:734:9: EQUALS ftsFieldGroupExactPhrase { - EQUALS151=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase5542); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS151); + EQUALS169=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase6091); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS169); - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase5544); - ftsFieldGroupExactPhrase152=ftsFieldGroupExactPhrase(); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase6093); + ftsFieldGroupExactPhrase170=ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase152.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase170.getTree()); // AST REWRITE // elements: ftsFieldGroupExactPhrase // token labels: @@ -7966,7 +8227,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 708:17: -> ftsFieldGroupExactPhrase + // 735:17: -> ftsFieldGroupExactPhrase { adaptor.addChild(root_0, stream_ftsFieldGroupExactPhrase.nextTree()); } @@ -8006,32 +8267,32 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupTokenisedPhrase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:711:1: ftsFieldGroupTokenisedPhrase : TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:738:1: ftsFieldGroupTokenisedPhrase : TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; public final FTSParser.ftsFieldGroupTokenisedPhrase_return ftsFieldGroupTokenisedPhrase() throws RecognitionException { FTSParser.ftsFieldGroupTokenisedPhrase_return retval = new FTSParser.ftsFieldGroupTokenisedPhrase_return(); retval.start = input.LT(1); Object root_0 = null; - Token TILDA153=null; - ParserRuleReturnScope ftsFieldGroupExactPhrase154 =null; + Token TILDA171=null; + ParserRuleReturnScope ftsFieldGroupExactPhrase172 =null; - Object TILDA153_tree=null; + Object TILDA171_tree=null; RewriteRuleTokenStream stream_TILDA=new RewriteRuleTokenStream(adaptor,"token TILDA"); RewriteRuleSubtreeStream stream_ftsFieldGroupExactPhrase=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupExactPhrase"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:712:9: ( TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:713:9: TILDA ftsFieldGroupExactPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:739:9: ( TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:740:9: TILDA ftsFieldGroupExactPhrase { - TILDA153=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase5605); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TILDA.add(TILDA153); + TILDA171=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase6154); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TILDA.add(TILDA171); - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase5607); - ftsFieldGroupExactPhrase154=ftsFieldGroupExactPhrase(); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase6156); + ftsFieldGroupExactPhrase172=ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase154.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase172.getTree()); // AST REWRITE // elements: ftsFieldGroupExactPhrase // token labels: @@ -8044,7 +8305,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 714:17: -> ftsFieldGroupExactPhrase + // 741:17: -> ftsFieldGroupExactPhrase { adaptor.addChild(root_0, stream_ftsFieldGroupExactPhrase.nextTree()); } @@ -8084,32 +8345,32 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupSynonym" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:717:1: ftsFieldGroupSynonym : TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:744:1: ftsFieldGroupSynonym : TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ; public final FTSParser.ftsFieldGroupSynonym_return ftsFieldGroupSynonym() throws RecognitionException { FTSParser.ftsFieldGroupSynonym_return retval = new FTSParser.ftsFieldGroupSynonym_return(); retval.start = input.LT(1); Object root_0 = null; - Token TILDA155=null; - ParserRuleReturnScope ftsFieldGroupTerm156 =null; + Token TILDA173=null; + ParserRuleReturnScope ftsFieldGroupTerm174 =null; - Object TILDA155_tree=null; + Object TILDA173_tree=null; RewriteRuleTokenStream stream_TILDA=new RewriteRuleTokenStream(adaptor,"token TILDA"); RewriteRuleSubtreeStream stream_ftsFieldGroupTerm=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupTerm"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:718:9: ( TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:719:9: TILDA ftsFieldGroupTerm + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:745:9: ( TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:746:9: TILDA ftsFieldGroupTerm { - TILDA155=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupSynonym5660); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TILDA.add(TILDA155); + TILDA173=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupSynonym6209); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TILDA.add(TILDA173); - pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym5662); - ftsFieldGroupTerm156=ftsFieldGroupTerm(); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym6211); + ftsFieldGroupTerm174=ftsFieldGroupTerm(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm156.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm174.getTree()); // AST REWRITE // elements: ftsFieldGroupTerm // token labels: @@ -8122,7 +8383,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 720:17: -> ftsFieldGroupTerm + // 747:17: -> ftsFieldGroupTerm { adaptor.addChild(root_0, stream_ftsFieldGroupTerm.nextTree()); } @@ -8162,123 +8423,123 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupProximity" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:723:1: ftsFieldGroupProximity : ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:750:1: ftsFieldGroupProximity : ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ; public final FTSParser.ftsFieldGroupProximity_return ftsFieldGroupProximity() throws RecognitionException { FTSParser.ftsFieldGroupProximity_return retval = new FTSParser.ftsFieldGroupProximity_return(); retval.start = input.LT(1); Object root_0 = null; - ParserRuleReturnScope ftsFieldGroupProximityTerm157 =null; - ParserRuleReturnScope proximityGroup158 =null; - ParserRuleReturnScope ftsFieldGroupProximityTerm159 =null; + ParserRuleReturnScope ftsFieldGroupProximityTerm175 =null; + ParserRuleReturnScope proximityGroup176 =null; + ParserRuleReturnScope ftsFieldGroupProximityTerm177 =null; RewriteRuleSubtreeStream stream_proximityGroup=new RewriteRuleSubtreeStream(adaptor,"rule proximityGroup"); RewriteRuleSubtreeStream stream_ftsFieldGroupProximityTerm=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupProximityTerm"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:724:9: ( ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:725:9: ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:751:9: ( ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:9: ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ { - pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity5715); - ftsFieldGroupProximityTerm157=ftsFieldGroupProximityTerm(); + pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6264); + ftsFieldGroupProximityTerm175=ftsFieldGroupProximityTerm(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupProximityTerm.add(ftsFieldGroupProximityTerm157.getTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:725:36: ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ - int cnt61=0; - loop61: + if ( state.backtracking==0 ) stream_ftsFieldGroupProximityTerm.add(ftsFieldGroupProximityTerm175.getTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:36: ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ + int cnt70=0; + loop70: while (true) { - int alt61=2; - int LA61_0 = input.LA(1); - if ( (LA61_0==STAR) ) { + int alt70=2; + int LA70_0 = input.LA(1); + if ( (LA70_0==STAR) ) { switch ( input.LA(2) ) { case STAR: { - int LA61_3 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_3 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case NOT: { - int LA61_4 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_4 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case ID: { - int LA61_5 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_5 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FTSWORD: { - int LA61_6 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_6 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FTSPRE: { - int LA61_7 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_7 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FTSWILD: { - int LA61_8 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_8 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case TO: { - int LA61_9 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_9 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case DECIMAL_INTEGER_LITERAL: { - int LA61_10 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_10 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FLOATING_POINT_LITERAL: { - int LA61_11 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_11 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case DATETIME: { - int LA61_12 = input.LA(3); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_12 = input.LA(3); + if ( (synpred47_FTS()) ) { + alt70=1; } } @@ -8288,45 +8549,45 @@ public class FTSParser extends Parser { switch ( input.LA(3) ) { case ID: { - int LA61_16 = input.LA(4); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_16 = input.LA(4); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case TO: { - int LA61_17 = input.LA(4); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_17 = input.LA(4); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case OR: { - int LA61_18 = input.LA(4); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_18 = input.LA(4); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case AND: { - int LA61_19 = input.LA(4); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_19 = input.LA(4); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case NOT: { - int LA61_20 = input.LA(4); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_20 = input.LA(4); + if ( (synpred47_FTS()) ) { + alt70=1; } } @@ -8336,97 +8597,97 @@ public class FTSParser extends Parser { break; case LPAREN: { - int LA61_14 = input.LA(3); - if ( (LA61_14==DECIMAL_INTEGER_LITERAL) ) { - int LA61_21 = input.LA(4); - if ( (LA61_21==RPAREN) ) { + int LA70_14 = input.LA(3); + if ( (LA70_14==DECIMAL_INTEGER_LITERAL) ) { + int LA70_21 = input.LA(4); + if ( (LA70_21==RPAREN) ) { switch ( input.LA(5) ) { case NOT: { - int LA61_24 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_24 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case ID: { - int LA61_25 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_25 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FTSWORD: { - int LA61_26 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_26 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FTSPRE: { - int LA61_27 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_27 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FTSWILD: { - int LA61_28 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_28 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case TO: { - int LA61_29 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_29 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case DECIMAL_INTEGER_LITERAL: { - int LA61_30 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_30 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case FLOATING_POINT_LITERAL: { - int LA61_31 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_31 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case DATETIME: { - int LA61_32 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_32 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case STAR: { - int LA61_33 = input.LA(6); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_33 = input.LA(6); + if ( (synpred47_FTS()) ) { + alt70=1; } } @@ -8436,45 +8697,45 @@ public class FTSParser extends Parser { switch ( input.LA(6) ) { case ID: { - int LA61_16 = input.LA(7); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_16 = input.LA(7); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case TO: { - int LA61_17 = input.LA(7); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_17 = input.LA(7); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case OR: { - int LA61_18 = input.LA(7); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_18 = input.LA(7); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case AND: { - int LA61_19 = input.LA(7); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_19 = input.LA(7); + if ( (synpred47_FTS()) ) { + alt70=1; } } break; case NOT: { - int LA61_20 = input.LA(7); - if ( (synpred38_FTS()) ) { - alt61=1; + int LA70_20 = input.LA(7); + if ( (synpred47_FTS()) ) { + alt70=1; } } @@ -8486,8 +8747,8 @@ public class FTSParser extends Parser { } } - else if ( (LA61_14==RPAREN) && (synpred38_FTS())) { - alt61=1; + else if ( (LA70_14==RPAREN) && (synpred47_FTS())) { + alt70=1; } } @@ -8495,34 +8756,34 @@ public class FTSParser extends Parser { } } - switch (alt61) { + switch (alt70) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:725:38: ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:38: ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm { - pushFollow(FOLLOW_proximityGroup_in_ftsFieldGroupProximity5725); - proximityGroup158=proximityGroup(); + pushFollow(FOLLOW_proximityGroup_in_ftsFieldGroupProximity6274); + proximityGroup176=proximityGroup(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_proximityGroup.add(proximityGroup158.getTree()); - pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity5727); - ftsFieldGroupProximityTerm159=ftsFieldGroupProximityTerm(); + if ( state.backtracking==0 ) stream_proximityGroup.add(proximityGroup176.getTree()); + pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6276); + ftsFieldGroupProximityTerm177=ftsFieldGroupProximityTerm(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsFieldGroupProximityTerm.add(ftsFieldGroupProximityTerm159.getTree()); + if ( state.backtracking==0 ) stream_ftsFieldGroupProximityTerm.add(ftsFieldGroupProximityTerm177.getTree()); } break; default : - if ( cnt61 >= 1 ) break loop61; + if ( cnt70 >= 1 ) break loop70; if (state.backtracking>0) {state.failed=true; return retval;} - EarlyExitException eee = new EarlyExitException(61, input); + EarlyExitException eee = new EarlyExitException(70, input); throw eee; } - cnt61++; + cnt70++; } // AST REWRITE - // elements: ftsFieldGroupProximityTerm, proximityGroup, ftsFieldGroupProximityTerm + // elements: proximityGroup, ftsFieldGroupProximityTerm, ftsFieldGroupProximityTerm // token labels: // rule labels: retval // token list labels: @@ -8533,18 +8794,18 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 726:17: -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ + // 753:17: -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ { adaptor.addChild(root_0, stream_ftsFieldGroupProximityTerm.nextTree()); - if ( !(stream_ftsFieldGroupProximityTerm.hasNext()||stream_proximityGroup.hasNext()) ) { + if ( !(stream_proximityGroup.hasNext()||stream_ftsFieldGroupProximityTerm.hasNext()) ) { throw new RewriteEarlyExitException(); } - while ( stream_ftsFieldGroupProximityTerm.hasNext()||stream_proximityGroup.hasNext() ) { + while ( stream_proximityGroup.hasNext()||stream_ftsFieldGroupProximityTerm.hasNext() ) { adaptor.addChild(root_0, stream_proximityGroup.nextTree()); adaptor.addChild(root_0, stream_ftsFieldGroupProximityTerm.nextTree()); } - stream_ftsFieldGroupProximityTerm.reset(); stream_proximityGroup.reset(); + stream_ftsFieldGroupProximityTerm.reset(); } @@ -8583,261 +8844,261 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupProximityTerm" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:729:1: ftsFieldGroupProximityTerm : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:756:1: ftsFieldGroupProximityTerm : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); public final FTSParser.ftsFieldGroupProximityTerm_return ftsFieldGroupProximityTerm() throws RecognitionException { FTSParser.ftsFieldGroupProximityTerm_return retval = new FTSParser.ftsFieldGroupProximityTerm_return(); retval.start = input.LT(1); Object root_0 = null; - Token ID160=null; - Token FTSWORD161=null; - Token FTSPRE162=null; - Token FTSWILD163=null; - Token NOT164=null; - Token TO165=null; - Token DECIMAL_INTEGER_LITERAL166=null; - Token FLOATING_POINT_LITERAL167=null; - Token DATETIME168=null; - Token STAR169=null; - Token URI170=null; - ParserRuleReturnScope identifier171 =null; + Token ID178=null; + Token FTSWORD179=null; + Token FTSPRE180=null; + Token FTSWILD181=null; + Token NOT182=null; + Token TO183=null; + Token DECIMAL_INTEGER_LITERAL184=null; + Token FLOATING_POINT_LITERAL185=null; + Token DATETIME186=null; + Token STAR187=null; + Token URI188=null; + ParserRuleReturnScope identifier189 =null; - Object ID160_tree=null; - Object FTSWORD161_tree=null; - Object FTSPRE162_tree=null; - Object FTSWILD163_tree=null; - Object NOT164_tree=null; - Object TO165_tree=null; - Object DECIMAL_INTEGER_LITERAL166_tree=null; - Object FLOATING_POINT_LITERAL167_tree=null; - Object DATETIME168_tree=null; - Object STAR169_tree=null; - Object URI170_tree=null; + Object ID178_tree=null; + Object FTSWORD179_tree=null; + Object FTSPRE180_tree=null; + Object FTSWILD181_tree=null; + Object NOT182_tree=null; + Object TO183_tree=null; + Object DECIMAL_INTEGER_LITERAL184_tree=null; + Object FLOATING_POINT_LITERAL185_tree=null; + Object DATETIME186_tree=null; + Object STAR187_tree=null; + Object URI188_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:730:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) - int alt62=11; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:757:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) + int alt71=11; switch ( input.LA(1) ) { case ID: { - alt62=1; + alt71=1; } break; case FTSWORD: { - alt62=2; + alt71=2; } break; case FTSPRE: { - alt62=3; + alt71=3; } break; case FTSWILD: { - alt62=4; + alt71=4; } break; case NOT: { - alt62=5; + alt71=5; } break; case TO: { - alt62=6; + alt71=6; } break; case DECIMAL_INTEGER_LITERAL: { - alt62=7; + alt71=7; } break; case FLOATING_POINT_LITERAL: { - alt62=8; + alt71=8; } break; case DATETIME: { - alt62=9; + alt71=9; } break; case STAR: { - alt62=10; + alt71=10; } break; case URI: { - alt62=11; + alt71=11; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 62, 0, input); + new NoViableAltException("", 71, 0, input); throw nvae; } - switch (alt62) { + switch (alt71) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:731:11: ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:758:11: ID { root_0 = (Object)adaptor.nil(); - ID160=(Token)match(input,ID,FOLLOW_ID_in_ftsFieldGroupProximityTerm5791); if (state.failed) return retval; + ID178=(Token)match(input,ID,FOLLOW_ID_in_ftsFieldGroupProximityTerm6340); if (state.failed) return retval; if ( state.backtracking==0 ) { - ID160_tree = (Object)adaptor.create(ID160); - adaptor.addChild(root_0, ID160_tree); + ID178_tree = (Object)adaptor.create(ID178); + adaptor.addChild(root_0, ID178_tree); } } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:732:11: FTSWORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:759:11: FTSWORD { root_0 = (Object)adaptor.nil(); - FTSWORD161=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm5803); if (state.failed) return retval; + FTSWORD179=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm6352); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSWORD161_tree = (Object)adaptor.create(FTSWORD161); - adaptor.addChild(root_0, FTSWORD161_tree); + FTSWORD179_tree = (Object)adaptor.create(FTSWORD179); + adaptor.addChild(root_0, FTSWORD179_tree); } } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:733:11: FTSPRE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:760:11: FTSPRE { root_0 = (Object)adaptor.nil(); - FTSPRE162=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm5815); if (state.failed) return retval; + FTSPRE180=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm6364); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSPRE162_tree = (Object)adaptor.create(FTSPRE162); - adaptor.addChild(root_0, FTSPRE162_tree); + FTSPRE180_tree = (Object)adaptor.create(FTSPRE180); + adaptor.addChild(root_0, FTSPRE180_tree); } } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:734:11: FTSWILD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:761:11: FTSWILD { root_0 = (Object)adaptor.nil(); - FTSWILD163=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm5827); if (state.failed) return retval; + FTSWILD181=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm6376); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSWILD163_tree = (Object)adaptor.create(FTSWILD163); - adaptor.addChild(root_0, FTSWILD163_tree); + FTSWILD181_tree = (Object)adaptor.create(FTSWILD181); + adaptor.addChild(root_0, FTSWILD181_tree); } } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:735:11: NOT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:762:11: NOT { root_0 = (Object)adaptor.nil(); - NOT164=(Token)match(input,NOT,FOLLOW_NOT_in_ftsFieldGroupProximityTerm5839); if (state.failed) return retval; + NOT182=(Token)match(input,NOT,FOLLOW_NOT_in_ftsFieldGroupProximityTerm6388); if (state.failed) return retval; if ( state.backtracking==0 ) { - NOT164_tree = (Object)adaptor.create(NOT164); - adaptor.addChild(root_0, NOT164_tree); + NOT182_tree = (Object)adaptor.create(NOT182); + adaptor.addChild(root_0, NOT182_tree); } } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:736:11: TO + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:763:11: TO { root_0 = (Object)adaptor.nil(); - TO165=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupProximityTerm5851); if (state.failed) return retval; + TO183=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupProximityTerm6400); if (state.failed) return retval; if ( state.backtracking==0 ) { - TO165_tree = (Object)adaptor.create(TO165); - adaptor.addChild(root_0, TO165_tree); + TO183_tree = (Object)adaptor.create(TO183); + adaptor.addChild(root_0, TO183_tree); } } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:737:11: DECIMAL_INTEGER_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:764:11: DECIMAL_INTEGER_LITERAL { root_0 = (Object)adaptor.nil(); - DECIMAL_INTEGER_LITERAL166=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm5863); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL184=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm6412); if (state.failed) return retval; if ( state.backtracking==0 ) { - DECIMAL_INTEGER_LITERAL166_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL166); - adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL166_tree); + DECIMAL_INTEGER_LITERAL184_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL184); + adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL184_tree); } } break; case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:738:11: FLOATING_POINT_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:765:11: FLOATING_POINT_LITERAL { root_0 = (Object)adaptor.nil(); - FLOATING_POINT_LITERAL167=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm5875); if (state.failed) return retval; + FLOATING_POINT_LITERAL185=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm6424); if (state.failed) return retval; if ( state.backtracking==0 ) { - FLOATING_POINT_LITERAL167_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL167); - adaptor.addChild(root_0, FLOATING_POINT_LITERAL167_tree); + FLOATING_POINT_LITERAL185_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL185); + adaptor.addChild(root_0, FLOATING_POINT_LITERAL185_tree); } } break; case 9 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:739:11: DATETIME + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:766:11: DATETIME { root_0 = (Object)adaptor.nil(); - DATETIME168=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm5887); if (state.failed) return retval; + DATETIME186=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm6436); if (state.failed) return retval; if ( state.backtracking==0 ) { - DATETIME168_tree = (Object)adaptor.create(DATETIME168); - adaptor.addChild(root_0, DATETIME168_tree); + DATETIME186_tree = (Object)adaptor.create(DATETIME186); + adaptor.addChild(root_0, DATETIME186_tree); } } break; case 10 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:740:11: STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:767:11: STAR { root_0 = (Object)adaptor.nil(); - STAR169=(Token)match(input,STAR,FOLLOW_STAR_in_ftsFieldGroupProximityTerm5899); if (state.failed) return retval; + STAR187=(Token)match(input,STAR,FOLLOW_STAR_in_ftsFieldGroupProximityTerm6448); if (state.failed) return retval; if ( state.backtracking==0 ) { - STAR169_tree = (Object)adaptor.create(STAR169); - adaptor.addChild(root_0, STAR169_tree); + STAR187_tree = (Object)adaptor.create(STAR187); + adaptor.addChild(root_0, STAR187_tree); } } break; case 11 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:741:11: URI identifier + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:768:11: URI identifier { root_0 = (Object)adaptor.nil(); - URI170=(Token)match(input,URI,FOLLOW_URI_in_ftsFieldGroupProximityTerm5911); if (state.failed) return retval; + URI188=(Token)match(input,URI,FOLLOW_URI_in_ftsFieldGroupProximityTerm6460); if (state.failed) return retval; if ( state.backtracking==0 ) { - URI170_tree = (Object)adaptor.create(URI170); - adaptor.addChild(root_0, URI170_tree); + URI188_tree = (Object)adaptor.create(URI188); + adaptor.addChild(root_0, URI188_tree); } - pushFollow(FOLLOW_identifier_in_ftsFieldGroupProximityTerm5913); - identifier171=identifier(); + pushFollow(FOLLOW_identifier_in_ftsFieldGroupProximityTerm6462); + identifier189=identifier(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier171.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier189.getTree()); } break; @@ -8872,67 +9133,67 @@ public class FTSParser extends Parser { // $ANTLR start "proximityGroup" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:744:1: proximityGroup : STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:771:1: proximityGroup : STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ; public final FTSParser.proximityGroup_return proximityGroup() throws RecognitionException { FTSParser.proximityGroup_return retval = new FTSParser.proximityGroup_return(); retval.start = input.LT(1); Object root_0 = null; - Token STAR172=null; - Token LPAREN173=null; - Token DECIMAL_INTEGER_LITERAL174=null; - Token RPAREN175=null; + Token STAR190=null; + Token LPAREN191=null; + Token DECIMAL_INTEGER_LITERAL192=null; + Token RPAREN193=null; - Object STAR172_tree=null; - Object LPAREN173_tree=null; - Object DECIMAL_INTEGER_LITERAL174_tree=null; - Object RPAREN175_tree=null; + Object STAR190_tree=null; + Object LPAREN191_tree=null; + Object DECIMAL_INTEGER_LITERAL192_tree=null; + Object RPAREN193_tree=null; RewriteRuleTokenStream stream_DECIMAL_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token DECIMAL_INTEGER_LITERAL"); RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR"); RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:745:9: ( STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:746:9: STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:772:9: ( STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:9: STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? { - STAR172=(Token)match(input,STAR,FOLLOW_STAR_in_proximityGroup5946); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_STAR.add(STAR172); + STAR190=(Token)match(input,STAR,FOLLOW_STAR_in_proximityGroup6495); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STAR.add(STAR190); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:746:14: ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? - int alt64=2; - int LA64_0 = input.LA(1); - if ( (LA64_0==LPAREN) ) { - alt64=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:14: ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? + int alt73=2; + int LA73_0 = input.LA(1); + if ( (LA73_0==LPAREN) ) { + alt73=1; } - switch (alt64) { + switch (alt73) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:746:15: LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:15: LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN { - LPAREN173=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_proximityGroup5949); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN173); + LPAREN191=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_proximityGroup6498); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN191); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:746:22: ( DECIMAL_INTEGER_LITERAL )? - int alt63=2; - int LA63_0 = input.LA(1); - if ( (LA63_0==DECIMAL_INTEGER_LITERAL) ) { - alt63=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:22: ( DECIMAL_INTEGER_LITERAL )? + int alt72=2; + int LA72_0 = input.LA(1); + if ( (LA72_0==DECIMAL_INTEGER_LITERAL) ) { + alt72=1; } - switch (alt63) { + switch (alt72) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:746:22: DECIMAL_INTEGER_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:22: DECIMAL_INTEGER_LITERAL { - DECIMAL_INTEGER_LITERAL174=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup5951); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DECIMAL_INTEGER_LITERAL.add(DECIMAL_INTEGER_LITERAL174); + DECIMAL_INTEGER_LITERAL192=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup6500); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DECIMAL_INTEGER_LITERAL.add(DECIMAL_INTEGER_LITERAL192); } break; } - RPAREN175=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_proximityGroup5954); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN175); + RPAREN193=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_proximityGroup6503); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN193); } break; @@ -8951,13 +9212,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 747:17: -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) + // 774:17: -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:748:25: ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:775:25: ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROXIMITY, "PROXIMITY"), root_1); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:748:37: ( DECIMAL_INTEGER_LITERAL )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:775:37: ( DECIMAL_INTEGER_LITERAL )? if ( stream_DECIMAL_INTEGER_LITERAL.hasNext() ) { adaptor.addChild(root_1, stream_DECIMAL_INTEGER_LITERAL.nextNode()); } @@ -9003,24 +9264,24 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupRange" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:751:1: ftsFieldGroupRange : ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:778:1: ftsFieldGroupRange : ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ); public final FTSParser.ftsFieldGroupRange_return ftsFieldGroupRange() throws RecognitionException { FTSParser.ftsFieldGroupRange_return retval = new FTSParser.ftsFieldGroupRange_return(); retval.start = input.LT(1); Object root_0 = null; - Token DOTDOT177=null; - Token TO181=null; - ParserRuleReturnScope ftsRangeWord176 =null; - ParserRuleReturnScope ftsRangeWord178 =null; - ParserRuleReturnScope range_left179 =null; - ParserRuleReturnScope ftsRangeWord180 =null; - ParserRuleReturnScope ftsRangeWord182 =null; - ParserRuleReturnScope range_right183 =null; + Token DOTDOT195=null; + Token TO199=null; + ParserRuleReturnScope ftsRangeWord194 =null; + ParserRuleReturnScope ftsRangeWord196 =null; + ParserRuleReturnScope range_left197 =null; + ParserRuleReturnScope ftsRangeWord198 =null; + ParserRuleReturnScope ftsRangeWord200 =null; + ParserRuleReturnScope range_right201 =null; - Object DOTDOT177_tree=null; - Object TO181_tree=null; + Object DOTDOT195_tree=null; + Object TO199_tree=null; RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); RewriteRuleTokenStream stream_TO=new RewriteRuleTokenStream(adaptor,"token TO"); RewriteRuleSubtreeStream stream_range_left=new RewriteRuleSubtreeStream(adaptor,"rule range_left"); @@ -9028,40 +9289,40 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_range_right=new RewriteRuleSubtreeStream(adaptor,"rule range_right"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:752:9: ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ) - int alt65=2; - int LA65_0 = input.LA(1); - if ( (LA65_0==DATETIME||LA65_0==DECIMAL_INTEGER_LITERAL||LA65_0==FLOATING_POINT_LITERAL||(LA65_0 >= FTSPHRASE && LA65_0 <= FTSWORD)||LA65_0==ID||LA65_0==STAR||LA65_0==URI) ) { - alt65=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:779:9: ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ) + int alt74=2; + int LA74_0 = input.LA(1); + if ( (LA74_0==DATETIME||LA74_0==DECIMAL_INTEGER_LITERAL||LA74_0==FLOATING_POINT_LITERAL||(LA74_0 >= FTSPHRASE && LA74_0 <= FTSWORD)||LA74_0==ID||LA74_0==STAR||LA74_0==URI) ) { + alt74=1; } - else if ( ((LA65_0 >= LSQUARE && LA65_0 <= LT)) ) { - alt65=2; + else if ( ((LA74_0 >= LSQUARE && LA74_0 <= LT)) ) { + alt74=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 65, 0, input); + new NoViableAltException("", 74, 0, input); throw nvae; } - switch (alt65) { + switch (alt74) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:753:9: ftsRangeWord DOTDOT ftsRangeWord + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:780:9: ftsRangeWord DOTDOT ftsRangeWord { - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6038); - ftsRangeWord176=ftsRangeWord(); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6587); + ftsRangeWord194=ftsRangeWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord176.getTree()); - DOTDOT177=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_ftsFieldGroupRange6040); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT177); + if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord194.getTree()); + DOTDOT195=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_ftsFieldGroupRange6589); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT195); - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6042); - ftsRangeWord178=ftsRangeWord(); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6591); + ftsRangeWord196=ftsRangeWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord178.getTree()); + if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord196.getTree()); // AST REWRITE // elements: ftsRangeWord, ftsRangeWord // token labels: @@ -9074,7 +9335,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 754:17: -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE + // 781:17: -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE { adaptor.addChild(root_0, (Object)adaptor.create(INCLUSIVE, "INCLUSIVE")); adaptor.addChild(root_0, stream_ftsRangeWord.nextTree()); @@ -9089,33 +9350,33 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:755:11: range_left ftsRangeWord TO ftsRangeWord range_right + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:782:11: range_left ftsRangeWord TO ftsRangeWord range_right { - pushFollow(FOLLOW_range_left_in_ftsFieldGroupRange6080); - range_left179=range_left(); + pushFollow(FOLLOW_range_left_in_ftsFieldGroupRange6629); + range_left197=range_left(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_range_left.add(range_left179.getTree()); - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6082); - ftsRangeWord180=ftsRangeWord(); + if ( state.backtracking==0 ) stream_range_left.add(range_left197.getTree()); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6631); + ftsRangeWord198=ftsRangeWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord180.getTree()); - TO181=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupRange6084); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TO.add(TO181); + if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord198.getTree()); + TO199=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupRange6633); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TO.add(TO199); - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6086); - ftsRangeWord182=ftsRangeWord(); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6635); + ftsRangeWord200=ftsRangeWord(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord182.getTree()); - pushFollow(FOLLOW_range_right_in_ftsFieldGroupRange6088); - range_right183=range_right(); + if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord200.getTree()); + pushFollow(FOLLOW_range_right_in_ftsFieldGroupRange6637); + range_right201=range_right(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_range_right.add(range_right183.getTree()); + if ( state.backtracking==0 ) stream_range_right.add(range_right201.getTree()); // AST REWRITE - // elements: ftsRangeWord, range_left, range_right, ftsRangeWord + // elements: ftsRangeWord, ftsRangeWord, range_left, range_right // token labels: // rule labels: retval // token list labels: @@ -9126,7 +9387,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 756:17: -> range_left ftsRangeWord ftsRangeWord range_right + // 783:17: -> range_left ftsRangeWord ftsRangeWord range_right { adaptor.addChild(root_0, stream_range_left.nextTree()); adaptor.addChild(root_0, stream_ftsRangeWord.nextTree()); @@ -9171,45 +9432,45 @@ public class FTSParser extends Parser { // $ANTLR start "range_left" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:759:1: range_left : ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:786:1: range_left : ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ); public final FTSParser.range_left_return range_left() throws RecognitionException { FTSParser.range_left_return retval = new FTSParser.range_left_return(); retval.start = input.LT(1); Object root_0 = null; - Token LSQUARE184=null; - Token LT185=null; + Token LSQUARE202=null; + Token LT203=null; - Object LSQUARE184_tree=null; - Object LT185_tree=null; + Object LSQUARE202_tree=null; + Object LT203_tree=null; RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE"); RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:760:9: ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ) - int alt66=2; - int LA66_0 = input.LA(1); - if ( (LA66_0==LSQUARE) ) { - alt66=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:787:9: ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ) + int alt75=2; + int LA75_0 = input.LA(1); + if ( (LA75_0==LSQUARE) ) { + alt75=1; } - else if ( (LA66_0==LT) ) { - alt66=2; + else if ( (LA75_0==LT) ) { + alt75=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 66, 0, input); + new NoViableAltException("", 75, 0, input); throw nvae; } - switch (alt66) { + switch (alt75) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:761:9: LSQUARE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:788:9: LSQUARE { - LSQUARE184=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_range_left6147); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE184); + LSQUARE202=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_range_left6696); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE202); // AST REWRITE // elements: @@ -9223,7 +9484,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 762:17: -> INCLUSIVE + // 789:17: -> INCLUSIVE { adaptor.addChild(root_0, (Object)adaptor.create(INCLUSIVE, "INCLUSIVE")); } @@ -9235,10 +9496,10 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:763:11: LT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:790:11: LT { - LT185=(Token)match(input,LT,FOLLOW_LT_in_range_left6179); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LT.add(LT185); + LT203=(Token)match(input,LT,FOLLOW_LT_in_range_left6728); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LT.add(LT203); // AST REWRITE // elements: @@ -9252,7 +9513,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 764:17: -> EXCLUSIVE + // 791:17: -> EXCLUSIVE { adaptor.addChild(root_0, (Object)adaptor.create(EXCLUSIVE, "EXCLUSIVE")); } @@ -9294,45 +9555,45 @@ public class FTSParser extends Parser { // $ANTLR start "range_right" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:767:1: range_right : ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:794:1: range_right : ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ); public final FTSParser.range_right_return range_right() throws RecognitionException { FTSParser.range_right_return retval = new FTSParser.range_right_return(); retval.start = input.LT(1); Object root_0 = null; - Token RSQUARE186=null; - Token GT187=null; + Token RSQUARE204=null; + Token GT205=null; - Object RSQUARE186_tree=null; - Object GT187_tree=null; + Object RSQUARE204_tree=null; + Object GT205_tree=null; RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE"); RewriteRuleTokenStream stream_GT=new RewriteRuleTokenStream(adaptor,"token GT"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:768:9: ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ) - int alt67=2; - int LA67_0 = input.LA(1); - if ( (LA67_0==RSQUARE) ) { - alt67=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:795:9: ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ) + int alt76=2; + int LA76_0 = input.LA(1); + if ( (LA76_0==RSQUARE) ) { + alt76=1; } - else if ( (LA67_0==GT) ) { - alt67=2; + else if ( (LA76_0==GT) ) { + alt76=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 67, 0, input); + new NoViableAltException("", 76, 0, input); throw nvae; } - switch (alt67) { + switch (alt76) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:769:9: RSQUARE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:796:9: RSQUARE { - RSQUARE186=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_range_right6232); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE186); + RSQUARE204=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_range_right6781); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE204); // AST REWRITE // elements: @@ -9346,7 +9607,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 770:17: -> INCLUSIVE + // 797:17: -> INCLUSIVE { adaptor.addChild(root_0, (Object)adaptor.create(INCLUSIVE, "INCLUSIVE")); } @@ -9358,10 +9619,10 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:771:11: GT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:798:11: GT { - GT187=(Token)match(input,GT,FOLLOW_GT_in_range_right6264); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_GT.add(GT187); + GT205=(Token)match(input,GT,FOLLOW_GT_in_range_right6813); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_GT.add(GT205); // AST REWRITE // elements: @@ -9375,7 +9636,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 772:17: -> EXCLUSIVE + // 799:17: -> EXCLUSIVE { adaptor.addChild(root_0, (Object)adaptor.create(EXCLUSIVE, "EXCLUSIVE")); } @@ -9417,333 +9678,1271 @@ public class FTSParser extends Parser { // $ANTLR start "fieldReference" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:777:1: fieldReference : ( AT )? ( ( prefix )=> prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:802:1: fieldReference : ( fieldReferenceWithPrefix | fieldReferenceWithoutPrefix ); public final FTSParser.fieldReference_return fieldReference() throws RecognitionException { FTSParser.fieldReference_return retval = new FTSParser.fieldReference_return(); retval.start = input.LT(1); Object root_0 = null; - Token AT188=null; - ParserRuleReturnScope prefix189 =null; - ParserRuleReturnScope uri190 =null; - ParserRuleReturnScope identifier191 =null; + ParserRuleReturnScope fieldReferenceWithPrefix206 =null; + ParserRuleReturnScope fieldReferenceWithoutPrefix207 =null; - Object AT188_tree=null; - RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT"); - RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); - RewriteRuleSubtreeStream stream_prefix=new RewriteRuleSubtreeStream(adaptor,"rule prefix"); - RewriteRuleSubtreeStream stream_uri=new RewriteRuleSubtreeStream(adaptor,"rule uri"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:778:9: ( ( AT )? ( ( prefix )=> prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:779:9: ( AT )? ( ( prefix )=> prefix | uri )? identifier - { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:779:9: ( AT )? - int alt68=2; - int LA68_0 = input.LA(1); - if ( (LA68_0==AT) ) { - alt68=1; - } - switch (alt68) { - case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:779:9: AT - { - AT188=(Token)match(input,AT,FOLLOW_AT_in_fieldReference6320); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_AT.add(AT188); - - } - break; - - } - - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:780:9: ( ( prefix )=> prefix | uri )? - int alt69=3; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:803:9: ( fieldReferenceWithPrefix | fieldReferenceWithoutPrefix ) + int alt77=2; switch ( input.LA(1) ) { + case AT: + { + switch ( input.LA(2) ) { case ID: { - int LA69_1 = input.LA(2); - if ( (LA69_1==DOT) ) { - int LA69_7 = input.LA(3); - if ( (LA69_7==ID) ) { - int LA69_9 = input.LA(4); - if ( (LA69_9==COLON) ) { - int LA69_8 = input.LA(5); - if ( (LA69_8==ID) ) { - int LA69_11 = input.LA(6); - if ( (LA69_11==DOT) ) { - int LA69_16 = input.LA(7); - if ( (LA69_16==ID) ) { - int LA69_18 = input.LA(8); - if ( (synpred39_FTS()) ) { - alt69=1; + int LA77_2 = input.LA(3); + if ( (LA77_2==DOT) ) { + int LA77_8 = input.LA(4); + if ( (LA77_8==ID) ) { + int LA77_10 = input.LA(5); + if ( (LA77_10==COLON) ) { + switch ( input.LA(6) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(7); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 7 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } - else if ( (LA69_11==COLON) && (synpred39_FTS())) { - alt69=1; + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } - else if ( (LA69_8==TO) ) { - int LA69_12 = input.LA(6); - if ( (LA69_12==COLON) && (synpred39_FTS())) { - alt69=1; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 10, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } - else if ( (LA69_8==OR) && (synpred39_FTS())) { - alt69=1; + } + + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); } - else if ( (LA69_8==AND) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==NOT) ) { - int LA69_15 = input.LA(6); - if ( (LA69_15==COLON) && (synpred39_FTS())) { - alt69=1; + NoViableAltException nvae = + new NoViableAltException("", 77, 8, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + else if ( (LA77_2==COLON) ) { + switch ( input.LA(4) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(5); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } } } - else if ( (LA69_1==COLON) ) { - int LA69_8 = input.LA(3); - if ( (LA69_8==ID) ) { - int LA69_11 = input.LA(4); - if ( (LA69_11==DOT) ) { - int LA69_16 = input.LA(5); - if ( (LA69_16==ID) ) { - int LA69_18 = input.LA(6); - if ( (synpred39_FTS()) ) { - alt69=1; - } - } - } - else if ( (LA69_11==COLON) && (synpred39_FTS())) { - alt69=1; - } - } - else if ( (LA69_8==TO) ) { - int LA69_12 = input.LA(4); - if ( (LA69_12==COLON) && (synpred39_FTS())) { - alt69=1; - } - } - else if ( (LA69_8==OR) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==AND) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==NOT) ) { - int LA69_15 = input.LA(4); - if ( (LA69_15==COLON) && (synpred39_FTS())) { - alt69=1; + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 2, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } + } break; case TO: { - int LA69_2 = input.LA(2); - if ( (LA69_2==COLON) ) { - int LA69_8 = input.LA(3); - if ( (LA69_8==ID) ) { - int LA69_11 = input.LA(4); - if ( (LA69_11==DOT) ) { - int LA69_16 = input.LA(5); - if ( (LA69_16==ID) ) { - int LA69_18 = input.LA(6); - if ( (synpred39_FTS()) ) { - alt69=1; + int LA77_3 = input.LA(3); + if ( (LA77_3==COLON) ) { + switch ( input.LA(4) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(5); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } - else if ( (LA69_11==COLON) && (synpred39_FTS())) { - alt69=1; + } - } - else if ( (LA69_8==TO) ) { - int LA69_12 = input.LA(4); - if ( (LA69_12==COLON) && (synpred39_FTS())) { - alt69=1; + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; } - } - else if ( (LA69_8==OR) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==AND) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==NOT) ) { - int LA69_15 = input.LA(4); - if ( (LA69_15==COLON) && (synpred39_FTS())) { - alt69=1; + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 3, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } break; case OR: { - int LA69_3 = input.LA(2); - if ( (LA69_3==COLON) ) { - int LA69_8 = input.LA(3); - if ( (LA69_8==ID) ) { - int LA69_11 = input.LA(4); - if ( (LA69_11==DOT) ) { - int LA69_16 = input.LA(5); - if ( (LA69_16==ID) ) { - int LA69_18 = input.LA(6); - if ( (synpred39_FTS()) ) { - alt69=1; + int LA77_4 = input.LA(3); + if ( (LA77_4==COLON) ) { + switch ( input.LA(4) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(5); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } - else if ( (LA69_11==COLON) && (synpred39_FTS())) { - alt69=1; + } - } - else if ( (LA69_8==TO) ) { - int LA69_12 = input.LA(4); - if ( (LA69_12==COLON) && (synpred39_FTS())) { - alt69=1; + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; } - } - else if ( (LA69_8==OR) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==AND) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==NOT) ) { - int LA69_15 = input.LA(4); - if ( (LA69_15==COLON) && (synpred39_FTS())) { - alt69=1; + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 4, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } break; case AND: { - int LA69_4 = input.LA(2); - if ( (LA69_4==COLON) ) { - int LA69_8 = input.LA(3); - if ( (LA69_8==ID) ) { - int LA69_11 = input.LA(4); - if ( (LA69_11==DOT) ) { - int LA69_16 = input.LA(5); - if ( (LA69_16==ID) ) { - int LA69_18 = input.LA(6); - if ( (synpred39_FTS()) ) { - alt69=1; + int LA77_5 = input.LA(3); + if ( (LA77_5==COLON) ) { + switch ( input.LA(4) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(5); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } - else if ( (LA69_11==COLON) && (synpred39_FTS())) { - alt69=1; + } - } - else if ( (LA69_8==TO) ) { - int LA69_12 = input.LA(4); - if ( (LA69_12==COLON) && (synpred39_FTS())) { - alt69=1; + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; } - } - else if ( (LA69_8==OR) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==AND) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==NOT) ) { - int LA69_15 = input.LA(4); - if ( (LA69_15==COLON) && (synpred39_FTS())) { - alt69=1; + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 5, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } break; case NOT: { - int LA69_5 = input.LA(2); - if ( (LA69_5==COLON) ) { - int LA69_8 = input.LA(3); - if ( (LA69_8==ID) ) { - int LA69_11 = input.LA(4); - if ( (LA69_11==DOT) ) { - int LA69_16 = input.LA(5); - if ( (LA69_16==ID) ) { - int LA69_18 = input.LA(6); - if ( (synpred39_FTS()) ) { - alt69=1; + int LA77_6 = input.LA(3); + if ( (LA77_6==COLON) ) { + switch ( input.LA(4) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(5); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } - else if ( (LA69_11==COLON) && (synpred39_FTS())) { - alt69=1; + } - } - else if ( (LA69_8==TO) ) { - int LA69_12 = input.LA(4); - if ( (LA69_12==COLON) && (synpred39_FTS())) { - alt69=1; + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; } - } - else if ( (LA69_8==OR) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==AND) && (synpred39_FTS())) { - alt69=1; - } - else if ( (LA69_8==NOT) ) { - int LA69_15 = input.LA(4); - if ( (LA69_15==COLON) && (synpred39_FTS())) { - alt69=1; + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); } } } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 6, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } break; case URI: { - alt69=2; + alt77=2; } break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 77, 1, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + break; + case ID: + { + int LA77_2 = input.LA(2); + if ( (LA77_2==DOT) ) { + int LA77_8 = input.LA(3); + if ( (LA77_8==ID) ) { + int LA77_10 = input.LA(4); + if ( (LA77_10==COLON) ) { + switch ( input.LA(5) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(6); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 10, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 8, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + else if ( (LA77_2==COLON) ) { + switch ( input.LA(3) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(4); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 77, 2, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case TO: + { + int LA77_3 = input.LA(2); + if ( (LA77_3==COLON) ) { + switch ( input.LA(3) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(4); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 77, 3, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case OR: + { + int LA77_4 = input.LA(2); + if ( (LA77_4==COLON) ) { + switch ( input.LA(3) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(4); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 77, 4, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + { + int LA77_5 = input.LA(2); + if ( (LA77_5==COLON) ) { + switch ( input.LA(3) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(4); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 77, 5, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case NOT: + { + int LA77_6 = input.LA(2); + if ( (LA77_6==COLON) ) { + switch ( input.LA(3) ) { + case DATETIME: + case DECIMAL_INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case FTSPHRASE: + case FTSPRE: + case FTSWILD: + case FTSWORD: + case LPAREN: + case LSQUARE: + case LT: + case STAR: + case URI: + { + alt77=2; + } + break; + case ID: + { + int LA77_11 = input.LA(4); + if ( (LA77_11==COLON||LA77_11==DOT) ) { + alt77=1; + } + else if ( (LA77_11==DOTDOT) ) { + alt77=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 11, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case AND: + case NOT: + case OR: + case TO: + { + alt77=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { + input.consume(); + } + NoViableAltException nvae = + new NoViableAltException("", 77, 9, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 77, 6, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case URI: + { + alt77=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 77, 0, input); + throw nvae; } - switch (alt69) { + switch (alt77) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:781:19: ( prefix )=> prefix + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:804:9: fieldReferenceWithPrefix { - pushFollow(FOLLOW_prefix_in_fieldReference6357); - prefix189=prefix(); + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_fieldReference6866); + fieldReferenceWithPrefix206=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_prefix.add(prefix189.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, fieldReferenceWithPrefix206.getTree()); + } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:782:19: uri + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:805:11: fieldReferenceWithoutPrefix { - pushFollow(FOLLOW_uri_in_fieldReference6377); - uri190=uri(); + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_fieldReference6878); + fieldReferenceWithoutPrefix207=fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_uri.add(uri190.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, fieldReferenceWithoutPrefix207.getTree()); + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + + catch(RecognitionException e) + { + throw e; + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "fieldReference" + + + public static class fieldReferenceWithoutPrefix_return extends ParserRuleReturnScope { + Object tree; + @Override + public Object getTree() { return tree; } + }; + + + // $ANTLR start "fieldReferenceWithoutPrefix" + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:807:1: fieldReferenceWithoutPrefix : ( AT )? ( uri )? identifier -> ^( FIELD_REF identifier ( uri )? ) ; + public final FTSParser.fieldReferenceWithoutPrefix_return fieldReferenceWithoutPrefix() throws RecognitionException { + FTSParser.fieldReferenceWithoutPrefix_return retval = new FTSParser.fieldReferenceWithoutPrefix_return(); + retval.start = input.LT(1); + + Object root_0 = null; + + Token AT208=null; + ParserRuleReturnScope uri209 =null; + ParserRuleReturnScope identifier210 =null; + + Object AT208_tree=null; + RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT"); + RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); + RewriteRuleSubtreeStream stream_uri=new RewriteRuleSubtreeStream(adaptor,"rule uri"); + + try { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:808:9: ( ( AT )? ( uri )? identifier -> ^( FIELD_REF identifier ( uri )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: ( AT )? ( uri )? identifier + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: ( AT )? + int alt78=2; + int LA78_0 = input.LA(1); + if ( (LA78_0==AT) ) { + alt78=1; + } + switch (alt78) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: AT + { + AT208=(Token)match(input,AT,FOLLOW_AT_in_fieldReferenceWithoutPrefix6902); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_AT.add(AT208); + } break; } - pushFollow(FOLLOW_identifier_in_fieldReference6398); - identifier191=identifier(); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:810:9: ( uri )? + int alt79=2; + int LA79_0 = input.LA(1); + if ( (LA79_0==URI) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:810:9: uri + { + pushFollow(FOLLOW_uri_in_fieldReferenceWithoutPrefix6913); + uri209=uri(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_uri.add(uri209.getTree()); + } + break; + + } + + pushFollow(FOLLOW_identifier_in_fieldReferenceWithoutPrefix6924); + identifier210=identifier(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_identifier.add(identifier191.getTree()); + if ( state.backtracking==0 ) stream_identifier.add(identifier210.getTree()); // AST REWRITE - // elements: identifier, prefix, uri + // elements: identifier, uri // token labels: // rule labels: retval // token list labels: @@ -9754,20 +10953,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 785:17: -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) + // 812:17: -> ^( FIELD_REF identifier ( uri )? ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:786:25: ^( FIELD_REF identifier ( prefix )? ( uri )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:813:25: ^( FIELD_REF identifier ( uri )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_REF, "FIELD_REF"), root_1); adaptor.addChild(root_1, stream_identifier.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:786:48: ( prefix )? - if ( stream_prefix.hasNext() ) { - adaptor.addChild(root_1, stream_prefix.nextTree()); - } - stream_prefix.reset(); - - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:786:56: ( uri )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:813:48: ( uri )? if ( stream_uri.hasNext() ) { adaptor.addChild(root_1, stream_uri.nextTree()); } @@ -9802,146 +10995,67 @@ public class FTSParser extends Parser { } return retval; } - // $ANTLR end "fieldReference" + // $ANTLR end "fieldReferenceWithoutPrefix" - public static class tempReference_return extends ParserRuleReturnScope { + public static class fieldReferenceWithPrefix_return extends ParserRuleReturnScope { Object tree; @Override public Object getTree() { return tree; } }; - // $ANTLR start "tempReference" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:789:1: tempReference : ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ; - public final FTSParser.tempReference_return tempReference() throws RecognitionException { - FTSParser.tempReference_return retval = new FTSParser.tempReference_return(); + // $ANTLR start "fieldReferenceWithPrefix" + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:816:1: fieldReferenceWithPrefix : ( AT )? prefix identifier -> ^( FIELD_REF identifier prefix ) ; + public final FTSParser.fieldReferenceWithPrefix_return fieldReferenceWithPrefix() throws RecognitionException { + FTSParser.fieldReferenceWithPrefix_return retval = new FTSParser.fieldReferenceWithPrefix_return(); retval.start = input.LT(1); Object root_0 = null; - Token AT192=null; - ParserRuleReturnScope prefix193 =null; - ParserRuleReturnScope uri194 =null; - ParserRuleReturnScope identifier195 =null; + Token AT211=null; + ParserRuleReturnScope prefix212 =null; + ParserRuleReturnScope identifier213 =null; - Object AT192_tree=null; + Object AT211_tree=null; RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT"); RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); RewriteRuleSubtreeStream stream_prefix=new RewriteRuleSubtreeStream(adaptor,"rule prefix"); - RewriteRuleSubtreeStream stream_uri=new RewriteRuleSubtreeStream(adaptor,"rule uri"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:790:9: ( ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:791:9: ( AT )? ( prefix | uri )? identifier + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:817:9: ( ( AT )? prefix identifier -> ^( FIELD_REF identifier prefix ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: ( AT )? prefix identifier { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:791:9: ( AT )? - int alt70=2; - int LA70_0 = input.LA(1); - if ( (LA70_0==AT) ) { - alt70=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: ( AT )? + int alt80=2; + int LA80_0 = input.LA(1); + if ( (LA80_0==AT) ) { + alt80=1; } - switch (alt70) { + switch (alt80) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:791:9: AT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: AT { - AT192=(Token)match(input,AT,FOLLOW_AT_in_tempReference6485); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_AT.add(AT192); + AT211=(Token)match(input,AT,FOLLOW_AT_in_fieldReferenceWithPrefix7008); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_AT.add(AT211); } break; } - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:792:9: ( prefix | uri )? - int alt71=3; - switch ( input.LA(1) ) { - case ID: - { - int LA71_1 = input.LA(2); - if ( (LA71_1==DOT) ) { - int LA71_7 = input.LA(3); - if ( (LA71_7==ID) ) { - int LA71_10 = input.LA(4); - if ( (LA71_10==COLON) ) { - alt71=1; - } - } - } - else if ( (LA71_1==COLON) ) { - alt71=1; - } - } - break; - case TO: - { - int LA71_2 = input.LA(2); - if ( (LA71_2==COLON) ) { - alt71=1; - } - } - break; - case OR: - { - int LA71_3 = input.LA(2); - if ( (LA71_3==COLON) ) { - alt71=1; - } - } - break; - case AND: - { - int LA71_4 = input.LA(2); - if ( (LA71_4==COLON) ) { - alt71=1; - } - } - break; - case NOT: - { - int LA71_5 = input.LA(2); - if ( (LA71_5==COLON) ) { - alt71=1; - } - } - break; - case URI: - { - alt71=2; - } - break; - } - switch (alt71) { - case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:793:17: prefix - { - pushFollow(FOLLOW_prefix_in_tempReference6514); - prefix193=prefix(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) stream_prefix.add(prefix193.getTree()); - } - break; - case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:794:19: uri - { - pushFollow(FOLLOW_uri_in_tempReference6534); - uri194=uri(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) stream_uri.add(uri194.getTree()); - } - break; - - } - - pushFollow(FOLLOW_identifier_in_tempReference6555); - identifier195=identifier(); + pushFollow(FOLLOW_prefix_in_fieldReferenceWithPrefix7019); + prefix212=prefix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_identifier.add(identifier195.getTree()); + if ( state.backtracking==0 ) stream_prefix.add(prefix212.getTree()); + pushFollow(FOLLOW_identifier_in_fieldReferenceWithPrefix7021); + identifier213=identifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_identifier.add(identifier213.getTree()); // AST REWRITE - // elements: identifier, uri, prefix + // elements: identifier, prefix // token labels: // rule labels: retval // token list labels: @@ -9952,20 +11066,207 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 797:17: -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) + // 820:17: -> ^( FIELD_REF identifier prefix ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:798:25: ^( FIELD_REF identifier ( prefix )? ( uri )? ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:821:25: ^( FIELD_REF identifier prefix ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_REF, "FIELD_REF"), root_1); adaptor.addChild(root_1, stream_identifier.nextTree()); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:798:48: ( prefix )? + adaptor.addChild(root_1, stream_prefix.nextTree()); + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + + catch(RecognitionException e) + { + throw e; + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "fieldReferenceWithPrefix" + + + public static class tempReference_return extends ParserRuleReturnScope { + Object tree; + @Override + public Object getTree() { return tree; } + }; + + + // $ANTLR start "tempReference" + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:824:1: tempReference : ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ; + public final FTSParser.tempReference_return tempReference() throws RecognitionException { + FTSParser.tempReference_return retval = new FTSParser.tempReference_return(); + retval.start = input.LT(1); + + Object root_0 = null; + + Token AT214=null; + ParserRuleReturnScope prefix215 =null; + ParserRuleReturnScope uri216 =null; + ParserRuleReturnScope identifier217 =null; + + Object AT214_tree=null; + RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT"); + RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); + RewriteRuleSubtreeStream stream_prefix=new RewriteRuleSubtreeStream(adaptor,"rule prefix"); + RewriteRuleSubtreeStream stream_uri=new RewriteRuleSubtreeStream(adaptor,"rule uri"); + + try { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:825:9: ( ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: ( AT )? ( prefix | uri )? identifier + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: ( AT )? + int alt81=2; + int LA81_0 = input.LA(1); + if ( (LA81_0==AT) ) { + alt81=1; + } + switch (alt81) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: AT + { + AT214=(Token)match(input,AT,FOLLOW_AT_in_tempReference7104); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_AT.add(AT214); + + } + break; + + } + + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:827:9: ( prefix | uri )? + int alt82=3; + switch ( input.LA(1) ) { + case ID: + { + int LA82_1 = input.LA(2); + if ( (LA82_1==DOT) ) { + int LA82_7 = input.LA(3); + if ( (LA82_7==ID) ) { + int LA82_10 = input.LA(4); + if ( (LA82_10==COLON) ) { + alt82=1; + } + } + } + else if ( (LA82_1==COLON) ) { + alt82=1; + } + } + break; + case TO: + { + int LA82_2 = input.LA(2); + if ( (LA82_2==COLON) ) { + alt82=1; + } + } + break; + case OR: + { + int LA82_3 = input.LA(2); + if ( (LA82_3==COLON) ) { + alt82=1; + } + } + break; + case AND: + { + int LA82_4 = input.LA(2); + if ( (LA82_4==COLON) ) { + alt82=1; + } + } + break; + case NOT: + { + int LA82_5 = input.LA(2); + if ( (LA82_5==COLON) ) { + alt82=1; + } + } + break; + case URI: + { + alt82=2; + } + break; + } + switch (alt82) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:828:17: prefix + { + pushFollow(FOLLOW_prefix_in_tempReference7133); + prefix215=prefix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_prefix.add(prefix215.getTree()); + } + break; + case 2 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:829:19: uri + { + pushFollow(FOLLOW_uri_in_tempReference7153); + uri216=uri(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_uri.add(uri216.getTree()); + } + break; + + } + + pushFollow(FOLLOW_identifier_in_tempReference7174); + identifier217=identifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_identifier.add(identifier217.getTree()); + // AST REWRITE + // elements: identifier, prefix, uri + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); + + root_0 = (Object)adaptor.nil(); + // 832:17: -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) + { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:25: ^( FIELD_REF identifier ( prefix )? ( uri )? ) + { + Object root_1 = (Object)adaptor.nil(); + root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_REF, "FIELD_REF"), root_1); + adaptor.addChild(root_1, stream_identifier.nextTree()); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:48: ( prefix )? if ( stream_prefix.hasNext() ) { adaptor.addChild(root_1, stream_prefix.nextTree()); } stream_prefix.reset(); - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:798:56: ( uri )? + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:56: ( uri )? if ( stream_uri.hasNext() ) { adaptor.addChild(root_1, stream_uri.nextTree()); } @@ -10011,31 +11312,31 @@ public class FTSParser extends Parser { // $ANTLR start "prefix" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:801:1: prefix : identifier COLON -> ^( PREFIX identifier ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:836:1: prefix : identifier COLON -> ^( PREFIX identifier ) ; public final FTSParser.prefix_return prefix() throws RecognitionException { FTSParser.prefix_return retval = new FTSParser.prefix_return(); retval.start = input.LT(1); Object root_0 = null; - Token COLON197=null; - ParserRuleReturnScope identifier196 =null; + Token COLON219=null; + ParserRuleReturnScope identifier218 =null; - Object COLON197_tree=null; + Object COLON219_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:802:9: ( identifier COLON -> ^( PREFIX identifier ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:803:9: identifier COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:837:9: ( identifier COLON -> ^( PREFIX identifier ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:838:9: identifier COLON { - pushFollow(FOLLOW_identifier_in_prefix6642); - identifier196=identifier(); + pushFollow(FOLLOW_identifier_in_prefix7261); + identifier218=identifier(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_identifier.add(identifier196.getTree()); - COLON197=(Token)match(input,COLON,FOLLOW_COLON_in_prefix6644); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON197); + if ( state.backtracking==0 ) stream_identifier.add(identifier218.getTree()); + COLON219=(Token)match(input,COLON,FOLLOW_COLON_in_prefix7263); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON219); // AST REWRITE // elements: identifier @@ -10049,9 +11350,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 804:17: -> ^( PREFIX identifier ) + // 839:17: -> ^( PREFIX identifier ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:805:25: ^( PREFIX identifier ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:840:25: ^( PREFIX identifier ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1); @@ -10096,24 +11397,24 @@ public class FTSParser extends Parser { // $ANTLR start "uri" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:808:1: uri : URI -> ^( NAME_SPACE URI ) ; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:843:1: uri : URI -> ^( NAME_SPACE URI ) ; public final FTSParser.uri_return uri() throws RecognitionException { FTSParser.uri_return retval = new FTSParser.uri_return(); retval.start = input.LT(1); Object root_0 = null; - Token URI198=null; + Token URI220=null; - Object URI198_tree=null; + Object URI220_tree=null; RewriteRuleTokenStream stream_URI=new RewriteRuleTokenStream(adaptor,"token URI"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:809:9: ( URI -> ^( NAME_SPACE URI ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:810:9: URI + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:844:9: ( URI -> ^( NAME_SPACE URI ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:845:9: URI { - URI198=(Token)match(input,URI,FOLLOW_URI_in_uri6725); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_URI.add(URI198); + URI220=(Token)match(input,URI,FOLLOW_URI_in_uri7344); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_URI.add(URI220); // AST REWRITE // elements: URI @@ -10127,9 +11428,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 811:17: -> ^( NAME_SPACE URI ) + // 846:17: -> ^( NAME_SPACE URI ) { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:812:25: ^( NAME_SPACE URI ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:847:25: ^( NAME_SPACE URI ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NAME_SPACE, "NAME_SPACE"), root_1); @@ -10174,7 +11475,7 @@ public class FTSParser extends Parser { // $ANTLR start "identifier" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:815:1: identifier : ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:850:1: identifier : ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ); public final FTSParser.identifier_return identifier() throws RecognitionException { FTSParser.identifier_return retval = new FTSParser.identifier_return(); retval.start = input.LT(1); @@ -10183,21 +11484,21 @@ public class FTSParser extends Parser { Token id1=null; Token id2=null; - Token DOT199=null; - Token ID200=null; - Token TO201=null; - Token OR202=null; - Token AND203=null; - Token NOT204=null; + Token DOT221=null; + Token ID222=null; + Token TO223=null; + Token OR224=null; + Token AND225=null; + Token NOT226=null; Object id1_tree=null; Object id2_tree=null; - Object DOT199_tree=null; - Object ID200_tree=null; - Object TO201_tree=null; - Object OR202_tree=null; - Object AND203_tree=null; - Object NOT204_tree=null; + Object DOT221_tree=null; + Object ID222_tree=null; + Object TO223_tree=null; + Object OR224_tree=null; + Object AND225_tree=null; + Object NOT226_tree=null; RewriteRuleTokenStream stream_NOT=new RewriteRuleTokenStream(adaptor,"token NOT"); RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR"); RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND"); @@ -10206,26 +11507,26 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_TO=new RewriteRuleTokenStream(adaptor,"token TO"); try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:816:9: ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ) - int alt72=6; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:851:9: ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ) + int alt83=6; switch ( input.LA(1) ) { case ID: { - int LA72_1 = input.LA(2); - if ( (LA72_1==DOT) ) { - int LA72_6 = input.LA(3); - if ( (LA72_6==ID) ) { - int LA72_8 = input.LA(4); - if ( (synpred40_FTS()) ) { - alt72=1; + int LA83_1 = input.LA(2); + if ( (LA83_1==DOT) ) { + int LA83_6 = input.LA(3); + if ( (LA83_6==ID) ) { + int LA83_8 = input.LA(4); + if ( (synpred48_FTS()) ) { + alt83=1; } else if ( (true) ) { - alt72=2; + alt83=2; } } - else if ( (LA72_6==EOF||(LA72_6 >= AMP && LA72_6 <= BAR)||LA72_6==CARAT||LA72_6==COMMA||LA72_6==DATETIME||LA72_6==DECIMAL_INTEGER_LITERAL||LA72_6==DOT||LA72_6==EQUALS||LA72_6==EXCLAMATION||LA72_6==FLOATING_POINT_LITERAL||(LA72_6 >= FTSPHRASE && LA72_6 <= FTSWORD)||(LA72_6 >= LPAREN && LA72_6 <= LT)||LA72_6==MINUS||LA72_6==NOT||(LA72_6 >= OR && LA72_6 <= PERCENT)||LA72_6==PLUS||LA72_6==QUESTION_MARK||LA72_6==RPAREN||LA72_6==STAR||(LA72_6 >= TILDA && LA72_6 <= TO)||LA72_6==URI) ) { - alt72=2; + else if ( (LA83_6==EOF||(LA83_6 >= AMP && LA83_6 <= BAR)||LA83_6==CARAT||LA83_6==COMMA||LA83_6==DATETIME||LA83_6==DECIMAL_INTEGER_LITERAL||LA83_6==DOT||LA83_6==EQUALS||LA83_6==EXCLAMATION||LA83_6==FLOATING_POINT_LITERAL||(LA83_6 >= FTSPHRASE && LA83_6 <= FTSWORD)||(LA83_6 >= LPAREN && LA83_6 <= LT)||LA83_6==MINUS||LA83_6==NOT||(LA83_6 >= OR && LA83_6 <= PERCENT)||LA83_6==PLUS||LA83_6==QUESTION_MARK||LA83_6==RPAREN||LA83_6==STAR||(LA83_6 >= TILDA && LA83_6 <= TO)||LA83_6==URI) ) { + alt83=2; } else { @@ -10236,7 +11537,7 @@ public class FTSParser extends Parser { input.consume(); } NoViableAltException nvae = - new NoViableAltException("", 72, 6, input); + new NoViableAltException("", 83, 6, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -10244,8 +11545,8 @@ public class FTSParser extends Parser { } } - else if ( (LA72_1==EOF||(LA72_1 >= AMP && LA72_1 <= BAR)||(LA72_1 >= CARAT && LA72_1 <= COMMA)||LA72_1==DATETIME||LA72_1==DECIMAL_INTEGER_LITERAL||LA72_1==DOTDOT||LA72_1==EQUALS||LA72_1==EXCLAMATION||LA72_1==FLOATING_POINT_LITERAL||(LA72_1 >= FTSPHRASE && LA72_1 <= FTSWORD)||LA72_1==GT||LA72_1==ID||(LA72_1 >= LPAREN && LA72_1 <= LT)||LA72_1==MINUS||LA72_1==NOT||(LA72_1 >= OR && LA72_1 <= PERCENT)||LA72_1==PLUS||LA72_1==QUESTION_MARK||(LA72_1 >= RPAREN && LA72_1 <= RSQUARE)||LA72_1==STAR||(LA72_1 >= TILDA && LA72_1 <= TO)||LA72_1==URI) ) { - alt72=2; + else if ( (LA83_1==EOF||(LA83_1 >= AMP && LA83_1 <= BAR)||(LA83_1 >= CARAT && LA83_1 <= COMMA)||LA83_1==DATETIME||LA83_1==DECIMAL_INTEGER_LITERAL||LA83_1==DOTDOT||LA83_1==EQUALS||LA83_1==EXCLAMATION||LA83_1==FLOATING_POINT_LITERAL||(LA83_1 >= FTSPHRASE && LA83_1 <= FTSWORD)||LA83_1==GT||LA83_1==ID||(LA83_1 >= LPAREN && LA83_1 <= LT)||LA83_1==MINUS||LA83_1==NOT||(LA83_1 >= OR && LA83_1 <= PERCENT)||LA83_1==PLUS||LA83_1==QUESTION_MARK||(LA83_1 >= RPAREN && LA83_1 <= RSQUARE)||LA83_1==STAR||(LA83_1 >= TILDA && LA83_1 <= TO)||LA83_1==URI) ) { + alt83=2; } else { @@ -10254,7 +11555,7 @@ public class FTSParser extends Parser { try { input.consume(); NoViableAltException nvae = - new NoViableAltException("", 72, 1, input); + new NoViableAltException("", 83, 1, input); throw nvae; } finally { input.rewind(nvaeMark); @@ -10265,41 +11566,41 @@ public class FTSParser extends Parser { break; case TO: { - alt72=3; + alt83=3; } break; case OR: { - alt72=4; + alt83=4; } break; case AND: { - alt72=5; + alt83=5; } break; case NOT: { - alt72=6; + alt83=6; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 72, 0, input); + new NoViableAltException("", 83, 0, input); throw nvae; } - switch (alt72) { + switch (alt83) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:817:9: ( ID DOT ID )=>id1= ID DOT id2= ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:9: ( ID DOT ID )=>id1= ID DOT id2= ID { - id1=(Token)match(input,ID,FOLLOW_ID_in_identifier6827); if (state.failed) return retval; + id1=(Token)match(input,ID,FOLLOW_ID_in_identifier7446); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ID.add(id1); - DOT199=(Token)match(input,DOT,FOLLOW_DOT_in_identifier6829); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOT.add(DOT199); + DOT221=(Token)match(input,DOT,FOLLOW_DOT_in_identifier7448); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOT.add(DOT221); - id2=(Token)match(input,ID,FOLLOW_ID_in_identifier6833); if (state.failed) return retval; + id2=(Token)match(input,ID,FOLLOW_ID_in_identifier7452); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ID.add(id2); // AST REWRITE @@ -10314,9 +11615,9 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 819:17: -> + // 854:17: -> { - adaptor.addChild(root_0, new CommonTree(new CommonToken(FTSLexer.ID, (id1!=null?id1.getText():null)+(DOT199!=null?DOT199.getText():null)+(id2!=null?id2.getText():null)))); + adaptor.addChild(root_0, new CommonTree(new CommonToken(FTSLexer.ID, (id1!=null?id1.getText():null)+(DOT221!=null?DOT221.getText():null)+(id2!=null?id2.getText():null)))); } @@ -10326,10 +11627,10 @@ public class FTSParser extends Parser { } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:821:12: ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:856:12: ID { - ID200=(Token)match(input,ID,FOLLOW_ID_in_identifier6882); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ID.add(ID200); + ID222=(Token)match(input,ID,FOLLOW_ID_in_identifier7501); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ID.add(ID222); // AST REWRITE // elements: ID @@ -10343,7 +11644,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 822:17: -> ID + // 857:17: -> ID { adaptor.addChild(root_0, stream_ID.nextNode()); } @@ -10355,10 +11656,10 @@ public class FTSParser extends Parser { } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:825:12: TO + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:860:12: TO { - TO201=(Token)match(input,TO,FOLLOW_TO_in_identifier6949); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TO.add(TO201); + TO223=(Token)match(input,TO,FOLLOW_TO_in_identifier7568); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TO.add(TO223); // AST REWRITE // elements: TO @@ -10372,7 +11673,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 826:17: -> TO + // 861:17: -> TO { adaptor.addChild(root_0, stream_TO.nextNode()); } @@ -10384,10 +11685,10 @@ public class FTSParser extends Parser { } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:827:12: OR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:862:12: OR { - OR202=(Token)match(input,OR,FOLLOW_OR_in_identifier6987); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_OR.add(OR202); + OR224=(Token)match(input,OR,FOLLOW_OR_in_identifier7606); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_OR.add(OR224); // AST REWRITE // elements: OR @@ -10401,7 +11702,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 828:17: -> OR + // 863:17: -> OR { adaptor.addChild(root_0, stream_OR.nextNode()); } @@ -10413,10 +11714,10 @@ public class FTSParser extends Parser { } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:829:12: AND + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:864:12: AND { - AND203=(Token)match(input,AND,FOLLOW_AND_in_identifier7025); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_AND.add(AND203); + AND225=(Token)match(input,AND,FOLLOW_AND_in_identifier7644); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_AND.add(AND225); // AST REWRITE // elements: AND @@ -10430,7 +11731,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 830:17: -> AND + // 865:17: -> AND { adaptor.addChild(root_0, stream_AND.nextNode()); } @@ -10442,10 +11743,10 @@ public class FTSParser extends Parser { } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:831:12: NOT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:866:12: NOT { - NOT204=(Token)match(input,NOT,FOLLOW_NOT_in_identifier7064); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_NOT.add(NOT204); + NOT226=(Token)match(input,NOT,FOLLOW_NOT_in_identifier7683); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_NOT.add(NOT226); // AST REWRITE // elements: NOT @@ -10459,7 +11760,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (Object)adaptor.nil(); - // 832:17: -> NOT + // 867:17: -> NOT { adaptor.addChild(root_0, stream_NOT.nextNode()); } @@ -10501,35 +11802,24 @@ public class FTSParser extends Parser { // $ANTLR start "ftsWord" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:835:1: ftsWord : ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:870:1: ftsWord : ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ); public final FTSParser.ftsWord_return ftsWord() throws RecognitionException { FTSParser.ftsWord_return retval = new FTSParser.ftsWord_return(); retval.start = input.LT(1); Object root_0 = null; - Token set205=null; - Token set207=null; - Token set209=null; - Token set211=null; - Token set213=null; - Token set216=null; - Token set218=null; - Token set220=null; - Token set222=null; - Token set224=null; - Token set226=null; - Token set228=null; - Token set230=null; - Token set232=null; - Token set234=null; - Token set236=null; + Token set227=null; + Token set229=null; + Token set231=null; + Token set233=null; + Token set235=null; Token set238=null; Token set240=null; - Token set241=null; - Token set243=null; - Token set245=null; - Token set247=null; + Token set242=null; + Token set244=null; + Token set246=null; + Token set248=null; Token set250=null; Token set252=null; Token set254=null; @@ -10537,12 +11827,12 @@ public class FTSParser extends Parser { Token set258=null; Token set260=null; Token set262=null; - Token set264=null; - Token set266=null; - Token set268=null; + Token set263=null; + Token set265=null; + Token set267=null; Token set269=null; - Token set271=null; - Token set273=null; + Token set272=null; + Token set274=null; Token set276=null; Token set278=null; Token set280=null; @@ -10550,35 +11840,35 @@ public class FTSParser extends Parser { Token set284=null; Token set286=null; Token set288=null; - Token set289=null; + Token set290=null; Token set291=null; - Token set294=null; - Token set296=null; + Token set293=null; + Token set295=null; Token set298=null; Token set300=null; - Token set301=null; - ParserRuleReturnScope ftsWordBase206 =null; - ParserRuleReturnScope ftsWordBase208 =null; - ParserRuleReturnScope ftsWordBase210 =null; - ParserRuleReturnScope ftsWordBase212 =null; - ParserRuleReturnScope ftsWordBase214 =null; - ParserRuleReturnScope ftsWordBase215 =null; - ParserRuleReturnScope ftsWordBase217 =null; - ParserRuleReturnScope ftsWordBase219 =null; - ParserRuleReturnScope ftsWordBase221 =null; - ParserRuleReturnScope ftsWordBase223 =null; - ParserRuleReturnScope ftsWordBase225 =null; - ParserRuleReturnScope ftsWordBase227 =null; - ParserRuleReturnScope ftsWordBase229 =null; - ParserRuleReturnScope ftsWordBase231 =null; - ParserRuleReturnScope ftsWordBase233 =null; - ParserRuleReturnScope ftsWordBase235 =null; + Token set302=null; + Token set304=null; + Token set306=null; + Token set308=null; + Token set310=null; + Token set311=null; + Token set313=null; + Token set316=null; + Token set318=null; + Token set320=null; + Token set322=null; + Token set323=null; + ParserRuleReturnScope ftsWordBase228 =null; + ParserRuleReturnScope ftsWordBase230 =null; + ParserRuleReturnScope ftsWordBase232 =null; + ParserRuleReturnScope ftsWordBase234 =null; + ParserRuleReturnScope ftsWordBase236 =null; ParserRuleReturnScope ftsWordBase237 =null; ParserRuleReturnScope ftsWordBase239 =null; - ParserRuleReturnScope ftsWordBase242 =null; - ParserRuleReturnScope ftsWordBase244 =null; - ParserRuleReturnScope ftsWordBase246 =null; - ParserRuleReturnScope ftsWordBase248 =null; + ParserRuleReturnScope ftsWordBase241 =null; + ParserRuleReturnScope ftsWordBase243 =null; + ParserRuleReturnScope ftsWordBase245 =null; + ParserRuleReturnScope ftsWordBase247 =null; ParserRuleReturnScope ftsWordBase249 =null; ParserRuleReturnScope ftsWordBase251 =null; ParserRuleReturnScope ftsWordBase253 =null; @@ -10586,12 +11876,12 @@ public class FTSParser extends Parser { ParserRuleReturnScope ftsWordBase257 =null; ParserRuleReturnScope ftsWordBase259 =null; ParserRuleReturnScope ftsWordBase261 =null; - ParserRuleReturnScope ftsWordBase263 =null; - ParserRuleReturnScope ftsWordBase265 =null; - ParserRuleReturnScope ftsWordBase267 =null; + ParserRuleReturnScope ftsWordBase264 =null; + ParserRuleReturnScope ftsWordBase266 =null; + ParserRuleReturnScope ftsWordBase268 =null; ParserRuleReturnScope ftsWordBase270 =null; - ParserRuleReturnScope ftsWordBase272 =null; - ParserRuleReturnScope ftsWordBase274 =null; + ParserRuleReturnScope ftsWordBase271 =null; + ParserRuleReturnScope ftsWordBase273 =null; ParserRuleReturnScope ftsWordBase275 =null; ParserRuleReturnScope ftsWordBase277 =null; ParserRuleReturnScope ftsWordBase279 =null; @@ -10599,37 +11889,37 @@ public class FTSParser extends Parser { ParserRuleReturnScope ftsWordBase283 =null; ParserRuleReturnScope ftsWordBase285 =null; ParserRuleReturnScope ftsWordBase287 =null; - ParserRuleReturnScope ftsWordBase290 =null; + ParserRuleReturnScope ftsWordBase289 =null; ParserRuleReturnScope ftsWordBase292 =null; - ParserRuleReturnScope ftsWordBase293 =null; - ParserRuleReturnScope ftsWordBase295 =null; + ParserRuleReturnScope ftsWordBase294 =null; + ParserRuleReturnScope ftsWordBase296 =null; ParserRuleReturnScope ftsWordBase297 =null; ParserRuleReturnScope ftsWordBase299 =null; - ParserRuleReturnScope ftsWordBase302 =null; + ParserRuleReturnScope ftsWordBase301 =null; ParserRuleReturnScope ftsWordBase303 =null; + ParserRuleReturnScope ftsWordBase305 =null; + ParserRuleReturnScope ftsWordBase307 =null; + ParserRuleReturnScope ftsWordBase309 =null; + ParserRuleReturnScope ftsWordBase312 =null; + ParserRuleReturnScope ftsWordBase314 =null; + ParserRuleReturnScope ftsWordBase315 =null; + ParserRuleReturnScope ftsWordBase317 =null; + ParserRuleReturnScope ftsWordBase319 =null; + ParserRuleReturnScope ftsWordBase321 =null; + ParserRuleReturnScope ftsWordBase324 =null; + ParserRuleReturnScope ftsWordBase325 =null; - Object set205_tree=null; - Object set207_tree=null; - Object set209_tree=null; - Object set211_tree=null; - Object set213_tree=null; - Object set216_tree=null; - Object set218_tree=null; - Object set220_tree=null; - Object set222_tree=null; - Object set224_tree=null; - Object set226_tree=null; - Object set228_tree=null; - Object set230_tree=null; - Object set232_tree=null; - Object set234_tree=null; - Object set236_tree=null; + Object set227_tree=null; + Object set229_tree=null; + Object set231_tree=null; + Object set233_tree=null; + Object set235_tree=null; Object set238_tree=null; Object set240_tree=null; - Object set241_tree=null; - Object set243_tree=null; - Object set245_tree=null; - Object set247_tree=null; + Object set242_tree=null; + Object set244_tree=null; + Object set246_tree=null; + Object set248_tree=null; Object set250_tree=null; Object set252_tree=null; Object set254_tree=null; @@ -10637,12 +11927,12 @@ public class FTSParser extends Parser { Object set258_tree=null; Object set260_tree=null; Object set262_tree=null; - Object set264_tree=null; - Object set266_tree=null; - Object set268_tree=null; + Object set263_tree=null; + Object set265_tree=null; + Object set267_tree=null; Object set269_tree=null; - Object set271_tree=null; - Object set273_tree=null; + Object set272_tree=null; + Object set274_tree=null; Object set276_tree=null; Object set278_tree=null; Object set280_tree=null; @@ -10650,29 +11940,40 @@ public class FTSParser extends Parser { Object set284_tree=null; Object set286_tree=null; Object set288_tree=null; - Object set289_tree=null; + Object set290_tree=null; Object set291_tree=null; - Object set294_tree=null; - Object set296_tree=null; + Object set293_tree=null; + Object set295_tree=null; Object set298_tree=null; Object set300_tree=null; - Object set301_tree=null; + Object set302_tree=null; + Object set304_tree=null; + Object set306_tree=null; + Object set308_tree=null; + Object set310_tree=null; + Object set311_tree=null; + Object set313_tree=null; + Object set316_tree=null; + Object set318_tree=null; + Object set320_tree=null; + Object set322_tree=null; + Object set323_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:836:9: ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ) - int alt73=18; - alt73 = dfa73.predict(input); - switch (alt73) { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:871:9: ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ) + int alt84=18; + alt84 = dfa84.predict(input); + switch (alt84) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:837:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - set205=input.LT(1); + set227=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set205)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set227)); state.errorRecovery=false; state.failed=false; } @@ -10681,16 +11982,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7188); - ftsWordBase206=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7807); + ftsWordBase228=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase206.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase228.getTree()); - set207=input.LT(1); + set229=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set207)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set229)); state.errorRecovery=false; state.failed=false; } @@ -10699,16 +12000,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7196); - ftsWordBase208=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7815); + ftsWordBase230=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase208.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase230.getTree()); - set209=input.LT(1); + set231=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set209)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set231)); state.errorRecovery=false; state.failed=false; } @@ -10717,16 +12018,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7204); - ftsWordBase210=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7823); + ftsWordBase232=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase210.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase232.getTree()); - set211=input.LT(1); + set233=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set211)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set233)); state.errorRecovery=false; state.failed=false; } @@ -10735,16 +12036,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7212); - ftsWordBase212=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7831); + ftsWordBase234=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase212.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase234.getTree()); - set213=input.LT(1); + set235=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set213)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set235)); state.errorRecovery=false; state.failed=false; } @@ -10753,235 +12054,21 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7220); - ftsWordBase214=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7839); + ftsWordBase236=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase214.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase236.getTree()); } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:839:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7280); - ftsWordBase215=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase215.getTree()); - - set216=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set216)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7288); - ftsWordBase217=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase217.getTree()); - - set218=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set218)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7296); - ftsWordBase219=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase219.getTree()); - - set220=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set220)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7304); - ftsWordBase221=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase221.getTree()); - - set222=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set222)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7312); - ftsWordBase223=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase223.getTree()); - - } - break; - case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:841:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) - { - root_0 = (Object)adaptor.nil(); - - - set224=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set224)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7385); - ftsWordBase225=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase225.getTree()); - - set226=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set226)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7393); - ftsWordBase227=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase227.getTree()); - - set228=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set228)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7401); - ftsWordBase229=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase229.getTree()); - - set230=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set230)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7409); - ftsWordBase231=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase231.getTree()); - - set232=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set232)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - } - break; - case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:843:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) - { - root_0 = (Object)adaptor.nil(); - - - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7475); - ftsWordBase233=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase233.getTree()); - - set234=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set234)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7483); - ftsWordBase235=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase235.getTree()); - - set236=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set236)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7491); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7899); ftsWordBase237=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -10999,7 +12086,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7499); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7907); ftsWordBase239=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11017,18 +12104,60 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7915); + ftsWordBase241=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase241.getTree()); + + set242=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set242)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7923); + ftsWordBase243=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase243.getTree()); + + set244=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set244)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7931); + ftsWordBase245=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase245.getTree()); + } break; - case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:845:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + case 3 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - set241=input.LT(1); + set246=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set241)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set246)); state.errorRecovery=false; state.failed=false; } @@ -11037,16 +12166,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7572); - ftsWordBase242=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8004); + ftsWordBase247=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase242.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase247.getTree()); - set243=input.LT(1); + set248=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set243)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set248)); state.errorRecovery=false; state.failed=false; } @@ -11055,57 +12184,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7580); - ftsWordBase244=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase244.getTree()); - - set245=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set245)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7588); - ftsWordBase246=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase246.getTree()); - - set247=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set247)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7596); - ftsWordBase248=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase248.getTree()); - - } - break; - case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:847:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase - { - root_0 = (Object)adaptor.nil(); - - - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7650); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8012); ftsWordBase249=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11123,7 +12202,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7658); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8020); ftsWordBase251=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11141,7 +12220,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7666); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8028); ftsWordBase253=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11159,20 +12238,20 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7674); + } + break; + case 4 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8094); ftsWordBase255=ftsWordBase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase255.getTree()); - } - break; - case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:849:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) - { - root_0 = (Object)adaptor.nil(); - - set256=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -11185,7 +12264,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7738); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8102); ftsWordBase257=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11203,7 +12282,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7746); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8110); ftsWordBase259=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11221,7 +12300,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7754); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8118); ftsWordBase261=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11241,22 +12320,16 @@ public class FTSParser extends Parser { } } break; - case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:851:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + case 5 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7812); - ftsWordBase263=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase263.getTree()); - - set264=input.LT(1); + set263=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set264)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set263)); state.errorRecovery=false; state.failed=false; } @@ -11265,16 +12338,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7820); - ftsWordBase265=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8191); + ftsWordBase264=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase265.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase264.getTree()); - set266=input.LT(1); + set265=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set266)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set265)); state.errorRecovery=false; state.failed=false; } @@ -11283,16 +12356,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7828); - ftsWordBase267=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8199); + ftsWordBase266=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase267.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase266.getTree()); - set268=input.LT(1); + set267=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set268)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set267)); state.errorRecovery=false; state.failed=false; } @@ -11301,13 +12374,11 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - } - break; - case 9 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:853:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase - { - root_0 = (Object)adaptor.nil(); - + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8207); + ftsWordBase268=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase268.getTree()); set269=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { @@ -11321,57 +12392,57 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7892); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8215); ftsWordBase270=ftsWordBase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase270.getTree()); - set271=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set271)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7900); - ftsWordBase272=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase272.getTree()); - - set273=input.LT(1); - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set273)); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7908); - ftsWordBase274=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase274.getTree()); - } break; - case 10 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:855:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + case 6 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7954); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8269); + ftsWordBase271=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase271.getTree()); + + set272=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set272)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8277); + ftsWordBase273=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase273.getTree()); + + set274=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set274)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8285); ftsWordBase275=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11389,12 +12460,20 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7962); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8293); ftsWordBase277=ftsWordBase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase277.getTree()); + } + break; + case 7 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + root_0 = (Object)adaptor.nil(); + + set278=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -11407,20 +12486,12 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7970); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8357); ftsWordBase279=ftsWordBase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase279.getTree()); - } - break; - case 11 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:857:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) - { - root_0 = (Object)adaptor.nil(); - - set280=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -11433,7 +12504,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8027); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8365); ftsWordBase281=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11451,7 +12522,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8035); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8373); ftsWordBase283=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11471,13 +12542,13 @@ public class FTSParser extends Parser { } } break; - case 12 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:859:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + case 8 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8086); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8431); ftsWordBase285=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11495,7 +12566,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8094); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8439); ftsWordBase287=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11513,18 +12584,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - } - break; - case 13 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:861:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase - { - root_0 = (Object)adaptor.nil(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8447); + ftsWordBase289=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase289.getTree()); - - set289=input.LT(1); + set290=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set289)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set290)); state.errorRecovery=false; state.failed=false; } @@ -11533,11 +12602,13 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8151); - ftsWordBase290=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase290.getTree()); + } + break; + case 9 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + { + root_0 = (Object)adaptor.nil(); + set291=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { @@ -11551,30 +12622,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8159); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8511); ftsWordBase292=ftsWordBase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase292.getTree()); - } - break; - case 14 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:863:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase - { - root_0 = (Object)adaptor.nil(); - - - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8197); - ftsWordBase293=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase293.getTree()); - - set294=input.LT(1); + set293=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set294)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set293)); state.errorRecovery=false; state.failed=false; } @@ -11583,24 +12640,16 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8205); - ftsWordBase295=ftsWordBase(); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8519); + ftsWordBase294=ftsWordBase(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase295.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase294.getTree()); - } - break; - case 15 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:865:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) - { - root_0 = (Object)adaptor.nil(); - - - set296=input.LT(1); + set295=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set296)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set295)); state.errorRecovery=false; state.failed=false; } @@ -11609,7 +12658,21 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8253); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8527); + ftsWordBase296=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase296.getTree()); + + } + break; + case 10 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + { + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8573); ftsWordBase297=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11627,15 +12690,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - } - break; - case 16 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:867:11: ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) - { - root_0 = (Object)adaptor.nil(); - - - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8295); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8581); ftsWordBase299=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -11653,18 +12708,24 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8589); + ftsWordBase301=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase301.getTree()); + } break; - case 17 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:869:11: ( DOT | COMMA ) ftsWordBase + case 11 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - set301=input.LT(1); + set302=input.LT(1); if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set301)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set302)); state.errorRecovery=false; state.failed=false; } @@ -11673,26 +12734,266 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8319); - ftsWordBase302=ftsWordBase(); - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase302.getTree()); - - } - break; - case 18 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:870:11: ftsWordBase - { - root_0 = (Object)adaptor.nil(); - - - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8332); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8646); ftsWordBase303=ftsWordBase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase303.getTree()); + set304=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set304)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8654); + ftsWordBase305=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase305.getTree()); + + set306=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set306)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + break; + case 12 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8705); + ftsWordBase307=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase307.getTree()); + + set308=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set308)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8713); + ftsWordBase309=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase309.getTree()); + + set310=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set310)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + break; + case 13 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + { + root_0 = (Object)adaptor.nil(); + + + set311=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set311)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8770); + ftsWordBase312=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase312.getTree()); + + set313=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set313)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8778); + ftsWordBase314=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase314.getTree()); + + } + break; + case 14 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase + { + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8816); + ftsWordBase315=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase315.getTree()); + + set316=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set316)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8824); + ftsWordBase317=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase317.getTree()); + + } + break; + case 15 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + root_0 = (Object)adaptor.nil(); + + + set318=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set318)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8872); + ftsWordBase319=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase319.getTree()); + + set320=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set320)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + break; + case 16 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:11: ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) + { + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8914); + ftsWordBase321=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase321.getTree()); + + set322=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set322)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + break; + case 17 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:904:11: ( DOT | COMMA ) ftsWordBase + { + root_0 = (Object)adaptor.nil(); + + + set323=input.LT(1); + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set323)); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8938); + ftsWordBase324=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase324.getTree()); + + } + break; + case 18 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:905:11: ftsWordBase + { + root_0 = (Object)adaptor.nil(); + + + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8951); + ftsWordBase325=ftsWordBase(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ftsWordBase325.getTree()); + } break; @@ -11726,282 +13027,282 @@ public class FTSParser extends Parser { // $ANTLR start "ftsWordBase" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:874:1: ftsWordBase : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:909:1: ftsWordBase : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ); public final FTSParser.ftsWordBase_return ftsWordBase() throws RecognitionException { FTSParser.ftsWordBase_return retval = new FTSParser.ftsWordBase_return(); retval.start = input.LT(1); Object root_0 = null; - Token ID304=null; - Token FTSWORD305=null; - Token FTSPRE306=null; - Token FTSWILD307=null; - Token NOT308=null; - Token TO309=null; - Token DECIMAL_INTEGER_LITERAL310=null; - Token FLOATING_POINT_LITERAL311=null; - Token STAR312=null; - Token QUESTION_MARK313=null; - Token DATETIME314=null; - Token URI315=null; - ParserRuleReturnScope identifier316 =null; + Token ID326=null; + Token FTSWORD327=null; + Token FTSPRE328=null; + Token FTSWILD329=null; + Token NOT330=null; + Token TO331=null; + Token DECIMAL_INTEGER_LITERAL332=null; + Token FLOATING_POINT_LITERAL333=null; + Token STAR334=null; + Token QUESTION_MARK335=null; + Token DATETIME336=null; + Token URI337=null; + ParserRuleReturnScope identifier338 =null; - Object ID304_tree=null; - Object FTSWORD305_tree=null; - Object FTSPRE306_tree=null; - Object FTSWILD307_tree=null; - Object NOT308_tree=null; - Object TO309_tree=null; - Object DECIMAL_INTEGER_LITERAL310_tree=null; - Object FLOATING_POINT_LITERAL311_tree=null; - Object STAR312_tree=null; - Object QUESTION_MARK313_tree=null; - Object DATETIME314_tree=null; - Object URI315_tree=null; + Object ID326_tree=null; + Object FTSWORD327_tree=null; + Object FTSPRE328_tree=null; + Object FTSWILD329_tree=null; + Object NOT330_tree=null; + Object TO331_tree=null; + Object DECIMAL_INTEGER_LITERAL332_tree=null; + Object FLOATING_POINT_LITERAL333_tree=null; + Object STAR334_tree=null; + Object QUESTION_MARK335_tree=null; + Object DATETIME336_tree=null; + Object URI337_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:875:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ) - int alt74=12; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:910:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ) + int alt85=12; switch ( input.LA(1) ) { case ID: { - alt74=1; + alt85=1; } break; case FTSWORD: { - alt74=2; + alt85=2; } break; case FTSPRE: { - alt74=3; + alt85=3; } break; case FTSWILD: { - alt74=4; + alt85=4; } break; case NOT: { - alt74=5; + alt85=5; } break; case TO: { - alt74=6; + alt85=6; } break; case DECIMAL_INTEGER_LITERAL: { - alt74=7; + alt85=7; } break; case FLOATING_POINT_LITERAL: { - alt74=8; + alt85=8; } break; case STAR: { - alt74=9; + alt85=9; } break; case QUESTION_MARK: { - alt74=10; + alt85=10; } break; case DATETIME: { - alt74=11; + alt85=11; } break; case URI: { - alt74=12; + alt85=12; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 74, 0, input); + new NoViableAltException("", 85, 0, input); throw nvae; } - switch (alt74) { + switch (alt85) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:876:11: ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:911:11: ID { root_0 = (Object)adaptor.nil(); - ID304=(Token)match(input,ID,FOLLOW_ID_in_ftsWordBase8377); if (state.failed) return retval; + ID326=(Token)match(input,ID,FOLLOW_ID_in_ftsWordBase8996); if (state.failed) return retval; if ( state.backtracking==0 ) { - ID304_tree = (Object)adaptor.create(ID304); - adaptor.addChild(root_0, ID304_tree); + ID326_tree = (Object)adaptor.create(ID326); + adaptor.addChild(root_0, ID326_tree); } } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:877:11: FTSWORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:912:11: FTSWORD { root_0 = (Object)adaptor.nil(); - FTSWORD305=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsWordBase8389); if (state.failed) return retval; + FTSWORD327=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsWordBase9008); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSWORD305_tree = (Object)adaptor.create(FTSWORD305); - adaptor.addChild(root_0, FTSWORD305_tree); + FTSWORD327_tree = (Object)adaptor.create(FTSWORD327); + adaptor.addChild(root_0, FTSWORD327_tree); } } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:878:11: FTSPRE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:913:11: FTSPRE { root_0 = (Object)adaptor.nil(); - FTSPRE306=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsWordBase8401); if (state.failed) return retval; + FTSPRE328=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsWordBase9020); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSPRE306_tree = (Object)adaptor.create(FTSPRE306); - adaptor.addChild(root_0, FTSPRE306_tree); + FTSPRE328_tree = (Object)adaptor.create(FTSPRE328); + adaptor.addChild(root_0, FTSPRE328_tree); } } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:879:11: FTSWILD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:914:11: FTSWILD { root_0 = (Object)adaptor.nil(); - FTSWILD307=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsWordBase8414); if (state.failed) return retval; + FTSWILD329=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsWordBase9033); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSWILD307_tree = (Object)adaptor.create(FTSWILD307); - adaptor.addChild(root_0, FTSWILD307_tree); + FTSWILD329_tree = (Object)adaptor.create(FTSWILD329); + adaptor.addChild(root_0, FTSWILD329_tree); } } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:880:11: NOT + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:915:11: NOT { root_0 = (Object)adaptor.nil(); - NOT308=(Token)match(input,NOT,FOLLOW_NOT_in_ftsWordBase8427); if (state.failed) return retval; + NOT330=(Token)match(input,NOT,FOLLOW_NOT_in_ftsWordBase9046); if (state.failed) return retval; if ( state.backtracking==0 ) { - NOT308_tree = (Object)adaptor.create(NOT308); - adaptor.addChild(root_0, NOT308_tree); + NOT330_tree = (Object)adaptor.create(NOT330); + adaptor.addChild(root_0, NOT330_tree); } } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:881:11: TO + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:916:11: TO { root_0 = (Object)adaptor.nil(); - TO309=(Token)match(input,TO,FOLLOW_TO_in_ftsWordBase8439); if (state.failed) return retval; + TO331=(Token)match(input,TO,FOLLOW_TO_in_ftsWordBase9058); if (state.failed) return retval; if ( state.backtracking==0 ) { - TO309_tree = (Object)adaptor.create(TO309); - adaptor.addChild(root_0, TO309_tree); + TO331_tree = (Object)adaptor.create(TO331); + adaptor.addChild(root_0, TO331_tree); } } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:882:11: DECIMAL_INTEGER_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:917:11: DECIMAL_INTEGER_LITERAL { root_0 = (Object)adaptor.nil(); - DECIMAL_INTEGER_LITERAL310=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase8451); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL332=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase9070); if (state.failed) return retval; if ( state.backtracking==0 ) { - DECIMAL_INTEGER_LITERAL310_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL310); - adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL310_tree); + DECIMAL_INTEGER_LITERAL332_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL332); + adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL332_tree); } } break; case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:883:11: FLOATING_POINT_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:918:11: FLOATING_POINT_LITERAL { root_0 = (Object)adaptor.nil(); - FLOATING_POINT_LITERAL311=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase8463); if (state.failed) return retval; + FLOATING_POINT_LITERAL333=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase9082); if (state.failed) return retval; if ( state.backtracking==0 ) { - FLOATING_POINT_LITERAL311_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL311); - adaptor.addChild(root_0, FLOATING_POINT_LITERAL311_tree); + FLOATING_POINT_LITERAL333_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL333); + adaptor.addChild(root_0, FLOATING_POINT_LITERAL333_tree); } } break; case 9 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:884:11: STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:919:11: STAR { root_0 = (Object)adaptor.nil(); - STAR312=(Token)match(input,STAR,FOLLOW_STAR_in_ftsWordBase8475); if (state.failed) return retval; + STAR334=(Token)match(input,STAR,FOLLOW_STAR_in_ftsWordBase9094); if (state.failed) return retval; if ( state.backtracking==0 ) { - STAR312_tree = (Object)adaptor.create(STAR312); - adaptor.addChild(root_0, STAR312_tree); + STAR334_tree = (Object)adaptor.create(STAR334); + adaptor.addChild(root_0, STAR334_tree); } } break; case 10 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:885:11: QUESTION_MARK + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:920:11: QUESTION_MARK { root_0 = (Object)adaptor.nil(); - QUESTION_MARK313=(Token)match(input,QUESTION_MARK,FOLLOW_QUESTION_MARK_in_ftsWordBase8487); if (state.failed) return retval; + QUESTION_MARK335=(Token)match(input,QUESTION_MARK,FOLLOW_QUESTION_MARK_in_ftsWordBase9106); if (state.failed) return retval; if ( state.backtracking==0 ) { - QUESTION_MARK313_tree = (Object)adaptor.create(QUESTION_MARK313); - adaptor.addChild(root_0, QUESTION_MARK313_tree); + QUESTION_MARK335_tree = (Object)adaptor.create(QUESTION_MARK335); + adaptor.addChild(root_0, QUESTION_MARK335_tree); } } break; case 11 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:886:11: DATETIME + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:921:11: DATETIME { root_0 = (Object)adaptor.nil(); - DATETIME314=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsWordBase8499); if (state.failed) return retval; + DATETIME336=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsWordBase9118); if (state.failed) return retval; if ( state.backtracking==0 ) { - DATETIME314_tree = (Object)adaptor.create(DATETIME314); - adaptor.addChild(root_0, DATETIME314_tree); + DATETIME336_tree = (Object)adaptor.create(DATETIME336); + adaptor.addChild(root_0, DATETIME336_tree); } } break; case 12 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:887:11: URI identifier + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:922:11: URI identifier { root_0 = (Object)adaptor.nil(); - URI315=(Token)match(input,URI,FOLLOW_URI_in_ftsWordBase8511); if (state.failed) return retval; + URI337=(Token)match(input,URI,FOLLOW_URI_in_ftsWordBase9130); if (state.failed) return retval; if ( state.backtracking==0 ) { - URI315_tree = (Object)adaptor.create(URI315); - adaptor.addChild(root_0, URI315_tree); + URI337_tree = (Object)adaptor.create(URI337); + adaptor.addChild(root_0, URI337_tree); } - pushFollow(FOLLOW_identifier_in_ftsWordBase8513); - identifier316=identifier(); + pushFollow(FOLLOW_identifier_in_ftsWordBase9132); + identifier338=identifier(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier316.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier338.getTree()); } break; @@ -12036,28 +13337,28 @@ public class FTSParser extends Parser { // $ANTLR start "number" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:890:1: number : ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:925:1: number : ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ); public final FTSParser.number_return number() throws RecognitionException { FTSParser.number_return retval = new FTSParser.number_return(); retval.start = input.LT(1); Object root_0 = null; - Token set317=null; + Token set339=null; - Object set317_tree=null; + Object set339_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:891:9: ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:926:9: ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { root_0 = (Object)adaptor.nil(); - set317=input.LT(1); + set339=input.LT(1); if ( input.LA(1)==DECIMAL_INTEGER_LITERAL||input.LA(1)==FLOATING_POINT_LITERAL ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set317)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set339)); state.errorRecovery=false; state.failed=false; } @@ -12097,240 +13398,240 @@ public class FTSParser extends Parser { // $ANTLR start "ftsRangeWord" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:896:1: ftsRangeWord : ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:931:1: ftsRangeWord : ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); public final FTSParser.ftsRangeWord_return ftsRangeWord() throws RecognitionException { FTSParser.ftsRangeWord_return retval = new FTSParser.ftsRangeWord_return(); retval.start = input.LT(1); Object root_0 = null; - Token ID318=null; - Token FTSWORD319=null; - Token FTSPRE320=null; - Token FTSWILD321=null; - Token FTSPHRASE322=null; - Token DECIMAL_INTEGER_LITERAL323=null; - Token FLOATING_POINT_LITERAL324=null; - Token DATETIME325=null; - Token STAR326=null; - Token URI327=null; - ParserRuleReturnScope identifier328 =null; + Token ID340=null; + Token FTSWORD341=null; + Token FTSPRE342=null; + Token FTSWILD343=null; + Token FTSPHRASE344=null; + Token DECIMAL_INTEGER_LITERAL345=null; + Token FLOATING_POINT_LITERAL346=null; + Token DATETIME347=null; + Token STAR348=null; + Token URI349=null; + ParserRuleReturnScope identifier350 =null; - Object ID318_tree=null; - Object FTSWORD319_tree=null; - Object FTSPRE320_tree=null; - Object FTSWILD321_tree=null; - Object FTSPHRASE322_tree=null; - Object DECIMAL_INTEGER_LITERAL323_tree=null; - Object FLOATING_POINT_LITERAL324_tree=null; - Object DATETIME325_tree=null; - Object STAR326_tree=null; - Object URI327_tree=null; + Object ID340_tree=null; + Object FTSWORD341_tree=null; + Object FTSPRE342_tree=null; + Object FTSWILD343_tree=null; + Object FTSPHRASE344_tree=null; + Object DECIMAL_INTEGER_LITERAL345_tree=null; + Object FLOATING_POINT_LITERAL346_tree=null; + Object DATETIME347_tree=null; + Object STAR348_tree=null; + Object URI349_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:897:9: ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) - int alt75=10; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:932:9: ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) + int alt86=10; switch ( input.LA(1) ) { case ID: { - alt75=1; + alt86=1; } break; case FTSWORD: { - alt75=2; + alt86=2; } break; case FTSPRE: { - alt75=3; + alt86=3; } break; case FTSWILD: { - alt75=4; + alt86=4; } break; case FTSPHRASE: { - alt75=5; + alt86=5; } break; case DECIMAL_INTEGER_LITERAL: { - alt75=6; + alt86=6; } break; case FLOATING_POINT_LITERAL: { - alt75=7; + alt86=7; } break; case DATETIME: { - alt75=8; + alt86=8; } break; case STAR: { - alt75=9; + alt86=9; } break; case URI: { - alt75=10; + alt86=10; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 75, 0, input); + new NoViableAltException("", 86, 0, input); throw nvae; } - switch (alt75) { + switch (alt86) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:898:11: ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:933:11: ID { root_0 = (Object)adaptor.nil(); - ID318=(Token)match(input,ID,FOLLOW_ID_in_ftsRangeWord8593); if (state.failed) return retval; + ID340=(Token)match(input,ID,FOLLOW_ID_in_ftsRangeWord9212); if (state.failed) return retval; if ( state.backtracking==0 ) { - ID318_tree = (Object)adaptor.create(ID318); - adaptor.addChild(root_0, ID318_tree); + ID340_tree = (Object)adaptor.create(ID340); + adaptor.addChild(root_0, ID340_tree); } } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:899:11: FTSWORD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:934:11: FTSWORD { root_0 = (Object)adaptor.nil(); - FTSWORD319=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsRangeWord8605); if (state.failed) return retval; + FTSWORD341=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsRangeWord9224); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSWORD319_tree = (Object)adaptor.create(FTSWORD319); - adaptor.addChild(root_0, FTSWORD319_tree); + FTSWORD341_tree = (Object)adaptor.create(FTSWORD341); + adaptor.addChild(root_0, FTSWORD341_tree); } } break; case 3 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:900:11: FTSPRE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:935:11: FTSPRE { root_0 = (Object)adaptor.nil(); - FTSPRE320=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsRangeWord8617); if (state.failed) return retval; + FTSPRE342=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsRangeWord9236); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSPRE320_tree = (Object)adaptor.create(FTSPRE320); - adaptor.addChild(root_0, FTSPRE320_tree); + FTSPRE342_tree = (Object)adaptor.create(FTSPRE342); + adaptor.addChild(root_0, FTSPRE342_tree); } } break; case 4 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:901:11: FTSWILD + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:936:11: FTSWILD { root_0 = (Object)adaptor.nil(); - FTSWILD321=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsRangeWord8629); if (state.failed) return retval; + FTSWILD343=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsRangeWord9248); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSWILD321_tree = (Object)adaptor.create(FTSWILD321); - adaptor.addChild(root_0, FTSWILD321_tree); + FTSWILD343_tree = (Object)adaptor.create(FTSWILD343); + adaptor.addChild(root_0, FTSWILD343_tree); } } break; case 5 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:902:11: FTSPHRASE + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:937:11: FTSPHRASE { root_0 = (Object)adaptor.nil(); - FTSPHRASE322=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsRangeWord8641); if (state.failed) return retval; + FTSPHRASE344=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsRangeWord9260); if (state.failed) return retval; if ( state.backtracking==0 ) { - FTSPHRASE322_tree = (Object)adaptor.create(FTSPHRASE322); - adaptor.addChild(root_0, FTSPHRASE322_tree); + FTSPHRASE344_tree = (Object)adaptor.create(FTSPHRASE344); + adaptor.addChild(root_0, FTSPHRASE344_tree); } } break; case 6 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:903:11: DECIMAL_INTEGER_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:938:11: DECIMAL_INTEGER_LITERAL { root_0 = (Object)adaptor.nil(); - DECIMAL_INTEGER_LITERAL323=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord8653); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL345=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord9272); if (state.failed) return retval; if ( state.backtracking==0 ) { - DECIMAL_INTEGER_LITERAL323_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL323); - adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL323_tree); + DECIMAL_INTEGER_LITERAL345_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL345); + adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL345_tree); } } break; case 7 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:904:11: FLOATING_POINT_LITERAL + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:939:11: FLOATING_POINT_LITERAL { root_0 = (Object)adaptor.nil(); - FLOATING_POINT_LITERAL324=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord8665); if (state.failed) return retval; + FLOATING_POINT_LITERAL346=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord9284); if (state.failed) return retval; if ( state.backtracking==0 ) { - FLOATING_POINT_LITERAL324_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL324); - adaptor.addChild(root_0, FLOATING_POINT_LITERAL324_tree); + FLOATING_POINT_LITERAL346_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL346); + adaptor.addChild(root_0, FLOATING_POINT_LITERAL346_tree); } } break; case 8 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:905:11: DATETIME + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:940:11: DATETIME { root_0 = (Object)adaptor.nil(); - DATETIME325=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsRangeWord8677); if (state.failed) return retval; + DATETIME347=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsRangeWord9296); if (state.failed) return retval; if ( state.backtracking==0 ) { - DATETIME325_tree = (Object)adaptor.create(DATETIME325); - adaptor.addChild(root_0, DATETIME325_tree); + DATETIME347_tree = (Object)adaptor.create(DATETIME347); + adaptor.addChild(root_0, DATETIME347_tree); } } break; case 9 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:906:11: STAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:941:11: STAR { root_0 = (Object)adaptor.nil(); - STAR326=(Token)match(input,STAR,FOLLOW_STAR_in_ftsRangeWord8689); if (state.failed) return retval; + STAR348=(Token)match(input,STAR,FOLLOW_STAR_in_ftsRangeWord9308); if (state.failed) return retval; if ( state.backtracking==0 ) { - STAR326_tree = (Object)adaptor.create(STAR326); - adaptor.addChild(root_0, STAR326_tree); + STAR348_tree = (Object)adaptor.create(STAR348); + adaptor.addChild(root_0, STAR348_tree); } } break; case 10 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:907:11: URI identifier + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:942:11: URI identifier { root_0 = (Object)adaptor.nil(); - URI327=(Token)match(input,URI,FOLLOW_URI_in_ftsRangeWord8701); if (state.failed) return retval; + URI349=(Token)match(input,URI,FOLLOW_URI_in_ftsRangeWord9320); if (state.failed) return retval; if ( state.backtracking==0 ) { - URI327_tree = (Object)adaptor.create(URI327); - adaptor.addChild(root_0, URI327_tree); + URI349_tree = (Object)adaptor.create(URI349); + adaptor.addChild(root_0, URI349_tree); } - pushFollow(FOLLOW_identifier_in_ftsRangeWord8703); - identifier328=identifier(); + pushFollow(FOLLOW_identifier_in_ftsRangeWord9322); + identifier350=identifier(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier328.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier350.getTree()); } break; @@ -12365,70 +13666,70 @@ public class FTSParser extends Parser { // $ANTLR start "or" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:912:1: or : ( OR | BAR BAR ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:947:1: or : ( OR | BAR BAR ); public final FTSParser.or_return or() throws RecognitionException { FTSParser.or_return retval = new FTSParser.or_return(); retval.start = input.LT(1); Object root_0 = null; - Token OR329=null; - Token BAR330=null; - Token BAR331=null; + Token OR351=null; + Token BAR352=null; + Token BAR353=null; - Object OR329_tree=null; - Object BAR330_tree=null; - Object BAR331_tree=null; + Object OR351_tree=null; + Object BAR352_tree=null; + Object BAR353_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:913:9: ( OR | BAR BAR ) - int alt76=2; - int LA76_0 = input.LA(1); - if ( (LA76_0==OR) ) { - alt76=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:948:9: ( OR | BAR BAR ) + int alt87=2; + int LA87_0 = input.LA(1); + if ( (LA87_0==OR) ) { + alt87=1; } - else if ( (LA76_0==BAR) ) { - alt76=2; + else if ( (LA87_0==BAR) ) { + alt87=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 76, 0, input); + new NoViableAltException("", 87, 0, input); throw nvae; } - switch (alt76) { + switch (alt87) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:914:9: OR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:949:9: OR { root_0 = (Object)adaptor.nil(); - OR329=(Token)match(input,OR,FOLLOW_OR_in_or8738); if (state.failed) return retval; + OR351=(Token)match(input,OR,FOLLOW_OR_in_or9357); if (state.failed) return retval; if ( state.backtracking==0 ) { - OR329_tree = (Object)adaptor.create(OR329); - adaptor.addChild(root_0, OR329_tree); + OR351_tree = (Object)adaptor.create(OR351); + adaptor.addChild(root_0, OR351_tree); } } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:915:11: BAR BAR + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:950:11: BAR BAR { root_0 = (Object)adaptor.nil(); - BAR330=(Token)match(input,BAR,FOLLOW_BAR_in_or8750); if (state.failed) return retval; + BAR352=(Token)match(input,BAR,FOLLOW_BAR_in_or9369); if (state.failed) return retval; if ( state.backtracking==0 ) { - BAR330_tree = (Object)adaptor.create(BAR330); - adaptor.addChild(root_0, BAR330_tree); + BAR352_tree = (Object)adaptor.create(BAR352); + adaptor.addChild(root_0, BAR352_tree); } - BAR331=(Token)match(input,BAR,FOLLOW_BAR_in_or8752); if (state.failed) return retval; + BAR353=(Token)match(input,BAR,FOLLOW_BAR_in_or9371); if (state.failed) return retval; if ( state.backtracking==0 ) { - BAR331_tree = (Object)adaptor.create(BAR331); - adaptor.addChild(root_0, BAR331_tree); + BAR353_tree = (Object)adaptor.create(BAR353); + adaptor.addChild(root_0, BAR353_tree); } } @@ -12464,70 +13765,70 @@ public class FTSParser extends Parser { // $ANTLR start "and" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:918:1: and : ( AND | AMP AMP ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:953:1: and : ( AND | AMP AMP ); public final FTSParser.and_return and() throws RecognitionException { FTSParser.and_return retval = new FTSParser.and_return(); retval.start = input.LT(1); Object root_0 = null; - Token AND332=null; - Token AMP333=null; - Token AMP334=null; + Token AND354=null; + Token AMP355=null; + Token AMP356=null; - Object AND332_tree=null; - Object AMP333_tree=null; - Object AMP334_tree=null; + Object AND354_tree=null; + Object AMP355_tree=null; + Object AMP356_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:919:9: ( AND | AMP AMP ) - int alt77=2; - int LA77_0 = input.LA(1); - if ( (LA77_0==AND) ) { - alt77=1; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:954:9: ( AND | AMP AMP ) + int alt88=2; + int LA88_0 = input.LA(1); + if ( (LA88_0==AND) ) { + alt88=1; } - else if ( (LA77_0==AMP) ) { - alt77=2; + else if ( (LA88_0==AMP) ) { + alt88=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = - new NoViableAltException("", 77, 0, input); + new NoViableAltException("", 88, 0, input); throw nvae; } - switch (alt77) { + switch (alt88) { case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:920:9: AND + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:955:9: AND { root_0 = (Object)adaptor.nil(); - AND332=(Token)match(input,AND,FOLLOW_AND_in_and8785); if (state.failed) return retval; + AND354=(Token)match(input,AND,FOLLOW_AND_in_and9404); if (state.failed) return retval; if ( state.backtracking==0 ) { - AND332_tree = (Object)adaptor.create(AND332); - adaptor.addChild(root_0, AND332_tree); + AND354_tree = (Object)adaptor.create(AND354); + adaptor.addChild(root_0, AND354_tree); } } break; case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:921:11: AMP AMP + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:956:11: AMP AMP { root_0 = (Object)adaptor.nil(); - AMP333=(Token)match(input,AMP,FOLLOW_AMP_in_and8797); if (state.failed) return retval; + AMP355=(Token)match(input,AMP,FOLLOW_AMP_in_and9416); if (state.failed) return retval; if ( state.backtracking==0 ) { - AMP333_tree = (Object)adaptor.create(AMP333); - adaptor.addChild(root_0, AMP333_tree); + AMP355_tree = (Object)adaptor.create(AMP355); + adaptor.addChild(root_0, AMP355_tree); } - AMP334=(Token)match(input,AMP,FOLLOW_AMP_in_and8799); if (state.failed) return retval; + AMP356=(Token)match(input,AMP,FOLLOW_AMP_in_and9418); if (state.failed) return retval; if ( state.backtracking==0 ) { - AMP334_tree = (Object)adaptor.create(AMP334); - adaptor.addChild(root_0, AMP334_tree); + AMP356_tree = (Object)adaptor.create(AMP356); + adaptor.addChild(root_0, AMP356_tree); } } @@ -12563,28 +13864,28 @@ public class FTSParser extends Parser { // $ANTLR start "not" - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:924:1: not : ( NOT | EXCLAMATION ); + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:959:1: not : ( NOT | EXCLAMATION ); public final FTSParser.not_return not() throws RecognitionException { FTSParser.not_return retval = new FTSParser.not_return(); retval.start = input.LT(1); Object root_0 = null; - Token set335=null; + Token set357=null; - Object set335_tree=null; + Object set357_tree=null; try { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:925:9: ( NOT | EXCLAMATION ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g: + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:960:9: ( NOT | EXCLAMATION ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { root_0 = (Object)adaptor.nil(); - set335=input.LT(1); + set357=input.LT(1); if ( input.LA(1)==EXCLAMATION||input.LA(1)==NOT ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set335)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set357)); state.errorRecovery=false; state.failed=false; } @@ -12617,8 +13918,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred1_FTS public final void synpred1_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:415:9: ( not ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:415:10: not + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:9: ( not ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:10: not { pushFollow(FOLLOW_not_in_synpred1_FTS1233); not(); @@ -12632,8 +13933,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred2_FTS public final void synpred2_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:447:12: ( ftsFieldGroupProximity ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:447:13: ftsFieldGroupProximity + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:12: ( ftsFieldGroupProximity ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:13: ftsFieldGroupProximity { pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred2_FTS1746); ftsFieldGroupProximity(); @@ -12647,8 +13948,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred3_FTS public final void synpred3_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:451:12: ( ftsRange ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:451:13: ftsRange + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:12: ( ftsRange ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:13: ftsRange { pushFollow(FOLLOW_ftsRange_in_synpred3_FTS1823); ftsRange(); @@ -12662,8 +13963,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred4_FTS public final void synpred4_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:455:12: ( ftsFieldGroup ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:455:13: ftsFieldGroup + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:12: ( ftsFieldGroup ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:13: ftsFieldGroup { pushFollow(FOLLOW_ftsFieldGroup_in_synpred4_FTS1902); ftsFieldGroup(); @@ -12677,8 +13978,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred5_FTS public final void synpred5_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:458:12: ( ftsTermOrPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:458:13: ftsTermOrPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:12: ( ftsTermOrPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:13: ftsTermOrPhrase { pushFollow(FOLLOW_ftsTermOrPhrase_in_synpred5_FTS1951); ftsTermOrPhrase(); @@ -12692,8 +13993,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred6_FTS public final void synpred6_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:460:12: ( ftsExactTermOrPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:460:13: ftsExactTermOrPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:12: ( ftsExactTermOrPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:13: ftsExactTermOrPhrase { pushFollow(FOLLOW_ftsExactTermOrPhrase_in_synpred6_FTS1980); ftsExactTermOrPhrase(); @@ -12707,8 +14008,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred7_FTS public final void synpred7_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:462:12: ( ftsTokenisedTermOrPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:462:13: ftsTokenisedTermOrPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:12: ( ftsTokenisedTermOrPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:13: ftsTokenisedTermOrPhrase { pushFollow(FOLLOW_ftsTokenisedTermOrPhrase_in_synpred7_FTS2010); ftsTokenisedTermOrPhrase(); @@ -12722,11 +14023,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred8_FTS public final void synpred8_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:514:9: ( fieldReference COLON ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:514:10: fieldReference COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:9: ( fieldReferenceWithPrefix COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:10: fieldReferenceWithPrefix COLON { - pushFollow(FOLLOW_fieldReference_in_synpred8_FTS2683); - fieldReference(); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred8_FTS2683); + fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return; @@ -12739,8 +14040,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred9_FTS public final void synpred9_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:516:28: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:516:29: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:28: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:29: slop { pushFollow(FOLLOW_slop_in_synpred9_FTS2724); slop(); @@ -12754,8 +14055,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred10_FTS public final void synpred10_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:519:26: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:519:27: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:26: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:27: fuzzy { pushFollow(FOLLOW_fuzzy_in_synpred10_FTS2799); fuzzy(); @@ -12769,14 +14070,16 @@ public class FTSParser extends Parser { // $ANTLR start synpred11_FTS public final void synpred11_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:523:20: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:523:21: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:9: ( fieldReferenceWithoutPrefix COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:10: fieldReferenceWithoutPrefix COLON { - pushFollow(FOLLOW_slop_in_synpred11_FTS2869); - slop(); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred11_FTS2866); + fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred11_FTS2868); if (state.failed) return; + } } @@ -12784,11 +14087,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred12_FTS public final void synpred12_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:526:18: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:526:19: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:28: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:29: slop { - pushFollow(FOLLOW_fuzzy_in_synpred12_FTS2927); - fuzzy(); + pushFollow(FOLLOW_slop_in_synpred12_FTS2907); + slop(); state._fsp--; if (state.failed) return; @@ -12799,16 +14102,14 @@ public class FTSParser extends Parser { // $ANTLR start synpred13_FTS public final void synpred13_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:535:9: ( fieldReference COLON ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:535:10: fieldReference COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:26: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:27: fuzzy { - pushFollow(FOLLOW_fieldReference_in_synpred13_FTS3032); - fieldReference(); + pushFollow(FOLLOW_fuzzy_in_synpred13_FTS2982); + fuzzy(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred13_FTS3034); if (state.failed) return; - } } @@ -12816,10 +14117,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred14_FTS public final void synpred14_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:537:28: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:537:29: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:20: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:21: slop { - pushFollow(FOLLOW_slop_in_synpred14_FTS3073); + pushFollow(FOLLOW_slop_in_synpred14_FTS3052); slop(); state._fsp--; if (state.failed) return; @@ -12831,10 +14132,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred15_FTS public final void synpred15_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:540:26: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:540:27: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:18: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:19: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred15_FTS3148); + pushFollow(FOLLOW_fuzzy_in_synpred15_FTS3110); fuzzy(); state._fsp--; if (state.failed) return; @@ -12846,14 +14147,16 @@ public class FTSParser extends Parser { // $ANTLR start synpred16_FTS public final void synpred16_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:544:20: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:544:21: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:9: ( fieldReferenceWithPrefix COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:10: fieldReferenceWithPrefix COLON { - pushFollow(FOLLOW_slop_in_synpred16_FTS3218); - slop(); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred16_FTS3215); + fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred16_FTS3217); if (state.failed) return; + } } @@ -12861,11 +14164,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred17_FTS public final void synpred17_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:547:18: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:547:19: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:28: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:29: slop { - pushFollow(FOLLOW_fuzzy_in_synpred17_FTS3276); - fuzzy(); + pushFollow(FOLLOW_slop_in_synpred17_FTS3256); + slop(); state._fsp--; if (state.failed) return; @@ -12876,16 +14179,14 @@ public class FTSParser extends Parser { // $ANTLR start synpred18_FTS public final void synpred18_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:557:9: ( fieldReference COLON ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:557:10: fieldReference COLON + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:26: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:27: fuzzy { - pushFollow(FOLLOW_fieldReference_in_synpred18_FTS3383); - fieldReference(); + pushFollow(FOLLOW_fuzzy_in_synpred18_FTS3331); + fuzzy(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred18_FTS3385); if (state.failed) return; - } } @@ -12893,14 +14194,16 @@ public class FTSParser extends Parser { // $ANTLR start synpred19_FTS public final void synpred19_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:559:28: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:559:29: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:9: ( fieldReferenceWithoutPrefix COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:10: fieldReferenceWithoutPrefix COLON { - pushFollow(FOLLOW_slop_in_synpred19_FTS3424); - slop(); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred19_FTS3398); + fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred19_FTS3400); if (state.failed) return; + } } @@ -12908,11 +14211,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred20_FTS public final void synpred20_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:562:26: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:562:27: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:28: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:29: slop { - pushFollow(FOLLOW_fuzzy_in_synpred20_FTS3499); - fuzzy(); + pushFollow(FOLLOW_slop_in_synpred20_FTS3439); + slop(); state._fsp--; if (state.failed) return; @@ -12923,11 +14226,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred21_FTS public final void synpred21_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:566:20: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:566:21: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:26: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:27: fuzzy { - pushFollow(FOLLOW_slop_in_synpred21_FTS3569); - slop(); + pushFollow(FOLLOW_fuzzy_in_synpred21_FTS3514); + fuzzy(); state._fsp--; if (state.failed) return; @@ -12938,11 +14241,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred22_FTS public final void synpred22_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:569:18: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:569:19: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:20: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:21: slop { - pushFollow(FOLLOW_fuzzy_in_synpred22_FTS3627); - fuzzy(); + pushFollow(FOLLOW_slop_in_synpred22_FTS3584); + slop(); state._fsp--; if (state.failed) return; @@ -12953,11 +14256,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred23_FTS public final void synpred23_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:642:9: ( not ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:642:10: not + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:18: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:19: fuzzy { - pushFollow(FOLLOW_not_in_synpred23_FTS4374); - not(); + pushFollow(FOLLOW_fuzzy_in_synpred23_FTS3642); + fuzzy(); state._fsp--; if (state.failed) return; @@ -12968,14 +14271,16 @@ public class FTSParser extends Parser { // $ANTLR start synpred24_FTS public final void synpred24_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:661:9: ( ftsFieldGroupProximity ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:661:10: ftsFieldGroupProximity + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:9: ( fieldReferenceWithPrefix COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:10: fieldReferenceWithPrefix COLON { - pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred24_FTS4739); - ftsFieldGroupProximity(); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred24_FTS3749); + fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred24_FTS3751); if (state.failed) return; + } } @@ -12983,11 +14288,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred25_FTS public final void synpred25_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:11: ( ftsFieldGroupTerm ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:12: ftsFieldGroupTerm + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:28: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:29: slop { - pushFollow(FOLLOW_ftsFieldGroupTerm_in_synpred25_FTS4805); - ftsFieldGroupTerm(); + pushFollow(FOLLOW_slop_in_synpred25_FTS3790); + slop(); state._fsp--; if (state.failed) return; @@ -12998,10 +14303,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred26_FTS public final void synpred26_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:54: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:664:55: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:26: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred26_FTS4815); + pushFollow(FOLLOW_fuzzy_in_synpred26_FTS3865); fuzzy(); state._fsp--; if (state.failed) return; @@ -13013,14 +14318,16 @@ public class FTSParser extends Parser { // $ANTLR start synpred27_FTS public final void synpred27_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:11: ( ftsFieldGroupExactTerm ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:12: ftsFieldGroupExactTerm + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:9: ( fieldReferenceWithoutPrefix COLON ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:10: fieldReferenceWithoutPrefix COLON { - pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_synpred27_FTS4886); - ftsFieldGroupExactTerm(); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred27_FTS3932); + fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred27_FTS3934); if (state.failed) return; + } } @@ -13028,11 +14335,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred28_FTS public final void synpred28_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:64: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:667:65: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:28: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:29: slop { - pushFollow(FOLLOW_fuzzy_in_synpred28_FTS4896); - fuzzy(); + pushFollow(FOLLOW_slop_in_synpred28_FTS3973); + slop(); state._fsp--; if (state.failed) return; @@ -13043,11 +14350,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred29_FTS public final void synpred29_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:11: ( ftsFieldGroupPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:12: ftsFieldGroupPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:26: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:27: fuzzy { - pushFollow(FOLLOW_ftsFieldGroupPhrase_in_synpred29_FTS4967); - ftsFieldGroupPhrase(); + pushFollow(FOLLOW_fuzzy_in_synpred29_FTS4048); + fuzzy(); state._fsp--; if (state.failed) return; @@ -13058,10 +14365,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred30_FTS public final void synpred30_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:58: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:670:59: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:20: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:21: slop { - pushFollow(FOLLOW_slop_in_synpred30_FTS4977); + pushFollow(FOLLOW_slop_in_synpred30_FTS4118); slop(); state._fsp--; if (state.failed) return; @@ -13073,11 +14380,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred31_FTS public final void synpred31_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:11: ( ftsFieldGroupExactPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:12: ftsFieldGroupExactPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:18: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:19: fuzzy { - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_synpred31_FTS5048); - ftsFieldGroupExactPhrase(); + pushFollow(FOLLOW_fuzzy_in_synpred31_FTS4176); + fuzzy(); state._fsp--; if (state.failed) return; @@ -13088,11 +14395,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred32_FTS public final void synpred32_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:68: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:673:69: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:9: ( not ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:10: not { - pushFollow(FOLLOW_slop_in_synpred32_FTS5058); - slop(); + pushFollow(FOLLOW_not_in_synpred32_FTS4923); + not(); state._fsp--; if (state.failed) return; @@ -13103,11 +14410,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred33_FTS public final void synpred33_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:11: ( ftsFieldGroupTokenisedPhrase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:12: ftsFieldGroupTokenisedPhrase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:9: ( ftsFieldGroupProximity ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:10: ftsFieldGroupProximity { - pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred33_FTS5129); - ftsFieldGroupTokenisedPhrase(); + pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred33_FTS5288); + ftsFieldGroupProximity(); state._fsp--; if (state.failed) return; @@ -13118,11 +14425,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred34_FTS public final void synpred34_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:76: ( slop ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:676:77: slop + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:11: ( ftsFieldGroupTerm ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:12: ftsFieldGroupTerm { - pushFollow(FOLLOW_slop_in_synpred34_FTS5139); - slop(); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_synpred34_FTS5354); + ftsFieldGroupTerm(); state._fsp--; if (state.failed) return; @@ -13133,11 +14440,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred35_FTS public final void synpred35_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:11: ( ftsFieldGroupSynonym ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:12: ftsFieldGroupSynonym + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:54: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:55: fuzzy { - pushFollow(FOLLOW_ftsFieldGroupSynonym_in_synpred35_FTS5210); - ftsFieldGroupSynonym(); + pushFollow(FOLLOW_fuzzy_in_synpred35_FTS5364); + fuzzy(); state._fsp--; if (state.failed) return; @@ -13148,11 +14455,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred36_FTS public final void synpred36_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:60: ( fuzzy ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:679:61: fuzzy + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:11: ( ftsFieldGroupExactTerm ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:12: ftsFieldGroupExactTerm { - pushFollow(FOLLOW_fuzzy_in_synpred36_FTS5220); - fuzzy(); + pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_synpred36_FTS5435); + ftsFieldGroupExactTerm(); state._fsp--; if (state.failed) return; @@ -13163,11 +14470,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred37_FTS public final void synpred37_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:682:11: ( ftsFieldGroupRange ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:682:12: ftsFieldGroupRange + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:64: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:65: fuzzy { - pushFollow(FOLLOW_ftsFieldGroupRange_in_synpred37_FTS5291); - ftsFieldGroupRange(); + pushFollow(FOLLOW_fuzzy_in_synpred37_FTS5445); + fuzzy(); state._fsp--; if (state.failed) return; @@ -13178,11 +14485,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred38_FTS public final void synpred38_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:725:38: ( proximityGroup ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:725:39: proximityGroup + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:11: ( ftsFieldGroupPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:12: ftsFieldGroupPhrase { - pushFollow(FOLLOW_proximityGroup_in_synpred38_FTS5720); - proximityGroup(); + pushFollow(FOLLOW_ftsFieldGroupPhrase_in_synpred38_FTS5516); + ftsFieldGroupPhrase(); state._fsp--; if (state.failed) return; @@ -13193,11 +14500,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred39_FTS public final void synpred39_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:781:19: ( prefix ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:781:20: prefix + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:58: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:59: slop { - pushFollow(FOLLOW_prefix_in_synpred39_FTS6352); - prefix(); + pushFollow(FOLLOW_slop_in_synpred39_FTS5526); + slop(); state._fsp--; if (state.failed) return; @@ -13208,14 +14515,13 @@ public class FTSParser extends Parser { // $ANTLR start synpred40_FTS public final void synpred40_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:817:9: ( ID DOT ID ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:817:10: ID DOT ID + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:11: ( ftsFieldGroupExactPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:12: ftsFieldGroupExactPhrase { - match(input,ID,FOLLOW_ID_in_synpred40_FTS6807); if (state.failed) return; - - match(input,DOT,FOLLOW_DOT_in_synpred40_FTS6809); if (state.failed) return; - - match(input,ID,FOLLOW_ID_in_synpred40_FTS6811); if (state.failed) return; + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_synpred40_FTS5597); + ftsFieldGroupExactPhrase(); + state._fsp--; + if (state.failed) return; } @@ -13224,81 +14530,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred41_FTS public final void synpred41_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:837:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:837:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:68: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:69: slop { - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred41_FTS7133); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred41_FTS7141); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred41_FTS7149); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred41_FTS7157); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred41_FTS7165); - ftsWordBase(); + pushFollow(FOLLOW_slop_in_synpred41_FTS5607); + slop(); state._fsp--; if (state.failed) return; @@ -13309,173 +14545,29 @@ public class FTSParser extends Parser { // $ANTLR start synpred42_FTS public final void synpred42_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:839:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase ) - int alt78=2; - int LA78_0 = input.LA(1); - if ( (LA78_0==DATETIME||LA78_0==DECIMAL_INTEGER_LITERAL||LA78_0==FLOATING_POINT_LITERAL||(LA78_0 >= FTSPRE && LA78_0 <= FTSWORD)||LA78_0==ID||LA78_0==NOT||LA78_0==QUESTION_MARK||LA78_0==STAR||LA78_0==TO||LA78_0==URI) ) { - alt78=1; - } - else if ( (LA78_0==COMMA) ) { - alt78=2; - } - - else { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = - new NoViableAltException("", 78, 0, input); - throw nvae; - } - - switch (alt78) { - case 1 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:839:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT - { - pushFollow(FOLLOW_ftsWordBase_in_synpred42_FTS7233); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred42_FTS7241); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred42_FTS7249); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred42_FTS7257); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - match(input,DOT,FOLLOW_DOT_in_synpred42_FTS7259); if (state.failed) return; - - } - break; - case 2 : - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:839:100: COMMA ftsWordBase - { - match(input,COMMA,FOLLOW_COMMA_in_synpred42_FTS7261); if (state.failed) return; - - pushFollow(FOLLOW_ftsWordBase_in_synpred42_FTS7263); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - } - break; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:11: ( ftsFieldGroupTokenisedPhrase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:12: ftsFieldGroupTokenisedPhrase + { + pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred42_FTS5678); + ftsFieldGroupTokenisedPhrase(); + state._fsp--; + if (state.failed) return; } + } // $ANTLR end synpred42_FTS // $ANTLR start synpred43_FTS public final void synpred43_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:841:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:841:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:76: ( slop ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:77: slop { - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred43_FTS7332); - ftsWordBase(); + pushFollow(FOLLOW_slop_in_synpred43_FTS5688); + slop(); state._fsp--; if (state.failed) return; - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred43_FTS7340); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred43_FTS7348); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred43_FTS7356); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } } } @@ -13483,69 +14575,14 @@ public class FTSParser extends Parser { // $ANTLR start synpred44_FTS public final void synpred44_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:843:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:843:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:11: ( ftsFieldGroupSynonym ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:12: ftsFieldGroupSynonym { - pushFollow(FOLLOW_ftsWordBase_in_synpred44_FTS7428); - ftsWordBase(); + pushFollow(FOLLOW_ftsFieldGroupSynonym_in_synpred44_FTS5759); + ftsFieldGroupSynonym(); state._fsp--; if (state.failed) return; - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred44_FTS7436); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred44_FTS7444); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred44_FTS7452); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } } } @@ -13553,66 +14590,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred45_FTS public final void synpred45_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:845:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:845:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:60: ( fuzzy ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:61: fuzzy { - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred45_FTS7525); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred45_FTS7533); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred45_FTS7541); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred45_FTS7549); - ftsWordBase(); + pushFollow(FOLLOW_fuzzy_in_synpred45_FTS5769); + fuzzy(); state._fsp--; if (state.failed) return; @@ -13623,56 +14605,11 @@ public class FTSParser extends Parser { // $ANTLR start synpred46_FTS public final void synpred46_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:847:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:847:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:11: ( ftsFieldGroupRange ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:12: ftsFieldGroupRange { - pushFollow(FOLLOW_ftsWordBase_in_synpred46_FTS7609); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred46_FTS7617); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred46_FTS7625); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred46_FTS7633); - ftsWordBase(); + pushFollow(FOLLOW_ftsFieldGroupRange_in_synpred46_FTS5840); + ftsFieldGroupRange(); state._fsp--; if (state.failed) return; @@ -13683,64 +14620,14 @@ public class FTSParser extends Parser { // $ANTLR start synpred47_FTS public final void synpred47_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:849:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:849:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:38: ( proximityGroup ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:39: proximityGroup { - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred47_FTS7693); - ftsWordBase(); + pushFollow(FOLLOW_proximityGroup_in_synpred47_FTS6269); + proximityGroup(); state._fsp--; if (state.failed) return; - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred47_FTS7701); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred47_FTS7709); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } } } @@ -13748,54 +14635,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred48_FTS public final void synpred48_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:851:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:851:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:9: ( ID DOT ID ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:10: ID DOT ID { - pushFollow(FOLLOW_ftsWordBase_in_synpred48_FTS7773); - ftsWordBase(); - state._fsp--; - if (state.failed) return; + match(input,ID,FOLLOW_ID_in_synpred48_FTS7426); if (state.failed) return; - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred48_FTS7781); - ftsWordBase(); - state._fsp--; - if (state.failed) return; + match(input,DOT,FOLLOW_DOT_in_synpred48_FTS7428); if (state.failed) return; - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred48_FTS7789); - ftsWordBase(); - state._fsp--; - if (state.failed) return; + match(input,ID,FOLLOW_ID_in_synpred48_FTS7430); if (state.failed) return; - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } } } @@ -13803,8 +14651,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred49_FTS public final void synpred49_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:853:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:853:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -13816,7 +14664,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7853); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7752); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13831,7 +14679,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7861); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7760); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13846,7 +14694,37 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7869); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7768); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7776); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7784); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13858,53 +14736,102 @@ public class FTSParser extends Parser { // $ANTLR start synpred50_FTS public final void synpred50_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:855:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:855:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase - { - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7921); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase ) + int alt89=2; + int LA89_0 = input.LA(1); + if ( (LA89_0==DATETIME||LA89_0==DECIMAL_INTEGER_LITERAL||LA89_0==FLOATING_POINT_LITERAL||(LA89_0 >= FTSPRE && LA89_0 <= FTSWORD)||LA89_0==ID||LA89_0==NOT||LA89_0==QUESTION_MARK||LA89_0==STAR||LA89_0==TO||LA89_0==URI) ) { + alt89=1; } + else if ( (LA89_0==COMMA) ) { + alt89=2; + } + else { if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7929); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - - if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7937); - ftsWordBase(); - state._fsp--; - if (state.failed) return; - + NoViableAltException nvae = + new NoViableAltException("", 89, 0, input); + throw nvae; } + switch (alt89) { + case 1 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT + { + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7852); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7860); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7868); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7876); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + match(input,DOT,FOLLOW_DOT_in_synpred50_FTS7878); if (state.failed) return; + + } + break; + case 2 : + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:100: COMMA ftsWordBase + { + match(input,COMMA,FOLLOW_COMMA_in_synpred50_FTS7880); if (state.failed) return; + + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7882); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + } + break; + + } } // $ANTLR end synpred50_FTS // $ANTLR start synpred51_FTS public final void synpred51_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:857:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:857:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -13916,7 +14843,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7990); + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7951); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13931,7 +14858,37 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7998); + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7959); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7967); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7975); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13953,10 +14910,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred52_FTS public final void synpred52_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:859:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:859:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { - pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8054); + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8047); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13971,7 +14928,37 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8062); + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8055); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8063); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8071); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -13993,8 +14980,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred53_FTS public final void synpred53_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:861:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:861:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -14006,7 +14993,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8120); + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8144); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14021,7 +15008,37 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8128); + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8152); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8160); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8168); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14033,10 +15050,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred54_FTS public final void synpred54_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:863:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:863:12: ftsWordBase ( DOT | COMMA ) ftsWordBase + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { - pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8172); + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8228); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14051,7 +15068,37 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8180); + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8236); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8244); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8252); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14063,8 +15110,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred55_FTS public final void synpred55_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:865:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:865:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -14076,7 +15123,37 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8224); + pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8312); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8320); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8328); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14098,10 +15175,40 @@ public class FTSParser extends Parser { // $ANTLR start synpred56_FTS public final void synpred56_FTS_fragment() throws RecognitionException { - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:867:11: ( ftsWordBase ( DOT | COMMA ) ) - // W:\\alfresco\\HEAD-BUG-FIX\\root\\projects\\data-model\\source\\java\\org\\alfresco\\repo\\search\\impl\\parsers\\FTS.g:867:12: ftsWordBase ( DOT | COMMA ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { - pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8272); + pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8392); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8400); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8408); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14121,6 +15228,326 @@ public class FTSParser extends Parser { } // $ANTLR end synpred56_FTS + // $ANTLR start synpred57_FTS + public final void synpred57_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + { + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8472); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8480); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8488); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + } + + } + // $ANTLR end synpred57_FTS + + // $ANTLR start synpred58_FTS + public final void synpred58_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + { + pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8540); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8548); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8556); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + } + + } + // $ANTLR end synpred58_FTS + + // $ANTLR start synpred59_FTS + public final void synpred59_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred59_FTS8609); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred59_FTS8617); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + + } + // $ANTLR end synpred59_FTS + + // $ANTLR start synpred60_FTS + public final void synpred60_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + pushFollow(FOLLOW_ftsWordBase_in_synpred60_FTS8673); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred60_FTS8681); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + + } + // $ANTLR end synpred60_FTS + + // $ANTLR start synpred61_FTS + public final void synpred61_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + { + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred61_FTS8739); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred61_FTS8747); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + } + + } + // $ANTLR end synpred61_FTS + + // $ANTLR start synpred62_FTS + public final void synpred62_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:12: ftsWordBase ( DOT | COMMA ) ftsWordBase + { + pushFollow(FOLLOW_ftsWordBase_in_synpred62_FTS8791); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred62_FTS8799); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + } + + } + // $ANTLR end synpred62_FTS + + // $ANTLR start synpred63_FTS + public final void synpred63_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + { + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + pushFollow(FOLLOW_ftsWordBase_in_synpred63_FTS8843); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + + } + // $ANTLR end synpred63_FTS + + // $ANTLR start synpred64_FTS + public final void synpred64_FTS_fragment() throws RecognitionException { + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:11: ( ftsWordBase ( DOT | COMMA ) ) + // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:12: ftsWordBase ( DOT | COMMA ) + { + pushFollow(FOLLOW_ftsWordBase_in_synpred64_FTS8891); + ftsWordBase(); + state._fsp--; + if (state.failed) return; + + if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + } + + } + // $ANTLR end synpred64_FTS + // Delegated rules public final boolean synpred18_FTS() { @@ -14193,6 +15620,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred60_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred60_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred35_FTS() { state.backtracking++; int start = input.mark(); @@ -14277,6 +15718,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred61_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred61_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred34_FTS() { state.backtracking++; int start = input.mark(); @@ -14557,6 +16012,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred64_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred64_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred14_FTS() { state.backtracking++; int start = input.mark(); @@ -14571,6 +16040,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred57_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred57_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred5_FTS() { state.backtracking++; int start = input.mark(); @@ -14725,6 +16208,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred62_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred62_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred32_FTS() { state.backtracking++; int start = input.mark(); @@ -14753,6 +16250,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred59_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred59_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred29_FTS() { state.backtracking++; int start = input.mark(); @@ -14837,6 +16348,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred63_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred63_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred20_FTS() { state.backtracking++; int start = input.mark(); @@ -14851,6 +16376,20 @@ public class FTSParser extends Parser { state.failed=false; return success; } + public final boolean synpred58_FTS() { + state.backtracking++; + int start = input.mark(); + try { + synpred58_FTS_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred28_FTS() { state.backtracking++; int start = input.mark(); @@ -14910,39 +16449,43 @@ public class FTSParser extends Parser { protected DFA17 dfa17 = new DFA17(this); - protected DFA33 dfa33 = new DFA33(this); + protected DFA30 dfa30 = new DFA30(this); protected DFA39 dfa39 = new DFA39(this); - protected DFA60 dfa60 = new DFA60(this); - protected DFA73 dfa73 = new DFA73(this); + protected DFA48 dfa48 = new DFA48(this); + protected DFA69 dfa69 = new DFA69(this); + protected DFA84 dfa84 = new DFA84(this); static final String DFA17_eotS = - "\u00c8\uffff"; + "\u00ee\uffff"; static final String DFA17_eofS = "\1\uffff\12\41\4\uffff\1\41\10\uffff\2\41\40\uffff\5\41\46\uffff\2\41"+ - "\2\uffff\11\41\3\uffff\1\41\47\uffff\1\41\3\uffff\5\41\1\uffff\1\41\4"+ - "\uffff\1\41\26\uffff\1\41\4\uffff"; + "\2\uffff\11\41\3\uffff\1\41\51\uffff\1\41\4\uffff\5\41\1\uffff\1\41\4"+ + "\uffff\1\41\26\uffff\11\41\5\uffff\1\41\6\uffff\5\41\1\uffff\1\41\14\uffff"; static final String DFA17_minS = "\1\5\12\4\2\5\2\12\1\4\10\uffff\2\4\1\5\37\uffff\5\4\3\12\1\5\3\uffff"+ "\1\0\13\uffff\1\4\12\0\1\5\7\uffff\2\4\2\12\11\4\1\5\2\uffff\1\4\1\13"+ - "\1\77\3\12\1\4\34\uffff\5\0\1\4\3\uffff\5\4\1\0\1\4\2\uffff\1\12\1\77"+ - "\1\4\12\uffff\1\0\13\uffff\1\4\1\12\1\0\1\uffff\1\0"; + "\1\77\5\12\1\4\34\uffff\5\0\1\4\1\13\3\uffff\5\4\1\0\1\4\2\uffff\1\12"+ + "\1\77\1\4\12\uffff\1\0\13\uffff\11\4\1\5\4\uffff\1\4\1\12\1\0\4\uffff"+ + "\5\4\1\0\1\4\1\0\13\uffff"; static final String DFA17_maxS = "\13\150\1\146\1\150\2\12\1\150\10\uffff\3\150\37\uffff\5\150\1\25\2\12"+ "\1\146\3\uffff\1\0\13\uffff\1\150\12\0\1\146\7\uffff\2\150\2\12\11\150"+ - "\1\146\2\uffff\2\150\1\77\1\25\2\12\1\150\34\uffff\5\0\1\150\3\uffff\5"+ - "\150\1\0\1\150\2\uffff\1\12\1\77\1\150\12\uffff\1\0\13\uffff\1\150\1\12"+ - "\1\0\1\uffff\1\0"; + "\1\146\2\uffff\2\150\1\77\1\25\4\12\1\150\34\uffff\5\0\2\150\3\uffff\5"+ + "\150\1\0\1\150\2\uffff\1\12\1\77\1\150\12\uffff\1\0\13\uffff\11\150\1"+ + "\146\4\uffff\1\150\1\12\1\0\4\uffff\5\150\1\0\1\150\1\0\13\uffff"; static final String DFA17_acceptS = "\20\uffff\2\2\2\4\1\5\1\6\1\7\1\10\3\uffff\1\2\36\4\11\uffff\3\4\1\uffff"+ - "\13\4\14\uffff\6\4\1\3\16\uffff\2\4\7\uffff\1\1\33\4\6\uffff\3\4\7\uffff"+ - "\2\4\3\uffff\12\4\1\uffff\13\4\3\uffff\1\4\1\uffff"; + "\13\4\14\uffff\6\4\1\3\16\uffff\2\4\11\uffff\1\1\33\4\7\uffff\3\4\7\uffff"+ + "\2\4\3\uffff\12\4\1\uffff\13\4\12\uffff\4\4\3\uffff\4\4\10\uffff\13\4"; static final String DFA17_specialS = - "\1\75\1\77\1\37\1\44\1\45\1\62\1\54\1\56\1\52\1\66\1\60\4\uffff\1\55\10"+ - "\uffff\1\25\1\43\1\71\37\uffff\1\33\1\10\1\6\1\13\1\20\7\uffff\1\76\13"+ - "\uffff\1\40\1\24\1\22\1\27\1\42\1\47\1\65\1\61\1\73\1\5\1\46\10\uffff"+ - "\1\53\1\63\2\uffff\1\64\1\15\1\12\1\23\1\31\1\30\1\26\1\41\1\36\3\uffff"+ - "\1\4\1\51\4\uffff\1\32\34\uffff\1\57\1\0\1\7\1\21\1\34\1\50\3\uffff\1"+ - "\70\1\67\1\74\1\3\1\2\1\17\1\11\4\uffff\1\14\12\uffff\1\16\13\uffff\1"+ - "\35\1\uffff\1\72\1\uffff\1\1}>"; + "\1\16\1\62\1\35\1\27\1\37\1\17\1\4\1\51\1\63\1\74\1\70\4\uffff\1\71\10"+ + "\uffff\1\10\1\117\1\110\37\uffff\1\41\1\64\1\67\1\76\1\72\7\uffff\1\46"+ + "\13\uffff\1\23\1\15\1\66\1\100\1\75\1\120\1\50\1\112\1\1\1\31\1\55\10"+ + "\uffff\1\77\1\32\2\uffff\1\33\1\25\1\34\1\26\1\36\1\47\1\54\1\60\1\53"+ + "\3\uffff\1\116\1\43\6\uffff\1\57\34\uffff\1\40\1\14\1\45\1\56\1\65\1\107"+ + "\1\3\3\uffff\1\61\1\7\1\5\1\11\1\24\1\30\1\13\4\uffff\1\22\12\uffff\1"+ + "\42\13\uffff\1\104\1\111\1\106\1\114\1\115\1\2\1\0\1\20\1\6\5\uffff\1"+ + "\44\1\uffff\1\12\4\uffff\1\21\1\73\1\101\1\103\1\102\1\113\1\105\1\52"+ + "\13\uffff}>"; static final String[] DFA17_transitionS = { "\1\16\1\14\4\uffff\1\22\1\uffff\1\11\1\uffff\1\7\5\uffff\1\22\2\uffff"+ "\1\24\26\uffff\1\10\2\uffff\1\17\1\3\1\4\1\2\11\uffff\1\1\3\uffff\1\26"+ @@ -15089,7 +16632,7 @@ public class FTSParser extends Parser { "\1\32\12\uffff\1\167", "\1\32", "\1\32", - "\1\150\71\uffff\1\170\16\uffff\1\172\2\uffff\1\147\24\uffff\1\171", + "\1\173\71\uffff\1\170\16\uffff\1\174\2\uffff\1\172\24\uffff\1\171", "", "", "", @@ -15105,12 +16648,12 @@ public class FTSParser extends Parser { "", "", "", - "\1\u008c\1\u008b\1\u008e\1\u0097\3\uffff\1\175\1\uffff\1\u0087\1\uffff"+ - "\1\173\5\uffff\1\175\2\uffff\1\u0092\2\uffff\1\u008d\23\uffff\1\u0084"+ - "\2\uffff\1\u0089\1\u0080\1\u0081\1\177\11\uffff\1\176\3\uffff\1\u0094"+ - "\1\u0090\1\u0091\2\uffff\1\u008a\5\uffff\1\u0082\2\uffff\1\u008f\1\u0095"+ - "\1\uffff\1\u0096\3\uffff\1\u0086\2\uffff\1\174\4\uffff\1\u0085\4\uffff"+ - "\1\u0093\1\u0083\1\uffff\1\u0088", + "\1\u008e\1\u008d\1\u0090\1\u0099\3\uffff\1\177\1\uffff\1\u0089\1\uffff"+ + "\1\175\5\uffff\1\177\2\uffff\1\u0094\2\uffff\1\u008f\23\uffff\1\u0086"+ + "\2\uffff\1\u008b\1\u0082\1\u0083\1\u0081\11\uffff\1\u0080\3\uffff\1\u0096"+ + "\1\u0092\1\u0093\2\uffff\1\u008c\5\uffff\1\u0084\2\uffff\1\u0091\1\u0097"+ + "\1\uffff\1\u0098\3\uffff\1\u0088\2\uffff\1\176\4\uffff\1\u0087\4\uffff"+ + "\1\u0095\1\u0085\1\uffff\1\u008a", "\1\uffff", "\1\uffff", "\1\uffff", @@ -15121,8 +16664,8 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", - "\1\u009b\71\uffff\1\u0098\16\uffff\1\u009c\2\uffff\1\u009a\24\uffff"+ - "\1\u0099", + "\1\u009d\71\uffff\1\u009a\16\uffff\1\u009e\2\uffff\1\u009c\24\uffff"+ + "\1\u009b", "", "", "", @@ -15130,86 +16673,88 @@ public class FTSParser extends Parser { "", "", "", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\166\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009d\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\u00a0\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u009f\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\166\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\2\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\u00a0\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\2\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2\uffff"+ "\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff\1\71"+ "\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff\1\42"+ - "\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\166", - "\1\166", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\166\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\2\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2\uffff"+ + "\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\u00a0", + "\1\u00a0", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\u00a0\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\2\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2\uffff"+ "\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff\1\71"+ "\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff\1\42"+ - "\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\56\1\uffff"+ "\1\54\5\uffff\1\105\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2\uffff"+ "\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff\1\71"+ "\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff\1\42"+ - "\4\uffff\1\104\4\uffff\1\u00a0\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\4\uffff\1\104\4\uffff\1\u00a3\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\u00a4\71\uffff\1\u00a1\16\uffff\1\u00a5\2\uffff\1\u00a3\24\uffff"+ - "\1\u00a2", + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\u00a7\71\uffff\1\u00a4\16\uffff\1\u00a8\2\uffff\1\u00a6\24\uffff"+ + "\1\u00a5", "", "", "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\120\1\uffff"+ "\1\114\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\115\2\uffff"+ - "\1\61\1\110\1\111\1\107\11\uffff\1\u00a6\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\61\1\110\1\111\1\107\11\uffff\1\u00a9\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\112\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\117\2\uffff"+ "\1\42\4\uffff\1\116\4\uffff\1\35\1\113\1\uffff\1\121", "\1\163\1\uffff\1\160\1\uffff\1\156\5\uffff\1\163\31\uffff\1\157\2\uffff"+ - "\1\155\1\153\1\154\1\152\11\uffff\1\u00a7\3\uffff\1\144\1\20\1\21\10"+ - "\uffff\1\u00a8\11\uffff\1\164\7\uffff\1\161\5\uffff\1\u00a9\1\uffff\1"+ + "\1\155\1\153\1\154\1\152\11\uffff\1\u00aa\3\uffff\1\144\1\20\1\21\10"+ + "\uffff\1\u00ab\11\uffff\1\164\7\uffff\1\161\5\uffff\1\u00ac\1\uffff\1"+ "\162", - "\1\u00aa", - "\1\166\12\uffff\1\u00ab", + "\1\u00ad", + "\1\166\12\uffff\1\u00ae", "\1\166", "\1\166", - "\1\u00b6\1\u00b5\1\u008e\1\u00af\1\uffff\1\u00b4\1\uffff\1\u00ad\1\uffff"+ - "\1\u0087\1\uffff\1\u00b0\5\uffff\1\u00ad\1\u00b2\1\uffff\1\u0092\2\uffff"+ - "\1\u008d\23\uffff\1\u0084\2\uffff\1\u0089\1\u0080\1\u0081\1\177\11\uffff"+ - "\1\176\3\uffff\1\u0094\1\u0090\1\u0091\2\uffff\1\u008a\5\uffff\1\u0082"+ - "\2\uffff\1\u00ae\1\u0095\1\uffff\1\u0096\3\uffff\1\u0086\2\uffff\1\u00ac"+ - "\4\uffff\1\u00b1\4\uffff\1\u00b3\1\u0083\1\uffff\1\u0088", + "\1\166", + "\1\166", + "\1\u00b9\1\u00b8\1\u0090\1\u00b2\1\uffff\1\u00b7\1\uffff\1\u00b0\1\uffff"+ + "\1\u0089\1\uffff\1\u00b3\5\uffff\1\u00b0\1\u00b5\1\uffff\1\u0094\2\uffff"+ + "\1\u008f\23\uffff\1\u0086\2\uffff\1\u008b\1\u0082\1\u0083\1\u0081\11"+ + "\uffff\1\u0080\3\uffff\1\u0096\1\u0092\1\u0093\2\uffff\1\u008c\5\uffff"+ + "\1\u0084\2\uffff\1\u00b1\1\u0097\1\uffff\1\u0098\3\uffff\1\u0088\2\uffff"+ + "\1\u00af\4\uffff\1\u00b4\4\uffff\1\u00b6\1\u0085\1\uffff\1\u008a", "", "", "", @@ -15243,55 +16788,59 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\u00c1\1\uffff"+ - "\1\u00bd\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\u00be\2\uffff"+ - "\1\61\1\u00b9\1\u00ba\1\u00b8\11\uffff\1\u00b7\3\uffff\1\66\1\62\1\63"+ - "\2\uffff\1\71\5\uffff\1\u00bb\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff"+ - "\1\u00c0\2\uffff\1\42\4\uffff\1\u00bf\4\uffff\1\u009f\1\u00bc\1\uffff"+ - "\1\u00c2", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\u00c4\1\uffff"+ + "\1\u00c0\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\u00c1\2\uffff"+ + "\1\61\1\u00bc\1\u00bd\1\u00bb\11\uffff\1\u00ba\3\uffff\1\66\1\62\1\63"+ + "\2\uffff\1\71\5\uffff\1\u00be\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff"+ + "\1\u00c3\2\uffff\1\42\4\uffff\1\u00c2\4\uffff\1\u00a2\1\u00bf\1\uffff"+ + "\1\u00c5", + "\1\u00d0\1\uffff\1\u00cd\1\uffff\1\u00cb\5\uffff\1\u00d0\31\uffff\1"+ + "\u00cc\2\uffff\1\u00ca\1\u00c8\1\u00c9\1\u00c7\11\uffff\1\u00c6\3\uffff"+ + "\1\144\1\20\1\21\10\uffff\1\u00d1\11\uffff\1\u00d3\7\uffff\1\u00ce\5"+ + "\uffff\1\u00d2\1\uffff\1\u00cf", "", "", "", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u00c3\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d4\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", "\1\uffff", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u009e\1\uffff\1\56\1\uffff"+ - "\1\54\5\uffff\1\u009e\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00a1\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00a1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\104\4\uffff\1\u009f\1\53\1\uffff\1\57", + "\1\42\4\uffff\1\104\4\uffff\1\u00a2\1\53\1\uffff\1\57", "", "", "\1\32", - "\1\u00c4", + "\1\u00d5", "\1\143\1\142\1\60\1\44\1\uffff\1\141\1\uffff\1\105\1\uffff\1\133\1\uffff"+ "\1\131\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\132\2\uffff"+ "\1\61\1\125\1\126\1\124\11\uffff\1\123\3\uffff\1\66\1\62\1\63\2\uffff"+ "\1\71\5\uffff\1\127\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ - "\1\42\4\uffff\1\u00c5\4\uffff\1\u00c6\1\130\1\uffff\1\135", + "\1\42\4\uffff\1\u00d6\4\uffff\1\u00d7\1\130\1\uffff\1\135", "", "", "", @@ -15314,16 +16863,113 @@ public class FTSParser extends Parser { "", "", "", - "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\u00c1\1\uffff"+ - "\1\u00bd\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\u00be\2\uffff"+ - "\1\61\1\u00b9\1\u00ba\1\u00b8\11\uffff\1\u00c7\3\uffff\1\66\1\62\1\63"+ - "\2\uffff\1\71\5\uffff\1\u00bb\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff"+ - "\1\u00c0\2\uffff\1\42\4\uffff\1\u00bf\4\uffff\1\u009f\1\u00bc\1\uffff"+ - "\1\u00c2", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\105\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2\uffff"+ + "\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff\1\71"+ + "\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff\1\42"+ + "\4\uffff\1\104\4\uffff\1\u00da\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\u00de\71\uffff\1\u00db\16\uffff\1\u00df\2\uffff\1\u00dd\24\uffff"+ + "\1\u00dc", + "", + "", + "", + "", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\u00c4\1\uffff"+ + "\1\u00c0\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\u00c1\2\uffff"+ + "\1\61\1\u00bc\1\u00bd\1\u00bb\11\uffff\1\u00e0\3\uffff\1\66\1\62\1\63"+ + "\2\uffff\1\71\5\uffff\1\u00be\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff"+ + "\1\u00c3\2\uffff\1\42\4\uffff\1\u00c2\4\uffff\1\u00a2\1\u00bf\1\uffff"+ + "\1\u00c5", "\1\166", "\1\uffff", "", - "\1\uffff" + "", + "", + "", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00e1\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\u00d8\1\uffff\1\56\1\uffff"+ + "\1\54\5\uffff\1\u00d8\1\33\1\uffff\1\65\2\uffff\1\52\23\uffff\1\55\2"+ + "\uffff\1\61\1\50\1\51\1\47\11\uffff\1\46\3\uffff\1\66\1\62\1\63\2\uffff"+ + "\1\71\5\uffff\1\45\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff\1\64\2\uffff"+ + "\1\42\4\uffff\1\104\4\uffff\1\u00d9\1\53\1\uffff\1\57", + "\1\uffff", + "\1\40\1\37\1\60\1\44\1\uffff\1\36\1\uffff\1\105\1\uffff\1\u00ec\1\uffff"+ + "\1\u00e8\5\uffff\1\105\2\uffff\1\65\2\uffff\1\52\23\uffff\1\u00e9\2\uffff"+ + "\1\61\1\u00e4\1\u00e5\1\u00e3\11\uffff\1\u00e2\3\uffff\1\66\1\62\1\63"+ + "\2\uffff\1\71\5\uffff\1\u00e6\2\uffff\1\43\1\67\1\uffff\1\70\3\uffff"+ + "\1\u00eb\2\uffff\1\42\4\uffff\1\u00ea\4\uffff\1\u00d9\1\u00e7\1\uffff"+ + "\1\u00ed", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" }; static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS); @@ -15365,644 +17011,96 @@ public class FTSParser extends Parser { int _s = s; switch ( s ) { case 0 : - int LA17_153 = input.LA(1); + int LA17_204 = input.LA(1); - int index17_153 = input.index(); + int index17_204 = input.index(); input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 182;} - - input.seek(index17_153); + s = specialStateTransition0(LA17_204); + + input.seek(index17_204); if ( s>=0 ) return s; break; case 1 : - int LA17_199 = input.LA(1); + int LA17_90 = input.LA(1); - int index17_199 = input.index(); + int index17_90 = input.index(); input.rewind(); s = -1; - if ( (synpred3_FTS()) ) {s = 27;} - else if ( (synpred5_FTS()) ) {s = 198;} + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} - input.seek(index17_199); + input.seek(index17_90); if ( s>=0 ) return s; break; case 2 : - int LA17_165 = input.LA(1); + int LA17_203 = input.LA(1); - int index17_165 = input.index(); + int index17_203 = input.index(); input.rewind(); - s = -1; - if ( (LA17_165==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_165==COMMA||LA17_165==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_165==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_165==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_165==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_165==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_165==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_165==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_165==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_165==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_165==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_165==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_165==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_165==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_165==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_165==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_165==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_165==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_165==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_165==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_165==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_165==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_165==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_165==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_165==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_165==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_165==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_165==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_165==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_165==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_165==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_165==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_165); + s = specialStateTransition2(LA17_203); + + input.seek(index17_203); if ( s>=0 ) return s; break; case 3 : - int LA17_164 = input.LA(1); + int LA17_160 = input.LA(1); - int index17_164 = input.index(); + int index17_160 = input.index(); input.rewind(); - s = -1; - if ( (LA17_164==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_164==COMMA||LA17_164==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_164==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_164==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_164==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_164==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_164==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_164==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_164==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_164==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_164==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_164==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_164==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_164==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_164==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_164==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_164==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_164==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_164==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_164==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_164==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_164==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_164==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_164==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_164==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_164==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_164==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_164==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_164==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_164==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_164==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_164==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_164); + s = specialStateTransition3(LA17_160); + + input.seek(index17_160); if ( s>=0 ) return s; break; case 4 : - int LA17_117 = input.LA(1); + int LA17_6 = input.LA(1); - int index17_117 = input.index(); + int index17_6 = input.index(); input.rewind(); - s = -1; - if ( (LA17_117==ID) ) {s = 166;} - else if ( (LA17_117==FTSWORD) && (synpred5_FTS())) {s = 71;} - else if ( (LA17_117==FTSPRE) && (synpred5_FTS())) {s = 72;} - else if ( (LA17_117==FTSWILD) && (synpred5_FTS())) {s = 73;} - else if ( (LA17_117==NOT) && (synpred5_FTS())) {s = 74;} - else if ( (LA17_117==TO) && (synpred5_FTS())) {s = 75;} - else if ( (LA17_117==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 76;} - else if ( (LA17_117==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 77;} - else if ( (LA17_117==STAR) && (synpred5_FTS())) {s = 78;} - else if ( (LA17_117==QUESTION_MARK) && (synpred5_FTS())) {s = 79;} - else if ( (LA17_117==DATETIME) && (synpred5_FTS())) {s = 80;} - else if ( (LA17_117==URI) && (synpred5_FTS())) {s = 81;} - else if ( (LA17_117==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_117==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_117==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_117==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_117==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_117==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_117==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_117==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_117==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_117==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_117==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_117==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_117==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_117==COMMA||LA17_117==DOT) && (synpred5_FTS())) {s = 69;} - else if ( (LA17_117==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_117==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_117==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_117==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_117==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_117); + s = specialStateTransition4(LA17_6); + + input.seek(index17_6); if ( s>=0 ) return s; break; case 5 : - int LA17_91 = input.LA(1); - - int index17_91 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_91); - if ( s>=0 ) return s; - break; - - case 6 : - int LA17_60 = input.LA(1); - - int index17_60 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_60==STAR) ) {s = 25;} - else if ( (LA17_60==COLON) ) {s = 118;} - else if ( (LA17_60==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_60==COMMA||LA17_60==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_60==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_60==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_60==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_60==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_60==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_60==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_60==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_60==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_60==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_60==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_60==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_60==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_60==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_60==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_60==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_60==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_60==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_60==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_60==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_60==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_60==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_60==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_60==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_60==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_60==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_60==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_60==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_60==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_60==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_60); - if ( s>=0 ) return s; - break; - - case 7 : - int LA17_154 = input.LA(1); - - int index17_154 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 182;} - - input.seek(index17_154); - if ( s>=0 ) return s; - break; - - case 8 : - int LA17_59 = input.LA(1); - - int index17_59 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_59==STAR) ) {s = 25;} - else if ( (LA17_59==COLON) ) {s = 118;} - else if ( (LA17_59==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_59==COMMA||LA17_59==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_59==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_59==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_59==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_59==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_59==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_59==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_59==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_59==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_59==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_59==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_59==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_59==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_59==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_59==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_59==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_59==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_59==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_59==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_59==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_59==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_59==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_59==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_59==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_59==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_59==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_59==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_59==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_59==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_59==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_59); - if ( s>=0 ) return s; - break; - - case 9 : - int LA17_167 = input.LA(1); - - int index17_167 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_167==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_167==COMMA||LA17_167==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_167==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_167==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_167==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_167==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_167==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_167==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_167==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_167==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_167==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_167==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_167==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_167==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_167==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_167==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_167==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_167==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_167==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_167==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_167==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_167==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_167==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_167==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_167==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_167==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_167==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_167==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_167==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_167==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_167==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_167==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_167); - if ( s>=0 ) return s; - break; - - case 10 : - int LA17_107 = input.LA(1); - - int index17_107 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_107==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_107==COMMA||LA17_107==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_107==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_107==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_107==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_107==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_107==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_107==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_107==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_107==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_107==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_107==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_107==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_107==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_107==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_107==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_107==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_107==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_107==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_107==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_107==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_107==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_107==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_107==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_107==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_107==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_107==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_107==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_107==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_107==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_107==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_107==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_107); - if ( s>=0 ) return s; - break; - - case 11 : - int LA17_61 = input.LA(1); - - int index17_61 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_61==STAR) ) {s = 25;} - else if ( (LA17_61==COLON) ) {s = 118;} - else if ( (LA17_61==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_61==COMMA||LA17_61==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_61==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_61==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_61==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_61==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_61==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_61==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_61==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_61==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_61==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_61==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_61==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_61==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_61==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_61==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_61==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_61==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_61==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_61==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_61==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_61==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_61==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_61==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_61==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_61==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_61==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_61==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_61==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_61==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_61==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_61); - if ( s>=0 ) return s; - break; - - case 12 : - int LA17_172 = input.LA(1); - - int index17_172 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_172==ID) ) {s = 83;} - else if ( (LA17_172==FTSWORD) ) {s = 84;} - else if ( (LA17_172==FTSPRE) ) {s = 85;} - else if ( (LA17_172==FTSWILD) ) {s = 86;} - else if ( (LA17_172==NOT) ) {s = 87;} - else if ( (LA17_172==TO) ) {s = 88;} - else if ( (LA17_172==DECIMAL_INTEGER_LITERAL) ) {s = 89;} - else if ( (LA17_172==FLOATING_POINT_LITERAL) ) {s = 90;} - else if ( (LA17_172==DATETIME) ) {s = 91;} - else if ( (LA17_172==STAR) ) {s = 197;} - else if ( (LA17_172==URI) ) {s = 93;} - else if ( (LA17_172==CARAT) && (synpred5_FTS())) {s = 97;} - else if ( (LA17_172==AND) && (synpred5_FTS())) {s = 98;} - else if ( (LA17_172==AMP) && (synpred5_FTS())) {s = 99;} - else if ( (LA17_172==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_172==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_172==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_172==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_172==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_172==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_172==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_172==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_172==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_172==COMMA||LA17_172==DOT) && (synpred5_FTS())) {s = 69;} - else if ( (LA17_172==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_172==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_172==TILDA) && (synpred5_FTS())) {s = 198;} - else if ( (LA17_172==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_172==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_172==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_172==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_172); - if ( s>=0 ) return s; - break; - - case 13 : - int LA17_106 = input.LA(1); - - int index17_106 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_106==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_106==COMMA||LA17_106==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_106==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_106==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_106==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_106==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_106==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_106==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_106==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_106==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_106==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_106==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_106==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_106==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_106==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_106==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_106==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_106==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_106==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_106==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_106==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_106==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_106==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_106==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_106==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_106==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_106==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_106==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_106==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_106==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_106==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_106==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_106); - if ( s>=0 ) return s; - break; - - case 14 : - int LA17_183 = input.LA(1); - - int index17_183 = input.index(); - input.rewind(); - s = -1; - if ( (synpred3_FTS()) ) {s = 27;} - else if ( (synpred4_FTS()) ) {s = 100;} - else if ( (synpred5_FTS()) ) {s = 198;} - - input.seek(index17_183); - if ( s>=0 ) return s; - break; - - case 15 : int LA17_166 = input.LA(1); int index17_166 = input.index(); input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred3_FTS()) ) {s = 27;} - else if ( (synpred4_FTS()) ) {s = 100;} - else if ( (synpred5_FTS()) ) {s = 194;} - - input.seek(index17_166); + s = specialStateTransition5(LA17_166); + + input.seek(index17_166); if ( s>=0 ) return s; break; - case 16 : - int LA17_62 = input.LA(1); + case 6 : + int LA17_206 = input.LA(1); - int index17_62 = input.index(); + int index17_206 = input.index(); input.rewind(); - s = -1; - if ( (LA17_62==STAR) ) {s = 25;} - else if ( (LA17_62==COLON) ) {s = 118;} - else if ( (LA17_62==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_62==COMMA||LA17_62==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_62==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_62==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_62==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_62==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_62==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_62==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_62==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_62==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_62==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_62==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_62==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_62==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_62==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_62==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_62==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_62==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_62==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_62==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_62==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_62==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_62==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_62==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_62==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_62==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_62==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_62==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_62==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_62==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_62==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_62); + s = specialStateTransition6(LA17_206); + + input.seek(index17_206); if ( s>=0 ) return s; break; - case 17 : - int LA17_155 = input.LA(1); + case 7 : + int LA17_165 = input.LA(1); - int index17_155 = input.index(); + int index17_165 = input.index(); input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 182;} - - input.seek(index17_155); + s = specialStateTransition7(LA17_165); + + input.seek(index17_165); if ( s>=0 ) return s; break; - case 18 : - int LA17_84 = input.LA(1); - - int index17_84 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_84); - if ( s>=0 ) return s; - break; - - case 19 : - int LA17_108 = input.LA(1); - - int index17_108 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_108==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_108==COMMA||LA17_108==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_108==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_108==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_108==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_108==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_108==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_108==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_108==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_108==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_108==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_108==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_108==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_108==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_108==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_108==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_108==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_108==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_108==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_108==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_108==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_108==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_108==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_108==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_108==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_108==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_108==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_108==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_108==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_108==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_108==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_108==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_108); - if ( s>=0 ) return s; - break; - - case 20 : - int LA17_83 = input.LA(1); - - int index17_83 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_83); - if ( s>=0 ) return s; - break; - - case 21 : + case 8 : int LA17_24 = input.LA(1); int index17_24 = input.index(); @@ -16044,113 +17142,757 @@ public class FTSParser extends Parser { if ( s>=0 ) return s; break; - case 22 : - int LA17_111 = input.LA(1); + case 9 : + int LA17_167 = input.LA(1); - int index17_111 = input.index(); + int index17_167 = input.index(); input.rewind(); s = -1; - if ( (LA17_111==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_111==COMMA||LA17_111==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_111==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_111==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_111==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_111==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_111==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_111==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_111==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_111==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_111==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_111==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_111==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_111==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_111==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_111==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_111==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_111==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_111==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_111==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_111==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_111==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_111==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_111==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_111==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_111==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_111==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_111==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_111==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_111==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_111==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_111==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (LA17_167==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_167==COMMA||LA17_167==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_167==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_167==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_167==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_167==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_167==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_167==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_167==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_167==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_167==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_167==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_167==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_167==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_167==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_167==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_167==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_167==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_167==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_167==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_167==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_167==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_167==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_167==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_167==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_167==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_167==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_167==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_167==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_167==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_167==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_167==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_111); + input.seek(index17_167); + if ( s>=0 ) return s; + break; + + case 10 : + int LA17_214 = input.LA(1); + + int index17_214 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 218;} + + input.seek(index17_214); + if ( s>=0 ) return s; + break; + + case 11 : + int LA17_170 = input.LA(1); + + int index17_170 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_170==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_170==COMMA||LA17_170==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_170==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_170==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_170==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_170==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_170==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_170==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_170==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_170==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_170==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_170==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_170==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_170==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_170==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_170==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_170==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_170==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_170==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_170==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_170==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_170==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_170==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_170==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_170==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_170==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_170==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_170==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_170==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_170==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_170==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_170==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_170); + if ( s>=0 ) return s; + break; + + case 12 : + int LA17_155 = input.LA(1); + + int index17_155 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 185;} + + input.seek(index17_155); + if ( s>=0 ) return s; + break; + + case 13 : + int LA17_83 = input.LA(1); + + int index17_83 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_83); + if ( s>=0 ) return s; + break; + + case 14 : + int LA17_0 = input.LA(1); + + int index17_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_0==ID) ) {s = 1;} + else if ( (LA17_0==FTSWORD) ) {s = 2;} + else if ( (LA17_0==FTSPRE) ) {s = 3;} + else if ( (LA17_0==FTSWILD) ) {s = 4;} + else if ( (LA17_0==NOT) ) {s = 5;} + else if ( (LA17_0==TO) ) {s = 6;} + else if ( (LA17_0==DECIMAL_INTEGER_LITERAL) ) {s = 7;} + else if ( (LA17_0==FLOATING_POINT_LITERAL) ) {s = 8;} + else if ( (LA17_0==DATETIME) ) {s = 9;} + else if ( (LA17_0==STAR) ) {s = 10;} + else if ( (LA17_0==URI) ) {s = 11;} + else if ( (LA17_0==AT) ) {s = 12;} + else if ( (LA17_0==OR) ) {s = 13;} + else if ( (LA17_0==AND) ) {s = 14;} + else if ( (LA17_0==FTSPHRASE) ) {s = 15;} + else if ( (LA17_0==LSQUARE) && (synpred3_FTS())) {s = 16;} + else if ( (LA17_0==LT) && (synpred3_FTS())) {s = 17;} + else if ( (LA17_0==COMMA||LA17_0==DOT) && (synpred5_FTS())) {s = 18;} + else if ( (LA17_0==QUESTION_MARK) && (synpred5_FTS())) {s = 19;} + else if ( (LA17_0==EQUALS) && (synpred6_FTS())) {s = 20;} + else if ( (LA17_0==TILDA) && (synpred7_FTS())) {s = 21;} + else if ( (LA17_0==LPAREN) ) {s = 22;} + else if ( (LA17_0==PERCENT) ) {s = 23;} + + input.seek(index17_0); + if ( s>=0 ) return s; + break; + + case 15 : + int LA17_5 = input.LA(1); + + int index17_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_5==STAR) ) {s = 25;} + else if ( (LA17_5==COLON) ) {s = 26;} + else if ( (LA17_5==COMMA||LA17_5==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_5==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_5==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_5==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_5==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_5==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_5==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_5==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_5==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_5==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_5==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_5==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_5==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_5==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_5==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_5==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_5==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_5==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_5==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_5==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_5==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_5==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_5==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_5==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_5==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_5==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_5==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_5==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_5==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_5==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_5); + if ( s>=0 ) return s; + break; + + case 16 : + int LA17_205 = input.LA(1); + + int index17_205 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_205==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_205==COMMA||LA17_205==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_205==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_205==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_205==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_205==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_205==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_205==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_205==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_205==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_205==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_205==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_205==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_205==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_205==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_205==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_205==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_205==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_205==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_205==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_205==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_205==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_205==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_205==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_205==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_205==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_205==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_205==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_205==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_205==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_205==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_205==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_205); + if ( s>=0 ) return s; + break; + + case 17 : + int LA17_219 = input.LA(1); + + int index17_219 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_219==DOT) ) {s = 225;} + else if ( (LA17_219==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_219==COMMA) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_219==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_219==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_219==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_219==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_219==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_219==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_219==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_219==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_219==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_219==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_219==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_219==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_219==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_219==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_219==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_219==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_219==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_219==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_219==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_219==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_219==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_219==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_219==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_219==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_219==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_219==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_219==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_219==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_219==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_219==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_219); + if ( s>=0 ) return s; + break; + + case 18 : + int LA17_175 = input.LA(1); + + int index17_175 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_175==ID) ) {s = 83;} + else if ( (LA17_175==FTSWORD) ) {s = 84;} + else if ( (LA17_175==FTSPRE) ) {s = 85;} + else if ( (LA17_175==FTSWILD) ) {s = 86;} + else if ( (LA17_175==NOT) ) {s = 87;} + else if ( (LA17_175==TO) ) {s = 88;} + else if ( (LA17_175==DECIMAL_INTEGER_LITERAL) ) {s = 89;} + else if ( (LA17_175==FLOATING_POINT_LITERAL) ) {s = 90;} + else if ( (LA17_175==DATETIME) ) {s = 91;} + else if ( (LA17_175==STAR) ) {s = 214;} + else if ( (LA17_175==URI) ) {s = 93;} + else if ( (LA17_175==CARAT) && (synpred5_FTS())) {s = 97;} + else if ( (LA17_175==AND) && (synpred5_FTS())) {s = 98;} + else if ( (LA17_175==AMP) && (synpred5_FTS())) {s = 99;} + else if ( (LA17_175==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_175==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_175==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_175==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_175==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_175==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_175==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_175==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_175==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_175==COMMA||LA17_175==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_175==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_175==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_175==TILDA) && (synpred5_FTS())) {s = 215;} + else if ( (LA17_175==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_175==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_175==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_175==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_175); + if ( s>=0 ) return s; + break; + + case 19 : + int LA17_82 = input.LA(1); + + int index17_82 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_82==DECIMAL_INTEGER_LITERAL) ) {s = 125;} + else if ( (LA17_82==RPAREN) && (synpred2_FTS())) {s = 126;} + else if ( (LA17_82==COMMA||LA17_82==DOT) && (synpred5_FTS())) {s = 127;} + else if ( (LA17_82==ID) && (synpred5_FTS())) {s = 128;} + else if ( (LA17_82==FTSWORD) && (synpred5_FTS())) {s = 129;} + else if ( (LA17_82==FTSPRE) && (synpred5_FTS())) {s = 130;} + else if ( (LA17_82==FTSWILD) && (synpred5_FTS())) {s = 131;} + else if ( (LA17_82==NOT) && (synpred5_FTS())) {s = 132;} + else if ( (LA17_82==TO) && (synpred5_FTS())) {s = 133;} + else if ( (LA17_82==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 134;} + else if ( (LA17_82==STAR) && (synpred5_FTS())) {s = 135;} + else if ( (LA17_82==QUESTION_MARK) && (synpred5_FTS())) {s = 136;} + else if ( (LA17_82==DATETIME) && (synpred5_FTS())) {s = 137;} + else if ( (LA17_82==URI) && (synpred5_FTS())) {s = 138;} + else if ( (LA17_82==FTSPHRASE) && (synpred5_FTS())) {s = 139;} + else if ( (LA17_82==MINUS) && (synpred5_FTS())) {s = 140;} + else if ( (LA17_82==AND) && (synpred5_FTS())) {s = 141;} + else if ( (LA17_82==AMP) && (synpred5_FTS())) {s = 142;} + else if ( (LA17_82==EXCLAMATION) && (synpred5_FTS())) {s = 143;} + else if ( (LA17_82==AT) && (synpred5_FTS())) {s = 144;} + else if ( (LA17_82==OR) && (synpred5_FTS())) {s = 145;} + else if ( (LA17_82==LSQUARE) && (synpred5_FTS())) {s = 146;} + else if ( (LA17_82==LT) && (synpred5_FTS())) {s = 147;} + else if ( (LA17_82==EQUALS) && (synpred5_FTS())) {s = 148;} + else if ( (LA17_82==TILDA) && (synpred5_FTS())) {s = 149;} + else if ( (LA17_82==LPAREN) && (synpred5_FTS())) {s = 150;} + else if ( (LA17_82==PERCENT) && (synpred5_FTS())) {s = 151;} + else if ( (LA17_82==PLUS) && (synpred5_FTS())) {s = 152;} + else if ( (LA17_82==BAR) && (synpred5_FTS())) {s = 153;} + + input.seek(index17_82); + if ( s>=0 ) return s; + break; + + case 20 : + int LA17_168 = input.LA(1); + + int index17_168 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_168==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_168==COMMA||LA17_168==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_168==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_168==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_168==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_168==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_168==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_168==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_168==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_168==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_168==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_168==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_168==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_168==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_168==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_168==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_168==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_168==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_168==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_168==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_168==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_168==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_168==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_168==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_168==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_168==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_168==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_168==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_168==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_168==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_168==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_168==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_168); + if ( s>=0 ) return s; + break; + + case 21 : + int LA17_106 = input.LA(1); + + int index17_106 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_106==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_106==COMMA||LA17_106==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_106==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_106==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_106==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_106==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_106==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_106==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_106==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_106==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_106==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_106==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_106==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_106==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_106==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_106==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_106==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_106==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_106==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_106==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_106==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_106==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_106==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_106==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_106==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_106==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_106==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_106==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_106==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_106==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_106==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_106==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_106); + if ( s>=0 ) return s; + break; + + case 22 : + int LA17_108 = input.LA(1); + + int index17_108 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_108==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_108==COMMA||LA17_108==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_108==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_108==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_108==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_108==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_108==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_108==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_108==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_108==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_108==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_108==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_108==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_108==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_108==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_108==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_108==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_108==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_108==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_108==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_108==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_108==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_108==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_108==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_108==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_108==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_108==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_108==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_108==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_108==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_108==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_108==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_108); if ( s>=0 ) return s; break; case 23 : - int LA17_85 = input.LA(1); + int LA17_3 = input.LA(1); - int index17_85 = input.index(); + int index17_3 = input.index(); input.rewind(); s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} + if ( (LA17_3==STAR) ) {s = 25;} + else if ( (LA17_3==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_3==COMMA||LA17_3==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_3==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_3==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_3==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_3==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_3==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_3==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_3==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_3==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_3==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_3==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_3==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_3==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_3==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_3==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_3==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_3==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_3==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_3==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_3==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_3==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_3==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_3==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_3==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_3==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_3==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_3==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_3==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_3==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_3==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_85); + input.seek(index17_3); if ( s>=0 ) return s; break; case 24 : - int LA17_110 = input.LA(1); + int LA17_169 = input.LA(1); - int index17_110 = input.index(); + int index17_169 = input.index(); input.rewind(); s = -1; - if ( (LA17_110==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_110==COMMA||LA17_110==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_110==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_110==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_110==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_110==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_110==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_110==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_110==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_110==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_110==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_110==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_110==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_110==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_110==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_110==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_110==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_110==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_110==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_110==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_110==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_110==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_110==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_110==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_110==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_110==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_110==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_110==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_110==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_110==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_110==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_110==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred3_FTS()) ) {s = 27;} + else if ( (synpred4_FTS()) ) {s = 100;} + else if ( (synpred5_FTS()) ) {s = 211;} - input.seek(index17_110); + input.seek(index17_169); if ( s>=0 ) return s; break; case 25 : + int LA17_91 = input.LA(1); + + int index17_91 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_91); + if ( s>=0 ) return s; + break; + + case 26 : + int LA17_102 = input.LA(1); + + int index17_102 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_102==COLON) ) {s = 160;} + else if ( (LA17_102==COMMA||LA17_102==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_102==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_102==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_102==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_102==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_102==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_102==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_102==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_102==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_102==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_102==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_102==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_102==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_102==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_102==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_102==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_102==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_102==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_102==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_102==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_102==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_102==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_102==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_102==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_102==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_102==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_102==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_102==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_102==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_102==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_102==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_102); + if ( s>=0 ) return s; + break; + + case 27 : + int LA17_105 = input.LA(1); + + int index17_105 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_105==COLON) ) {s = 160;} + else if ( (LA17_105==COMMA||LA17_105==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_105==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_105==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_105==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_105==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_105==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_105==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_105==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_105==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_105==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_105==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_105==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_105==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_105==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_105==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_105==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_105==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_105==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_105==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_105==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_105==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_105==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_105==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_105==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_105==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_105==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_105==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_105==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_105==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_105==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_105==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_105); + if ( s>=0 ) return s; + break; + + case 28 : + int LA17_107 = input.LA(1); + + int index17_107 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_107==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_107==COMMA||LA17_107==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_107==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_107==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_107==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_107==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_107==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_107==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_107==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_107==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_107==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_107==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_107==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_107==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_107==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_107==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_107==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_107==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_107==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_107==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_107==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_107==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_107==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_107==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_107==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_107==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_107==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_107==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_107==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_107==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_107==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_107==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_107); + if ( s>=0 ) return s; + break; + + case 29 : + int LA17_2 = input.LA(1); + + int index17_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_2==STAR) ) {s = 25;} + else if ( (LA17_2==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_2==COMMA||LA17_2==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_2==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_2==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_2==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_2==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_2==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_2==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_2==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_2==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_2==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_2==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_2==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_2==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_2==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_2==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_2==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_2==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_2==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_2==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_2==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_2==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_2==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_2==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_2==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_2==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_2==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_2==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_2==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_2==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_2==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_2); + if ( s>=0 ) return s; + break; + + case 30 : int LA17_109 = input.LA(1); int index17_109 = input.index(); input.rewind(); s = -1; if ( (LA17_109==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_109==TILDA) && (synpred5_FTS())) {s = 160;} + else if ( (LA17_109==TILDA) && (synpred5_FTS())) {s = 163;} else if ( (LA17_109==CARAT) && (synpred5_FTS())) {s = 30;} else if ( (LA17_109==AND) && (synpred5_FTS())) {s = 31;} else if ( (LA17_109==AMP) && (synpred5_FTS())) {s = 32;} @@ -16186,49 +17928,63 @@ public class FTSParser extends Parser { if ( s>=0 ) return s; break; - case 26 : - int LA17_123 = input.LA(1); + case 31 : + int LA17_4 = input.LA(1); - int index17_123 = input.index(); + int index17_4 = input.index(); input.rewind(); s = -1; - if ( (LA17_123==RPAREN) ) {s = 172;} - else if ( (LA17_123==COMMA||LA17_123==DOT) && (synpred5_FTS())) {s = 173;} - else if ( (LA17_123==OR) && (synpred5_FTS())) {s = 174;} - else if ( (LA17_123==BAR) && (synpred5_FTS())) {s = 175;} - else if ( (LA17_123==ID) && (synpred5_FTS())) {s = 126;} - else if ( (LA17_123==FTSWORD) && (synpred5_FTS())) {s = 127;} - else if ( (LA17_123==FTSPRE) && (synpred5_FTS())) {s = 128;} - else if ( (LA17_123==FTSWILD) && (synpred5_FTS())) {s = 129;} - else if ( (LA17_123==NOT) && (synpred5_FTS())) {s = 130;} - else if ( (LA17_123==TO) && (synpred5_FTS())) {s = 131;} - else if ( (LA17_123==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 176;} - else if ( (LA17_123==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 132;} - else if ( (LA17_123==STAR) && (synpred5_FTS())) {s = 177;} - else if ( (LA17_123==QUESTION_MARK) && (synpred5_FTS())) {s = 134;} - else if ( (LA17_123==DATETIME) && (synpred5_FTS())) {s = 135;} - else if ( (LA17_123==URI) && (synpred5_FTS())) {s = 136;} - else if ( (LA17_123==FTSPHRASE) && (synpred5_FTS())) {s = 137;} - else if ( (LA17_123==MINUS) && (synpred5_FTS())) {s = 138;} - else if ( (LA17_123==DOTDOT) && (synpred5_FTS())) {s = 178;} - else if ( (LA17_123==TILDA) && (synpred5_FTS())) {s = 179;} - else if ( (LA17_123==CARAT) && (synpred5_FTS())) {s = 180;} - else if ( (LA17_123==AND) && (synpred5_FTS())) {s = 181;} - else if ( (LA17_123==AMP) && (synpred5_FTS())) {s = 182;} - else if ( (LA17_123==EXCLAMATION) && (synpred5_FTS())) {s = 141;} - else if ( (LA17_123==AT) && (synpred5_FTS())) {s = 142;} - else if ( (LA17_123==LSQUARE) && (synpred5_FTS())) {s = 144;} - else if ( (LA17_123==LT) && (synpred5_FTS())) {s = 145;} - else if ( (LA17_123==EQUALS) && (synpred5_FTS())) {s = 146;} - else if ( (LA17_123==LPAREN) && (synpred5_FTS())) {s = 148;} - else if ( (LA17_123==PERCENT) && (synpred5_FTS())) {s = 149;} - else if ( (LA17_123==PLUS) && (synpred5_FTS())) {s = 150;} + if ( (LA17_4==STAR) ) {s = 25;} + else if ( (LA17_4==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_4==COMMA||LA17_4==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_4==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_4==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_4==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_4==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_4==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_4==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_4==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_4==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_4==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_4==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_4==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_4==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_4==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_4==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_4==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_4==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_4==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_4==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_4==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_4==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_4==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_4==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_4==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_4==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_4==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_4==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_4==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_4==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_4==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_123); + input.seek(index17_4); if ( s>=0 ) return s; break; - case 27 : + case 32 : + int LA17_154 = input.LA(1); + + int index17_154 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 185;} + + input.seek(index17_154); + if ( s>=0 ) return s; + break; + + case 33 : int LA17_58 = input.LA(1); int index17_58 = input.index(); @@ -16273,448 +18029,28 @@ public class FTSParser extends Parser { if ( s>=0 ) return s; break; - case 28 : - int LA17_156 = input.LA(1); - - int index17_156 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 182;} - - input.seek(index17_156); - if ( s>=0 ) return s; - break; - - case 29 : - int LA17_195 = input.LA(1); - - int index17_195 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_195==ID) ) {s = 199;} - else if ( (LA17_195==FTSWORD) && (synpred5_FTS())) {s = 184;} - else if ( (LA17_195==FTSPRE) && (synpred5_FTS())) {s = 185;} - else if ( (LA17_195==FTSWILD) && (synpred5_FTS())) {s = 186;} - else if ( (LA17_195==NOT) && (synpred5_FTS())) {s = 187;} - else if ( (LA17_195==TO) && (synpred5_FTS())) {s = 188;} - else if ( (LA17_195==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 189;} - else if ( (LA17_195==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 190;} - else if ( (LA17_195==STAR) && (synpred5_FTS())) {s = 191;} - else if ( (LA17_195==QUESTION_MARK) && (synpred5_FTS())) {s = 192;} - else if ( (LA17_195==DATETIME) && (synpred5_FTS())) {s = 193;} - else if ( (LA17_195==URI) && (synpred5_FTS())) {s = 194;} - else if ( (LA17_195==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_195==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_195==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_195==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_195==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_195==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_195==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_195==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_195==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_195==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_195==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_195==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_195==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_195==COMMA||LA17_195==DOT) && (synpred5_FTS())) {s = 69;} - else if ( (LA17_195==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_195==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_195==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_195==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_195==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_195); - if ( s>=0 ) return s; - break; - - case 30 : - int LA17_113 = input.LA(1); - - int index17_113 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_113==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_113==COMMA||LA17_113==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_113==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_113==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_113==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_113==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_113==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_113==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_113==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_113==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_113==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_113==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_113==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_113==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_113==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_113==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_113==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_113==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_113==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_113==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_113==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_113==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_113==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_113==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_113==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_113==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_113==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_113==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_113==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_113==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_113==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_113==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_113); - if ( s>=0 ) return s; - break; - - case 31 : - int LA17_2 = input.LA(1); - - int index17_2 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_2==STAR) ) {s = 25;} - else if ( (LA17_2==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_2==COMMA||LA17_2==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_2==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_2==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_2==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_2==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_2==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_2==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_2==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_2==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_2==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_2==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_2==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_2==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_2==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_2==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_2==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_2==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_2==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_2==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_2==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_2==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_2==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_2==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_2==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_2==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_2==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_2==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_2==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_2==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_2==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_2); - if ( s>=0 ) return s; - break; - - case 32 : - int LA17_82 = input.LA(1); - - int index17_82 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_82==DECIMAL_INTEGER_LITERAL) ) {s = 123;} - else if ( (LA17_82==RPAREN) && (synpred2_FTS())) {s = 124;} - else if ( (LA17_82==COMMA||LA17_82==DOT) && (synpred5_FTS())) {s = 125;} - else if ( (LA17_82==ID) && (synpred5_FTS())) {s = 126;} - else if ( (LA17_82==FTSWORD) && (synpred5_FTS())) {s = 127;} - else if ( (LA17_82==FTSPRE) && (synpred5_FTS())) {s = 128;} - else if ( (LA17_82==FTSWILD) && (synpred5_FTS())) {s = 129;} - else if ( (LA17_82==NOT) && (synpred5_FTS())) {s = 130;} - else if ( (LA17_82==TO) && (synpred5_FTS())) {s = 131;} - else if ( (LA17_82==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 132;} - else if ( (LA17_82==STAR) && (synpred5_FTS())) {s = 133;} - else if ( (LA17_82==QUESTION_MARK) && (synpred5_FTS())) {s = 134;} - else if ( (LA17_82==DATETIME) && (synpred5_FTS())) {s = 135;} - else if ( (LA17_82==URI) && (synpred5_FTS())) {s = 136;} - else if ( (LA17_82==FTSPHRASE) && (synpred5_FTS())) {s = 137;} - else if ( (LA17_82==MINUS) && (synpred5_FTS())) {s = 138;} - else if ( (LA17_82==AND) && (synpred5_FTS())) {s = 139;} - else if ( (LA17_82==AMP) && (synpred5_FTS())) {s = 140;} - else if ( (LA17_82==EXCLAMATION) && (synpred5_FTS())) {s = 141;} - else if ( (LA17_82==AT) && (synpred5_FTS())) {s = 142;} - else if ( (LA17_82==OR) && (synpred5_FTS())) {s = 143;} - else if ( (LA17_82==LSQUARE) && (synpred5_FTS())) {s = 144;} - else if ( (LA17_82==LT) && (synpred5_FTS())) {s = 145;} - else if ( (LA17_82==EQUALS) && (synpred5_FTS())) {s = 146;} - else if ( (LA17_82==TILDA) && (synpred5_FTS())) {s = 147;} - else if ( (LA17_82==LPAREN) && (synpred5_FTS())) {s = 148;} - else if ( (LA17_82==PERCENT) && (synpred5_FTS())) {s = 149;} - else if ( (LA17_82==PLUS) && (synpred5_FTS())) {s = 150;} - else if ( (LA17_82==BAR) && (synpred5_FTS())) {s = 151;} - - input.seek(index17_82); - if ( s>=0 ) return s; - break; - - case 33 : - int LA17_112 = input.LA(1); - - int index17_112 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_112==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_112==COMMA||LA17_112==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_112==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_112==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_112==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_112==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_112==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_112==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_112==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_112==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_112==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_112==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_112==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_112==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_112==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_112==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_112==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_112==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_112==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_112==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_112==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_112==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_112==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_112==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_112==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_112==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_112==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_112==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_112==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_112==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_112==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_112==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_112); - if ( s>=0 ) return s; - break; - case 34 : - int LA17_86 = input.LA(1); + int LA17_186 = input.LA(1); - int index17_86 = input.index(); + int index17_186 = input.index(); input.rewind(); s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} + if ( (synpred3_FTS()) ) {s = 27;} + else if ( (synpred4_FTS()) ) {s = 100;} + else if ( (synpred5_FTS()) ) {s = 215;} - input.seek(index17_86); + input.seek(index17_186); if ( s>=0 ) return s; break; case 35 : - int LA17_25 = input.LA(1); - - int index17_25 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_25==LPAREN) ) {s = 82;} - else if ( (LA17_25==ID) ) {s = 83;} - else if ( (LA17_25==FTSWORD) ) {s = 84;} - else if ( (LA17_25==FTSPRE) ) {s = 85;} - else if ( (LA17_25==FTSWILD) ) {s = 86;} - else if ( (LA17_25==NOT) ) {s = 87;} - else if ( (LA17_25==TO) ) {s = 88;} - else if ( (LA17_25==DECIMAL_INTEGER_LITERAL) ) {s = 89;} - else if ( (LA17_25==FLOATING_POINT_LITERAL) ) {s = 90;} - else if ( (LA17_25==DATETIME) ) {s = 91;} - else if ( (LA17_25==STAR) ) {s = 92;} - else if ( (LA17_25==URI) ) {s = 93;} - else if ( (LA17_25==DOTDOT) && (synpred5_FTS())) {s = 94;} - else if ( (LA17_25==COMMA||LA17_25==DOT) && (synpred5_FTS())) {s = 95;} - else if ( (LA17_25==TILDA) && (synpred5_FTS())) {s = 96;} - else if ( (LA17_25==CARAT) && (synpred5_FTS())) {s = 97;} - else if ( (LA17_25==AND) && (synpred5_FTS())) {s = 98;} - else if ( (LA17_25==AMP) && (synpred5_FTS())) {s = 99;} - else if ( (LA17_25==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_25==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_25==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_25==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_25==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_25==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_25==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_25==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_25==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_25==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_25==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_25==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_25==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_25==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_25); - if ( s>=0 ) return s; - break; - - case 36 : - int LA17_3 = input.LA(1); - - int index17_3 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_3==STAR) ) {s = 25;} - else if ( (LA17_3==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_3==COMMA||LA17_3==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_3==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_3==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_3==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_3==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_3==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_3==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_3==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_3==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_3==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_3==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_3==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_3==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_3==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_3==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_3==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_3==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_3==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_3==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_3==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_3==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_3==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_3==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_3==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_3==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_3==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_3==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_3==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_3==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_3==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_3); - if ( s>=0 ) return s; - break; - - case 37 : - int LA17_4 = input.LA(1); - - int index17_4 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_4==STAR) ) {s = 25;} - else if ( (LA17_4==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_4==COMMA||LA17_4==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_4==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_4==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_4==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_4==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_4==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_4==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_4==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_4==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_4==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_4==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_4==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_4==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_4==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_4==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_4==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_4==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_4==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_4==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_4==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_4==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_4==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_4==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_4==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_4==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_4==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_4==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_4==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_4==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_4==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_4); - if ( s>=0 ) return s; - break; - - case 38 : - int LA17_92 = input.LA(1); - - int index17_92 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_92); - if ( s>=0 ) return s; - break; - - case 39 : - int LA17_87 = input.LA(1); - - int index17_87 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_87); - if ( s>=0 ) return s; - break; - - case 40 : - int LA17_157 = input.LA(1); - - int index17_157 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_157==ID) ) {s = 183;} - else if ( (LA17_157==FTSWORD) && (synpred5_FTS())) {s = 184;} - else if ( (LA17_157==FTSPRE) && (synpred5_FTS())) {s = 185;} - else if ( (LA17_157==FTSWILD) && (synpred5_FTS())) {s = 186;} - else if ( (LA17_157==NOT) && (synpred5_FTS())) {s = 187;} - else if ( (LA17_157==TO) && (synpred5_FTS())) {s = 188;} - else if ( (LA17_157==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 189;} - else if ( (LA17_157==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 190;} - else if ( (LA17_157==STAR) && (synpred5_FTS())) {s = 191;} - else if ( (LA17_157==QUESTION_MARK) && (synpred5_FTS())) {s = 192;} - else if ( (LA17_157==DATETIME) && (synpred5_FTS())) {s = 193;} - else if ( (LA17_157==URI) && (synpred5_FTS())) {s = 194;} - else if ( (LA17_157==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_157==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_157==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_157==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_157==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_157==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_157==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_157==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_157==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_157==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_157==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_157==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_157==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_157==COMMA||LA17_157==DOT) && (synpred5_FTS())) {s = 69;} - else if ( (LA17_157==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_157==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_157==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_157==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_157==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_157); - if ( s>=0 ) return s; - break; - - case 41 : int LA17_118 = input.LA(1); int index17_118 = input.index(); input.rewind(); s = -1; if ( (LA17_118==LPAREN) && (synpred4_FTS())) {s = 100;} - else if ( (LA17_118==ID) ) {s = 167;} + else if ( (LA17_118==ID) ) {s = 170;} else if ( (LA17_118==FTSWORD) ) {s = 106;} else if ( (LA17_118==FTSPRE) ) {s = 107;} else if ( (LA17_118==FTSWILD) ) {s = 108;} @@ -16727,189 +18063,140 @@ public class FTSParser extends Parser { else if ( (LA17_118==LSQUARE) && (synpred3_FTS())) {s = 16;} else if ( (LA17_118==LT) && (synpred3_FTS())) {s = 17;} else if ( (LA17_118==COMMA||LA17_118==DOT) && (synpred5_FTS())) {s = 115;} - else if ( (LA17_118==NOT) && (synpred5_FTS())) {s = 168;} - else if ( (LA17_118==TO) && (synpred5_FTS())) {s = 169;} + else if ( (LA17_118==NOT) && (synpred5_FTS())) {s = 171;} + else if ( (LA17_118==TO) && (synpred5_FTS())) {s = 172;} else if ( (LA17_118==QUESTION_MARK) && (synpred5_FTS())) {s = 116;} input.seek(index17_118); if ( s>=0 ) return s; break; - case 42 : - int LA17_8 = input.LA(1); + case 36 : + int LA17_212 = input.LA(1); - int index17_8 = input.index(); + int index17_212 = input.index(); input.rewind(); s = -1; - if ( (LA17_8==STAR) ) {s = 25;} - else if ( (LA17_8==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_8==COMMA||LA17_8==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_8==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_8==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_8==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_8==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_8==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_8==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_8==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_8==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_8==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_8==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_8==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_8==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_8==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_8==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_8==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_8==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_8==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_8==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_8==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_8==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_8==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_8==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_8==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_8==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_8==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_8==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_8==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_8==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_8==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (LA17_212==ID) ) {s = 224;} + else if ( (LA17_212==FTSWORD) && (synpred5_FTS())) {s = 187;} + else if ( (LA17_212==FTSPRE) && (synpred5_FTS())) {s = 188;} + else if ( (LA17_212==FTSWILD) && (synpred5_FTS())) {s = 189;} + else if ( (LA17_212==NOT) && (synpred5_FTS())) {s = 190;} + else if ( (LA17_212==TO) && (synpred5_FTS())) {s = 191;} + else if ( (LA17_212==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 192;} + else if ( (LA17_212==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 193;} + else if ( (LA17_212==STAR) && (synpred5_FTS())) {s = 194;} + else if ( (LA17_212==QUESTION_MARK) && (synpred5_FTS())) {s = 195;} + else if ( (LA17_212==DATETIME) && (synpred5_FTS())) {s = 196;} + else if ( (LA17_212==URI) && (synpred5_FTS())) {s = 197;} + else if ( (LA17_212==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_212==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_212==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_212==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_212==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_212==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_212==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_212==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_212==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_212==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_212==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_212==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_212==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_212==COMMA||LA17_212==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_212==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_212==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_212==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_212==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_212==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_8); + input.seek(index17_212); if ( s>=0 ) return s; break; - case 43 : - int LA17_101 = input.LA(1); + case 37 : + int LA17_156 = input.LA(1); - int index17_101 = input.index(); + int index17_156 = input.index(); input.rewind(); s = -1; - if ( (LA17_101==DOT) ) {s = 157;} - else if ( (LA17_101==COLON) ) {s = 118;} - else if ( (LA17_101==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_101==COMMA) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_101==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_101==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_101==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_101==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_101==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_101==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_101==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_101==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_101==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_101==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_101==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_101==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_101==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_101==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_101==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_101==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_101==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_101==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_101==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_101==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_101==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_101==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_101==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_101==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_101==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_101==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_101==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_101==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_101==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_101==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 185;} - input.seek(index17_101); + input.seek(index17_156); if ( s>=0 ) return s; break; - case 44 : - int LA17_6 = input.LA(1); + case 38 : + int LA17_70 = input.LA(1); - int index17_6 = input.index(); + int index17_70 = input.index(); input.rewind(); s = -1; - if ( (LA17_6==STAR) ) {s = 25;} - else if ( (LA17_6==COLON) ) {s = 26;} - else if ( (LA17_6==COMMA||LA17_6==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_6==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_6==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_6==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_6==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_6==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_6==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_6==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_6==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_6==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_6==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_6==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_6==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_6==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_6==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_6==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_6==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_6==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_6==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_6==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_6==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_6==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_6==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_6==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_6==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_6==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_6==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_6==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_6==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_6==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (synpred3_FTS()) ) {s = 27;} + else if ( (synpred4_FTS()) ) {s = 100;} + else if ( (synpred5_FTS()) ) {s = 116;} - input.seek(index17_6); + input.seek(index17_70); if ( s>=0 ) return s; break; - case 45 : - int LA17_15 = input.LA(1); + case 39 : + int LA17_110 = input.LA(1); - int index17_15 = input.index(); + int index17_110 = input.index(); input.rewind(); s = -1; - if ( (LA17_15==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_15==TILDA) && (synpred5_FTS())) {s = 67;} - else if ( (LA17_15==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_15==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_15==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_15==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_15==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_15==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_15==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_15==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_15==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_15==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_15==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_15==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_15==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_15==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_15==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_15==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_15==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_15==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_15==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_15==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_15==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_15==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_15==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_15==COMMA||LA17_15==DOT) && (synpred5_FTS())) {s = 69;} - else if ( (LA17_15==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_15==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_15==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_15==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_15==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_15==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (LA17_110==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_110==COMMA||LA17_110==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_110==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_110==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_110==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_110==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_110==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_110==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_110==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_110==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_110==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_110==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_110==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_110==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_110==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_110==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_110==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_110==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_110==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_110==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_110==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_110==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_110==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_110==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_110==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_110==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_110==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_110==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_110==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_110==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_110==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_110==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_15); + input.seek(index17_110); if ( s>=0 ) return s; break; - case 46 : + case 40 : + int LA17_88 = input.LA(1); + + int index17_88 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_88); + if ( s>=0 ) return s; + break; + + case 41 : int LA17_7 = input.LA(1); int index17_7 = input.index(); @@ -16952,495 +18239,261 @@ public class FTSParser extends Parser { if ( s>=0 ) return s; break; - case 47 : - int LA17_152 = input.LA(1); + case 42 : + int LA17_226 = input.LA(1); - int index17_152 = input.index(); + int index17_226 = input.index(); input.rewind(); s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 182;} + if ( (synpred3_FTS()) ) {s = 27;} + else if ( (synpred5_FTS()) ) {s = 237;} - input.seek(index17_152); + input.seek(index17_226); + if ( s>=0 ) return s; + break; + + case 43 : + int LA17_113 = input.LA(1); + + int index17_113 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_113==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_113==COMMA||LA17_113==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_113==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_113==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_113==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_113==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_113==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_113==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_113==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_113==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_113==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_113==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_113==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_113==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_113==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_113==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_113==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_113==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_113==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_113==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_113==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_113==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_113==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_113==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_113==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_113==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_113==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_113==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_113==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_113==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_113==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_113==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_113); + if ( s>=0 ) return s; + break; + + case 44 : + int LA17_111 = input.LA(1); + + int index17_111 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_111==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_111==COMMA||LA17_111==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_111==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_111==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_111==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_111==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_111==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_111==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_111==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_111==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_111==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_111==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_111==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_111==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_111==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_111==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_111==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_111==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_111==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_111==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_111==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_111==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_111==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_111==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_111==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_111==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_111==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_111==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_111==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_111==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_111==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_111==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_111); + if ( s>=0 ) return s; + break; + + case 45 : + int LA17_92 = input.LA(1); + + int index17_92 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_92); + if ( s>=0 ) return s; + break; + + case 46 : + int LA17_157 = input.LA(1); + + int index17_157 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 185;} + + input.seek(index17_157); + if ( s>=0 ) return s; + break; + + case 47 : + int LA17_125 = input.LA(1); + + int index17_125 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_125==RPAREN) ) {s = 175;} + else if ( (LA17_125==COMMA||LA17_125==DOT) && (synpred5_FTS())) {s = 176;} + else if ( (LA17_125==OR) && (synpred5_FTS())) {s = 177;} + else if ( (LA17_125==BAR) && (synpred5_FTS())) {s = 178;} + else if ( (LA17_125==ID) && (synpred5_FTS())) {s = 128;} + else if ( (LA17_125==FTSWORD) && (synpred5_FTS())) {s = 129;} + else if ( (LA17_125==FTSPRE) && (synpred5_FTS())) {s = 130;} + else if ( (LA17_125==FTSWILD) && (synpred5_FTS())) {s = 131;} + else if ( (LA17_125==NOT) && (synpred5_FTS())) {s = 132;} + else if ( (LA17_125==TO) && (synpred5_FTS())) {s = 133;} + else if ( (LA17_125==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 179;} + else if ( (LA17_125==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 134;} + else if ( (LA17_125==STAR) && (synpred5_FTS())) {s = 180;} + else if ( (LA17_125==QUESTION_MARK) && (synpred5_FTS())) {s = 136;} + else if ( (LA17_125==DATETIME) && (synpred5_FTS())) {s = 137;} + else if ( (LA17_125==URI) && (synpred5_FTS())) {s = 138;} + else if ( (LA17_125==FTSPHRASE) && (synpred5_FTS())) {s = 139;} + else if ( (LA17_125==MINUS) && (synpred5_FTS())) {s = 140;} + else if ( (LA17_125==DOTDOT) && (synpred5_FTS())) {s = 181;} + else if ( (LA17_125==TILDA) && (synpred5_FTS())) {s = 182;} + else if ( (LA17_125==CARAT) && (synpred5_FTS())) {s = 183;} + else if ( (LA17_125==AND) && (synpred5_FTS())) {s = 184;} + else if ( (LA17_125==AMP) && (synpred5_FTS())) {s = 185;} + else if ( (LA17_125==EXCLAMATION) && (synpred5_FTS())) {s = 143;} + else if ( (LA17_125==AT) && (synpred5_FTS())) {s = 144;} + else if ( (LA17_125==LSQUARE) && (synpred5_FTS())) {s = 146;} + else if ( (LA17_125==LT) && (synpred5_FTS())) {s = 147;} + else if ( (LA17_125==EQUALS) && (synpred5_FTS())) {s = 148;} + else if ( (LA17_125==LPAREN) && (synpred5_FTS())) {s = 150;} + else if ( (LA17_125==PERCENT) && (synpred5_FTS())) {s = 151;} + else if ( (LA17_125==PLUS) && (synpred5_FTS())) {s = 152;} + + input.seek(index17_125); if ( s>=0 ) return s; break; case 48 : - int LA17_10 = input.LA(1); + int LA17_112 = input.LA(1); - int index17_10 = input.index(); + int index17_112 = input.index(); input.rewind(); s = -1; - if ( (LA17_10==STAR) ) {s = 25;} - else if ( (LA17_10==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_10==COMMA||LA17_10==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_10==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_10==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_10==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_10==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_10==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_10==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_10==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_10==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_10==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_10==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_10==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_10==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_10==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_10==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_10==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_10==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_10==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_10==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_10==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_10==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_10==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_10==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_10==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_10==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_10==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_10==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_10==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_10==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_10==MINUS) && (synpred5_FTS())) {s = 57;} + if ( (LA17_112==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_112==COMMA||LA17_112==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_112==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_112==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_112==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_112==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_112==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_112==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_112==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_112==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_112==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_112==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_112==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_112==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_112==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_112==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_112==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_112==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_112==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_112==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_112==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_112==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_112==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_112==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_112==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_112==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_112==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_112==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_112==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_112==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_112==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_112==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_10); + input.seek(index17_112); if ( s>=0 ) return s; break; case 49 : - int LA17_89 = input.LA(1); + int LA17_164 = input.LA(1); - int index17_89 = input.index(); + int index17_164 = input.index(); input.rewind(); s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} + if ( (LA17_164==DOT) ) {s = 212;} + else if ( (LA17_164==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_164==COMMA) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_164==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_164==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_164==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_164==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_164==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_164==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_164==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_164==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_164==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_164==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_164==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_164==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_164==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_164==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_164==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_164==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_164==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_164==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_164==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_164==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_164==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_164==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_164==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_164==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_164==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_164==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_164==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_164==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_164==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_164==MINUS) && (synpred5_FTS())) {s = 57;} - input.seek(index17_89); + input.seek(index17_164); if ( s>=0 ) return s; break; case 50 : - int LA17_5 = input.LA(1); - - int index17_5 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_5==STAR) ) {s = 25;} - else if ( (LA17_5==COLON) ) {s = 26;} - else if ( (LA17_5==COMMA||LA17_5==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_5==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_5==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_5==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_5==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_5==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_5==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_5==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_5==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_5==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_5==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_5==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_5==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_5==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_5==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_5==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_5==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_5==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_5==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_5==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_5==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_5==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_5==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_5==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_5==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_5==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_5==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_5==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_5==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_5==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_5); - if ( s>=0 ) return s; - break; - - case 51 : - int LA17_102 = input.LA(1); - - int index17_102 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_102==COLON) ) {s = 118;} - else if ( (LA17_102==COMMA||LA17_102==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_102==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_102==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_102==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_102==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_102==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_102==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_102==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_102==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_102==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_102==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_102==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_102==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_102==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_102==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_102==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_102==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_102==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_102==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_102==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_102==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_102==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_102==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_102==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_102==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_102==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_102==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_102==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_102==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_102==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_102==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_102); - if ( s>=0 ) return s; - break; - - case 52 : - int LA17_105 = input.LA(1); - - int index17_105 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_105==COLON) ) {s = 118;} - else if ( (LA17_105==COMMA||LA17_105==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_105==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_105==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_105==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_105==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_105==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_105==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_105==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_105==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_105==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_105==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_105==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_105==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_105==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_105==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_105==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_105==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_105==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_105==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_105==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_105==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_105==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_105==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_105==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_105==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_105==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_105==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_105==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_105==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_105==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_105==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_105); - if ( s>=0 ) return s; - break; - - case 53 : - int LA17_88 = input.LA(1); - - int index17_88 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_88); - if ( s>=0 ) return s; - break; - - case 54 : - int LA17_9 = input.LA(1); - - int index17_9 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_9==STAR) ) {s = 25;} - else if ( (LA17_9==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_9==COMMA||LA17_9==DOT) && (synpred5_FTS())) {s = 28;} - else if ( (LA17_9==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_9==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_9==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_9==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_9==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_9==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_9==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_9==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_9==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_9==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_9==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_9==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_9==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_9==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_9==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_9==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_9==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_9==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_9==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_9==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_9==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_9==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_9==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_9==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_9==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_9==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_9==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_9==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_9==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_9); - if ( s>=0 ) return s; - break; - - case 55 : - int LA17_162 = input.LA(1); - - int index17_162 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_162==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_162==COMMA||LA17_162==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_162==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_162==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_162==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_162==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_162==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_162==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_162==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_162==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_162==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_162==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_162==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_162==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_162==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_162==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_162==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_162==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_162==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_162==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_162==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_162==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_162==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_162==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_162==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_162==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_162==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_162==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_162==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_162==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_162==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_162==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_162); - if ( s>=0 ) return s; - break; - - case 56 : - int LA17_161 = input.LA(1); - - int index17_161 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_161==DOT) ) {s = 195;} - else if ( (LA17_161==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_161==COMMA) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_161==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_161==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_161==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_161==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_161==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_161==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_161==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_161==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_161==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_161==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_161==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_161==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_161==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_161==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_161==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_161==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_161==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_161==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_161==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_161==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_161==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_161==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_161==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_161==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_161==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_161==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_161==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_161==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_161==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_161==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_161); - if ( s>=0 ) return s; - break; - - case 57 : - int LA17_26 = input.LA(1); - - int index17_26 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_26==LPAREN) && (synpred4_FTS())) {s = 100;} - else if ( (LA17_26==ID) ) {s = 101;} - else if ( (LA17_26==TO) ) {s = 102;} - else if ( (LA17_26==OR) ) {s = 103;} - else if ( (LA17_26==AND) ) {s = 104;} - else if ( (LA17_26==NOT) ) {s = 105;} - else if ( (LA17_26==FTSWORD) ) {s = 106;} - else if ( (LA17_26==FTSPRE) ) {s = 107;} - else if ( (LA17_26==FTSWILD) ) {s = 108;} - else if ( (LA17_26==FTSPHRASE) ) {s = 109;} - else if ( (LA17_26==DECIMAL_INTEGER_LITERAL) ) {s = 110;} - else if ( (LA17_26==FLOATING_POINT_LITERAL) ) {s = 111;} - else if ( (LA17_26==DATETIME) ) {s = 112;} - else if ( (LA17_26==STAR) ) {s = 113;} - else if ( (LA17_26==URI) ) {s = 114;} - else if ( (LA17_26==LSQUARE) && (synpred3_FTS())) {s = 16;} - else if ( (LA17_26==LT) && (synpred3_FTS())) {s = 17;} - else if ( (LA17_26==COMMA||LA17_26==DOT) && (synpred5_FTS())) {s = 115;} - else if ( (LA17_26==QUESTION_MARK) && (synpred5_FTS())) {s = 116;} - - input.seek(index17_26); - if ( s>=0 ) return s; - break; - - case 58 : - int LA17_197 = input.LA(1); - - int index17_197 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 198;} - - input.seek(index17_197); - if ( s>=0 ) return s; - break; - - case 59 : - int LA17_90 = input.LA(1); - - int index17_90 = input.index(); - input.rewind(); - s = -1; - if ( (synpred2_FTS()) ) {s = 124;} - else if ( (synpred5_FTS()) ) {s = 151;} - - input.seek(index17_90); - if ( s>=0 ) return s; - break; - - case 60 : - int LA17_163 = input.LA(1); - - int index17_163 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_163==DOTDOT) && (synpred3_FTS())) {s = 27;} - else if ( (LA17_163==COMMA||LA17_163==DOT) && (synpred5_FTS())) {s = 158;} - else if ( (LA17_163==TILDA) && (synpred5_FTS())) {s = 159;} - else if ( (LA17_163==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_163==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_163==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_163==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_163==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_163==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_163==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_163==NOT) && (synpred5_FTS())) {s = 37;} - else if ( (LA17_163==ID) && (synpred5_FTS())) {s = 38;} - else if ( (LA17_163==FTSWORD) && (synpred5_FTS())) {s = 39;} - else if ( (LA17_163==FTSPRE) && (synpred5_FTS())) {s = 40;} - else if ( (LA17_163==FTSWILD) && (synpred5_FTS())) {s = 41;} - else if ( (LA17_163==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_163==TO) && (synpred5_FTS())) {s = 43;} - else if ( (LA17_163==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} - else if ( (LA17_163==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} - else if ( (LA17_163==DATETIME) && (synpred5_FTS())) {s = 46;} - else if ( (LA17_163==STAR) && (synpred5_FTS())) {s = 68;} - else if ( (LA17_163==URI) && (synpred5_FTS())) {s = 47;} - else if ( (LA17_163==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_163==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_163==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_163==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_163==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} - else if ( (LA17_163==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_163==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_163==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_163==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_163==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_163); - if ( s>=0 ) return s; - break; - - case 61 : - int LA17_0 = input.LA(1); - - int index17_0 = input.index(); - input.rewind(); - s = -1; - if ( (LA17_0==ID) ) {s = 1;} - else if ( (LA17_0==FTSWORD) ) {s = 2;} - else if ( (LA17_0==FTSPRE) ) {s = 3;} - else if ( (LA17_0==FTSWILD) ) {s = 4;} - else if ( (LA17_0==NOT) ) {s = 5;} - else if ( (LA17_0==TO) ) {s = 6;} - else if ( (LA17_0==DECIMAL_INTEGER_LITERAL) ) {s = 7;} - else if ( (LA17_0==FLOATING_POINT_LITERAL) ) {s = 8;} - else if ( (LA17_0==DATETIME) ) {s = 9;} - else if ( (LA17_0==STAR) ) {s = 10;} - else if ( (LA17_0==URI) ) {s = 11;} - else if ( (LA17_0==AT) ) {s = 12;} - else if ( (LA17_0==OR) ) {s = 13;} - else if ( (LA17_0==AND) ) {s = 14;} - else if ( (LA17_0==FTSPHRASE) ) {s = 15;} - else if ( (LA17_0==LSQUARE) && (synpred3_FTS())) {s = 16;} - else if ( (LA17_0==LT) && (synpred3_FTS())) {s = 17;} - else if ( (LA17_0==COMMA||LA17_0==DOT) && (synpred5_FTS())) {s = 18;} - else if ( (LA17_0==QUESTION_MARK) && (synpred5_FTS())) {s = 19;} - else if ( (LA17_0==EQUALS) && (synpred6_FTS())) {s = 20;} - else if ( (LA17_0==TILDA) && (synpred7_FTS())) {s = 21;} - else if ( (LA17_0==LPAREN) ) {s = 22;} - else if ( (LA17_0==PERCENT) ) {s = 23;} - - input.seek(index17_0); - if ( s>=0 ) return s; - break; - - case 62 : - int LA17_70 = input.LA(1); - - int index17_70 = input.index(); - input.rewind(); - s = -1; - if ( (synpred3_FTS()) ) {s = 27;} - else if ( (synpred4_FTS()) ) {s = 100;} - else if ( (synpred5_FTS()) ) {s = 116;} - - input.seek(index17_70); - if ( s>=0 ) return s; - break; - - case 63 : int LA17_1 = input.LA(1); int index17_1 = input.index(); @@ -17484,6 +18537,1076 @@ public class FTSParser extends Parser { input.seek(index17_1); if ( s>=0 ) return s; break; + + case 51 : + int LA17_8 = input.LA(1); + + int index17_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_8==STAR) ) {s = 25;} + else if ( (LA17_8==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_8==COMMA||LA17_8==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_8==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_8==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_8==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_8==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_8==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_8==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_8==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_8==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_8==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_8==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_8==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_8==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_8==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_8==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_8==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_8==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_8==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_8==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_8==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_8==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_8==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_8==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_8==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_8==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_8==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_8==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_8==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_8==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_8==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_8); + if ( s>=0 ) return s; + break; + + case 52 : + int LA17_59 = input.LA(1); + + int index17_59 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_59==STAR) ) {s = 25;} + else if ( (LA17_59==COLON) ) {s = 118;} + else if ( (LA17_59==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_59==COMMA||LA17_59==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_59==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_59==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_59==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_59==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_59==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_59==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_59==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_59==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_59==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_59==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_59==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_59==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_59==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_59==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_59==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_59==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_59==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_59==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_59==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_59==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_59==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_59==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_59==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_59==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_59==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_59==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_59==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_59==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_59==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_59); + if ( s>=0 ) return s; + break; + + case 53 : + int LA17_158 = input.LA(1); + + int index17_158 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 185;} + + input.seek(index17_158); + if ( s>=0 ) return s; + break; + + case 54 : + int LA17_84 = input.LA(1); + + int index17_84 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_84); + if ( s>=0 ) return s; + break; + + case 55 : + int LA17_60 = input.LA(1); + + int index17_60 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_60==STAR) ) {s = 25;} + else if ( (LA17_60==COLON) ) {s = 118;} + else if ( (LA17_60==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_60==COMMA||LA17_60==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_60==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_60==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_60==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_60==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_60==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_60==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_60==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_60==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_60==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_60==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_60==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_60==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_60==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_60==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_60==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_60==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_60==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_60==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_60==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_60==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_60==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_60==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_60==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_60==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_60==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_60==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_60==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_60==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_60==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_60); + if ( s>=0 ) return s; + break; + + case 56 : + int LA17_10 = input.LA(1); + + int index17_10 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_10==STAR) ) {s = 25;} + else if ( (LA17_10==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_10==COMMA||LA17_10==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_10==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_10==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_10==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_10==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_10==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_10==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_10==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_10==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_10==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_10==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_10==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_10==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_10==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_10==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_10==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_10==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_10==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_10==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_10==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_10==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_10==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_10==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_10==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_10==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_10==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_10==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_10==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_10==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_10==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_10); + if ( s>=0 ) return s; + break; + + case 57 : + int LA17_15 = input.LA(1); + + int index17_15 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_15==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_15==TILDA) && (synpred5_FTS())) {s = 67;} + else if ( (LA17_15==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_15==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_15==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_15==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_15==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_15==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_15==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_15==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_15==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_15==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_15==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_15==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_15==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_15==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_15==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_15==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_15==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_15==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_15==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_15==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_15==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_15==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_15==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_15==COMMA||LA17_15==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_15==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_15==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_15==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_15==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_15==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_15==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_15); + if ( s>=0 ) return s; + break; + + case 58 : + int LA17_62 = input.LA(1); + + int index17_62 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_62==STAR) ) {s = 25;} + else if ( (LA17_62==COLON) ) {s = 118;} + else if ( (LA17_62==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_62==COMMA||LA17_62==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_62==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_62==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_62==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_62==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_62==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_62==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_62==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_62==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_62==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_62==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_62==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_62==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_62==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_62==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_62==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_62==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_62==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_62==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_62==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_62==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_62==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_62==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_62==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_62==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_62==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_62==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_62==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_62==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_62==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_62); + if ( s>=0 ) return s; + break; + + case 59 : + int LA17_220 = input.LA(1); + + int index17_220 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_220==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_220==COMMA||LA17_220==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_220==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_220==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_220==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_220==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_220==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_220==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_220==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_220==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_220==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_220==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_220==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_220==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_220==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_220==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_220==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_220==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_220==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_220==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_220==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_220==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_220==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_220==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_220==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_220==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_220==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_220==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_220==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_220==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_220==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_220==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_220); + if ( s>=0 ) return s; + break; + + case 60 : + int LA17_9 = input.LA(1); + + int index17_9 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_9==STAR) ) {s = 25;} + else if ( (LA17_9==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_9==COMMA||LA17_9==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_9==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_9==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_9==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_9==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_9==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_9==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_9==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_9==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_9==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_9==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_9==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_9==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_9==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_9==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_9==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_9==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_9==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_9==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_9==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_9==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_9==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_9==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_9==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_9==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_9==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_9==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_9==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_9==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_9==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_9); + if ( s>=0 ) return s; + break; + + case 61 : + int LA17_86 = input.LA(1); + + int index17_86 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_86); + if ( s>=0 ) return s; + break; + + case 62 : + int LA17_61 = input.LA(1); + + int index17_61 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_61==STAR) ) {s = 25;} + else if ( (LA17_61==COLON) ) {s = 118;} + else if ( (LA17_61==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_61==COMMA||LA17_61==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_61==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_61==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_61==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_61==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_61==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_61==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_61==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_61==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_61==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_61==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_61==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_61==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_61==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_61==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_61==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_61==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_61==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_61==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_61==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_61==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_61==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_61==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_61==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_61==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_61==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_61==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_61==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_61==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_61==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_61); + if ( s>=0 ) return s; + break; + + case 63 : + int LA17_101 = input.LA(1); + + int index17_101 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_101==DOT) ) {s = 159;} + else if ( (LA17_101==COLON) ) {s = 160;} + else if ( (LA17_101==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_101==COMMA) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_101==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_101==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_101==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_101==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_101==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_101==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_101==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_101==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_101==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_101==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_101==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_101==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_101==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_101==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_101==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_101==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_101==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_101==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_101==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_101==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_101==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_101==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_101==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_101==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_101==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_101==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_101==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_101==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_101==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_101==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_101); + if ( s>=0 ) return s; + break; + + case 64 : + int LA17_85 = input.LA(1); + + int index17_85 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_85); + if ( s>=0 ) return s; + break; + + case 65 : + int LA17_221 = input.LA(1); + + int index17_221 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_221==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_221==COMMA||LA17_221==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_221==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_221==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_221==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_221==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_221==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_221==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_221==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_221==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_221==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_221==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_221==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_221==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_221==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_221==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_221==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_221==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_221==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_221==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_221==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_221==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_221==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_221==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_221==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_221==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_221==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_221==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_221==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_221==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_221==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_221==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_221); + if ( s>=0 ) return s; + break; + + case 66 : + int LA17_223 = input.LA(1); + + int index17_223 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_223==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_223==COMMA||LA17_223==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_223==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_223==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_223==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_223==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_223==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_223==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_223==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_223==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_223==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_223==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_223==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_223==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_223==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_223==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_223==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_223==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_223==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_223==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_223==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_223==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_223==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_223==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_223==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_223==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_223==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_223==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_223==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_223==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_223==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_223==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_223); + if ( s>=0 ) return s; + break; + + case 67 : + int LA17_222 = input.LA(1); + + int index17_222 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_222==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_222==COMMA||LA17_222==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_222==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_222==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_222==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_222==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_222==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_222==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_222==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_222==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_222==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_222==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_222==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_222==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_222==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_222==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_222==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_222==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_222==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_222==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_222==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_222==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_222==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_222==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_222==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_222==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_222==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_222==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_222==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_222==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_222==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_222==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_222); + if ( s>=0 ) return s; + break; + + case 68 : + int LA17_198 = input.LA(1); + + int index17_198 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_198==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_198==COMMA||LA17_198==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_198==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_198==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_198==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_198==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_198==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_198==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_198==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_198==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_198==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_198==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_198==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_198==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_198==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_198==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_198==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_198==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_198==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_198==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_198==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_198==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_198==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_198==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_198==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_198==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_198==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_198==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_198==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_198==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_198==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_198==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_198); + if ( s>=0 ) return s; + break; + + case 69 : + int LA17_225 = input.LA(1); + + int index17_225 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_225==ID) ) {s = 226;} + else if ( (LA17_225==FTSWORD) && (synpred5_FTS())) {s = 227;} + else if ( (LA17_225==FTSPRE) && (synpred5_FTS())) {s = 228;} + else if ( (LA17_225==FTSWILD) && (synpred5_FTS())) {s = 229;} + else if ( (LA17_225==NOT) && (synpred5_FTS())) {s = 230;} + else if ( (LA17_225==TO) && (synpred5_FTS())) {s = 231;} + else if ( (LA17_225==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 232;} + else if ( (LA17_225==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 233;} + else if ( (LA17_225==STAR) && (synpred5_FTS())) {s = 234;} + else if ( (LA17_225==QUESTION_MARK) && (synpred5_FTS())) {s = 235;} + else if ( (LA17_225==DATETIME) && (synpred5_FTS())) {s = 236;} + else if ( (LA17_225==URI) && (synpred5_FTS())) {s = 237;} + else if ( (LA17_225==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_225==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_225==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_225==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_225==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_225==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_225==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_225==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_225==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_225==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_225==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_225==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_225==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_225==COMMA||LA17_225==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_225==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_225==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_225==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_225==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_225==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_225); + if ( s>=0 ) return s; + break; + + case 70 : + int LA17_200 = input.LA(1); + + int index17_200 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_200==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_200==COMMA||LA17_200==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_200==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_200==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_200==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_200==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_200==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_200==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_200==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_200==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_200==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_200==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_200==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_200==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_200==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_200==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_200==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_200==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_200==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_200==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_200==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_200==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_200==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_200==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_200==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_200==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_200==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_200==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_200==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_200==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_200==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_200==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_200); + if ( s>=0 ) return s; + break; + + case 71 : + int LA17_159 = input.LA(1); + + int index17_159 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_159==ID) ) {s = 186;} + else if ( (LA17_159==FTSWORD) && (synpred5_FTS())) {s = 187;} + else if ( (LA17_159==FTSPRE) && (synpred5_FTS())) {s = 188;} + else if ( (LA17_159==FTSWILD) && (synpred5_FTS())) {s = 189;} + else if ( (LA17_159==NOT) && (synpred5_FTS())) {s = 190;} + else if ( (LA17_159==TO) && (synpred5_FTS())) {s = 191;} + else if ( (LA17_159==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 192;} + else if ( (LA17_159==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 193;} + else if ( (LA17_159==STAR) && (synpred5_FTS())) {s = 194;} + else if ( (LA17_159==QUESTION_MARK) && (synpred5_FTS())) {s = 195;} + else if ( (LA17_159==DATETIME) && (synpred5_FTS())) {s = 196;} + else if ( (LA17_159==URI) && (synpred5_FTS())) {s = 197;} + else if ( (LA17_159==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_159==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_159==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_159==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_159==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_159==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_159==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_159==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_159==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_159==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_159==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_159==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_159==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_159==COMMA||LA17_159==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_159==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_159==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_159==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_159==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_159==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_159); + if ( s>=0 ) return s; + break; + + case 72 : + int LA17_26 = input.LA(1); + + int index17_26 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_26==LPAREN) && (synpred4_FTS())) {s = 100;} + else if ( (LA17_26==ID) ) {s = 101;} + else if ( (LA17_26==TO) ) {s = 102;} + else if ( (LA17_26==OR) ) {s = 103;} + else if ( (LA17_26==AND) ) {s = 104;} + else if ( (LA17_26==NOT) ) {s = 105;} + else if ( (LA17_26==FTSWORD) ) {s = 106;} + else if ( (LA17_26==FTSPRE) ) {s = 107;} + else if ( (LA17_26==FTSWILD) ) {s = 108;} + else if ( (LA17_26==FTSPHRASE) ) {s = 109;} + else if ( (LA17_26==DECIMAL_INTEGER_LITERAL) ) {s = 110;} + else if ( (LA17_26==FLOATING_POINT_LITERAL) ) {s = 111;} + else if ( (LA17_26==DATETIME) ) {s = 112;} + else if ( (LA17_26==STAR) ) {s = 113;} + else if ( (LA17_26==URI) ) {s = 114;} + else if ( (LA17_26==LSQUARE) && (synpred3_FTS())) {s = 16;} + else if ( (LA17_26==LT) && (synpred3_FTS())) {s = 17;} + else if ( (LA17_26==COMMA||LA17_26==DOT) && (synpred5_FTS())) {s = 115;} + else if ( (LA17_26==QUESTION_MARK) && (synpred5_FTS())) {s = 116;} + + input.seek(index17_26); + if ( s>=0 ) return s; + break; + + case 73 : + int LA17_199 = input.LA(1); + + int index17_199 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_199==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_199==COMMA||LA17_199==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_199==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_199==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_199==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_199==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_199==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_199==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_199==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_199==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_199==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_199==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_199==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_199==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_199==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_199==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_199==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_199==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_199==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_199==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_199==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_199==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_199==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_199==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_199==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_199==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_199==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_199==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_199==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_199==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_199==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_199==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_199); + if ( s>=0 ) return s; + break; + + case 74 : + int LA17_89 = input.LA(1); + + int index17_89 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_89); + if ( s>=0 ) return s; + break; + + case 75 : + int LA17_224 = input.LA(1); + + int index17_224 = input.index(); + input.rewind(); + s = -1; + if ( (synpred3_FTS()) ) {s = 27;} + else if ( (synpred5_FTS()) ) {s = 218;} + + input.seek(index17_224); + if ( s>=0 ) return s; + break; + + case 76 : + int LA17_201 = input.LA(1); + + int index17_201 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_201==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_201==COMMA||LA17_201==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_201==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_201==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_201==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_201==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_201==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_201==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_201==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_201==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_201==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_201==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_201==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_201==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_201==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_201==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_201==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_201==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_201==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_201==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_201==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_201==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_201==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_201==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_201==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_201==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_201==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_201==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_201==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_201==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_201==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_201==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_201); + if ( s>=0 ) return s; + break; + + case 77 : + int LA17_202 = input.LA(1); + + int index17_202 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_202==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_202==TILDA) && (synpred5_FTS())) {s = 218;} + else if ( (LA17_202==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_202==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_202==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_202==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_202==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_202==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_202==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_202==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_202==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_202==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_202==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_202==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_202==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_202==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_202==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_202==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_202==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_202==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_202==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_202==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_202==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_202==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_202==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_202==COMMA||LA17_202==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_202==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_202==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_202==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_202==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_202==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_202==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_202); + if ( s>=0 ) return s; + break; + + case 78 : + int LA17_117 = input.LA(1); + + int index17_117 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_117==ID) ) {s = 169;} + else if ( (LA17_117==FTSWORD) && (synpred5_FTS())) {s = 71;} + else if ( (LA17_117==FTSPRE) && (synpred5_FTS())) {s = 72;} + else if ( (LA17_117==FTSWILD) && (synpred5_FTS())) {s = 73;} + else if ( (LA17_117==NOT) && (synpred5_FTS())) {s = 74;} + else if ( (LA17_117==TO) && (synpred5_FTS())) {s = 75;} + else if ( (LA17_117==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 76;} + else if ( (LA17_117==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 77;} + else if ( (LA17_117==STAR) && (synpred5_FTS())) {s = 78;} + else if ( (LA17_117==QUESTION_MARK) && (synpred5_FTS())) {s = 79;} + else if ( (LA17_117==DATETIME) && (synpred5_FTS())) {s = 80;} + else if ( (LA17_117==URI) && (synpred5_FTS())) {s = 81;} + else if ( (LA17_117==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_117==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_117==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_117==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_117==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_117==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_117==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_117==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_117==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_117==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_117==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_117==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_117==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_117==COMMA||LA17_117==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_117==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_117==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_117==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_117==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_117==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_117); + if ( s>=0 ) return s; + break; + + case 79 : + int LA17_25 = input.LA(1); + + int index17_25 = input.index(); + input.rewind(); + s = -1; + if ( (LA17_25==LPAREN) ) {s = 82;} + else if ( (LA17_25==ID) ) {s = 83;} + else if ( (LA17_25==FTSWORD) ) {s = 84;} + else if ( (LA17_25==FTSPRE) ) {s = 85;} + else if ( (LA17_25==FTSWILD) ) {s = 86;} + else if ( (LA17_25==NOT) ) {s = 87;} + else if ( (LA17_25==TO) ) {s = 88;} + else if ( (LA17_25==DECIMAL_INTEGER_LITERAL) ) {s = 89;} + else if ( (LA17_25==FLOATING_POINT_LITERAL) ) {s = 90;} + else if ( (LA17_25==DATETIME) ) {s = 91;} + else if ( (LA17_25==STAR) ) {s = 92;} + else if ( (LA17_25==URI) ) {s = 93;} + else if ( (LA17_25==DOTDOT) && (synpred5_FTS())) {s = 94;} + else if ( (LA17_25==COMMA||LA17_25==DOT) && (synpred5_FTS())) {s = 95;} + else if ( (LA17_25==TILDA) && (synpred5_FTS())) {s = 96;} + else if ( (LA17_25==CARAT) && (synpred5_FTS())) {s = 97;} + else if ( (LA17_25==AND) && (synpred5_FTS())) {s = 98;} + else if ( (LA17_25==AMP) && (synpred5_FTS())) {s = 99;} + else if ( (LA17_25==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_25==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_25==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_25==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_25==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_25==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_25==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_25==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_25==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_25==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_25==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_25==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_25==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_25==MINUS) && (synpred5_FTS())) {s = 57;} + + input.seek(index17_25); + if ( s>=0 ) return s; + break; + + case 80 : + int LA17_87 = input.LA(1); + + int index17_87 = input.index(); + input.rewind(); + s = -1; + if ( (synpred2_FTS()) ) {s = 126;} + else if ( (synpred5_FTS()) ) {s = 153;} + + input.seek(index17_87); + if ( s>=0 ) return s; + break; } if (state.backtracking>0) {state.failed=true; return -1;} NoViableAltException nvae = @@ -17491,129 +19614,450 @@ public class FTSParser extends Parser { error(nvae); throw nvae; } - } - static final String DFA33_eotS = - "\126\uffff"; - static final String DFA33_eofS = - "\2\uffff\2\11\2\uffff\1\11\3\uffff\1\11\1\uffff\7\11\2\uffff\1\11\100"+ - "\uffff"; - static final String DFA33_minS = - "\1\5\1\uffff\2\4\2\uffff\1\4\1\5\2\uffff\1\4\1\uffff\7\4\1\uffff\1\5\1"+ - "\4\2\0\2\12\2\0\1\15\10\0\2\5\1\13\13\0\1\5\42\0"; - static final String DFA33_maxS = - "\1\150\1\uffff\2\150\2\uffff\1\150\1\146\2\uffff\1\150\1\uffff\7\150\1"+ - "\uffff\2\150\2\0\2\12\2\0\1\150\10\0\1\146\2\150\13\0\1\146\42\0"; - static final String DFA33_acceptS = - "\1\uffff\1\1\2\uffff\2\1\2\uffff\1\2\1\3\1\uffff\1\1\7\uffff\1\1\102\uffff"; - static final String DFA33_specialS = - "\1\55\1\uffff\1\72\1\67\2\uffff\1\65\5\uffff\1\14\1\20\1\54\1\53\1\76"+ - "\5\uffff\1\63\1\16\2\uffff\1\56\1\22\1\uffff\1\37\1\77\1\43\1\3\1\60\1"+ - "\11\1\30\1\31\3\uffff\1\2\1\51\1\32\1\75\1\26\1\7\1\57\1\0\1\74\1\46\1"+ - "\64\1\uffff\1\15\1\1\1\52\1\42\1\73\1\23\1\21\1\40\1\100\1\44\1\10\1\70"+ - "\1\4\1\61\1\12\1\33\1\34\1\24\1\50\1\41\1\101\1\45\1\17\1\71\1\5\1\62"+ - "\1\13\1\35\1\36\1\47\1\27\1\66\1\25\1\6}>"; - static final String[] DFA33_transitionS = { + private int specialStateTransition0(int LA17_204) + { + int s; + s = -1; + if ( (LA17_204==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_204==COMMA||LA17_204==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_204==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_204==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_204==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_204==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_204==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_204==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_204==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_204==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_204==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_204==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_204==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_204==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_204==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_204==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_204==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_204==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_204==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_204==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_204==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_204==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_204==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_204==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_204==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_204==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_204==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_204==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_204==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_204==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_204==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_204==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } + + private int specialStateTransition2(int LA17_203) + { + int s; + s = -1; + if ( (LA17_203==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_203==COMMA||LA17_203==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_203==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_203==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_203==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_203==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_203==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_203==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_203==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_203==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_203==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_203==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_203==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_203==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_203==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_203==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_203==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_203==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_203==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_203==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_203==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_203==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_203==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_203==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_203==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_203==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_203==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_203==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_203==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_203==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_203==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_203==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } + + private int specialStateTransition3(int LA17_160) + { + int s; + s = -1; + if ( (LA17_160==LPAREN) && (synpred4_FTS())) {s = 100;} + else if ( (LA17_160==ID) ) {s = 198;} + else if ( (LA17_160==FTSWORD) ) {s = 199;} + else if ( (LA17_160==FTSPRE) ) {s = 200;} + else if ( (LA17_160==FTSWILD) ) {s = 201;} + else if ( (LA17_160==FTSPHRASE) ) {s = 202;} + else if ( (LA17_160==DECIMAL_INTEGER_LITERAL) ) {s = 203;} + else if ( (LA17_160==FLOATING_POINT_LITERAL) ) {s = 204;} + else if ( (LA17_160==DATETIME) ) {s = 205;} + else if ( (LA17_160==STAR) ) {s = 206;} + else if ( (LA17_160==URI) ) {s = 207;} + else if ( (LA17_160==LSQUARE) && (synpred3_FTS())) {s = 16;} + else if ( (LA17_160==LT) && (synpred3_FTS())) {s = 17;} + else if ( (LA17_160==COMMA||LA17_160==DOT) && (synpred5_FTS())) {s = 208;} + else if ( (LA17_160==NOT) && (synpred5_FTS())) {s = 209;} + else if ( (LA17_160==TO) && (synpred5_FTS())) {s = 210;} + else if ( (LA17_160==QUESTION_MARK) && (synpred5_FTS())) {s = 211;} + return s; + } + + private int specialStateTransition4(int LA17_6) + { + int s; + s = -1; + if ( (LA17_6==STAR) ) {s = 25;} + else if ( (LA17_6==COLON) ) {s = 26;} + else if ( (LA17_6==COMMA||LA17_6==DOT) && (synpred5_FTS())) {s = 28;} + else if ( (LA17_6==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_6==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_6==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_6==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_6==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_6==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_6==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_6==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_6==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_6==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_6==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_6==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_6==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_6==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_6==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_6==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_6==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_6==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_6==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_6==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_6==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_6==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_6==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_6==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_6==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_6==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_6==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_6==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_6==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } + + private int specialStateTransition5(int LA17_166) + { + int s; + s = -1; + if ( (LA17_166==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_166==COMMA||LA17_166==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_166==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_166==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_166==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_166==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_166==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_166==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_166==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_166==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_166==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_166==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_166==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_166==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_166==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_166==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_166==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_166==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_166==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_166==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_166==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_166==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_166==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_166==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_166==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_166==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_166==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_166==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_166==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_166==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_166==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_166==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } + + private int specialStateTransition6(int LA17_206) + { + int s; + s = -1; + if ( (LA17_206==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_206==COMMA||LA17_206==DOT) && (synpred5_FTS())) {s = 216;} + else if ( (LA17_206==TILDA) && (synpred5_FTS())) {s = 217;} + else if ( (LA17_206==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_206==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_206==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_206==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_206==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_206==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_206==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_206==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_206==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_206==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_206==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_206==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_206==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_206==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_206==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_206==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_206==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_206==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_206==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_206==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_206==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_206==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_206==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_206==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_206==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_206==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_206==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_206==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_206==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } + + private int specialStateTransition7(int LA17_165) + { + int s; + s = -1; + if ( (LA17_165==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_165==COMMA||LA17_165==DOT) && (synpred5_FTS())) {s = 161;} + else if ( (LA17_165==TILDA) && (synpred5_FTS())) {s = 162;} + else if ( (LA17_165==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_165==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_165==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_165==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_165==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_165==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_165==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_165==NOT) && (synpred5_FTS())) {s = 37;} + else if ( (LA17_165==ID) && (synpred5_FTS())) {s = 38;} + else if ( (LA17_165==FTSWORD) && (synpred5_FTS())) {s = 39;} + else if ( (LA17_165==FTSPRE) && (synpred5_FTS())) {s = 40;} + else if ( (LA17_165==FTSWILD) && (synpred5_FTS())) {s = 41;} + else if ( (LA17_165==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_165==TO) && (synpred5_FTS())) {s = 43;} + else if ( (LA17_165==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 44;} + else if ( (LA17_165==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 45;} + else if ( (LA17_165==DATETIME) && (synpred5_FTS())) {s = 46;} + else if ( (LA17_165==STAR) && (synpred5_FTS())) {s = 68;} + else if ( (LA17_165==URI) && (synpred5_FTS())) {s = 47;} + else if ( (LA17_165==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_165==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_165==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_165==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_165==QUESTION_MARK) && (synpred5_FTS())) {s = 52;} + else if ( (LA17_165==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_165==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_165==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_165==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_165==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } + } + + static final String DFA30_eotS = + "\u0089\uffff"; + static final String DFA30_eofS = + "\2\uffff\2\11\2\uffff\1\11\7\uffff\1\11\1\uffff\5\11\2\uffff\2\61\2\uffff"+ + "\1\61\13\uffff\1\11\2\uffff\1\61\41\uffff\1\61\74\uffff"; + static final String DFA30_minS = + "\2\5\2\4\2\12\1\4\1\5\2\uffff\3\12\1\uffff\1\4\1\5\5\4\1\77\1\0\2\4\2"+ + "\uffff\1\4\13\uffff\1\4\1\uffff\1\12\1\4\40\uffff\1\0\1\4\15\uffff\1\5"+ + "\10\uffff\1\0\1\15\13\0\1\5\2\uffff\13\0\1\5\12\0"; + static final String DFA30_maxS = + "\4\150\2\12\1\150\1\146\2\uffff\1\25\2\12\1\uffff\7\150\1\77\1\0\2\150"+ + "\2\uffff\1\150\13\uffff\1\150\1\uffff\1\12\1\150\40\uffff\1\0\1\150\15"+ + "\uffff\1\150\10\uffff\1\0\1\150\13\0\1\146\2\uffff\13\0\1\146\12\0"; + static final String DFA30_acceptS = + "\10\uffff\1\3\1\4\3\uffff\1\2\13\uffff\2\1\1\uffff\13\2\1\uffff\1\2\2"+ + "\uffff\1\1\37\2\2\uffff\15\2\1\uffff\10\2\16\uffff\2\2\26\uffff"; + static final String DFA30_specialS = + "\1\uffff\1\21\15\uffff\1\11\1\27\1\43\1\41\1\45\1\56\1\uffff\1\50\1\46"+ + "\1\30\2\uffff\1\20\16\uffff\1\40\40\uffff\1\16\1\14\15\uffff\1\32\10\uffff"+ + "\1\26\1\uffff\1\5\1\31\1\53\1\4\1\51\1\6\1\57\1\12\1\23\1\24\1\35\3\uffff"+ + "\1\47\1\10\1\25\1\37\1\33\1\52\1\0\1\13\1\42\1\55\1\7\1\uffff\1\2\1\3"+ + "\1\15\1\36\1\44\1\17\1\34\1\54\1\1\1\22}>"; + static final String[] DFA30_transitionS = { "\1\5\1\1\4\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11\31\uffff"+ "\1\11\2\uffff\1\10\3\11\11\uffff\1\2\16\uffff\1\6\2\uffff\1\4\6\uffff"+ "\1\11\7\uffff\1\11\5\uffff\1\3\1\uffff\1\7", - "", - "\4\11\1\uffff\1\11\1\13\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\12"+ + "\1\5\71\uffff\1\12\16\uffff\1\14\2\uffff\1\4\24\uffff\1\13\1\uffff\1"+ + "\15", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\16"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\13\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "", - "", - "\4\11\1\uffff\1\11\1\13\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\1\17", + "\1\17", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\1\17\71\uffff\1\14\16\uffff\1\20\2\uffff\1\16\24\uffff\1\15", + "\1\23\71\uffff\1\20\16\uffff\1\24\2\uffff\1\22\24\uffff\1\21", + "", + "", + "\1\17\12\uffff\1\25", + "\1\17", + "\1\17", + "", + "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ + "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\26"+ + "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\32\5\uffff\1\35\1\uffff\1\45\1\uffff\1\41\5\uffff\1\35\31\uffff\1"+ + "\42\2\uffff\1\34\1\37\1\40\1\36\11\uffff\1\27\16\uffff\1\33\2\uffff\1"+ + "\31\6\uffff\1\44\7\uffff\1\43\5\uffff\1\30\1\uffff\1\46", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\47"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\51", + "\1\uffff", + "\1\60\1\57\1\101\1\64\1\uffff\1\56\1\53\1\54\1\uffff\1\76\1\uffff\1"+ + "\74\5\uffff\1\52\2\uffff\1\106\2\uffff\1\72\23\uffff\1\75\2\uffff\1\102"+ + "\1\70\1\71\1\67\11\uffff\1\66\3\uffff\1\107\1\103\1\104\2\uffff\1\112"+ + "\5\uffff\1\65\2\uffff\1\63\1\110\1\uffff\1\111\3\uffff\1\105\2\uffff"+ + "\1\62\4\uffff\1\77\4\uffff\1\55\1\73\1\uffff\1\100", + "\1\60\1\57\1\101\1\64\1\uffff\1\56\1\53\1\54\1\uffff\1\76\1\uffff\1"+ + "\74\5\uffff\1\54\2\uffff\1\106\2\uffff\1\72\23\uffff\1\75\2\uffff\1\102"+ + "\1\70\1\71\1\67\11\uffff\1\66\3\uffff\1\107\1\103\1\104\2\uffff\1\112"+ + "\5\uffff\1\65\2\uffff\1\63\1\110\1\uffff\1\111\3\uffff\1\105\2\uffff"+ + "\1\62\4\uffff\1\77\4\uffff\1\55\1\73\1\uffff\1\100", + "", + "", + "\1\60\1\57\1\101\1\64\1\uffff\1\56\1\53\1\54\1\uffff\1\76\1\uffff\1"+ + "\74\5\uffff\1\54\2\uffff\1\106\2\uffff\1\72\23\uffff\1\75\2\uffff\1\102"+ + "\1\70\1\71\1\67\11\uffff\1\66\3\uffff\1\107\1\103\1\104\2\uffff\1\112"+ + "\5\uffff\1\65\2\uffff\1\63\1\110\1\uffff\1\111\3\uffff\1\105\2\uffff"+ + "\1\62\4\uffff\1\77\4\uffff\1\55\1\73\1\uffff\1\100", + "", + "", + "", + "", + "", + "", + "", + "", + "", "", "", "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ - "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\21"+ + "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\113"+ "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", "", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\22"+ - "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ - "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ - "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ - "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ - "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\24\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ - "\1\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ - "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\25"+ - "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\17", + "\1\60\1\57\1\101\1\64\1\uffff\1\56\1\uffff\1\130\1\uffff\1\126\1\uffff"+ + "\1\122\5\uffff\1\130\2\uffff\1\106\2\uffff\1\72\23\uffff\1\123\2\uffff"+ + "\1\102\1\116\1\117\1\115\11\uffff\1\114\3\uffff\1\107\1\103\1\104\2\uffff"+ + "\1\112\5\uffff\1\120\2\uffff\1\63\1\110\1\uffff\1\111\3\uffff\1\125\2"+ + "\uffff\1\62\4\uffff\1\124\4\uffff\1\55\1\121\1\uffff\1\127", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "", - "\1\31\5\uffff\1\34\1\uffff\1\44\1\uffff\1\40\5\uffff\1\34\31\uffff\1"+ - "\41\2\uffff\1\33\1\36\1\37\1\35\11\uffff\1\26\3\uffff\3\11\10\uffff\1"+ - "\32\2\uffff\1\30\6\uffff\1\43\7\uffff\1\42\5\uffff\1\27\1\uffff\1\45", - "\4\11\1\uffff\1\11\1\46\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ - "\1\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ - "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ - "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\1\uffff", - "\1\uffff", - "\1\47", - "\1\47", - "\1\uffff", - "\1\uffff", - "\1\62\1\uffff\1\56\37\uffff\1\57\3\uffff\1\52\1\53\1\51\11\uffff\1\50"+ - "\16\uffff\1\54\11\uffff\1\61\7\uffff\1\60\5\uffff\1\55\1\uffff\1\63", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\67\71\uffff\1\64\16\uffff\1\70\2\uffff\1\66\24\uffff\1\65", - "\1\11\5\uffff\1\34\1\uffff\1\104\1\uffff\1\100\5\uffff\1\34\31\uffff"+ - "\1\101\2\uffff\1\71\1\74\1\75\1\73\11\uffff\1\72\3\uffff\3\11\10\uffff"+ - "\1\76\2\uffff\1\11\6\uffff\1\103\7\uffff\1\102\5\uffff\1\77\1\uffff\1"+ - "\45", - "\1\34\1\uffff\1\120\1\uffff\1\114\5\uffff\1\34\31\uffff\1\115\2\uffff"+ - "\1\105\1\110\1\111\1\107\11\uffff\1\106\3\uffff\3\11\10\uffff\1\112\11"+ - "\uffff\1\117\7\uffff\1\116\5\uffff\1\113\1\uffff\1\45", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\uffff", - "\1\124\71\uffff\1\121\16\uffff\1\125\2\uffff\1\123\24\uffff\1\122", "\1\uffff", + "\1\137\1\136\1\101\1\64\1\uffff\1\135\1\132\1\133\1\uffff\1\76\1\uffff"+ + "\1\74\5\uffff\1\131\1\141\1\uffff\1\106\2\uffff\1\72\23\uffff\1\75\2"+ + "\uffff\1\102\1\70\1\71\1\67\11\uffff\1\66\3\uffff\1\107\1\103\1\104\2"+ + "\uffff\1\112\5\uffff\1\65\2\uffff\1\63\1\110\1\uffff\1\111\3\uffff\1"+ + "\105\2\uffff\1\62\4\uffff\1\140\4\uffff\1\134\1\73\1\uffff\1\100", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\162\5\uffff\1\144\1\uffff\1\157\1\uffff\1\153\5\uffff\1\144\31\uffff"+ + "\1\154\2\uffff\1\143\1\147\1\150\1\146\11\uffff\1\145\3\uffff\1\142\1"+ + "\103\1\104\10\uffff\1\151\2\uffff\1\161\6\uffff\1\156\7\uffff\1\155\5"+ + "\uffff\1\152\1\uffff\1\160", + "", + "", + "", + "", + "", + "", + "", + "", "\1\uffff", + "\1\175\1\uffff\1\171\37\uffff\1\172\3\uffff\1\165\1\166\1\164\11\uffff"+ + "\1\163\16\uffff\1\167\11\uffff\1\174\7\uffff\1\173\5\uffff\1\170\1\uffff"+ + "\1\176", "\1\uffff", "\1\uffff", "\1\uffff", @@ -17625,6 +20069,10 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", + "\1\u0082\71\uffff\1\177\16\uffff\1\u0083\2\uffff\1\u0081\24\uffff\1"+ + "\u0080", + "", + "", "\1\uffff", "\1\uffff", "\1\uffff", @@ -17636,6 +20084,8 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", + "\1\u0087\71\uffff\1\u0084\16\uffff\1\u0088\2\uffff\1\u0086\24\uffff"+ + "\1\u0085", "\1\uffff", "\1\uffff", "\1\uffff", @@ -17648,38 +20098,38 @@ public class FTSParser extends Parser { "\1\uffff" }; - static final short[] DFA33_eot = DFA.unpackEncodedString(DFA33_eotS); - static final short[] DFA33_eof = DFA.unpackEncodedString(DFA33_eofS); - static final char[] DFA33_min = DFA.unpackEncodedStringToUnsignedChars(DFA33_minS); - static final char[] DFA33_max = DFA.unpackEncodedStringToUnsignedChars(DFA33_maxS); - static final short[] DFA33_accept = DFA.unpackEncodedString(DFA33_acceptS); - static final short[] DFA33_special = DFA.unpackEncodedString(DFA33_specialS); - static final short[][] DFA33_transition; + static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS); + static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS); + static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS); + static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS); + static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS); + static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS); + static final short[][] DFA30_transition; static { - int numStates = DFA33_transitionS.length; - DFA33_transition = new short[numStates][]; + int numStates = DFA30_transitionS.length; + DFA30_transition = new short[numStates][]; for (int i=0; i fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) )"; + return "512:1: ftsTermOrPhrase : ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) );"; } @Override public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { @@ -17687,971 +20137,1008 @@ public class FTSParser extends Parser { int _s = s; switch ( s ) { case 0 : - int LA33_47 = input.LA(1); + int LA30_121 = input.LA(1); - int index33_47 = input.index(); + int index30_121 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_47); + input.seek(index30_121); if ( s>=0 ) return s; break; case 1 : - int LA33_53 = input.LA(1); + int LA30_135 = input.LA(1); - int index33_53 = input.index(); + int index30_135 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_53); + input.seek(index30_135); if ( s>=0 ) return s; break; case 2 : - int LA33_40 = input.LA(1); + int LA30_127 = input.LA(1); - int index33_40 = input.index(); + int index30_127 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_40); + input.seek(index30_127); if ( s>=0 ) return s; break; case 3 : - int LA33_32 = input.LA(1); + int LA30_128 = input.LA(1); - int index33_32 = input.index(); + int index30_128 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_32); + input.seek(index30_128); if ( s>=0 ) return s; break; case 4 : - int LA33_64 = input.LA(1); + int LA30_104 = input.LA(1); - int index33_64 = input.index(); + int index30_104 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_64); + input.seek(index30_104); if ( s>=0 ) return s; break; case 5 : - int LA33_76 = input.LA(1); + int LA30_101 = input.LA(1); - int index33_76 = input.index(); + int index30_101 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_76); + input.seek(index30_101); if ( s>=0 ) return s; break; case 6 : - int LA33_85 = input.LA(1); + int LA30_106 = input.LA(1); - int index33_85 = input.index(); + int index30_106 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_85); + input.seek(index30_106); if ( s>=0 ) return s; break; case 7 : - int LA33_45 = input.LA(1); + int LA30_125 = input.LA(1); - int index33_45 = input.index(); + int index30_125 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_45); + input.seek(index30_125); if ( s>=0 ) return s; break; case 8 : - int LA33_62 = input.LA(1); + int LA30_116 = input.LA(1); - int index33_62 = input.index(); + int index30_116 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_62); + input.seek(index30_116); if ( s>=0 ) return s; break; case 9 : - int LA33_34 = input.LA(1); + int LA30_15 = input.LA(1); - int index33_34 = input.index(); + int index30_15 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_15==ID) ) {s = 23;} + else if ( (LA30_15==TO) ) {s = 24;} + else if ( (LA30_15==OR) && (synpred8_FTS())) {s = 25;} + else if ( (LA30_15==AND) && (synpred8_FTS())) {s = 26;} + else if ( (LA30_15==NOT) ) {s = 27;} + else if ( (LA30_15==FTSPHRASE) && (synpred11_FTS())) {s = 28;} + else if ( (LA30_15==COMMA||LA30_15==DOT) && (synpred11_FTS())) {s = 29;} + else if ( (LA30_15==FTSWORD) && (synpred11_FTS())) {s = 30;} + else if ( (LA30_15==FTSPRE) && (synpred11_FTS())) {s = 31;} + else if ( (LA30_15==FTSWILD) && (synpred11_FTS())) {s = 32;} + else if ( (LA30_15==DECIMAL_INTEGER_LITERAL) && (synpred11_FTS())) {s = 33;} + else if ( (LA30_15==FLOATING_POINT_LITERAL) && (synpred11_FTS())) {s = 34;} + else if ( (LA30_15==STAR) && (synpred11_FTS())) {s = 35;} + else if ( (LA30_15==QUESTION_MARK) && (synpred11_FTS())) {s = 36;} + else if ( (LA30_15==DATETIME) && (synpred11_FTS())) {s = 37;} + else if ( (LA30_15==URI) && (synpred11_FTS())) {s = 38;} - input.seek(index33_34); + input.seek(index30_15); if ( s>=0 ) return s; break; case 10 : - int LA33_66 = input.LA(1); + int LA30_108 = input.LA(1); - int index33_66 = input.index(); + int index30_108 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_66); + input.seek(index30_108); if ( s>=0 ) return s; break; case 11 : - int LA33_78 = input.LA(1); + int LA30_122 = input.LA(1); - int index33_78 = input.index(); + int index30_122 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_78); + input.seek(index30_122); if ( s>=0 ) return s; break; case 12 : - int LA33_12 = input.LA(1); + int LA30_76 = input.LA(1); - int index33_12 = input.index(); + int index30_76 = input.index(); input.rewind(); s = -1; - if ( (LA33_12==DOT) ) {s = 18;} - else if ( (LA33_12==COLON) && (synpred13_FTS())) {s = 19;} - else if ( (LA33_12==EOF||(LA33_12 >= AMP && LA33_12 <= BAR)||LA33_12==CARAT||LA33_12==COMMA||LA33_12==DATETIME||LA33_12==DECIMAL_INTEGER_LITERAL||LA33_12==EQUALS||LA33_12==EXCLAMATION||LA33_12==FLOATING_POINT_LITERAL||(LA33_12 >= FTSPHRASE && LA33_12 <= FTSWORD)||LA33_12==ID||(LA33_12 >= LPAREN && LA33_12 <= LT)||LA33_12==MINUS||LA33_12==NOT||(LA33_12 >= OR && LA33_12 <= PERCENT)||LA33_12==PLUS||LA33_12==QUESTION_MARK||LA33_12==RPAREN||LA33_12==STAR||(LA33_12 >= TILDA && LA33_12 <= TO)||LA33_12==URI) ) {s = 9;} + if ( (LA30_76==DOT) && (synpred11_FTS())) {s = 89;} + else if ( (LA30_76==COLON) ) {s = 90;} + else if ( (LA30_76==COMMA) && (synpred11_FTS())) {s = 91;} + else if ( (LA30_76==TILDA) && (synpred11_FTS())) {s = 92;} + else if ( (LA30_76==CARAT) && (synpred11_FTS())) {s = 93;} + else if ( (LA30_76==AND) && (synpred11_FTS())) {s = 94;} + else if ( (LA30_76==AMP) && (synpred11_FTS())) {s = 95;} + else if ( (LA30_76==EOF) && (synpred11_FTS())) {s = 49;} + else if ( (LA30_76==RPAREN) && (synpred11_FTS())) {s = 50;} + else if ( (LA30_76==OR) && (synpred11_FTS())) {s = 51;} + else if ( (LA30_76==BAR) && (synpred11_FTS())) {s = 52;} + else if ( (LA30_76==NOT) && (synpred11_FTS())) {s = 53;} + else if ( (LA30_76==ID) && (synpred11_FTS())) {s = 54;} + else if ( (LA30_76==FTSWORD) && (synpred11_FTS())) {s = 55;} + else if ( (LA30_76==FTSPRE) && (synpred11_FTS())) {s = 56;} + else if ( (LA30_76==FTSWILD) && (synpred11_FTS())) {s = 57;} + else if ( (LA30_76==EXCLAMATION) && (synpred11_FTS())) {s = 58;} + else if ( (LA30_76==TO) && (synpred11_FTS())) {s = 59;} + else if ( (LA30_76==DECIMAL_INTEGER_LITERAL) && (synpred11_FTS())) {s = 60;} + else if ( (LA30_76==FLOATING_POINT_LITERAL) && (synpred11_FTS())) {s = 61;} + else if ( (LA30_76==DATETIME) && (synpred11_FTS())) {s = 62;} + else if ( (LA30_76==STAR) && (synpred11_FTS())) {s = 96;} + else if ( (LA30_76==URI) && (synpred11_FTS())) {s = 64;} + else if ( (LA30_76==AT) && (synpred11_FTS())) {s = 65;} + else if ( (LA30_76==FTSPHRASE) && (synpred11_FTS())) {s = 66;} + else if ( (LA30_76==LSQUARE) && (synpred11_FTS())) {s = 67;} + else if ( (LA30_76==LT) && (synpred11_FTS())) {s = 68;} + else if ( (LA30_76==QUESTION_MARK) && (synpred11_FTS())) {s = 69;} + else if ( (LA30_76==EQUALS) && (synpred11_FTS())) {s = 70;} + else if ( (LA30_76==LPAREN) && (synpred11_FTS())) {s = 71;} + else if ( (LA30_76==PERCENT) && (synpred11_FTS())) {s = 72;} + else if ( (LA30_76==PLUS) && (synpred11_FTS())) {s = 73;} + else if ( (LA30_76==MINUS) && (synpred11_FTS())) {s = 74;} + else if ( (LA30_76==DOTDOT) && (synpred11_FTS())) {s = 97;} - input.seek(index33_12); + input.seek(index30_76); if ( s>=0 ) return s; break; case 13 : - int LA33_52 = input.LA(1); + int LA30_129 = input.LA(1); - int index33_52 = input.index(); + int index30_129 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_52); + input.seek(index30_129); if ( s>=0 ) return s; break; case 14 : - int LA33_23 = input.LA(1); + int LA30_75 = input.LA(1); - int index33_23 = input.index(); + int index30_75 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} + if ( (synpred11_FTS()) ) {s = 88;} else if ( (true) ) {s = 9;} - input.seek(index33_23); + input.seek(index30_75); if ( s>=0 ) return s; break; case 15 : - int LA33_74 = input.LA(1); + int LA30_132 = input.LA(1); - int index33_74 = input.index(); + int index30_132 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_74); + input.seek(index30_132); if ( s>=0 ) return s; break; case 16 : - int LA33_13 = input.LA(1); + int LA30_27 = input.LA(1); - int index33_13 = input.index(); + int index30_27 = input.index(); input.rewind(); s = -1; - if ( (LA33_13==COLON) && (synpred13_FTS())) {s = 19;} - else if ( (LA33_13==EOF||(LA33_13 >= AMP && LA33_13 <= BAR)||LA33_13==CARAT||LA33_13==COMMA||LA33_13==DATETIME||LA33_13==DECIMAL_INTEGER_LITERAL||LA33_13==DOT||LA33_13==EQUALS||LA33_13==EXCLAMATION||LA33_13==FLOATING_POINT_LITERAL||(LA33_13 >= FTSPHRASE && LA33_13 <= FTSWORD)||LA33_13==ID||(LA33_13 >= LPAREN && LA33_13 <= LT)||LA33_13==MINUS||LA33_13==NOT||(LA33_13 >= OR && LA33_13 <= PERCENT)||LA33_13==PLUS||LA33_13==QUESTION_MARK||LA33_13==RPAREN||LA33_13==STAR||(LA33_13 >= TILDA && LA33_13 <= TO)||LA33_13==URI) ) {s = 9;} + if ( (LA30_27==COLON) && (synpred8_FTS())) {s = 43;} + else if ( (LA30_27==COMMA||LA30_27==DOT) && (synpred11_FTS())) {s = 44;} + else if ( (LA30_27==TILDA) && (synpred11_FTS())) {s = 45;} + else if ( (LA30_27==CARAT) && (synpred11_FTS())) {s = 46;} + else if ( (LA30_27==AND) && (synpred11_FTS())) {s = 47;} + else if ( (LA30_27==AMP) && (synpred11_FTS())) {s = 48;} + else if ( (LA30_27==EOF) && (synpred11_FTS())) {s = 49;} + else if ( (LA30_27==RPAREN) && (synpred11_FTS())) {s = 50;} + else if ( (LA30_27==OR) && (synpred11_FTS())) {s = 51;} + else if ( (LA30_27==BAR) && (synpred11_FTS())) {s = 52;} + else if ( (LA30_27==NOT) && (synpred11_FTS())) {s = 53;} + else if ( (LA30_27==ID) && (synpred11_FTS())) {s = 54;} + else if ( (LA30_27==FTSWORD) && (synpred11_FTS())) {s = 55;} + else if ( (LA30_27==FTSPRE) && (synpred11_FTS())) {s = 56;} + else if ( (LA30_27==FTSWILD) && (synpred11_FTS())) {s = 57;} + else if ( (LA30_27==EXCLAMATION) && (synpred11_FTS())) {s = 58;} + else if ( (LA30_27==TO) && (synpred11_FTS())) {s = 59;} + else if ( (LA30_27==DECIMAL_INTEGER_LITERAL) && (synpred11_FTS())) {s = 60;} + else if ( (LA30_27==FLOATING_POINT_LITERAL) && (synpred11_FTS())) {s = 61;} + else if ( (LA30_27==DATETIME) && (synpred11_FTS())) {s = 62;} + else if ( (LA30_27==STAR) && (synpred11_FTS())) {s = 63;} + else if ( (LA30_27==URI) && (synpred11_FTS())) {s = 64;} + else if ( (LA30_27==AT) && (synpred11_FTS())) {s = 65;} + else if ( (LA30_27==FTSPHRASE) && (synpred11_FTS())) {s = 66;} + else if ( (LA30_27==LSQUARE) && (synpred11_FTS())) {s = 67;} + else if ( (LA30_27==LT) && (synpred11_FTS())) {s = 68;} + else if ( (LA30_27==QUESTION_MARK) && (synpred11_FTS())) {s = 69;} + else if ( (LA30_27==EQUALS) && (synpred11_FTS())) {s = 70;} + else if ( (LA30_27==LPAREN) && (synpred11_FTS())) {s = 71;} + else if ( (LA30_27==PERCENT) && (synpred11_FTS())) {s = 72;} + else if ( (LA30_27==PLUS) && (synpred11_FTS())) {s = 73;} + else if ( (LA30_27==MINUS) && (synpred11_FTS())) {s = 74;} - input.seek(index33_13); + input.seek(index30_27); if ( s>=0 ) return s; break; case 17 : - int LA33_58 = input.LA(1); + int LA30_1 = input.LA(1); - int index33_58 = input.index(); + int index30_1 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_1==ID) ) {s = 10;} + else if ( (LA30_1==TO) ) {s = 11;} + else if ( (LA30_1==OR) ) {s = 4;} + else if ( (LA30_1==AND) ) {s = 5;} + else if ( (LA30_1==NOT) ) {s = 12;} + else if ( (LA30_1==URI) && (synpred11_FTS())) {s = 13;} - input.seek(index33_58); + input.seek(index30_1); if ( s>=0 ) return s; break; case 18 : - int LA33_27 = input.LA(1); + int LA30_136 = input.LA(1); - int index33_27 = input.index(); + int index30_136 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_27); + input.seek(index30_136); if ( s>=0 ) return s; break; case 19 : - int LA33_57 = input.LA(1); + int LA30_109 = input.LA(1); - int index33_57 = input.index(); + int index30_109 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_57); + input.seek(index30_109); if ( s>=0 ) return s; break; case 20 : - int LA33_69 = input.LA(1); + int LA30_110 = input.LA(1); - int index33_69 = input.index(); + int index30_110 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_69); + input.seek(index30_110); if ( s>=0 ) return s; break; case 21 : - int LA33_84 = input.LA(1); + int LA30_117 = input.LA(1); - int index33_84 = input.index(); + int index30_117 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_84); + input.seek(index30_117); if ( s>=0 ) return s; break; case 22 : - int LA33_44 = input.LA(1); + int LA30_99 = input.LA(1); - int index33_44 = input.index(); + int index30_99 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_44); + input.seek(index30_99); if ( s>=0 ) return s; break; case 23 : - int LA33_82 = input.LA(1); + int LA30_16 = input.LA(1); - int index33_82 = input.index(); + int index30_16 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_16==DOT) ) {s = 39;} + else if ( (LA30_16==COLON) && (synpred11_FTS())) {s = 40;} + else if ( (LA30_16==EOF||(LA30_16 >= AMP && LA30_16 <= BAR)||LA30_16==CARAT||LA30_16==COMMA||LA30_16==DATETIME||LA30_16==DECIMAL_INTEGER_LITERAL||LA30_16==EQUALS||LA30_16==EXCLAMATION||LA30_16==FLOATING_POINT_LITERAL||(LA30_16 >= FTSPHRASE && LA30_16 <= FTSWORD)||LA30_16==ID||(LA30_16 >= LPAREN && LA30_16 <= LT)||LA30_16==MINUS||LA30_16==NOT||(LA30_16 >= OR && LA30_16 <= PERCENT)||LA30_16==PLUS||LA30_16==QUESTION_MARK||LA30_16==RPAREN||LA30_16==STAR||(LA30_16 >= TILDA && LA30_16 <= TO)||LA30_16==URI) ) {s = 9;} - input.seek(index33_82); + input.seek(index30_16); if ( s>=0 ) return s; break; case 24 : - int LA33_35 = input.LA(1); + int LA30_24 = input.LA(1); - int index33_35 = input.index(); + int index30_24 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_24==COLON) && (synpred8_FTS())) {s = 43;} + else if ( (LA30_24==COMMA||LA30_24==DOT) && (synpred11_FTS())) {s = 44;} + else if ( (LA30_24==TILDA) && (synpred11_FTS())) {s = 45;} + else if ( (LA30_24==CARAT) && (synpred11_FTS())) {s = 46;} + else if ( (LA30_24==AND) && (synpred11_FTS())) {s = 47;} + else if ( (LA30_24==AMP) && (synpred11_FTS())) {s = 48;} + else if ( (LA30_24==EOF) && (synpred11_FTS())) {s = 49;} + else if ( (LA30_24==RPAREN) && (synpred11_FTS())) {s = 50;} + else if ( (LA30_24==OR) && (synpred11_FTS())) {s = 51;} + else if ( (LA30_24==BAR) && (synpred11_FTS())) {s = 52;} + else if ( (LA30_24==NOT) && (synpred11_FTS())) {s = 53;} + else if ( (LA30_24==ID) && (synpred11_FTS())) {s = 54;} + else if ( (LA30_24==FTSWORD) && (synpred11_FTS())) {s = 55;} + else if ( (LA30_24==FTSPRE) && (synpred11_FTS())) {s = 56;} + else if ( (LA30_24==FTSWILD) && (synpred11_FTS())) {s = 57;} + else if ( (LA30_24==EXCLAMATION) && (synpred11_FTS())) {s = 58;} + else if ( (LA30_24==TO) && (synpred11_FTS())) {s = 59;} + else if ( (LA30_24==DECIMAL_INTEGER_LITERAL) && (synpred11_FTS())) {s = 60;} + else if ( (LA30_24==FLOATING_POINT_LITERAL) && (synpred11_FTS())) {s = 61;} + else if ( (LA30_24==DATETIME) && (synpred11_FTS())) {s = 62;} + else if ( (LA30_24==STAR) && (synpred11_FTS())) {s = 63;} + else if ( (LA30_24==URI) && (synpred11_FTS())) {s = 64;} + else if ( (LA30_24==AT) && (synpred11_FTS())) {s = 65;} + else if ( (LA30_24==FTSPHRASE) && (synpred11_FTS())) {s = 66;} + else if ( (LA30_24==LSQUARE) && (synpred11_FTS())) {s = 67;} + else if ( (LA30_24==LT) && (synpred11_FTS())) {s = 68;} + else if ( (LA30_24==QUESTION_MARK) && (synpred11_FTS())) {s = 69;} + else if ( (LA30_24==EQUALS) && (synpred11_FTS())) {s = 70;} + else if ( (LA30_24==LPAREN) && (synpred11_FTS())) {s = 71;} + else if ( (LA30_24==PERCENT) && (synpred11_FTS())) {s = 72;} + else if ( (LA30_24==PLUS) && (synpred11_FTS())) {s = 73;} + else if ( (LA30_24==MINUS) && (synpred11_FTS())) {s = 74;} - input.seek(index33_35); + input.seek(index30_24); if ( s>=0 ) return s; break; case 25 : - int LA33_36 = input.LA(1); + int LA30_102 = input.LA(1); - int index33_36 = input.index(); + int index30_102 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_36); + input.seek(index30_102); if ( s>=0 ) return s; break; case 26 : - int LA33_42 = input.LA(1); + int LA30_90 = input.LA(1); - int index33_42 = input.index(); + int index30_90 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_90==LPAREN) && (synpred11_FTS())) {s = 98;} + else if ( (LA30_90==FTSPHRASE) ) {s = 99;} + else if ( (LA30_90==COMMA||LA30_90==DOT) ) {s = 100;} + else if ( (LA30_90==ID) ) {s = 101;} + else if ( (LA30_90==FTSWORD) ) {s = 102;} + else if ( (LA30_90==FTSPRE) ) {s = 103;} + else if ( (LA30_90==FTSWILD) ) {s = 104;} + else if ( (LA30_90==NOT) ) {s = 105;} + else if ( (LA30_90==TO) ) {s = 106;} + else if ( (LA30_90==DECIMAL_INTEGER_LITERAL) ) {s = 107;} + else if ( (LA30_90==FLOATING_POINT_LITERAL) ) {s = 108;} + else if ( (LA30_90==STAR) ) {s = 109;} + else if ( (LA30_90==QUESTION_MARK) ) {s = 110;} + else if ( (LA30_90==DATETIME) ) {s = 111;} + else if ( (LA30_90==URI) ) {s = 112;} + else if ( (LA30_90==OR) && (synpred11_FTS())) {s = 113;} + else if ( (LA30_90==AND) && (synpred11_FTS())) {s = 114;} + else if ( (LA30_90==LSQUARE) && (synpred11_FTS())) {s = 67;} + else if ( (LA30_90==LT) && (synpred11_FTS())) {s = 68;} - input.seek(index33_42); + input.seek(index30_90); if ( s>=0 ) return s; break; case 27 : - int LA33_67 = input.LA(1); + int LA30_119 = input.LA(1); - int index33_67 = input.index(); + int index30_119 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_67); + input.seek(index30_119); if ( s>=0 ) return s; break; case 28 : - int LA33_68 = input.LA(1); + int LA30_133 = input.LA(1); - int index33_68 = input.index(); + int index30_133 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_68); + input.seek(index30_133); if ( s>=0 ) return s; break; case 29 : - int LA33_79 = input.LA(1); + int LA30_111 = input.LA(1); - int index33_79 = input.index(); + int index30_111 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_79); + input.seek(index30_111); if ( s>=0 ) return s; break; case 30 : - int LA33_80 = input.LA(1); + int LA30_130 = input.LA(1); - int index33_80 = input.index(); + int index30_130 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_80); + input.seek(index30_130); if ( s>=0 ) return s; break; case 31 : - int LA33_29 = input.LA(1); + int LA30_118 = input.LA(1); - int index33_29 = input.index(); + int index30_118 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_29); + input.seek(index30_118); if ( s>=0 ) return s; break; case 32 : - int LA33_59 = input.LA(1); + int LA30_42 = input.LA(1); - int index33_59 = input.index(); + int index30_42 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_42==ID) ) {s = 76;} + else if ( (LA30_42==FTSWORD) && (synpred11_FTS())) {s = 77;} + else if ( (LA30_42==FTSPRE) && (synpred11_FTS())) {s = 78;} + else if ( (LA30_42==FTSWILD) && (synpred11_FTS())) {s = 79;} + else if ( (LA30_42==NOT) && (synpred11_FTS())) {s = 80;} + else if ( (LA30_42==TO) && (synpred11_FTS())) {s = 81;} + else if ( (LA30_42==DECIMAL_INTEGER_LITERAL) && (synpred11_FTS())) {s = 82;} + else if ( (LA30_42==FLOATING_POINT_LITERAL) && (synpred11_FTS())) {s = 83;} + else if ( (LA30_42==STAR) && (synpred11_FTS())) {s = 84;} + else if ( (LA30_42==QUESTION_MARK) && (synpred11_FTS())) {s = 85;} + else if ( (LA30_42==DATETIME) && (synpred11_FTS())) {s = 86;} + else if ( (LA30_42==URI) && (synpred11_FTS())) {s = 87;} + else if ( (LA30_42==TILDA) && (synpred11_FTS())) {s = 45;} + else if ( (LA30_42==CARAT) && (synpred11_FTS())) {s = 46;} + else if ( (LA30_42==AND) && (synpred11_FTS())) {s = 47;} + else if ( (LA30_42==AMP) && (synpred11_FTS())) {s = 48;} + else if ( (LA30_42==EOF) && (synpred11_FTS())) {s = 49;} + else if ( (LA30_42==RPAREN) && (synpred11_FTS())) {s = 50;} + else if ( (LA30_42==OR) && (synpred11_FTS())) {s = 51;} + else if ( (LA30_42==BAR) && (synpred11_FTS())) {s = 52;} + else if ( (LA30_42==EXCLAMATION) && (synpred11_FTS())) {s = 58;} + else if ( (LA30_42==AT) && (synpred11_FTS())) {s = 65;} + else if ( (LA30_42==FTSPHRASE) && (synpred11_FTS())) {s = 66;} + else if ( (LA30_42==LSQUARE) && (synpred11_FTS())) {s = 67;} + else if ( (LA30_42==LT) && (synpred11_FTS())) {s = 68;} + else if ( (LA30_42==COMMA||LA30_42==DOT) && (synpred11_FTS())) {s = 88;} + else if ( (LA30_42==EQUALS) && (synpred11_FTS())) {s = 70;} + else if ( (LA30_42==LPAREN) && (synpred11_FTS())) {s = 71;} + else if ( (LA30_42==PERCENT) && (synpred11_FTS())) {s = 72;} + else if ( (LA30_42==PLUS) && (synpred11_FTS())) {s = 73;} + else if ( (LA30_42==MINUS) && (synpred11_FTS())) {s = 74;} - input.seek(index33_59); + input.seek(index30_42); if ( s>=0 ) return s; break; case 33 : - int LA33_71 = input.LA(1); + int LA30_18 = input.LA(1); - int index33_71 = input.index(); + int index30_18 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_18==COLON) && (synpred11_FTS())) {s = 40;} + else if ( (LA30_18==EOF||(LA30_18 >= AMP && LA30_18 <= BAR)||LA30_18==CARAT||LA30_18==COMMA||LA30_18==DATETIME||LA30_18==DECIMAL_INTEGER_LITERAL||LA30_18==DOT||LA30_18==EQUALS||LA30_18==EXCLAMATION||LA30_18==FLOATING_POINT_LITERAL||(LA30_18 >= FTSPHRASE && LA30_18 <= FTSWORD)||LA30_18==ID||(LA30_18 >= LPAREN && LA30_18 <= LT)||LA30_18==MINUS||LA30_18==NOT||(LA30_18 >= OR && LA30_18 <= PERCENT)||LA30_18==PLUS||LA30_18==QUESTION_MARK||LA30_18==RPAREN||LA30_18==STAR||(LA30_18 >= TILDA && LA30_18 <= TO)||LA30_18==URI) ) {s = 9;} - input.seek(index33_71); + input.seek(index30_18); if ( s>=0 ) return s; break; case 34 : - int LA33_55 = input.LA(1); + int LA30_123 = input.LA(1); - int index33_55 = input.index(); + int index30_123 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_55); + input.seek(index30_123); if ( s>=0 ) return s; break; case 35 : - int LA33_31 = input.LA(1); + int LA30_17 = input.LA(1); - int index33_31 = input.index(); + int index30_17 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_17==COLON) && (synpred11_FTS())) {s = 40;} + else if ( (LA30_17==EOF||(LA30_17 >= AMP && LA30_17 <= BAR)||LA30_17==CARAT||LA30_17==COMMA||LA30_17==DATETIME||LA30_17==DECIMAL_INTEGER_LITERAL||LA30_17==DOT||LA30_17==EQUALS||LA30_17==EXCLAMATION||LA30_17==FLOATING_POINT_LITERAL||(LA30_17 >= FTSPHRASE && LA30_17 <= FTSWORD)||LA30_17==ID||(LA30_17 >= LPAREN && LA30_17 <= LT)||LA30_17==MINUS||LA30_17==NOT||(LA30_17 >= OR && LA30_17 <= PERCENT)||LA30_17==PLUS||LA30_17==QUESTION_MARK||LA30_17==RPAREN||LA30_17==STAR||(LA30_17 >= TILDA && LA30_17 <= TO)||LA30_17==URI) ) {s = 9;} - input.seek(index33_31); + input.seek(index30_17); if ( s>=0 ) return s; break; case 36 : - int LA33_61 = input.LA(1); + int LA30_131 = input.LA(1); - int index33_61 = input.index(); + int index30_131 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_61); + input.seek(index30_131); if ( s>=0 ) return s; break; case 37 : - int LA33_73 = input.LA(1); + int LA30_19 = input.LA(1); - int index33_73 = input.index(); + int index30_19 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_19==COLON) && (synpred11_FTS())) {s = 40;} + else if ( (LA30_19==EOF||(LA30_19 >= AMP && LA30_19 <= BAR)||LA30_19==CARAT||LA30_19==COMMA||LA30_19==DATETIME||LA30_19==DECIMAL_INTEGER_LITERAL||LA30_19==DOT||LA30_19==EQUALS||LA30_19==EXCLAMATION||LA30_19==FLOATING_POINT_LITERAL||(LA30_19 >= FTSPHRASE && LA30_19 <= FTSWORD)||LA30_19==ID||(LA30_19 >= LPAREN && LA30_19 <= LT)||LA30_19==MINUS||LA30_19==NOT||(LA30_19 >= OR && LA30_19 <= PERCENT)||LA30_19==PLUS||LA30_19==QUESTION_MARK||LA30_19==RPAREN||LA30_19==STAR||(LA30_19 >= TILDA && LA30_19 <= TO)||LA30_19==URI) ) {s = 9;} - input.seek(index33_73); + input.seek(index30_19); if ( s>=0 ) return s; break; case 38 : - int LA33_49 = input.LA(1); + int LA30_23 = input.LA(1); - int index33_49 = input.index(); + int index30_23 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_23==DOT) ) {s = 42;} + else if ( (LA30_23==COLON) && (synpred8_FTS())) {s = 43;} + else if ( (LA30_23==COMMA) && (synpred11_FTS())) {s = 44;} + else if ( (LA30_23==TILDA) && (synpred11_FTS())) {s = 45;} + else if ( (LA30_23==CARAT) && (synpred11_FTS())) {s = 46;} + else if ( (LA30_23==AND) && (synpred11_FTS())) {s = 47;} + else if ( (LA30_23==AMP) && (synpred11_FTS())) {s = 48;} + else if ( (LA30_23==EOF) && (synpred11_FTS())) {s = 49;} + else if ( (LA30_23==RPAREN) && (synpred11_FTS())) {s = 50;} + else if ( (LA30_23==OR) && (synpred11_FTS())) {s = 51;} + else if ( (LA30_23==BAR) && (synpred11_FTS())) {s = 52;} + else if ( (LA30_23==NOT) && (synpred11_FTS())) {s = 53;} + else if ( (LA30_23==ID) && (synpred11_FTS())) {s = 54;} + else if ( (LA30_23==FTSWORD) && (synpred11_FTS())) {s = 55;} + else if ( (LA30_23==FTSPRE) && (synpred11_FTS())) {s = 56;} + else if ( (LA30_23==FTSWILD) && (synpred11_FTS())) {s = 57;} + else if ( (LA30_23==EXCLAMATION) && (synpred11_FTS())) {s = 58;} + else if ( (LA30_23==TO) && (synpred11_FTS())) {s = 59;} + else if ( (LA30_23==DECIMAL_INTEGER_LITERAL) && (synpred11_FTS())) {s = 60;} + else if ( (LA30_23==FLOATING_POINT_LITERAL) && (synpred11_FTS())) {s = 61;} + else if ( (LA30_23==DATETIME) && (synpred11_FTS())) {s = 62;} + else if ( (LA30_23==STAR) && (synpred11_FTS())) {s = 63;} + else if ( (LA30_23==URI) && (synpred11_FTS())) {s = 64;} + else if ( (LA30_23==AT) && (synpred11_FTS())) {s = 65;} + else if ( (LA30_23==FTSPHRASE) && (synpred11_FTS())) {s = 66;} + else if ( (LA30_23==LSQUARE) && (synpred11_FTS())) {s = 67;} + else if ( (LA30_23==LT) && (synpred11_FTS())) {s = 68;} + else if ( (LA30_23==QUESTION_MARK) && (synpred11_FTS())) {s = 69;} + else if ( (LA30_23==EQUALS) && (synpred11_FTS())) {s = 70;} + else if ( (LA30_23==LPAREN) && (synpred11_FTS())) {s = 71;} + else if ( (LA30_23==PERCENT) && (synpred11_FTS())) {s = 72;} + else if ( (LA30_23==PLUS) && (synpred11_FTS())) {s = 73;} + else if ( (LA30_23==MINUS) && (synpred11_FTS())) {s = 74;} - input.seek(index33_49); + input.seek(index30_23); if ( s>=0 ) return s; break; case 39 : - int LA33_81 = input.LA(1); + int LA30_115 = input.LA(1); - int index33_81 = input.index(); + int index30_115 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_81); + input.seek(index30_115); if ( s>=0 ) return s; break; case 40 : - int LA33_70 = input.LA(1); + int LA30_22 = input.LA(1); - int index33_70 = input.index(); + int index30_22 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} + if ( (synpred8_FTS()) ) {s = 26;} + else if ( (synpred11_FTS()) ) {s = 40;} else if ( (true) ) {s = 9;} - input.seek(index33_70); + input.seek(index30_22); if ( s>=0 ) return s; break; case 41 : - int LA33_41 = input.LA(1); + int LA30_105 = input.LA(1); - int index33_41 = input.index(); + int index30_105 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_41); + input.seek(index30_105); if ( s>=0 ) return s; break; case 42 : - int LA33_54 = input.LA(1); + int LA30_120 = input.LA(1); - int index33_54 = input.index(); + int index30_120 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_54); + input.seek(index30_120); if ( s>=0 ) return s; break; case 43 : - int LA33_15 = input.LA(1); + int LA30_103 = input.LA(1); - int index33_15 = input.index(); + int index30_103 = input.index(); input.rewind(); s = -1; - if ( (LA33_15==COLON) && (synpred13_FTS())) {s = 19;} - else if ( (LA33_15==EOF||(LA33_15 >= AMP && LA33_15 <= BAR)||LA33_15==CARAT||LA33_15==COMMA||LA33_15==DATETIME||LA33_15==DECIMAL_INTEGER_LITERAL||LA33_15==DOT||LA33_15==EQUALS||LA33_15==EXCLAMATION||LA33_15==FLOATING_POINT_LITERAL||(LA33_15 >= FTSPHRASE && LA33_15 <= FTSWORD)||LA33_15==ID||(LA33_15 >= LPAREN && LA33_15 <= LT)||LA33_15==MINUS||LA33_15==NOT||(LA33_15 >= OR && LA33_15 <= PERCENT)||LA33_15==PLUS||LA33_15==QUESTION_MARK||LA33_15==RPAREN||LA33_15==STAR||(LA33_15 >= TILDA && LA33_15 <= TO)||LA33_15==URI) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_15); + input.seek(index30_103); if ( s>=0 ) return s; break; case 44 : - int LA33_14 = input.LA(1); + int LA30_134 = input.LA(1); - int index33_14 = input.index(); + int index30_134 = input.index(); input.rewind(); s = -1; - if ( (LA33_14==COLON) && (synpred13_FTS())) {s = 19;} - else if ( (LA33_14==EOF||(LA33_14 >= AMP && LA33_14 <= BAR)||LA33_14==CARAT||LA33_14==COMMA||LA33_14==DATETIME||LA33_14==DECIMAL_INTEGER_LITERAL||LA33_14==DOT||LA33_14==EQUALS||LA33_14==EXCLAMATION||LA33_14==FLOATING_POINT_LITERAL||(LA33_14 >= FTSPHRASE && LA33_14 <= FTSWORD)||LA33_14==ID||(LA33_14 >= LPAREN && LA33_14 <= LT)||LA33_14==MINUS||LA33_14==NOT||(LA33_14 >= OR && LA33_14 <= PERCENT)||LA33_14==PLUS||LA33_14==QUESTION_MARK||LA33_14==RPAREN||LA33_14==STAR||(LA33_14 >= TILDA && LA33_14 <= TO)||LA33_14==URI) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_14); + input.seek(index30_134); if ( s>=0 ) return s; break; case 45 : - int LA33_0 = input.LA(1); + int LA30_124 = input.LA(1); - int index33_0 = input.index(); + int index30_124 = input.index(); input.rewind(); s = -1; - if ( (LA33_0==AT) && (synpred13_FTS())) {s = 1;} - else if ( (LA33_0==ID) ) {s = 2;} - else if ( (LA33_0==TO) ) {s = 3;} - else if ( (LA33_0==OR) && (synpred13_FTS())) {s = 4;} - else if ( (LA33_0==AND) && (synpred13_FTS())) {s = 5;} - else if ( (LA33_0==NOT) ) {s = 6;} - else if ( (LA33_0==URI) ) {s = 7;} - else if ( (LA33_0==FTSPHRASE) ) {s = 8;} - else if ( (LA33_0==COMMA||LA33_0==DATETIME||LA33_0==DECIMAL_INTEGER_LITERAL||LA33_0==DOT||LA33_0==FLOATING_POINT_LITERAL||(LA33_0 >= FTSPRE && LA33_0 <= FTSWORD)||LA33_0==QUESTION_MARK||LA33_0==STAR) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_0); + input.seek(index30_124); if ( s>=0 ) return s; break; case 46 : - int LA33_26 = input.LA(1); + int LA30_20 = input.LA(1); - int index33_26 = input.index(); + int index30_20 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA30_20==COLON) && (synpred11_FTS())) {s = 40;} + else if ( (LA30_20==EOF||(LA30_20 >= AMP && LA30_20 <= BAR)||LA30_20==CARAT||LA30_20==COMMA||LA30_20==DATETIME||LA30_20==DECIMAL_INTEGER_LITERAL||LA30_20==DOT||LA30_20==EQUALS||LA30_20==EXCLAMATION||LA30_20==FLOATING_POINT_LITERAL||(LA30_20 >= FTSPHRASE && LA30_20 <= FTSWORD)||LA30_20==ID||(LA30_20 >= LPAREN && LA30_20 <= LT)||LA30_20==MINUS||LA30_20==NOT||(LA30_20 >= OR && LA30_20 <= PERCENT)||LA30_20==PLUS||LA30_20==QUESTION_MARK||LA30_20==RPAREN||LA30_20==STAR||(LA30_20 >= TILDA && LA30_20 <= TO)||LA30_20==URI) ) {s = 9;} - input.seek(index33_26); + input.seek(index30_20); if ( s>=0 ) return s; break; case 47 : - int LA33_46 = input.LA(1); + int LA30_107 = input.LA(1); - int index33_46 = input.index(); + int index30_107 = input.index(); input.rewind(); s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred8_FTS()) ) {s = 43;} + else if ( (synpred11_FTS()) ) {s = 114;} - input.seek(index33_46); - if ( s>=0 ) return s; - break; - - case 48 : - int LA33_33 = input.LA(1); - - int index33_33 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_33); - if ( s>=0 ) return s; - break; - - case 49 : - int LA33_65 = input.LA(1); - - int index33_65 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_65); - if ( s>=0 ) return s; - break; - - case 50 : - int LA33_77 = input.LA(1); - - int index33_77 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_77); - if ( s>=0 ) return s; - break; - - case 51 : - int LA33_22 = input.LA(1); - - int index33_22 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_22); - if ( s>=0 ) return s; - break; - - case 52 : - int LA33_50 = input.LA(1); - - int index33_50 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_50); - if ( s>=0 ) return s; - break; - - case 53 : - int LA33_6 = input.LA(1); - - int index33_6 = input.index(); - input.rewind(); - s = -1; - if ( (LA33_6==COLON) && (synpred13_FTS())) {s = 11;} - else if ( (LA33_6==EOF||(LA33_6 >= AMP && LA33_6 <= BAR)||LA33_6==CARAT||LA33_6==COMMA||LA33_6==DATETIME||LA33_6==DECIMAL_INTEGER_LITERAL||LA33_6==DOT||LA33_6==EQUALS||LA33_6==EXCLAMATION||LA33_6==FLOATING_POINT_LITERAL||(LA33_6 >= FTSPHRASE && LA33_6 <= FTSWORD)||LA33_6==ID||(LA33_6 >= LPAREN && LA33_6 <= LT)||LA33_6==MINUS||LA33_6==NOT||(LA33_6 >= OR && LA33_6 <= PERCENT)||LA33_6==PLUS||LA33_6==QUESTION_MARK||LA33_6==RPAREN||LA33_6==STAR||(LA33_6 >= TILDA && LA33_6 <= TO)||LA33_6==URI) ) {s = 9;} - - input.seek(index33_6); - if ( s>=0 ) return s; - break; - - case 54 : - int LA33_83 = input.LA(1); - - int index33_83 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_83); - if ( s>=0 ) return s; - break; - - case 55 : - int LA33_3 = input.LA(1); - - int index33_3 = input.index(); - input.rewind(); - s = -1; - if ( (LA33_3==COLON) && (synpred13_FTS())) {s = 11;} - else if ( (LA33_3==EOF||(LA33_3 >= AMP && LA33_3 <= BAR)||LA33_3==CARAT||LA33_3==COMMA||LA33_3==DATETIME||LA33_3==DECIMAL_INTEGER_LITERAL||LA33_3==DOT||LA33_3==EQUALS||LA33_3==EXCLAMATION||LA33_3==FLOATING_POINT_LITERAL||(LA33_3 >= FTSPHRASE && LA33_3 <= FTSWORD)||LA33_3==ID||(LA33_3 >= LPAREN && LA33_3 <= LT)||LA33_3==MINUS||LA33_3==NOT||(LA33_3 >= OR && LA33_3 <= PERCENT)||LA33_3==PLUS||LA33_3==QUESTION_MARK||LA33_3==RPAREN||LA33_3==STAR||(LA33_3 >= TILDA && LA33_3 <= TO)||LA33_3==URI) ) {s = 9;} - - input.seek(index33_3); - if ( s>=0 ) return s; - break; - - case 56 : - int LA33_63 = input.LA(1); - - int index33_63 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_63); - if ( s>=0 ) return s; - break; - - case 57 : - int LA33_75 = input.LA(1); - - int index33_75 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_75); - if ( s>=0 ) return s; - break; - - case 58 : - int LA33_2 = input.LA(1); - - int index33_2 = input.index(); - input.rewind(); - s = -1; - if ( (LA33_2==DOT) ) {s = 10;} - else if ( (LA33_2==COLON) && (synpred13_FTS())) {s = 11;} - else if ( (LA33_2==EOF||(LA33_2 >= AMP && LA33_2 <= BAR)||LA33_2==CARAT||LA33_2==COMMA||LA33_2==DATETIME||LA33_2==DECIMAL_INTEGER_LITERAL||LA33_2==EQUALS||LA33_2==EXCLAMATION||LA33_2==FLOATING_POINT_LITERAL||(LA33_2 >= FTSPHRASE && LA33_2 <= FTSWORD)||LA33_2==ID||(LA33_2 >= LPAREN && LA33_2 <= LT)||LA33_2==MINUS||LA33_2==NOT||(LA33_2 >= OR && LA33_2 <= PERCENT)||LA33_2==PLUS||LA33_2==QUESTION_MARK||LA33_2==RPAREN||LA33_2==STAR||(LA33_2 >= TILDA && LA33_2 <= TO)||LA33_2==URI) ) {s = 9;} - - input.seek(index33_2); - if ( s>=0 ) return s; - break; - - case 59 : - int LA33_56 = input.LA(1); - - int index33_56 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_56); - if ( s>=0 ) return s; - break; - - case 60 : - int LA33_48 = input.LA(1); - - int index33_48 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_48); - if ( s>=0 ) return s; - break; - - case 61 : - int LA33_43 = input.LA(1); - - int index33_43 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_43); - if ( s>=0 ) return s; - break; - - case 62 : - int LA33_16 = input.LA(1); - - int index33_16 = input.index(); - input.rewind(); - s = -1; - if ( (LA33_16==COLON) && (synpred13_FTS())) {s = 19;} - else if ( (LA33_16==EOF||(LA33_16 >= AMP && LA33_16 <= BAR)||LA33_16==CARAT||LA33_16==COMMA||LA33_16==DATETIME||LA33_16==DECIMAL_INTEGER_LITERAL||LA33_16==DOT||LA33_16==EQUALS||LA33_16==EXCLAMATION||LA33_16==FLOATING_POINT_LITERAL||(LA33_16 >= FTSPHRASE && LA33_16 <= FTSWORD)||LA33_16==ID||(LA33_16 >= LPAREN && LA33_16 <= LT)||LA33_16==MINUS||LA33_16==NOT||(LA33_16 >= OR && LA33_16 <= PERCENT)||LA33_16==PLUS||LA33_16==QUESTION_MARK||LA33_16==RPAREN||LA33_16==STAR||(LA33_16 >= TILDA && LA33_16 <= TO)||LA33_16==URI) ) {s = 9;} - - input.seek(index33_16); - if ( s>=0 ) return s; - break; - - case 63 : - int LA33_30 = input.LA(1); - - int index33_30 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_30); - if ( s>=0 ) return s; - break; - - case 64 : - int LA33_60 = input.LA(1); - - int index33_60 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_60); - if ( s>=0 ) return s; - break; - - case 65 : - int LA33_72 = input.LA(1); - - int index33_72 = input.index(); - input.rewind(); - s = -1; - if ( (synpred13_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index33_72); + input.seek(index30_107); if ( s>=0 ) return s; break; } if (state.backtracking>0) {state.failed=true; return -1;} NoViableAltException nvae = - new NoViableAltException(getDescription(), 33, _s, input); + new NoViableAltException(getDescription(), 30, _s, input); error(nvae); throw nvae; } } static final String DFA39_eotS = - "\126\uffff"; + "\u00e3\uffff"; static final String DFA39_eofS = - "\2\uffff\2\11\2\uffff\1\11\3\uffff\1\11\1\uffff\7\11\2\uffff\1\11\100"+ + "\2\uffff\2\11\2\uffff\1\11\7\uffff\1\11\1\uffff\5\11\1\uffff\1\11\2\62"+ + "\2\uffff\1\62\13\uffff\1\11\3\uffff\1\62\40\uffff\1\11\20\uffff\1\62\u0085"+ "\uffff"; static final String DFA39_minS = - "\1\5\1\uffff\2\4\2\uffff\1\4\1\5\2\uffff\1\4\1\uffff\7\4\1\uffff\1\5\1"+ - "\4\2\0\2\12\2\0\1\15\10\0\2\5\1\13\13\0\1\5\42\0"; + "\2\5\2\4\2\12\1\4\1\5\2\uffff\3\12\1\uffff\1\4\1\5\5\4\1\77\3\4\2\uffff"+ + "\1\4\13\uffff\1\4\1\uffff\1\12\1\5\1\4\40\uffff\1\4\5\12\1\0\1\15\10\0"+ + "\1\5\1\4\14\uffff\1\5\1\uffff\1\13\13\0\1\5\5\0\1\uffff\1\5\7\uffff\15"+ + "\0\1\15\13\0\1\5\5\0\1\uffff\1\0\1\15\13\0\1\5\2\uffff\13\0\1\5\20\0\1"+ + "\5\17\0"; static final String DFA39_maxS = - "\1\150\1\uffff\2\150\2\uffff\1\150\1\146\2\uffff\1\150\1\uffff\7\150\1"+ - "\uffff\2\150\2\0\2\12\2\0\1\150\10\0\1\146\2\150\13\0\1\146\42\0"; + "\4\150\2\12\1\150\1\146\2\uffff\1\25\2\12\1\uffff\7\150\1\77\3\150\2\uffff"+ + "\1\150\13\uffff\1\150\1\uffff\1\12\2\150\40\uffff\1\150\1\25\4\12\1\0"+ + "\1\150\10\0\1\146\1\150\14\uffff\1\150\1\uffff\1\150\13\0\1\146\5\0\1"+ + "\uffff\1\150\7\uffff\15\0\1\150\13\0\1\146\5\0\1\uffff\1\0\1\150\13\0"+ + "\1\146\2\uffff\13\0\1\146\20\0\1\146\17\0"; static final String DFA39_acceptS = - "\1\uffff\1\1\2\uffff\2\1\2\uffff\1\2\1\3\1\uffff\1\1\7\uffff\1\1\102\uffff"; + "\10\uffff\1\3\1\4\3\uffff\1\2\13\uffff\2\1\1\uffff\13\2\1\uffff\1\2\3"+ + "\uffff\1\1\37\2\22\uffff\14\2\1\uffff\1\1\22\uffff\1\2\1\uffff\7\2\37"+ + "\uffff\1\2\16\uffff\2\2\54\uffff"; static final String DFA39_specialS = - "\1\51\1\uffff\1\101\1\74\2\uffff\1\52\5\uffff\1\67\1\11\1\42\1\57\1\45"+ - "\5\uffff\1\35\1\2\2\uffff\1\3\1\60\1\uffff\1\30\1\13\1\53\1\4\1\76\1\36"+ - "\1\21\1\22\3\uffff\1\44\1\70\1\23\1\12\1\50\1\10\1\75\1\41\1\73\1\56\1"+ - "\16\1\uffff\1\64\1\43\1\71\1\33\1\72\1\61\1\46\1\31\1\14\1\54\1\34\1\0"+ - "\1\5\1\77\1\37\1\24\1\25\1\62\1\66\1\32\1\15\1\55\1\65\1\1\1\6\1\100\1"+ - "\40\1\26\1\27\1\63\1\20\1\17\1\47\1\7}>"; + "\1\uffff\1\126\15\uffff\1\70\1\125\1\33\1\32\1\35\1\55\2\uffff\1\75\1"+ + "\40\2\uffff\1\36\17\uffff\1\111\41\uffff\1\115\1\122\2\uffff\1\110\1\51"+ + "\1\uffff\1\170\1\2\1\23\1\46\1\73\1\116\1\130\1\163\1\uffff\1\21\17\uffff"+ + "\1\152\1\1\1\27\1\34\1\66\1\60\1\72\1\114\1\146\1\171\1\5\1\uffff\1\57"+ + "\1\53\1\105\1\127\1\150\1\uffff\1\6\7\uffff\1\52\1\143\1\172\1\3\1\24"+ + "\1\25\1\13\1\47\1\74\1\117\1\131\1\164\1\137\1\uffff\1\12\1\15\1\41\1"+ + "\65\1\64\1\61\1\112\1\135\1\154\1\173\1\22\1\uffff\1\156\1\123\1\120\1"+ + "\142\1\151\1\uffff\1\107\1\uffff\1\104\1\147\1\165\1\4\1\162\1\166\1\31"+ + "\1\50\1\76\1\77\1\144\3\uffff\1\14\1\43\1\71\1\103\1\100\1\121\1\134\1"+ + "\153\1\10\1\16\1\42\1\uffff\1\132\1\124\1\145\1\140\1\160\1\141\1\161"+ + "\1\0\1\26\1\45\1\62\1\56\1\101\1\113\1\136\1\167\1\uffff\1\157\1\11\1"+ + "\17\1\37\1\67\1\30\1\133\1\155\1\7\1\20\1\106\1\44\1\63\1\54\1\102}>"; static final String[] DFA39_transitionS = { "\1\5\1\1\4\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11\31\uffff"+ "\1\11\2\uffff\1\10\3\11\11\uffff\1\2\16\uffff\1\6\2\uffff\1\4\6\uffff"+ "\1\11\7\uffff\1\11\5\uffff\1\3\1\uffff\1\7", - "", - "\4\11\1\uffff\1\11\1\13\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\12"+ + "\1\5\71\uffff\1\12\16\uffff\1\14\2\uffff\1\4\24\uffff\1\13\1\uffff\1"+ + "\15", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\16"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\13\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "", - "", - "\4\11\1\uffff\1\11\1\13\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\1\17", + "\1\17", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\1\17\71\uffff\1\14\16\uffff\1\20\2\uffff\1\16\24\uffff\1\15", + "\1\23\71\uffff\1\20\16\uffff\1\24\2\uffff\1\22\24\uffff\1\21", "", "", + "\1\17\12\uffff\1\25", + "\1\17", + "\1\17", + "", "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ - "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\21"+ + "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\26"+ "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\22"+ + "\1\32\5\uffff\1\35\1\uffff\1\45\1\uffff\1\41\5\uffff\1\35\31\uffff\1"+ + "\42\2\uffff\1\34\1\37\1\40\1\36\11\uffff\1\27\16\uffff\1\33\2\uffff\1"+ + "\31\6\uffff\1\44\7\uffff\1\43\5\uffff\1\30\1\uffff\1\46", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\47"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\23\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", - "\4\11\1\uffff\1\11\1\24\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ + "\1\51", + "\4\11\1\uffff\1\11\1\52\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ "\1\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\54\1\55\1\uffff\1\77\1\uffff\1"+ + "\75\5\uffff\1\53\2\uffff\1\107\2\uffff\1\73\23\uffff\1\76\2\uffff\1\103"+ + "\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110\1\104\1\105\2\uffff\1\113"+ + "\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\106\2\uffff"+ + "\1\63\4\uffff\1\100\4\uffff\1\56\1\74\1\uffff\1\101", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\54\1\55\1\uffff\1\77\1\uffff\1"+ + "\75\5\uffff\1\55\2\uffff\1\107\2\uffff\1\73\23\uffff\1\76\2\uffff\1\103"+ + "\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110\1\104\1\105\2\uffff\1\113"+ + "\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\106\2\uffff"+ + "\1\63\4\uffff\1\100\4\uffff\1\56\1\74\1\uffff\1\101", + "", + "", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\54\1\55\1\uffff\1\77\1\uffff\1"+ + "\75\5\uffff\1\55\2\uffff\1\107\2\uffff\1\73\23\uffff\1\76\2\uffff\1\103"+ + "\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110\1\104\1\105\2\uffff\1\113"+ + "\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\106\2\uffff"+ + "\1\63\4\uffff\1\100\4\uffff\1\56\1\74\1\uffff\1\101", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ - "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\25"+ + "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\114"+ "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", "", - "\1\31\5\uffff\1\34\1\uffff\1\44\1\uffff\1\40\5\uffff\1\34\31\uffff\1"+ - "\41\2\uffff\1\33\1\36\1\37\1\35\11\uffff\1\26\3\uffff\3\11\10\uffff\1"+ - "\32\2\uffff\1\30\6\uffff\1\43\7\uffff\1\42\5\uffff\1\27\1\uffff\1\45", - "\4\11\1\uffff\1\11\1\46\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ + "\1\17", + "\1\120\5\uffff\1\123\1\uffff\1\133\1\uffff\1\127\5\uffff\1\123\31\uffff"+ + "\1\130\2\uffff\1\122\1\125\1\126\1\124\11\uffff\1\115\3\uffff\3\11\10"+ + "\uffff\1\121\2\uffff\1\117\6\uffff\1\132\7\uffff\1\131\5\uffff\1\116"+ + "\1\uffff\1\134", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\uffff\1\151\1\uffff\1\147\1\uffff"+ + "\1\143\5\uffff\1\151\2\uffff\1\107\2\uffff\1\73\23\uffff\1\144\2\uffff"+ + "\1\103\1\137\1\140\1\136\11\uffff\1\135\3\uffff\1\110\1\104\1\105\2\uffff"+ + "\1\113\5\uffff\1\141\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\146\2"+ + "\uffff\1\63\4\uffff\1\145\4\uffff\1\56\1\142\1\uffff\1\150", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\4\11\1\uffff\1\11\1\152\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ "\1\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\54\12\uffff\1\153", + "\1\54", + "\1\154", + "\1\154", + "\1\54", "\1\uffff", - "\1\uffff", - "\1\47", - "\1\47", - "\1\uffff", - "\1\uffff", - "\1\62\1\uffff\1\56\37\uffff\1\57\3\uffff\1\52\1\53\1\51\11\uffff\1\50"+ - "\16\uffff\1\54\11\uffff\1\61\7\uffff\1\60\5\uffff\1\55\1\uffff\1\63", + "\1\167\1\uffff\1\163\37\uffff\1\164\3\uffff\1\157\1\160\1\156\11\uffff"+ + "\1\155\16\uffff\1\161\11\uffff\1\166\7\uffff\1\165\5\uffff\1\162\1\uffff"+ + "\1\170", "\1\uffff", "\1\uffff", "\1\uffff", @@ -18660,14 +21147,34 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", - "\1\67\71\uffff\1\64\16\uffff\1\70\2\uffff\1\66\24\uffff\1\65", - "\1\11\5\uffff\1\34\1\uffff\1\104\1\uffff\1\100\5\uffff\1\34\31\uffff"+ - "\1\101\2\uffff\1\71\1\74\1\75\1\73\11\uffff\1\72\3\uffff\3\11\10\uffff"+ - "\1\76\2\uffff\1\11\6\uffff\1\103\7\uffff\1\102\5\uffff\1\77\1\uffff\1"+ - "\45", - "\1\34\1\uffff\1\120\1\uffff\1\114\5\uffff\1\34\31\uffff\1\115\2\uffff"+ - "\1\105\1\110\1\111\1\107\11\uffff\1\106\3\uffff\3\11\10\uffff\1\112\11"+ - "\uffff\1\117\7\uffff\1\116\5\uffff\1\113\1\uffff\1\45", + "\1\174\71\uffff\1\171\16\uffff\1\175\2\uffff\1\173\24\uffff\1\172", + "\1\u0084\1\u0083\1\102\1\65\1\uffff\1\u0082\1\177\1\u0080\1\uffff\1"+ + "\77\1\uffff\1\75\5\uffff\1\176\1\u0086\1\uffff\1\107\2\uffff\1\73\23"+ + "\uffff\1\76\2\uffff\1\103\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110"+ + "\1\104\1\105\2\uffff\1\113\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1"+ + "\112\3\uffff\1\106\2\uffff\1\63\4\uffff\1\u0085\4\uffff\1\u0081\1\74"+ + "\1\uffff\1\101", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\11\5\uffff\1\123\1\uffff\1\u0092\1\uffff\1\u008e\5\uffff\1\123\31"+ + "\uffff\1\u008f\2\uffff\1\u0087\1\u008a\1\u008b\1\u0089\11\uffff\1\u0088"+ + "\3\uffff\3\11\10\uffff\1\u008c\2\uffff\1\11\6\uffff\1\u0091\7\uffff\1"+ + "\u0090\5\uffff\1\u008d\1\uffff\1\134", + "", + "\1\u0094\1\uffff\1\u009f\1\uffff\1\u009b\5\uffff\1\u0094\31\uffff\1"+ + "\u009c\2\uffff\1\u0093\1\u0097\1\u0098\1\u0096\11\uffff\1\u0095\3\uffff"+ + "\3\11\10\uffff\1\u0099\11\uffff\1\u009e\7\uffff\1\u009d\5\uffff\1\u009a"+ + "\1\uffff\1\u00a0", "\1\uffff", "\1\uffff", "\1\uffff", @@ -18679,10 +21186,92 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", - "\1\124\71\uffff\1\121\16\uffff\1\125\2\uffff\1\123\24\uffff\1\122", - "\1\uffff", - "\1\uffff", - "\1\uffff", + "\1\u00a4\71\uffff\1\u00a1\16\uffff\1\u00a5\2\uffff\1\u00a3\24\uffff"+ + "\1\u00a2", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "\1\u00b6\5\uffff\1\u00a8\1\uffff\1\u00b3\1\uffff\1\u00af\5\uffff\1\u00a8"+ + "\31\uffff\1\u00b0\2\uffff\1\u00a7\1\u00ab\1\u00ac\1\u00aa\11\uffff\1"+ + "\u00a9\3\uffff\1\u00a6\1\104\1\105\10\uffff\1\u00ad\2\uffff\1\u00b5\6"+ + "\uffff\1\u00b2\7\uffff\1\u00b1\5\uffff\1\u00ae\1\uffff\1\u00b4", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00c1\1\uffff\1\u00bd\37\uffff\1\u00be\3\uffff\1\u00b9\1\u00ba\1"+ + "\u00b8\11\uffff\1\u00b7\16\uffff\1\u00bb\11\uffff\1\u00c0\7\uffff\1\u00bf"+ + "\5\uffff\1\u00bc\1\uffff\1\u00c2", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00c6\71\uffff\1\u00c3\16\uffff\1\u00c7\2\uffff\1\u00c5\24\uffff"+ + "\1\u00c4", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "\1\uffff", + "\1\u00d2\1\uffff\1\u00ce\37\uffff\1\u00cf\3\uffff\1\u00ca\1\u00cb\1"+ + "\u00c9\11\uffff\1\u00c8\16\uffff\1\u00cc\11\uffff\1\u00d1\7\uffff\1\u00d0"+ + "\5\uffff\1\u00cd\1\uffff\1\u00d3", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00d7\71\uffff\1\u00d4\16\uffff\1\u00d8\2\uffff\1\u00d6\24\uffff"+ + "\1\u00d5", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00dc\71\uffff\1\u00d9\16\uffff\1\u00dd\2\uffff\1\u00db\24\uffff"+ + "\1\u00da", "\1\uffff", "\1\uffff", "\1\uffff", @@ -18699,6 +21288,8 @@ public class FTSParser extends Parser { "\1\uffff", "\1\uffff", "\1\uffff", + "\1\u00e1\71\uffff\1\u00de\16\uffff\1\u00e2\2\uffff\1\u00e0\24\uffff"+ + "\1\u00df", "\1\uffff", "\1\uffff", "\1\uffff", @@ -18747,7 +21338,7 @@ public class FTSParser extends Parser { } @Override public String getDescription() { - return "556:9: ( ( fieldReference COLON )=> fieldReference COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReference ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReference ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) )"; + return "543:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) )"; } @Override public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { @@ -18755,869 +21346,1806 @@ public class FTSParser extends Parser { int _s = s; switch ( s ) { case 0 : - int LA39_63 = input.LA(1); + int LA39_202 = input.LA(1); - int index39_63 = input.index(); + int index39_202 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} - input.seek(index39_63); + input.seek(index39_202); if ( s>=0 ) return s; break; case 1 : - int LA39_75 = input.LA(1); + int LA39_110 = input.LA(1); - int index39_75 = input.index(); + int index39_110 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 134;} else if ( (true) ) {s = 9;} - input.seek(index39_75); + input.seek(index39_110); if ( s>=0 ) return s; break; case 2 : - int LA39_23 = input.LA(1); - - int index39_23 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_23); - if ( s>=0 ) return s; - break; - - case 3 : - int LA39_26 = input.LA(1); - - int index39_26 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_26); - if ( s>=0 ) return s; - break; - - case 4 : - int LA39_32 = input.LA(1); - - int index39_32 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_32); - if ( s>=0 ) return s; - break; - - case 5 : - int LA39_64 = input.LA(1); - - int index39_64 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_64); - if ( s>=0 ) return s; - break; - - case 6 : - int LA39_76 = input.LA(1); - - int index39_76 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_76); - if ( s>=0 ) return s; - break; - - case 7 : int LA39_85 = input.LA(1); int index39_85 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 105;} else if ( (true) ) {s = 9;} input.seek(index39_85); if ( s>=0 ) return s; break; - case 8 : - int LA39_45 = input.LA(1); + case 3 : + int LA39_138 = input.LA(1); - int index39_45 = input.index(); + int index39_138 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 182;} else if ( (true) ) {s = 9;} - input.seek(index39_45); + input.seek(index39_138); + if ( s>=0 ) return s; + break; + + case 4 : + int LA39_172 = input.LA(1); + + int index39_172 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_172); + if ( s>=0 ) return s; + break; + + case 5 : + int LA39_119 = input.LA(1); + + int index39_119 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_119); + if ( s>=0 ) return s; + break; + + case 6 : + int LA39_127 = input.LA(1); + + int index39_127 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_127==LPAREN) && (synpred19_FTS())) {s = 166;} + else if ( (LA39_127==FTSPHRASE) ) {s = 167;} + else if ( (LA39_127==COMMA||LA39_127==DOT) ) {s = 168;} + else if ( (LA39_127==ID) ) {s = 169;} + else if ( (LA39_127==FTSWORD) ) {s = 170;} + else if ( (LA39_127==FTSPRE) ) {s = 171;} + else if ( (LA39_127==FTSWILD) ) {s = 172;} + else if ( (LA39_127==NOT) ) {s = 173;} + else if ( (LA39_127==TO) ) {s = 174;} + else if ( (LA39_127==DECIMAL_INTEGER_LITERAL) ) {s = 175;} + else if ( (LA39_127==FLOATING_POINT_LITERAL) ) {s = 176;} + else if ( (LA39_127==STAR) ) {s = 177;} + else if ( (LA39_127==QUESTION_MARK) ) {s = 178;} + else if ( (LA39_127==DATETIME) ) {s = 179;} + else if ( (LA39_127==URI) ) {s = 180;} + else if ( (LA39_127==OR) && (synpred19_FTS())) {s = 181;} + else if ( (LA39_127==AND) && (synpred19_FTS())) {s = 182;} + else if ( (LA39_127==LSQUARE) && (synpred19_FTS())) {s = 68;} + else if ( (LA39_127==LT) && (synpred19_FTS())) {s = 69;} + + input.seek(index39_127); + if ( s>=0 ) return s; + break; + + case 7 : + int LA39_220 = input.LA(1); + + int index39_220 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_220); + if ( s>=0 ) return s; + break; + + case 8 : + int LA39_191 = input.LA(1); + + int index39_191 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_191); if ( s>=0 ) return s; break; case 9 : - int LA39_13 = input.LA(1); + int LA39_213 = input.LA(1); - int index39_13 = input.index(); + int index39_213 = input.index(); input.rewind(); s = -1; - if ( (LA39_13==COLON) && (synpred18_FTS())) {s = 19;} - else if ( (LA39_13==EOF||(LA39_13 >= AMP && LA39_13 <= BAR)||LA39_13==CARAT||LA39_13==COMMA||LA39_13==DATETIME||LA39_13==DECIMAL_INTEGER_LITERAL||LA39_13==DOT||LA39_13==EQUALS||LA39_13==EXCLAMATION||LA39_13==FLOATING_POINT_LITERAL||(LA39_13 >= FTSPHRASE && LA39_13 <= FTSWORD)||LA39_13==ID||(LA39_13 >= LPAREN && LA39_13 <= LT)||LA39_13==MINUS||LA39_13==NOT||(LA39_13 >= OR && LA39_13 <= PERCENT)||LA39_13==PLUS||LA39_13==QUESTION_MARK||LA39_13==RPAREN||LA39_13==STAR||(LA39_13 >= TILDA && LA39_13 <= TO)||LA39_13==URI) ) {s = 9;} + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} - input.seek(index39_13); + input.seek(index39_213); if ( s>=0 ) return s; break; case 10 : - int LA39_43 = input.LA(1); + int LA39_149 = input.LA(1); - int index39_43 = input.index(); + int index39_149 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred16_FTS()) ) {s = 107;} else if ( (true) ) {s = 9;} - input.seek(index39_43); + input.seek(index39_149); if ( s>=0 ) return s; break; case 11 : - int LA39_30 = input.LA(1); + int LA39_141 = input.LA(1); - int index39_30 = input.index(); + int index39_141 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 182;} else if ( (true) ) {s = 9;} - input.seek(index39_30); + input.seek(index39_141); if ( s>=0 ) return s; break; case 12 : - int LA39_60 = input.LA(1); + int LA39_183 = input.LA(1); - int index39_60 = input.index(); + int index39_183 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred16_FTS()) ) {s = 107;} else if ( (true) ) {s = 9;} - input.seek(index39_60); + input.seek(index39_183); if ( s>=0 ) return s; break; case 13 : - int LA39_72 = input.LA(1); + int LA39_150 = input.LA(1); - int index39_72 = input.index(); + int index39_150 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred16_FTS()) ) {s = 107;} else if ( (true) ) {s = 9;} - input.seek(index39_72); + input.seek(index39_150); if ( s>=0 ) return s; break; case 14 : - int LA39_50 = input.LA(1); + int LA39_192 = input.LA(1); - int index39_50 = input.index(); + int index39_192 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred16_FTS()) ) {s = 107;} else if ( (true) ) {s = 9;} - input.seek(index39_50); + input.seek(index39_192); if ( s>=0 ) return s; break; case 15 : - int LA39_83 = input.LA(1); + int LA39_214 = input.LA(1); - int index39_83 = input.index(); + int index39_214 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} - input.seek(index39_83); + input.seek(index39_214); if ( s>=0 ) return s; break; case 16 : + int LA39_221 = input.LA(1); + + int index39_221 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_221); + if ( s>=0 ) return s; + break; + + case 17 : + int LA39_93 = input.LA(1); + + int index39_93 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_93==DOT) && (synpred19_FTS())) {s = 126;} + else if ( (LA39_93==COLON) ) {s = 127;} + else if ( (LA39_93==COMMA) && (synpred19_FTS())) {s = 128;} + else if ( (LA39_93==TILDA) && (synpred19_FTS())) {s = 129;} + else if ( (LA39_93==CARAT) && (synpred19_FTS())) {s = 130;} + else if ( (LA39_93==AND) && (synpred19_FTS())) {s = 131;} + else if ( (LA39_93==AMP) && (synpred19_FTS())) {s = 132;} + else if ( (LA39_93==EOF) && (synpred19_FTS())) {s = 50;} + else if ( (LA39_93==RPAREN) && (synpred19_FTS())) {s = 51;} + else if ( (LA39_93==OR) && (synpred19_FTS())) {s = 52;} + else if ( (LA39_93==BAR) && (synpred19_FTS())) {s = 53;} + else if ( (LA39_93==NOT) && (synpred19_FTS())) {s = 54;} + else if ( (LA39_93==ID) && (synpred19_FTS())) {s = 55;} + else if ( (LA39_93==FTSWORD) && (synpred19_FTS())) {s = 56;} + else if ( (LA39_93==FTSPRE) && (synpred19_FTS())) {s = 57;} + else if ( (LA39_93==FTSWILD) && (synpred19_FTS())) {s = 58;} + else if ( (LA39_93==EXCLAMATION) && (synpred19_FTS())) {s = 59;} + else if ( (LA39_93==TO) && (synpred19_FTS())) {s = 60;} + else if ( (LA39_93==DECIMAL_INTEGER_LITERAL) && (synpred19_FTS())) {s = 61;} + else if ( (LA39_93==FLOATING_POINT_LITERAL) && (synpred19_FTS())) {s = 62;} + else if ( (LA39_93==DATETIME) && (synpred19_FTS())) {s = 63;} + else if ( (LA39_93==STAR) && (synpred19_FTS())) {s = 133;} + else if ( (LA39_93==URI) && (synpred19_FTS())) {s = 65;} + else if ( (LA39_93==AT) && (synpred19_FTS())) {s = 66;} + else if ( (LA39_93==FTSPHRASE) && (synpred19_FTS())) {s = 67;} + else if ( (LA39_93==LSQUARE) && (synpred19_FTS())) {s = 68;} + else if ( (LA39_93==LT) && (synpred19_FTS())) {s = 69;} + else if ( (LA39_93==QUESTION_MARK) && (synpred19_FTS())) {s = 70;} + else if ( (LA39_93==EQUALS) && (synpred19_FTS())) {s = 71;} + else if ( (LA39_93==LPAREN) && (synpred19_FTS())) {s = 72;} + else if ( (LA39_93==PERCENT) && (synpred19_FTS())) {s = 73;} + else if ( (LA39_93==PLUS) && (synpred19_FTS())) {s = 74;} + else if ( (LA39_93==MINUS) && (synpred19_FTS())) {s = 75;} + else if ( (LA39_93==DOTDOT) && (synpred19_FTS())) {s = 134;} + + input.seek(index39_93); + if ( s>=0 ) return s; + break; + + case 18 : + int LA39_159 = input.LA(1); + + int index39_159 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_159); + if ( s>=0 ) return s; + break; + + case 19 : + int LA39_86 = input.LA(1); + + int index39_86 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index39_86); + if ( s>=0 ) return s; + break; + + case 20 : + int LA39_139 = input.LA(1); + + int index39_139 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_139); + if ( s>=0 ) return s; + break; + + case 21 : + int LA39_140 = input.LA(1); + + int index39_140 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_140); + if ( s>=0 ) return s; + break; + + case 22 : + int LA39_203 = input.LA(1); + + int index39_203 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_203); + if ( s>=0 ) return s; + break; + + case 23 : + int LA39_111 = input.LA(1); + + int index39_111 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_111); + if ( s>=0 ) return s; + break; + + case 24 : + int LA39_217 = input.LA(1); + + int index39_217 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_217); + if ( s>=0 ) return s; + break; + + case 25 : + int LA39_175 = input.LA(1); + + int index39_175 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_175); + if ( s>=0 ) return s; + break; + + case 26 : + int LA39_18 = input.LA(1); + + int index39_18 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_18==COLON) && (synpred19_FTS())) {s = 40;} + else if ( (LA39_18==EOF||(LA39_18 >= AMP && LA39_18 <= BAR)||LA39_18==CARAT||LA39_18==COMMA||LA39_18==DATETIME||LA39_18==DECIMAL_INTEGER_LITERAL||LA39_18==DOT||LA39_18==EQUALS||LA39_18==EXCLAMATION||LA39_18==FLOATING_POINT_LITERAL||(LA39_18 >= FTSPHRASE && LA39_18 <= FTSWORD)||LA39_18==ID||(LA39_18 >= LPAREN && LA39_18 <= LT)||LA39_18==MINUS||LA39_18==NOT||(LA39_18 >= OR && LA39_18 <= PERCENT)||LA39_18==PLUS||LA39_18==QUESTION_MARK||LA39_18==RPAREN||LA39_18==STAR||(LA39_18 >= TILDA && LA39_18 <= TO)||LA39_18==URI) ) {s = 9;} + + input.seek(index39_18); + if ( s>=0 ) return s; + break; + + case 27 : + int LA39_17 = input.LA(1); + + int index39_17 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_17==COLON) && (synpred19_FTS())) {s = 40;} + else if ( (LA39_17==EOF||(LA39_17 >= AMP && LA39_17 <= BAR)||LA39_17==CARAT||LA39_17==COMMA||LA39_17==DATETIME||LA39_17==DECIMAL_INTEGER_LITERAL||LA39_17==DOT||LA39_17==EQUALS||LA39_17==EXCLAMATION||LA39_17==FLOATING_POINT_LITERAL||(LA39_17 >= FTSPHRASE && LA39_17 <= FTSWORD)||LA39_17==ID||(LA39_17 >= LPAREN && LA39_17 <= LT)||LA39_17==MINUS||LA39_17==NOT||(LA39_17 >= OR && LA39_17 <= PERCENT)||LA39_17==PLUS||LA39_17==QUESTION_MARK||LA39_17==RPAREN||LA39_17==STAR||(LA39_17 >= TILDA && LA39_17 <= TO)||LA39_17==URI) ) {s = 9;} + + input.seek(index39_17); + if ( s>=0 ) return s; + break; + + case 28 : + int LA39_112 = input.LA(1); + + int index39_112 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_112); + if ( s>=0 ) return s; + break; + + case 29 : + int LA39_19 = input.LA(1); + + int index39_19 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_19==COLON) && (synpred19_FTS())) {s = 40;} + else if ( (LA39_19==EOF||(LA39_19 >= AMP && LA39_19 <= BAR)||LA39_19==CARAT||LA39_19==COMMA||LA39_19==DATETIME||LA39_19==DECIMAL_INTEGER_LITERAL||LA39_19==DOT||LA39_19==EQUALS||LA39_19==EXCLAMATION||LA39_19==FLOATING_POINT_LITERAL||(LA39_19 >= FTSPHRASE && LA39_19 <= FTSWORD)||LA39_19==ID||(LA39_19 >= LPAREN && LA39_19 <= LT)||LA39_19==MINUS||LA39_19==NOT||(LA39_19 >= OR && LA39_19 <= PERCENT)||LA39_19==PLUS||LA39_19==QUESTION_MARK||LA39_19==RPAREN||LA39_19==STAR||(LA39_19 >= TILDA && LA39_19 <= TO)||LA39_19==URI) ) {s = 9;} + + input.seek(index39_19); + if ( s>=0 ) return s; + break; + + case 30 : + int LA39_27 = input.LA(1); + + int index39_27 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_27==COLON) && (synpred16_FTS())) {s = 44;} + else if ( (LA39_27==COMMA||LA39_27==DOT) && (synpred19_FTS())) {s = 45;} + else if ( (LA39_27==TILDA) && (synpred19_FTS())) {s = 46;} + else if ( (LA39_27==CARAT) && (synpred19_FTS())) {s = 47;} + else if ( (LA39_27==AND) && (synpred19_FTS())) {s = 48;} + else if ( (LA39_27==AMP) && (synpred19_FTS())) {s = 49;} + else if ( (LA39_27==EOF) && (synpred19_FTS())) {s = 50;} + else if ( (LA39_27==RPAREN) && (synpred19_FTS())) {s = 51;} + else if ( (LA39_27==OR) && (synpred19_FTS())) {s = 52;} + else if ( (LA39_27==BAR) && (synpred19_FTS())) {s = 53;} + else if ( (LA39_27==NOT) && (synpred19_FTS())) {s = 54;} + else if ( (LA39_27==ID) && (synpred19_FTS())) {s = 55;} + else if ( (LA39_27==FTSWORD) && (synpred19_FTS())) {s = 56;} + else if ( (LA39_27==FTSPRE) && (synpred19_FTS())) {s = 57;} + else if ( (LA39_27==FTSWILD) && (synpred19_FTS())) {s = 58;} + else if ( (LA39_27==EXCLAMATION) && (synpred19_FTS())) {s = 59;} + else if ( (LA39_27==TO) && (synpred19_FTS())) {s = 60;} + else if ( (LA39_27==DECIMAL_INTEGER_LITERAL) && (synpred19_FTS())) {s = 61;} + else if ( (LA39_27==FLOATING_POINT_LITERAL) && (synpred19_FTS())) {s = 62;} + else if ( (LA39_27==DATETIME) && (synpred19_FTS())) {s = 63;} + else if ( (LA39_27==STAR) && (synpred19_FTS())) {s = 64;} + else if ( (LA39_27==URI) && (synpred19_FTS())) {s = 65;} + else if ( (LA39_27==AT) && (synpred19_FTS())) {s = 66;} + else if ( (LA39_27==FTSPHRASE) && (synpred19_FTS())) {s = 67;} + else if ( (LA39_27==LSQUARE) && (synpred19_FTS())) {s = 68;} + else if ( (LA39_27==LT) && (synpred19_FTS())) {s = 69;} + else if ( (LA39_27==QUESTION_MARK) && (synpred19_FTS())) {s = 70;} + else if ( (LA39_27==EQUALS) && (synpred19_FTS())) {s = 71;} + else if ( (LA39_27==LPAREN) && (synpred19_FTS())) {s = 72;} + else if ( (LA39_27==PERCENT) && (synpred19_FTS())) {s = 73;} + else if ( (LA39_27==PLUS) && (synpred19_FTS())) {s = 74;} + else if ( (LA39_27==MINUS) && (synpred19_FTS())) {s = 75;} + + input.seek(index39_27); + if ( s>=0 ) return s; + break; + + case 31 : + int LA39_215 = input.LA(1); + + int index39_215 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_215); + if ( s>=0 ) return s; + break; + + case 32 : + int LA39_24 = input.LA(1); + + int index39_24 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_24==COLON) && (synpred16_FTS())) {s = 44;} + else if ( (LA39_24==COMMA||LA39_24==DOT) && (synpred19_FTS())) {s = 45;} + else if ( (LA39_24==TILDA) && (synpred19_FTS())) {s = 46;} + else if ( (LA39_24==CARAT) && (synpred19_FTS())) {s = 47;} + else if ( (LA39_24==AND) && (synpred19_FTS())) {s = 48;} + else if ( (LA39_24==AMP) && (synpred19_FTS())) {s = 49;} + else if ( (LA39_24==EOF) && (synpred19_FTS())) {s = 50;} + else if ( (LA39_24==RPAREN) && (synpred19_FTS())) {s = 51;} + else if ( (LA39_24==OR) && (synpred19_FTS())) {s = 52;} + else if ( (LA39_24==BAR) && (synpred19_FTS())) {s = 53;} + else if ( (LA39_24==NOT) && (synpred19_FTS())) {s = 54;} + else if ( (LA39_24==ID) && (synpred19_FTS())) {s = 55;} + else if ( (LA39_24==FTSWORD) && (synpred19_FTS())) {s = 56;} + else if ( (LA39_24==FTSPRE) && (synpred19_FTS())) {s = 57;} + else if ( (LA39_24==FTSWILD) && (synpred19_FTS())) {s = 58;} + else if ( (LA39_24==EXCLAMATION) && (synpred19_FTS())) {s = 59;} + else if ( (LA39_24==TO) && (synpred19_FTS())) {s = 60;} + else if ( (LA39_24==DECIMAL_INTEGER_LITERAL) && (synpred19_FTS())) {s = 61;} + else if ( (LA39_24==FLOATING_POINT_LITERAL) && (synpred19_FTS())) {s = 62;} + else if ( (LA39_24==DATETIME) && (synpred19_FTS())) {s = 63;} + else if ( (LA39_24==STAR) && (synpred19_FTS())) {s = 64;} + else if ( (LA39_24==URI) && (synpred19_FTS())) {s = 65;} + else if ( (LA39_24==AT) && (synpred19_FTS())) {s = 66;} + else if ( (LA39_24==FTSPHRASE) && (synpred19_FTS())) {s = 67;} + else if ( (LA39_24==LSQUARE) && (synpred19_FTS())) {s = 68;} + else if ( (LA39_24==LT) && (synpred19_FTS())) {s = 69;} + else if ( (LA39_24==QUESTION_MARK) && (synpred19_FTS())) {s = 70;} + else if ( (LA39_24==EQUALS) && (synpred19_FTS())) {s = 71;} + else if ( (LA39_24==LPAREN) && (synpred19_FTS())) {s = 72;} + else if ( (LA39_24==PERCENT) && (synpred19_FTS())) {s = 73;} + else if ( (LA39_24==PLUS) && (synpred19_FTS())) {s = 74;} + else if ( (LA39_24==MINUS) && (synpred19_FTS())) {s = 75;} + + input.seek(index39_24); + if ( s>=0 ) return s; + break; + + case 33 : + int LA39_151 = input.LA(1); + + int index39_151 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_151); + if ( s>=0 ) return s; + break; + + case 34 : + int LA39_193 = input.LA(1); + + int index39_193 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_193); + if ( s>=0 ) return s; + break; + + case 35 : + int LA39_184 = input.LA(1); + + int index39_184 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_184); + if ( s>=0 ) return s; + break; + + case 36 : + int LA39_223 = input.LA(1); + + int index39_223 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_223); + if ( s>=0 ) return s; + break; + + case 37 : + int LA39_204 = input.LA(1); + + int index39_204 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_204); + if ( s>=0 ) return s; + break; + + case 38 : + int LA39_87 = input.LA(1); + + int index39_87 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index39_87); + if ( s>=0 ) return s; + break; + + case 39 : + int LA39_142 = input.LA(1); + + int index39_142 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_142); + if ( s>=0 ) return s; + break; + + case 40 : + int LA39_176 = input.LA(1); + + int index39_176 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_176); + if ( s>=0 ) return s; + break; + + case 41 : int LA39_82 = input.LA(1); int index39_82 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 105;} else if ( (true) ) {s = 9;} input.seek(index39_82); if ( s>=0 ) return s; break; - case 17 : - int LA39_35 = input.LA(1); - - int index39_35 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_35); - if ( s>=0 ) return s; - break; - - case 18 : - int LA39_36 = input.LA(1); - - int index39_36 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_36); - if ( s>=0 ) return s; - break; - - case 19 : - int LA39_42 = input.LA(1); - - int index39_42 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_42); - if ( s>=0 ) return s; - break; - - case 20 : - int LA39_67 = input.LA(1); - - int index39_67 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_67); - if ( s>=0 ) return s; - break; - - case 21 : - int LA39_68 = input.LA(1); - - int index39_68 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_68); - if ( s>=0 ) return s; - break; - - case 22 : - int LA39_79 = input.LA(1); - - int index39_79 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_79); - if ( s>=0 ) return s; - break; - - case 23 : - int LA39_80 = input.LA(1); - - int index39_80 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_80); - if ( s>=0 ) return s; - break; - - case 24 : - int LA39_29 = input.LA(1); - - int index39_29 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_29); - if ( s>=0 ) return s; - break; - - case 25 : - int LA39_59 = input.LA(1); - - int index39_59 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_59); - if ( s>=0 ) return s; - break; - - case 26 : - int LA39_71 = input.LA(1); - - int index39_71 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_71); - if ( s>=0 ) return s; - break; - - case 27 : - int LA39_55 = input.LA(1); - - int index39_55 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_55); - if ( s>=0 ) return s; - break; - - case 28 : - int LA39_62 = input.LA(1); - - int index39_62 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_62); - if ( s>=0 ) return s; - break; - - case 29 : - int LA39_22 = input.LA(1); - - int index39_22 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_22); - if ( s>=0 ) return s; - break; - - case 30 : - int LA39_34 = input.LA(1); - - int index39_34 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_34); - if ( s>=0 ) return s; - break; - - case 31 : - int LA39_66 = input.LA(1); - - int index39_66 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_66); - if ( s>=0 ) return s; - break; - - case 32 : - int LA39_78 = input.LA(1); - - int index39_78 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_78); - if ( s>=0 ) return s; - break; - - case 33 : - int LA39_47 = input.LA(1); - - int index39_47 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_47); - if ( s>=0 ) return s; - break; - - case 34 : - int LA39_14 = input.LA(1); - - int index39_14 = input.index(); - input.rewind(); - s = -1; - if ( (LA39_14==COLON) && (synpred18_FTS())) {s = 19;} - else if ( (LA39_14==EOF||(LA39_14 >= AMP && LA39_14 <= BAR)||LA39_14==CARAT||LA39_14==COMMA||LA39_14==DATETIME||LA39_14==DECIMAL_INTEGER_LITERAL||LA39_14==DOT||LA39_14==EQUALS||LA39_14==EXCLAMATION||LA39_14==FLOATING_POINT_LITERAL||(LA39_14 >= FTSPHRASE && LA39_14 <= FTSWORD)||LA39_14==ID||(LA39_14 >= LPAREN && LA39_14 <= LT)||LA39_14==MINUS||LA39_14==NOT||(LA39_14 >= OR && LA39_14 <= PERCENT)||LA39_14==PLUS||LA39_14==QUESTION_MARK||LA39_14==RPAREN||LA39_14==STAR||(LA39_14 >= TILDA && LA39_14 <= TO)||LA39_14==URI) ) {s = 9;} - - input.seek(index39_14); - if ( s>=0 ) return s; - break; - - case 35 : - int LA39_53 = input.LA(1); - - int index39_53 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_53); - if ( s>=0 ) return s; - break; - - case 36 : - int LA39_40 = input.LA(1); - - int index39_40 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_40); - if ( s>=0 ) return s; - break; - - case 37 : - int LA39_16 = input.LA(1); - - int index39_16 = input.index(); - input.rewind(); - s = -1; - if ( (LA39_16==COLON) && (synpred18_FTS())) {s = 19;} - else if ( (LA39_16==EOF||(LA39_16 >= AMP && LA39_16 <= BAR)||LA39_16==CARAT||LA39_16==COMMA||LA39_16==DATETIME||LA39_16==DECIMAL_INTEGER_LITERAL||LA39_16==DOT||LA39_16==EQUALS||LA39_16==EXCLAMATION||LA39_16==FLOATING_POINT_LITERAL||(LA39_16 >= FTSPHRASE && LA39_16 <= FTSWORD)||LA39_16==ID||(LA39_16 >= LPAREN && LA39_16 <= LT)||LA39_16==MINUS||LA39_16==NOT||(LA39_16 >= OR && LA39_16 <= PERCENT)||LA39_16==PLUS||LA39_16==QUESTION_MARK||LA39_16==RPAREN||LA39_16==STAR||(LA39_16 >= TILDA && LA39_16 <= TO)||LA39_16==URI) ) {s = 9;} - - input.seek(index39_16); - if ( s>=0 ) return s; - break; - - case 38 : - int LA39_58 = input.LA(1); - - int index39_58 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_58); - if ( s>=0 ) return s; - break; - - case 39 : - int LA39_84 = input.LA(1); - - int index39_84 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_84); - if ( s>=0 ) return s; - break; - - case 40 : - int LA39_44 = input.LA(1); - - int index39_44 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_44); - if ( s>=0 ) return s; - break; - - case 41 : - int LA39_0 = input.LA(1); - - int index39_0 = input.index(); - input.rewind(); - s = -1; - if ( (LA39_0==AT) && (synpred18_FTS())) {s = 1;} - else if ( (LA39_0==ID) ) {s = 2;} - else if ( (LA39_0==TO) ) {s = 3;} - else if ( (LA39_0==OR) && (synpred18_FTS())) {s = 4;} - else if ( (LA39_0==AND) && (synpred18_FTS())) {s = 5;} - else if ( (LA39_0==NOT) ) {s = 6;} - else if ( (LA39_0==URI) ) {s = 7;} - else if ( (LA39_0==FTSPHRASE) ) {s = 8;} - else if ( (LA39_0==COMMA||LA39_0==DATETIME||LA39_0==DECIMAL_INTEGER_LITERAL||LA39_0==DOT||LA39_0==FLOATING_POINT_LITERAL||(LA39_0 >= FTSPRE && LA39_0 <= FTSWORD)||LA39_0==QUESTION_MARK||LA39_0==STAR) ) {s = 9;} - - input.seek(index39_0); - if ( s>=0 ) return s; - break; - case 42 : - int LA39_6 = input.LA(1); + int LA39_135 = input.LA(1); - int index39_6 = input.index(); + int index39_135 = input.index(); input.rewind(); s = -1; - if ( (LA39_6==COLON) && (synpred18_FTS())) {s = 11;} - else if ( (LA39_6==EOF||(LA39_6 >= AMP && LA39_6 <= BAR)||LA39_6==CARAT||LA39_6==COMMA||LA39_6==DATETIME||LA39_6==DECIMAL_INTEGER_LITERAL||LA39_6==DOT||LA39_6==EQUALS||LA39_6==EXCLAMATION||LA39_6==FLOATING_POINT_LITERAL||(LA39_6 >= FTSPHRASE && LA39_6 <= FTSWORD)||LA39_6==ID||(LA39_6 >= LPAREN && LA39_6 <= LT)||LA39_6==MINUS||LA39_6==NOT||(LA39_6 >= OR && LA39_6 <= PERCENT)||LA39_6==PLUS||LA39_6==QUESTION_MARK||LA39_6==RPAREN||LA39_6==STAR||(LA39_6 >= TILDA && LA39_6 <= TO)||LA39_6==URI) ) {s = 9;} + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} - input.seek(index39_6); + input.seek(index39_135); if ( s>=0 ) return s; break; case 43 : - int LA39_31 = input.LA(1); + int LA39_122 = input.LA(1); - int index39_31 = input.index(); + int index39_122 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 134;} else if ( (true) ) {s = 9;} - input.seek(index39_31); + input.seek(index39_122); if ( s>=0 ) return s; break; case 44 : - int LA39_61 = input.LA(1); + int LA39_225 = input.LA(1); - int index39_61 = input.index(); + int index39_225 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} - input.seek(index39_61); + input.seek(index39_225); if ( s>=0 ) return s; break; case 45 : - int LA39_73 = input.LA(1); + int LA39_20 = input.LA(1); - int index39_73 = input.index(); + int index39_20 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (LA39_20==COLON) && (synpred19_FTS())) {s = 40;} + else if ( (LA39_20==EOF||(LA39_20 >= AMP && LA39_20 <= BAR)||LA39_20==CARAT||LA39_20==COMMA||LA39_20==DATETIME||LA39_20==DECIMAL_INTEGER_LITERAL||LA39_20==DOT||LA39_20==EQUALS||LA39_20==EXCLAMATION||LA39_20==FLOATING_POINT_LITERAL||(LA39_20 >= FTSPHRASE && LA39_20 <= FTSWORD)||LA39_20==ID||(LA39_20 >= LPAREN && LA39_20 <= LT)||LA39_20==MINUS||LA39_20==NOT||(LA39_20 >= OR && LA39_20 <= PERCENT)||LA39_20==PLUS||LA39_20==QUESTION_MARK||LA39_20==RPAREN||LA39_20==STAR||(LA39_20 >= TILDA && LA39_20 <= TO)||LA39_20==URI) ) {s = 9;} - input.seek(index39_73); + input.seek(index39_20); if ( s>=0 ) return s; break; case 46 : - int LA39_49 = input.LA(1); + int LA39_206 = input.LA(1); - int index39_49 = input.index(); + int index39_206 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} - input.seek(index39_49); + input.seek(index39_206); if ( s>=0 ) return s; break; case 47 : + int LA39_121 = input.LA(1); + + int index39_121 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_121); + if ( s>=0 ) return s; + break; + + case 48 : + int LA39_114 = input.LA(1); + + int index39_114 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_114); + if ( s>=0 ) return s; + break; + + case 49 : + int LA39_154 = input.LA(1); + + int index39_154 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_154); + if ( s>=0 ) return s; + break; + + case 50 : + int LA39_205 = input.LA(1); + + int index39_205 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_205); + if ( s>=0 ) return s; + break; + + case 51 : + int LA39_224 = input.LA(1); + + int index39_224 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_224); + if ( s>=0 ) return s; + break; + + case 52 : + int LA39_153 = input.LA(1); + + int index39_153 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_153); + if ( s>=0 ) return s; + break; + + case 53 : + int LA39_152 = input.LA(1); + + int index39_152 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_152); + if ( s>=0 ) return s; + break; + + case 54 : + int LA39_113 = input.LA(1); + + int index39_113 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_113); + if ( s>=0 ) return s; + break; + + case 55 : + int LA39_216 = input.LA(1); + + int index39_216 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_216); + if ( s>=0 ) return s; + break; + + case 56 : int LA39_15 = input.LA(1); int index39_15 = input.index(); input.rewind(); s = -1; - if ( (LA39_15==COLON) && (synpred18_FTS())) {s = 19;} - else if ( (LA39_15==EOF||(LA39_15 >= AMP && LA39_15 <= BAR)||LA39_15==CARAT||LA39_15==COMMA||LA39_15==DATETIME||LA39_15==DECIMAL_INTEGER_LITERAL||LA39_15==DOT||LA39_15==EQUALS||LA39_15==EXCLAMATION||LA39_15==FLOATING_POINT_LITERAL||(LA39_15 >= FTSPHRASE && LA39_15 <= FTSWORD)||LA39_15==ID||(LA39_15 >= LPAREN && LA39_15 <= LT)||LA39_15==MINUS||LA39_15==NOT||(LA39_15 >= OR && LA39_15 <= PERCENT)||LA39_15==PLUS||LA39_15==QUESTION_MARK||LA39_15==RPAREN||LA39_15==STAR||(LA39_15 >= TILDA && LA39_15 <= TO)||LA39_15==URI) ) {s = 9;} + if ( (LA39_15==ID) ) {s = 23;} + else if ( (LA39_15==TO) ) {s = 24;} + else if ( (LA39_15==OR) && (synpred16_FTS())) {s = 25;} + else if ( (LA39_15==AND) && (synpred16_FTS())) {s = 26;} + else if ( (LA39_15==NOT) ) {s = 27;} + else if ( (LA39_15==FTSPHRASE) && (synpred19_FTS())) {s = 28;} + else if ( (LA39_15==COMMA||LA39_15==DOT) && (synpred19_FTS())) {s = 29;} + else if ( (LA39_15==FTSWORD) && (synpred19_FTS())) {s = 30;} + else if ( (LA39_15==FTSPRE) && (synpred19_FTS())) {s = 31;} + else if ( (LA39_15==FTSWILD) && (synpred19_FTS())) {s = 32;} + else if ( (LA39_15==DECIMAL_INTEGER_LITERAL) && (synpred19_FTS())) {s = 33;} + else if ( (LA39_15==FLOATING_POINT_LITERAL) && (synpred19_FTS())) {s = 34;} + else if ( (LA39_15==STAR) && (synpred19_FTS())) {s = 35;} + else if ( (LA39_15==QUESTION_MARK) && (synpred19_FTS())) {s = 36;} + else if ( (LA39_15==DATETIME) && (synpred19_FTS())) {s = 37;} + else if ( (LA39_15==URI) && (synpred19_FTS())) {s = 38;} input.seek(index39_15); if ( s>=0 ) return s; break; - case 48 : - int LA39_27 = input.LA(1); + case 57 : + int LA39_185 = input.LA(1); - int index39_27 = input.index(); + int index39_185 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred16_FTS()) ) {s = 107;} else if ( (true) ) {s = 9;} - input.seek(index39_27); + input.seek(index39_185); if ( s>=0 ) return s; break; - case 49 : - int LA39_57 = input.LA(1); + case 58 : + int LA39_115 = input.LA(1); - int index39_57 = input.index(); + int index39_115 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 134;} else if ( (true) ) {s = 9;} - input.seek(index39_57); + input.seek(index39_115); if ( s>=0 ) return s; break; - case 50 : - int LA39_69 = input.LA(1); + case 59 : + int LA39_88 = input.LA(1); - int index39_69 = input.index(); + int index39_88 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred19_FTS()) ) {s = 105;} else if ( (true) ) {s = 9;} - input.seek(index39_69); + input.seek(index39_88); if ( s>=0 ) return s; break; - case 51 : + case 60 : + int LA39_143 = input.LA(1); + + int index39_143 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_143); + if ( s>=0 ) return s; + break; + + case 61 : + int LA39_23 = input.LA(1); + + int index39_23 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_23==DOT) ) {s = 43;} + else if ( (LA39_23==COLON) && (synpred16_FTS())) {s = 44;} + else if ( (LA39_23==COMMA) && (synpred19_FTS())) {s = 45;} + else if ( (LA39_23==TILDA) && (synpred19_FTS())) {s = 46;} + else if ( (LA39_23==CARAT) && (synpred19_FTS())) {s = 47;} + else if ( (LA39_23==AND) && (synpred19_FTS())) {s = 48;} + else if ( (LA39_23==AMP) && (synpred19_FTS())) {s = 49;} + else if ( (LA39_23==EOF) && (synpred19_FTS())) {s = 50;} + else if ( (LA39_23==RPAREN) && (synpred19_FTS())) {s = 51;} + else if ( (LA39_23==OR) && (synpred19_FTS())) {s = 52;} + else if ( (LA39_23==BAR) && (synpred19_FTS())) {s = 53;} + else if ( (LA39_23==NOT) && (synpred19_FTS())) {s = 54;} + else if ( (LA39_23==ID) && (synpred19_FTS())) {s = 55;} + else if ( (LA39_23==FTSWORD) && (synpred19_FTS())) {s = 56;} + else if ( (LA39_23==FTSPRE) && (synpred19_FTS())) {s = 57;} + else if ( (LA39_23==FTSWILD) && (synpred19_FTS())) {s = 58;} + else if ( (LA39_23==EXCLAMATION) && (synpred19_FTS())) {s = 59;} + else if ( (LA39_23==TO) && (synpred19_FTS())) {s = 60;} + else if ( (LA39_23==DECIMAL_INTEGER_LITERAL) && (synpred19_FTS())) {s = 61;} + else if ( (LA39_23==FLOATING_POINT_LITERAL) && (synpred19_FTS())) {s = 62;} + else if ( (LA39_23==DATETIME) && (synpred19_FTS())) {s = 63;} + else if ( (LA39_23==STAR) && (synpred19_FTS())) {s = 64;} + else if ( (LA39_23==URI) && (synpred19_FTS())) {s = 65;} + else if ( (LA39_23==AT) && (synpred19_FTS())) {s = 66;} + else if ( (LA39_23==FTSPHRASE) && (synpred19_FTS())) {s = 67;} + else if ( (LA39_23==LSQUARE) && (synpred19_FTS())) {s = 68;} + else if ( (LA39_23==LT) && (synpred19_FTS())) {s = 69;} + else if ( (LA39_23==QUESTION_MARK) && (synpred19_FTS())) {s = 70;} + else if ( (LA39_23==EQUALS) && (synpred19_FTS())) {s = 71;} + else if ( (LA39_23==LPAREN) && (synpred19_FTS())) {s = 72;} + else if ( (LA39_23==PERCENT) && (synpred19_FTS())) {s = 73;} + else if ( (LA39_23==PLUS) && (synpred19_FTS())) {s = 74;} + else if ( (LA39_23==MINUS) && (synpred19_FTS())) {s = 75;} + + input.seek(index39_23); + if ( s>=0 ) return s; + break; + + case 62 : + int LA39_177 = input.LA(1); + + int index39_177 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_177); + if ( s>=0 ) return s; + break; + + case 63 : + int LA39_178 = input.LA(1); + + int index39_178 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_178); + if ( s>=0 ) return s; + break; + + case 64 : + int LA39_187 = input.LA(1); + + int index39_187 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_187); + if ( s>=0 ) return s; + break; + + case 65 : + int LA39_207 = input.LA(1); + + int index39_207 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_207); + if ( s>=0 ) return s; + break; + + case 66 : + int LA39_226 = input.LA(1); + + int index39_226 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_226); + if ( s>=0 ) return s; + break; + + case 67 : + int LA39_186 = input.LA(1); + + int index39_186 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_186); + if ( s>=0 ) return s; + break; + + case 68 : + int LA39_169 = input.LA(1); + + int index39_169 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_169); + if ( s>=0 ) return s; + break; + + case 69 : + int LA39_123 = input.LA(1); + + int index39_123 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_123); + if ( s>=0 ) return s; + break; + + case 70 : + int LA39_222 = input.LA(1); + + int index39_222 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_222); + if ( s>=0 ) return s; + break; + + case 71 : + int LA39_167 = input.LA(1); + + int index39_167 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_167); + if ( s>=0 ) return s; + break; + + case 72 : int LA39_81 = input.LA(1); int index39_81 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (LA39_81==COLON) && (synpred16_FTS())) {s = 44;} + else if ( (synpred19_FTS()) ) {s = 105;} else if ( (true) ) {s = 9;} input.seek(index39_81); if ( s>=0 ) return s; break; - case 52 : - int LA39_52 = input.LA(1); + case 73 : + int LA39_43 = input.LA(1); - int index39_52 = input.index(); + int index39_43 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (LA39_43==ID) ) {s = 93;} + else if ( (LA39_43==FTSWORD) && (synpred19_FTS())) {s = 94;} + else if ( (LA39_43==FTSPRE) && (synpred19_FTS())) {s = 95;} + else if ( (LA39_43==FTSWILD) && (synpred19_FTS())) {s = 96;} + else if ( (LA39_43==NOT) && (synpred19_FTS())) {s = 97;} + else if ( (LA39_43==TO) && (synpred19_FTS())) {s = 98;} + else if ( (LA39_43==DECIMAL_INTEGER_LITERAL) && (synpred19_FTS())) {s = 99;} + else if ( (LA39_43==FLOATING_POINT_LITERAL) && (synpred19_FTS())) {s = 100;} + else if ( (LA39_43==STAR) && (synpred19_FTS())) {s = 101;} + else if ( (LA39_43==QUESTION_MARK) && (synpred19_FTS())) {s = 102;} + else if ( (LA39_43==DATETIME) && (synpred19_FTS())) {s = 103;} + else if ( (LA39_43==URI) && (synpred19_FTS())) {s = 104;} + else if ( (LA39_43==TILDA) && (synpred19_FTS())) {s = 46;} + else if ( (LA39_43==CARAT) && (synpred19_FTS())) {s = 47;} + else if ( (LA39_43==AND) && (synpred19_FTS())) {s = 48;} + else if ( (LA39_43==AMP) && (synpred19_FTS())) {s = 49;} + else if ( (LA39_43==EOF) && (synpred19_FTS())) {s = 50;} + else if ( (LA39_43==RPAREN) && (synpred19_FTS())) {s = 51;} + else if ( (LA39_43==OR) && (synpred19_FTS())) {s = 52;} + else if ( (LA39_43==BAR) && (synpred19_FTS())) {s = 53;} + else if ( (LA39_43==EXCLAMATION) && (synpred19_FTS())) {s = 59;} + else if ( (LA39_43==AT) && (synpred19_FTS())) {s = 66;} + else if ( (LA39_43==FTSPHRASE) && (synpred19_FTS())) {s = 67;} + else if ( (LA39_43==LSQUARE) && (synpred19_FTS())) {s = 68;} + else if ( (LA39_43==LT) && (synpred19_FTS())) {s = 69;} + else if ( (LA39_43==COMMA||LA39_43==DOT) && (synpred19_FTS())) {s = 105;} + else if ( (LA39_43==EQUALS) && (synpred19_FTS())) {s = 71;} + else if ( (LA39_43==LPAREN) && (synpred19_FTS())) {s = 72;} + else if ( (LA39_43==PERCENT) && (synpred19_FTS())) {s = 73;} + else if ( (LA39_43==PLUS) && (synpred19_FTS())) {s = 74;} + else if ( (LA39_43==MINUS) && (synpred19_FTS())) {s = 75;} + + input.seek(index39_43); + if ( s>=0 ) return s; + break; + + case 74 : + int LA39_155 = input.LA(1); + + int index39_155 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} else if ( (true) ) {s = 9;} - input.seek(index39_52); + input.seek(index39_155); if ( s>=0 ) return s; break; - case 53 : - int LA39_74 = input.LA(1); + case 75 : + int LA39_208 = input.LA(1); - int index39_74 = input.index(); + int index39_208 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_208); + if ( s>=0 ) return s; + break; + + case 76 : + int LA39_116 = input.LA(1); + + int index39_116 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} else if ( (true) ) {s = 9;} - input.seek(index39_74); + input.seek(index39_116); if ( s>=0 ) return s; break; - case 54 : - int LA39_70 = input.LA(1); - - int index39_70 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_70); - if ( s>=0 ) return s; - break; - - case 55 : - int LA39_12 = input.LA(1); - - int index39_12 = input.index(); - input.rewind(); - s = -1; - if ( (LA39_12==DOT) ) {s = 18;} - else if ( (LA39_12==COLON) && (synpred18_FTS())) {s = 19;} - else if ( (LA39_12==EOF||(LA39_12 >= AMP && LA39_12 <= BAR)||LA39_12==CARAT||LA39_12==COMMA||LA39_12==DATETIME||LA39_12==DECIMAL_INTEGER_LITERAL||LA39_12==EQUALS||LA39_12==EXCLAMATION||LA39_12==FLOATING_POINT_LITERAL||(LA39_12 >= FTSPHRASE && LA39_12 <= FTSWORD)||LA39_12==ID||(LA39_12 >= LPAREN && LA39_12 <= LT)||LA39_12==MINUS||LA39_12==NOT||(LA39_12 >= OR && LA39_12 <= PERCENT)||LA39_12==PLUS||LA39_12==QUESTION_MARK||LA39_12==RPAREN||LA39_12==STAR||(LA39_12 >= TILDA && LA39_12 <= TO)||LA39_12==URI) ) {s = 9;} - - input.seek(index39_12); - if ( s>=0 ) return s; - break; - - case 56 : - int LA39_41 = input.LA(1); - - int index39_41 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_41); - if ( s>=0 ) return s; - break; - - case 57 : - int LA39_54 = input.LA(1); - - int index39_54 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_54); - if ( s>=0 ) return s; - break; - - case 58 : - int LA39_56 = input.LA(1); - - int index39_56 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_56); - if ( s>=0 ) return s; - break; - - case 59 : - int LA39_48 = input.LA(1); - - int index39_48 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_48); - if ( s>=0 ) return s; - break; - - case 60 : - int LA39_3 = input.LA(1); - - int index39_3 = input.index(); - input.rewind(); - s = -1; - if ( (LA39_3==COLON) && (synpred18_FTS())) {s = 11;} - else if ( (LA39_3==EOF||(LA39_3 >= AMP && LA39_3 <= BAR)||LA39_3==CARAT||LA39_3==COMMA||LA39_3==DATETIME||LA39_3==DECIMAL_INTEGER_LITERAL||LA39_3==DOT||LA39_3==EQUALS||LA39_3==EXCLAMATION||LA39_3==FLOATING_POINT_LITERAL||(LA39_3 >= FTSPHRASE && LA39_3 <= FTSWORD)||LA39_3==ID||(LA39_3 >= LPAREN && LA39_3 <= LT)||LA39_3==MINUS||LA39_3==NOT||(LA39_3 >= OR && LA39_3 <= PERCENT)||LA39_3==PLUS||LA39_3==QUESTION_MARK||LA39_3==RPAREN||LA39_3==STAR||(LA39_3 >= TILDA && LA39_3 <= TO)||LA39_3==URI) ) {s = 9;} - - input.seek(index39_3); - if ( s>=0 ) return s; - break; - - case 61 : - int LA39_46 = input.LA(1); - - int index39_46 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_46); - if ( s>=0 ) return s; - break; - - case 62 : - int LA39_33 = input.LA(1); - - int index39_33 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_33); - if ( s>=0 ) return s; - break; - - case 63 : - int LA39_65 = input.LA(1); - - int index39_65 = input.index(); - input.rewind(); - s = -1; - if ( (synpred18_FTS()) ) {s = 19;} - else if ( (true) ) {s = 9;} - - input.seek(index39_65); - if ( s>=0 ) return s; - break; - - case 64 : + case 77 : int LA39_77 = input.LA(1); int index39_77 = input.index(); input.rewind(); s = -1; - if ( (synpred18_FTS()) ) {s = 19;} + if ( (LA39_77==DOT) && (synpred16_FTS())) {s = 107;} + else if ( (LA39_77==COLON) && (synpred16_FTS())) {s = 44;} + else if ( (synpred19_FTS()) ) {s = 105;} else if ( (true) ) {s = 9;} input.seek(index39_77); if ( s>=0 ) return s; break; - case 65 : - int LA39_2 = input.LA(1); + case 78 : + int LA39_89 = input.LA(1); - int index39_2 = input.index(); + int index39_89 = input.index(); input.rewind(); s = -1; - if ( (LA39_2==DOT) ) {s = 10;} - else if ( (LA39_2==COLON) && (synpred18_FTS())) {s = 11;} - else if ( (LA39_2==EOF||(LA39_2 >= AMP && LA39_2 <= BAR)||LA39_2==CARAT||LA39_2==COMMA||LA39_2==DATETIME||LA39_2==DECIMAL_INTEGER_LITERAL||LA39_2==EQUALS||LA39_2==EXCLAMATION||LA39_2==FLOATING_POINT_LITERAL||(LA39_2 >= FTSPHRASE && LA39_2 <= FTSWORD)||LA39_2==ID||(LA39_2 >= LPAREN && LA39_2 <= LT)||LA39_2==MINUS||LA39_2==NOT||(LA39_2 >= OR && LA39_2 <= PERCENT)||LA39_2==PLUS||LA39_2==QUESTION_MARK||LA39_2==RPAREN||LA39_2==STAR||(LA39_2 >= TILDA && LA39_2 <= TO)||LA39_2==URI) ) {s = 9;} + if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} - input.seek(index39_2); + input.seek(index39_89); + if ( s>=0 ) return s; + break; + + case 79 : + int LA39_144 = input.LA(1); + + int index39_144 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_144); + if ( s>=0 ) return s; + break; + + case 80 : + int LA39_163 = input.LA(1); + + int index39_163 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_163); + if ( s>=0 ) return s; + break; + + case 81 : + int LA39_188 = input.LA(1); + + int index39_188 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_188); + if ( s>=0 ) return s; + break; + + case 82 : + int LA39_78 = input.LA(1); + + int index39_78 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_78==COLON) && (synpred16_FTS())) {s = 44;} + else if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index39_78); + if ( s>=0 ) return s; + break; + + case 83 : + int LA39_162 = input.LA(1); + + int index39_162 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_162); + if ( s>=0 ) return s; + break; + + case 84 : + int LA39_196 = input.LA(1); + + int index39_196 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_196); + if ( s>=0 ) return s; + break; + + case 85 : + int LA39_16 = input.LA(1); + + int index39_16 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_16==DOT) ) {s = 39;} + else if ( (LA39_16==COLON) && (synpred19_FTS())) {s = 40;} + else if ( (LA39_16==EOF||(LA39_16 >= AMP && LA39_16 <= BAR)||LA39_16==CARAT||LA39_16==COMMA||LA39_16==DATETIME||LA39_16==DECIMAL_INTEGER_LITERAL||LA39_16==EQUALS||LA39_16==EXCLAMATION||LA39_16==FLOATING_POINT_LITERAL||(LA39_16 >= FTSPHRASE && LA39_16 <= FTSWORD)||LA39_16==ID||(LA39_16 >= LPAREN && LA39_16 <= LT)||LA39_16==MINUS||LA39_16==NOT||(LA39_16 >= OR && LA39_16 <= PERCENT)||LA39_16==PLUS||LA39_16==QUESTION_MARK||LA39_16==RPAREN||LA39_16==STAR||(LA39_16 >= TILDA && LA39_16 <= TO)||LA39_16==URI) ) {s = 9;} + + input.seek(index39_16); + if ( s>=0 ) return s; + break; + + case 86 : + int LA39_1 = input.LA(1); + + int index39_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA39_1==ID) ) {s = 10;} + else if ( (LA39_1==TO) ) {s = 11;} + else if ( (LA39_1==OR) ) {s = 4;} + else if ( (LA39_1==AND) ) {s = 5;} + else if ( (LA39_1==NOT) ) {s = 12;} + else if ( (LA39_1==URI) && (synpred19_FTS())) {s = 13;} + + input.seek(index39_1); + if ( s>=0 ) return s; + break; + + case 87 : + int LA39_124 = input.LA(1); + + int index39_124 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_124); + if ( s>=0 ) return s; + break; + + case 88 : + int LA39_90 = input.LA(1); + + int index39_90 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index39_90); + if ( s>=0 ) return s; + break; + + case 89 : + int LA39_145 = input.LA(1); + + int index39_145 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_145); + if ( s>=0 ) return s; + break; + + case 90 : + int LA39_195 = input.LA(1); + + int index39_195 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_195); + if ( s>=0 ) return s; + break; + + case 91 : + int LA39_218 = input.LA(1); + + int index39_218 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_218); + if ( s>=0 ) return s; + break; + + case 92 : + int LA39_189 = input.LA(1); + + int index39_189 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_189); + if ( s>=0 ) return s; + break; + + case 93 : + int LA39_156 = input.LA(1); + + int index39_156 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_156); + if ( s>=0 ) return s; + break; + + case 94 : + int LA39_209 = input.LA(1); + + int index39_209 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_209); + if ( s>=0 ) return s; + break; + + case 95 : + int LA39_147 = input.LA(1); + + int index39_147 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_147); + if ( s>=0 ) return s; + break; + + case 96 : + int LA39_198 = input.LA(1); + + int index39_198 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_198); + if ( s>=0 ) return s; + break; + + case 97 : + int LA39_200 = input.LA(1); + + int index39_200 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_200); + if ( s>=0 ) return s; + break; + + case 98 : + int LA39_164 = input.LA(1); + + int index39_164 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_164); + if ( s>=0 ) return s; + break; + + case 99 : + int LA39_136 = input.LA(1); + + int index39_136 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_136); + if ( s>=0 ) return s; + break; + + case 100 : + int LA39_179 = input.LA(1); + + int index39_179 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_179); + if ( s>=0 ) return s; + break; + + case 101 : + int LA39_197 = input.LA(1); + + int index39_197 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_197); + if ( s>=0 ) return s; + break; + + case 102 : + int LA39_117 = input.LA(1); + + int index39_117 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_117); + if ( s>=0 ) return s; + break; + + case 103 : + int LA39_170 = input.LA(1); + + int index39_170 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_170); + if ( s>=0 ) return s; + break; + + case 104 : + int LA39_125 = input.LA(1); + + int index39_125 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_125); + if ( s>=0 ) return s; + break; + + case 105 : + int LA39_165 = input.LA(1); + + int index39_165 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_165); + if ( s>=0 ) return s; + break; + + case 106 : + int LA39_109 = input.LA(1); + + int index39_109 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_109); + if ( s>=0 ) return s; + break; + + case 107 : + int LA39_190 = input.LA(1); + + int index39_190 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_190); + if ( s>=0 ) return s; + break; + + case 108 : + int LA39_157 = input.LA(1); + + int index39_157 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_157); + if ( s>=0 ) return s; + break; + + case 109 : + int LA39_219 = input.LA(1); + + int index39_219 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_219); + if ( s>=0 ) return s; + break; + + case 110 : + int LA39_161 = input.LA(1); + + int index39_161 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_161); + if ( s>=0 ) return s; + break; + + case 111 : + int LA39_212 = input.LA(1); + + int index39_212 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_212); + if ( s>=0 ) return s; + break; + + case 112 : + int LA39_199 = input.LA(1); + + int index39_199 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_199); + if ( s>=0 ) return s; + break; + + case 113 : + int LA39_201 = input.LA(1); + + int index39_201 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_201); + if ( s>=0 ) return s; + break; + + case 114 : + int LA39_173 = input.LA(1); + + int index39_173 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_173); + if ( s>=0 ) return s; + break; + + case 115 : + int LA39_91 = input.LA(1); + + int index39_91 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index39_91); + if ( s>=0 ) return s; + break; + + case 116 : + int LA39_146 = input.LA(1); + + int index39_146 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_146); + if ( s>=0 ) return s; + break; + + case 117 : + int LA39_171 = input.LA(1); + + int index39_171 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_171); + if ( s>=0 ) return s; + break; + + case 118 : + int LA39_174 = input.LA(1); + + int index39_174 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_174); + if ( s>=0 ) return s; + break; + + case 119 : + int LA39_210 = input.LA(1); + + int index39_210 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (synpred19_FTS()) ) {s = 182;} + + input.seek(index39_210); + if ( s>=0 ) return s; + break; + + case 120 : + int LA39_84 = input.LA(1); + + int index39_84 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index39_84); + if ( s>=0 ) return s; + break; + + case 121 : + int LA39_118 = input.LA(1); + + int index39_118 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index39_118); + if ( s>=0 ) return s; + break; + + case 122 : + int LA39_137 = input.LA(1); + + int index39_137 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index39_137); + if ( s>=0 ) return s; + break; + + case 123 : + int LA39_158 = input.LA(1); + + int index39_158 = input.index(); + input.rewind(); + s = -1; + if ( (synpred16_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index39_158); if ( s>=0 ) return s; break; } @@ -19629,26 +23157,2226 @@ public class FTSParser extends Parser { } } - static final String DFA60_eotS = + static final String DFA48_eotS = + "\u00e3\uffff"; + static final String DFA48_eofS = + "\2\uffff\2\11\2\uffff\1\11\7\uffff\1\11\1\uffff\5\11\1\uffff\1\11\2\62"+ + "\2\uffff\1\62\13\uffff\1\11\3\uffff\1\62\40\uffff\1\11\20\uffff\1\62\u0085"+ + "\uffff"; + static final String DFA48_minS = + "\2\5\2\4\2\12\1\4\1\5\2\uffff\3\12\1\uffff\1\4\1\5\5\4\1\77\3\4\2\uffff"+ + "\1\4\13\uffff\1\4\1\uffff\1\12\1\5\1\4\40\uffff\1\4\5\12\1\0\1\15\10\0"+ + "\1\5\1\4\14\uffff\1\5\1\uffff\1\13\13\0\1\5\5\0\1\uffff\1\5\7\uffff\15"+ + "\0\1\15\13\0\1\5\5\0\1\uffff\1\0\1\15\13\0\1\5\2\uffff\13\0\1\5\20\0\1"+ + "\5\17\0"; + static final String DFA48_maxS = + "\4\150\2\12\1\150\1\146\2\uffff\1\25\2\12\1\uffff\7\150\1\77\3\150\2\uffff"+ + "\1\150\13\uffff\1\150\1\uffff\1\12\2\150\40\uffff\1\150\1\25\4\12\1\0"+ + "\1\150\10\0\1\146\1\150\14\uffff\1\150\1\uffff\1\150\13\0\1\146\5\0\1"+ + "\uffff\1\150\7\uffff\15\0\1\150\13\0\1\146\5\0\1\uffff\1\0\1\150\13\0"+ + "\1\146\2\uffff\13\0\1\146\20\0\1\146\17\0"; + static final String DFA48_acceptS = + "\10\uffff\1\3\1\4\3\uffff\1\2\13\uffff\2\1\1\uffff\13\2\1\uffff\1\2\3"+ + "\uffff\1\1\37\2\22\uffff\14\2\1\uffff\1\1\22\uffff\1\2\1\uffff\7\2\37"+ + "\uffff\1\2\16\uffff\2\2\54\uffff"; + static final String DFA48_specialS = + "\1\uffff\1\136\15\uffff\1\64\1\34\1\133\1\145\1\144\1\152\2\uffff\1\20"+ + "\1\166\2\uffff\1\165\17\uffff\1\31\41\uffff\1\40\1\52\2\uffff\1\41\1\172"+ + "\1\uffff\1\45\1\77\1\111\1\167\1\16\1\27\1\2\1\53\1\uffff\1\162\17\uffff"+ + "\1\110\1\123\1\113\1\131\1\142\1\160\1\15\1\26\1\61\1\46\1\70\1\uffff"+ + "\1\157\1\164\1\11\1\32\1\24\1\uffff\1\5\7\uffff\1\173\1\63\1\47\1\100"+ + "\1\112\1\134\1\137\1\170\1\17\1\30\1\3\1\54\1\60\1\uffff\1\76\1\115\1"+ + "\125\1\141\1\140\1\161\1\36\1\56\1\102\1\50\1\121\1\uffff\1\71\1\6\1\22"+ + "\1\62\1\107\1\uffff\1\35\1\uffff\1\154\1\23\1\55\1\67\1\51\1\104\1\153"+ + "\1\171\1\7\1\10\1\25\3\uffff\1\132\1\151\1\146\1\163\1\1\1\33\1\66\1\101"+ + "\1\74\1\116\1\126\1\uffff\1\4\1\0\1\21\1\42\1\105\1\43\1\106\1\122\1\135"+ + "\1\130\1\147\1\156\1\13\1\37\1\57\1\44\1\uffff\1\72\1\75\1\117\1\124\1"+ + "\143\1\114\1\65\1\103\1\73\1\120\1\12\1\127\1\150\1\155\1\14}>"; + static final String[] DFA48_transitionS = { + "\1\5\1\1\4\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11\31\uffff"+ + "\1\11\2\uffff\1\10\3\11\11\uffff\1\2\16\uffff\1\6\2\uffff\1\4\6\uffff"+ + "\1\11\7\uffff\1\11\5\uffff\1\3\1\uffff\1\7", + "\1\5\71\uffff\1\12\16\uffff\1\14\2\uffff\1\4\24\uffff\1\13\1\uffff\1"+ + "\15", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\16"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\17", + "\1\17", + "\4\11\1\uffff\1\11\1\17\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\23\71\uffff\1\20\16\uffff\1\24\2\uffff\1\22\24\uffff\1\21", + "", + "", + "\1\17\12\uffff\1\25", + "\1\17", + "\1\17", + "", + "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ + "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\26"+ + "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\32\5\uffff\1\35\1\uffff\1\45\1\uffff\1\41\5\uffff\1\35\31\uffff\1"+ + "\42\2\uffff\1\34\1\37\1\40\1\36\11\uffff\1\27\16\uffff\1\33\2\uffff\1"+ + "\31\6\uffff\1\44\7\uffff\1\43\5\uffff\1\30\1\uffff\1\46", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\47"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\4\11\1\uffff\1\11\1\50\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1\11"+ + "\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\51", + "\4\11\1\uffff\1\11\1\52\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ + "\1\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\54\1\55\1\uffff\1\77\1\uffff\1"+ + "\75\5\uffff\1\53\2\uffff\1\107\2\uffff\1\73\23\uffff\1\76\2\uffff\1\103"+ + "\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110\1\104\1\105\2\uffff\1\113"+ + "\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\106\2\uffff"+ + "\1\63\4\uffff\1\100\4\uffff\1\56\1\74\1\uffff\1\101", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\54\1\55\1\uffff\1\77\1\uffff\1"+ + "\75\5\uffff\1\55\2\uffff\1\107\2\uffff\1\73\23\uffff\1\76\2\uffff\1\103"+ + "\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110\1\104\1\105\2\uffff\1\113"+ + "\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\106\2\uffff"+ + "\1\63\4\uffff\1\100\4\uffff\1\56\1\74\1\uffff\1\101", + "", + "", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\54\1\55\1\uffff\1\77\1\uffff\1"+ + "\75\5\uffff\1\55\2\uffff\1\107\2\uffff\1\73\23\uffff\1\76\2\uffff\1\103"+ + "\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110\1\104\1\105\2\uffff\1\113"+ + "\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\106\2\uffff"+ + "\1\63\4\uffff\1\100\4\uffff\1\56\1\74\1\uffff\1\101", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\4\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\1"+ + "\11\2\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\114"+ + "\3\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "", + "\1\17", + "\1\120\5\uffff\1\123\1\uffff\1\133\1\uffff\1\127\5\uffff\1\123\31\uffff"+ + "\1\130\2\uffff\1\122\1\125\1\126\1\124\11\uffff\1\115\3\uffff\3\11\10"+ + "\uffff\1\121\2\uffff\1\117\6\uffff\1\132\7\uffff\1\131\5\uffff\1\116"+ + "\1\uffff\1\134", + "\1\61\1\60\1\102\1\65\1\uffff\1\57\1\uffff\1\151\1\uffff\1\147\1\uffff"+ + "\1\143\5\uffff\1\151\2\uffff\1\107\2\uffff\1\73\23\uffff\1\144\2\uffff"+ + "\1\103\1\137\1\140\1\136\11\uffff\1\135\3\uffff\1\110\1\104\1\105\2\uffff"+ + "\1\113\5\uffff\1\141\2\uffff\1\64\1\111\1\uffff\1\112\3\uffff\1\146\2"+ + "\uffff\1\63\4\uffff\1\145\4\uffff\1\56\1\142\1\uffff\1\150", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\4\11\1\uffff\1\11\1\152\1\11\1\uffff\1\11\1\uffff\1\11\5\uffff\2\11"+ + "\1\uffff\1\11\2\uffff\1\11\23\uffff\1\11\2\uffff\4\11\11\uffff\1\11\3"+ + "\uffff\3\11\2\uffff\1\11\5\uffff\1\11\2\uffff\2\11\1\uffff\1\11\3\uffff"+ + "\1\11\2\uffff\1\11\4\uffff\1\11\4\uffff\2\11\1\uffff\1\11", + "\1\54\12\uffff\1\153", + "\1\54", + "\1\154", + "\1\154", + "\1\54", + "\1\uffff", + "\1\167\1\uffff\1\163\37\uffff\1\164\3\uffff\1\157\1\160\1\156\11\uffff"+ + "\1\155\16\uffff\1\161\11\uffff\1\166\7\uffff\1\165\5\uffff\1\162\1\uffff"+ + "\1\170", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\174\71\uffff\1\171\16\uffff\1\175\2\uffff\1\173\24\uffff\1\172", + "\1\u0084\1\u0083\1\102\1\65\1\uffff\1\u0082\1\177\1\u0080\1\uffff\1"+ + "\77\1\uffff\1\75\5\uffff\1\176\1\u0086\1\uffff\1\107\2\uffff\1\73\23"+ + "\uffff\1\76\2\uffff\1\103\1\71\1\72\1\70\11\uffff\1\67\3\uffff\1\110"+ + "\1\104\1\105\2\uffff\1\113\5\uffff\1\66\2\uffff\1\64\1\111\1\uffff\1"+ + "\112\3\uffff\1\106\2\uffff\1\63\4\uffff\1\u0085\4\uffff\1\u0081\1\74"+ + "\1\uffff\1\101", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\11\5\uffff\1\123\1\uffff\1\u0092\1\uffff\1\u008e\5\uffff\1\123\31"+ + "\uffff\1\u008f\2\uffff\1\u0087\1\u008a\1\u008b\1\u0089\11\uffff\1\u0088"+ + "\3\uffff\3\11\10\uffff\1\u008c\2\uffff\1\11\6\uffff\1\u0091\7\uffff\1"+ + "\u0090\5\uffff\1\u008d\1\uffff\1\134", + "", + "\1\u0094\1\uffff\1\u009f\1\uffff\1\u009b\5\uffff\1\u0094\31\uffff\1"+ + "\u009c\2\uffff\1\u0093\1\u0097\1\u0098\1\u0096\11\uffff\1\u0095\3\uffff"+ + "\3\11\10\uffff\1\u0099\11\uffff\1\u009e\7\uffff\1\u009d\5\uffff\1\u009a"+ + "\1\uffff\1\u00a0", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00a4\71\uffff\1\u00a1\16\uffff\1\u00a5\2\uffff\1\u00a3\24\uffff"+ + "\1\u00a2", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "\1\u00b6\5\uffff\1\u00a8\1\uffff\1\u00b3\1\uffff\1\u00af\5\uffff\1\u00a8"+ + "\31\uffff\1\u00b0\2\uffff\1\u00a7\1\u00ab\1\u00ac\1\u00aa\11\uffff\1"+ + "\u00a9\3\uffff\1\u00a6\1\104\1\105\10\uffff\1\u00ad\2\uffff\1\u00b5\6"+ + "\uffff\1\u00b2\7\uffff\1\u00b1\5\uffff\1\u00ae\1\uffff\1\u00b4", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00c1\1\uffff\1\u00bd\37\uffff\1\u00be\3\uffff\1\u00b9\1\u00ba\1"+ + "\u00b8\11\uffff\1\u00b7\16\uffff\1\u00bb\11\uffff\1\u00c0\7\uffff\1\u00bf"+ + "\5\uffff\1\u00bc\1\uffff\1\u00c2", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00c6\71\uffff\1\u00c3\16\uffff\1\u00c7\2\uffff\1\u00c5\24\uffff"+ + "\1\u00c4", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "\1\uffff", + "\1\u00d2\1\uffff\1\u00ce\37\uffff\1\u00cf\3\uffff\1\u00ca\1\u00cb\1"+ + "\u00c9\11\uffff\1\u00c8\16\uffff\1\u00cc\11\uffff\1\u00d1\7\uffff\1\u00d0"+ + "\5\uffff\1\u00cd\1\uffff\1\u00d3", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00d7\71\uffff\1\u00d4\16\uffff\1\u00d8\2\uffff\1\u00d6\24\uffff"+ + "\1\u00d5", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00dc\71\uffff\1\u00d9\16\uffff\1\u00dd\2\uffff\1\u00db\24\uffff"+ + "\1\u00da", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\u00e1\71\uffff\1\u00de\16\uffff\1\u00e2\2\uffff\1\u00e0\24\uffff"+ + "\1\u00df", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff" + }; + + static final short[] DFA48_eot = DFA.unpackEncodedString(DFA48_eotS); + static final short[] DFA48_eof = DFA.unpackEncodedString(DFA48_eofS); + static final char[] DFA48_min = DFA.unpackEncodedStringToUnsignedChars(DFA48_minS); + static final char[] DFA48_max = DFA.unpackEncodedStringToUnsignedChars(DFA48_maxS); + static final short[] DFA48_accept = DFA.unpackEncodedString(DFA48_acceptS); + static final short[] DFA48_special = DFA.unpackEncodedString(DFA48_specialS); + static final short[][] DFA48_transition; + + static { + int numStates = DFA48_transitionS.length; + DFA48_transition = new short[numStates][]; + for (int i=0; i fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) )"; + } + @Override + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA48_196 = input.LA(1); + + int index48_196 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_196); + if ( s>=0 ) return s; + break; + + case 1 : + int LA48_187 = input.LA(1); + + int index48_187 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_187); + if ( s>=0 ) return s; + break; + + case 2 : + int LA48_90 = input.LA(1); + + int index48_90 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_90); + if ( s>=0 ) return s; + break; + + case 3 : + int LA48_145 = input.LA(1); + + int index48_145 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_145); + if ( s>=0 ) return s; + break; + + case 4 : + int LA48_195 = input.LA(1); + + int index48_195 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_195); + if ( s>=0 ) return s; + break; + + case 5 : + int LA48_127 = input.LA(1); + + int index48_127 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_127==LPAREN) && (synpred27_FTS())) {s = 166;} + else if ( (LA48_127==FTSPHRASE) ) {s = 167;} + else if ( (LA48_127==COMMA||LA48_127==DOT) ) {s = 168;} + else if ( (LA48_127==ID) ) {s = 169;} + else if ( (LA48_127==FTSWORD) ) {s = 170;} + else if ( (LA48_127==FTSPRE) ) {s = 171;} + else if ( (LA48_127==FTSWILD) ) {s = 172;} + else if ( (LA48_127==NOT) ) {s = 173;} + else if ( (LA48_127==TO) ) {s = 174;} + else if ( (LA48_127==DECIMAL_INTEGER_LITERAL) ) {s = 175;} + else if ( (LA48_127==FLOATING_POINT_LITERAL) ) {s = 176;} + else if ( (LA48_127==STAR) ) {s = 177;} + else if ( (LA48_127==QUESTION_MARK) ) {s = 178;} + else if ( (LA48_127==DATETIME) ) {s = 179;} + else if ( (LA48_127==URI) ) {s = 180;} + else if ( (LA48_127==OR) && (synpred27_FTS())) {s = 181;} + else if ( (LA48_127==AND) && (synpred27_FTS())) {s = 182;} + else if ( (LA48_127==LSQUARE) && (synpred27_FTS())) {s = 68;} + else if ( (LA48_127==LT) && (synpred27_FTS())) {s = 69;} + + input.seek(index48_127); + if ( s>=0 ) return s; + break; + + case 6 : + int LA48_162 = input.LA(1); + + int index48_162 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_162); + if ( s>=0 ) return s; + break; + + case 7 : + int LA48_177 = input.LA(1); + + int index48_177 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_177); + if ( s>=0 ) return s; + break; + + case 8 : + int LA48_178 = input.LA(1); + + int index48_178 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_178); + if ( s>=0 ) return s; + break; + + case 9 : + int LA48_123 = input.LA(1); + + int index48_123 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_123); + if ( s>=0 ) return s; + break; + + case 10 : + int LA48_222 = input.LA(1); + + int index48_222 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_222); + if ( s>=0 ) return s; + break; + + case 11 : + int LA48_207 = input.LA(1); + + int index48_207 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_207); + if ( s>=0 ) return s; + break; + + case 12 : + int LA48_226 = input.LA(1); + + int index48_226 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_226); + if ( s>=0 ) return s; + break; + + case 13 : + int LA48_115 = input.LA(1); + + int index48_115 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_115); + if ( s>=0 ) return s; + break; + + case 14 : + int LA48_88 = input.LA(1); + + int index48_88 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_88); + if ( s>=0 ) return s; + break; + + case 15 : + int LA48_143 = input.LA(1); + + int index48_143 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_143); + if ( s>=0 ) return s; + break; + + case 16 : + int LA48_23 = input.LA(1); + + int index48_23 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_23==DOT) ) {s = 43;} + else if ( (LA48_23==COLON) && (synpred24_FTS())) {s = 44;} + else if ( (LA48_23==COMMA) && (synpred27_FTS())) {s = 45;} + else if ( (LA48_23==TILDA) && (synpred27_FTS())) {s = 46;} + else if ( (LA48_23==CARAT) && (synpred27_FTS())) {s = 47;} + else if ( (LA48_23==AND) && (synpred27_FTS())) {s = 48;} + else if ( (LA48_23==AMP) && (synpred27_FTS())) {s = 49;} + else if ( (LA48_23==EOF) && (synpred27_FTS())) {s = 50;} + else if ( (LA48_23==RPAREN) && (synpred27_FTS())) {s = 51;} + else if ( (LA48_23==OR) && (synpred27_FTS())) {s = 52;} + else if ( (LA48_23==BAR) && (synpred27_FTS())) {s = 53;} + else if ( (LA48_23==NOT) && (synpred27_FTS())) {s = 54;} + else if ( (LA48_23==ID) && (synpred27_FTS())) {s = 55;} + else if ( (LA48_23==FTSWORD) && (synpred27_FTS())) {s = 56;} + else if ( (LA48_23==FTSPRE) && (synpred27_FTS())) {s = 57;} + else if ( (LA48_23==FTSWILD) && (synpred27_FTS())) {s = 58;} + else if ( (LA48_23==EXCLAMATION) && (synpred27_FTS())) {s = 59;} + else if ( (LA48_23==TO) && (synpred27_FTS())) {s = 60;} + else if ( (LA48_23==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 61;} + else if ( (LA48_23==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 62;} + else if ( (LA48_23==DATETIME) && (synpred27_FTS())) {s = 63;} + else if ( (LA48_23==STAR) && (synpred27_FTS())) {s = 64;} + else if ( (LA48_23==URI) && (synpred27_FTS())) {s = 65;} + else if ( (LA48_23==AT) && (synpred27_FTS())) {s = 66;} + else if ( (LA48_23==FTSPHRASE) && (synpred27_FTS())) {s = 67;} + else if ( (LA48_23==LSQUARE) && (synpred27_FTS())) {s = 68;} + else if ( (LA48_23==LT) && (synpred27_FTS())) {s = 69;} + else if ( (LA48_23==QUESTION_MARK) && (synpred27_FTS())) {s = 70;} + else if ( (LA48_23==EQUALS) && (synpred27_FTS())) {s = 71;} + else if ( (LA48_23==LPAREN) && (synpred27_FTS())) {s = 72;} + else if ( (LA48_23==PERCENT) && (synpred27_FTS())) {s = 73;} + else if ( (LA48_23==PLUS) && (synpred27_FTS())) {s = 74;} + else if ( (LA48_23==MINUS) && (synpred27_FTS())) {s = 75;} + + input.seek(index48_23); + if ( s>=0 ) return s; + break; + + case 17 : + int LA48_197 = input.LA(1); + + int index48_197 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_197); + if ( s>=0 ) return s; + break; + + case 18 : + int LA48_163 = input.LA(1); + + int index48_163 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_163); + if ( s>=0 ) return s; + break; + + case 19 : + int LA48_170 = input.LA(1); + + int index48_170 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_170); + if ( s>=0 ) return s; + break; + + case 20 : + int LA48_125 = input.LA(1); + + int index48_125 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_125); + if ( s>=0 ) return s; + break; + + case 21 : + int LA48_179 = input.LA(1); + + int index48_179 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_179); + if ( s>=0 ) return s; + break; + + case 22 : + int LA48_116 = input.LA(1); + + int index48_116 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_116); + if ( s>=0 ) return s; + break; + + case 23 : + int LA48_89 = input.LA(1); + + int index48_89 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_89); + if ( s>=0 ) return s; + break; + + case 24 : + int LA48_144 = input.LA(1); + + int index48_144 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_144); + if ( s>=0 ) return s; + break; + + case 25 : + int LA48_43 = input.LA(1); + + int index48_43 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_43==ID) ) {s = 93;} + else if ( (LA48_43==FTSWORD) && (synpred27_FTS())) {s = 94;} + else if ( (LA48_43==FTSPRE) && (synpred27_FTS())) {s = 95;} + else if ( (LA48_43==FTSWILD) && (synpred27_FTS())) {s = 96;} + else if ( (LA48_43==NOT) && (synpred27_FTS())) {s = 97;} + else if ( (LA48_43==TO) && (synpred27_FTS())) {s = 98;} + else if ( (LA48_43==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 99;} + else if ( (LA48_43==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 100;} + else if ( (LA48_43==STAR) && (synpred27_FTS())) {s = 101;} + else if ( (LA48_43==QUESTION_MARK) && (synpred27_FTS())) {s = 102;} + else if ( (LA48_43==DATETIME) && (synpred27_FTS())) {s = 103;} + else if ( (LA48_43==URI) && (synpred27_FTS())) {s = 104;} + else if ( (LA48_43==TILDA) && (synpred27_FTS())) {s = 46;} + else if ( (LA48_43==CARAT) && (synpred27_FTS())) {s = 47;} + else if ( (LA48_43==AND) && (synpred27_FTS())) {s = 48;} + else if ( (LA48_43==AMP) && (synpred27_FTS())) {s = 49;} + else if ( (LA48_43==EOF) && (synpred27_FTS())) {s = 50;} + else if ( (LA48_43==RPAREN) && (synpred27_FTS())) {s = 51;} + else if ( (LA48_43==OR) && (synpred27_FTS())) {s = 52;} + else if ( (LA48_43==BAR) && (synpred27_FTS())) {s = 53;} + else if ( (LA48_43==EXCLAMATION) && (synpred27_FTS())) {s = 59;} + else if ( (LA48_43==AT) && (synpred27_FTS())) {s = 66;} + else if ( (LA48_43==FTSPHRASE) && (synpred27_FTS())) {s = 67;} + else if ( (LA48_43==LSQUARE) && (synpred27_FTS())) {s = 68;} + else if ( (LA48_43==LT) && (synpred27_FTS())) {s = 69;} + else if ( (LA48_43==COMMA||LA48_43==DOT) && (synpred27_FTS())) {s = 105;} + else if ( (LA48_43==EQUALS) && (synpred27_FTS())) {s = 71;} + else if ( (LA48_43==LPAREN) && (synpred27_FTS())) {s = 72;} + else if ( (LA48_43==PERCENT) && (synpred27_FTS())) {s = 73;} + else if ( (LA48_43==PLUS) && (synpred27_FTS())) {s = 74;} + else if ( (LA48_43==MINUS) && (synpred27_FTS())) {s = 75;} + + input.seek(index48_43); + if ( s>=0 ) return s; + break; + + case 26 : + int LA48_124 = input.LA(1); + + int index48_124 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_124); + if ( s>=0 ) return s; + break; + + case 27 : + int LA48_188 = input.LA(1); + + int index48_188 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_188); + if ( s>=0 ) return s; + break; + + case 28 : + int LA48_16 = input.LA(1); + + int index48_16 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_16==DOT) ) {s = 39;} + else if ( (LA48_16==COLON) && (synpred27_FTS())) {s = 40;} + else if ( (LA48_16==EOF||(LA48_16 >= AMP && LA48_16 <= BAR)||LA48_16==CARAT||LA48_16==COMMA||LA48_16==DATETIME||LA48_16==DECIMAL_INTEGER_LITERAL||LA48_16==EQUALS||LA48_16==EXCLAMATION||LA48_16==FLOATING_POINT_LITERAL||(LA48_16 >= FTSPHRASE && LA48_16 <= FTSWORD)||LA48_16==ID||(LA48_16 >= LPAREN && LA48_16 <= LT)||LA48_16==MINUS||LA48_16==NOT||(LA48_16 >= OR && LA48_16 <= PERCENT)||LA48_16==PLUS||LA48_16==QUESTION_MARK||LA48_16==RPAREN||LA48_16==STAR||(LA48_16 >= TILDA && LA48_16 <= TO)||LA48_16==URI) ) {s = 9;} + + input.seek(index48_16); + if ( s>=0 ) return s; + break; + + case 29 : + int LA48_167 = input.LA(1); + + int index48_167 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_167); + if ( s>=0 ) return s; + break; + + case 30 : + int LA48_155 = input.LA(1); + + int index48_155 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_155); + if ( s>=0 ) return s; + break; + + case 31 : + int LA48_208 = input.LA(1); + + int index48_208 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_208); + if ( s>=0 ) return s; + break; + + case 32 : + int LA48_77 = input.LA(1); + + int index48_77 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_77==DOT) && (synpred24_FTS())) {s = 107;} + else if ( (LA48_77==COLON) && (synpred24_FTS())) {s = 44;} + else if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_77); + if ( s>=0 ) return s; + break; + + case 33 : + int LA48_81 = input.LA(1); + + int index48_81 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_81==COLON) && (synpred24_FTS())) {s = 44;} + else if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_81); + if ( s>=0 ) return s; + break; + + case 34 : + int LA48_198 = input.LA(1); + + int index48_198 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_198); + if ( s>=0 ) return s; + break; + + case 35 : + int LA48_200 = input.LA(1); + + int index48_200 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_200); + if ( s>=0 ) return s; + break; + + case 36 : + int LA48_210 = input.LA(1); + + int index48_210 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_210); + if ( s>=0 ) return s; + break; + + case 37 : + int LA48_84 = input.LA(1); + + int index48_84 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_84); + if ( s>=0 ) return s; + break; + + case 38 : + int LA48_118 = input.LA(1); + + int index48_118 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_118); + if ( s>=0 ) return s; + break; + + case 39 : + int LA48_137 = input.LA(1); + + int index48_137 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_137); + if ( s>=0 ) return s; + break; + + case 40 : + int LA48_158 = input.LA(1); + + int index48_158 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_158); + if ( s>=0 ) return s; + break; + + case 41 : + int LA48_173 = input.LA(1); + + int index48_173 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_173); + if ( s>=0 ) return s; + break; + + case 42 : + int LA48_78 = input.LA(1); + + int index48_78 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_78==COLON) && (synpred24_FTS())) {s = 44;} + else if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_78); + if ( s>=0 ) return s; + break; + + case 43 : + int LA48_91 = input.LA(1); + + int index48_91 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_91); + if ( s>=0 ) return s; + break; + + case 44 : + int LA48_146 = input.LA(1); + + int index48_146 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_146); + if ( s>=0 ) return s; + break; + + case 45 : + int LA48_171 = input.LA(1); + + int index48_171 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_171); + if ( s>=0 ) return s; + break; + + case 46 : + int LA48_156 = input.LA(1); + + int index48_156 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_156); + if ( s>=0 ) return s; + break; + + case 47 : + int LA48_209 = input.LA(1); + + int index48_209 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_209); + if ( s>=0 ) return s; + break; + + case 48 : + int LA48_147 = input.LA(1); + + int index48_147 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_147); + if ( s>=0 ) return s; + break; + + case 49 : + int LA48_117 = input.LA(1); + + int index48_117 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_117); + if ( s>=0 ) return s; + break; + + case 50 : + int LA48_164 = input.LA(1); + + int index48_164 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_164); + if ( s>=0 ) return s; + break; + + case 51 : + int LA48_136 = input.LA(1); + + int index48_136 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_136); + if ( s>=0 ) return s; + break; + + case 52 : + int LA48_15 = input.LA(1); + + int index48_15 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_15==ID) ) {s = 23;} + else if ( (LA48_15==TO) ) {s = 24;} + else if ( (LA48_15==OR) && (synpred24_FTS())) {s = 25;} + else if ( (LA48_15==AND) && (synpred24_FTS())) {s = 26;} + else if ( (LA48_15==NOT) ) {s = 27;} + else if ( (LA48_15==FTSPHRASE) && (synpred27_FTS())) {s = 28;} + else if ( (LA48_15==COMMA||LA48_15==DOT) && (synpred27_FTS())) {s = 29;} + else if ( (LA48_15==FTSWORD) && (synpred27_FTS())) {s = 30;} + else if ( (LA48_15==FTSPRE) && (synpred27_FTS())) {s = 31;} + else if ( (LA48_15==FTSWILD) && (synpred27_FTS())) {s = 32;} + else if ( (LA48_15==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 33;} + else if ( (LA48_15==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 34;} + else if ( (LA48_15==STAR) && (synpred27_FTS())) {s = 35;} + else if ( (LA48_15==QUESTION_MARK) && (synpred27_FTS())) {s = 36;} + else if ( (LA48_15==DATETIME) && (synpred27_FTS())) {s = 37;} + else if ( (LA48_15==URI) && (synpred27_FTS())) {s = 38;} + + input.seek(index48_15); + if ( s>=0 ) return s; + break; + + case 53 : + int LA48_218 = input.LA(1); + + int index48_218 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_218); + if ( s>=0 ) return s; + break; + + case 54 : + int LA48_189 = input.LA(1); + + int index48_189 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_189); + if ( s>=0 ) return s; + break; + + case 55 : + int LA48_172 = input.LA(1); + + int index48_172 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_172); + if ( s>=0 ) return s; + break; + + case 56 : + int LA48_119 = input.LA(1); + + int index48_119 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_119); + if ( s>=0 ) return s; + break; + + case 57 : + int LA48_161 = input.LA(1); + + int index48_161 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_161); + if ( s>=0 ) return s; + break; + + case 58 : + int LA48_212 = input.LA(1); + + int index48_212 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_212); + if ( s>=0 ) return s; + break; + + case 59 : + int LA48_220 = input.LA(1); + + int index48_220 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_220); + if ( s>=0 ) return s; + break; + + case 60 : + int LA48_191 = input.LA(1); + + int index48_191 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_191); + if ( s>=0 ) return s; + break; + + case 61 : + int LA48_213 = input.LA(1); + + int index48_213 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_213); + if ( s>=0 ) return s; + break; + + case 62 : + int LA48_149 = input.LA(1); + + int index48_149 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_149); + if ( s>=0 ) return s; + break; + + case 63 : + int LA48_85 = input.LA(1); + + int index48_85 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_85); + if ( s>=0 ) return s; + break; + + case 64 : + int LA48_138 = input.LA(1); + + int index48_138 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_138); + if ( s>=0 ) return s; + break; + + case 65 : + int LA48_190 = input.LA(1); + + int index48_190 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_190); + if ( s>=0 ) return s; + break; + + case 66 : + int LA48_157 = input.LA(1); + + int index48_157 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_157); + if ( s>=0 ) return s; + break; + + case 67 : + int LA48_219 = input.LA(1); + + int index48_219 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_219); + if ( s>=0 ) return s; + break; + + case 68 : + int LA48_174 = input.LA(1); + + int index48_174 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_174); + if ( s>=0 ) return s; + break; + + case 69 : + int LA48_199 = input.LA(1); + + int index48_199 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_199); + if ( s>=0 ) return s; + break; + + case 70 : + int LA48_201 = input.LA(1); + + int index48_201 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_201); + if ( s>=0 ) return s; + break; + + case 71 : + int LA48_165 = input.LA(1); + + int index48_165 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_165); + if ( s>=0 ) return s; + break; + + case 72 : + int LA48_109 = input.LA(1); + + int index48_109 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_109); + if ( s>=0 ) return s; + break; + + case 73 : + int LA48_86 = input.LA(1); + + int index48_86 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_86); + if ( s>=0 ) return s; + break; + + case 74 : + int LA48_139 = input.LA(1); + + int index48_139 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_139); + if ( s>=0 ) return s; + break; + + case 75 : + int LA48_111 = input.LA(1); + + int index48_111 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_111); + if ( s>=0 ) return s; + break; + + case 76 : + int LA48_217 = input.LA(1); + + int index48_217 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_217); + if ( s>=0 ) return s; + break; + + case 77 : + int LA48_150 = input.LA(1); + + int index48_150 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_150); + if ( s>=0 ) return s; + break; + + case 78 : + int LA48_192 = input.LA(1); + + int index48_192 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_192); + if ( s>=0 ) return s; + break; + + case 79 : + int LA48_214 = input.LA(1); + + int index48_214 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_214); + if ( s>=0 ) return s; + break; + + case 80 : + int LA48_221 = input.LA(1); + + int index48_221 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_221); + if ( s>=0 ) return s; + break; + + case 81 : + int LA48_159 = input.LA(1); + + int index48_159 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_159); + if ( s>=0 ) return s; + break; + + case 82 : + int LA48_202 = input.LA(1); + + int index48_202 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_202); + if ( s>=0 ) return s; + break; + + case 83 : + int LA48_110 = input.LA(1); + + int index48_110 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_110); + if ( s>=0 ) return s; + break; + + case 84 : + int LA48_215 = input.LA(1); + + int index48_215 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_215); + if ( s>=0 ) return s; + break; + + case 85 : + int LA48_151 = input.LA(1); + + int index48_151 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_151); + if ( s>=0 ) return s; + break; + + case 86 : + int LA48_193 = input.LA(1); + + int index48_193 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_193); + if ( s>=0 ) return s; + break; + + case 87 : + int LA48_223 = input.LA(1); + + int index48_223 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_223); + if ( s>=0 ) return s; + break; + + case 88 : + int LA48_204 = input.LA(1); + + int index48_204 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_204); + if ( s>=0 ) return s; + break; + + case 89 : + int LA48_112 = input.LA(1); + + int index48_112 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_112); + if ( s>=0 ) return s; + break; + + case 90 : + int LA48_183 = input.LA(1); + + int index48_183 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_183); + if ( s>=0 ) return s; + break; + + case 91 : + int LA48_17 = input.LA(1); + + int index48_17 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_17==COLON) && (synpred27_FTS())) {s = 40;} + else if ( (LA48_17==EOF||(LA48_17 >= AMP && LA48_17 <= BAR)||LA48_17==CARAT||LA48_17==COMMA||LA48_17==DATETIME||LA48_17==DECIMAL_INTEGER_LITERAL||LA48_17==DOT||LA48_17==EQUALS||LA48_17==EXCLAMATION||LA48_17==FLOATING_POINT_LITERAL||(LA48_17 >= FTSPHRASE && LA48_17 <= FTSWORD)||LA48_17==ID||(LA48_17 >= LPAREN && LA48_17 <= LT)||LA48_17==MINUS||LA48_17==NOT||(LA48_17 >= OR && LA48_17 <= PERCENT)||LA48_17==PLUS||LA48_17==QUESTION_MARK||LA48_17==RPAREN||LA48_17==STAR||(LA48_17 >= TILDA && LA48_17 <= TO)||LA48_17==URI) ) {s = 9;} + + input.seek(index48_17); + if ( s>=0 ) return s; + break; + + case 92 : + int LA48_140 = input.LA(1); + + int index48_140 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_140); + if ( s>=0 ) return s; + break; + + case 93 : + int LA48_203 = input.LA(1); + + int index48_203 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_203); + if ( s>=0 ) return s; + break; + + case 94 : + int LA48_1 = input.LA(1); + + int index48_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_1==ID) ) {s = 10;} + else if ( (LA48_1==TO) ) {s = 11;} + else if ( (LA48_1==OR) ) {s = 4;} + else if ( (LA48_1==AND) ) {s = 5;} + else if ( (LA48_1==NOT) ) {s = 12;} + else if ( (LA48_1==URI) && (synpred27_FTS())) {s = 13;} + + input.seek(index48_1); + if ( s>=0 ) return s; + break; + + case 95 : + int LA48_141 = input.LA(1); + + int index48_141 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_141); + if ( s>=0 ) return s; + break; + + case 96 : + int LA48_153 = input.LA(1); + + int index48_153 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_153); + if ( s>=0 ) return s; + break; + + case 97 : + int LA48_152 = input.LA(1); + + int index48_152 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_152); + if ( s>=0 ) return s; + break; + + case 98 : + int LA48_113 = input.LA(1); + + int index48_113 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_113); + if ( s>=0 ) return s; + break; + + case 99 : + int LA48_216 = input.LA(1); + + int index48_216 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_216); + if ( s>=0 ) return s; + break; + + case 100 : + int LA48_19 = input.LA(1); + + int index48_19 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_19==COLON) && (synpred27_FTS())) {s = 40;} + else if ( (LA48_19==EOF||(LA48_19 >= AMP && LA48_19 <= BAR)||LA48_19==CARAT||LA48_19==COMMA||LA48_19==DATETIME||LA48_19==DECIMAL_INTEGER_LITERAL||LA48_19==DOT||LA48_19==EQUALS||LA48_19==EXCLAMATION||LA48_19==FLOATING_POINT_LITERAL||(LA48_19 >= FTSPHRASE && LA48_19 <= FTSWORD)||LA48_19==ID||(LA48_19 >= LPAREN && LA48_19 <= LT)||LA48_19==MINUS||LA48_19==NOT||(LA48_19 >= OR && LA48_19 <= PERCENT)||LA48_19==PLUS||LA48_19==QUESTION_MARK||LA48_19==RPAREN||LA48_19==STAR||(LA48_19 >= TILDA && LA48_19 <= TO)||LA48_19==URI) ) {s = 9;} + + input.seek(index48_19); + if ( s>=0 ) return s; + break; + + case 101 : + int LA48_18 = input.LA(1); + + int index48_18 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_18==COLON) && (synpred27_FTS())) {s = 40;} + else if ( (LA48_18==EOF||(LA48_18 >= AMP && LA48_18 <= BAR)||LA48_18==CARAT||LA48_18==COMMA||LA48_18==DATETIME||LA48_18==DECIMAL_INTEGER_LITERAL||LA48_18==DOT||LA48_18==EQUALS||LA48_18==EXCLAMATION||LA48_18==FLOATING_POINT_LITERAL||(LA48_18 >= FTSPHRASE && LA48_18 <= FTSWORD)||LA48_18==ID||(LA48_18 >= LPAREN && LA48_18 <= LT)||LA48_18==MINUS||LA48_18==NOT||(LA48_18 >= OR && LA48_18 <= PERCENT)||LA48_18==PLUS||LA48_18==QUESTION_MARK||LA48_18==RPAREN||LA48_18==STAR||(LA48_18 >= TILDA && LA48_18 <= TO)||LA48_18==URI) ) {s = 9;} + + input.seek(index48_18); + if ( s>=0 ) return s; + break; + + case 102 : + int LA48_185 = input.LA(1); + + int index48_185 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_185); + if ( s>=0 ) return s; + break; + + case 103 : + int LA48_205 = input.LA(1); + + int index48_205 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_205); + if ( s>=0 ) return s; + break; + + case 104 : + int LA48_224 = input.LA(1); + + int index48_224 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_224); + if ( s>=0 ) return s; + break; + + case 105 : + int LA48_184 = input.LA(1); + + int index48_184 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_184); + if ( s>=0 ) return s; + break; + + case 106 : + int LA48_20 = input.LA(1); + + int index48_20 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_20==COLON) && (synpred27_FTS())) {s = 40;} + else if ( (LA48_20==EOF||(LA48_20 >= AMP && LA48_20 <= BAR)||LA48_20==CARAT||LA48_20==COMMA||LA48_20==DATETIME||LA48_20==DECIMAL_INTEGER_LITERAL||LA48_20==DOT||LA48_20==EQUALS||LA48_20==EXCLAMATION||LA48_20==FLOATING_POINT_LITERAL||(LA48_20 >= FTSPHRASE && LA48_20 <= FTSWORD)||LA48_20==ID||(LA48_20 >= LPAREN && LA48_20 <= LT)||LA48_20==MINUS||LA48_20==NOT||(LA48_20 >= OR && LA48_20 <= PERCENT)||LA48_20==PLUS||LA48_20==QUESTION_MARK||LA48_20==RPAREN||LA48_20==STAR||(LA48_20 >= TILDA && LA48_20 <= TO)||LA48_20==URI) ) {s = 9;} + + input.seek(index48_20); + if ( s>=0 ) return s; + break; + + case 107 : + int LA48_175 = input.LA(1); + + int index48_175 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_175); + if ( s>=0 ) return s; + break; + + case 108 : + int LA48_169 = input.LA(1); + + int index48_169 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_169); + if ( s>=0 ) return s; + break; + + case 109 : + int LA48_225 = input.LA(1); + + int index48_225 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_225); + if ( s>=0 ) return s; + break; + + case 110 : + int LA48_206 = input.LA(1); + + int index48_206 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_206); + if ( s>=0 ) return s; + break; + + case 111 : + int LA48_121 = input.LA(1); + + int index48_121 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_121); + if ( s>=0 ) return s; + break; + + case 112 : + int LA48_114 = input.LA(1); + + int index48_114 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_114); + if ( s>=0 ) return s; + break; + + case 113 : + int LA48_154 = input.LA(1); + + int index48_154 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_154); + if ( s>=0 ) return s; + break; + + case 114 : + int LA48_93 = input.LA(1); + + int index48_93 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_93==DOT) && (synpred27_FTS())) {s = 126;} + else if ( (LA48_93==COLON) ) {s = 127;} + else if ( (LA48_93==COMMA) && (synpred27_FTS())) {s = 128;} + else if ( (LA48_93==TILDA) && (synpred27_FTS())) {s = 129;} + else if ( (LA48_93==CARAT) && (synpred27_FTS())) {s = 130;} + else if ( (LA48_93==AND) && (synpred27_FTS())) {s = 131;} + else if ( (LA48_93==AMP) && (synpred27_FTS())) {s = 132;} + else if ( (LA48_93==EOF) && (synpred27_FTS())) {s = 50;} + else if ( (LA48_93==RPAREN) && (synpred27_FTS())) {s = 51;} + else if ( (LA48_93==OR) && (synpred27_FTS())) {s = 52;} + else if ( (LA48_93==BAR) && (synpred27_FTS())) {s = 53;} + else if ( (LA48_93==NOT) && (synpred27_FTS())) {s = 54;} + else if ( (LA48_93==ID) && (synpred27_FTS())) {s = 55;} + else if ( (LA48_93==FTSWORD) && (synpred27_FTS())) {s = 56;} + else if ( (LA48_93==FTSPRE) && (synpred27_FTS())) {s = 57;} + else if ( (LA48_93==FTSWILD) && (synpred27_FTS())) {s = 58;} + else if ( (LA48_93==EXCLAMATION) && (synpred27_FTS())) {s = 59;} + else if ( (LA48_93==TO) && (synpred27_FTS())) {s = 60;} + else if ( (LA48_93==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 61;} + else if ( (LA48_93==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 62;} + else if ( (LA48_93==DATETIME) && (synpred27_FTS())) {s = 63;} + else if ( (LA48_93==STAR) && (synpred27_FTS())) {s = 133;} + else if ( (LA48_93==URI) && (synpred27_FTS())) {s = 65;} + else if ( (LA48_93==AT) && (synpred27_FTS())) {s = 66;} + else if ( (LA48_93==FTSPHRASE) && (synpred27_FTS())) {s = 67;} + else if ( (LA48_93==LSQUARE) && (synpred27_FTS())) {s = 68;} + else if ( (LA48_93==LT) && (synpred27_FTS())) {s = 69;} + else if ( (LA48_93==QUESTION_MARK) && (synpred27_FTS())) {s = 70;} + else if ( (LA48_93==EQUALS) && (synpred27_FTS())) {s = 71;} + else if ( (LA48_93==LPAREN) && (synpred27_FTS())) {s = 72;} + else if ( (LA48_93==PERCENT) && (synpred27_FTS())) {s = 73;} + else if ( (LA48_93==PLUS) && (synpred27_FTS())) {s = 74;} + else if ( (LA48_93==MINUS) && (synpred27_FTS())) {s = 75;} + else if ( (LA48_93==DOTDOT) && (synpred27_FTS())) {s = 134;} + + input.seek(index48_93); + if ( s>=0 ) return s; + break; + + case 115 : + int LA48_186 = input.LA(1); + + int index48_186 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (true) ) {s = 9;} + + input.seek(index48_186); + if ( s>=0 ) return s; + break; + + case 116 : + int LA48_122 = input.LA(1); + + int index48_122 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 134;} + else if ( (true) ) {s = 9;} + + input.seek(index48_122); + if ( s>=0 ) return s; + break; + + case 117 : + int LA48_27 = input.LA(1); + + int index48_27 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_27==COLON) && (synpred24_FTS())) {s = 44;} + else if ( (LA48_27==COMMA||LA48_27==DOT) && (synpred27_FTS())) {s = 45;} + else if ( (LA48_27==TILDA) && (synpred27_FTS())) {s = 46;} + else if ( (LA48_27==CARAT) && (synpred27_FTS())) {s = 47;} + else if ( (LA48_27==AND) && (synpred27_FTS())) {s = 48;} + else if ( (LA48_27==AMP) && (synpred27_FTS())) {s = 49;} + else if ( (LA48_27==EOF) && (synpred27_FTS())) {s = 50;} + else if ( (LA48_27==RPAREN) && (synpred27_FTS())) {s = 51;} + else if ( (LA48_27==OR) && (synpred27_FTS())) {s = 52;} + else if ( (LA48_27==BAR) && (synpred27_FTS())) {s = 53;} + else if ( (LA48_27==NOT) && (synpred27_FTS())) {s = 54;} + else if ( (LA48_27==ID) && (synpred27_FTS())) {s = 55;} + else if ( (LA48_27==FTSWORD) && (synpred27_FTS())) {s = 56;} + else if ( (LA48_27==FTSPRE) && (synpred27_FTS())) {s = 57;} + else if ( (LA48_27==FTSWILD) && (synpred27_FTS())) {s = 58;} + else if ( (LA48_27==EXCLAMATION) && (synpred27_FTS())) {s = 59;} + else if ( (LA48_27==TO) && (synpred27_FTS())) {s = 60;} + else if ( (LA48_27==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 61;} + else if ( (LA48_27==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 62;} + else if ( (LA48_27==DATETIME) && (synpred27_FTS())) {s = 63;} + else if ( (LA48_27==STAR) && (synpred27_FTS())) {s = 64;} + else if ( (LA48_27==URI) && (synpred27_FTS())) {s = 65;} + else if ( (LA48_27==AT) && (synpred27_FTS())) {s = 66;} + else if ( (LA48_27==FTSPHRASE) && (synpred27_FTS())) {s = 67;} + else if ( (LA48_27==LSQUARE) && (synpred27_FTS())) {s = 68;} + else if ( (LA48_27==LT) && (synpred27_FTS())) {s = 69;} + else if ( (LA48_27==QUESTION_MARK) && (synpred27_FTS())) {s = 70;} + else if ( (LA48_27==EQUALS) && (synpred27_FTS())) {s = 71;} + else if ( (LA48_27==LPAREN) && (synpred27_FTS())) {s = 72;} + else if ( (LA48_27==PERCENT) && (synpred27_FTS())) {s = 73;} + else if ( (LA48_27==PLUS) && (synpred27_FTS())) {s = 74;} + else if ( (LA48_27==MINUS) && (synpred27_FTS())) {s = 75;} + + input.seek(index48_27); + if ( s>=0 ) return s; + break; + + case 118 : + int LA48_24 = input.LA(1); + + int index48_24 = input.index(); + input.rewind(); + s = -1; + if ( (LA48_24==COLON) && (synpred24_FTS())) {s = 44;} + else if ( (LA48_24==COMMA||LA48_24==DOT) && (synpred27_FTS())) {s = 45;} + else if ( (LA48_24==TILDA) && (synpred27_FTS())) {s = 46;} + else if ( (LA48_24==CARAT) && (synpred27_FTS())) {s = 47;} + else if ( (LA48_24==AND) && (synpred27_FTS())) {s = 48;} + else if ( (LA48_24==AMP) && (synpred27_FTS())) {s = 49;} + else if ( (LA48_24==EOF) && (synpred27_FTS())) {s = 50;} + else if ( (LA48_24==RPAREN) && (synpred27_FTS())) {s = 51;} + else if ( (LA48_24==OR) && (synpred27_FTS())) {s = 52;} + else if ( (LA48_24==BAR) && (synpred27_FTS())) {s = 53;} + else if ( (LA48_24==NOT) && (synpred27_FTS())) {s = 54;} + else if ( (LA48_24==ID) && (synpred27_FTS())) {s = 55;} + else if ( (LA48_24==FTSWORD) && (synpred27_FTS())) {s = 56;} + else if ( (LA48_24==FTSPRE) && (synpred27_FTS())) {s = 57;} + else if ( (LA48_24==FTSWILD) && (synpred27_FTS())) {s = 58;} + else if ( (LA48_24==EXCLAMATION) && (synpred27_FTS())) {s = 59;} + else if ( (LA48_24==TO) && (synpred27_FTS())) {s = 60;} + else if ( (LA48_24==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 61;} + else if ( (LA48_24==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 62;} + else if ( (LA48_24==DATETIME) && (synpred27_FTS())) {s = 63;} + else if ( (LA48_24==STAR) && (synpred27_FTS())) {s = 64;} + else if ( (LA48_24==URI) && (synpred27_FTS())) {s = 65;} + else if ( (LA48_24==AT) && (synpred27_FTS())) {s = 66;} + else if ( (LA48_24==FTSPHRASE) && (synpred27_FTS())) {s = 67;} + else if ( (LA48_24==LSQUARE) && (synpred27_FTS())) {s = 68;} + else if ( (LA48_24==LT) && (synpred27_FTS())) {s = 69;} + else if ( (LA48_24==QUESTION_MARK) && (synpred27_FTS())) {s = 70;} + else if ( (LA48_24==EQUALS) && (synpred27_FTS())) {s = 71;} + else if ( (LA48_24==LPAREN) && (synpred27_FTS())) {s = 72;} + else if ( (LA48_24==PERCENT) && (synpred27_FTS())) {s = 73;} + else if ( (LA48_24==PLUS) && (synpred27_FTS())) {s = 74;} + else if ( (LA48_24==MINUS) && (synpred27_FTS())) {s = 75;} + + input.seek(index48_24); + if ( s>=0 ) return s; + break; + + case 119 : + int LA48_87 = input.LA(1); + + int index48_87 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_87); + if ( s>=0 ) return s; + break; + + case 120 : + int LA48_142 = input.LA(1); + + int index48_142 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_142); + if ( s>=0 ) return s; + break; + + case 121 : + int LA48_176 = input.LA(1); + + int index48_176 = input.index(); + input.rewind(); + s = -1; + if ( (synpred24_FTS()) ) {s = 107;} + else if ( (synpred27_FTS()) ) {s = 182;} + + input.seek(index48_176); + if ( s>=0 ) return s; + break; + + case 122 : + int LA48_82 = input.LA(1); + + int index48_82 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 105;} + else if ( (true) ) {s = 9;} + + input.seek(index48_82); + if ( s>=0 ) return s; + break; + + case 123 : + int LA48_135 = input.LA(1); + + int index48_135 = input.index(); + input.rewind(); + s = -1; + if ( (synpred27_FTS()) ) {s = 182;} + else if ( (true) ) {s = 9;} + + input.seek(index48_135); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 48, _s, input); + error(nvae); + throw nvae; + } + } + + static final String DFA69_eotS = "\u00bb\uffff"; - static final String DFA60_eofS = + static final String DFA69_eofS = "\u00bb\uffff"; - static final String DFA60_minS = + static final String DFA69_minS = "\1\13\12\4\1\5\2\uffff\1\13\1\4\1\13\3\uffff\1\4\34\uffff\5\4\70\uffff"+ "\1\4\12\0\1\5\6\uffff\2\4\32\uffff\6\0\14\uffff\1\4\12\uffff\1\0\1\uffff"; - static final String DFA60_maxS = + static final String DFA69_maxS = "\13\150\1\146\2\uffff\3\150\3\uffff\1\150\34\uffff\5\150\70\uffff\1\150"+ "\12\0\1\146\6\uffff\2\150\32\uffff\6\0\14\uffff\1\150\12\uffff\1\0\1\uffff"; - static final String DFA60_acceptS = + static final String DFA69_acceptS = "\14\uffff\2\2\3\uffff\2\10\1\11\1\uffff\33\2\1\10\5\uffff\15\3\1\5\34"+ "\4\1\6\15\7\14\uffff\6\2\2\uffff\1\1\31\2\6\uffff\14\2\1\uffff\12\2\1"+ "\uffff\1\2"; - static final String DFA60_specialS = - "\1\16\1\4\1\12\1\20\1\14\1\40\1\50\1\30\1\44\1\1\1\47\3\uffff\1\41\1\2"+ - "\1\10\3\uffff\1\5\34\uffff\1\22\1\26\1\32\1\31\1\45\70\uffff\1\0\1\3\1"+ - "\7\1\33\1\46\1\21\1\36\1\15\1\11\1\42\1\25\7\uffff\1\35\1\27\32\uffff"+ - "\1\43\1\24\1\37\1\6\1\13\1\34\14\uffff\1\17\12\uffff\1\23\1\uffff}>"; - static final String[] DFA60_transitionS = { + static final String DFA69_specialS = + "\1\43\1\31\1\30\1\41\1\46\1\42\1\44\1\11\1\4\1\16\1\14\3\uffff\1\27\1"+ + "\32\1\7\3\uffff\1\5\34\uffff\1\37\1\6\1\12\1\22\1\17\70\uffff\1\15\1\0"+ + "\1\20\1\25\1\23\1\34\1\36\1\2\1\13\1\47\1\35\7\uffff\1\40\1\10\32\uffff"+ + "\1\3\1\1\1\21\1\26\1\24\1\50\14\uffff\1\45\12\uffff\1\33\1\uffff}>"; + static final String[] DFA69_transitionS = { "\1\14\1\uffff\1\11\1\uffff\1\7\5\uffff\1\14\2\uffff\1\16\26\uffff\1\10"+ "\2\uffff\1\17\1\3\1\4\1\2\11\uffff\1\1\3\uffff\1\23\1\21\1\22\10\uffff"+ "\1\5\11\uffff\1\15\7\uffff\1\12\4\uffff\1\20\1\6\1\uffff\1\13", @@ -19933,38 +25661,38 @@ public class FTSParser extends Parser { "" }; - static final short[] DFA60_eot = DFA.unpackEncodedString(DFA60_eotS); - static final short[] DFA60_eof = DFA.unpackEncodedString(DFA60_eofS); - static final char[] DFA60_min = DFA.unpackEncodedStringToUnsignedChars(DFA60_minS); - static final char[] DFA60_max = DFA.unpackEncodedStringToUnsignedChars(DFA60_maxS); - static final short[] DFA60_accept = DFA.unpackEncodedString(DFA60_acceptS); - static final short[] DFA60_special = DFA.unpackEncodedString(DFA60_specialS); - static final short[][] DFA60_transition; + static final short[] DFA69_eot = DFA.unpackEncodedString(DFA69_eotS); + static final short[] DFA69_eof = DFA.unpackEncodedString(DFA69_eofS); + static final char[] DFA69_min = DFA.unpackEncodedStringToUnsignedChars(DFA69_minS); + static final char[] DFA69_max = DFA.unpackEncodedStringToUnsignedChars(DFA69_maxS); + static final short[] DFA69_accept = DFA.unpackEncodedString(DFA69_acceptS); + static final short[] DFA69_special = DFA.unpackEncodedString(DFA69_specialS); + static final short[][] DFA69_transition; static { - int numStates = DFA60_transitionS.length; - DFA60_transition = new short[numStates][]; + int numStates = DFA69_transitionS.length; + DFA69_transition = new short[numStates][]; for (int i=0; i ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction );"; + return "686:1: ftsFieldGroupTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction );"; } @Override public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { @@ -19972,1166 +25700,1166 @@ public class FTSParser extends Parser { int _s = s; switch ( s ) { case 0 : - int LA60_110 = input.LA(1); + int LA69_111 = input.LA(1); - int index60_110 = input.index(); + int index69_111 = input.index(); input.rewind(); s = -1; - if ( (LA60_110==DECIMAL_INTEGER_LITERAL) ) {s = 129;} - else if ( (LA60_110==RPAREN) && (synpred24_FTS())) {s = 130;} - else if ( (LA60_110==AND) && (synpred25_FTS())) {s = 131;} - else if ( (LA60_110==AMP) && (synpred25_FTS())) {s = 132;} - else if ( (LA60_110==NOT) && (synpred25_FTS())) {s = 133;} - else if ( (LA60_110==ID) && (synpred25_FTS())) {s = 134;} - else if ( (LA60_110==FTSWORD) && (synpred25_FTS())) {s = 135;} - else if ( (LA60_110==FTSPRE) && (synpred25_FTS())) {s = 136;} - else if ( (LA60_110==FTSWILD) && (synpred25_FTS())) {s = 137;} - else if ( (LA60_110==EXCLAMATION) && (synpred25_FTS())) {s = 138;} - else if ( (LA60_110==TO) && (synpred25_FTS())) {s = 139;} - else if ( (LA60_110==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 140;} - else if ( (LA60_110==DATETIME) && (synpred25_FTS())) {s = 141;} - else if ( (LA60_110==STAR) && (synpred25_FTS())) {s = 142;} - else if ( (LA60_110==URI) && (synpred25_FTS())) {s = 143;} - else if ( (LA60_110==COMMA||LA60_110==DOT) && (synpred25_FTS())) {s = 144;} - else if ( (LA60_110==QUESTION_MARK) && (synpred25_FTS())) {s = 145;} - else if ( (LA60_110==EQUALS) && (synpred25_FTS())) {s = 146;} - else if ( (LA60_110==FTSPHRASE) && (synpred25_FTS())) {s = 147;} - else if ( (LA60_110==TILDA) && (synpred25_FTS())) {s = 148;} - else if ( (LA60_110==LSQUARE) && (synpred25_FTS())) {s = 149;} - else if ( (LA60_110==LT) && (synpred25_FTS())) {s = 150;} - else if ( (LA60_110==LPAREN) && (synpred25_FTS())) {s = 151;} - else if ( (LA60_110==PLUS) && (synpred25_FTS())) {s = 152;} - else if ( (LA60_110==BAR) && (synpred25_FTS())) {s = 153;} - else if ( (LA60_110==MINUS) && (synpred25_FTS())) {s = 154;} - else if ( (LA60_110==OR) && (synpred25_FTS())) {s = 155;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_110); + input.seek(index69_111); if ( s>=0 ) return s; break; case 1 : - int LA60_9 = input.LA(1); + int LA69_157 = input.LA(1); - int index60_9 = input.index(); + int index69_157 = input.index(); input.rewind(); s = -1; - if ( (LA60_9==STAR) ) {s = 20;} - else if ( (LA60_9==COMMA||LA60_9==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_9==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_9==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_9==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_9==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_9==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_9==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_9==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_9==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_9==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_9==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_9==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_9==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_9==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_9==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_9==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_9==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_9==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_9==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_9==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_9==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_9==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_9==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_9==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_9==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_9==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_9==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_9==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 184;} - input.seek(index60_9); + input.seek(index69_157); if ( s>=0 ) return s; break; case 2 : - int LA60_15 = input.LA(1); + int LA69_117 = input.LA(1); - int index60_15 = input.index(); + int index69_117 = input.index(); input.rewind(); s = -1; - if ( (LA60_15==TILDA) && (synpred29_FTS())) {s = 68;} - else if ( (LA60_15==CARAT) && (synpred29_FTS())) {s = 69;} - else if ( (LA60_15==AND) && (synpred29_FTS())) {s = 70;} - else if ( (LA60_15==AMP) && (synpred29_FTS())) {s = 71;} - else if ( (LA60_15==RPAREN) && (synpred29_FTS())) {s = 72;} - else if ( (LA60_15==OR) && (synpred29_FTS())) {s = 73;} - else if ( (LA60_15==BAR) && (synpred29_FTS())) {s = 74;} - else if ( (LA60_15==NOT) && (synpred29_FTS())) {s = 75;} - else if ( (LA60_15==ID) && (synpred29_FTS())) {s = 76;} - else if ( (LA60_15==FTSWORD) && (synpred29_FTS())) {s = 77;} - else if ( (LA60_15==FTSPRE) && (synpred29_FTS())) {s = 78;} - else if ( (LA60_15==FTSWILD) && (synpred29_FTS())) {s = 79;} - else if ( (LA60_15==EXCLAMATION) && (synpred29_FTS())) {s = 80;} - else if ( (LA60_15==TO) && (synpred29_FTS())) {s = 81;} - else if ( (LA60_15==DECIMAL_INTEGER_LITERAL) && (synpred29_FTS())) {s = 82;} - else if ( (LA60_15==FLOATING_POINT_LITERAL) && (synpred29_FTS())) {s = 83;} - else if ( (LA60_15==DATETIME) && (synpred29_FTS())) {s = 84;} - else if ( (LA60_15==STAR) && (synpred29_FTS())) {s = 85;} - else if ( (LA60_15==URI) && (synpred29_FTS())) {s = 86;} - else if ( (LA60_15==COMMA||LA60_15==DOT) && (synpred29_FTS())) {s = 87;} - else if ( (LA60_15==QUESTION_MARK) && (synpred29_FTS())) {s = 88;} - else if ( (LA60_15==EQUALS) && (synpred29_FTS())) {s = 89;} - else if ( (LA60_15==FTSPHRASE) && (synpred29_FTS())) {s = 90;} - else if ( (LA60_15==LSQUARE) && (synpred29_FTS())) {s = 91;} - else if ( (LA60_15==LT) && (synpred29_FTS())) {s = 92;} - else if ( (LA60_15==LPAREN) && (synpred29_FTS())) {s = 93;} - else if ( (LA60_15==PLUS) && (synpred29_FTS())) {s = 94;} - else if ( (LA60_15==MINUS) && (synpred29_FTS())) {s = 95;} - else if ( (LA60_15==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_15); + input.seek(index69_117); if ( s>=0 ) return s; break; case 3 : - int LA60_111 = input.LA(1); + int LA69_156 = input.LA(1); - int index60_111 = input.index(); + int index69_156 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 184;} - input.seek(index60_111); + input.seek(index69_156); if ( s>=0 ) return s; break; case 4 : - int LA60_1 = input.LA(1); + int LA69_8 = input.LA(1); - int index60_1 = input.index(); + int index69_8 = input.index(); input.rewind(); s = -1; - if ( (LA60_1==STAR) ) {s = 20;} - else if ( (LA60_1==COMMA||LA60_1==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_1==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_1==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_1==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_1==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_1==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_1==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_1==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_1==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_1==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_1==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_1==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_1==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_1==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_1==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_1==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_1==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_1==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_1==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_1==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_1==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_1==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_1==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_1==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_1==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_1==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_1==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_1==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_8==STAR) ) {s = 20;} + else if ( (LA69_8==COMMA||LA69_8==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_8==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_8==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_8==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_8==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_8==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_8==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_8==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_8==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_8==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_8==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_8==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_8==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_8==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_8==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_8==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_8==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_8==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_8==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_8==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_8==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_8==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_8==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_8==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_8==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_8==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_8==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_8==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_1); + input.seek(index69_8); if ( s>=0 ) return s; break; case 5 : - int LA60_20 = input.LA(1); + int LA69_20 = input.LA(1); - int index60_20 = input.index(); + int index69_20 = input.index(); input.rewind(); s = -1; - if ( (LA60_20==LPAREN) ) {s = 110;} - else if ( (LA60_20==ID) ) {s = 111;} - else if ( (LA60_20==FTSWORD) ) {s = 112;} - else if ( (LA60_20==FTSPRE) ) {s = 113;} - else if ( (LA60_20==FTSWILD) ) {s = 114;} - else if ( (LA60_20==NOT) ) {s = 115;} - else if ( (LA60_20==TO) ) {s = 116;} - else if ( (LA60_20==DECIMAL_INTEGER_LITERAL) ) {s = 117;} - else if ( (LA60_20==FLOATING_POINT_LITERAL) ) {s = 118;} - else if ( (LA60_20==DATETIME) ) {s = 119;} - else if ( (LA60_20==STAR) ) {s = 120;} - else if ( (LA60_20==URI) ) {s = 121;} - else if ( (LA60_20==COMMA||LA60_20==DOT) && (synpred25_FTS())) {s = 122;} - else if ( (LA60_20==TILDA) && (synpred25_FTS())) {s = 123;} - else if ( (LA60_20==CARAT) && (synpred25_FTS())) {s = 124;} - else if ( (LA60_20==AND) && (synpred25_FTS())) {s = 125;} - else if ( (LA60_20==AMP) && (synpred25_FTS())) {s = 126;} - else if ( (LA60_20==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_20==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_20==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_20==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_20==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_20==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_20==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_20==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_20==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_20==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_20==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_20==DOTDOT) && (synpred25_FTS())) {s = 127;} + if ( (LA69_20==LPAREN) ) {s = 110;} + else if ( (LA69_20==ID) ) {s = 111;} + else if ( (LA69_20==FTSWORD) ) {s = 112;} + else if ( (LA69_20==FTSPRE) ) {s = 113;} + else if ( (LA69_20==FTSWILD) ) {s = 114;} + else if ( (LA69_20==NOT) ) {s = 115;} + else if ( (LA69_20==TO) ) {s = 116;} + else if ( (LA69_20==DECIMAL_INTEGER_LITERAL) ) {s = 117;} + else if ( (LA69_20==FLOATING_POINT_LITERAL) ) {s = 118;} + else if ( (LA69_20==DATETIME) ) {s = 119;} + else if ( (LA69_20==STAR) ) {s = 120;} + else if ( (LA69_20==URI) ) {s = 121;} + else if ( (LA69_20==COMMA||LA69_20==DOT) && (synpred34_FTS())) {s = 122;} + else if ( (LA69_20==TILDA) && (synpred34_FTS())) {s = 123;} + else if ( (LA69_20==CARAT) && (synpred34_FTS())) {s = 124;} + else if ( (LA69_20==AND) && (synpred34_FTS())) {s = 125;} + else if ( (LA69_20==AMP) && (synpred34_FTS())) {s = 126;} + else if ( (LA69_20==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_20==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_20==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_20==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_20==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_20==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_20==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_20==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_20==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_20==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_20==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_20==DOTDOT) && (synpred34_FTS())) {s = 127;} - input.seek(index60_20); + input.seek(index69_20); if ( s>=0 ) return s; break; case 6 : - int LA60_159 = input.LA(1); + int LA69_50 = input.LA(1); - int index60_159 = input.index(); + int index69_50 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 184;} + if ( (LA69_50==STAR) ) {s = 20;} + else if ( (LA69_50==COMMA||LA69_50==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_50==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_50==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_50==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_50==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_50==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_50==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_50==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_50==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_50==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_50==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_50==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_50==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_50==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_50==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_50==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_50==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_50==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_50==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_50==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_50==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_50==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_50==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_50==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_50==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_50==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_50==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_50==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_159); + input.seek(index69_50); if ( s>=0 ) return s; break; case 7 : - int LA60_112 = input.LA(1); + int LA69_16 = input.LA(1); - int index60_112 = input.index(); + int index69_16 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (LA69_16==EQUALS) && (synpred42_FTS())) {s = 96;} + else if ( (LA69_16==COMMA||LA69_16==DOT) && (synpred44_FTS())) {s = 97;} + else if ( (LA69_16==ID) && (synpred44_FTS())) {s = 98;} + else if ( (LA69_16==FTSWORD) && (synpred44_FTS())) {s = 99;} + else if ( (LA69_16==FTSPRE) && (synpred44_FTS())) {s = 100;} + else if ( (LA69_16==FTSWILD) && (synpred44_FTS())) {s = 101;} + else if ( (LA69_16==NOT) && (synpred44_FTS())) {s = 102;} + else if ( (LA69_16==TO) && (synpred44_FTS())) {s = 103;} + else if ( (LA69_16==DECIMAL_INTEGER_LITERAL) && (synpred44_FTS())) {s = 104;} + else if ( (LA69_16==FLOATING_POINT_LITERAL) && (synpred44_FTS())) {s = 105;} + else if ( (LA69_16==STAR) && (synpred44_FTS())) {s = 106;} + else if ( (LA69_16==QUESTION_MARK) && (synpred44_FTS())) {s = 107;} + else if ( (LA69_16==DATETIME) && (synpred44_FTS())) {s = 108;} + else if ( (LA69_16==URI) && (synpred44_FTS())) {s = 109;} - input.seek(index60_112); + input.seek(index69_16); if ( s>=0 ) return s; break; case 8 : - int LA60_16 = input.LA(1); + int LA69_129 = input.LA(1); - int index60_16 = input.index(); + int index69_129 = input.index(); input.rewind(); s = -1; - if ( (LA60_16==EQUALS) && (synpred33_FTS())) {s = 96;} - else if ( (LA60_16==COMMA||LA60_16==DOT) && (synpred35_FTS())) {s = 97;} - else if ( (LA60_16==ID) && (synpred35_FTS())) {s = 98;} - else if ( (LA60_16==FTSWORD) && (synpred35_FTS())) {s = 99;} - else if ( (LA60_16==FTSPRE) && (synpred35_FTS())) {s = 100;} - else if ( (LA60_16==FTSWILD) && (synpred35_FTS())) {s = 101;} - else if ( (LA60_16==NOT) && (synpred35_FTS())) {s = 102;} - else if ( (LA60_16==TO) && (synpred35_FTS())) {s = 103;} - else if ( (LA60_16==DECIMAL_INTEGER_LITERAL) && (synpred35_FTS())) {s = 104;} - else if ( (LA60_16==FLOATING_POINT_LITERAL) && (synpred35_FTS())) {s = 105;} - else if ( (LA60_16==STAR) && (synpred35_FTS())) {s = 106;} - else if ( (LA60_16==QUESTION_MARK) && (synpred35_FTS())) {s = 107;} - else if ( (LA60_16==DATETIME) && (synpred35_FTS())) {s = 108;} - else if ( (LA60_16==URI) && (synpred35_FTS())) {s = 109;} + if ( (LA69_129==RPAREN) ) {s = 174;} + else if ( (LA69_129==STAR) && (synpred34_FTS())) {s = 175;} + else if ( (LA69_129==COMMA||LA69_129==DOT) && (synpred34_FTS())) {s = 176;} + else if ( (LA69_129==TILDA) && (synpred34_FTS())) {s = 177;} + else if ( (LA69_129==CARAT) && (synpred34_FTS())) {s = 178;} + else if ( (LA69_129==OR) && (synpred34_FTS())) {s = 179;} + else if ( (LA69_129==BAR) && (synpred34_FTS())) {s = 180;} + else if ( (LA69_129==AND) && (synpred34_FTS())) {s = 181;} + else if ( (LA69_129==AMP) && (synpred34_FTS())) {s = 182;} + else if ( (LA69_129==NOT) && (synpred34_FTS())) {s = 133;} + else if ( (LA69_129==ID) && (synpred34_FTS())) {s = 134;} + else if ( (LA69_129==FTSWORD) && (synpred34_FTS())) {s = 135;} + else if ( (LA69_129==FTSPRE) && (synpred34_FTS())) {s = 136;} + else if ( (LA69_129==FTSWILD) && (synpred34_FTS())) {s = 137;} + else if ( (LA69_129==EXCLAMATION) && (synpred34_FTS())) {s = 138;} + else if ( (LA69_129==TO) && (synpred34_FTS())) {s = 139;} + else if ( (LA69_129==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 183;} + else if ( (LA69_129==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 140;} + else if ( (LA69_129==DATETIME) && (synpred34_FTS())) {s = 141;} + else if ( (LA69_129==URI) && (synpred34_FTS())) {s = 143;} + else if ( (LA69_129==QUESTION_MARK) && (synpred34_FTS())) {s = 145;} + else if ( (LA69_129==EQUALS) && (synpred34_FTS())) {s = 146;} + else if ( (LA69_129==FTSPHRASE) && (synpred34_FTS())) {s = 147;} + else if ( (LA69_129==LSQUARE) && (synpred34_FTS())) {s = 149;} + else if ( (LA69_129==LT) && (synpred34_FTS())) {s = 150;} + else if ( (LA69_129==LPAREN) && (synpred34_FTS())) {s = 151;} + else if ( (LA69_129==PLUS) && (synpred34_FTS())) {s = 152;} + else if ( (LA69_129==MINUS) && (synpred34_FTS())) {s = 154;} + else if ( (LA69_129==DOTDOT) && (synpred34_FTS())) {s = 184;} - input.seek(index60_16); + input.seek(index69_129); if ( s>=0 ) return s; break; case 9 : - int LA60_118 = input.LA(1); + int LA69_7 = input.LA(1); - int index60_118 = input.index(); + int index69_7 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (LA69_7==STAR) ) {s = 20;} + else if ( (LA69_7==COMMA||LA69_7==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_7==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_7==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_7==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_7==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_7==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_7==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_7==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_7==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_7==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_7==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_7==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_7==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_7==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_7==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_7==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_7==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_7==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_7==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_7==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_7==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_7==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_7==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_7==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_7==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_7==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_7==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_7==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_118); + input.seek(index69_7); if ( s>=0 ) return s; break; case 10 : - int LA60_2 = input.LA(1); + int LA69_51 = input.LA(1); - int index60_2 = input.index(); + int index69_51 = input.index(); input.rewind(); s = -1; - if ( (LA60_2==STAR) ) {s = 20;} - else if ( (LA60_2==COMMA||LA60_2==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_2==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_2==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_2==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_2==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_2==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_2==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_2==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_2==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_2==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_2==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_2==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_2==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_2==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_2==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_2==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_2==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_2==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_2==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_2==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_2==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_2==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_2==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_2==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_2==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_2==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_2==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_2==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_51==STAR) ) {s = 20;} + else if ( (LA69_51==COMMA||LA69_51==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_51==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_51==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_51==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_51==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_51==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_51==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_51==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_51==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_51==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_51==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_51==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_51==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_51==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_51==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_51==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_51==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_51==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_51==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_51==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_51==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_51==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_51==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_51==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_51==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_51==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_51==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_51==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_2); + input.seek(index69_51); if ( s>=0 ) return s; break; case 11 : - int LA60_160 = input.LA(1); + int LA69_118 = input.LA(1); - int index60_160 = input.index(); + int index69_118 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 184;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_160); + input.seek(index69_118); if ( s>=0 ) return s; break; case 12 : - int LA60_4 = input.LA(1); + int LA69_10 = input.LA(1); - int index60_4 = input.index(); + int index69_10 = input.index(); input.rewind(); s = -1; - if ( (LA60_4==STAR) ) {s = 20;} - else if ( (LA60_4==COMMA||LA60_4==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_4==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_4==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_4==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_4==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_4==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_4==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_4==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_4==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_4==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_4==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_4==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_4==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_4==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_4==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_4==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_4==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_4==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_4==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_4==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_4==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_4==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_4==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_4==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_4==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_4==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_4==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_4==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_10==STAR) ) {s = 20;} + else if ( (LA69_10==COMMA||LA69_10==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_10==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_10==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_10==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_10==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_10==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_10==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_10==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_10==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_10==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_10==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_10==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_10==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_10==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_10==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_10==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_10==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_10==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_10==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_10==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_10==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_10==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_10==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_10==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_10==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_10==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_10==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_10==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_4); + input.seek(index69_10); if ( s>=0 ) return s; break; case 13 : - int LA60_117 = input.LA(1); + int LA69_110 = input.LA(1); - int index60_117 = input.index(); + int index69_110 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (LA69_110==DECIMAL_INTEGER_LITERAL) ) {s = 129;} + else if ( (LA69_110==RPAREN) && (synpred33_FTS())) {s = 130;} + else if ( (LA69_110==AND) && (synpred34_FTS())) {s = 131;} + else if ( (LA69_110==AMP) && (synpred34_FTS())) {s = 132;} + else if ( (LA69_110==NOT) && (synpred34_FTS())) {s = 133;} + else if ( (LA69_110==ID) && (synpred34_FTS())) {s = 134;} + else if ( (LA69_110==FTSWORD) && (synpred34_FTS())) {s = 135;} + else if ( (LA69_110==FTSPRE) && (synpred34_FTS())) {s = 136;} + else if ( (LA69_110==FTSWILD) && (synpred34_FTS())) {s = 137;} + else if ( (LA69_110==EXCLAMATION) && (synpred34_FTS())) {s = 138;} + else if ( (LA69_110==TO) && (synpred34_FTS())) {s = 139;} + else if ( (LA69_110==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 140;} + else if ( (LA69_110==DATETIME) && (synpred34_FTS())) {s = 141;} + else if ( (LA69_110==STAR) && (synpred34_FTS())) {s = 142;} + else if ( (LA69_110==URI) && (synpred34_FTS())) {s = 143;} + else if ( (LA69_110==COMMA||LA69_110==DOT) && (synpred34_FTS())) {s = 144;} + else if ( (LA69_110==QUESTION_MARK) && (synpred34_FTS())) {s = 145;} + else if ( (LA69_110==EQUALS) && (synpred34_FTS())) {s = 146;} + else if ( (LA69_110==FTSPHRASE) && (synpred34_FTS())) {s = 147;} + else if ( (LA69_110==TILDA) && (synpred34_FTS())) {s = 148;} + else if ( (LA69_110==LSQUARE) && (synpred34_FTS())) {s = 149;} + else if ( (LA69_110==LT) && (synpred34_FTS())) {s = 150;} + else if ( (LA69_110==LPAREN) && (synpred34_FTS())) {s = 151;} + else if ( (LA69_110==PLUS) && (synpred34_FTS())) {s = 152;} + else if ( (LA69_110==BAR) && (synpred34_FTS())) {s = 153;} + else if ( (LA69_110==MINUS) && (synpred34_FTS())) {s = 154;} + else if ( (LA69_110==OR) && (synpred34_FTS())) {s = 155;} - input.seek(index60_117); + input.seek(index69_110); if ( s>=0 ) return s; break; case 14 : - int LA60_0 = input.LA(1); + int LA69_9 = input.LA(1); - int index60_0 = input.index(); + int index69_9 = input.index(); input.rewind(); s = -1; - if ( (LA60_0==ID) ) {s = 1;} - else if ( (LA60_0==FTSWORD) ) {s = 2;} - else if ( (LA60_0==FTSPRE) ) {s = 3;} - else if ( (LA60_0==FTSWILD) ) {s = 4;} - else if ( (LA60_0==NOT) ) {s = 5;} - else if ( (LA60_0==TO) ) {s = 6;} - else if ( (LA60_0==DECIMAL_INTEGER_LITERAL) ) {s = 7;} - else if ( (LA60_0==FLOATING_POINT_LITERAL) ) {s = 8;} - else if ( (LA60_0==DATETIME) ) {s = 9;} - else if ( (LA60_0==STAR) ) {s = 10;} - else if ( (LA60_0==URI) ) {s = 11;} - else if ( (LA60_0==COMMA||LA60_0==DOT) && (synpred25_FTS())) {s = 12;} - else if ( (LA60_0==QUESTION_MARK) && (synpred25_FTS())) {s = 13;} - else if ( (LA60_0==EQUALS) ) {s = 14;} - else if ( (LA60_0==FTSPHRASE) ) {s = 15;} - else if ( (LA60_0==TILDA) ) {s = 16;} - else if ( (LA60_0==LSQUARE) && (synpred37_FTS())) {s = 17;} - else if ( (LA60_0==LT) && (synpred37_FTS())) {s = 18;} - else if ( (LA60_0==LPAREN) ) {s = 19;} + if ( (LA69_9==STAR) ) {s = 20;} + else if ( (LA69_9==COMMA||LA69_9==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_9==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_9==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_9==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_9==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_9==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_9==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_9==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_9==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_9==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_9==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_9==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_9==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_9==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_9==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_9==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_9==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_9==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_9==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_9==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_9==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_9==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_9==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_9==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_9==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_9==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_9==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_9==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_0); + input.seek(index69_9); if ( s>=0 ) return s; break; case 15 : - int LA60_174 = input.LA(1); + int LA69_53 = input.LA(1); - int index60_174 = input.index(); + int index69_53 = input.index(); input.rewind(); s = -1; - if ( (LA60_174==ID) ) {s = 111;} - else if ( (LA60_174==FTSWORD) ) {s = 112;} - else if ( (LA60_174==FTSPRE) ) {s = 113;} - else if ( (LA60_174==FTSWILD) ) {s = 114;} - else if ( (LA60_174==NOT) ) {s = 115;} - else if ( (LA60_174==TO) ) {s = 116;} - else if ( (LA60_174==DECIMAL_INTEGER_LITERAL) ) {s = 117;} - else if ( (LA60_174==FLOATING_POINT_LITERAL) ) {s = 118;} - else if ( (LA60_174==DATETIME) ) {s = 119;} - else if ( (LA60_174==STAR) ) {s = 185;} - else if ( (LA60_174==URI) ) {s = 121;} - else if ( (LA60_174==CARAT) && (synpred25_FTS())) {s = 124;} - else if ( (LA60_174==AND) && (synpred25_FTS())) {s = 125;} - else if ( (LA60_174==AMP) && (synpred25_FTS())) {s = 126;} - else if ( (LA60_174==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_174==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_174==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_174==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_174==COMMA||LA60_174==DOT) && (synpred25_FTS())) {s = 173;} - else if ( (LA60_174==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_174==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_174==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_174==TILDA) && (synpred25_FTS())) {s = 186;} - else if ( (LA60_174==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_174==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_174==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_174==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_174==MINUS) && (synpred25_FTS())) {s = 47;} + if ( (LA69_53==STAR) ) {s = 20;} + else if ( (LA69_53==COMMA||LA69_53==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_53==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_53==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_53==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_53==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_53==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_53==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_53==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_53==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_53==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_53==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_53==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_53==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_53==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_53==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_53==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_53==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_53==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_53==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_53==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_53==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_53==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_53==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_53==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_53==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_53==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_53==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_53==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_174); + input.seek(index69_53); if ( s>=0 ) return s; break; case 16 : - int LA60_3 = input.LA(1); + int LA69_112 = input.LA(1); - int index60_3 = input.index(); + int index69_112 = input.index(); input.rewind(); s = -1; - if ( (LA60_3==STAR) ) {s = 20;} - else if ( (LA60_3==COMMA||LA60_3==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_3==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_3==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_3==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_3==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_3==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_3==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_3==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_3==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_3==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_3==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_3==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_3==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_3==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_3==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_3==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_3==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_3==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_3==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_3==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_3==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_3==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_3==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_3==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_3==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_3==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_3==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_3==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_3); + input.seek(index69_112); if ( s>=0 ) return s; break; case 17 : - int LA60_115 = input.LA(1); + int LA69_158 = input.LA(1); - int index60_115 = input.index(); + int index69_158 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 184;} - input.seek(index60_115); + input.seek(index69_158); if ( s>=0 ) return s; break; case 18 : - int LA60_49 = input.LA(1); + int LA69_52 = input.LA(1); - int index60_49 = input.index(); + int index69_52 = input.index(); input.rewind(); s = -1; - if ( (LA60_49==DOT) ) {s = 128;} - else if ( (LA60_49==STAR) ) {s = 20;} - else if ( (LA60_49==COMMA) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_49==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_49==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_49==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_49==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_49==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_49==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_49==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_49==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_49==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_49==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_49==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_49==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_49==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_49==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_49==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_49==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_49==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_49==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_49==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_49==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_49==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_49==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_49==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_49==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_49==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_49==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_49==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_52==STAR) ) {s = 20;} + else if ( (LA69_52==COMMA||LA69_52==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_52==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_52==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_52==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_52==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_52==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_52==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_52==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_52==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_52==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_52==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_52==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_52==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_52==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_52==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_52==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_52==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_52==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_52==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_52==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_52==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_52==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_52==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_52==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_52==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_52==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_52==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_52==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_49); + input.seek(index69_52); if ( s>=0 ) return s; break; case 19 : - int LA60_185 = input.LA(1); + int LA69_114 = input.LA(1); - int index60_185 = input.index(); + int index69_114 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 186;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_185); + input.seek(index69_114); if ( s>=0 ) return s; break; case 20 : - int LA60_157 = input.LA(1); + int LA69_160 = input.LA(1); - int index60_157 = input.index(); + int index69_160 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 184;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 184;} - input.seek(index60_157); + input.seek(index69_160); if ( s>=0 ) return s; break; case 21 : - int LA60_120 = input.LA(1); + int LA69_113 = input.LA(1); - int index60_120 = input.index(); + int index69_113 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_120); + input.seek(index69_113); if ( s>=0 ) return s; break; case 22 : - int LA60_50 = input.LA(1); + int LA69_159 = input.LA(1); - int index60_50 = input.index(); + int index69_159 = input.index(); input.rewind(); s = -1; - if ( (LA60_50==STAR) ) {s = 20;} - else if ( (LA60_50==COMMA||LA60_50==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_50==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_50==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_50==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_50==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_50==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_50==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_50==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_50==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_50==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_50==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_50==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_50==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_50==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_50==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_50==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_50==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_50==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_50==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_50==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_50==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_50==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_50==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_50==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_50==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_50==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_50==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_50==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 184;} - input.seek(index60_50); + input.seek(index69_159); if ( s>=0 ) return s; break; case 23 : - int LA60_129 = input.LA(1); + int LA69_14 = input.LA(1); - int index60_129 = input.index(); + int index69_14 = input.index(); input.rewind(); s = -1; - if ( (LA60_129==RPAREN) ) {s = 174;} - else if ( (LA60_129==STAR) && (synpred25_FTS())) {s = 175;} - else if ( (LA60_129==COMMA||LA60_129==DOT) && (synpred25_FTS())) {s = 176;} - else if ( (LA60_129==TILDA) && (synpred25_FTS())) {s = 177;} - else if ( (LA60_129==CARAT) && (synpred25_FTS())) {s = 178;} - else if ( (LA60_129==OR) && (synpred25_FTS())) {s = 179;} - else if ( (LA60_129==BAR) && (synpred25_FTS())) {s = 180;} - else if ( (LA60_129==AND) && (synpred25_FTS())) {s = 181;} - else if ( (LA60_129==AMP) && (synpred25_FTS())) {s = 182;} - else if ( (LA60_129==NOT) && (synpred25_FTS())) {s = 133;} - else if ( (LA60_129==ID) && (synpred25_FTS())) {s = 134;} - else if ( (LA60_129==FTSWORD) && (synpred25_FTS())) {s = 135;} - else if ( (LA60_129==FTSPRE) && (synpred25_FTS())) {s = 136;} - else if ( (LA60_129==FTSWILD) && (synpred25_FTS())) {s = 137;} - else if ( (LA60_129==EXCLAMATION) && (synpred25_FTS())) {s = 138;} - else if ( (LA60_129==TO) && (synpred25_FTS())) {s = 139;} - else if ( (LA60_129==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 183;} - else if ( (LA60_129==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 140;} - else if ( (LA60_129==DATETIME) && (synpred25_FTS())) {s = 141;} - else if ( (LA60_129==URI) && (synpred25_FTS())) {s = 143;} - else if ( (LA60_129==QUESTION_MARK) && (synpred25_FTS())) {s = 145;} - else if ( (LA60_129==EQUALS) && (synpred25_FTS())) {s = 146;} - else if ( (LA60_129==FTSPHRASE) && (synpred25_FTS())) {s = 147;} - else if ( (LA60_129==LSQUARE) && (synpred25_FTS())) {s = 149;} - else if ( (LA60_129==LT) && (synpred25_FTS())) {s = 150;} - else if ( (LA60_129==LPAREN) && (synpred25_FTS())) {s = 151;} - else if ( (LA60_129==PLUS) && (synpred25_FTS())) {s = 152;} - else if ( (LA60_129==MINUS) && (synpred25_FTS())) {s = 154;} - else if ( (LA60_129==DOTDOT) && (synpred25_FTS())) {s = 184;} + if ( (LA69_14==COMMA||LA69_14==DOT) && (synpred36_FTS())) {s = 54;} + else if ( (LA69_14==ID) && (synpred36_FTS())) {s = 55;} + else if ( (LA69_14==FTSWORD) && (synpred36_FTS())) {s = 56;} + else if ( (LA69_14==FTSPRE) && (synpred36_FTS())) {s = 57;} + else if ( (LA69_14==FTSWILD) && (synpred36_FTS())) {s = 58;} + else if ( (LA69_14==NOT) && (synpred36_FTS())) {s = 59;} + else if ( (LA69_14==TO) && (synpred36_FTS())) {s = 60;} + else if ( (LA69_14==DECIMAL_INTEGER_LITERAL) && (synpred36_FTS())) {s = 61;} + else if ( (LA69_14==FLOATING_POINT_LITERAL) && (synpred36_FTS())) {s = 62;} + else if ( (LA69_14==STAR) && (synpred36_FTS())) {s = 63;} + else if ( (LA69_14==QUESTION_MARK) && (synpred36_FTS())) {s = 64;} + else if ( (LA69_14==DATETIME) && (synpred36_FTS())) {s = 65;} + else if ( (LA69_14==URI) && (synpred36_FTS())) {s = 66;} + else if ( (LA69_14==EQUALS) && (synpred40_FTS())) {s = 67;} - input.seek(index60_129); + input.seek(index69_14); if ( s>=0 ) return s; break; case 24 : - int LA60_7 = input.LA(1); + int LA69_2 = input.LA(1); - int index60_7 = input.index(); + int index69_2 = input.index(); input.rewind(); s = -1; - if ( (LA60_7==STAR) ) {s = 20;} - else if ( (LA60_7==COMMA||LA60_7==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_7==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_7==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_7==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_7==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_7==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_7==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_7==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_7==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_7==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_7==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_7==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_7==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_7==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_7==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_7==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_7==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_7==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_7==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_7==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_7==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_7==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_7==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_7==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_7==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_7==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_7==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_7==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_2==STAR) ) {s = 20;} + else if ( (LA69_2==COMMA||LA69_2==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_2==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_2==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_2==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_2==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_2==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_2==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_2==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_2==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_2==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_2==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_2==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_2==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_2==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_2==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_2==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_2==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_2==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_2==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_2==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_2==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_2==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_2==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_2==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_2==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_2==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_2==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_2==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_7); + input.seek(index69_2); if ( s>=0 ) return s; break; case 25 : - int LA60_52 = input.LA(1); + int LA69_1 = input.LA(1); - int index60_52 = input.index(); + int index69_1 = input.index(); input.rewind(); s = -1; - if ( (LA60_52==STAR) ) {s = 20;} - else if ( (LA60_52==COMMA||LA60_52==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_52==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_52==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_52==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_52==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_52==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_52==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_52==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_52==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_52==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_52==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_52==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_52==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_52==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_52==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_52==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_52==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_52==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_52==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_52==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_52==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_52==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_52==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_52==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_52==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_52==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_52==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_52==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_1==STAR) ) {s = 20;} + else if ( (LA69_1==COMMA||LA69_1==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_1==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_1==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_1==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_1==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_1==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_1==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_1==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_1==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_1==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_1==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_1==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_1==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_1==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_1==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_1==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_1==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_1==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_1==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_1==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_1==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_1==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_1==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_1==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_1==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_1==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_1==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_1==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_52); + input.seek(index69_1); if ( s>=0 ) return s; break; case 26 : - int LA60_51 = input.LA(1); + int LA69_15 = input.LA(1); - int index60_51 = input.index(); + int index69_15 = input.index(); input.rewind(); s = -1; - if ( (LA60_51==STAR) ) {s = 20;} - else if ( (LA60_51==COMMA||LA60_51==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_51==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_51==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_51==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_51==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_51==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_51==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_51==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_51==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_51==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_51==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_51==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_51==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_51==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_51==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_51==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_51==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_51==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_51==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_51==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_51==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_51==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_51==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_51==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_51==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_51==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_51==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_51==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_15==TILDA) && (synpred38_FTS())) {s = 68;} + else if ( (LA69_15==CARAT) && (synpred38_FTS())) {s = 69;} + else if ( (LA69_15==AND) && (synpred38_FTS())) {s = 70;} + else if ( (LA69_15==AMP) && (synpred38_FTS())) {s = 71;} + else if ( (LA69_15==RPAREN) && (synpred38_FTS())) {s = 72;} + else if ( (LA69_15==OR) && (synpred38_FTS())) {s = 73;} + else if ( (LA69_15==BAR) && (synpred38_FTS())) {s = 74;} + else if ( (LA69_15==NOT) && (synpred38_FTS())) {s = 75;} + else if ( (LA69_15==ID) && (synpred38_FTS())) {s = 76;} + else if ( (LA69_15==FTSWORD) && (synpred38_FTS())) {s = 77;} + else if ( (LA69_15==FTSPRE) && (synpred38_FTS())) {s = 78;} + else if ( (LA69_15==FTSWILD) && (synpred38_FTS())) {s = 79;} + else if ( (LA69_15==EXCLAMATION) && (synpred38_FTS())) {s = 80;} + else if ( (LA69_15==TO) && (synpred38_FTS())) {s = 81;} + else if ( (LA69_15==DECIMAL_INTEGER_LITERAL) && (synpred38_FTS())) {s = 82;} + else if ( (LA69_15==FLOATING_POINT_LITERAL) && (synpred38_FTS())) {s = 83;} + else if ( (LA69_15==DATETIME) && (synpred38_FTS())) {s = 84;} + else if ( (LA69_15==STAR) && (synpred38_FTS())) {s = 85;} + else if ( (LA69_15==URI) && (synpred38_FTS())) {s = 86;} + else if ( (LA69_15==COMMA||LA69_15==DOT) && (synpred38_FTS())) {s = 87;} + else if ( (LA69_15==QUESTION_MARK) && (synpred38_FTS())) {s = 88;} + else if ( (LA69_15==EQUALS) && (synpred38_FTS())) {s = 89;} + else if ( (LA69_15==FTSPHRASE) && (synpred38_FTS())) {s = 90;} + else if ( (LA69_15==LSQUARE) && (synpred38_FTS())) {s = 91;} + else if ( (LA69_15==LT) && (synpred38_FTS())) {s = 92;} + else if ( (LA69_15==LPAREN) && (synpred38_FTS())) {s = 93;} + else if ( (LA69_15==PLUS) && (synpred38_FTS())) {s = 94;} + else if ( (LA69_15==MINUS) && (synpred38_FTS())) {s = 95;} + else if ( (LA69_15==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_51); + input.seek(index69_15); if ( s>=0 ) return s; break; case 27 : - int LA60_113 = input.LA(1); + int LA69_185 = input.LA(1); - int index60_113 = input.index(); + int index69_185 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 186;} - input.seek(index60_113); + input.seek(index69_185); if ( s>=0 ) return s; break; case 28 : - int LA60_161 = input.LA(1); + int LA69_115 = input.LA(1); - int index60_161 = input.index(); + int index69_115 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 184;} - else if ( (synpred37_FTS()) ) {s = 48;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_161); + input.seek(index69_115); if ( s>=0 ) return s; break; case 29 : - int LA60_128 = input.LA(1); + int LA69_120 = input.LA(1); - int index60_128 = input.index(); + int index69_120 = input.index(); input.rewind(); s = -1; - if ( (LA60_128==ID) ) {s = 161;} - else if ( (LA60_128==FTSWORD) && (synpred25_FTS())) {s = 162;} - else if ( (LA60_128==FTSPRE) && (synpred25_FTS())) {s = 163;} - else if ( (LA60_128==FTSWILD) && (synpred25_FTS())) {s = 164;} - else if ( (LA60_128==NOT) && (synpred25_FTS())) {s = 165;} - else if ( (LA60_128==TO) && (synpred25_FTS())) {s = 166;} - else if ( (LA60_128==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 167;} - else if ( (LA60_128==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 168;} - else if ( (LA60_128==STAR) && (synpred25_FTS())) {s = 169;} - else if ( (LA60_128==QUESTION_MARK) && (synpred25_FTS())) {s = 170;} - else if ( (LA60_128==DATETIME) && (synpred25_FTS())) {s = 171;} - else if ( (LA60_128==URI) && (synpred25_FTS())) {s = 172;} - else if ( (LA60_128==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_128==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_128==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_128==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_128==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_128==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_128==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_128==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_128==COMMA||LA60_128==DOT) && (synpred25_FTS())) {s = 173;} - else if ( (LA60_128==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_128==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_128==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_128==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_128==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_128==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_128==MINUS) && (synpred25_FTS())) {s = 47;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_128); + input.seek(index69_120); if ( s>=0 ) return s; break; case 30 : - int LA60_116 = input.LA(1); + int LA69_116 = input.LA(1); - int index60_116 = input.index(); + int index69_116 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_116); + input.seek(index69_116); if ( s>=0 ) return s; break; case 31 : - int LA60_158 = input.LA(1); + int LA69_49 = input.LA(1); - int index60_158 = input.index(); + int index69_49 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 184;} + if ( (LA69_49==DOT) ) {s = 128;} + else if ( (LA69_49==STAR) ) {s = 20;} + else if ( (LA69_49==COMMA) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_49==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_49==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_49==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_49==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_49==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_49==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_49==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_49==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_49==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_49==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_49==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_49==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_49==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_49==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_49==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_49==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_49==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_49==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_49==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_49==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_49==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_49==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_49==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_49==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_49==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_49==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_49==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_158); + input.seek(index69_49); if ( s>=0 ) return s; break; case 32 : - int LA60_5 = input.LA(1); + int LA69_128 = input.LA(1); - int index60_5 = input.index(); + int index69_128 = input.index(); input.rewind(); s = -1; - if ( (LA60_5==STAR) ) {s = 20;} - else if ( (LA60_5==COMMA||LA60_5==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_5==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_5==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_5==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_5==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_5==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_5==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_5==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_5==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_5==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_5==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_5==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_5==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_5==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_5==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_5==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_5==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_5==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_5==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_5==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_5==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_5==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_5==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_5==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_5==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_5==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_5==MINUS) && (synpred25_FTS())) {s = 47;} + if ( (LA69_128==ID) ) {s = 161;} + else if ( (LA69_128==FTSWORD) && (synpred34_FTS())) {s = 162;} + else if ( (LA69_128==FTSPRE) && (synpred34_FTS())) {s = 163;} + else if ( (LA69_128==FTSWILD) && (synpred34_FTS())) {s = 164;} + else if ( (LA69_128==NOT) && (synpred34_FTS())) {s = 165;} + else if ( (LA69_128==TO) && (synpred34_FTS())) {s = 166;} + else if ( (LA69_128==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 167;} + else if ( (LA69_128==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 168;} + else if ( (LA69_128==STAR) && (synpred34_FTS())) {s = 169;} + else if ( (LA69_128==QUESTION_MARK) && (synpred34_FTS())) {s = 170;} + else if ( (LA69_128==DATETIME) && (synpred34_FTS())) {s = 171;} + else if ( (LA69_128==URI) && (synpred34_FTS())) {s = 172;} + else if ( (LA69_128==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_128==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_128==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_128==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_128==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_128==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_128==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_128==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_128==COMMA||LA69_128==DOT) && (synpred34_FTS())) {s = 173;} + else if ( (LA69_128==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_128==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_128==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_128==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_128==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_128==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_128==MINUS) && (synpred34_FTS())) {s = 47;} - input.seek(index60_5); + input.seek(index69_128); if ( s>=0 ) return s; break; case 33 : - int LA60_14 = input.LA(1); + int LA69_3 = input.LA(1); - int index60_14 = input.index(); + int index69_3 = input.index(); input.rewind(); s = -1; - if ( (LA60_14==COMMA||LA60_14==DOT) && (synpred27_FTS())) {s = 54;} - else if ( (LA60_14==ID) && (synpred27_FTS())) {s = 55;} - else if ( (LA60_14==FTSWORD) && (synpred27_FTS())) {s = 56;} - else if ( (LA60_14==FTSPRE) && (synpred27_FTS())) {s = 57;} - else if ( (LA60_14==FTSWILD) && (synpred27_FTS())) {s = 58;} - else if ( (LA60_14==NOT) && (synpred27_FTS())) {s = 59;} - else if ( (LA60_14==TO) && (synpred27_FTS())) {s = 60;} - else if ( (LA60_14==DECIMAL_INTEGER_LITERAL) && (synpred27_FTS())) {s = 61;} - else if ( (LA60_14==FLOATING_POINT_LITERAL) && (synpred27_FTS())) {s = 62;} - else if ( (LA60_14==STAR) && (synpred27_FTS())) {s = 63;} - else if ( (LA60_14==QUESTION_MARK) && (synpred27_FTS())) {s = 64;} - else if ( (LA60_14==DATETIME) && (synpred27_FTS())) {s = 65;} - else if ( (LA60_14==URI) && (synpred27_FTS())) {s = 66;} - else if ( (LA60_14==EQUALS) && (synpred31_FTS())) {s = 67;} + if ( (LA69_3==STAR) ) {s = 20;} + else if ( (LA69_3==COMMA||LA69_3==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_3==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_3==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_3==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_3==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_3==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_3==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_3==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_3==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_3==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_3==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_3==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_3==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_3==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_3==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_3==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_3==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_3==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_3==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_3==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_3==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_3==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_3==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_3==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_3==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_3==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_3==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_3==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_14); + input.seek(index69_3); if ( s>=0 ) return s; break; case 34 : - int LA60_119 = input.LA(1); + int LA69_5 = input.LA(1); - int index60_119 = input.index(); + int index69_5 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (LA69_5==STAR) ) {s = 20;} + else if ( (LA69_5==COMMA||LA69_5==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_5==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_5==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_5==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_5==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_5==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_5==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_5==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_5==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_5==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_5==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_5==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_5==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_5==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_5==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_5==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_5==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_5==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_5==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_5==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_5==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_5==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_5==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_5==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_5==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_5==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_5==MINUS) && (synpred34_FTS())) {s = 47;} - input.seek(index60_119); + input.seek(index69_5); if ( s>=0 ) return s; break; case 35 : - int LA60_156 = input.LA(1); + int LA69_0 = input.LA(1); - int index60_156 = input.index(); + int index69_0 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 184;} + if ( (LA69_0==ID) ) {s = 1;} + else if ( (LA69_0==FTSWORD) ) {s = 2;} + else if ( (LA69_0==FTSPRE) ) {s = 3;} + else if ( (LA69_0==FTSWILD) ) {s = 4;} + else if ( (LA69_0==NOT) ) {s = 5;} + else if ( (LA69_0==TO) ) {s = 6;} + else if ( (LA69_0==DECIMAL_INTEGER_LITERAL) ) {s = 7;} + else if ( (LA69_0==FLOATING_POINT_LITERAL) ) {s = 8;} + else if ( (LA69_0==DATETIME) ) {s = 9;} + else if ( (LA69_0==STAR) ) {s = 10;} + else if ( (LA69_0==URI) ) {s = 11;} + else if ( (LA69_0==COMMA||LA69_0==DOT) && (synpred34_FTS())) {s = 12;} + else if ( (LA69_0==QUESTION_MARK) && (synpred34_FTS())) {s = 13;} + else if ( (LA69_0==EQUALS) ) {s = 14;} + else if ( (LA69_0==FTSPHRASE) ) {s = 15;} + else if ( (LA69_0==TILDA) ) {s = 16;} + else if ( (LA69_0==LSQUARE) && (synpred46_FTS())) {s = 17;} + else if ( (LA69_0==LT) && (synpred46_FTS())) {s = 18;} + else if ( (LA69_0==LPAREN) ) {s = 19;} - input.seek(index60_156); + input.seek(index69_0); if ( s>=0 ) return s; break; case 36 : - int LA60_8 = input.LA(1); + int LA69_6 = input.LA(1); - int index60_8 = input.index(); + int index69_6 = input.index(); input.rewind(); s = -1; - if ( (LA60_8==STAR) ) {s = 20;} - else if ( (LA60_8==COMMA||LA60_8==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_8==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_8==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_8==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_8==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_8==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_8==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_8==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_8==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_8==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_8==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_8==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_8==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_8==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_8==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_8==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_8==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_8==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_8==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_8==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_8==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_8==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_8==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_8==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_8==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_8==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_8==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_8==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_6==STAR) ) {s = 20;} + else if ( (LA69_6==COMMA||LA69_6==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_6==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_6==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_6==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_6==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_6==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_6==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_6==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_6==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_6==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_6==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_6==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_6==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_6==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_6==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_6==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_6==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_6==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_6==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_6==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_6==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_6==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_6==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_6==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_6==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_6==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_6==MINUS) && (synpred34_FTS())) {s = 47;} - input.seek(index60_8); + input.seek(index69_6); if ( s>=0 ) return s; break; case 37 : - int LA60_53 = input.LA(1); + int LA69_174 = input.LA(1); - int index60_53 = input.index(); + int index69_174 = input.index(); input.rewind(); s = -1; - if ( (LA60_53==STAR) ) {s = 20;} - else if ( (LA60_53==COMMA||LA60_53==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_53==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_53==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_53==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_53==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_53==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_53==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_53==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_53==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_53==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_53==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_53==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_53==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_53==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_53==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_53==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_53==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_53==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_53==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_53==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_53==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_53==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_53==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_53==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_53==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_53==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_53==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_53==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (LA69_174==ID) ) {s = 111;} + else if ( (LA69_174==FTSWORD) ) {s = 112;} + else if ( (LA69_174==FTSPRE) ) {s = 113;} + else if ( (LA69_174==FTSWILD) ) {s = 114;} + else if ( (LA69_174==NOT) ) {s = 115;} + else if ( (LA69_174==TO) ) {s = 116;} + else if ( (LA69_174==DECIMAL_INTEGER_LITERAL) ) {s = 117;} + else if ( (LA69_174==FLOATING_POINT_LITERAL) ) {s = 118;} + else if ( (LA69_174==DATETIME) ) {s = 119;} + else if ( (LA69_174==STAR) ) {s = 185;} + else if ( (LA69_174==URI) ) {s = 121;} + else if ( (LA69_174==CARAT) && (synpred34_FTS())) {s = 124;} + else if ( (LA69_174==AND) && (synpred34_FTS())) {s = 125;} + else if ( (LA69_174==AMP) && (synpred34_FTS())) {s = 126;} + else if ( (LA69_174==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_174==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_174==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_174==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_174==COMMA||LA69_174==DOT) && (synpred34_FTS())) {s = 173;} + else if ( (LA69_174==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_174==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_174==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_174==TILDA) && (synpred34_FTS())) {s = 186;} + else if ( (LA69_174==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_174==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_174==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_174==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_174==MINUS) && (synpred34_FTS())) {s = 47;} - input.seek(index60_53); + input.seek(index69_174); if ( s>=0 ) return s; break; case 38 : - int LA60_114 = input.LA(1); + int LA69_4 = input.LA(1); - int index60_114 = input.index(); + int index69_4 = input.index(); input.rewind(); s = -1; - if ( (synpred24_FTS()) ) {s = 130;} - else if ( (synpred25_FTS()) ) {s = 155;} + if ( (LA69_4==STAR) ) {s = 20;} + else if ( (LA69_4==COMMA||LA69_4==DOT) && (synpred34_FTS())) {s = 21;} + else if ( (LA69_4==TILDA) && (synpred34_FTS())) {s = 22;} + else if ( (LA69_4==CARAT) && (synpred34_FTS())) {s = 23;} + else if ( (LA69_4==AND) && (synpred34_FTS())) {s = 24;} + else if ( (LA69_4==AMP) && (synpred34_FTS())) {s = 25;} + else if ( (LA69_4==RPAREN) && (synpred34_FTS())) {s = 26;} + else if ( (LA69_4==OR) && (synpred34_FTS())) {s = 27;} + else if ( (LA69_4==BAR) && (synpred34_FTS())) {s = 28;} + else if ( (LA69_4==NOT) && (synpred34_FTS())) {s = 29;} + else if ( (LA69_4==ID) && (synpred34_FTS())) {s = 30;} + else if ( (LA69_4==FTSWORD) && (synpred34_FTS())) {s = 31;} + else if ( (LA69_4==FTSPRE) && (synpred34_FTS())) {s = 32;} + else if ( (LA69_4==FTSWILD) && (synpred34_FTS())) {s = 33;} + else if ( (LA69_4==EXCLAMATION) && (synpred34_FTS())) {s = 34;} + else if ( (LA69_4==TO) && (synpred34_FTS())) {s = 35;} + else if ( (LA69_4==DECIMAL_INTEGER_LITERAL) && (synpred34_FTS())) {s = 36;} + else if ( (LA69_4==FLOATING_POINT_LITERAL) && (synpred34_FTS())) {s = 37;} + else if ( (LA69_4==DATETIME) && (synpred34_FTS())) {s = 38;} + else if ( (LA69_4==URI) && (synpred34_FTS())) {s = 39;} + else if ( (LA69_4==QUESTION_MARK) && (synpred34_FTS())) {s = 40;} + else if ( (LA69_4==EQUALS) && (synpred34_FTS())) {s = 41;} + else if ( (LA69_4==FTSPHRASE) && (synpred34_FTS())) {s = 42;} + else if ( (LA69_4==LSQUARE) && (synpred34_FTS())) {s = 43;} + else if ( (LA69_4==LT) && (synpred34_FTS())) {s = 44;} + else if ( (LA69_4==LPAREN) && (synpred34_FTS())) {s = 45;} + else if ( (LA69_4==PLUS) && (synpred34_FTS())) {s = 46;} + else if ( (LA69_4==MINUS) && (synpred34_FTS())) {s = 47;} + else if ( (LA69_4==DOTDOT) && (synpred46_FTS())) {s = 48;} - input.seek(index60_114); + input.seek(index69_4); if ( s>=0 ) return s; break; case 39 : - int LA60_10 = input.LA(1); + int LA69_119 = input.LA(1); - int index60_10 = input.index(); + int index69_119 = input.index(); input.rewind(); s = -1; - if ( (LA60_10==STAR) ) {s = 20;} - else if ( (LA60_10==COMMA||LA60_10==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_10==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_10==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_10==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_10==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_10==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_10==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_10==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_10==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_10==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_10==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_10==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_10==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_10==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_10==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_10==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_10==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_10==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_10==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_10==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_10==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_10==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_10==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_10==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_10==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_10==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_10==MINUS) && (synpred25_FTS())) {s = 47;} - else if ( (LA60_10==DOTDOT) && (synpred37_FTS())) {s = 48;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 155;} - input.seek(index60_10); + input.seek(index69_119); if ( s>=0 ) return s; break; case 40 : - int LA60_6 = input.LA(1); + int LA69_161 = input.LA(1); - int index60_6 = input.index(); + int index69_161 = input.index(); input.rewind(); s = -1; - if ( (LA60_6==STAR) ) {s = 20;} - else if ( (LA60_6==COMMA||LA60_6==DOT) && (synpred25_FTS())) {s = 21;} - else if ( (LA60_6==TILDA) && (synpred25_FTS())) {s = 22;} - else if ( (LA60_6==CARAT) && (synpred25_FTS())) {s = 23;} - else if ( (LA60_6==AND) && (synpred25_FTS())) {s = 24;} - else if ( (LA60_6==AMP) && (synpred25_FTS())) {s = 25;} - else if ( (LA60_6==RPAREN) && (synpred25_FTS())) {s = 26;} - else if ( (LA60_6==OR) && (synpred25_FTS())) {s = 27;} - else if ( (LA60_6==BAR) && (synpred25_FTS())) {s = 28;} - else if ( (LA60_6==NOT) && (synpred25_FTS())) {s = 29;} - else if ( (LA60_6==ID) && (synpred25_FTS())) {s = 30;} - else if ( (LA60_6==FTSWORD) && (synpred25_FTS())) {s = 31;} - else if ( (LA60_6==FTSPRE) && (synpred25_FTS())) {s = 32;} - else if ( (LA60_6==FTSWILD) && (synpred25_FTS())) {s = 33;} - else if ( (LA60_6==EXCLAMATION) && (synpred25_FTS())) {s = 34;} - else if ( (LA60_6==TO) && (synpred25_FTS())) {s = 35;} - else if ( (LA60_6==DECIMAL_INTEGER_LITERAL) && (synpred25_FTS())) {s = 36;} - else if ( (LA60_6==FLOATING_POINT_LITERAL) && (synpred25_FTS())) {s = 37;} - else if ( (LA60_6==DATETIME) && (synpred25_FTS())) {s = 38;} - else if ( (LA60_6==URI) && (synpred25_FTS())) {s = 39;} - else if ( (LA60_6==QUESTION_MARK) && (synpred25_FTS())) {s = 40;} - else if ( (LA60_6==EQUALS) && (synpred25_FTS())) {s = 41;} - else if ( (LA60_6==FTSPHRASE) && (synpred25_FTS())) {s = 42;} - else if ( (LA60_6==LSQUARE) && (synpred25_FTS())) {s = 43;} - else if ( (LA60_6==LT) && (synpred25_FTS())) {s = 44;} - else if ( (LA60_6==LPAREN) && (synpred25_FTS())) {s = 45;} - else if ( (LA60_6==PLUS) && (synpred25_FTS())) {s = 46;} - else if ( (LA60_6==MINUS) && (synpred25_FTS())) {s = 47;} + if ( (synpred33_FTS()) ) {s = 130;} + else if ( (synpred34_FTS()) ) {s = 184;} + else if ( (synpred46_FTS()) ) {s = 48;} - input.seek(index60_6); + input.seek(index69_161); if ( s>=0 ) return s; break; } if (state.backtracking>0) {state.failed=true; return -1;} NoViableAltException nvae = - new NoViableAltException(getDescription(), 60, _s, input); + new NoViableAltException(getDescription(), 69, _s, input); error(nvae); throw nvae; } } - static final String DFA73_eotS = + static final String DFA84_eotS = "\u01ca\uffff"; - static final String DFA73_eofS = + static final String DFA84_eofS = "\2\uffff\13\33\1\uffff\13\42\1\uffff\1\70\1\uffff\5\33\1\130\1\uffff\5"+ "\42\37\uffff\1\70\37\uffff\1\130\1\u009c\21\uffff\1\u00c1\60\uffff\1\u009c"+ "\44\uffff\1\u00c1\5\uffff\1\u00f4\6\uffff\1\u0115\45\uffff\2\u00f4\37"+ "\uffff\2\u0115\1\u015c\22\uffff\1\u0182\61\uffff\2\u015c\44\uffff\2\u0182"+ "\27\uffff\1\u015c\22\uffff\1\u0182\14\uffff"; - static final String DFA73_minS = + static final String DFA84_minS = "\1\13\1\15\13\4\1\5\13\4\1\5\1\4\1\uffff\6\4\1\uffff\5\4\13\13\1\5\23"+ "\uffff\1\4\13\13\1\5\23\uffff\2\4\1\uffff\5\13\1\0\12\13\1\4\1\uffff\5"+ "\13\1\0\25\13\1\5\23\uffff\1\4\5\uffff\13\13\1\5\23\uffff\1\4\5\uffff"+ "\1\4\6\13\1\4\21\13\1\5\23\uffff\2\4\13\13\1\5\23\uffff\3\4\21\13\1\5"+ "\1\4\21\13\1\5\13\0\1\5\23\uffff\2\4\5\13\13\0\1\5\23\uffff\2\4\5\13\21"+ "\0\1\5\1\4\21\0\1\5\1\4\14\0"; - static final String DFA73_maxS = + static final String DFA84_maxS = "\15\150\1\146\13\150\1\146\1\150\1\uffff\6\150\1\uffff\5\150\13\25\1\146"+ "\23\uffff\1\150\13\25\1\146\23\uffff\2\150\1\uffff\5\25\1\0\12\25\1\150"+ "\1\uffff\5\25\1\0\25\25\1\146\23\uffff\1\150\5\uffff\13\25\1\146\23\uffff"+ @@ -21139,39 +26867,39 @@ public class FTSParser extends Parser { "\23\uffff\3\150\21\25\1\146\1\150\21\25\1\146\13\0\1\146\23\uffff\2\150"+ "\5\25\13\0\1\146\23\uffff\2\150\5\25\21\0\1\146\1\150\21\0\1\146\1\150"+ "\14\0"; - static final String DFA73_acceptS = + static final String DFA84_acceptS = "\33\uffff\1\22\6\uffff\1\21\21\uffff\23\20\15\uffff\23\17\2\uffff\1\16"+ "\21\uffff\1\15\34\uffff\23\14\1\uffff\1\2\1\4\1\6\1\10\1\12\14\uffff\23"+ "\13\1\uffff\1\1\1\3\1\5\1\7\1\11\32\uffff\23\10\16\uffff\23\7\64\uffff"+ "\23\4\23\uffff\23\3\71\uffff"; - static final String DFA73_specialS = - "\32\uffff\1\52\6\uffff\1\131\6\uffff\1\14\1\46\1\40\1\121\1\21\1\u008b"+ - "\1\60\1\146\1\135\1\62\1\u00e9\24\uffff\1\u00aa\1\173\1\144\1\125\1\u0088"+ - "\1\u00b3\1\u00ee\1\151\1\132\1\u0091\1\170\1\70\24\uffff\1\u00d0\1\31"+ - "\1\uffff\1\156\1\u0087\1\u00f3\1\103\1\163\1\53\1\47\1\41\1\122\1\22\1"+ - "\u008c\1\61\1\147\1\136\1\63\1\u00ea\1\124\1\uffff\1\76\1\u00a1\1\u009a"+ - "\1\u00cc\1\20\1\u009b\1\145\1\126\1\u0089\1\u00b4\1\u00ef\1\152\1\133"+ - "\1\u0092\1\171\1\71\1\15\1\101\1\54\1\120\1\u009e\1\72\1\u00b6\1\u00cd"+ - "\1\u00ed\1\u00b1\1\12\24\uffff\1\154\5\uffff\1\u00c3\1\u00f1\1\42\1\73"+ - "\1\u00a6\1\u00e0\1\164\1\u0084\1\u00a7\1\160\1\u00e5\24\uffff\1\u00b8"+ - "\5\uffff\1\u00b7\1\u0080\1\u00eb\1\35\1\102\1\127\1\u00d8\1\1\1\u00d6"+ - "\1\165\1\u0090\1\u00ab\1\u00c7\1\u0099\1\65\1\u0094\1\u00b2\1\u00a5\1"+ - "\u00c5\1\153\1\4\1\105\1\134\1\45\1\161\24\uffff\1\u00d9\1\u00af\1\u00dd"+ - "\1\115\1\162\1\u0083\1\u00c4\1\67\1\u00e6\1\37\1\104\1\17\1\140\24\uffff"+ - "\1\100\1\u00d3\1\u0093\1\44\1\30\1\75\1\123\1\172\1\137\1\111\1\u00b9"+ - "\1\u00ca\1\u00e3\1\u00d7\1\u008d\1\56\1\117\1\155\1\u0081\1\u00b5\1\uffff"+ - "\1\0\1\u00cf\1\u00ac\1\u00c8\1\u00e7\1\27\1\u00d4\1\32\1\167\1\u0097\1"+ - "\u00b0\1\u00f0\1\143\1\u00db\1\3\1\64\1\50\1\177\1\uffff\1\u0098\1\10"+ - "\1\51\1\141\1\13\1\u00c2\1\u008a\1\u00a9\1\u00bf\1\u00de\1\33\24\uffff"+ - "\1\u00bc\1\u0082\1\u0095\1\7\1\55\1\116\1\u0096\1\113\1\u00da\1\2\1\107"+ - "\1\110\1\u00ad\1\157\1\u008e\1\u00a8\1\u00e4\1\u00ec\24\uffff\1\66\1\u00be"+ - "\1\u00df\1\u00ae\1\u00cb\1\u00e1\1\24\1\43\1\112\1\150\1\u0086\1\u00a3"+ - "\1\u00d5\1\166\1\5\1\106\1\142\1\26\1\u00ce\1\u008f\1\u00a0\1\u00c0\1"+ - "\u00dc\1\36\1\uffff\1\u009f\1\u00bd\1\25\1\77\1\130\1\174\1\u00a2\1\57"+ - "\1\u00e2\1\34\1\6\1\11\1\u0085\1\175\1\u009c\1\u00bb\1\u00c6\1\u00c1\1"+ - "\uffff\1\u00e8\1\u00a4\1\u00d1\1\u00f2\1\23\1\74\1\16\1\114\1\176\1\u009d"+ - "\1\u00ba\1\u00c9\1\u00d2}>"; - static final String[] DFA73_transitionS = { + static final String DFA84_specialS = + "\32\uffff\1\u00f3\6\uffff\1\u00eb\6\uffff\1\u0087\1\u0096\1\u00d9\1\u00c5"+ + "\1\u00bc\1\21\1\u00a6\1\u00d5\1\u00d0\1\u009e\1\160\24\uffff\1\162\1\u0088"+ + "\1\u00ad\1\u00e6\1\33\1\64\1\17\1\170\1\u00e1\1\43\1\164\1\110\24\uffff"+ + "\1\u008e\1\104\1\uffff\1\u00ec\1\24\1\121\1\u0082\1\u00ba\1\u00a7\1\u0097"+ + "\1\u00da\1\u00c6\1\u00bd\1\22\1\u00a8\1\u00d6\1\u00d1\1\u009f\1\161\1"+ + "\146\1\uffff\1\116\1\u00cc\1\6\1\103\1\u00b3\1\60\1\u00ae\1\u00e7\1\34"+ + "\1\65\1\20\1\171\1\u00e2\1\44\1\165\1\111\1\172\1\u00aa\1\u00cb\1\u00e0"+ + "\1\26\1\u00cf\1\41\1\100\1\131\1\73\1\u00a4\24\uffff\1\122\5\uffff\1\51"+ + "\1\101\1\130\1\u0083\1\47\1\151\1\u00e5\1\14\1\55\1\u00e9\1\115\24\uffff"+ + "\1\166\5\uffff\1\106\1\15\1\135\1\u0080\1\u009b\1\u00c0\1\107\1\163\1"+ + "\147\1\u00f1\1\32\1\74\1\127\1\u00d3\1\136\1\u00b6\1\u00df\1\4\1\u00f2"+ + "\1\u009a\1\153\1\133\1\173\1\u008a\1\u00ca\24\uffff\1\u00e3\1\u00f0\1"+ + "\12\1\176\1\u00a5\1\u00c3\1\u0084\1\77\1\2\1\53\1\113\1\126\1\u008d\24"+ + "\uffff\1\114\1\3\1\u0092\1\u00c4\1\u00d4\1\u00ef\1\27\1\70\1\7\1\1\1\u008c"+ + "\1\u00ab\1\u0095\1\u00a1\1\150\1\11\1\52\1\112\1\35\1\u008f\1\uffff\1"+ + "\u00ea\1\36\1\117\1\157\1\u0090\1\u00b1\1\167\1\u00b0\1\62\1\42\1\102"+ + "\1\134\1\u00dc\1\u00a0\1\u00c1\1\u00de\1\u00ee\1\71\1\uffff\1\140\1\61"+ + "\1\120\1\154\1\174\1\u00c7\1\u009d\1\u00ce\1\u00e8\1\16\1\13\24\uffff"+ + "\1\u00d8\1\u00a3\1\66\1\144\1\u0089\1\u00a9\1\u00be\1\67\1\u00db\1\23"+ + "\1\75\1\u009c\1\132\1\141\1\177\1\u0098\1\u00b5\1\u00b8\24\uffff\1\76"+ + "\1\5\1\142\1\u00c2\1\u00dd\1\10\1\50\1\u0093\1\123\1\145\1\u0086\1\u00a2"+ + "\1\57\1\45\1\u00e4\1\31\1\63\1\105\1\u0085\1\137\1\175\1\u0099\1\u00c8"+ + "\1\u00b9\1\uffff\1\155\1\37\1\u00bb\1\u00d7\1\0\1\54\1\u00c9\1\u00bf\1"+ + "\u00ac\1\u0094\1\u00b4\1\25\1\46\1\56\1\125\1\156\1\u008b\1\u0081\1\uffff"+ + "\1\u00af\1\u00cd\1\30\1\72\1\124\1\152\1\u00b7\1\40\1\u0091\1\u00b2\1"+ + "\u00d2\1\u00ed\1\143}>"; + static final String[] DFA84_transitionS = { "\1\1\1\uffff\1\14\1\uffff\1\10\5\uffff\1\1\31\uffff\1\11\3\uffff\1\4"+ "\1\5\1\3\11\uffff\1\2\16\uffff\1\6\11\uffff\1\13\7\uffff\1\12\5\uffff"+ "\1\7\1\uffff\1\15", @@ -21849,38 +27577,38 @@ public class FTSParser extends Parser { "\1\uffff" }; - static final short[] DFA73_eot = DFA.unpackEncodedString(DFA73_eotS); - static final short[] DFA73_eof = DFA.unpackEncodedString(DFA73_eofS); - static final char[] DFA73_min = DFA.unpackEncodedStringToUnsignedChars(DFA73_minS); - static final char[] DFA73_max = DFA.unpackEncodedStringToUnsignedChars(DFA73_maxS); - static final short[] DFA73_accept = DFA.unpackEncodedString(DFA73_acceptS); - static final short[] DFA73_special = DFA.unpackEncodedString(DFA73_specialS); - static final short[][] DFA73_transition; + static final short[] DFA84_eot = DFA.unpackEncodedString(DFA84_eotS); + static final short[] DFA84_eof = DFA.unpackEncodedString(DFA84_eofS); + static final char[] DFA84_min = DFA.unpackEncodedStringToUnsignedChars(DFA84_minS); + static final char[] DFA84_max = DFA.unpackEncodedStringToUnsignedChars(DFA84_maxS); + static final short[] DFA84_accept = DFA.unpackEncodedString(DFA84_acceptS); + static final short[] DFA84_special = DFA.unpackEncodedString(DFA84_specialS); + static final short[][] DFA84_transition; static { - int numStates = DFA73_transitionS.length; - DFA73_transition = new short[numStates][]; + int numStates = DFA84_transitionS.length; + DFA84_transition = new short[numStates][]; for (int i=0; i ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase );"; + return "870:1: ftsWord : ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase );"; } @Override public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { @@ -21888,4044 +27616,4044 @@ public class FTSParser extends Parser { int _s = s; switch ( s ) { case 0 : - int LA73_313 = input.LA(1); + int LA84_430 = input.LA(1); - int index73_313 = input.index(); + int index84_430 = input.index(); input.rewind(); s = -1; - if ( (LA73_313==ID) ) {s = 370;} - else if ( (LA73_313==FTSWORD) ) {s = 371;} - else if ( (LA73_313==FTSPRE) ) {s = 372;} - else if ( (LA73_313==FTSWILD) ) {s = 373;} - else if ( (LA73_313==NOT) ) {s = 374;} - else if ( (LA73_313==TO) ) {s = 375;} - else if ( (LA73_313==DECIMAL_INTEGER_LITERAL) ) {s = 376;} - else if ( (LA73_313==FLOATING_POINT_LITERAL) ) {s = 377;} - else if ( (LA73_313==STAR) ) {s = 378;} - else if ( (LA73_313==QUESTION_MARK) ) {s = 379;} - else if ( (LA73_313==DATETIME) ) {s = 380;} - else if ( (LA73_313==URI) ) {s = 381;} - else if ( (LA73_313==TILDA) && (synpred43_FTS())) {s = 382;} - else if ( (LA73_313==CARAT) && (synpred43_FTS())) {s = 383;} - else if ( (LA73_313==AND) && (synpred43_FTS())) {s = 384;} - else if ( (LA73_313==AMP) && (synpred43_FTS())) {s = 385;} - else if ( (LA73_313==EOF) && (synpred43_FTS())) {s = 386;} - else if ( (LA73_313==RPAREN) && (synpred43_FTS())) {s = 387;} - else if ( (LA73_313==OR) && (synpred43_FTS())) {s = 388;} - else if ( (LA73_313==BAR) && (synpred43_FTS())) {s = 389;} - else if ( (LA73_313==EXCLAMATION) && (synpred43_FTS())) {s = 390;} - else if ( (LA73_313==AT) && (synpred43_FTS())) {s = 391;} - else if ( (LA73_313==FTSPHRASE) && (synpred43_FTS())) {s = 392;} - else if ( (LA73_313==LSQUARE) && (synpred43_FTS())) {s = 393;} - else if ( (LA73_313==LT) && (synpred43_FTS())) {s = 394;} - else if ( (LA73_313==COMMA||LA73_313==DOT) && (synpred43_FTS())) {s = 395;} - else if ( (LA73_313==EQUALS) && (synpred43_FTS())) {s = 396;} - else if ( (LA73_313==LPAREN) && (synpred43_FTS())) {s = 397;} - else if ( (LA73_313==PERCENT) && (synpred43_FTS())) {s = 398;} - else if ( (LA73_313==PLUS) && (synpred43_FTS())) {s = 399;} - else if ( (LA73_313==MINUS) && (synpred43_FTS())) {s = 400;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_313); + input.seek(index84_430); if ( s>=0 ) return s; break; case 1 : - int LA73_221 = input.LA(1); + int LA84_301 = input.LA(1); - int index73_221 = input.index(); + int index84_301 = input.index(); input.rewind(); s = -1; - if ( (LA73_221==ID) ) {s = 261;} - else if ( (LA73_221==FTSWORD) ) {s = 262;} - else if ( (LA73_221==FTSPRE) ) {s = 263;} - else if ( (LA73_221==FTSWILD) ) {s = 264;} - else if ( (LA73_221==NOT) ) {s = 265;} - else if ( (LA73_221==TO) ) {s = 266;} - else if ( (LA73_221==DECIMAL_INTEGER_LITERAL) ) {s = 267;} - else if ( (LA73_221==FLOATING_POINT_LITERAL) ) {s = 268;} - else if ( (LA73_221==STAR) ) {s = 269;} - else if ( (LA73_221==QUESTION_MARK) ) {s = 270;} - else if ( (LA73_221==DATETIME) ) {s = 271;} - else if ( (LA73_221==URI) ) {s = 272;} - else if ( (LA73_221==TILDA) && (synpred47_FTS())) {s = 273;} - else if ( (LA73_221==CARAT) && (synpred47_FTS())) {s = 274;} - else if ( (LA73_221==AND) && (synpred47_FTS())) {s = 275;} - else if ( (LA73_221==AMP) && (synpred47_FTS())) {s = 276;} - else if ( (LA73_221==EOF) && (synpred47_FTS())) {s = 277;} - else if ( (LA73_221==RPAREN) && (synpred47_FTS())) {s = 278;} - else if ( (LA73_221==OR) && (synpred47_FTS())) {s = 279;} - else if ( (LA73_221==BAR) && (synpred47_FTS())) {s = 280;} - else if ( (LA73_221==EXCLAMATION) && (synpred47_FTS())) {s = 281;} - else if ( (LA73_221==AT) && (synpred47_FTS())) {s = 282;} - else if ( (LA73_221==FTSPHRASE) && (synpred47_FTS())) {s = 283;} - else if ( (LA73_221==LSQUARE) && (synpred47_FTS())) {s = 284;} - else if ( (LA73_221==LT) && (synpred47_FTS())) {s = 285;} - else if ( (LA73_221==COMMA||LA73_221==DOT) && (synpred47_FTS())) {s = 286;} - else if ( (LA73_221==EQUALS) && (synpred47_FTS())) {s = 287;} - else if ( (LA73_221==LPAREN) && (synpred47_FTS())) {s = 288;} - else if ( (LA73_221==PERCENT) && (synpred47_FTS())) {s = 289;} - else if ( (LA73_221==PLUS) && (synpred47_FTS())) {s = 290;} - else if ( (LA73_221==MINUS) && (synpred47_FTS())) {s = 291;} + if ( (LA84_301==COMMA||LA84_301==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_221); + input.seek(index84_301); if ( s>=0 ) return s; break; case 2 : - int LA73_372 = input.LA(1); + int LA84_267 = input.LA(1); - int index73_372 = input.index(); + int index84_267 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_267==COMMA||LA84_267==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_372); + input.seek(index84_267); if ( s>=0 ) return s; break; case 3 : - int LA73_327 = input.LA(1); + int LA84_293 = input.LA(1); - int index73_327 = input.index(); + int index84_293 = input.index(); input.rewind(); s = -1; - if ( (LA73_327==COMMA||LA73_327==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_293==ID) ) {s = 320;} + else if ( (LA84_293==FTSWORD) ) {s = 321;} + else if ( (LA84_293==FTSPRE) ) {s = 322;} + else if ( (LA84_293==FTSWILD) ) {s = 323;} + else if ( (LA84_293==NOT) ) {s = 324;} + else if ( (LA84_293==TO) ) {s = 325;} + else if ( (LA84_293==DECIMAL_INTEGER_LITERAL) ) {s = 326;} + else if ( (LA84_293==FLOATING_POINT_LITERAL) ) {s = 327;} + else if ( (LA84_293==STAR) ) {s = 328;} + else if ( (LA84_293==QUESTION_MARK) ) {s = 329;} + else if ( (LA84_293==DATETIME) ) {s = 330;} + else if ( (LA84_293==URI) ) {s = 331;} + else if ( (LA84_293==TILDA) && (synpred55_FTS())) {s = 273;} + else if ( (LA84_293==CARAT) && (synpred55_FTS())) {s = 274;} + else if ( (LA84_293==AND) && (synpred55_FTS())) {s = 275;} + else if ( (LA84_293==AMP) && (synpred55_FTS())) {s = 276;} + else if ( (LA84_293==EOF) && (synpred55_FTS())) {s = 277;} + else if ( (LA84_293==RPAREN) && (synpred55_FTS())) {s = 278;} + else if ( (LA84_293==OR) && (synpred55_FTS())) {s = 279;} + else if ( (LA84_293==BAR) && (synpred55_FTS())) {s = 280;} + else if ( (LA84_293==EXCLAMATION) && (synpred55_FTS())) {s = 281;} + else if ( (LA84_293==AT) && (synpred55_FTS())) {s = 282;} + else if ( (LA84_293==FTSPHRASE) && (synpred55_FTS())) {s = 283;} + else if ( (LA84_293==LSQUARE) && (synpred55_FTS())) {s = 284;} + else if ( (LA84_293==LT) && (synpred55_FTS())) {s = 285;} + else if ( (LA84_293==COMMA||LA84_293==DOT) && (synpred55_FTS())) {s = 286;} + else if ( (LA84_293==EQUALS) && (synpred55_FTS())) {s = 287;} + else if ( (LA84_293==LPAREN) && (synpred55_FTS())) {s = 288;} + else if ( (LA84_293==PERCENT) && (synpred55_FTS())) {s = 289;} + else if ( (LA84_293==PLUS) && (synpred55_FTS())) {s = 290;} + else if ( (LA84_293==MINUS) && (synpred55_FTS())) {s = 291;} - input.seek(index73_327); + input.seek(index84_293); if ( s>=0 ) return s; break; case 4 : - int LA73_234 = input.LA(1); + int LA84_231 = input.LA(1); - int index73_234 = input.index(); + int index84_231 = input.index(); input.rewind(); s = -1; - if ( (LA73_234==COMMA||LA73_234==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_231==COMMA||LA84_231==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_234); + input.seek(index84_231); if ( s>=0 ) return s; break; case 5 : - int LA73_415 = input.LA(1); + int LA84_402 = input.LA(1); - int index73_415 = input.index(); + int index84_402 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_402==ID) ) {s = 433;} + else if ( (LA84_402==FTSWORD) ) {s = 434;} + else if ( (LA84_402==FTSPRE) ) {s = 435;} + else if ( (LA84_402==FTSWILD) ) {s = 436;} + else if ( (LA84_402==NOT) ) {s = 437;} + else if ( (LA84_402==TO) ) {s = 438;} + else if ( (LA84_402==DECIMAL_INTEGER_LITERAL) ) {s = 439;} + else if ( (LA84_402==FLOATING_POINT_LITERAL) ) {s = 440;} + else if ( (LA84_402==STAR) ) {s = 441;} + else if ( (LA84_402==QUESTION_MARK) ) {s = 442;} + else if ( (LA84_402==DATETIME) ) {s = 443;} + else if ( (LA84_402==URI) ) {s = 444;} + else if ( (LA84_402==TILDA) && (synpred51_FTS())) {s = 382;} + else if ( (LA84_402==CARAT) && (synpred51_FTS())) {s = 383;} + else if ( (LA84_402==AND) && (synpred51_FTS())) {s = 384;} + else if ( (LA84_402==AMP) && (synpred51_FTS())) {s = 385;} + else if ( (LA84_402==EOF) && (synpred51_FTS())) {s = 386;} + else if ( (LA84_402==RPAREN) && (synpred51_FTS())) {s = 387;} + else if ( (LA84_402==OR) && (synpred51_FTS())) {s = 388;} + else if ( (LA84_402==BAR) && (synpred51_FTS())) {s = 389;} + else if ( (LA84_402==EXCLAMATION) && (synpred51_FTS())) {s = 390;} + else if ( (LA84_402==AT) && (synpred51_FTS())) {s = 391;} + else if ( (LA84_402==FTSPHRASE) && (synpred51_FTS())) {s = 392;} + else if ( (LA84_402==LSQUARE) && (synpred51_FTS())) {s = 393;} + else if ( (LA84_402==LT) && (synpred51_FTS())) {s = 394;} + else if ( (LA84_402==COMMA||LA84_402==DOT) && (synpred51_FTS())) {s = 395;} + else if ( (LA84_402==EQUALS) && (synpred51_FTS())) {s = 396;} + else if ( (LA84_402==LPAREN) && (synpred51_FTS())) {s = 397;} + else if ( (LA84_402==PERCENT) && (synpred51_FTS())) {s = 398;} + else if ( (LA84_402==PLUS) && (synpred51_FTS())) {s = 399;} + else if ( (LA84_402==MINUS) && (synpred51_FTS())) {s = 400;} - input.seek(index73_415); + input.seek(index84_402); if ( s>=0 ) return s; break; case 6 : - int LA73_436 = input.LA(1); + int LA84_126 = input.LA(1); - int index73_436 = input.index(); + int index84_126 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_126==COMMA||LA84_126==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_436); + input.seek(index84_126); if ( s>=0 ) return s; break; case 7 : - int LA73_366 = input.LA(1); + int LA84_300 = input.LA(1); - int index73_366 = input.index(); + int index84_300 = input.index(); input.rewind(); s = -1; - if ( (LA73_366==COMMA||LA73_366==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_300==COMMA||LA84_300==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_366); + input.seek(index84_300); if ( s>=0 ) return s; break; case 8 : - int LA73_333 = input.LA(1); + int LA84_406 = input.LA(1); - int index73_333 = input.index(); + int index84_406 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_406==COMMA||LA84_406==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_333); + input.seek(index84_406); if ( s>=0 ) return s; break; case 9 : - int LA73_437 = input.LA(1); + int LA84_307 = input.LA(1); - int index73_437 = input.index(); + int index84_307 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_307==COMMA||LA84_307==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_437); + input.seek(index84_307); if ( s>=0 ) return s; break; case 10 : - int LA73_150 = input.LA(1); + int LA84_261 = input.LA(1); - int index73_150 = input.index(); + int index84_261 = input.index(); input.rewind(); s = -1; - if ( (LA73_150==COMMA||LA73_150==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_261==COMMA||LA84_261==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_150); + input.seek(index84_261); if ( s>=0 ) return s; break; case 11 : - int LA73_336 = input.LA(1); + int LA84_342 = input.LA(1); - int index73_336 = input.index(); + int index84_342 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_336); + input.seek(index84_342); if ( s>=0 ) return s; break; case 12 : - int LA73_40 = input.LA(1); + int LA84_184 = input.LA(1); - int index73_40 = input.index(); + int index84_184 = input.index(); input.rewind(); s = -1; - if ( (LA73_40==COMMA||LA73_40==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_184==COMMA||LA84_184==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_40); + input.seek(index84_184); if ( s>=0 ) return s; break; case 13 : - int LA73_140 = input.LA(1); + int LA84_215 = input.LA(1); - int index73_140 = input.index(); + int index84_215 = input.index(); input.rewind(); s = -1; - if ( (LA73_140==COMMA||LA73_140==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_215==DOT) ) {s = 259;} + else if ( (LA84_215==COMMA) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_140); + input.seek(index84_215); if ( s>=0 ) return s; break; case 14 : - int LA73_451 = input.LA(1); + int LA84_341 = input.LA(1); - int index73_451 = input.index(); + int index84_341 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_451); + input.seek(index84_341); if ( s>=0 ) return s; break; case 15 : - int LA73_270 = input.LA(1); + int LA84_77 = input.LA(1); - int index73_270 = input.index(); + int index84_77 = input.index(); input.rewind(); s = -1; - if ( (LA73_270==COMMA||LA73_270==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_77==COMMA||LA84_77==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_270); + input.seek(index84_77); if ( s>=0 ) return s; break; case 16 : - int LA73_128 = input.LA(1); + int LA84_134 = input.LA(1); - int index73_128 = input.index(); + int index84_134 = input.index(); input.rewind(); s = -1; - if ( (LA73_128==COMMA||LA73_128==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} + if ( (LA84_134==COMMA||LA84_134==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} else if ( (true) ) {s = 34;} - input.seek(index73_128); + input.seek(index84_134); if ( s>=0 ) return s; break; case 17 : - int LA73_44 = input.LA(1); + int LA84_45 = input.LA(1); - int index73_44 = input.index(); + int index84_45 = input.index(); input.rewind(); s = -1; - if ( (LA73_44==COMMA||LA73_44==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} + if ( (LA84_45==COMMA||LA84_45==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} else if ( (true) ) {s = 27;} - input.seek(index73_44); + input.seek(index84_45); if ( s>=0 ) return s; break; case 18 : - int LA73_115 = input.LA(1); + int LA84_116 = input.LA(1); - int index73_115 = input.index(); + int index84_116 = input.index(); input.rewind(); s = -1; - if ( (LA73_115==COMMA||LA73_115==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} + if ( (LA84_116==COMMA||LA84_116==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} else if ( (true) ) {s = 27;} - input.seek(index73_115); + input.seek(index84_116); if ( s>=0 ) return s; break; case 19 : - int LA73_449 = input.LA(1); + int LA84_372 = input.LA(1); - int index73_449 = input.index(); + int index84_372 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_449); + input.seek(index84_372); if ( s>=0 ) return s; break; case 20 : - int LA73_407 = input.LA(1); + int LA84_107 = input.LA(1); - int index73_407 = input.index(); + int index84_107 = input.index(); input.rewind(); s = -1; - if ( (LA73_407==COMMA||LA73_407==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_107==COMMA||LA84_107==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_407); + input.seek(index84_107); if ( s>=0 ) return s; break; case 21 : - int LA73_428 = input.LA(1); + int LA84_437 = input.LA(1); - int index73_428 = input.index(); + int index84_437 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_428); + input.seek(index84_437); if ( s>=0 ) return s; break; case 22 : - int LA73_418 = input.LA(1); + int LA84_144 = input.LA(1); - int index73_418 = input.index(); + int index84_144 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_144==COMMA||LA84_144==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_418); + input.seek(index84_144); if ( s>=0 ) return s; break; case 23 : - int LA73_318 = input.LA(1); + int LA84_298 = input.LA(1); - int index73_318 = input.index(); + int index84_298 = input.index(); input.rewind(); s = -1; - if ( (LA73_318==COMMA||LA73_318==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_298==COMMA||LA84_298==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_318); + input.seek(index84_298); if ( s>=0 ) return s; break; case 24 : - int LA73_296 = input.LA(1); + int LA84_447 = input.LA(1); - int index73_296 = input.index(); + int index84_447 = input.index(); input.rewind(); s = -1; - if ( (LA73_296==COMMA||LA73_296==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_296); + input.seek(index84_447); if ( s>=0 ) return s; break; case 25 : - int LA73_104 = input.LA(1); + int LA84_416 = input.LA(1); - int index73_104 = input.index(); + int index84_416 = input.index(); input.rewind(); s = -1; - if ( (LA73_104==ID) ) {s = 140;} - else if ( (LA73_104==FTSWORD) ) {s = 141;} - else if ( (LA73_104==FTSPRE) ) {s = 142;} - else if ( (LA73_104==FTSWILD) ) {s = 143;} - else if ( (LA73_104==NOT) ) {s = 144;} - else if ( (LA73_104==TO) ) {s = 145;} - else if ( (LA73_104==DECIMAL_INTEGER_LITERAL) ) {s = 146;} - else if ( (LA73_104==FLOATING_POINT_LITERAL) ) {s = 147;} - else if ( (LA73_104==STAR) ) {s = 148;} - else if ( (LA73_104==QUESTION_MARK) ) {s = 149;} - else if ( (LA73_104==DATETIME) ) {s = 150;} - else if ( (LA73_104==URI) ) {s = 151;} - else if ( (LA73_104==TILDA) && (synpred52_FTS())) {s = 152;} - else if ( (LA73_104==CARAT) && (synpred52_FTS())) {s = 153;} - else if ( (LA73_104==AND) && (synpred52_FTS())) {s = 154;} - else if ( (LA73_104==AMP) && (synpred52_FTS())) {s = 155;} - else if ( (LA73_104==EOF) && (synpred52_FTS())) {s = 156;} - else if ( (LA73_104==RPAREN) && (synpred52_FTS())) {s = 157;} - else if ( (LA73_104==OR) && (synpred52_FTS())) {s = 158;} - else if ( (LA73_104==BAR) && (synpred52_FTS())) {s = 159;} - else if ( (LA73_104==EXCLAMATION) && (synpred52_FTS())) {s = 160;} - else if ( (LA73_104==AT) && (synpred52_FTS())) {s = 161;} - else if ( (LA73_104==FTSPHRASE) && (synpred52_FTS())) {s = 162;} - else if ( (LA73_104==LSQUARE) && (synpred52_FTS())) {s = 163;} - else if ( (LA73_104==LT) && (synpred52_FTS())) {s = 164;} - else if ( (LA73_104==COMMA||LA73_104==DOT) && (synpred52_FTS())) {s = 165;} - else if ( (LA73_104==EQUALS) && (synpred52_FTS())) {s = 166;} - else if ( (LA73_104==LPAREN) && (synpred52_FTS())) {s = 167;} - else if ( (LA73_104==PERCENT) && (synpred52_FTS())) {s = 168;} - else if ( (LA73_104==PLUS) && (synpred52_FTS())) {s = 169;} - else if ( (LA73_104==MINUS) && (synpred52_FTS())) {s = 170;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_104); + input.seek(index84_416); if ( s>=0 ) return s; break; case 26 : - int LA73_320 = input.LA(1); + int LA84_224 = input.LA(1); - int index73_320 = input.index(); + int index84_224 = input.index(); input.rewind(); s = -1; - if ( (LA73_320==COMMA||LA73_320==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_224==COMMA||LA84_224==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_320); + input.seek(index84_224); if ( s>=0 ) return s; break; case 27 : - int LA73_342 = input.LA(1); + int LA84_75 = input.LA(1); - int index73_342 = input.index(); + int index84_75 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_75==COMMA||LA84_75==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_342); + input.seek(index84_75); if ( s>=0 ) return s; break; case 28 : - int LA73_435 = input.LA(1); + int LA84_132 = input.LA(1); - int index73_435 = input.index(); + int index84_132 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_132==COMMA||LA84_132==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_435); + input.seek(index84_132); if ( s>=0 ) return s; break; case 29 : - int LA73_217 = input.LA(1); + int LA84_310 = input.LA(1); - int index73_217 = input.index(); + int index84_310 = input.index(); input.rewind(); s = -1; - if ( (LA73_217==COMMA||LA73_217==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_310==COMMA||LA84_310==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_217); + input.seek(index84_310); if ( s>=0 ) return s; break; case 30 : - int LA73_424 = input.LA(1); + int LA84_314 = input.LA(1); - int index73_424 = input.index(); + int index84_314 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_314==DOT) ) {s = 401;} + else if ( (LA84_314==COMMA) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_424); + input.seek(index84_314); if ( s>=0 ) return s; break; case 31 : - int LA73_268 = input.LA(1); + int LA84_427 = input.LA(1); - int index73_268 = input.index(); + int index84_427 = input.index(); input.rewind(); s = -1; - if ( (LA73_268==COMMA||LA73_268==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_268); + input.seek(index84_427); if ( s>=0 ) return s; break; case 32 : - int LA73_42 = input.LA(1); + int LA84_452 = input.LA(1); - int index73_42 = input.index(); + int index84_452 = input.index(); input.rewind(); s = -1; - if ( (LA73_42==COMMA||LA73_42==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_42); + input.seek(index84_452); if ( s>=0 ) return s; break; case 33 : - int LA73_113 = input.LA(1); + int LA84_146 = input.LA(1); - int index73_113 = input.index(); + int index84_146 = input.index(); input.rewind(); s = -1; - if ( (LA73_113==COMMA||LA73_113==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_146==COMMA||LA84_146==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_113); + input.seek(index84_146); if ( s>=0 ) return s; break; case 34 : - int LA73_179 = input.LA(1); + int LA84_322 = input.LA(1); - int index73_179 = input.index(); + int index84_322 = input.index(); input.rewind(); s = -1; - if ( (LA73_179==COMMA||LA73_179==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_322==COMMA||LA84_322==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_179); + input.seek(index84_322); if ( s>=0 ) return s; break; case 35 : - int LA73_408 = input.LA(1); + int LA84_80 = input.LA(1); - int index73_408 = input.index(); + int index84_80 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_80==COMMA||LA84_80==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_408); + input.seek(index84_80); if ( s>=0 ) return s; break; case 36 : - int LA73_295 = input.LA(1); + int LA84_137 = input.LA(1); - int index73_295 = input.index(); + int index84_137 = input.index(); input.rewind(); s = -1; - if ( (LA73_295==DOT) ) {s = 363;} - else if ( (LA73_295==COMMA) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_137==COMMA||LA84_137==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_295); + input.seek(index84_137); if ( s>=0 ) return s; break; case 37 : - int LA73_237 = input.LA(1); + int LA84_414 = input.LA(1); - int index73_237 = input.index(); + int index84_414 = input.index(); input.rewind(); s = -1; - if ( (LA73_237==COMMA||LA73_237==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_237); + input.seek(index84_414); if ( s>=0 ) return s; break; case 38 : - int LA73_41 = input.LA(1); + int LA84_438 = input.LA(1); - int index73_41 = input.index(); + int index84_438 = input.index(); input.rewind(); s = -1; - if ( (LA73_41==COMMA||LA73_41==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_41); + input.seek(index84_438); if ( s>=0 ) return s; break; case 39 : - int LA73_112 = input.LA(1); + int LA84_181 = input.LA(1); - int index73_112 = input.index(); + int index84_181 = input.index(); input.rewind(); s = -1; - if ( (LA73_112==COMMA||LA73_112==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_181==COMMA||LA84_181==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_112); + input.seek(index84_181); if ( s>=0 ) return s; break; case 40 : - int LA73_329 = input.LA(1); + int LA84_407 = input.LA(1); - int index73_329 = input.index(); + int index84_407 = input.index(); input.rewind(); s = -1; - if ( (LA73_329==COMMA||LA73_329==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_407==COMMA||LA84_407==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_329); + input.seek(index84_407); if ( s>=0 ) return s; break; case 41 : - int LA73_334 = input.LA(1); + int LA84_177 = input.LA(1); - int index73_334 = input.index(); + int index84_177 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_177==COMMA||LA84_177==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_334); + input.seek(index84_177); if ( s>=0 ) return s; break; case 42 : - int LA73_26 = input.LA(1); + int LA84_308 = input.LA(1); - int index73_26 = input.index(); + int index84_308 = input.index(); input.rewind(); s = -1; - if ( (LA73_26==ID) ) {s = 40;} - else if ( (LA73_26==FTSWORD) ) {s = 41;} - else if ( (LA73_26==FTSPRE) ) {s = 42;} - else if ( (LA73_26==FTSWILD) ) {s = 43;} - else if ( (LA73_26==NOT) ) {s = 44;} - else if ( (LA73_26==TO) ) {s = 45;} - else if ( (LA73_26==DECIMAL_INTEGER_LITERAL) ) {s = 46;} - else if ( (LA73_26==FLOATING_POINT_LITERAL) ) {s = 47;} - else if ( (LA73_26==STAR) ) {s = 48;} - else if ( (LA73_26==QUESTION_MARK) ) {s = 49;} - else if ( (LA73_26==DATETIME) ) {s = 50;} - else if ( (LA73_26==URI) ) {s = 51;} - else if ( (LA73_26==TILDA) && (synpred56_FTS())) {s = 52;} - else if ( (LA73_26==CARAT) && (synpred56_FTS())) {s = 53;} - else if ( (LA73_26==AND) && (synpred56_FTS())) {s = 54;} - else if ( (LA73_26==AMP) && (synpred56_FTS())) {s = 55;} - else if ( (LA73_26==EOF) && (synpred56_FTS())) {s = 56;} - else if ( (LA73_26==RPAREN) && (synpred56_FTS())) {s = 57;} - else if ( (LA73_26==OR) && (synpred56_FTS())) {s = 58;} - else if ( (LA73_26==BAR) && (synpred56_FTS())) {s = 59;} - else if ( (LA73_26==EXCLAMATION) && (synpred56_FTS())) {s = 60;} - else if ( (LA73_26==AT) && (synpred56_FTS())) {s = 61;} - else if ( (LA73_26==FTSPHRASE) && (synpred56_FTS())) {s = 62;} - else if ( (LA73_26==LSQUARE) && (synpred56_FTS())) {s = 63;} - else if ( (LA73_26==LT) && (synpred56_FTS())) {s = 64;} - else if ( (LA73_26==COMMA||LA73_26==DOT) && (synpred56_FTS())) {s = 65;} - else if ( (LA73_26==EQUALS) && (synpred56_FTS())) {s = 66;} - else if ( (LA73_26==LPAREN) && (synpred56_FTS())) {s = 67;} - else if ( (LA73_26==PERCENT) && (synpred56_FTS())) {s = 68;} - else if ( (LA73_26==PLUS) && (synpred56_FTS())) {s = 69;} - else if ( (LA73_26==MINUS) && (synpred56_FTS())) {s = 70;} + if ( (LA84_308==COMMA||LA84_308==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_26); + input.seek(index84_308); if ( s>=0 ) return s; break; case 43 : - int LA73_111 = input.LA(1); + int LA84_268 = input.LA(1); - int index73_111 = input.index(); + int index84_268 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 173;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 175;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_268==COMMA||LA84_268==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_111); + input.seek(index84_268); if ( s>=0 ) return s; break; case 44 : - int LA73_142 = input.LA(1); + int LA84_431 = input.LA(1); - int index73_142 = input.index(); + int index84_431 = input.index(); input.rewind(); s = -1; - if ( (LA73_142==COMMA||LA73_142==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_142); + input.seek(index84_431); if ( s>=0 ) return s; break; case 45 : - int LA73_367 = input.LA(1); + int LA84_185 = input.LA(1); - int index73_367 = input.index(); + int index84_185 = input.index(); input.rewind(); s = -1; - if ( (LA73_367==COMMA||LA73_367==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_185==COMMA||LA84_185==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_367); + input.seek(index84_185); if ( s>=0 ) return s; break; case 46 : - int LA73_307 = input.LA(1); + int LA84_439 = input.LA(1); - int index73_307 = input.index(); + int index84_439 = input.index(); input.rewind(); s = -1; - if ( (LA73_307==COMMA||LA73_307==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_307); + input.seek(index84_439); if ( s>=0 ) return s; break; case 47 : - int LA73_433 = input.LA(1); + int LA84_413 = input.LA(1); - int index73_433 = input.index(); + int index84_413 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_433); + input.seek(index84_413); if ( s>=0 ) return s; break; case 48 : - int LA73_46 = input.LA(1); + int LA84_129 = input.LA(1); - int index73_46 = input.index(); + int index84_129 = input.index(); input.rewind(); s = -1; - if ( (LA73_46==COMMA||LA73_46==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 210;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 212;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_46); + input.seek(index84_129); if ( s>=0 ) return s; break; case 49 : - int LA73_117 = input.LA(1); + int LA84_333 = input.LA(1); - int index73_117 = input.index(); + int index84_333 = input.index(); input.rewind(); s = -1; - if ( (LA73_117==COMMA||LA73_117==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_117); + input.seek(index84_333); if ( s>=0 ) return s; break; case 50 : - int LA73_49 = input.LA(1); + int LA84_321 = input.LA(1); - int index73_49 = input.index(); + int index84_321 = input.index(); input.rewind(); s = -1; - if ( (LA73_49==COMMA||LA73_49==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_321==COMMA||LA84_321==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_49); + input.seek(index84_321); if ( s>=0 ) return s; break; case 51 : - int LA73_120 = input.LA(1); + int LA84_417 = input.LA(1); - int index73_120 = input.index(); + int index84_417 = input.index(); input.rewind(); s = -1; - if ( (LA73_120==COMMA||LA73_120==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_120); + input.seek(index84_417); if ( s>=0 ) return s; break; case 52 : - int LA73_328 = input.LA(1); + int LA84_76 = input.LA(1); - int index73_328 = input.index(); + int index84_76 = input.index(); input.rewind(); s = -1; - if ( (LA73_328==COMMA||LA73_328==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_76==COMMA||LA84_76==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_328); + input.seek(index84_76); if ( s>=0 ) return s; break; case 53 : - int LA73_228 = input.LA(1); + int LA84_133 = input.LA(1); - int index73_228 = input.index(); + int index84_133 = input.index(); input.rewind(); s = -1; - if ( (LA73_228==COMMA||LA73_228==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_133==COMMA||LA84_133==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_228); + input.seek(index84_133); if ( s>=0 ) return s; break; case 54 : - int LA73_401 = input.LA(1); + int LA84_365 = input.LA(1); - int index73_401 = input.index(); + int index84_365 = input.index(); input.rewind(); s = -1; - if ( (LA73_401==ID) ) {s = 432;} - else if ( (LA73_401==FTSWORD) ) {s = 371;} - else if ( (LA73_401==FTSPRE) ) {s = 372;} - else if ( (LA73_401==FTSWILD) ) {s = 373;} - else if ( (LA73_401==NOT) ) {s = 374;} - else if ( (LA73_401==TO) ) {s = 375;} - else if ( (LA73_401==DECIMAL_INTEGER_LITERAL) ) {s = 376;} - else if ( (LA73_401==FLOATING_POINT_LITERAL) ) {s = 377;} - else if ( (LA73_401==STAR) ) {s = 378;} - else if ( (LA73_401==QUESTION_MARK) ) {s = 379;} - else if ( (LA73_401==DATETIME) ) {s = 380;} - else if ( (LA73_401==URI) ) {s = 381;} - else if ( (LA73_401==TILDA) && (synpred43_FTS())) {s = 382;} - else if ( (LA73_401==CARAT) && (synpred43_FTS())) {s = 383;} - else if ( (LA73_401==AND) && (synpred43_FTS())) {s = 384;} - else if ( (LA73_401==AMP) && (synpred43_FTS())) {s = 385;} - else if ( (LA73_401==EOF) && (synpred43_FTS())) {s = 386;} - else if ( (LA73_401==RPAREN) && (synpred43_FTS())) {s = 387;} - else if ( (LA73_401==OR) && (synpred43_FTS())) {s = 388;} - else if ( (LA73_401==BAR) && (synpred43_FTS())) {s = 389;} - else if ( (LA73_401==EXCLAMATION) && (synpred43_FTS())) {s = 390;} - else if ( (LA73_401==AT) && (synpred43_FTS())) {s = 391;} - else if ( (LA73_401==FTSPHRASE) && (synpred43_FTS())) {s = 392;} - else if ( (LA73_401==LSQUARE) && (synpred43_FTS())) {s = 393;} - else if ( (LA73_401==LT) && (synpred43_FTS())) {s = 394;} - else if ( (LA73_401==COMMA||LA73_401==DOT) && (synpred43_FTS())) {s = 395;} - else if ( (LA73_401==EQUALS) && (synpred43_FTS())) {s = 396;} - else if ( (LA73_401==LPAREN) && (synpred43_FTS())) {s = 397;} - else if ( (LA73_401==PERCENT) && (synpred43_FTS())) {s = 398;} - else if ( (LA73_401==PLUS) && (synpred43_FTS())) {s = 399;} - else if ( (LA73_401==MINUS) && (synpred43_FTS())) {s = 400;} + if ( (LA84_365==DOT) ) {s = 426;} + else if ( (LA84_365==COMMA) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_401); + input.seek(index84_365); if ( s>=0 ) return s; break; case 55 : - int LA73_266 = input.LA(1); + int LA84_370 = input.LA(1); - int index73_266 = input.index(); + int index84_370 = input.index(); input.rewind(); s = -1; - if ( (LA73_266==COMMA||LA73_266==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_266); + input.seek(index84_370); if ( s>=0 ) return s; break; case 56 : - int LA73_82 = input.LA(1); + int LA84_299 = input.LA(1); - int index73_82 = input.index(); + int index84_299 = input.index(); input.rewind(); s = -1; - if ( (LA73_82==COMMA||LA73_82==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_299==COMMA||LA84_299==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_82); + input.seek(index84_299); if ( s>=0 ) return s; break; case 57 : - int LA73_139 = input.LA(1); + int LA84_330 = input.LA(1); - int index73_139 = input.index(); + int index84_330 = input.index(); input.rewind(); s = -1; - if ( (LA73_139==COMMA||LA73_139==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_330==COMMA||LA84_330==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_139); + input.seek(index84_330); if ( s>=0 ) return s; break; case 58 : - int LA73_145 = input.LA(1); + int LA84_448 = input.LA(1); - int index73_145 = input.index(); + int index84_448 = input.index(); input.rewind(); s = -1; - if ( (LA73_145==COMMA||LA73_145==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_145); + input.seek(index84_448); if ( s>=0 ) return s; break; case 59 : - int LA73_180 = input.LA(1); + int LA84_149 = input.LA(1); - int index73_180 = input.index(); + int index84_149 = input.index(); input.rewind(); s = -1; - if ( (LA73_180==COMMA||LA73_180==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_149==COMMA||LA84_149==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_180); + input.seek(index84_149); if ( s>=0 ) return s; break; case 60 : - int LA73_450 = input.LA(1); + int LA84_225 = input.LA(1); - int index73_450 = input.index(); + int index84_225 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_225==COMMA||LA84_225==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_450); + input.seek(index84_225); if ( s>=0 ) return s; break; case 61 : - int LA73_297 = input.LA(1); + int LA84_373 = input.LA(1); - int index73_297 = input.index(); + int index84_373 = input.index(); input.rewind(); s = -1; - if ( (LA73_297==COMMA||LA73_297==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_297); + input.seek(index84_373); if ( s>=0 ) return s; break; case 62 : - int LA73_124 = input.LA(1); + int LA84_401 = input.LA(1); - int index73_124 = input.index(); + int index84_401 = input.index(); input.rewind(); s = -1; - if ( (LA73_124==DOT) ) {s = 208;} - else if ( (LA73_124==COMMA) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_401==ID) ) {s = 432;} + else if ( (LA84_401==FTSWORD) ) {s = 371;} + else if ( (LA84_401==FTSPRE) ) {s = 372;} + else if ( (LA84_401==FTSWILD) ) {s = 373;} + else if ( (LA84_401==NOT) ) {s = 374;} + else if ( (LA84_401==TO) ) {s = 375;} + else if ( (LA84_401==DECIMAL_INTEGER_LITERAL) ) {s = 376;} + else if ( (LA84_401==FLOATING_POINT_LITERAL) ) {s = 377;} + else if ( (LA84_401==STAR) ) {s = 378;} + else if ( (LA84_401==QUESTION_MARK) ) {s = 379;} + else if ( (LA84_401==DATETIME) ) {s = 380;} + else if ( (LA84_401==URI) ) {s = 381;} + else if ( (LA84_401==TILDA) && (synpred51_FTS())) {s = 382;} + else if ( (LA84_401==CARAT) && (synpred51_FTS())) {s = 383;} + else if ( (LA84_401==AND) && (synpred51_FTS())) {s = 384;} + else if ( (LA84_401==AMP) && (synpred51_FTS())) {s = 385;} + else if ( (LA84_401==EOF) && (synpred51_FTS())) {s = 386;} + else if ( (LA84_401==RPAREN) && (synpred51_FTS())) {s = 387;} + else if ( (LA84_401==OR) && (synpred51_FTS())) {s = 388;} + else if ( (LA84_401==BAR) && (synpred51_FTS())) {s = 389;} + else if ( (LA84_401==EXCLAMATION) && (synpred51_FTS())) {s = 390;} + else if ( (LA84_401==AT) && (synpred51_FTS())) {s = 391;} + else if ( (LA84_401==FTSPHRASE) && (synpred51_FTS())) {s = 392;} + else if ( (LA84_401==LSQUARE) && (synpred51_FTS())) {s = 393;} + else if ( (LA84_401==LT) && (synpred51_FTS())) {s = 394;} + else if ( (LA84_401==COMMA||LA84_401==DOT) && (synpred51_FTS())) {s = 395;} + else if ( (LA84_401==EQUALS) && (synpred51_FTS())) {s = 396;} + else if ( (LA84_401==LPAREN) && (synpred51_FTS())) {s = 397;} + else if ( (LA84_401==PERCENT) && (synpred51_FTS())) {s = 398;} + else if ( (LA84_401==PLUS) && (synpred51_FTS())) {s = 399;} + else if ( (LA84_401==MINUS) && (synpred51_FTS())) {s = 400;} - input.seek(index73_124); + input.seek(index84_401); if ( s>=0 ) return s; break; case 63 : - int LA73_429 = input.LA(1); + int LA84_266 = input.LA(1); - int index73_429 = input.index(); + int index84_266 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_266==COMMA||LA84_266==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_429); + input.seek(index84_266); if ( s>=0 ) return s; break; case 64 : - int LA73_292 = input.LA(1); + int LA84_147 = input.LA(1); - int index73_292 = input.index(); + int index84_147 = input.index(); input.rewind(); s = -1; - if ( (LA73_292==ID) ) {s = 319;} - else if ( (LA73_292==FTSWORD) ) {s = 262;} - else if ( (LA73_292==FTSPRE) ) {s = 263;} - else if ( (LA73_292==FTSWILD) ) {s = 264;} - else if ( (LA73_292==NOT) ) {s = 265;} - else if ( (LA73_292==TO) ) {s = 266;} - else if ( (LA73_292==DECIMAL_INTEGER_LITERAL) ) {s = 267;} - else if ( (LA73_292==FLOATING_POINT_LITERAL) ) {s = 268;} - else if ( (LA73_292==STAR) ) {s = 269;} - else if ( (LA73_292==QUESTION_MARK) ) {s = 270;} - else if ( (LA73_292==DATETIME) ) {s = 271;} - else if ( (LA73_292==URI) ) {s = 272;} - else if ( (LA73_292==TILDA) && (synpred47_FTS())) {s = 273;} - else if ( (LA73_292==CARAT) && (synpred47_FTS())) {s = 274;} - else if ( (LA73_292==AND) && (synpred47_FTS())) {s = 275;} - else if ( (LA73_292==AMP) && (synpred47_FTS())) {s = 276;} - else if ( (LA73_292==EOF) && (synpred47_FTS())) {s = 277;} - else if ( (LA73_292==RPAREN) && (synpred47_FTS())) {s = 278;} - else if ( (LA73_292==OR) && (synpred47_FTS())) {s = 279;} - else if ( (LA73_292==BAR) && (synpred47_FTS())) {s = 280;} - else if ( (LA73_292==EXCLAMATION) && (synpred47_FTS())) {s = 281;} - else if ( (LA73_292==AT) && (synpred47_FTS())) {s = 282;} - else if ( (LA73_292==FTSPHRASE) && (synpred47_FTS())) {s = 283;} - else if ( (LA73_292==LSQUARE) && (synpred47_FTS())) {s = 284;} - else if ( (LA73_292==LT) && (synpred47_FTS())) {s = 285;} - else if ( (LA73_292==COMMA||LA73_292==DOT) && (synpred47_FTS())) {s = 286;} - else if ( (LA73_292==EQUALS) && (synpred47_FTS())) {s = 287;} - else if ( (LA73_292==LPAREN) && (synpred47_FTS())) {s = 288;} - else if ( (LA73_292==PERCENT) && (synpred47_FTS())) {s = 289;} - else if ( (LA73_292==PLUS) && (synpred47_FTS())) {s = 290;} - else if ( (LA73_292==MINUS) && (synpred47_FTS())) {s = 291;} + if ( (LA84_147==COMMA||LA84_147==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_292); + input.seek(index84_147); if ( s>=0 ) return s; break; case 65 : - int LA73_141 = input.LA(1); + int LA84_178 = input.LA(1); - int index73_141 = input.index(); + int index84_178 = input.index(); input.rewind(); s = -1; - if ( (LA73_141==COMMA||LA73_141==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_178==COMMA||LA84_178==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_141); + input.seek(index84_178); if ( s>=0 ) return s; break; case 66 : - int LA73_218 = input.LA(1); + int LA84_323 = input.LA(1); - int index73_218 = input.index(); + int index84_323 = input.index(); input.rewind(); s = -1; - if ( (LA73_218==COMMA||LA73_218==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_323==COMMA||LA84_323==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_218); + input.seek(index84_323); if ( s>=0 ) return s; break; case 67 : - int LA73_109 = input.LA(1); + int LA84_127 = input.LA(1); - int index73_109 = input.index(); + int index84_127 = input.index(); input.rewind(); s = -1; - if ( (LA73_109==COMMA||LA73_109==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_127==COMMA||LA84_127==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_109); + input.seek(index84_127); if ( s>=0 ) return s; break; case 68 : - int LA73_269 = input.LA(1); + int LA84_104 = input.LA(1); - int index73_269 = input.index(); + int index84_104 = input.index(); input.rewind(); s = -1; - if ( (LA73_269==COMMA||LA73_269==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_104==ID) ) {s = 140;} + else if ( (LA84_104==FTSWORD) ) {s = 141;} + else if ( (LA84_104==FTSPRE) ) {s = 142;} + else if ( (LA84_104==FTSWILD) ) {s = 143;} + else if ( (LA84_104==NOT) ) {s = 144;} + else if ( (LA84_104==TO) ) {s = 145;} + else if ( (LA84_104==DECIMAL_INTEGER_LITERAL) ) {s = 146;} + else if ( (LA84_104==FLOATING_POINT_LITERAL) ) {s = 147;} + else if ( (LA84_104==STAR) ) {s = 148;} + else if ( (LA84_104==QUESTION_MARK) ) {s = 149;} + else if ( (LA84_104==DATETIME) ) {s = 150;} + else if ( (LA84_104==URI) ) {s = 151;} + else if ( (LA84_104==TILDA) && (synpred60_FTS())) {s = 152;} + else if ( (LA84_104==CARAT) && (synpred60_FTS())) {s = 153;} + else if ( (LA84_104==AND) && (synpred60_FTS())) {s = 154;} + else if ( (LA84_104==AMP) && (synpred60_FTS())) {s = 155;} + else if ( (LA84_104==EOF) && (synpred60_FTS())) {s = 156;} + else if ( (LA84_104==RPAREN) && (synpred60_FTS())) {s = 157;} + else if ( (LA84_104==OR) && (synpred60_FTS())) {s = 158;} + else if ( (LA84_104==BAR) && (synpred60_FTS())) {s = 159;} + else if ( (LA84_104==EXCLAMATION) && (synpred60_FTS())) {s = 160;} + else if ( (LA84_104==AT) && (synpred60_FTS())) {s = 161;} + else if ( (LA84_104==FTSPHRASE) && (synpred60_FTS())) {s = 162;} + else if ( (LA84_104==LSQUARE) && (synpred60_FTS())) {s = 163;} + else if ( (LA84_104==LT) && (synpred60_FTS())) {s = 164;} + else if ( (LA84_104==COMMA||LA84_104==DOT) && (synpred60_FTS())) {s = 165;} + else if ( (LA84_104==EQUALS) && (synpred60_FTS())) {s = 166;} + else if ( (LA84_104==LPAREN) && (synpred60_FTS())) {s = 167;} + else if ( (LA84_104==PERCENT) && (synpred60_FTS())) {s = 168;} + else if ( (LA84_104==PLUS) && (synpred60_FTS())) {s = 169;} + else if ( (LA84_104==MINUS) && (synpred60_FTS())) {s = 170;} - input.seek(index73_269); + input.seek(index84_104); if ( s>=0 ) return s; break; case 69 : - int LA73_235 = input.LA(1); + int LA84_418 = input.LA(1); - int index73_235 = input.index(); + int index84_418 = input.index(); input.rewind(); s = -1; - if ( (LA73_235==COMMA||LA73_235==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_235); + input.seek(index84_418); if ( s>=0 ) return s; break; case 70 : - int LA73_416 = input.LA(1); + int LA84_214 = input.LA(1); - int index73_416 = input.index(); + int index84_214 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_214==ID) ) {s = 228;} + else if ( (LA84_214==FTSWORD) ) {s = 229;} + else if ( (LA84_214==FTSPRE) ) {s = 230;} + else if ( (LA84_214==FTSWILD) ) {s = 231;} + else if ( (LA84_214==NOT) ) {s = 232;} + else if ( (LA84_214==TO) ) {s = 233;} + else if ( (LA84_214==DECIMAL_INTEGER_LITERAL) ) {s = 234;} + else if ( (LA84_214==FLOATING_POINT_LITERAL) ) {s = 235;} + else if ( (LA84_214==STAR) ) {s = 236;} + else if ( (LA84_214==QUESTION_MARK) ) {s = 237;} + else if ( (LA84_214==DATETIME) ) {s = 238;} + else if ( (LA84_214==URI) ) {s = 239;} + else if ( (LA84_214==TILDA) && (synpred56_FTS())) {s = 240;} + else if ( (LA84_214==CARAT) && (synpred56_FTS())) {s = 241;} + else if ( (LA84_214==AND) && (synpred56_FTS())) {s = 242;} + else if ( (LA84_214==AMP) && (synpred56_FTS())) {s = 243;} + else if ( (LA84_214==EOF) && (synpred56_FTS())) {s = 244;} + else if ( (LA84_214==RPAREN) && (synpred56_FTS())) {s = 245;} + else if ( (LA84_214==OR) && (synpred56_FTS())) {s = 246;} + else if ( (LA84_214==BAR) && (synpred56_FTS())) {s = 247;} + else if ( (LA84_214==EXCLAMATION) && (synpred56_FTS())) {s = 248;} + else if ( (LA84_214==AT) && (synpred56_FTS())) {s = 249;} + else if ( (LA84_214==FTSPHRASE) && (synpred56_FTS())) {s = 250;} + else if ( (LA84_214==LSQUARE) && (synpred56_FTS())) {s = 251;} + else if ( (LA84_214==LT) && (synpred56_FTS())) {s = 252;} + else if ( (LA84_214==COMMA||LA84_214==DOT) && (synpred56_FTS())) {s = 253;} + else if ( (LA84_214==EQUALS) && (synpred56_FTS())) {s = 254;} + else if ( (LA84_214==LPAREN) && (synpred56_FTS())) {s = 255;} + else if ( (LA84_214==PERCENT) && (synpred56_FTS())) {s = 256;} + else if ( (LA84_214==PLUS) && (synpred56_FTS())) {s = 257;} + else if ( (LA84_214==MINUS) && (synpred56_FTS())) {s = 258;} - input.seek(index73_416); + input.seek(index84_214); if ( s>=0 ) return s; break; case 71 : - int LA73_373 = input.LA(1); + int LA84_220 = input.LA(1); - int index73_373 = input.index(); + int index84_220 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_220==COMMA||LA84_220==DOT) ) {s = 260;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_373); + input.seek(index84_220); if ( s>=0 ) return s; break; case 72 : - int LA73_374 = input.LA(1); + int LA84_82 = input.LA(1); - int index73_374 = input.index(); + int index84_82 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_82==COMMA||LA84_82==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_374); + input.seek(index84_82); if ( s>=0 ) return s; break; case 73 : - int LA73_301 = input.LA(1); + int LA84_139 = input.LA(1); - int index73_301 = input.index(); + int index84_139 = input.index(); input.rewind(); s = -1; - if ( (LA73_301==COMMA||LA73_301==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_139==COMMA||LA84_139==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_301); + input.seek(index84_139); if ( s>=0 ) return s; break; case 74 : - int LA73_409 = input.LA(1); + int LA84_309 = input.LA(1); - int index73_409 = input.index(); + int index84_309 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_309==COMMA||LA84_309==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_409); + input.seek(index84_309); if ( s>=0 ) return s; break; case 75 : - int LA73_370 = input.LA(1); + int LA84_269 = input.LA(1); - int index73_370 = input.index(); + int index84_269 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_269==COMMA||LA84_269==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_370); + input.seek(index84_269); if ( s>=0 ) return s; break; case 76 : - int LA73_452 = input.LA(1); + int LA84_292 = input.LA(1); - int index73_452 = input.index(); + int index84_292 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_292==ID) ) {s = 319;} + else if ( (LA84_292==FTSWORD) ) {s = 262;} + else if ( (LA84_292==FTSPRE) ) {s = 263;} + else if ( (LA84_292==FTSWILD) ) {s = 264;} + else if ( (LA84_292==NOT) ) {s = 265;} + else if ( (LA84_292==TO) ) {s = 266;} + else if ( (LA84_292==DECIMAL_INTEGER_LITERAL) ) {s = 267;} + else if ( (LA84_292==FLOATING_POINT_LITERAL) ) {s = 268;} + else if ( (LA84_292==STAR) ) {s = 269;} + else if ( (LA84_292==QUESTION_MARK) ) {s = 270;} + else if ( (LA84_292==DATETIME) ) {s = 271;} + else if ( (LA84_292==URI) ) {s = 272;} + else if ( (LA84_292==TILDA) && (synpred55_FTS())) {s = 273;} + else if ( (LA84_292==CARAT) && (synpred55_FTS())) {s = 274;} + else if ( (LA84_292==AND) && (synpred55_FTS())) {s = 275;} + else if ( (LA84_292==AMP) && (synpred55_FTS())) {s = 276;} + else if ( (LA84_292==EOF) && (synpred55_FTS())) {s = 277;} + else if ( (LA84_292==RPAREN) && (synpred55_FTS())) {s = 278;} + else if ( (LA84_292==OR) && (synpred55_FTS())) {s = 279;} + else if ( (LA84_292==BAR) && (synpred55_FTS())) {s = 280;} + else if ( (LA84_292==EXCLAMATION) && (synpred55_FTS())) {s = 281;} + else if ( (LA84_292==AT) && (synpred55_FTS())) {s = 282;} + else if ( (LA84_292==FTSPHRASE) && (synpred55_FTS())) {s = 283;} + else if ( (LA84_292==LSQUARE) && (synpred55_FTS())) {s = 284;} + else if ( (LA84_292==LT) && (synpred55_FTS())) {s = 285;} + else if ( (LA84_292==COMMA||LA84_292==DOT) && (synpred55_FTS())) {s = 286;} + else if ( (LA84_292==EQUALS) && (synpred55_FTS())) {s = 287;} + else if ( (LA84_292==LPAREN) && (synpred55_FTS())) {s = 288;} + else if ( (LA84_292==PERCENT) && (synpred55_FTS())) {s = 289;} + else if ( (LA84_292==PLUS) && (synpred55_FTS())) {s = 290;} + else if ( (LA84_292==MINUS) && (synpred55_FTS())) {s = 291;} - input.seek(index73_452); + input.seek(index84_292); if ( s>=0 ) return s; break; case 77 : - int LA73_262 = input.LA(1); + int LA84_187 = input.LA(1); - int index73_262 = input.index(); + int index84_187 = input.index(); input.rewind(); s = -1; - if ( (LA73_262==COMMA||LA73_262==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_187==COMMA||LA84_187==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_262); + input.seek(index84_187); if ( s>=0 ) return s; break; case 78 : - int LA73_368 = input.LA(1); + int LA84_124 = input.LA(1); - int index73_368 = input.index(); + int index84_124 = input.index(); input.rewind(); s = -1; - if ( (LA73_368==COMMA||LA73_368==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_124==DOT) ) {s = 208;} + else if ( (LA84_124==COMMA) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_368); + input.seek(index84_124); if ( s>=0 ) return s; break; case 79 : - int LA73_308 = input.LA(1); + int LA84_315 = input.LA(1); - int index73_308 = input.index(); + int index84_315 = input.index(); input.rewind(); s = -1; - if ( (LA73_308==COMMA||LA73_308==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_315==COMMA||LA84_315==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_308); + input.seek(index84_315); if ( s>=0 ) return s; break; case 80 : - int LA73_143 = input.LA(1); + int LA84_334 = input.LA(1); - int index73_143 = input.index(); + int index84_334 = input.index(); input.rewind(); s = -1; - if ( (LA73_143==COMMA||LA73_143==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_143); + input.seek(index84_334); if ( s>=0 ) return s; break; case 81 : - int LA73_43 = input.LA(1); + int LA84_108 = input.LA(1); - int index73_43 = input.index(); + int index84_108 = input.index(); input.rewind(); s = -1; - if ( (LA73_43==COMMA||LA73_43==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} + if ( (LA84_108==COMMA||LA84_108==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} else if ( (true) ) {s = 27;} - input.seek(index73_43); + input.seek(index84_108); if ( s>=0 ) return s; break; case 82 : - int LA73_114 = input.LA(1); + int LA84_171 = input.LA(1); - int index73_114 = input.index(); + int index84_171 = input.index(); input.rewind(); s = -1; - if ( (LA73_114==COMMA||LA73_114==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_171==ID) ) {s = 220;} + else if ( (LA84_171==FTSWORD) ) {s = 141;} + else if ( (LA84_171==FTSPRE) ) {s = 142;} + else if ( (LA84_171==FTSWILD) ) {s = 143;} + else if ( (LA84_171==NOT) ) {s = 144;} + else if ( (LA84_171==TO) ) {s = 145;} + else if ( (LA84_171==DECIMAL_INTEGER_LITERAL) ) {s = 146;} + else if ( (LA84_171==FLOATING_POINT_LITERAL) ) {s = 147;} + else if ( (LA84_171==STAR) ) {s = 148;} + else if ( (LA84_171==QUESTION_MARK) ) {s = 149;} + else if ( (LA84_171==DATETIME) ) {s = 150;} + else if ( (LA84_171==URI) ) {s = 151;} + else if ( (LA84_171==TILDA) && (synpred60_FTS())) {s = 152;} + else if ( (LA84_171==CARAT) && (synpred60_FTS())) {s = 153;} + else if ( (LA84_171==AND) && (synpred60_FTS())) {s = 154;} + else if ( (LA84_171==AMP) && (synpred60_FTS())) {s = 155;} + else if ( (LA84_171==EOF) && (synpred60_FTS())) {s = 156;} + else if ( (LA84_171==RPAREN) && (synpred60_FTS())) {s = 157;} + else if ( (LA84_171==OR) && (synpred60_FTS())) {s = 158;} + else if ( (LA84_171==BAR) && (synpred60_FTS())) {s = 159;} + else if ( (LA84_171==EXCLAMATION) && (synpred60_FTS())) {s = 160;} + else if ( (LA84_171==AT) && (synpred60_FTS())) {s = 161;} + else if ( (LA84_171==FTSPHRASE) && (synpred60_FTS())) {s = 162;} + else if ( (LA84_171==LSQUARE) && (synpred60_FTS())) {s = 163;} + else if ( (LA84_171==LT) && (synpred60_FTS())) {s = 164;} + else if ( (LA84_171==COMMA||LA84_171==DOT) && (synpred60_FTS())) {s = 165;} + else if ( (LA84_171==EQUALS) && (synpred60_FTS())) {s = 166;} + else if ( (LA84_171==LPAREN) && (synpred60_FTS())) {s = 167;} + else if ( (LA84_171==PERCENT) && (synpred60_FTS())) {s = 168;} + else if ( (LA84_171==PLUS) && (synpred60_FTS())) {s = 169;} + else if ( (LA84_171==MINUS) && (synpred60_FTS())) {s = 170;} - input.seek(index73_114); + input.seek(index84_171); if ( s>=0 ) return s; break; case 83 : - int LA73_298 = input.LA(1); + int LA84_409 = input.LA(1); - int index73_298 = input.index(); + int index84_409 = input.index(); input.rewind(); s = -1; - if ( (LA73_298==COMMA||LA73_298==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_298); + input.seek(index84_409); if ( s>=0 ) return s; break; case 84 : - int LA73_122 = input.LA(1); + int LA84_449 = input.LA(1); - int index73_122 = input.index(); + int index84_449 = input.index(); input.rewind(); s = -1; - if ( (LA73_122==ID) ) {s = 177;} - else if ( (LA73_122==FTSWORD) ) {s = 178;} - else if ( (LA73_122==FTSPRE) ) {s = 179;} - else if ( (LA73_122==FTSWILD) ) {s = 180;} - else if ( (LA73_122==NOT) ) {s = 181;} - else if ( (LA73_122==TO) ) {s = 182;} - else if ( (LA73_122==DECIMAL_INTEGER_LITERAL) ) {s = 183;} - else if ( (LA73_122==FLOATING_POINT_LITERAL) ) {s = 184;} - else if ( (LA73_122==STAR) ) {s = 185;} - else if ( (LA73_122==QUESTION_MARK) ) {s = 186;} - else if ( (LA73_122==DATETIME) ) {s = 187;} - else if ( (LA73_122==URI) ) {s = 188;} - else if ( (LA73_122==TILDA) && (synpred51_FTS())) {s = 189;} - else if ( (LA73_122==CARAT) && (synpred51_FTS())) {s = 190;} - else if ( (LA73_122==AND) && (synpred51_FTS())) {s = 191;} - else if ( (LA73_122==AMP) && (synpred51_FTS())) {s = 192;} - else if ( (LA73_122==EOF) && (synpred51_FTS())) {s = 193;} - else if ( (LA73_122==RPAREN) && (synpred51_FTS())) {s = 194;} - else if ( (LA73_122==OR) && (synpred51_FTS())) {s = 195;} - else if ( (LA73_122==BAR) && (synpred51_FTS())) {s = 196;} - else if ( (LA73_122==EXCLAMATION) && (synpred51_FTS())) {s = 197;} - else if ( (LA73_122==AT) && (synpred51_FTS())) {s = 198;} - else if ( (LA73_122==FTSPHRASE) && (synpred51_FTS())) {s = 199;} - else if ( (LA73_122==LSQUARE) && (synpred51_FTS())) {s = 200;} - else if ( (LA73_122==LT) && (synpred51_FTS())) {s = 201;} - else if ( (LA73_122==COMMA||LA73_122==DOT) && (synpred51_FTS())) {s = 202;} - else if ( (LA73_122==EQUALS) && (synpred51_FTS())) {s = 203;} - else if ( (LA73_122==LPAREN) && (synpred51_FTS())) {s = 204;} - else if ( (LA73_122==PERCENT) && (synpred51_FTS())) {s = 205;} - else if ( (LA73_122==PLUS) && (synpred51_FTS())) {s = 206;} - else if ( (LA73_122==MINUS) && (synpred51_FTS())) {s = 207;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_122); + input.seek(index84_449); if ( s>=0 ) return s; break; case 85 : - int LA73_74 = input.LA(1); + int LA84_440 = input.LA(1); - int index73_74 = input.index(); + int index84_440 = input.index(); input.rewind(); s = -1; - if ( (LA73_74==COMMA||LA73_74==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_74); + input.seek(index84_440); if ( s>=0 ) return s; break; case 86 : - int LA73_131 = input.LA(1); + int LA84_270 = input.LA(1); - int index73_131 = input.index(); + int index84_270 = input.index(); input.rewind(); s = -1; - if ( (LA73_131==COMMA||LA73_131==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_270==COMMA||LA84_270==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_131); + input.seek(index84_270); if ( s>=0 ) return s; break; case 87 : - int LA73_219 = input.LA(1); + int LA84_226 = input.LA(1); - int index73_219 = input.index(); + int index84_226 = input.index(); input.rewind(); s = -1; - if ( (LA73_219==COMMA||LA73_219==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_226==COMMA||LA84_226==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_219); + input.seek(index84_226); if ( s>=0 ) return s; break; case 88 : - int LA73_430 = input.LA(1); + int LA84_179 = input.LA(1); - int index73_430 = input.index(); + int index84_179 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_179==COMMA||LA84_179==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_430); + input.seek(index84_179); if ( s>=0 ) return s; break; case 89 : - int LA73_33 = input.LA(1); + int LA84_148 = input.LA(1); - int index73_33 = input.index(); + int index84_148 = input.index(); input.rewind(); s = -1; - if ( (LA73_33==ID) ) {s = 72;} - else if ( (LA73_33==FTSWORD) ) {s = 73;} - else if ( (LA73_33==FTSPRE) ) {s = 74;} - else if ( (LA73_33==FTSWILD) ) {s = 75;} - else if ( (LA73_33==NOT) ) {s = 76;} - else if ( (LA73_33==TO) ) {s = 77;} - else if ( (LA73_33==DECIMAL_INTEGER_LITERAL) ) {s = 78;} - else if ( (LA73_33==FLOATING_POINT_LITERAL) ) {s = 79;} - else if ( (LA73_33==STAR) ) {s = 80;} - else if ( (LA73_33==QUESTION_MARK) ) {s = 81;} - else if ( (LA73_33==DATETIME) ) {s = 82;} - else if ( (LA73_33==URI) ) {s = 83;} - else if ( (LA73_33==TILDA) && (synpred55_FTS())) {s = 84;} - else if ( (LA73_33==CARAT) && (synpred55_FTS())) {s = 85;} - else if ( (LA73_33==AND) && (synpred55_FTS())) {s = 86;} - else if ( (LA73_33==AMP) && (synpred55_FTS())) {s = 87;} - else if ( (LA73_33==EOF) && (synpred55_FTS())) {s = 88;} - else if ( (LA73_33==RPAREN) && (synpred55_FTS())) {s = 89;} - else if ( (LA73_33==OR) && (synpred55_FTS())) {s = 90;} - else if ( (LA73_33==BAR) && (synpred55_FTS())) {s = 91;} - else if ( (LA73_33==EXCLAMATION) && (synpred55_FTS())) {s = 92;} - else if ( (LA73_33==AT) && (synpred55_FTS())) {s = 93;} - else if ( (LA73_33==FTSPHRASE) && (synpred55_FTS())) {s = 94;} - else if ( (LA73_33==LSQUARE) && (synpred55_FTS())) {s = 95;} - else if ( (LA73_33==LT) && (synpred55_FTS())) {s = 96;} - else if ( (LA73_33==COMMA||LA73_33==DOT) && (synpred55_FTS())) {s = 97;} - else if ( (LA73_33==EQUALS) && (synpred55_FTS())) {s = 98;} - else if ( (LA73_33==LPAREN) && (synpred55_FTS())) {s = 99;} - else if ( (LA73_33==PERCENT) && (synpred55_FTS())) {s = 100;} - else if ( (LA73_33==PLUS) && (synpred55_FTS())) {s = 101;} - else if ( (LA73_33==MINUS) && (synpred55_FTS())) {s = 102;} + if ( (LA84_148==COMMA||LA84_148==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_33); + input.seek(index84_148); if ( s>=0 ) return s; break; case 90 : - int LA73_79 = input.LA(1); + int LA84_375 = input.LA(1); - int index73_79 = input.index(); + int index84_375 = input.index(); input.rewind(); s = -1; - if ( (LA73_79==COMMA||LA73_79==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_79); + input.seek(index84_375); if ( s>=0 ) return s; break; case 91 : - int LA73_136 = input.LA(1); + int LA84_235 = input.LA(1); - int index73_136 = input.index(); + int index84_235 = input.index(); input.rewind(); s = -1; - if ( (LA73_136==COMMA||LA73_136==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_235==COMMA||LA84_235==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_136); + input.seek(index84_235); if ( s>=0 ) return s; break; case 92 : - int LA73_236 = input.LA(1); + int LA84_324 = input.LA(1); - int index73_236 = input.index(); + int index84_324 = input.index(); input.rewind(); s = -1; - if ( (LA73_236==COMMA||LA73_236==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_324==COMMA||LA84_324==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_236); + input.seek(index84_324); if ( s>=0 ) return s; break; case 93 : - int LA73_48 = input.LA(1); + int LA84_216 = input.LA(1); - int index73_48 = input.index(); + int index84_216 = input.index(); input.rewind(); s = -1; - if ( (LA73_48==COMMA||LA73_48==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_216==COMMA||LA84_216==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_48); + input.seek(index84_216); if ( s>=0 ) return s; break; case 94 : - int LA73_119 = input.LA(1); + int LA84_228 = input.LA(1); - int index73_119 = input.index(); + int index84_228 = input.index(); input.rewind(); s = -1; - if ( (LA73_119==COMMA||LA73_119==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_228==COMMA||LA84_228==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_119); + input.seek(index84_228); if ( s>=0 ) return s; break; case 95 : - int LA73_300 = input.LA(1); + int LA84_420 = input.LA(1); - int index73_300 = input.index(); + int index84_420 = input.index(); input.rewind(); s = -1; - if ( (LA73_300==COMMA||LA73_300==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_300); + input.seek(index84_420); if ( s>=0 ) return s; break; case 96 : - int LA73_271 = input.LA(1); + int LA84_332 = input.LA(1); - int index73_271 = input.index(); + int index84_332 = input.index(); input.rewind(); s = -1; - if ( (LA73_271==COMMA||LA73_271==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_271); + input.seek(index84_332); if ( s>=0 ) return s; break; case 97 : - int LA73_335 = input.LA(1); + int LA84_376 = input.LA(1); - int index73_335 = input.index(); + int index84_376 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_335); + input.seek(index84_376); if ( s>=0 ) return s; break; case 98 : - int LA73_417 = input.LA(1); + int LA84_403 = input.LA(1); - int index73_417 = input.index(); + int index84_403 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_403==DOT) ) {s = 445;} + else if ( (LA84_403==COMMA) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_417); + input.seek(index84_403); if ( s>=0 ) return s; break; case 99 : - int LA73_325 = input.LA(1); + int LA84_457 = input.LA(1); - int index73_325 = input.index(); + int index84_457 = input.index(); input.rewind(); s = -1; - if ( (LA73_325==COMMA||LA73_325==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_325); + input.seek(index84_457); if ( s>=0 ) return s; break; case 100 : - int LA73_73 = input.LA(1); + int LA84_366 = input.LA(1); - int index73_73 = input.index(); + int index84_366 = input.index(); input.rewind(); s = -1; - if ( (LA73_73==COMMA||LA73_73==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_366==COMMA||LA84_366==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_73); + input.seek(index84_366); if ( s>=0 ) return s; break; case 101 : - int LA73_130 = input.LA(1); + int LA84_410 = input.LA(1); - int index73_130 = input.index(); + int index84_410 = input.index(); input.rewind(); s = -1; - if ( (LA73_130==COMMA||LA73_130==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_130); + input.seek(index84_410); if ( s>=0 ) return s; break; case 102 : - int LA73_47 = input.LA(1); + int LA84_122 = input.LA(1); - int index73_47 = input.index(); + int index84_122 = input.index(); input.rewind(); s = -1; - if ( (LA73_47==COMMA||LA73_47==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_122==ID) ) {s = 177;} + else if ( (LA84_122==FTSWORD) ) {s = 178;} + else if ( (LA84_122==FTSPRE) ) {s = 179;} + else if ( (LA84_122==FTSWILD) ) {s = 180;} + else if ( (LA84_122==NOT) ) {s = 181;} + else if ( (LA84_122==TO) ) {s = 182;} + else if ( (LA84_122==DECIMAL_INTEGER_LITERAL) ) {s = 183;} + else if ( (LA84_122==FLOATING_POINT_LITERAL) ) {s = 184;} + else if ( (LA84_122==STAR) ) {s = 185;} + else if ( (LA84_122==QUESTION_MARK) ) {s = 186;} + else if ( (LA84_122==DATETIME) ) {s = 187;} + else if ( (LA84_122==URI) ) {s = 188;} + else if ( (LA84_122==TILDA) && (synpred59_FTS())) {s = 189;} + else if ( (LA84_122==CARAT) && (synpred59_FTS())) {s = 190;} + else if ( (LA84_122==AND) && (synpred59_FTS())) {s = 191;} + else if ( (LA84_122==AMP) && (synpred59_FTS())) {s = 192;} + else if ( (LA84_122==EOF) && (synpred59_FTS())) {s = 193;} + else if ( (LA84_122==RPAREN) && (synpred59_FTS())) {s = 194;} + else if ( (LA84_122==OR) && (synpred59_FTS())) {s = 195;} + else if ( (LA84_122==BAR) && (synpred59_FTS())) {s = 196;} + else if ( (LA84_122==EXCLAMATION) && (synpred59_FTS())) {s = 197;} + else if ( (LA84_122==AT) && (synpred59_FTS())) {s = 198;} + else if ( (LA84_122==FTSPHRASE) && (synpred59_FTS())) {s = 199;} + else if ( (LA84_122==LSQUARE) && (synpred59_FTS())) {s = 200;} + else if ( (LA84_122==LT) && (synpred59_FTS())) {s = 201;} + else if ( (LA84_122==COMMA||LA84_122==DOT) && (synpred59_FTS())) {s = 202;} + else if ( (LA84_122==EQUALS) && (synpred59_FTS())) {s = 203;} + else if ( (LA84_122==LPAREN) && (synpred59_FTS())) {s = 204;} + else if ( (LA84_122==PERCENT) && (synpred59_FTS())) {s = 205;} + else if ( (LA84_122==PLUS) && (synpred59_FTS())) {s = 206;} + else if ( (LA84_122==MINUS) && (synpred59_FTS())) {s = 207;} - input.seek(index73_47); + input.seek(index84_122); if ( s>=0 ) return s; break; case 103 : - int LA73_118 = input.LA(1); + int LA84_222 = input.LA(1); - int index73_118 = input.index(); + int index84_222 = input.index(); input.rewind(); s = -1; - if ( (LA73_118==COMMA||LA73_118==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_222==DOT) ) {s = 292;} + else if ( (LA84_222==COMMA) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_118); + input.seek(index84_222); if ( s>=0 ) return s; break; case 104 : - int LA73_410 = input.LA(1); + int LA84_306 = input.LA(1); - int index73_410 = input.index(); + int index84_306 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_306==COMMA||LA84_306==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_410); + input.seek(index84_306); if ( s>=0 ) return s; break; case 105 : - int LA73_78 = input.LA(1); + int LA84_182 = input.LA(1); - int index73_78 = input.index(); + int index84_182 = input.index(); input.rewind(); s = -1; - if ( (LA73_78==COMMA||LA73_78==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_182==COMMA||LA84_182==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_78); + input.seek(index84_182); if ( s>=0 ) return s; break; case 106 : - int LA73_135 = input.LA(1); + int LA84_450 = input.LA(1); - int index73_135 = input.index(); + int index84_450 = input.index(); input.rewind(); s = -1; - if ( (LA73_135==COMMA||LA73_135==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_135); + input.seek(index84_450); if ( s>=0 ) return s; break; case 107 : - int LA73_233 = input.LA(1); + int LA84_234 = input.LA(1); - int index73_233 = input.index(); + int index84_234 = input.index(); input.rewind(); s = -1; - if ( (LA73_233==COMMA||LA73_233==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_234==COMMA||LA84_234==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_233); + input.seek(index84_234); if ( s>=0 ) return s; break; case 108 : - int LA73_171 = input.LA(1); + int LA84_335 = input.LA(1); - int index73_171 = input.index(); + int index84_335 = input.index(); input.rewind(); s = -1; - if ( (LA73_171==ID) ) {s = 220;} - else if ( (LA73_171==FTSWORD) ) {s = 141;} - else if ( (LA73_171==FTSPRE) ) {s = 142;} - else if ( (LA73_171==FTSWILD) ) {s = 143;} - else if ( (LA73_171==NOT) ) {s = 144;} - else if ( (LA73_171==TO) ) {s = 145;} - else if ( (LA73_171==DECIMAL_INTEGER_LITERAL) ) {s = 146;} - else if ( (LA73_171==FLOATING_POINT_LITERAL) ) {s = 147;} - else if ( (LA73_171==STAR) ) {s = 148;} - else if ( (LA73_171==QUESTION_MARK) ) {s = 149;} - else if ( (LA73_171==DATETIME) ) {s = 150;} - else if ( (LA73_171==URI) ) {s = 151;} - else if ( (LA73_171==TILDA) && (synpred52_FTS())) {s = 152;} - else if ( (LA73_171==CARAT) && (synpred52_FTS())) {s = 153;} - else if ( (LA73_171==AND) && (synpred52_FTS())) {s = 154;} - else if ( (LA73_171==AMP) && (synpred52_FTS())) {s = 155;} - else if ( (LA73_171==EOF) && (synpred52_FTS())) {s = 156;} - else if ( (LA73_171==RPAREN) && (synpred52_FTS())) {s = 157;} - else if ( (LA73_171==OR) && (synpred52_FTS())) {s = 158;} - else if ( (LA73_171==BAR) && (synpred52_FTS())) {s = 159;} - else if ( (LA73_171==EXCLAMATION) && (synpred52_FTS())) {s = 160;} - else if ( (LA73_171==AT) && (synpred52_FTS())) {s = 161;} - else if ( (LA73_171==FTSPHRASE) && (synpred52_FTS())) {s = 162;} - else if ( (LA73_171==LSQUARE) && (synpred52_FTS())) {s = 163;} - else if ( (LA73_171==LT) && (synpred52_FTS())) {s = 164;} - else if ( (LA73_171==COMMA||LA73_171==DOT) && (synpred52_FTS())) {s = 165;} - else if ( (LA73_171==EQUALS) && (synpred52_FTS())) {s = 166;} - else if ( (LA73_171==LPAREN) && (synpred52_FTS())) {s = 167;} - else if ( (LA73_171==PERCENT) && (synpred52_FTS())) {s = 168;} - else if ( (LA73_171==PLUS) && (synpred52_FTS())) {s = 169;} - else if ( (LA73_171==MINUS) && (synpred52_FTS())) {s = 170;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_171); + input.seek(index84_335); if ( s>=0 ) return s; break; case 109 : - int LA73_309 = input.LA(1); + int LA84_426 = input.LA(1); - int index73_309 = input.index(); + int index84_426 = input.index(); input.rewind(); s = -1; - if ( (LA73_309==COMMA||LA73_309==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_426==ID) ) {s = 451;} + else if ( (LA84_426==FTSWORD) ) {s = 415;} + else if ( (LA84_426==FTSPRE) ) {s = 416;} + else if ( (LA84_426==FTSWILD) ) {s = 417;} + else if ( (LA84_426==NOT) ) {s = 418;} + else if ( (LA84_426==TO) ) {s = 419;} + else if ( (LA84_426==DECIMAL_INTEGER_LITERAL) ) {s = 420;} + else if ( (LA84_426==FLOATING_POINT_LITERAL) ) {s = 421;} + else if ( (LA84_426==STAR) ) {s = 422;} + else if ( (LA84_426==QUESTION_MARK) ) {s = 423;} + else if ( (LA84_426==DATETIME) ) {s = 424;} + else if ( (LA84_426==URI) ) {s = 425;} + else if ( (LA84_426==TILDA) && (synpred52_FTS())) {s = 344;} + else if ( (LA84_426==CARAT) && (synpred52_FTS())) {s = 345;} + else if ( (LA84_426==AND) && (synpred52_FTS())) {s = 346;} + else if ( (LA84_426==AMP) && (synpred52_FTS())) {s = 347;} + else if ( (LA84_426==EOF) && (synpred52_FTS())) {s = 348;} + else if ( (LA84_426==RPAREN) && (synpred52_FTS())) {s = 349;} + else if ( (LA84_426==OR) && (synpred52_FTS())) {s = 350;} + else if ( (LA84_426==BAR) && (synpred52_FTS())) {s = 351;} + else if ( (LA84_426==EXCLAMATION) && (synpred52_FTS())) {s = 352;} + else if ( (LA84_426==AT) && (synpred52_FTS())) {s = 353;} + else if ( (LA84_426==FTSPHRASE) && (synpred52_FTS())) {s = 354;} + else if ( (LA84_426==LSQUARE) && (synpred52_FTS())) {s = 355;} + else if ( (LA84_426==LT) && (synpred52_FTS())) {s = 356;} + else if ( (LA84_426==COMMA||LA84_426==DOT) && (synpred52_FTS())) {s = 357;} + else if ( (LA84_426==EQUALS) && (synpred52_FTS())) {s = 358;} + else if ( (LA84_426==LPAREN) && (synpred52_FTS())) {s = 359;} + else if ( (LA84_426==PERCENT) && (synpred52_FTS())) {s = 360;} + else if ( (LA84_426==PLUS) && (synpred52_FTS())) {s = 361;} + else if ( (LA84_426==MINUS) && (synpred52_FTS())) {s = 362;} - input.seek(index73_309); + input.seek(index84_426); if ( s>=0 ) return s; break; case 110 : - int LA73_106 = input.LA(1); + int LA84_441 = input.LA(1); - int index73_106 = input.index(); + int index84_441 = input.index(); input.rewind(); s = -1; - if ( (LA73_106==DOT) ) {s = 171;} - else if ( (LA73_106==COMMA) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_106); + input.seek(index84_441); if ( s>=0 ) return s; break; case 111 : - int LA73_376 = input.LA(1); + int LA84_316 = input.LA(1); - int index73_376 = input.index(); + int index84_316 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_316==COMMA||LA84_316==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_376); + input.seek(index84_316); if ( s>=0 ) return s; break; case 112 : - int LA73_186 = input.LA(1); + int LA84_50 = input.LA(1); - int index73_186 = input.index(); + int index84_50 = input.index(); input.rewind(); s = -1; - if ( (LA73_186==COMMA||LA73_186==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_50==COMMA||LA84_50==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_186); + input.seek(index84_50); if ( s>=0 ) return s; break; case 113 : - int LA73_238 = input.LA(1); + int LA84_121 = input.LA(1); - int index73_238 = input.index(); + int index84_121 = input.index(); input.rewind(); s = -1; - if ( (LA73_238==COMMA||LA73_238==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_121==COMMA||LA84_121==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_238); + input.seek(index84_121); if ( s>=0 ) return s; break; case 114 : - int LA73_263 = input.LA(1); + int LA84_71 = input.LA(1); - int index73_263 = input.index(); + int index84_71 = input.index(); input.rewind(); s = -1; - if ( (LA73_263==COMMA||LA73_263==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_71==ID) ) {s = 111;} + else if ( (LA84_71==FTSWORD) ) {s = 112;} + else if ( (LA84_71==FTSPRE) ) {s = 113;} + else if ( (LA84_71==FTSWILD) ) {s = 114;} + else if ( (LA84_71==NOT) ) {s = 115;} + else if ( (LA84_71==TO) ) {s = 116;} + else if ( (LA84_71==DECIMAL_INTEGER_LITERAL) ) {s = 117;} + else if ( (LA84_71==FLOATING_POINT_LITERAL) ) {s = 118;} + else if ( (LA84_71==STAR) ) {s = 119;} + else if ( (LA84_71==QUESTION_MARK) ) {s = 120;} + else if ( (LA84_71==DATETIME) ) {s = 121;} + else if ( (LA84_71==URI) ) {s = 51;} + else if ( (LA84_71==TILDA) && (synpred64_FTS())) {s = 52;} + else if ( (LA84_71==CARAT) && (synpred64_FTS())) {s = 53;} + else if ( (LA84_71==AND) && (synpred64_FTS())) {s = 54;} + else if ( (LA84_71==AMP) && (synpred64_FTS())) {s = 55;} + else if ( (LA84_71==EOF) && (synpred64_FTS())) {s = 56;} + else if ( (LA84_71==RPAREN) && (synpred64_FTS())) {s = 57;} + else if ( (LA84_71==OR) && (synpred64_FTS())) {s = 58;} + else if ( (LA84_71==BAR) && (synpred64_FTS())) {s = 59;} + else if ( (LA84_71==EXCLAMATION) && (synpred64_FTS())) {s = 60;} + else if ( (LA84_71==AT) && (synpred64_FTS())) {s = 61;} + else if ( (LA84_71==FTSPHRASE) && (synpred64_FTS())) {s = 62;} + else if ( (LA84_71==LSQUARE) && (synpred64_FTS())) {s = 63;} + else if ( (LA84_71==LT) && (synpred64_FTS())) {s = 64;} + else if ( (LA84_71==COMMA||LA84_71==DOT) && (synpred64_FTS())) {s = 65;} + else if ( (LA84_71==EQUALS) && (synpred64_FTS())) {s = 66;} + else if ( (LA84_71==LPAREN) && (synpred64_FTS())) {s = 67;} + else if ( (LA84_71==PERCENT) && (synpred64_FTS())) {s = 68;} + else if ( (LA84_71==PLUS) && (synpred64_FTS())) {s = 69;} + else if ( (LA84_71==MINUS) && (synpred64_FTS())) {s = 70;} - input.seek(index73_263); + input.seek(index84_71); if ( s>=0 ) return s; break; case 115 : - int LA73_110 = input.LA(1); + int LA84_221 = input.LA(1); - int index73_110 = input.index(); + int index84_221 = input.index(); input.rewind(); s = -1; - if ( (LA73_110==COMMA||LA73_110==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_221==ID) ) {s = 261;} + else if ( (LA84_221==FTSWORD) ) {s = 262;} + else if ( (LA84_221==FTSPRE) ) {s = 263;} + else if ( (LA84_221==FTSWILD) ) {s = 264;} + else if ( (LA84_221==NOT) ) {s = 265;} + else if ( (LA84_221==TO) ) {s = 266;} + else if ( (LA84_221==DECIMAL_INTEGER_LITERAL) ) {s = 267;} + else if ( (LA84_221==FLOATING_POINT_LITERAL) ) {s = 268;} + else if ( (LA84_221==STAR) ) {s = 269;} + else if ( (LA84_221==QUESTION_MARK) ) {s = 270;} + else if ( (LA84_221==DATETIME) ) {s = 271;} + else if ( (LA84_221==URI) ) {s = 272;} + else if ( (LA84_221==TILDA) && (synpred55_FTS())) {s = 273;} + else if ( (LA84_221==CARAT) && (synpred55_FTS())) {s = 274;} + else if ( (LA84_221==AND) && (synpred55_FTS())) {s = 275;} + else if ( (LA84_221==AMP) && (synpred55_FTS())) {s = 276;} + else if ( (LA84_221==EOF) && (synpred55_FTS())) {s = 277;} + else if ( (LA84_221==RPAREN) && (synpred55_FTS())) {s = 278;} + else if ( (LA84_221==OR) && (synpred55_FTS())) {s = 279;} + else if ( (LA84_221==BAR) && (synpred55_FTS())) {s = 280;} + else if ( (LA84_221==EXCLAMATION) && (synpred55_FTS())) {s = 281;} + else if ( (LA84_221==AT) && (synpred55_FTS())) {s = 282;} + else if ( (LA84_221==FTSPHRASE) && (synpred55_FTS())) {s = 283;} + else if ( (LA84_221==LSQUARE) && (synpred55_FTS())) {s = 284;} + else if ( (LA84_221==LT) && (synpred55_FTS())) {s = 285;} + else if ( (LA84_221==COMMA||LA84_221==DOT) && (synpred55_FTS())) {s = 286;} + else if ( (LA84_221==EQUALS) && (synpred55_FTS())) {s = 287;} + else if ( (LA84_221==LPAREN) && (synpred55_FTS())) {s = 288;} + else if ( (LA84_221==PERCENT) && (synpred55_FTS())) {s = 289;} + else if ( (LA84_221==PLUS) && (synpred55_FTS())) {s = 290;} + else if ( (LA84_221==MINUS) && (synpred55_FTS())) {s = 291;} - input.seek(index73_110); + input.seek(index84_221); if ( s>=0 ) return s; break; case 116 : - int LA73_183 = input.LA(1); + int LA84_81 = input.LA(1); - int index73_183 = input.index(); + int index84_81 = input.index(); input.rewind(); s = -1; - if ( (LA73_183==COMMA||LA73_183==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_81==COMMA||LA84_81==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_183); + input.seek(index84_81); if ( s>=0 ) return s; break; case 117 : - int LA73_223 = input.LA(1); + int LA84_138 = input.LA(1); - int index73_223 = input.index(); + int index84_138 = input.index(); input.rewind(); s = -1; - if ( (LA73_223==COMMA||LA73_223==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_138==COMMA||LA84_138==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_223); + input.seek(index84_138); if ( s>=0 ) return s; break; case 118 : - int LA73_414 = input.LA(1); + int LA84_208 = input.LA(1); - int index73_414 = input.index(); + int index84_208 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_208==ID) ) {s = 227;} + else if ( (LA84_208==FTSWORD) ) {s = 178;} + else if ( (LA84_208==FTSPRE) ) {s = 179;} + else if ( (LA84_208==FTSWILD) ) {s = 180;} + else if ( (LA84_208==NOT) ) {s = 181;} + else if ( (LA84_208==TO) ) {s = 182;} + else if ( (LA84_208==DECIMAL_INTEGER_LITERAL) ) {s = 183;} + else if ( (LA84_208==FLOATING_POINT_LITERAL) ) {s = 184;} + else if ( (LA84_208==STAR) ) {s = 185;} + else if ( (LA84_208==QUESTION_MARK) ) {s = 186;} + else if ( (LA84_208==DATETIME) ) {s = 187;} + else if ( (LA84_208==URI) ) {s = 188;} + else if ( (LA84_208==TILDA) && (synpred59_FTS())) {s = 189;} + else if ( (LA84_208==CARAT) && (synpred59_FTS())) {s = 190;} + else if ( (LA84_208==AND) && (synpred59_FTS())) {s = 191;} + else if ( (LA84_208==AMP) && (synpred59_FTS())) {s = 192;} + else if ( (LA84_208==EOF) && (synpred59_FTS())) {s = 193;} + else if ( (LA84_208==RPAREN) && (synpred59_FTS())) {s = 194;} + else if ( (LA84_208==OR) && (synpred59_FTS())) {s = 195;} + else if ( (LA84_208==BAR) && (synpred59_FTS())) {s = 196;} + else if ( (LA84_208==EXCLAMATION) && (synpred59_FTS())) {s = 197;} + else if ( (LA84_208==AT) && (synpred59_FTS())) {s = 198;} + else if ( (LA84_208==FTSPHRASE) && (synpred59_FTS())) {s = 199;} + else if ( (LA84_208==LSQUARE) && (synpred59_FTS())) {s = 200;} + else if ( (LA84_208==LT) && (synpred59_FTS())) {s = 201;} + else if ( (LA84_208==COMMA||LA84_208==DOT) && (synpred59_FTS())) {s = 202;} + else if ( (LA84_208==EQUALS) && (synpred59_FTS())) {s = 203;} + else if ( (LA84_208==LPAREN) && (synpred59_FTS())) {s = 204;} + else if ( (LA84_208==PERCENT) && (synpred59_FTS())) {s = 205;} + else if ( (LA84_208==PLUS) && (synpred59_FTS())) {s = 206;} + else if ( (LA84_208==MINUS) && (synpred59_FTS())) {s = 207;} - input.seek(index73_414); + input.seek(index84_208); if ( s>=0 ) return s; break; case 119 : - int LA73_321 = input.LA(1); + int LA84_319 = input.LA(1); - int index73_321 = input.index(); + int index84_319 = input.index(); input.rewind(); s = -1; - if ( (LA73_321==COMMA||LA73_321==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_319==COMMA||LA84_319==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_321); + input.seek(index84_319); if ( s>=0 ) return s; break; case 120 : - int LA73_81 = input.LA(1); + int LA84_78 = input.LA(1); - int index73_81 = input.index(); + int index84_78 = input.index(); input.rewind(); s = -1; - if ( (LA73_81==COMMA||LA73_81==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} + if ( (LA84_78==COMMA||LA84_78==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} else if ( (true) ) {s = 34;} - input.seek(index73_81); + input.seek(index84_78); if ( s>=0 ) return s; break; case 121 : - int LA73_138 = input.LA(1); + int LA84_135 = input.LA(1); - int index73_138 = input.index(); + int index84_135 = input.index(); input.rewind(); s = -1; - if ( (LA73_138==COMMA||LA73_138==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} + if ( (LA84_135==COMMA||LA84_135==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} else if ( (true) ) {s = 34;} - input.seek(index73_138); + input.seek(index84_135); if ( s>=0 ) return s; break; case 122 : - int LA73_299 = input.LA(1); + int LA84_140 = input.LA(1); - int index73_299 = input.index(); + int index84_140 = input.index(); input.rewind(); s = -1; - if ( (LA73_299==COMMA||LA73_299==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_140==COMMA||LA84_140==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_299); + input.seek(index84_140); if ( s>=0 ) return s; break; case 123 : - int LA73_72 = input.LA(1); + int LA84_236 = input.LA(1); - int index73_72 = input.index(); + int index84_236 = input.index(); input.rewind(); s = -1; - if ( (LA73_72==COMMA||LA73_72==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_236==COMMA||LA84_236==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_72); + input.seek(index84_236); if ( s>=0 ) return s; break; case 124 : - int LA73_431 = input.LA(1); + int LA84_336 = input.LA(1); - int index73_431 = input.index(); + int index84_336 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_431); + input.seek(index84_336); if ( s>=0 ) return s; break; case 125 : - int LA73_439 = input.LA(1); + int LA84_421 = input.LA(1); - int index73_439 = input.index(); + int index84_421 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_439); + input.seek(index84_421); if ( s>=0 ) return s; break; case 126 : - int LA73_453 = input.LA(1); + int LA84_262 = input.LA(1); - int index73_453 = input.index(); + int index84_262 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_262==COMMA||LA84_262==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_453); + input.seek(index84_262); if ( s>=0 ) return s; break; case 127 : - int LA73_330 = input.LA(1); + int LA84_377 = input.LA(1); - int index73_330 = input.index(); + int index84_377 = input.index(); input.rewind(); s = -1; - if ( (LA73_330==COMMA||LA73_330==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_330); + input.seek(index84_377); if ( s>=0 ) return s; break; case 128 : - int LA73_215 = input.LA(1); + int LA84_217 = input.LA(1); - int index73_215 = input.index(); + int index84_217 = input.index(); input.rewind(); s = -1; - if ( (LA73_215==DOT) ) {s = 259;} - else if ( (LA73_215==COMMA) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_217==COMMA||LA84_217==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_215); + input.seek(index84_217); if ( s>=0 ) return s; break; case 129 : - int LA73_310 = input.LA(1); + int LA84_443 = input.LA(1); - int index73_310 = input.index(); + int index84_443 = input.index(); input.rewind(); s = -1; - if ( (LA73_310==COMMA||LA73_310==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_310); + input.seek(index84_443); if ( s>=0 ) return s; break; case 130 : - int LA73_364 = input.LA(1); + int LA84_109 = input.LA(1); - int index73_364 = input.index(); + int index84_109 = input.index(); input.rewind(); s = -1; - if ( (LA73_364==ID) ) {s = 414;} - else if ( (LA73_364==FTSWORD) ) {s = 415;} - else if ( (LA73_364==FTSPRE) ) {s = 416;} - else if ( (LA73_364==FTSWILD) ) {s = 417;} - else if ( (LA73_364==NOT) ) {s = 418;} - else if ( (LA73_364==TO) ) {s = 419;} - else if ( (LA73_364==DECIMAL_INTEGER_LITERAL) ) {s = 420;} - else if ( (LA73_364==FLOATING_POINT_LITERAL) ) {s = 421;} - else if ( (LA73_364==STAR) ) {s = 422;} - else if ( (LA73_364==QUESTION_MARK) ) {s = 423;} - else if ( (LA73_364==DATETIME) ) {s = 424;} - else if ( (LA73_364==URI) ) {s = 425;} - else if ( (LA73_364==TILDA) && (synpred44_FTS())) {s = 344;} - else if ( (LA73_364==CARAT) && (synpred44_FTS())) {s = 345;} - else if ( (LA73_364==AND) && (synpred44_FTS())) {s = 346;} - else if ( (LA73_364==AMP) && (synpred44_FTS())) {s = 347;} - else if ( (LA73_364==EOF) && (synpred44_FTS())) {s = 348;} - else if ( (LA73_364==RPAREN) && (synpred44_FTS())) {s = 349;} - else if ( (LA73_364==OR) && (synpred44_FTS())) {s = 350;} - else if ( (LA73_364==BAR) && (synpred44_FTS())) {s = 351;} - else if ( (LA73_364==EXCLAMATION) && (synpred44_FTS())) {s = 352;} - else if ( (LA73_364==AT) && (synpred44_FTS())) {s = 353;} - else if ( (LA73_364==FTSPHRASE) && (synpred44_FTS())) {s = 354;} - else if ( (LA73_364==LSQUARE) && (synpred44_FTS())) {s = 355;} - else if ( (LA73_364==LT) && (synpred44_FTS())) {s = 356;} - else if ( (LA73_364==COMMA||LA73_364==DOT) && (synpred44_FTS())) {s = 357;} - else if ( (LA73_364==EQUALS) && (synpred44_FTS())) {s = 358;} - else if ( (LA73_364==LPAREN) && (synpred44_FTS())) {s = 359;} - else if ( (LA73_364==PERCENT) && (synpred44_FTS())) {s = 360;} - else if ( (LA73_364==PLUS) && (synpred44_FTS())) {s = 361;} - else if ( (LA73_364==MINUS) && (synpred44_FTS())) {s = 362;} + if ( (LA84_109==COMMA||LA84_109==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_364); + input.seek(index84_109); if ( s>=0 ) return s; break; case 131 : - int LA73_264 = input.LA(1); + int LA84_180 = input.LA(1); - int index73_264 = input.index(); + int index84_180 = input.index(); input.rewind(); s = -1; - if ( (LA73_264==COMMA||LA73_264==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_180==COMMA||LA84_180==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_264); + input.seek(index84_180); if ( s>=0 ) return s; break; case 132 : - int LA73_184 = input.LA(1); + int LA84_265 = input.LA(1); - int index73_184 = input.index(); + int index84_265 = input.index(); input.rewind(); s = -1; - if ( (LA73_184==COMMA||LA73_184==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_265==COMMA||LA84_265==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_184); + input.seek(index84_265); if ( s>=0 ) return s; break; case 133 : - int LA73_438 = input.LA(1); + int LA84_419 = input.LA(1); - int index73_438 = input.index(); + int index84_419 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_438); + input.seek(index84_419); if ( s>=0 ) return s; break; case 134 : - int LA73_411 = input.LA(1); + int LA84_411 = input.LA(1); - int index73_411 = input.index(); + int index84_411 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_411); + input.seek(index84_411); if ( s>=0 ) return s; break; case 135 : - int LA73_107 = input.LA(1); + int LA84_40 = input.LA(1); - int index73_107 = input.index(); + int index84_40 = input.index(); input.rewind(); s = -1; - if ( (LA73_107==COMMA||LA73_107==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} + if ( (LA84_40==COMMA||LA84_40==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} else if ( (true) ) {s = 27;} - input.seek(index73_107); + input.seek(index84_40); if ( s>=0 ) return s; break; case 136 : - int LA73_75 = input.LA(1); + int LA84_72 = input.LA(1); - int index73_75 = input.index(); + int index84_72 = input.index(); input.rewind(); s = -1; - if ( (LA73_75==COMMA||LA73_75==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} + if ( (LA84_72==COMMA||LA84_72==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} else if ( (true) ) {s = 34;} - input.seek(index73_75); + input.seek(index84_72); if ( s>=0 ) return s; break; case 137 : - int LA73_132 = input.LA(1); + int LA84_367 = input.LA(1); - int index73_132 = input.index(); + int index84_367 = input.index(); input.rewind(); s = -1; - if ( (LA73_132==COMMA||LA73_132==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_367==COMMA||LA84_367==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_132); + input.seek(index84_367); if ( s>=0 ) return s; break; case 138 : - int LA73_338 = input.LA(1); + int LA84_237 = input.LA(1); - int index73_338 = input.index(); + int index84_237 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_237==COMMA||LA84_237==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_338); + input.seek(index84_237); if ( s>=0 ) return s; break; case 139 : - int LA73_45 = input.LA(1); + int LA84_442 = input.LA(1); - int index73_45 = input.index(); + int index84_442 = input.index(); input.rewind(); s = -1; - if ( (LA73_45==COMMA||LA73_45==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_45); + input.seek(index84_442); if ( s>=0 ) return s; break; case 140 : - int LA73_116 = input.LA(1); + int LA84_302 = input.LA(1); - int index73_116 = input.index(); + int index84_302 = input.index(); input.rewind(); s = -1; - if ( (LA73_116==COMMA||LA73_116==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_302==COMMA||LA84_302==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_116); + input.seek(index84_302); if ( s>=0 ) return s; break; case 141 : - int LA73_306 = input.LA(1); + int LA84_271 = input.LA(1); - int index73_306 = input.index(); + int index84_271 = input.index(); input.rewind(); s = -1; - if ( (LA73_306==COMMA||LA73_306==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_271==COMMA||LA84_271==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_306); + input.seek(index84_271); if ( s>=0 ) return s; break; case 142 : - int LA73_377 = input.LA(1); + int LA84_103 = input.LA(1); - int index73_377 = input.index(); + int index84_103 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_103==ID) ) {s = 129;} + else if ( (LA84_103==FTSWORD) ) {s = 130;} + else if ( (LA84_103==FTSPRE) ) {s = 131;} + else if ( (LA84_103==FTSWILD) ) {s = 132;} + else if ( (LA84_103==NOT) ) {s = 133;} + else if ( (LA84_103==TO) ) {s = 134;} + else if ( (LA84_103==DECIMAL_INTEGER_LITERAL) ) {s = 135;} + else if ( (LA84_103==FLOATING_POINT_LITERAL) ) {s = 136;} + else if ( (LA84_103==STAR) ) {s = 137;} + else if ( (LA84_103==QUESTION_MARK) ) {s = 138;} + else if ( (LA84_103==DATETIME) ) {s = 139;} + else if ( (LA84_103==URI) ) {s = 83;} + else if ( (LA84_103==TILDA) && (synpred63_FTS())) {s = 84;} + else if ( (LA84_103==CARAT) && (synpred63_FTS())) {s = 85;} + else if ( (LA84_103==AND) && (synpred63_FTS())) {s = 86;} + else if ( (LA84_103==AMP) && (synpred63_FTS())) {s = 87;} + else if ( (LA84_103==EOF) && (synpred63_FTS())) {s = 88;} + else if ( (LA84_103==RPAREN) && (synpred63_FTS())) {s = 89;} + else if ( (LA84_103==OR) && (synpred63_FTS())) {s = 90;} + else if ( (LA84_103==BAR) && (synpred63_FTS())) {s = 91;} + else if ( (LA84_103==EXCLAMATION) && (synpred63_FTS())) {s = 92;} + else if ( (LA84_103==AT) && (synpred63_FTS())) {s = 93;} + else if ( (LA84_103==FTSPHRASE) && (synpred63_FTS())) {s = 94;} + else if ( (LA84_103==LSQUARE) && (synpred63_FTS())) {s = 95;} + else if ( (LA84_103==LT) && (synpred63_FTS())) {s = 96;} + else if ( (LA84_103==COMMA||LA84_103==DOT) && (synpred63_FTS())) {s = 97;} + else if ( (LA84_103==EQUALS) && (synpred63_FTS())) {s = 98;} + else if ( (LA84_103==LPAREN) && (synpred63_FTS())) {s = 99;} + else if ( (LA84_103==PERCENT) && (synpred63_FTS())) {s = 100;} + else if ( (LA84_103==PLUS) && (synpred63_FTS())) {s = 101;} + else if ( (LA84_103==MINUS) && (synpred63_FTS())) {s = 102;} - input.seek(index73_377); + input.seek(index84_103); if ( s>=0 ) return s; break; case 143 : - int LA73_420 = input.LA(1); + int LA84_311 = input.LA(1); - int index73_420 = input.index(); + int index84_311 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_311==COMMA||LA84_311==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_420); + input.seek(index84_311); if ( s>=0 ) return s; break; case 144 : - int LA73_224 = input.LA(1); + int LA84_317 = input.LA(1); - int index73_224 = input.index(); + int index84_317 = input.index(); input.rewind(); s = -1; - if ( (LA73_224==COMMA||LA73_224==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_317==COMMA||LA84_317==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_224); + input.seek(index84_317); if ( s>=0 ) return s; break; case 145 : - int LA73_80 = input.LA(1); + int LA84_453 = input.LA(1); - int index73_80 = input.index(); + int index84_453 = input.index(); input.rewind(); s = -1; - if ( (LA73_80==COMMA||LA73_80==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_80); + input.seek(index84_453); if ( s>=0 ) return s; break; case 146 : - int LA73_137 = input.LA(1); + int LA84_294 = input.LA(1); - int index73_137 = input.index(); + int index84_294 = input.index(); input.rewind(); s = -1; - if ( (LA73_137==COMMA||LA73_137==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_294==ID) ) {s = 332;} + else if ( (LA84_294==FTSWORD) ) {s = 333;} + else if ( (LA84_294==FTSPRE) ) {s = 334;} + else if ( (LA84_294==FTSWILD) ) {s = 335;} + else if ( (LA84_294==NOT) ) {s = 336;} + else if ( (LA84_294==TO) ) {s = 337;} + else if ( (LA84_294==DECIMAL_INTEGER_LITERAL) ) {s = 338;} + else if ( (LA84_294==FLOATING_POINT_LITERAL) ) {s = 339;} + else if ( (LA84_294==STAR) ) {s = 340;} + else if ( (LA84_294==QUESTION_MARK) ) {s = 341;} + else if ( (LA84_294==DATETIME) ) {s = 342;} + else if ( (LA84_294==URI) ) {s = 343;} + else if ( (LA84_294==TILDA) && (synpred52_FTS())) {s = 344;} + else if ( (LA84_294==CARAT) && (synpred52_FTS())) {s = 345;} + else if ( (LA84_294==AND) && (synpred52_FTS())) {s = 346;} + else if ( (LA84_294==AMP) && (synpred52_FTS())) {s = 347;} + else if ( (LA84_294==EOF) && (synpred52_FTS())) {s = 348;} + else if ( (LA84_294==RPAREN) && (synpred52_FTS())) {s = 349;} + else if ( (LA84_294==OR) && (synpred52_FTS())) {s = 350;} + else if ( (LA84_294==BAR) && (synpred52_FTS())) {s = 351;} + else if ( (LA84_294==EXCLAMATION) && (synpred52_FTS())) {s = 352;} + else if ( (LA84_294==AT) && (synpred52_FTS())) {s = 353;} + else if ( (LA84_294==FTSPHRASE) && (synpred52_FTS())) {s = 354;} + else if ( (LA84_294==LSQUARE) && (synpred52_FTS())) {s = 355;} + else if ( (LA84_294==LT) && (synpred52_FTS())) {s = 356;} + else if ( (LA84_294==COMMA||LA84_294==DOT) && (synpred52_FTS())) {s = 357;} + else if ( (LA84_294==EQUALS) && (synpred52_FTS())) {s = 358;} + else if ( (LA84_294==LPAREN) && (synpred52_FTS())) {s = 359;} + else if ( (LA84_294==PERCENT) && (synpred52_FTS())) {s = 360;} + else if ( (LA84_294==PLUS) && (synpred52_FTS())) {s = 361;} + else if ( (LA84_294==MINUS) && (synpred52_FTS())) {s = 362;} - input.seek(index73_137); + input.seek(index84_294); if ( s>=0 ) return s; break; case 147 : - int LA73_294 = input.LA(1); + int LA84_408 = input.LA(1); - int index73_294 = input.index(); + int index84_408 = input.index(); input.rewind(); s = -1; - if ( (LA73_294==ID) ) {s = 332;} - else if ( (LA73_294==FTSWORD) ) {s = 333;} - else if ( (LA73_294==FTSPRE) ) {s = 334;} - else if ( (LA73_294==FTSWILD) ) {s = 335;} - else if ( (LA73_294==NOT) ) {s = 336;} - else if ( (LA73_294==TO) ) {s = 337;} - else if ( (LA73_294==DECIMAL_INTEGER_LITERAL) ) {s = 338;} - else if ( (LA73_294==FLOATING_POINT_LITERAL) ) {s = 339;} - else if ( (LA73_294==STAR) ) {s = 340;} - else if ( (LA73_294==QUESTION_MARK) ) {s = 341;} - else if ( (LA73_294==DATETIME) ) {s = 342;} - else if ( (LA73_294==URI) ) {s = 343;} - else if ( (LA73_294==TILDA) && (synpred44_FTS())) {s = 344;} - else if ( (LA73_294==CARAT) && (synpred44_FTS())) {s = 345;} - else if ( (LA73_294==AND) && (synpred44_FTS())) {s = 346;} - else if ( (LA73_294==AMP) && (synpred44_FTS())) {s = 347;} - else if ( (LA73_294==EOF) && (synpred44_FTS())) {s = 348;} - else if ( (LA73_294==RPAREN) && (synpred44_FTS())) {s = 349;} - else if ( (LA73_294==OR) && (synpred44_FTS())) {s = 350;} - else if ( (LA73_294==BAR) && (synpred44_FTS())) {s = 351;} - else if ( (LA73_294==EXCLAMATION) && (synpred44_FTS())) {s = 352;} - else if ( (LA73_294==AT) && (synpred44_FTS())) {s = 353;} - else if ( (LA73_294==FTSPHRASE) && (synpred44_FTS())) {s = 354;} - else if ( (LA73_294==LSQUARE) && (synpred44_FTS())) {s = 355;} - else if ( (LA73_294==LT) && (synpred44_FTS())) {s = 356;} - else if ( (LA73_294==COMMA||LA73_294==DOT) && (synpred44_FTS())) {s = 357;} - else if ( (LA73_294==EQUALS) && (synpred44_FTS())) {s = 358;} - else if ( (LA73_294==LPAREN) && (synpred44_FTS())) {s = 359;} - else if ( (LA73_294==PERCENT) && (synpred44_FTS())) {s = 360;} - else if ( (LA73_294==PLUS) && (synpred44_FTS())) {s = 361;} - else if ( (LA73_294==MINUS) && (synpred44_FTS())) {s = 362;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_294); + input.seek(index84_408); if ( s>=0 ) return s; break; case 148 : - int LA73_229 = input.LA(1); + int LA84_435 = input.LA(1); - int index73_229 = input.index(); + int index84_435 = input.index(); input.rewind(); s = -1; - if ( (LA73_229==COMMA||LA73_229==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_229); + input.seek(index84_435); if ( s>=0 ) return s; break; case 149 : - int LA73_365 = input.LA(1); + int LA84_304 = input.LA(1); - int index73_365 = input.index(); + int index84_304 = input.index(); input.rewind(); s = -1; - if ( (LA73_365==DOT) ) {s = 426;} - else if ( (LA73_365==COMMA) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_304==COMMA||LA84_304==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_365); + input.seek(index84_304); if ( s>=0 ) return s; break; case 150 : - int LA73_369 = input.LA(1); + int LA84_41 = input.LA(1); - int index73_369 = input.index(); + int index84_41 = input.index(); input.rewind(); s = -1; - if ( (LA73_369==COMMA||LA73_369==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_41==COMMA||LA84_41==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_369); + input.seek(index84_41); if ( s>=0 ) return s; break; case 151 : - int LA73_322 = input.LA(1); + int LA84_112 = input.LA(1); - int index73_322 = input.index(); + int index84_112 = input.index(); input.rewind(); s = -1; - if ( (LA73_322==COMMA||LA73_322==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_112==COMMA||LA84_112==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_322); + input.seek(index84_112); if ( s>=0 ) return s; break; case 152 : - int LA73_332 = input.LA(1); + int LA84_378 = input.LA(1); - int index73_332 = input.index(); + int index84_378 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_332); + input.seek(index84_378); if ( s>=0 ) return s; break; case 153 : - int LA73_227 = input.LA(1); + int LA84_422 = input.LA(1); - int index73_227 = input.index(); + int index84_422 = input.index(); input.rewind(); s = -1; - if ( (LA73_227==COMMA||LA73_227==DOT) ) {s = 293;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_227); + input.seek(index84_422); if ( s>=0 ) return s; break; case 154 : - int LA73_126 = input.LA(1); + int LA84_233 = input.LA(1); - int index73_126 = input.index(); + int index84_233 = input.index(); input.rewind(); s = -1; - if ( (LA73_126==COMMA||LA73_126==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_233==COMMA||LA84_233==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_126); + input.seek(index84_233); if ( s>=0 ) return s; break; case 155 : - int LA73_129 = input.LA(1); + int LA84_218 = input.LA(1); - int index73_129 = input.index(); + int index84_218 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 210;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 212;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_218==COMMA||LA84_218==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_129); + input.seek(index84_218); if ( s>=0 ) return s; break; case 156 : - int LA73_440 = input.LA(1); + int LA84_374 = input.LA(1); - int index73_440 = input.index(); + int index84_374 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_440); + input.seek(index84_374); if ( s>=0 ) return s; break; case 157 : - int LA73_454 = input.LA(1); + int LA84_338 = input.LA(1); - int index73_454 = input.index(); + int index84_338 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_454); + input.seek(index84_338); if ( s>=0 ) return s; break; case 158 : - int LA73_144 = input.LA(1); + int LA84_49 = input.LA(1); - int index73_144 = input.index(); + int index84_49 = input.index(); input.rewind(); s = -1; - if ( (LA73_144==COMMA||LA73_144==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_49==COMMA||LA84_49==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_144); + input.seek(index84_49); if ( s>=0 ) return s; break; case 159 : - int LA73_426 = input.LA(1); + int LA84_120 = input.LA(1); - int index73_426 = input.index(); + int index84_120 = input.index(); input.rewind(); s = -1; - if ( (LA73_426==ID) ) {s = 451;} - else if ( (LA73_426==FTSWORD) ) {s = 415;} - else if ( (LA73_426==FTSPRE) ) {s = 416;} - else if ( (LA73_426==FTSWILD) ) {s = 417;} - else if ( (LA73_426==NOT) ) {s = 418;} - else if ( (LA73_426==TO) ) {s = 419;} - else if ( (LA73_426==DECIMAL_INTEGER_LITERAL) ) {s = 420;} - else if ( (LA73_426==FLOATING_POINT_LITERAL) ) {s = 421;} - else if ( (LA73_426==STAR) ) {s = 422;} - else if ( (LA73_426==QUESTION_MARK) ) {s = 423;} - else if ( (LA73_426==DATETIME) ) {s = 424;} - else if ( (LA73_426==URI) ) {s = 425;} - else if ( (LA73_426==TILDA) && (synpred44_FTS())) {s = 344;} - else if ( (LA73_426==CARAT) && (synpred44_FTS())) {s = 345;} - else if ( (LA73_426==AND) && (synpred44_FTS())) {s = 346;} - else if ( (LA73_426==AMP) && (synpred44_FTS())) {s = 347;} - else if ( (LA73_426==EOF) && (synpred44_FTS())) {s = 348;} - else if ( (LA73_426==RPAREN) && (synpred44_FTS())) {s = 349;} - else if ( (LA73_426==OR) && (synpred44_FTS())) {s = 350;} - else if ( (LA73_426==BAR) && (synpred44_FTS())) {s = 351;} - else if ( (LA73_426==EXCLAMATION) && (synpred44_FTS())) {s = 352;} - else if ( (LA73_426==AT) && (synpred44_FTS())) {s = 353;} - else if ( (LA73_426==FTSPHRASE) && (synpred44_FTS())) {s = 354;} - else if ( (LA73_426==LSQUARE) && (synpred44_FTS())) {s = 355;} - else if ( (LA73_426==LT) && (synpred44_FTS())) {s = 356;} - else if ( (LA73_426==COMMA||LA73_426==DOT) && (synpred44_FTS())) {s = 357;} - else if ( (LA73_426==EQUALS) && (synpred44_FTS())) {s = 358;} - else if ( (LA73_426==LPAREN) && (synpred44_FTS())) {s = 359;} - else if ( (LA73_426==PERCENT) && (synpred44_FTS())) {s = 360;} - else if ( (LA73_426==PLUS) && (synpred44_FTS())) {s = 361;} - else if ( (LA73_426==MINUS) && (synpred44_FTS())) {s = 362;} + if ( (LA84_120==COMMA||LA84_120==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_426); + input.seek(index84_120); if ( s>=0 ) return s; break; case 160 : - int LA73_421 = input.LA(1); + int LA84_326 = input.LA(1); - int index73_421 = input.index(); + int index84_326 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_326==COMMA||LA84_326==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_421); + input.seek(index84_326); if ( s>=0 ) return s; break; case 161 : - int LA73_125 = input.LA(1); + int LA84_305 = input.LA(1); - int index73_125 = input.index(); + int index84_305 = input.index(); input.rewind(); s = -1; - if ( (LA73_125==COMMA||LA73_125==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_305==COMMA||LA84_305==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_125); + input.seek(index84_305); if ( s>=0 ) return s; break; case 162 : - int LA73_432 = input.LA(1); + int LA84_412 = input.LA(1); - int index73_432 = input.index(); + int index84_412 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_432); + input.seek(index84_412); if ( s>=0 ) return s; break; case 163 : - int LA73_412 = input.LA(1); + int LA84_364 = input.LA(1); - int index73_412 = input.index(); + int index84_364 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_364==ID) ) {s = 414;} + else if ( (LA84_364==FTSWORD) ) {s = 415;} + else if ( (LA84_364==FTSPRE) ) {s = 416;} + else if ( (LA84_364==FTSWILD) ) {s = 417;} + else if ( (LA84_364==NOT) ) {s = 418;} + else if ( (LA84_364==TO) ) {s = 419;} + else if ( (LA84_364==DECIMAL_INTEGER_LITERAL) ) {s = 420;} + else if ( (LA84_364==FLOATING_POINT_LITERAL) ) {s = 421;} + else if ( (LA84_364==STAR) ) {s = 422;} + else if ( (LA84_364==QUESTION_MARK) ) {s = 423;} + else if ( (LA84_364==DATETIME) ) {s = 424;} + else if ( (LA84_364==URI) ) {s = 425;} + else if ( (LA84_364==TILDA) && (synpred52_FTS())) {s = 344;} + else if ( (LA84_364==CARAT) && (synpred52_FTS())) {s = 345;} + else if ( (LA84_364==AND) && (synpred52_FTS())) {s = 346;} + else if ( (LA84_364==AMP) && (synpred52_FTS())) {s = 347;} + else if ( (LA84_364==EOF) && (synpred52_FTS())) {s = 348;} + else if ( (LA84_364==RPAREN) && (synpred52_FTS())) {s = 349;} + else if ( (LA84_364==OR) && (synpred52_FTS())) {s = 350;} + else if ( (LA84_364==BAR) && (synpred52_FTS())) {s = 351;} + else if ( (LA84_364==EXCLAMATION) && (synpred52_FTS())) {s = 352;} + else if ( (LA84_364==AT) && (synpred52_FTS())) {s = 353;} + else if ( (LA84_364==FTSPHRASE) && (synpred52_FTS())) {s = 354;} + else if ( (LA84_364==LSQUARE) && (synpred52_FTS())) {s = 355;} + else if ( (LA84_364==LT) && (synpred52_FTS())) {s = 356;} + else if ( (LA84_364==COMMA||LA84_364==DOT) && (synpred52_FTS())) {s = 357;} + else if ( (LA84_364==EQUALS) && (synpred52_FTS())) {s = 358;} + else if ( (LA84_364==LPAREN) && (synpred52_FTS())) {s = 359;} + else if ( (LA84_364==PERCENT) && (synpred52_FTS())) {s = 360;} + else if ( (LA84_364==PLUS) && (synpred52_FTS())) {s = 361;} + else if ( (LA84_364==MINUS) && (synpred52_FTS())) {s = 362;} - input.seek(index73_412); + input.seek(index84_364); if ( s>=0 ) return s; break; case 164 : - int LA73_446 = input.LA(1); + int LA84_150 = input.LA(1); - int index73_446 = input.index(); + int index84_150 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_150==COMMA||LA84_150==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_446); + input.seek(index84_150); if ( s>=0 ) return s; break; case 165 : - int LA73_231 = input.LA(1); + int LA84_263 = input.LA(1); - int index73_231 = input.index(); + int index84_263 = input.index(); input.rewind(); s = -1; - if ( (LA73_231==COMMA||LA73_231==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_263==COMMA||LA84_263==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_231); + input.seek(index84_263); if ( s>=0 ) return s; break; case 166 : - int LA73_181 = input.LA(1); + int LA84_46 = input.LA(1); - int index73_181 = input.index(); + int index84_46 = input.index(); input.rewind(); s = -1; - if ( (LA73_181==COMMA||LA73_181==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_46==COMMA||LA84_46==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_181); + input.seek(index84_46); if ( s>=0 ) return s; break; case 167 : - int LA73_185 = input.LA(1); + int LA84_111 = input.LA(1); - int index73_185 = input.index(); + int index84_111 = input.index(); input.rewind(); s = -1; - if ( (LA73_185==COMMA||LA73_185==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 173;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 175;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_185); + input.seek(index84_111); if ( s>=0 ) return s; break; case 168 : - int LA73_378 = input.LA(1); + int LA84_117 = input.LA(1); - int index73_378 = input.index(); + int index84_117 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_117==COMMA||LA84_117==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_378); + input.seek(index84_117); if ( s>=0 ) return s; break; case 169 : - int LA73_339 = input.LA(1); + int LA84_368 = input.LA(1); - int index73_339 = input.index(); + int index84_368 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_368==COMMA||LA84_368==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_339); + input.seek(index84_368); if ( s>=0 ) return s; break; case 170 : - int LA73_71 = input.LA(1); + int LA84_141 = input.LA(1); - int index73_71 = input.index(); + int index84_141 = input.index(); input.rewind(); s = -1; - if ( (LA73_71==ID) ) {s = 111;} - else if ( (LA73_71==FTSWORD) ) {s = 112;} - else if ( (LA73_71==FTSPRE) ) {s = 113;} - else if ( (LA73_71==FTSWILD) ) {s = 114;} - else if ( (LA73_71==NOT) ) {s = 115;} - else if ( (LA73_71==TO) ) {s = 116;} - else if ( (LA73_71==DECIMAL_INTEGER_LITERAL) ) {s = 117;} - else if ( (LA73_71==FLOATING_POINT_LITERAL) ) {s = 118;} - else if ( (LA73_71==STAR) ) {s = 119;} - else if ( (LA73_71==QUESTION_MARK) ) {s = 120;} - else if ( (LA73_71==DATETIME) ) {s = 121;} - else if ( (LA73_71==URI) ) {s = 51;} - else if ( (LA73_71==TILDA) && (synpred56_FTS())) {s = 52;} - else if ( (LA73_71==CARAT) && (synpred56_FTS())) {s = 53;} - else if ( (LA73_71==AND) && (synpred56_FTS())) {s = 54;} - else if ( (LA73_71==AMP) && (synpred56_FTS())) {s = 55;} - else if ( (LA73_71==EOF) && (synpred56_FTS())) {s = 56;} - else if ( (LA73_71==RPAREN) && (synpred56_FTS())) {s = 57;} - else if ( (LA73_71==OR) && (synpred56_FTS())) {s = 58;} - else if ( (LA73_71==BAR) && (synpred56_FTS())) {s = 59;} - else if ( (LA73_71==EXCLAMATION) && (synpred56_FTS())) {s = 60;} - else if ( (LA73_71==AT) && (synpred56_FTS())) {s = 61;} - else if ( (LA73_71==FTSPHRASE) && (synpred56_FTS())) {s = 62;} - else if ( (LA73_71==LSQUARE) && (synpred56_FTS())) {s = 63;} - else if ( (LA73_71==LT) && (synpred56_FTS())) {s = 64;} - else if ( (LA73_71==COMMA||LA73_71==DOT) && (synpred56_FTS())) {s = 65;} - else if ( (LA73_71==EQUALS) && (synpred56_FTS())) {s = 66;} - else if ( (LA73_71==LPAREN) && (synpred56_FTS())) {s = 67;} - else if ( (LA73_71==PERCENT) && (synpred56_FTS())) {s = 68;} - else if ( (LA73_71==PLUS) && (synpred56_FTS())) {s = 69;} - else if ( (LA73_71==MINUS) && (synpred56_FTS())) {s = 70;} + if ( (LA84_141==COMMA||LA84_141==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_71); + input.seek(index84_141); if ( s>=0 ) return s; break; case 171 : - int LA73_225 = input.LA(1); + int LA84_303 = input.LA(1); - int index73_225 = input.index(); + int index84_303 = input.index(); input.rewind(); s = -1; - if ( (LA73_225==COMMA||LA73_225==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_303==COMMA||LA84_303==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_225); + input.seek(index84_303); if ( s>=0 ) return s; break; case 172 : - int LA73_315 = input.LA(1); + int LA84_434 = input.LA(1); - int index73_315 = input.index(); + int index84_434 = input.index(); input.rewind(); s = -1; - if ( (LA73_315==COMMA||LA73_315==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_315); + input.seek(index84_434); if ( s>=0 ) return s; break; case 173 : - int LA73_375 = input.LA(1); + int LA84_73 = input.LA(1); - int index73_375 = input.index(); + int index84_73 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_73==COMMA||LA84_73==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_375); + input.seek(index84_73); if ( s>=0 ) return s; break; case 174 : - int LA73_404 = input.LA(1); + int LA84_130 = input.LA(1); - int index73_404 = input.index(); + int index84_130 = input.index(); input.rewind(); s = -1; - if ( (LA73_404==COMMA||LA73_404==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_130==COMMA||LA84_130==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_404); + input.seek(index84_130); if ( s>=0 ) return s; break; case 175 : - int LA73_260 = input.LA(1); + int LA84_445 = input.LA(1); - int index73_260 = input.index(); + int index84_445 = input.index(); input.rewind(); s = -1; - if ( (LA73_260==ID) ) {s = 301;} - else if ( (LA73_260==FTSWORD) ) {s = 302;} - else if ( (LA73_260==FTSPRE) ) {s = 303;} - else if ( (LA73_260==FTSWILD) ) {s = 304;} - else if ( (LA73_260==NOT) ) {s = 305;} - else if ( (LA73_260==TO) ) {s = 306;} - else if ( (LA73_260==DECIMAL_INTEGER_LITERAL) ) {s = 307;} - else if ( (LA73_260==FLOATING_POINT_LITERAL) ) {s = 308;} - else if ( (LA73_260==STAR) ) {s = 309;} - else if ( (LA73_260==QUESTION_MARK) ) {s = 310;} - else if ( (LA73_260==DATETIME) ) {s = 311;} - else if ( (LA73_260==URI) ) {s = 312;} - else if ( (LA73_260==TILDA) && (synpred48_FTS())) {s = 240;} - else if ( (LA73_260==CARAT) && (synpred48_FTS())) {s = 241;} - else if ( (LA73_260==AND) && (synpred48_FTS())) {s = 242;} - else if ( (LA73_260==AMP) && (synpred48_FTS())) {s = 243;} - else if ( (LA73_260==EOF) && (synpred48_FTS())) {s = 244;} - else if ( (LA73_260==RPAREN) && (synpred48_FTS())) {s = 245;} - else if ( (LA73_260==OR) && (synpred48_FTS())) {s = 246;} - else if ( (LA73_260==BAR) && (synpred48_FTS())) {s = 247;} - else if ( (LA73_260==EXCLAMATION) && (synpred48_FTS())) {s = 248;} - else if ( (LA73_260==AT) && (synpred48_FTS())) {s = 249;} - else if ( (LA73_260==FTSPHRASE) && (synpred48_FTS())) {s = 250;} - else if ( (LA73_260==LSQUARE) && (synpred48_FTS())) {s = 251;} - else if ( (LA73_260==LT) && (synpred48_FTS())) {s = 252;} - else if ( (LA73_260==COMMA||LA73_260==DOT) && (synpred48_FTS())) {s = 253;} - else if ( (LA73_260==EQUALS) && (synpred48_FTS())) {s = 254;} - else if ( (LA73_260==LPAREN) && (synpred48_FTS())) {s = 255;} - else if ( (LA73_260==PERCENT) && (synpred48_FTS())) {s = 256;} - else if ( (LA73_260==PLUS) && (synpred48_FTS())) {s = 257;} - else if ( (LA73_260==MINUS) && (synpred48_FTS())) {s = 258;} + if ( (LA84_445==ID) ) {s = 457;} + else if ( (LA84_445==FTSWORD) ) {s = 434;} + else if ( (LA84_445==FTSPRE) ) {s = 435;} + else if ( (LA84_445==FTSWILD) ) {s = 436;} + else if ( (LA84_445==NOT) ) {s = 437;} + else if ( (LA84_445==TO) ) {s = 438;} + else if ( (LA84_445==DECIMAL_INTEGER_LITERAL) ) {s = 439;} + else if ( (LA84_445==FLOATING_POINT_LITERAL) ) {s = 440;} + else if ( (LA84_445==STAR) ) {s = 441;} + else if ( (LA84_445==QUESTION_MARK) ) {s = 442;} + else if ( (LA84_445==DATETIME) ) {s = 443;} + else if ( (LA84_445==URI) ) {s = 444;} + else if ( (LA84_445==TILDA) && (synpred51_FTS())) {s = 382;} + else if ( (LA84_445==CARAT) && (synpred51_FTS())) {s = 383;} + else if ( (LA84_445==AND) && (synpred51_FTS())) {s = 384;} + else if ( (LA84_445==AMP) && (synpred51_FTS())) {s = 385;} + else if ( (LA84_445==EOF) && (synpred51_FTS())) {s = 386;} + else if ( (LA84_445==RPAREN) && (synpred51_FTS())) {s = 387;} + else if ( (LA84_445==OR) && (synpred51_FTS())) {s = 388;} + else if ( (LA84_445==BAR) && (synpred51_FTS())) {s = 389;} + else if ( (LA84_445==EXCLAMATION) && (synpred51_FTS())) {s = 390;} + else if ( (LA84_445==AT) && (synpred51_FTS())) {s = 391;} + else if ( (LA84_445==FTSPHRASE) && (synpred51_FTS())) {s = 392;} + else if ( (LA84_445==LSQUARE) && (synpred51_FTS())) {s = 393;} + else if ( (LA84_445==LT) && (synpred51_FTS())) {s = 394;} + else if ( (LA84_445==COMMA||LA84_445==DOT) && (synpred51_FTS())) {s = 395;} + else if ( (LA84_445==EQUALS) && (synpred51_FTS())) {s = 396;} + else if ( (LA84_445==LPAREN) && (synpred51_FTS())) {s = 397;} + else if ( (LA84_445==PERCENT) && (synpred51_FTS())) {s = 398;} + else if ( (LA84_445==PLUS) && (synpred51_FTS())) {s = 399;} + else if ( (LA84_445==MINUS) && (synpred51_FTS())) {s = 400;} - input.seek(index73_260); + input.seek(index84_445); if ( s>=0 ) return s; break; case 176 : - int LA73_323 = input.LA(1); + int LA84_320 = input.LA(1); - int index73_323 = input.index(); + int index84_320 = input.index(); input.rewind(); s = -1; - if ( (LA73_323==COMMA||LA73_323==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_320==COMMA||LA84_320==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_323); + input.seek(index84_320); if ( s>=0 ) return s; break; case 177 : - int LA73_149 = input.LA(1); + int LA84_318 = input.LA(1); - int index73_149 = input.index(); + int index84_318 = input.index(); input.rewind(); s = -1; - if ( (LA73_149==COMMA||LA73_149==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_318==COMMA||LA84_318==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_149); + input.seek(index84_318); if ( s>=0 ) return s; break; case 178 : - int LA73_230 = input.LA(1); + int LA84_454 = input.LA(1); - int index73_230 = input.index(); + int index84_454 = input.index(); input.rewind(); s = -1; - if ( (LA73_230==COMMA||LA73_230==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_230); + input.seek(index84_454); if ( s>=0 ) return s; break; case 179 : - int LA73_76 = input.LA(1); + int LA84_128 = input.LA(1); - int index73_76 = input.index(); + int index84_128 = input.index(); input.rewind(); s = -1; - if ( (LA73_76==COMMA||LA73_76==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} + if ( (LA84_128==COMMA||LA84_128==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} else if ( (true) ) {s = 34;} - input.seek(index73_76); + input.seek(index84_128); if ( s>=0 ) return s; break; case 180 : - int LA73_133 = input.LA(1); + int LA84_436 = input.LA(1); - int index73_133 = input.index(); + int index84_436 = input.index(); input.rewind(); s = -1; - if ( (LA73_133==COMMA||LA73_133==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_133); + input.seek(index84_436); if ( s>=0 ) return s; break; case 181 : - int LA73_311 = input.LA(1); + int LA84_379 = input.LA(1); - int index73_311 = input.index(); + int index84_379 = input.index(); input.rewind(); s = -1; - if ( (LA73_311==COMMA||LA73_311==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_311); + input.seek(index84_379); if ( s>=0 ) return s; break; case 182 : - int LA73_146 = input.LA(1); + int LA84_229 = input.LA(1); - int index73_146 = input.index(); + int index84_229 = input.index(); input.rewind(); s = -1; - if ( (LA73_146==COMMA||LA73_146==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_229==COMMA||LA84_229==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_146); + input.seek(index84_229); if ( s>=0 ) return s; break; case 183 : - int LA73_214 = input.LA(1); + int LA84_451 = input.LA(1); - int index73_214 = input.index(); + int index84_451 = input.index(); input.rewind(); s = -1; - if ( (LA73_214==ID) ) {s = 228;} - else if ( (LA73_214==FTSWORD) ) {s = 229;} - else if ( (LA73_214==FTSPRE) ) {s = 230;} - else if ( (LA73_214==FTSWILD) ) {s = 231;} - else if ( (LA73_214==NOT) ) {s = 232;} - else if ( (LA73_214==TO) ) {s = 233;} - else if ( (LA73_214==DECIMAL_INTEGER_LITERAL) ) {s = 234;} - else if ( (LA73_214==FLOATING_POINT_LITERAL) ) {s = 235;} - else if ( (LA73_214==STAR) ) {s = 236;} - else if ( (LA73_214==QUESTION_MARK) ) {s = 237;} - else if ( (LA73_214==DATETIME) ) {s = 238;} - else if ( (LA73_214==URI) ) {s = 239;} - else if ( (LA73_214==TILDA) && (synpred48_FTS())) {s = 240;} - else if ( (LA73_214==CARAT) && (synpred48_FTS())) {s = 241;} - else if ( (LA73_214==AND) && (synpred48_FTS())) {s = 242;} - else if ( (LA73_214==AMP) && (synpred48_FTS())) {s = 243;} - else if ( (LA73_214==EOF) && (synpred48_FTS())) {s = 244;} - else if ( (LA73_214==RPAREN) && (synpred48_FTS())) {s = 245;} - else if ( (LA73_214==OR) && (synpred48_FTS())) {s = 246;} - else if ( (LA73_214==BAR) && (synpred48_FTS())) {s = 247;} - else if ( (LA73_214==EXCLAMATION) && (synpred48_FTS())) {s = 248;} - else if ( (LA73_214==AT) && (synpred48_FTS())) {s = 249;} - else if ( (LA73_214==FTSPHRASE) && (synpred48_FTS())) {s = 250;} - else if ( (LA73_214==LSQUARE) && (synpred48_FTS())) {s = 251;} - else if ( (LA73_214==LT) && (synpred48_FTS())) {s = 252;} - else if ( (LA73_214==COMMA||LA73_214==DOT) && (synpred48_FTS())) {s = 253;} - else if ( (LA73_214==EQUALS) && (synpred48_FTS())) {s = 254;} - else if ( (LA73_214==LPAREN) && (synpred48_FTS())) {s = 255;} - else if ( (LA73_214==PERCENT) && (synpred48_FTS())) {s = 256;} - else if ( (LA73_214==PLUS) && (synpred48_FTS())) {s = 257;} - else if ( (LA73_214==MINUS) && (synpred48_FTS())) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_214); + input.seek(index84_451); if ( s>=0 ) return s; break; case 184 : - int LA73_208 = input.LA(1); + int LA84_380 = input.LA(1); - int index73_208 = input.index(); + int index84_380 = input.index(); input.rewind(); s = -1; - if ( (LA73_208==ID) ) {s = 227;} - else if ( (LA73_208==FTSWORD) ) {s = 178;} - else if ( (LA73_208==FTSPRE) ) {s = 179;} - else if ( (LA73_208==FTSWILD) ) {s = 180;} - else if ( (LA73_208==NOT) ) {s = 181;} - else if ( (LA73_208==TO) ) {s = 182;} - else if ( (LA73_208==DECIMAL_INTEGER_LITERAL) ) {s = 183;} - else if ( (LA73_208==FLOATING_POINT_LITERAL) ) {s = 184;} - else if ( (LA73_208==STAR) ) {s = 185;} - else if ( (LA73_208==QUESTION_MARK) ) {s = 186;} - else if ( (LA73_208==DATETIME) ) {s = 187;} - else if ( (LA73_208==URI) ) {s = 188;} - else if ( (LA73_208==TILDA) && (synpred51_FTS())) {s = 189;} - else if ( (LA73_208==CARAT) && (synpred51_FTS())) {s = 190;} - else if ( (LA73_208==AND) && (synpred51_FTS())) {s = 191;} - else if ( (LA73_208==AMP) && (synpred51_FTS())) {s = 192;} - else if ( (LA73_208==EOF) && (synpred51_FTS())) {s = 193;} - else if ( (LA73_208==RPAREN) && (synpred51_FTS())) {s = 194;} - else if ( (LA73_208==OR) && (synpred51_FTS())) {s = 195;} - else if ( (LA73_208==BAR) && (synpred51_FTS())) {s = 196;} - else if ( (LA73_208==EXCLAMATION) && (synpred51_FTS())) {s = 197;} - else if ( (LA73_208==AT) && (synpred51_FTS())) {s = 198;} - else if ( (LA73_208==FTSPHRASE) && (synpred51_FTS())) {s = 199;} - else if ( (LA73_208==LSQUARE) && (synpred51_FTS())) {s = 200;} - else if ( (LA73_208==LT) && (synpred51_FTS())) {s = 201;} - else if ( (LA73_208==COMMA||LA73_208==DOT) && (synpred51_FTS())) {s = 202;} - else if ( (LA73_208==EQUALS) && (synpred51_FTS())) {s = 203;} - else if ( (LA73_208==LPAREN) && (synpred51_FTS())) {s = 204;} - else if ( (LA73_208==PERCENT) && (synpred51_FTS())) {s = 205;} - else if ( (LA73_208==PLUS) && (synpred51_FTS())) {s = 206;} - else if ( (LA73_208==MINUS) && (synpred51_FTS())) {s = 207;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_208); + input.seek(index84_380); if ( s>=0 ) return s; break; case 185 : - int LA73_302 = input.LA(1); + int LA84_424 = input.LA(1); - int index73_302 = input.index(); + int index84_424 = input.index(); input.rewind(); s = -1; - if ( (LA73_302==COMMA||LA73_302==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_302); + input.seek(index84_424); if ( s>=0 ) return s; break; case 186 : - int LA73_455 = input.LA(1); + int LA84_110 = input.LA(1); - int index73_455 = input.index(); + int index84_110 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_110==COMMA||LA84_110==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_455); + input.seek(index84_110); if ( s>=0 ) return s; break; case 187 : - int LA73_441 = input.LA(1); + int LA84_428 = input.LA(1); - int index73_441 = input.index(); + int index84_428 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_441); + input.seek(index84_428); if ( s>=0 ) return s; break; case 188 : - int LA73_363 = input.LA(1); + int LA84_44 = input.LA(1); - int index73_363 = input.index(); + int index84_44 = input.index(); input.rewind(); s = -1; - if ( (LA73_363==ID) ) {s = 413;} - else if ( (LA73_363==FTSWORD) ) {s = 333;} - else if ( (LA73_363==FTSPRE) ) {s = 334;} - else if ( (LA73_363==FTSWILD) ) {s = 335;} - else if ( (LA73_363==NOT) ) {s = 336;} - else if ( (LA73_363==TO) ) {s = 337;} - else if ( (LA73_363==DECIMAL_INTEGER_LITERAL) ) {s = 338;} - else if ( (LA73_363==FLOATING_POINT_LITERAL) ) {s = 339;} - else if ( (LA73_363==STAR) ) {s = 340;} - else if ( (LA73_363==QUESTION_MARK) ) {s = 341;} - else if ( (LA73_363==DATETIME) ) {s = 342;} - else if ( (LA73_363==URI) ) {s = 343;} - else if ( (LA73_363==TILDA) && (synpred44_FTS())) {s = 344;} - else if ( (LA73_363==CARAT) && (synpred44_FTS())) {s = 345;} - else if ( (LA73_363==AND) && (synpred44_FTS())) {s = 346;} - else if ( (LA73_363==AMP) && (synpred44_FTS())) {s = 347;} - else if ( (LA73_363==EOF) && (synpred44_FTS())) {s = 348;} - else if ( (LA73_363==RPAREN) && (synpred44_FTS())) {s = 349;} - else if ( (LA73_363==OR) && (synpred44_FTS())) {s = 350;} - else if ( (LA73_363==BAR) && (synpred44_FTS())) {s = 351;} - else if ( (LA73_363==EXCLAMATION) && (synpred44_FTS())) {s = 352;} - else if ( (LA73_363==AT) && (synpred44_FTS())) {s = 353;} - else if ( (LA73_363==FTSPHRASE) && (synpred44_FTS())) {s = 354;} - else if ( (LA73_363==LSQUARE) && (synpred44_FTS())) {s = 355;} - else if ( (LA73_363==LT) && (synpred44_FTS())) {s = 356;} - else if ( (LA73_363==COMMA||LA73_363==DOT) && (synpred44_FTS())) {s = 357;} - else if ( (LA73_363==EQUALS) && (synpred44_FTS())) {s = 358;} - else if ( (LA73_363==LPAREN) && (synpred44_FTS())) {s = 359;} - else if ( (LA73_363==PERCENT) && (synpred44_FTS())) {s = 360;} - else if ( (LA73_363==PLUS) && (synpred44_FTS())) {s = 361;} - else if ( (LA73_363==MINUS) && (synpred44_FTS())) {s = 362;} + if ( (LA84_44==COMMA||LA84_44==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_363); + input.seek(index84_44); if ( s>=0 ) return s; break; case 189 : - int LA73_427 = input.LA(1); + int LA84_115 = input.LA(1); - int index73_427 = input.index(); + int index84_115 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_115==COMMA||LA84_115==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_427); + input.seek(index84_115); if ( s>=0 ) return s; break; case 190 : - int LA73_402 = input.LA(1); + int LA84_369 = input.LA(1); - int index73_402 = input.index(); + int index84_369 = input.index(); input.rewind(); s = -1; - if ( (LA73_402==ID) ) {s = 433;} - else if ( (LA73_402==FTSWORD) ) {s = 434;} - else if ( (LA73_402==FTSPRE) ) {s = 435;} - else if ( (LA73_402==FTSWILD) ) {s = 436;} - else if ( (LA73_402==NOT) ) {s = 437;} - else if ( (LA73_402==TO) ) {s = 438;} - else if ( (LA73_402==DECIMAL_INTEGER_LITERAL) ) {s = 439;} - else if ( (LA73_402==FLOATING_POINT_LITERAL) ) {s = 440;} - else if ( (LA73_402==STAR) ) {s = 441;} - else if ( (LA73_402==QUESTION_MARK) ) {s = 442;} - else if ( (LA73_402==DATETIME) ) {s = 443;} - else if ( (LA73_402==URI) ) {s = 444;} - else if ( (LA73_402==TILDA) && (synpred43_FTS())) {s = 382;} - else if ( (LA73_402==CARAT) && (synpred43_FTS())) {s = 383;} - else if ( (LA73_402==AND) && (synpred43_FTS())) {s = 384;} - else if ( (LA73_402==AMP) && (synpred43_FTS())) {s = 385;} - else if ( (LA73_402==EOF) && (synpred43_FTS())) {s = 386;} - else if ( (LA73_402==RPAREN) && (synpred43_FTS())) {s = 387;} - else if ( (LA73_402==OR) && (synpred43_FTS())) {s = 388;} - else if ( (LA73_402==BAR) && (synpred43_FTS())) {s = 389;} - else if ( (LA73_402==EXCLAMATION) && (synpred43_FTS())) {s = 390;} - else if ( (LA73_402==AT) && (synpred43_FTS())) {s = 391;} - else if ( (LA73_402==FTSPHRASE) && (synpred43_FTS())) {s = 392;} - else if ( (LA73_402==LSQUARE) && (synpred43_FTS())) {s = 393;} - else if ( (LA73_402==LT) && (synpred43_FTS())) {s = 394;} - else if ( (LA73_402==COMMA||LA73_402==DOT) && (synpred43_FTS())) {s = 395;} - else if ( (LA73_402==EQUALS) && (synpred43_FTS())) {s = 396;} - else if ( (LA73_402==LPAREN) && (synpred43_FTS())) {s = 397;} - else if ( (LA73_402==PERCENT) && (synpred43_FTS())) {s = 398;} - else if ( (LA73_402==PLUS) && (synpred43_FTS())) {s = 399;} - else if ( (LA73_402==MINUS) && (synpred43_FTS())) {s = 400;} + if ( (LA84_369==COMMA||LA84_369==DOT) ) {s = 364;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_402); + input.seek(index84_369); if ( s>=0 ) return s; break; case 191 : - int LA73_340 = input.LA(1); + int LA84_433 = input.LA(1); - int index73_340 = input.index(); + int index84_433 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_340); + input.seek(index84_433); if ( s>=0 ) return s; break; case 192 : - int LA73_422 = input.LA(1); + int LA84_219 = input.LA(1); - int index73_422 = input.index(); + int index84_219 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_219==COMMA||LA84_219==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_422); + input.seek(index84_219); if ( s>=0 ) return s; break; case 193 : - int LA73_443 = input.LA(1); + int LA84_327 = input.LA(1); - int index73_443 = input.index(); + int index84_327 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_327==COMMA||LA84_327==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_443); + input.seek(index84_327); if ( s>=0 ) return s; break; case 194 : - int LA73_337 = input.LA(1); + int LA84_404 = input.LA(1); - int index73_337 = input.index(); + int index84_404 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_404==COMMA||LA84_404==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_337); + input.seek(index84_404); if ( s>=0 ) return s; break; case 195 : - int LA73_177 = input.LA(1); + int LA84_264 = input.LA(1); - int index73_177 = input.index(); + int index84_264 = input.index(); input.rewind(); s = -1; - if ( (LA73_177==COMMA||LA73_177==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_264==COMMA||LA84_264==DOT) ) {s = 313;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_177); + input.seek(index84_264); if ( s>=0 ) return s; break; case 196 : - int LA73_265 = input.LA(1); + int LA84_295 = input.LA(1); - int index73_265 = input.index(); + int index84_295 = input.index(); input.rewind(); s = -1; - if ( (LA73_265==COMMA||LA73_265==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_295==DOT) ) {s = 363;} + else if ( (LA84_295==COMMA) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_265); + input.seek(index84_295); if ( s>=0 ) return s; break; case 197 : - int LA73_232 = input.LA(1); + int LA84_43 = input.LA(1); - int index73_232 = input.index(); + int index84_43 = input.index(); input.rewind(); s = -1; - if ( (LA73_232==COMMA||LA73_232==DOT) ) {s = 294;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_43==COMMA||LA84_43==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_232); + input.seek(index84_43); if ( s>=0 ) return s; break; case 198 : - int LA73_442 = input.LA(1); + int LA84_114 = input.LA(1); - int index73_442 = input.index(); + int index84_114 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_114==COMMA||LA84_114==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_442); + input.seek(index84_114); if ( s>=0 ) return s; break; case 199 : - int LA73_226 = input.LA(1); + int LA84_337 = input.LA(1); - int index73_226 = input.index(); + int index84_337 = input.index(); input.rewind(); s = -1; - if ( (LA73_226==COMMA||LA73_226==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_226); + input.seek(index84_337); if ( s>=0 ) return s; break; case 200 : - int LA73_316 = input.LA(1); + int LA84_423 = input.LA(1); - int index73_316 = input.index(); + int index84_423 = input.index(); input.rewind(); s = -1; - if ( (LA73_316==COMMA||LA73_316==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_316); + input.seek(index84_423); if ( s>=0 ) return s; break; case 201 : - int LA73_456 = input.LA(1); + int LA84_432 = input.LA(1); - int index73_456 = input.index(); + int index84_432 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_456); + input.seek(index84_432); if ( s>=0 ) return s; break; case 202 : - int LA73_303 = input.LA(1); + int LA84_238 = input.LA(1); - int index73_303 = input.index(); + int index84_238 = input.index(); input.rewind(); s = -1; - if ( (LA73_303==COMMA||LA73_303==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_238==COMMA||LA84_238==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_303); + input.seek(index84_238); if ( s>=0 ) return s; break; case 203 : - int LA73_405 = input.LA(1); + int LA84_142 = input.LA(1); - int index73_405 = input.index(); + int index84_142 = input.index(); input.rewind(); s = -1; - if ( (LA73_405==COMMA||LA73_405==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_142==COMMA||LA84_142==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_405); + input.seek(index84_142); if ( s>=0 ) return s; break; case 204 : - int LA73_127 = input.LA(1); + int LA84_125 = input.LA(1); - int index73_127 = input.index(); + int index84_125 = input.index(); input.rewind(); s = -1; - if ( (LA73_127==COMMA||LA73_127==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} + if ( (LA84_125==COMMA||LA84_125==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} else if ( (true) ) {s = 34;} - input.seek(index73_127); + input.seek(index84_125); if ( s>=0 ) return s; break; case 205 : - int LA73_147 = input.LA(1); + int LA84_446 = input.LA(1); - int index73_147 = input.index(); + int index84_446 = input.index(); input.rewind(); s = -1; - if ( (LA73_147==COMMA||LA73_147==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_147); + input.seek(index84_446); if ( s>=0 ) return s; break; case 206 : - int LA73_419 = input.LA(1); + int LA84_339 = input.LA(1); - int index73_419 = input.index(); + int index84_339 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_419); + input.seek(index84_339); if ( s>=0 ) return s; break; case 207 : - int LA73_314 = input.LA(1); + int LA84_145 = input.LA(1); - int index73_314 = input.index(); + int index84_145 = input.index(); input.rewind(); s = -1; - if ( (LA73_314==DOT) ) {s = 401;} - else if ( (LA73_314==COMMA) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_145==COMMA||LA84_145==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_314); + input.seek(index84_145); if ( s>=0 ) return s; break; case 208 : - int LA73_103 = input.LA(1); + int LA84_48 = input.LA(1); - int index73_103 = input.index(); + int index84_48 = input.index(); input.rewind(); s = -1; - if ( (LA73_103==ID) ) {s = 129;} - else if ( (LA73_103==FTSWORD) ) {s = 130;} - else if ( (LA73_103==FTSPRE) ) {s = 131;} - else if ( (LA73_103==FTSWILD) ) {s = 132;} - else if ( (LA73_103==NOT) ) {s = 133;} - else if ( (LA73_103==TO) ) {s = 134;} - else if ( (LA73_103==DECIMAL_INTEGER_LITERAL) ) {s = 135;} - else if ( (LA73_103==FLOATING_POINT_LITERAL) ) {s = 136;} - else if ( (LA73_103==STAR) ) {s = 137;} - else if ( (LA73_103==QUESTION_MARK) ) {s = 138;} - else if ( (LA73_103==DATETIME) ) {s = 139;} - else if ( (LA73_103==URI) ) {s = 83;} - else if ( (LA73_103==TILDA) && (synpred55_FTS())) {s = 84;} - else if ( (LA73_103==CARAT) && (synpred55_FTS())) {s = 85;} - else if ( (LA73_103==AND) && (synpred55_FTS())) {s = 86;} - else if ( (LA73_103==AMP) && (synpred55_FTS())) {s = 87;} - else if ( (LA73_103==EOF) && (synpred55_FTS())) {s = 88;} - else if ( (LA73_103==RPAREN) && (synpred55_FTS())) {s = 89;} - else if ( (LA73_103==OR) && (synpred55_FTS())) {s = 90;} - else if ( (LA73_103==BAR) && (synpred55_FTS())) {s = 91;} - else if ( (LA73_103==EXCLAMATION) && (synpred55_FTS())) {s = 92;} - else if ( (LA73_103==AT) && (synpred55_FTS())) {s = 93;} - else if ( (LA73_103==FTSPHRASE) && (synpred55_FTS())) {s = 94;} - else if ( (LA73_103==LSQUARE) && (synpred55_FTS())) {s = 95;} - else if ( (LA73_103==LT) && (synpred55_FTS())) {s = 96;} - else if ( (LA73_103==COMMA||LA73_103==DOT) && (synpred55_FTS())) {s = 97;} - else if ( (LA73_103==EQUALS) && (synpred55_FTS())) {s = 98;} - else if ( (LA73_103==LPAREN) && (synpred55_FTS())) {s = 99;} - else if ( (LA73_103==PERCENT) && (synpred55_FTS())) {s = 100;} - else if ( (LA73_103==PLUS) && (synpred55_FTS())) {s = 101;} - else if ( (LA73_103==MINUS) && (synpred55_FTS())) {s = 102;} + if ( (LA84_48==COMMA||LA84_48==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_103); + input.seek(index84_48); if ( s>=0 ) return s; break; case 209 : - int LA73_447 = input.LA(1); + int LA84_119 = input.LA(1); - int index73_447 = input.index(); + int index84_119 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_119==COMMA||LA84_119==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_447); + input.seek(index84_119); if ( s>=0 ) return s; break; case 210 : - int LA73_457 = input.LA(1); + int LA84_455 = input.LA(1); - int index73_457 = input.index(); + int index84_455 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_457); + input.seek(index84_455); if ( s>=0 ) return s; break; case 211 : - int LA73_293 = input.LA(1); + int LA84_227 = input.LA(1); - int index73_293 = input.index(); + int index84_227 = input.index(); input.rewind(); s = -1; - if ( (LA73_293==ID) ) {s = 320;} - else if ( (LA73_293==FTSWORD) ) {s = 321;} - else if ( (LA73_293==FTSPRE) ) {s = 322;} - else if ( (LA73_293==FTSWILD) ) {s = 323;} - else if ( (LA73_293==NOT) ) {s = 324;} - else if ( (LA73_293==TO) ) {s = 325;} - else if ( (LA73_293==DECIMAL_INTEGER_LITERAL) ) {s = 326;} - else if ( (LA73_293==FLOATING_POINT_LITERAL) ) {s = 327;} - else if ( (LA73_293==STAR) ) {s = 328;} - else if ( (LA73_293==QUESTION_MARK) ) {s = 329;} - else if ( (LA73_293==DATETIME) ) {s = 330;} - else if ( (LA73_293==URI) ) {s = 331;} - else if ( (LA73_293==TILDA) && (synpred47_FTS())) {s = 273;} - else if ( (LA73_293==CARAT) && (synpred47_FTS())) {s = 274;} - else if ( (LA73_293==AND) && (synpred47_FTS())) {s = 275;} - else if ( (LA73_293==AMP) && (synpred47_FTS())) {s = 276;} - else if ( (LA73_293==EOF) && (synpred47_FTS())) {s = 277;} - else if ( (LA73_293==RPAREN) && (synpred47_FTS())) {s = 278;} - else if ( (LA73_293==OR) && (synpred47_FTS())) {s = 279;} - else if ( (LA73_293==BAR) && (synpred47_FTS())) {s = 280;} - else if ( (LA73_293==EXCLAMATION) && (synpred47_FTS())) {s = 281;} - else if ( (LA73_293==AT) && (synpred47_FTS())) {s = 282;} - else if ( (LA73_293==FTSPHRASE) && (synpred47_FTS())) {s = 283;} - else if ( (LA73_293==LSQUARE) && (synpred47_FTS())) {s = 284;} - else if ( (LA73_293==LT) && (synpred47_FTS())) {s = 285;} - else if ( (LA73_293==COMMA||LA73_293==DOT) && (synpred47_FTS())) {s = 286;} - else if ( (LA73_293==EQUALS) && (synpred47_FTS())) {s = 287;} - else if ( (LA73_293==LPAREN) && (synpred47_FTS())) {s = 288;} - else if ( (LA73_293==PERCENT) && (synpred47_FTS())) {s = 289;} - else if ( (LA73_293==PLUS) && (synpred47_FTS())) {s = 290;} - else if ( (LA73_293==MINUS) && (synpred47_FTS())) {s = 291;} + if ( (LA84_227==COMMA||LA84_227==DOT) ) {s = 293;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_293); + input.seek(index84_227); if ( s>=0 ) return s; break; case 212 : - int LA73_319 = input.LA(1); + int LA84_296 = input.LA(1); - int index73_319 = input.index(); + int index84_296 = input.index(); input.rewind(); s = -1; - if ( (LA73_319==COMMA||LA73_319==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_296==COMMA||LA84_296==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_319); + input.seek(index84_296); if ( s>=0 ) return s; break; case 213 : - int LA73_413 = input.LA(1); + int LA84_47 = input.LA(1); - int index73_413 = input.index(); + int index84_47 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_47==COMMA||LA84_47==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_413); + input.seek(index84_47); if ( s>=0 ) return s; break; case 214 : - int LA73_222 = input.LA(1); + int LA84_118 = input.LA(1); - int index73_222 = input.index(); + int index84_118 = input.index(); input.rewind(); s = -1; - if ( (LA73_222==DOT) ) {s = 292;} - else if ( (LA73_222==COMMA) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_118==COMMA||LA84_118==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_222); + input.seek(index84_118); if ( s>=0 ) return s; break; case 215 : - int LA73_305 = input.LA(1); + int LA84_429 = input.LA(1); - int index73_305 = input.index(); + int index84_429 = input.index(); input.rewind(); s = -1; - if ( (LA73_305==COMMA||LA73_305==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_305); + input.seek(index84_429); if ( s>=0 ) return s; break; case 216 : - int LA73_220 = input.LA(1); + int LA84_363 = input.LA(1); - int index73_220 = input.index(); + int index84_363 = input.index(); input.rewind(); s = -1; - if ( (LA73_220==COMMA||LA73_220==DOT) ) {s = 260;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_363==ID) ) {s = 413;} + else if ( (LA84_363==FTSWORD) ) {s = 333;} + else if ( (LA84_363==FTSPRE) ) {s = 334;} + else if ( (LA84_363==FTSWILD) ) {s = 335;} + else if ( (LA84_363==NOT) ) {s = 336;} + else if ( (LA84_363==TO) ) {s = 337;} + else if ( (LA84_363==DECIMAL_INTEGER_LITERAL) ) {s = 338;} + else if ( (LA84_363==FLOATING_POINT_LITERAL) ) {s = 339;} + else if ( (LA84_363==STAR) ) {s = 340;} + else if ( (LA84_363==QUESTION_MARK) ) {s = 341;} + else if ( (LA84_363==DATETIME) ) {s = 342;} + else if ( (LA84_363==URI) ) {s = 343;} + else if ( (LA84_363==TILDA) && (synpred52_FTS())) {s = 344;} + else if ( (LA84_363==CARAT) && (synpred52_FTS())) {s = 345;} + else if ( (LA84_363==AND) && (synpred52_FTS())) {s = 346;} + else if ( (LA84_363==AMP) && (synpred52_FTS())) {s = 347;} + else if ( (LA84_363==EOF) && (synpred52_FTS())) {s = 348;} + else if ( (LA84_363==RPAREN) && (synpred52_FTS())) {s = 349;} + else if ( (LA84_363==OR) && (synpred52_FTS())) {s = 350;} + else if ( (LA84_363==BAR) && (synpred52_FTS())) {s = 351;} + else if ( (LA84_363==EXCLAMATION) && (synpred52_FTS())) {s = 352;} + else if ( (LA84_363==AT) && (synpred52_FTS())) {s = 353;} + else if ( (LA84_363==FTSPHRASE) && (synpred52_FTS())) {s = 354;} + else if ( (LA84_363==LSQUARE) && (synpred52_FTS())) {s = 355;} + else if ( (LA84_363==LT) && (synpred52_FTS())) {s = 356;} + else if ( (LA84_363==COMMA||LA84_363==DOT) && (synpred52_FTS())) {s = 357;} + else if ( (LA84_363==EQUALS) && (synpred52_FTS())) {s = 358;} + else if ( (LA84_363==LPAREN) && (synpred52_FTS())) {s = 359;} + else if ( (LA84_363==PERCENT) && (synpred52_FTS())) {s = 360;} + else if ( (LA84_363==PLUS) && (synpred52_FTS())) {s = 361;} + else if ( (LA84_363==MINUS) && (synpred52_FTS())) {s = 362;} - input.seek(index73_220); + input.seek(index84_363); if ( s>=0 ) return s; break; case 217 : - int LA73_259 = input.LA(1); + int LA84_42 = input.LA(1); - int index73_259 = input.index(); + int index84_42 = input.index(); input.rewind(); s = -1; - if ( (LA73_259==ID) ) {s = 300;} - else if ( (LA73_259==FTSWORD) ) {s = 229;} - else if ( (LA73_259==FTSPRE) ) {s = 230;} - else if ( (LA73_259==FTSWILD) ) {s = 231;} - else if ( (LA73_259==NOT) ) {s = 232;} - else if ( (LA73_259==TO) ) {s = 233;} - else if ( (LA73_259==DECIMAL_INTEGER_LITERAL) ) {s = 234;} - else if ( (LA73_259==FLOATING_POINT_LITERAL) ) {s = 235;} - else if ( (LA73_259==STAR) ) {s = 236;} - else if ( (LA73_259==QUESTION_MARK) ) {s = 237;} - else if ( (LA73_259==DATETIME) ) {s = 238;} - else if ( (LA73_259==URI) ) {s = 239;} - else if ( (LA73_259==TILDA) && (synpred48_FTS())) {s = 240;} - else if ( (LA73_259==CARAT) && (synpred48_FTS())) {s = 241;} - else if ( (LA73_259==AND) && (synpred48_FTS())) {s = 242;} - else if ( (LA73_259==AMP) && (synpred48_FTS())) {s = 243;} - else if ( (LA73_259==EOF) && (synpred48_FTS())) {s = 244;} - else if ( (LA73_259==RPAREN) && (synpred48_FTS())) {s = 245;} - else if ( (LA73_259==OR) && (synpred48_FTS())) {s = 246;} - else if ( (LA73_259==BAR) && (synpred48_FTS())) {s = 247;} - else if ( (LA73_259==EXCLAMATION) && (synpred48_FTS())) {s = 248;} - else if ( (LA73_259==AT) && (synpred48_FTS())) {s = 249;} - else if ( (LA73_259==FTSPHRASE) && (synpred48_FTS())) {s = 250;} - else if ( (LA73_259==LSQUARE) && (synpred48_FTS())) {s = 251;} - else if ( (LA73_259==LT) && (synpred48_FTS())) {s = 252;} - else if ( (LA73_259==COMMA||LA73_259==DOT) && (synpred48_FTS())) {s = 253;} - else if ( (LA73_259==EQUALS) && (synpred48_FTS())) {s = 254;} - else if ( (LA73_259==LPAREN) && (synpred48_FTS())) {s = 255;} - else if ( (LA73_259==PERCENT) && (synpred48_FTS())) {s = 256;} - else if ( (LA73_259==PLUS) && (synpred48_FTS())) {s = 257;} - else if ( (LA73_259==MINUS) && (synpred48_FTS())) {s = 258;} + if ( (LA84_42==COMMA||LA84_42==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_259); + input.seek(index84_42); if ( s>=0 ) return s; break; case 218 : - int LA73_371 = input.LA(1); + int LA84_113 = input.LA(1); - int index73_371 = input.index(); + int index84_113 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_113==COMMA||LA84_113==DOT) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_371); + input.seek(index84_113); if ( s>=0 ) return s; break; case 219 : - int LA73_326 = input.LA(1); + int LA84_371 = input.LA(1); - int index73_326 = input.index(); + int index84_371 = input.index(); input.rewind(); s = -1; - if ( (LA73_326==COMMA||LA73_326==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_326); + input.seek(index84_371); if ( s>=0 ) return s; break; case 220 : - int LA73_423 = input.LA(1); + int LA84_325 = input.LA(1); - int index73_423 = input.index(); + int index84_325 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_325==COMMA||LA84_325==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_423); + input.seek(index84_325); if ( s>=0 ) return s; break; case 221 : - int LA73_261 = input.LA(1); + int LA84_405 = input.LA(1); - int index73_261 = input.index(); + int index84_405 = input.index(); input.rewind(); s = -1; - if ( (LA73_261==COMMA||LA73_261==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_405==COMMA||LA84_405==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_261); + input.seek(index84_405); if ( s>=0 ) return s; break; case 222 : - int LA73_341 = input.LA(1); + int LA84_328 = input.LA(1); - int index73_341 = input.index(); + int index84_328 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_328==COMMA||LA84_328==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_341); + input.seek(index84_328); if ( s>=0 ) return s; break; case 223 : - int LA73_403 = input.LA(1); + int LA84_230 = input.LA(1); - int index73_403 = input.index(); + int index84_230 = input.index(); input.rewind(); s = -1; - if ( (LA73_403==DOT) ) {s = 445;} - else if ( (LA73_403==COMMA) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_230==COMMA||LA84_230==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_403); + input.seek(index84_230); if ( s>=0 ) return s; break; case 224 : - int LA73_182 = input.LA(1); + int LA84_143 = input.LA(1); - int index73_182 = input.index(); + int index84_143 = input.index(); input.rewind(); s = -1; - if ( (LA73_182==COMMA||LA73_182==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_143==COMMA||LA84_143==DOT) ) {s = 214;} + else if ( (synpred58_FTS()) ) {s = 176;} + else if ( (synpred60_FTS()) ) {s = 170;} - input.seek(index73_182); + input.seek(index84_143); if ( s>=0 ) return s; break; case 225 : - int LA73_406 = input.LA(1); + int LA84_79 = input.LA(1); - int index73_406 = input.index(); + int index84_79 = input.index(); input.rewind(); s = -1; - if ( (LA73_406==COMMA||LA73_406==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_79==COMMA||LA84_79==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_406); + input.seek(index84_79); if ( s>=0 ) return s; break; case 226 : - int LA73_434 = input.LA(1); + int LA84_136 = input.LA(1); - int index73_434 = input.index(); + int index84_136 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_136==COMMA||LA84_136==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_434); + input.seek(index84_136); if ( s>=0 ) return s; break; case 227 : - int LA73_304 = input.LA(1); + int LA84_259 = input.LA(1); - int index73_304 = input.index(); + int index84_259 = input.index(); input.rewind(); s = -1; - if ( (LA73_304==COMMA||LA73_304==DOT) ) {s = 364;} - else if ( (synpred46_FTS()) ) {s = 174;} - else if ( (synpred48_FTS()) ) {s = 258;} + if ( (LA84_259==ID) ) {s = 300;} + else if ( (LA84_259==FTSWORD) ) {s = 229;} + else if ( (LA84_259==FTSPRE) ) {s = 230;} + else if ( (LA84_259==FTSWILD) ) {s = 231;} + else if ( (LA84_259==NOT) ) {s = 232;} + else if ( (LA84_259==TO) ) {s = 233;} + else if ( (LA84_259==DECIMAL_INTEGER_LITERAL) ) {s = 234;} + else if ( (LA84_259==FLOATING_POINT_LITERAL) ) {s = 235;} + else if ( (LA84_259==STAR) ) {s = 236;} + else if ( (LA84_259==QUESTION_MARK) ) {s = 237;} + else if ( (LA84_259==DATETIME) ) {s = 238;} + else if ( (LA84_259==URI) ) {s = 239;} + else if ( (LA84_259==TILDA) && (synpred56_FTS())) {s = 240;} + else if ( (LA84_259==CARAT) && (synpred56_FTS())) {s = 241;} + else if ( (LA84_259==AND) && (synpred56_FTS())) {s = 242;} + else if ( (LA84_259==AMP) && (synpred56_FTS())) {s = 243;} + else if ( (LA84_259==EOF) && (synpred56_FTS())) {s = 244;} + else if ( (LA84_259==RPAREN) && (synpred56_FTS())) {s = 245;} + else if ( (LA84_259==OR) && (synpred56_FTS())) {s = 246;} + else if ( (LA84_259==BAR) && (synpred56_FTS())) {s = 247;} + else if ( (LA84_259==EXCLAMATION) && (synpred56_FTS())) {s = 248;} + else if ( (LA84_259==AT) && (synpred56_FTS())) {s = 249;} + else if ( (LA84_259==FTSPHRASE) && (synpred56_FTS())) {s = 250;} + else if ( (LA84_259==LSQUARE) && (synpred56_FTS())) {s = 251;} + else if ( (LA84_259==LT) && (synpred56_FTS())) {s = 252;} + else if ( (LA84_259==COMMA||LA84_259==DOT) && (synpred56_FTS())) {s = 253;} + else if ( (LA84_259==EQUALS) && (synpred56_FTS())) {s = 254;} + else if ( (LA84_259==LPAREN) && (synpred56_FTS())) {s = 255;} + else if ( (LA84_259==PERCENT) && (synpred56_FTS())) {s = 256;} + else if ( (LA84_259==PLUS) && (synpred56_FTS())) {s = 257;} + else if ( (LA84_259==MINUS) && (synpred56_FTS())) {s = 258;} - input.seek(index73_304); + input.seek(index84_259); if ( s>=0 ) return s; break; case 228 : - int LA73_379 = input.LA(1); + int LA84_415 = input.LA(1); - int index73_379 = input.index(); + int index84_415 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_379); + input.seek(index84_415); if ( s>=0 ) return s; break; case 229 : - int LA73_187 = input.LA(1); + int LA84_183 = input.LA(1); - int index73_187 = input.index(); + int index84_183 = input.index(); input.rewind(); s = -1; - if ( (LA73_187==COMMA||LA73_187==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_183==COMMA||LA84_183==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_187); + input.seek(index84_183); if ( s>=0 ) return s; break; case 230 : - int LA73_267 = input.LA(1); + int LA84_74 = input.LA(1); - int index73_267 = input.index(); + int index84_74 = input.index(); input.rewind(); s = -1; - if ( (LA73_267==COMMA||LA73_267==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_74==COMMA||LA84_74==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_267); + input.seek(index84_74); if ( s>=0 ) return s; break; case 231 : - int LA73_317 = input.LA(1); + int LA84_131 = input.LA(1); - int index73_317 = input.index(); + int index84_131 = input.index(); input.rewind(); s = -1; - if ( (LA73_317==COMMA||LA73_317==DOT) ) {s = 313;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_131==COMMA||LA84_131==DOT) ) {s = 122;} + else if ( (synpred61_FTS()) ) {s = 123;} + else if ( (synpred63_FTS()) ) {s = 102;} + else if ( (true) ) {s = 34;} - input.seek(index73_317); + input.seek(index84_131); if ( s>=0 ) return s; break; case 232 : - int LA73_445 = input.LA(1); + int LA84_340 = input.LA(1); - int index73_445 = input.index(); + int index84_340 = input.index(); input.rewind(); s = -1; - if ( (LA73_445==ID) ) {s = 457;} - else if ( (LA73_445==FTSWORD) ) {s = 434;} - else if ( (LA73_445==FTSPRE) ) {s = 435;} - else if ( (LA73_445==FTSWILD) ) {s = 436;} - else if ( (LA73_445==NOT) ) {s = 437;} - else if ( (LA73_445==TO) ) {s = 438;} - else if ( (LA73_445==DECIMAL_INTEGER_LITERAL) ) {s = 439;} - else if ( (LA73_445==FLOATING_POINT_LITERAL) ) {s = 440;} - else if ( (LA73_445==STAR) ) {s = 441;} - else if ( (LA73_445==QUESTION_MARK) ) {s = 442;} - else if ( (LA73_445==DATETIME) ) {s = 443;} - else if ( (LA73_445==URI) ) {s = 444;} - else if ( (LA73_445==TILDA) && (synpred43_FTS())) {s = 382;} - else if ( (LA73_445==CARAT) && (synpred43_FTS())) {s = 383;} - else if ( (LA73_445==AND) && (synpred43_FTS())) {s = 384;} - else if ( (LA73_445==AMP) && (synpred43_FTS())) {s = 385;} - else if ( (LA73_445==EOF) && (synpred43_FTS())) {s = 386;} - else if ( (LA73_445==RPAREN) && (synpred43_FTS())) {s = 387;} - else if ( (LA73_445==OR) && (synpred43_FTS())) {s = 388;} - else if ( (LA73_445==BAR) && (synpred43_FTS())) {s = 389;} - else if ( (LA73_445==EXCLAMATION) && (synpred43_FTS())) {s = 390;} - else if ( (LA73_445==AT) && (synpred43_FTS())) {s = 391;} - else if ( (LA73_445==FTSPHRASE) && (synpred43_FTS())) {s = 392;} - else if ( (LA73_445==LSQUARE) && (synpred43_FTS())) {s = 393;} - else if ( (LA73_445==LT) && (synpred43_FTS())) {s = 394;} - else if ( (LA73_445==COMMA||LA73_445==DOT) && (synpred43_FTS())) {s = 395;} - else if ( (LA73_445==EQUALS) && (synpred43_FTS())) {s = 396;} - else if ( (LA73_445==LPAREN) && (synpred43_FTS())) {s = 397;} - else if ( (LA73_445==PERCENT) && (synpred43_FTS())) {s = 398;} - else if ( (LA73_445==PLUS) && (synpred43_FTS())) {s = 399;} - else if ( (LA73_445==MINUS) && (synpred43_FTS())) {s = 400;} + if ( (synpred50_FTS()) ) {s = 172;} + else if ( (synpred52_FTS()) ) {s = 362;} - input.seek(index73_445); + input.seek(index84_340); if ( s>=0 ) return s; break; case 233 : - int LA73_50 = input.LA(1); + int LA84_186 = input.LA(1); - int index73_50 = input.index(); + int index84_186 = input.index(); input.rewind(); s = -1; - if ( (LA73_50==COMMA||LA73_50==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_186==COMMA||LA84_186==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_50); + input.seek(index84_186); if ( s>=0 ) return s; break; case 234 : - int LA73_121 = input.LA(1); + int LA84_313 = input.LA(1); - int index73_121 = input.index(); + int index84_313 = input.index(); input.rewind(); s = -1; - if ( (LA73_121==COMMA||LA73_121==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_313==ID) ) {s = 370;} + else if ( (LA84_313==FTSWORD) ) {s = 371;} + else if ( (LA84_313==FTSPRE) ) {s = 372;} + else if ( (LA84_313==FTSWILD) ) {s = 373;} + else if ( (LA84_313==NOT) ) {s = 374;} + else if ( (LA84_313==TO) ) {s = 375;} + else if ( (LA84_313==DECIMAL_INTEGER_LITERAL) ) {s = 376;} + else if ( (LA84_313==FLOATING_POINT_LITERAL) ) {s = 377;} + else if ( (LA84_313==STAR) ) {s = 378;} + else if ( (LA84_313==QUESTION_MARK) ) {s = 379;} + else if ( (LA84_313==DATETIME) ) {s = 380;} + else if ( (LA84_313==URI) ) {s = 381;} + else if ( (LA84_313==TILDA) && (synpred51_FTS())) {s = 382;} + else if ( (LA84_313==CARAT) && (synpred51_FTS())) {s = 383;} + else if ( (LA84_313==AND) && (synpred51_FTS())) {s = 384;} + else if ( (LA84_313==AMP) && (synpred51_FTS())) {s = 385;} + else if ( (LA84_313==EOF) && (synpred51_FTS())) {s = 386;} + else if ( (LA84_313==RPAREN) && (synpred51_FTS())) {s = 387;} + else if ( (LA84_313==OR) && (synpred51_FTS())) {s = 388;} + else if ( (LA84_313==BAR) && (synpred51_FTS())) {s = 389;} + else if ( (LA84_313==EXCLAMATION) && (synpred51_FTS())) {s = 390;} + else if ( (LA84_313==AT) && (synpred51_FTS())) {s = 391;} + else if ( (LA84_313==FTSPHRASE) && (synpred51_FTS())) {s = 392;} + else if ( (LA84_313==LSQUARE) && (synpred51_FTS())) {s = 393;} + else if ( (LA84_313==LT) && (synpred51_FTS())) {s = 394;} + else if ( (LA84_313==COMMA||LA84_313==DOT) && (synpred51_FTS())) {s = 395;} + else if ( (LA84_313==EQUALS) && (synpred51_FTS())) {s = 396;} + else if ( (LA84_313==LPAREN) && (synpred51_FTS())) {s = 397;} + else if ( (LA84_313==PERCENT) && (synpred51_FTS())) {s = 398;} + else if ( (LA84_313==PLUS) && (synpred51_FTS())) {s = 399;} + else if ( (LA84_313==MINUS) && (synpred51_FTS())) {s = 400;} - input.seek(index73_121); + input.seek(index84_313); if ( s>=0 ) return s; break; case 235 : - int LA73_216 = input.LA(1); + int LA84_33 = input.LA(1); - int index73_216 = input.index(); + int index84_33 = input.index(); input.rewind(); s = -1; - if ( (LA73_216==COMMA||LA73_216==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (LA84_33==ID) ) {s = 72;} + else if ( (LA84_33==FTSWORD) ) {s = 73;} + else if ( (LA84_33==FTSPRE) ) {s = 74;} + else if ( (LA84_33==FTSWILD) ) {s = 75;} + else if ( (LA84_33==NOT) ) {s = 76;} + else if ( (LA84_33==TO) ) {s = 77;} + else if ( (LA84_33==DECIMAL_INTEGER_LITERAL) ) {s = 78;} + else if ( (LA84_33==FLOATING_POINT_LITERAL) ) {s = 79;} + else if ( (LA84_33==STAR) ) {s = 80;} + else if ( (LA84_33==QUESTION_MARK) ) {s = 81;} + else if ( (LA84_33==DATETIME) ) {s = 82;} + else if ( (LA84_33==URI) ) {s = 83;} + else if ( (LA84_33==TILDA) && (synpred63_FTS())) {s = 84;} + else if ( (LA84_33==CARAT) && (synpred63_FTS())) {s = 85;} + else if ( (LA84_33==AND) && (synpred63_FTS())) {s = 86;} + else if ( (LA84_33==AMP) && (synpred63_FTS())) {s = 87;} + else if ( (LA84_33==EOF) && (synpred63_FTS())) {s = 88;} + else if ( (LA84_33==RPAREN) && (synpred63_FTS())) {s = 89;} + else if ( (LA84_33==OR) && (synpred63_FTS())) {s = 90;} + else if ( (LA84_33==BAR) && (synpred63_FTS())) {s = 91;} + else if ( (LA84_33==EXCLAMATION) && (synpred63_FTS())) {s = 92;} + else if ( (LA84_33==AT) && (synpred63_FTS())) {s = 93;} + else if ( (LA84_33==FTSPHRASE) && (synpred63_FTS())) {s = 94;} + else if ( (LA84_33==LSQUARE) && (synpred63_FTS())) {s = 95;} + else if ( (LA84_33==LT) && (synpred63_FTS())) {s = 96;} + else if ( (LA84_33==COMMA||LA84_33==DOT) && (synpred63_FTS())) {s = 97;} + else if ( (LA84_33==EQUALS) && (synpred63_FTS())) {s = 98;} + else if ( (LA84_33==LPAREN) && (synpred63_FTS())) {s = 99;} + else if ( (LA84_33==PERCENT) && (synpred63_FTS())) {s = 100;} + else if ( (LA84_33==PLUS) && (synpred63_FTS())) {s = 101;} + else if ( (LA84_33==MINUS) && (synpred63_FTS())) {s = 102;} - input.seek(index73_216); + input.seek(index84_33); if ( s>=0 ) return s; break; case 236 : - int LA73_380 = input.LA(1); + int LA84_106 = input.LA(1); - int index73_380 = input.index(); + int index84_106 = input.index(); input.rewind(); s = -1; - if ( (synpred41_FTS()) ) {s = 209;} - else if ( (synpred43_FTS()) ) {s = 400;} + if ( (LA84_106==DOT) ) {s = 171;} + else if ( (LA84_106==COMMA) ) {s = 104;} + else if ( (synpred62_FTS()) ) {s = 105;} + else if ( (synpred64_FTS()) ) {s = 70;} + else if ( (true) ) {s = 27;} - input.seek(index73_380); + input.seek(index84_106); if ( s>=0 ) return s; break; case 237 : - int LA73_148 = input.LA(1); + int LA84_456 = input.LA(1); - int index73_148 = input.index(); + int index84_456 = input.index(); input.rewind(); s = -1; - if ( (LA73_148==COMMA||LA73_148==DOT) ) {s = 214;} - else if ( (synpred50_FTS()) ) {s = 176;} - else if ( (synpred52_FTS()) ) {s = 170;} + if ( (synpred49_FTS()) ) {s = 209;} + else if ( (synpred51_FTS()) ) {s = 400;} - input.seek(index73_148); + input.seek(index84_456); if ( s>=0 ) return s; break; case 238 : - int LA73_77 = input.LA(1); + int LA84_329 = input.LA(1); - int index73_77 = input.index(); + int index84_329 = input.index(); input.rewind(); s = -1; - if ( (LA73_77==COMMA||LA73_77==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_329==COMMA||LA84_329==DOT) ) {s = 402;} + else if ( (synpred53_FTS()) ) {s = 211;} + else if ( (synpred55_FTS()) ) {s = 291;} - input.seek(index73_77); + input.seek(index84_329); if ( s>=0 ) return s; break; case 239 : - int LA73_134 = input.LA(1); + int LA84_297 = input.LA(1); - int index73_134 = input.index(); + int index84_297 = input.index(); input.rewind(); s = -1; - if ( (LA73_134==COMMA||LA73_134==DOT) ) {s = 122;} - else if ( (synpred53_FTS()) ) {s = 123;} - else if ( (synpred55_FTS()) ) {s = 102;} - else if ( (true) ) {s = 34;} + if ( (LA84_297==COMMA||LA84_297==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_134); + input.seek(index84_297); if ( s>=0 ) return s; break; case 240 : - int LA73_324 = input.LA(1); + int LA84_260 = input.LA(1); - int index73_324 = input.index(); + int index84_260 = input.index(); input.rewind(); s = -1; - if ( (LA73_324==COMMA||LA73_324==DOT) ) {s = 402;} - else if ( (synpred45_FTS()) ) {s = 211;} - else if ( (synpred47_FTS()) ) {s = 291;} + if ( (LA84_260==ID) ) {s = 301;} + else if ( (LA84_260==FTSWORD) ) {s = 302;} + else if ( (LA84_260==FTSPRE) ) {s = 303;} + else if ( (LA84_260==FTSWILD) ) {s = 304;} + else if ( (LA84_260==NOT) ) {s = 305;} + else if ( (LA84_260==TO) ) {s = 306;} + else if ( (LA84_260==DECIMAL_INTEGER_LITERAL) ) {s = 307;} + else if ( (LA84_260==FLOATING_POINT_LITERAL) ) {s = 308;} + else if ( (LA84_260==STAR) ) {s = 309;} + else if ( (LA84_260==QUESTION_MARK) ) {s = 310;} + else if ( (LA84_260==DATETIME) ) {s = 311;} + else if ( (LA84_260==URI) ) {s = 312;} + else if ( (LA84_260==TILDA) && (synpred56_FTS())) {s = 240;} + else if ( (LA84_260==CARAT) && (synpred56_FTS())) {s = 241;} + else if ( (LA84_260==AND) && (synpred56_FTS())) {s = 242;} + else if ( (LA84_260==AMP) && (synpred56_FTS())) {s = 243;} + else if ( (LA84_260==EOF) && (synpred56_FTS())) {s = 244;} + else if ( (LA84_260==RPAREN) && (synpred56_FTS())) {s = 245;} + else if ( (LA84_260==OR) && (synpred56_FTS())) {s = 246;} + else if ( (LA84_260==BAR) && (synpred56_FTS())) {s = 247;} + else if ( (LA84_260==EXCLAMATION) && (synpred56_FTS())) {s = 248;} + else if ( (LA84_260==AT) && (synpred56_FTS())) {s = 249;} + else if ( (LA84_260==FTSPHRASE) && (synpred56_FTS())) {s = 250;} + else if ( (LA84_260==LSQUARE) && (synpred56_FTS())) {s = 251;} + else if ( (LA84_260==LT) && (synpred56_FTS())) {s = 252;} + else if ( (LA84_260==COMMA||LA84_260==DOT) && (synpred56_FTS())) {s = 253;} + else if ( (LA84_260==EQUALS) && (synpred56_FTS())) {s = 254;} + else if ( (LA84_260==LPAREN) && (synpred56_FTS())) {s = 255;} + else if ( (LA84_260==PERCENT) && (synpred56_FTS())) {s = 256;} + else if ( (LA84_260==PLUS) && (synpred56_FTS())) {s = 257;} + else if ( (LA84_260==MINUS) && (synpred56_FTS())) {s = 258;} - input.seek(index73_324); + input.seek(index84_260); if ( s>=0 ) return s; break; case 241 : - int LA73_178 = input.LA(1); + int LA84_223 = input.LA(1); - int index73_178 = input.index(); + int index84_223 = input.index(); input.rewind(); s = -1; - if ( (LA73_178==COMMA||LA73_178==DOT) ) {s = 221;} - else if ( (synpred49_FTS()) ) {s = 213;} - else if ( (synpred51_FTS()) ) {s = 207;} + if ( (LA84_223==COMMA||LA84_223==DOT) ) {s = 221;} + else if ( (synpred57_FTS()) ) {s = 213;} + else if ( (synpred59_FTS()) ) {s = 207;} - input.seek(index73_178); + input.seek(index84_223); if ( s>=0 ) return s; break; case 242 : - int LA73_448 = input.LA(1); + int LA84_232 = input.LA(1); - int index73_448 = input.index(); + int index84_232 = input.index(); input.rewind(); s = -1; - if ( (synpred42_FTS()) ) {s = 172;} - else if ( (synpred44_FTS()) ) {s = 362;} + if ( (LA84_232==COMMA||LA84_232==DOT) ) {s = 294;} + else if ( (synpred54_FTS()) ) {s = 174;} + else if ( (synpred56_FTS()) ) {s = 258;} - input.seek(index73_448); + input.seek(index84_232); if ( s>=0 ) return s; break; case 243 : - int LA73_108 = input.LA(1); + int LA84_26 = input.LA(1); - int index73_108 = input.index(); + int index84_26 = input.index(); input.rewind(); s = -1; - if ( (LA73_108==COMMA||LA73_108==DOT) ) {s = 104;} - else if ( (synpred54_FTS()) ) {s = 105;} - else if ( (synpred56_FTS()) ) {s = 70;} - else if ( (true) ) {s = 27;} + if ( (LA84_26==ID) ) {s = 40;} + else if ( (LA84_26==FTSWORD) ) {s = 41;} + else if ( (LA84_26==FTSPRE) ) {s = 42;} + else if ( (LA84_26==FTSWILD) ) {s = 43;} + else if ( (LA84_26==NOT) ) {s = 44;} + else if ( (LA84_26==TO) ) {s = 45;} + else if ( (LA84_26==DECIMAL_INTEGER_LITERAL) ) {s = 46;} + else if ( (LA84_26==FLOATING_POINT_LITERAL) ) {s = 47;} + else if ( (LA84_26==STAR) ) {s = 48;} + else if ( (LA84_26==QUESTION_MARK) ) {s = 49;} + else if ( (LA84_26==DATETIME) ) {s = 50;} + else if ( (LA84_26==URI) ) {s = 51;} + else if ( (LA84_26==TILDA) && (synpred64_FTS())) {s = 52;} + else if ( (LA84_26==CARAT) && (synpred64_FTS())) {s = 53;} + else if ( (LA84_26==AND) && (synpred64_FTS())) {s = 54;} + else if ( (LA84_26==AMP) && (synpred64_FTS())) {s = 55;} + else if ( (LA84_26==EOF) && (synpred64_FTS())) {s = 56;} + else if ( (LA84_26==RPAREN) && (synpred64_FTS())) {s = 57;} + else if ( (LA84_26==OR) && (synpred64_FTS())) {s = 58;} + else if ( (LA84_26==BAR) && (synpred64_FTS())) {s = 59;} + else if ( (LA84_26==EXCLAMATION) && (synpred64_FTS())) {s = 60;} + else if ( (LA84_26==AT) && (synpred64_FTS())) {s = 61;} + else if ( (LA84_26==FTSPHRASE) && (synpred64_FTS())) {s = 62;} + else if ( (LA84_26==LSQUARE) && (synpred64_FTS())) {s = 63;} + else if ( (LA84_26==LT) && (synpred64_FTS())) {s = 64;} + else if ( (LA84_26==COMMA||LA84_26==DOT) && (synpred64_FTS())) {s = 65;} + else if ( (LA84_26==EQUALS) && (synpred64_FTS())) {s = 66;} + else if ( (LA84_26==LPAREN) && (synpred64_FTS())) {s = 67;} + else if ( (LA84_26==PERCENT) && (synpred64_FTS())) {s = 68;} + else if ( (LA84_26==PLUS) && (synpred64_FTS())) {s = 69;} + else if ( (LA84_26==MINUS) && (synpred64_FTS())) {s = 70;} - input.seek(index73_108); + input.seek(index84_26); if ( s>=0 ) return s; break; } if (state.backtracking>0) {state.failed=true; return -1;} NoViableAltException nvae = - new NoViableAltException(getDescription(), 73, _s, input); + new NoViableAltException(getDescription(), 84, _s, input); error(nvae); throw nvae; } @@ -25992,280 +31720,302 @@ public class FTSParser extends Parser { public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_slop2518 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CARAT_in_boost2599 = new BitSet(new long[]{0x0000800000008000L}); public static final BitSet FOLLOW_number_in_boost2601 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_ftsTermOrPhrase2690 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsTermOrPhrase2690 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_COLON_in_ftsTermOrPhrase2692 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2720 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2728 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2795 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2804 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2865 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2873 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2923 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2932 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EQUALS_in_ftsExactTermOrPhrase3011 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); - public static final BitSet FOLLOW_fieldReference_in_ftsExactTermOrPhrase3039 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3041 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3069 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3077 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3144 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3214 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3222 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3272 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3281 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3362 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); - public static final BitSet FOLLOW_fieldReference_in_ftsTokenisedTermOrPhrase3390 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3392 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3420 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3428 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3495 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3504 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3565 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3573 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3623 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3632 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_cmisTerm3705 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_cmisPhrase3759 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_ftsRange3814 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsRange3816 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000030L}); - public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsRange3820 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_ftsFieldGroup3876 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsFieldGroup3878 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroup3880 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); - public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup3882 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroup3884 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction3969 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction3983 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4016 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4019 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4021 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4106 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4109 = new BitSet(new long[]{0x803C80000920A882L,0x0000016101124138L}); - public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4196 = new BitSet(new long[]{0x0000000000000032L}); - public static final BitSet FOLLOW_and_in_ftsFieldGroupExplicitConjunction4199 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4201 = new BitSet(new long[]{0x0000000000000032L}); - public static final BitSet FOLLOW_and_in_ftsFieldGroupImplicitConjunction4286 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4289 = new BitSet(new long[]{0x803C80000920A8B2L,0x0000016101104138L}); - public static final BitSet FOLLOW_not_in_ftsFieldGroupPrefixed4379 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4381 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4383 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4447 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4449 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PLUS_in_ftsFieldGroupPrefixed4513 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4515 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4517 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BAR_in_ftsFieldGroupPrefixed4581 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4583 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4585 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_MINUS_in_ftsFieldGroupPrefixed4649 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4651 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4653 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest4744 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest4810 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest4820 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest4891 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest4901 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest4972 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest4982 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5053 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5063 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5134 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5144 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5215 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5225 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5296 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroupTest5356 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); - public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5358 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroupTest5360 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsFieldGroupTerm5413 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5446 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5448 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase5501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase5542 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase5544 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase5605 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase5607 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupSynonym5660 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym5662 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity5715 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); - public static final BitSet FOLLOW_proximityGroup_in_ftsFieldGroupProximity5725 = new BitSet(new long[]{0x803880000000A000L,0x0000014100004000L}); - public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity5727 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L}); - public static final BitSet FOLLOW_ID_in_ftsFieldGroupProximityTerm5791 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm5803 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm5815 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm5827 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_ftsFieldGroupProximityTerm5839 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TO_in_ftsFieldGroupProximityTerm5851 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm5863 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm5875 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm5887 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ftsFieldGroupProximityTerm5899 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_ftsFieldGroupProximityTerm5911 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_ftsFieldGroupProximityTerm5913 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_proximityGroup5946 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L}); - public static final BitSet FOLLOW_LPAREN_in_proximityGroup5949 = new BitSet(new long[]{0x0000000000008000L,0x0000000008000000L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup5951 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_proximityGroup5954 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6038 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_DOTDOT_in_ftsFieldGroupRange6040 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6042 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_range_left_in_ftsFieldGroupRange6080 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6082 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L}); - public static final BitSet FOLLOW_TO_in_ftsFieldGroupRange6084 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6086 = new BitSet(new long[]{0x2000000000000000L,0x0000000010000000L}); - public static final BitSet FOLLOW_range_right_in_ftsFieldGroupRange6088 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LSQUARE_in_range_left6147 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LT_in_range_left6179 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RSQUARE_in_range_right6232 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_GT_in_range_right6264 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_fieldReference6320 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); - public static final BitSet FOLLOW_prefix_in_fieldReference6357 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_uri_in_fieldReference6377 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_fieldReference6398 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_tempReference6485 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); - public static final BitSet FOLLOW_prefix_in_tempReference6514 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_uri_in_tempReference6534 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_tempReference6555 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_identifier_in_prefix6642 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_prefix6644 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_uri6725 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_identifier6827 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_DOT_in_identifier6829 = new BitSet(new long[]{0x8000000000000000L}); - public static final BitSet FOLLOW_ID_in_identifier6833 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_identifier6882 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TO_in_identifier6949 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_OR_in_identifier6987 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AND_in_identifier7025 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_identifier7064 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7182 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7188 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7190 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7196 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7198 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7204 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7206 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7212 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7214 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7220 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7280 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7282 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7288 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7290 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7296 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7298 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7304 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7306 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7312 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7379 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7385 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7387 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7393 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7395 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7401 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7403 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7409 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7411 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7475 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7477 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7483 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7485 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7491 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7493 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7499 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7566 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7572 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7574 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7580 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7582 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7588 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7590 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7596 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7650 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7652 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7658 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7660 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7666 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7668 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7674 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7732 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7738 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7740 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7746 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7748 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7754 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7756 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7812 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7814 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7820 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7822 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7828 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7830 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7886 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7892 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7894 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7900 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7902 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7908 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7954 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7956 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7962 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7964 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7970 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8021 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8027 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8029 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8035 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8037 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8086 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8088 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsTermOrPhrase2873 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTermOrPhrase2875 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2903 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2911 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2978 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2987 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase3048 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase3056 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase3106 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase3115 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_ftsExactTermOrPhrase3194 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsExactTermOrPhrase3222 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3224 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3252 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3260 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3327 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3336 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsExactTermOrPhrase3405 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3407 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3435 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3443 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3510 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3519 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3580 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3588 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3638 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3647 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3728 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsTokenisedTermOrPhrase3756 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3758 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3786 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3794 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3861 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3870 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsTokenisedTermOrPhrase3939 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3941 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3969 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4044 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4053 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase4114 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase4122 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4172 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_cmisTerm4254 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_cmisPhrase4308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReference_in_ftsRange4363 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsRange4365 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000030L}); + public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsRange4369 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReference_in_ftsFieldGroup4425 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsFieldGroup4427 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroup4429 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); + public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup4431 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroup4433 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction4518 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction4532 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4565 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4568 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4570 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4655 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4658 = new BitSet(new long[]{0x803C80000920A882L,0x0000016101124138L}); + public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4745 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_and_in_ftsFieldGroupExplicitConjunction4748 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4750 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_and_in_ftsFieldGroupImplicitConjunction4835 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4838 = new BitSet(new long[]{0x803C80000920A8B2L,0x0000016101104138L}); + public static final BitSet FOLLOW_not_in_ftsFieldGroupPrefixed4928 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4930 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4996 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4998 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PLUS_in_ftsFieldGroupPrefixed5062 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5064 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5066 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BAR_in_ftsFieldGroupPrefixed5130 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5132 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5134 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_MINUS_in_ftsFieldGroupPrefixed5198 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5200 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest5293 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest5359 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5369 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest5440 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5450 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest5521 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5531 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5602 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5612 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5683 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5693 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5764 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5774 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5845 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroupTest5905 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); + public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5907 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroupTest5909 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsFieldGroupTerm5962 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5995 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5997 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase6050 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase6091 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase6093 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase6154 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase6156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupSynonym6209 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym6211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6264 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); + public static final BitSet FOLLOW_proximityGroup_in_ftsFieldGroupProximity6274 = new BitSet(new long[]{0x803880000000A000L,0x0000014100004000L}); + public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6276 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L}); + public static final BitSet FOLLOW_ID_in_ftsFieldGroupProximityTerm6340 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm6352 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm6364 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm6376 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_ftsFieldGroupProximityTerm6388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TO_in_ftsFieldGroupProximityTerm6400 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm6412 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm6424 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm6436 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ftsFieldGroupProximityTerm6448 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_ftsFieldGroupProximityTerm6460 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_ftsFieldGroupProximityTerm6462 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_proximityGroup6495 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L}); + public static final BitSet FOLLOW_LPAREN_in_proximityGroup6498 = new BitSet(new long[]{0x0000000000008000L,0x0000000008000000L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup6500 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_proximityGroup6503 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6587 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_DOTDOT_in_ftsFieldGroupRange6589 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6591 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_range_left_in_ftsFieldGroupRange6629 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6631 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L}); + public static final BitSet FOLLOW_TO_in_ftsFieldGroupRange6633 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6635 = new BitSet(new long[]{0x2000000000000000L,0x0000000010000000L}); + public static final BitSet FOLLOW_range_right_in_ftsFieldGroupRange6637 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LSQUARE_in_range_left6696 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LT_in_range_left6728 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RSQUARE_in_range_right6781 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GT_in_range_right6813 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_fieldReference6866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_fieldReference6878 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_fieldReferenceWithoutPrefix6902 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); + public static final BitSet FOLLOW_uri_in_fieldReferenceWithoutPrefix6913 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_fieldReferenceWithoutPrefix6924 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_fieldReferenceWithPrefix7008 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_prefix_in_fieldReferenceWithPrefix7019 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_fieldReferenceWithPrefix7021 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_tempReference7104 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); + public static final BitSet FOLLOW_prefix_in_tempReference7133 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_uri_in_tempReference7153 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_tempReference7174 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_identifier_in_prefix7261 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_prefix7263 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_uri7344 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_identifier7446 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_DOT_in_identifier7448 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_ID_in_identifier7452 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_identifier7501 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TO_in_identifier7568 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OR_in_identifier7606 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AND_in_identifier7644 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_identifier7683 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord7801 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7807 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7809 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7815 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7817 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7823 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7825 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7831 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7833 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7899 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7901 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7907 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7909 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7915 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7917 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7923 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7925 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7931 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord7998 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8004 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8006 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8012 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8014 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8020 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8022 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8028 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8030 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8094 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8096 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8145 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8151 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8153 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8159 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8197 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8199 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8247 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8253 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8255 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8295 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8297 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8313 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8319 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8332 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_ftsWordBase8377 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWORD_in_ftsWordBase8389 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPRE_in_ftsWordBase8401 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWILD_in_ftsWordBase8414 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_ftsWordBase8427 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TO_in_ftsWordBase8439 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase8451 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase8463 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ftsWordBase8475 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_QUESTION_MARK_in_ftsWordBase8487 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DATETIME_in_ftsWordBase8499 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_ftsWordBase8511 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_ftsWordBase8513 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_ftsRangeWord8593 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWORD_in_ftsRangeWord8605 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPRE_in_ftsRangeWord8617 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWILD_in_ftsRangeWord8629 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsRangeWord8641 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord8653 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord8665 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DATETIME_in_ftsRangeWord8677 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ftsRangeWord8689 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_ftsRangeWord8701 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_ftsRangeWord8703 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_OR_in_or8738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BAR_in_or8750 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_BAR_in_or8752 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AND_in_and8785 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AMP_in_and8797 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_AMP_in_and8799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8096 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8102 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8104 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8110 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8112 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8118 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8120 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8185 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8191 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8193 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8199 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8201 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8207 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8209 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8215 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8269 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8271 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8277 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8279 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8285 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8287 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8293 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8351 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8357 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8359 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8365 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8367 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8373 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8375 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8431 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8433 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8439 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8441 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8447 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8449 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8505 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8511 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8513 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8519 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8521 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8573 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8575 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8581 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8583 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8589 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8640 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8646 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8648 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8654 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8656 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8705 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8707 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8713 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8715 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8764 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8770 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8772 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8778 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8816 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8818 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8824 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8866 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8872 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8874 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8914 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8916 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8932 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8938 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8951 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_ftsWordBase8996 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWORD_in_ftsWordBase9008 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPRE_in_ftsWordBase9020 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWILD_in_ftsWordBase9033 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_ftsWordBase9046 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TO_in_ftsWordBase9058 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase9070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase9082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ftsWordBase9094 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_QUESTION_MARK_in_ftsWordBase9106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DATETIME_in_ftsWordBase9118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_ftsWordBase9130 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_ftsWordBase9132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_ftsRangeWord9212 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWORD_in_ftsRangeWord9224 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPRE_in_ftsRangeWord9236 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWILD_in_ftsRangeWord9248 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsRangeWord9260 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord9272 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord9284 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DATETIME_in_ftsRangeWord9296 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ftsRangeWord9308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_ftsRangeWord9320 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_ftsRangeWord9322 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OR_in_or9357 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BAR_in_or9369 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_BAR_in_or9371 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AND_in_and9404 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AMP_in_and9416 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_AMP_in_and9418 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_not_in_synpred1_FTS1233 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred2_FTS1746 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ftsRange_in_synpred3_FTS1823 = new BitSet(new long[]{0x0000000000000002L}); @@ -26273,139 +32023,150 @@ public class FTSParser extends Parser { public static final BitSet FOLLOW_ftsTermOrPhrase_in_synpred5_FTS1951 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ftsExactTermOrPhrase_in_synpred6_FTS1980 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ftsTokenisedTermOrPhrase_in_synpred7_FTS2010 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_synpred8_FTS2683 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred8_FTS2683 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_COLON_in_synpred8_FTS2685 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_slop_in_synpred9_FTS2724 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_fuzzy_in_synpred10_FTS2799 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred11_FTS2869 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred12_FTS2927 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_synpred13_FTS3032 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred13_FTS3034 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred14_FTS3073 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred15_FTS3148 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred16_FTS3218 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred17_FTS3276 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_synpred18_FTS3383 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred18_FTS3385 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred19_FTS3424 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred20_FTS3499 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred21_FTS3569 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred22_FTS3627 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_not_in_synpred23_FTS4374 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred24_FTS4739 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_synpred25_FTS4805 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred26_FTS4815 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_synpred27_FTS4886 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred28_FTS4896 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_synpred29_FTS4967 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred30_FTS4977 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_synpred31_FTS5048 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred32_FTS5058 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred33_FTS5129 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred34_FTS5139 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_synpred35_FTS5210 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred36_FTS5220 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupRange_in_synpred37_FTS5291 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_proximityGroup_in_synpred38_FTS5720 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_prefix_in_synpred39_FTS6352 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_synpred40_FTS6807 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_DOT_in_synpred40_FTS6809 = new BitSet(new long[]{0x8000000000000000L}); - public static final BitSet FOLLOW_ID_in_synpred40_FTS6811 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred41_FTS7127 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred41_FTS7133 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred41_FTS7135 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred41_FTS7141 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred41_FTS7143 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred41_FTS7149 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred41_FTS7151 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred41_FTS7157 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred41_FTS7159 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred41_FTS7165 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred42_FTS7233 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred42_FTS7235 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred42_FTS7241 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred42_FTS7243 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred42_FTS7249 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred42_FTS7251 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred42_FTS7257 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_DOT_in_synpred42_FTS7259 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_COMMA_in_synpred42_FTS7261 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred42_FTS7263 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred43_FTS7326 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred43_FTS7332 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred43_FTS7334 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred43_FTS7340 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred43_FTS7342 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred43_FTS7348 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred43_FTS7350 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred43_FTS7356 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred43_FTS7358 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred44_FTS7428 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred44_FTS7430 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred44_FTS7436 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred44_FTS7438 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred44_FTS7444 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred44_FTS7446 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred44_FTS7452 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred44_FTS7454 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred45_FTS7519 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred45_FTS7525 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred45_FTS7527 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred45_FTS7533 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred45_FTS7535 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred45_FTS7541 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred45_FTS7543 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred45_FTS7549 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred46_FTS7609 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred46_FTS7611 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred46_FTS7617 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred46_FTS7619 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred46_FTS7625 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred46_FTS7627 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred46_FTS7633 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred47_FTS7687 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred47_FTS7693 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred47_FTS7695 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred47_FTS7701 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred47_FTS7703 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred47_FTS7709 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred47_FTS7711 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred48_FTS7773 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred48_FTS7775 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred48_FTS7781 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred48_FTS7783 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred48_FTS7789 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred48_FTS7791 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7847 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7853 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7855 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7861 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7863 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7869 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7921 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred50_FTS7923 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7929 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred50_FTS7931 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7937 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7984 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7990 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7992 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7998 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS8000 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8054 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred52_FTS8056 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8062 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred52_FTS8064 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred53_FTS8114 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8120 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred53_FTS8122 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8128 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8172 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred54_FTS8174 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8180 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred55_FTS8218 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8224 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred55_FTS8226 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8272 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred56_FTS8274 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred11_FTS2866 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred11_FTS2868 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred12_FTS2907 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred13_FTS2982 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred14_FTS3052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred15_FTS3110 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred16_FTS3215 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred16_FTS3217 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred17_FTS3256 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred18_FTS3331 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred19_FTS3398 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred19_FTS3400 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred20_FTS3439 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred21_FTS3514 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred22_FTS3584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred23_FTS3642 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred24_FTS3749 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred24_FTS3751 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred25_FTS3790 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred26_FTS3865 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred27_FTS3932 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred27_FTS3934 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred28_FTS3973 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred29_FTS4048 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred30_FTS4118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred31_FTS4176 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_not_in_synpred32_FTS4923 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred33_FTS5288 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_synpred34_FTS5354 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred35_FTS5364 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_synpred36_FTS5435 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred37_FTS5445 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_synpred38_FTS5516 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred39_FTS5526 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_synpred40_FTS5597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred41_FTS5607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred42_FTS5678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred43_FTS5688 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_synpred44_FTS5759 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred45_FTS5769 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupRange_in_synpred46_FTS5840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_proximityGroup_in_synpred47_FTS6269 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_synpred48_FTS7426 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_DOT_in_synpred48_FTS7428 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_ID_in_synpred48_FTS7430 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7746 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7752 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7754 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7760 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7762 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7768 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7770 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7776 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7778 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7784 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7852 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred50_FTS7854 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7860 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred50_FTS7862 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7868 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred50_FTS7870 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7876 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_DOT_in_synpred50_FTS7878 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_COMMA_in_synpred50_FTS7880 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7882 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7945 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7951 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7953 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7959 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7961 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7967 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7969 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7975 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8047 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8049 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8055 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8057 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8063 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8065 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8071 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8073 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8138 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8144 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8146 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8152 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8154 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8160 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8162 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8168 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8228 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred54_FTS8230 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8236 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred54_FTS8238 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8244 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred54_FTS8246 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8252 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8306 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8312 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8314 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8320 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8322 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8328 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8330 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8392 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred56_FTS8394 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8400 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred56_FTS8402 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8408 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred56_FTS8410 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred57_FTS8466 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8472 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred57_FTS8474 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8480 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred57_FTS8482 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8488 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8540 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred58_FTS8542 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8548 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred58_FTS8550 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8556 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred59_FTS8603 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred59_FTS8609 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred59_FTS8611 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred59_FTS8617 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred59_FTS8619 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred60_FTS8673 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred60_FTS8675 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred60_FTS8681 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred60_FTS8683 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred61_FTS8733 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred61_FTS8739 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred61_FTS8741 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred61_FTS8747 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred62_FTS8791 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred62_FTS8793 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred62_FTS8799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred63_FTS8837 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred63_FTS8843 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred63_FTS8845 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred64_FTS8891 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred64_FTS8893 = new BitSet(new long[]{0x0000000000000002L}); } diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/README.md b/src/main/java/org/alfresco/repo/search/impl/parsers/README.md new file mode 100644 index 0000000000..2571c7d6e7 --- /dev/null +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/README.md @@ -0,0 +1,46 @@ +# Antlr Grammars + +The grammar files in this package (e.g. `FTS.g`) are written using the Antlr 3 syntax. +The java lexer and parser files are generated from the grammar files, along with the files +containing the tokens. + +The easiest way to make changes to the grammar files is by using +[AntlrWorks 1.5](https://www.antlr3.org/download.html). This can be used to step through the +evaluations made while parsing troublesome input, and can help visualise the resulting +decision tree. AntlrWorks includes a menu option to compile the grammar, and will generate +replacements for the existing files. + +AntlrWorks will fail to parse the grammar file if it contains references to unknown classes +(for example FTS.g contains references to MismatchedTokenException and FTSQueryException). +To work around this issue then temporarily replace these exceptions with RuntimeExceptions. +Once changes to the grammar have been completed then these can either be manually fixed in +the generated output or compilation can be done via the command line. This requires the +[antlr jar](http://www.antlr3.org/download/antlr-3.5.2-complete-no-st3.jar) to be downloaded: +```bash +java -jar ~/Downloads/antlr-3.5.2-complete-no-st3.jar -o . src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g +``` + +For some grammars then Antlr generates Java files that cannot be compiled due to the +64KB limit on methods. Attempting to compile this code will result in the error "Code too +large". In particular this is true of [FTS.g](FTS.g). To work around this issue then once +the code has been generated using Antlr it must be refactored to ensure no single method is +too large. For example, in [FTSParser.java](FTSParser.java) several larger blocks of code +have been manually extracted to smaller methods that look like: +```java + private int specialStateTransition7(int LA17_9) + { + int s; + s = -1; + if ( (LA17_9==STAR) ) {s = 25;} + else if ( (LA17_9==DOTDOT) && (synpred3_FTS())) {s = 27;} + else if ( (LA17_9==COMMA||LA17_9==DOT) && (synpred5_FTS())) {s = 28;} + ... + else if ( (LA17_9==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } +``` + +To verify the grammar behaves how we expect then there are unit tests in +`org.alfresco.repo.search.impl.parsers`. These use gunit files to specify expected input and +output pairs for different entry points in the grammar. More details about guint file can +be found on the [Antlr 3 wiki](https://theantlrguy.atlassian.net/wiki/spaces/ANTLR3/pages/2687338/gUnit+-+Grammar+Unit+Testing). diff --git a/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit b/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit index feca453d73..0741a7ecf7 100644 --- a/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit +++ b/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit @@ -60,6 +60,7 @@ ftsQuery: "10" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM 10))))" "-10" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM -10))))" "cm_content.mimetype:\"text/plain\"" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (PHRASE \"text/plain\" (FIELD_REF cm_content.mimetype)))))" +"name:file.txt" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM file . txt (FIELD_REF name)))))" "10.10.pdf" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM 10 . 10 . pdf))))" "TYPE:cm:content" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM content (FIELD_REF cm (PREFIX TYPE))))))" "TYPE:content" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM content (FIELD_REF TYPE)))))" @@ -190,8 +191,10 @@ ftsTest: ftsTermOrPhrase: "name:woof" -> "(TERM woof (FIELD_REF name))" +"name:woof.txt" -> "(TERM woof . txt (FIELD_REF name))" "cm_name:woof" -> "(TERM woof (FIELD_REF cm_name))" "cm:name:woof" -> "(TERM woof (FIELD_REF name (PREFIX cm)))" +"content.mimetype:woof.txt" -> "(TERM woof . txt (FIELD_REF content.mimetype))" "{http://www.alfresco.org/model/content/1.0}name:woof" -> "(TERM woof (FIELD_REF name (NAME_SPACE {http://www.alfresco.org/model/content/1.0})))" "\"zebra\"" -> "(PHRASE \"zebra\")" "'zebra'" -> "(PHRASE 'zebra')" @@ -204,8 +207,10 @@ ftsTermOrPhrase: ftsExactTermOrPhrase: "=name:woof" -> "(EXACT_TERM woof (FIELD_REF name))" +"=name:woof.txt" -> "(EXACT_TERM woof . txt (FIELD_REF name))" "=cm_name:woof" -> "(EXACT_TERM woof (FIELD_REF cm_name))" "=cm:name:woof" -> "(EXACT_TERM woof (FIELD_REF name (PREFIX cm)))" +"=content.mimetype:woof.txt" -> "(EXACT_TERM woof . txt (FIELD_REF content.mimetype))" "={http://www.alfresco.org/model/content/1.0}name:woof" -> "(EXACT_TERM woof (FIELD_REF name (NAME_SPACE {http://www.alfresco.org/model/content/1.0})))" @@ -213,8 +218,10 @@ ftsExactTermOrPhrase: ftsTokenisedTermOrPhrase: "~woof" -> "(TERM woof)" "~name:woof" -> "(TERM woof (FIELD_REF name))" +"~name:woof.txt" -> "(TERM woof . txt (FIELD_REF name))" "~cm_name:woof" -> "(TERM woof (FIELD_REF cm_name))" "~cm:name:woof" -> "(TERM woof (FIELD_REF name (PREFIX cm)))" +"~content.mimetype:woof.txt" -> "(TERM woof . txt (FIELD_REF content.mimetype))" "~{http://www.alfresco.org/model/content/1.0}name:woof" -> "(TERM woof (FIELD_REF name (NAME_SPACE {http://www.alfresco.org/model/content/1.0})))" From 6989aeac22e9dd186176b00c8459065ecb325c62 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 22 Nov 2019 17:11:51 +0000 Subject: [PATCH 018/123] [maven-release-plugin][skip ci] prepare release 8.55 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 058967717a..5decde270c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.55-SNAPSHOT + 8.55 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.55 From ad483d8ea42b56dc84eebb770021e064b8bcff23 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 22 Nov 2019 17:11:57 +0000 Subject: [PATCH 019/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5decde270c..9863f70fc2 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.55 + 8.56-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.55 + HEAD From 6ec64384b9ff28a103a76fd2311e2b301fc5d7ff Mon Sep 17 00:00:00 2001 From: Abdul Mohammed Date: Thu, 28 Nov 2019 10:08:42 +0000 Subject: [PATCH 020/123] Bump alfresco-core to 7.23 to Exclude spring-jcl sub-module (#175) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9863f70fc2..39afe3de08 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 7.22 + 7.23 3.3.3 From 082ff40ee3c6b77d676a293673e310f46fd77654 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 10:15:42 +0000 Subject: [PATCH 021/123] [maven-release-plugin][skip ci] prepare release 8.56 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 39afe3de08..ee25bc02ad 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.56-SNAPSHOT + 8.56 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.56 From 5e552afc4f4d4406b958195ec348dc0703a33f78 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 10:15:48 +0000 Subject: [PATCH 022/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ee25bc02ad..dcae730ab1 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.56 + 8.57-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.56 + HEAD From 9951d054d9a65f43765f4c0fab202d4f4ab4390c Mon Sep 17 00:00:00 2001 From: Kristian Dimitrov Date: Thu, 28 Nov 2019 11:28:01 +0000 Subject: [PATCH 023/123] Fix/repo-4792 - Alfresco/transforms and alfresco/renditions can't read path-to-jar on Windows systems (#176) Make path to .jar containing .json config for alfresco/transforms and alfresco/renditions OS agnostic. --- .travis.yml | 2 +- src/main/java/org/alfresco/util/ConfigFileFinder.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index bb9bf510b1..6746592975 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,4 +43,4 @@ jobs: # Add email to link commits to user - git config user.email "${GIT_EMAIL}" # Skip building of release commits - - mvn --batch-mode -q -DscmCommentPrefix="[maven-release-plugin][skip ci] " -Dusername="${GIT_USERNAME}" -Dpassword="${GIT_PASSWORD}" -DskipTests -Darguments=-DskipTests release:clean release:prepare release:perform \ No newline at end of file + - mvn --batch-mode -q -DscmCommentPrefix="[maven-release-plugin][skip ci] " -Dusername="${GIT_USERNAME}" -Dpassword="${GIT_PASSWORD}" -DskipTests -Darguments=-DskipTests release:clean release:prepare release:perform diff --git a/src/main/java/org/alfresco/util/ConfigFileFinder.java b/src/main/java/org/alfresco/util/ConfigFileFinder.java index 5b89a3a375..f097bb743a 100644 --- a/src/main/java/org/alfresco/util/ConfigFileFinder.java +++ b/src/main/java/org/alfresco/util/ConfigFileFinder.java @@ -37,6 +37,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; @@ -81,7 +82,7 @@ public abstract class ConfigFileFinder AtomicBoolean somethingRead = new AtomicBoolean(false); // Try reading resources in a jar - final File jarFile = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()); + final File jarFile = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()); if (jarFile.isFile()) { readFromJar(jarFile, path, log, successReadingConfig, somethingRead); @@ -108,7 +109,7 @@ public abstract class ConfigFileFinder log.debug("No config read from "+path); } } - catch (IOException e) + catch (IOException | URISyntaxException e) { log.error("Error reading from "+path, e); successReadingConfig.set(false); From 70e3106cc01a9fcb9d3847bbd82ef2e6d0fefb66 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 11:32:42 +0000 Subject: [PATCH 024/123] [maven-release-plugin][skip ci] prepare release 8.57 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index dcae730ab1..000fbd977f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.57-SNAPSHOT + 8.57 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.57 From 57e2abc13a1368ae6c6a82ec999cc0d5cb65312a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 11:32:48 +0000 Subject: [PATCH 025/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 000fbd977f..143e9b7e3c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.57 + 8.58-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.57 + HEAD From 965598f98911866605c964755d2ff230abf88391 Mon Sep 17 00:00:00 2001 From: Cristian Turlica Date: Tue, 3 Dec 2019 10:24:35 +0200 Subject: [PATCH 026/123] REPO-4751: Upgrade to Spring 5.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 143e9b7e3c..a6e1ccf4da 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 7.23 + 7.24 3.3.3 From 4b05f0e645fe19b32082fd92b909570e2607df9e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 3 Dec 2019 08:29:20 +0000 Subject: [PATCH 027/123] [maven-release-plugin][skip ci] prepare release 8.58 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a6e1ccf4da..aa9ef04ef0 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.58-SNAPSHOT + 8.58 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.58 From 86ff95da2ad296b420bd42da54bba5d6c9a34af6 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 3 Dec 2019 08:29:26 +0000 Subject: [PATCH 028/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index aa9ef04ef0..b7e18693eb 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.58 + 8.59-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.58 + HEAD From 9cc5479b76dce3421b332b4ea7888681bce52a15 Mon Sep 17 00:00:00 2001 From: cturlica Date: Tue, 3 Dec 2019 17:44:28 +0200 Subject: [PATCH 029/123] REPO-4751: Upgrade to Spring 5.2 - upgrade alfresco core to 8.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7e18693eb..9cc8a99939 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 7.24 + 8.0 3.3.3 From bdf77b827e18ceeba6fe31ff5e753cfb85a104da Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 3 Dec 2019 15:49:07 +0000 Subject: [PATCH 030/123] [maven-release-plugin][skip ci] prepare release 8.59 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9cc8a99939..8ee62d6928 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.59-SNAPSHOT + 8.59 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.59 From 062630859cfdab44179cf61bfdf78308e1265e70 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 3 Dec 2019 15:49:13 +0000 Subject: [PATCH 031/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8ee62d6928..1e7cf4b79d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.59 + 8.60-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.59 + HEAD From 886647cc138d6615a8a91483103da56261ed7b60 Mon Sep 17 00:00:00 2001 From: cturlica Date: Wed, 4 Dec 2019 11:52:48 +0200 Subject: [PATCH 032/123] REPO-4751: Upgrade to Spring 5.2 - update core (spring 5.2.2) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1e7cf4b79d..d2f073a45f 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.0 + 8.2 3.3.3 From f1b2f8c78829f9a22c6337032d3ed633769ae186 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 4 Dec 2019 09:57:34 +0000 Subject: [PATCH 033/123] [maven-release-plugin][skip ci] prepare release 8.60 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d2f073a45f..6e14d44d72 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.60-SNAPSHOT + 8.60 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.60 From 0bc6d37eff8b588eaba9775aded51be9594003aa Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 4 Dec 2019 09:57:40 +0000 Subject: [PATCH 034/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6e14d44d72..be5abf81be 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.60 + 8.61-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.60 + HEAD From 4e16095bfd88b61e0b6c2c599aae204b83ec597c Mon Sep 17 00:00:00 2001 From: NITHIN NAMBIAR Date: Thu, 12 Dec 2019 14:41:40 +0000 Subject: [PATCH 035/123] repo-4061 update mockito library (#163) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index be5abf81be..2eb8b9d5e6 100644 --- a/pom.xml +++ b/pom.xml @@ -371,8 +371,8 @@ org.mockito - mockito-all - 1.10.19 + mockito-core + 3.0.0 test From 5586204196f4e40e62532cbc18d8518e37197bda Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 12 Dec 2019 15:08:50 +0000 Subject: [PATCH 036/123] [maven-release-plugin][skip ci] prepare release 8.61 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2eb8b9d5e6..fb5b0d9b07 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.61-SNAPSHOT + 8.61 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.61 From 764189e322f273e315eb08871a7681f8e9a9aba0 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 12 Dec 2019 15:08:56 +0000 Subject: [PATCH 037/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fb5b0d9b07..8ecf2bb1d3 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.61 + 8.62-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.61 + HEAD From 3b1cb6958b31036374030c6e3a5457d21f178ce6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2019 10:17:43 +0000 Subject: [PATCH 038/123] Bump maven-jar-plugin from 3.1.2 to 3.2.0 (#171) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8ecf2bb1d3..38123b31ba 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ maven-jar-plugin - 3.1.2 + 3.2.0 From fba8c2480458633c7919cd5d2b5ff1f425bec462 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 10:22:20 +0000 Subject: [PATCH 039/123] [maven-release-plugin][skip ci] prepare release 8.62 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 38123b31ba..d78c195812 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.62-SNAPSHOT + 8.62 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.62 From 12c5befa422b98827df75af47fea4cfd47f87d0a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 10:22:26 +0000 Subject: [PATCH 040/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d78c195812..f4a5bf75c0 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.62 + 8.63-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.62 + HEAD From 906614ab2978e970f0ae566eafeb2b6e1db145a4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2019 10:22:40 +0000 Subject: [PATCH 041/123] Bump jackson-annotations from 2.10.0 to 2.10.1 (#173) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f4a5bf75c0..a614def26f 100644 --- a/pom.xml +++ b/pom.xml @@ -240,7 +240,7 @@ com.fasterxml.jackson.core jackson-annotations - 2.10.0 + 2.10.1 From 2b965ded5e6f378698bdbf3604ace723a8ce4089 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 10:27:08 +0000 Subject: [PATCH 042/123] [maven-release-plugin][skip ci] prepare release 8.63 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a614def26f..383fb2555a 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.63-SNAPSHOT + 8.63 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.63 From 3172f36e94d0384aec47c3f0638835e6cd4a3789 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 10:27:14 +0000 Subject: [PATCH 043/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 383fb2555a..3e7b9348b6 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.63 + 8.64-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.63 + HEAD From c38bc47bc88361b145f64a67c2abcbd7e5b9d21c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2019 10:28:41 +0000 Subject: [PATCH 044/123] Bump jackson-core from 2.10.0 to 2.10.1 (#172) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3e7b9348b6..fe1b30c01d 100644 --- a/pom.xml +++ b/pom.xml @@ -234,7 +234,7 @@ com.fasterxml.jackson.core jackson-core - 2.10.0 + 2.10.1 From 10116135fcfde454111dc5a61d6d1714e2c8b172 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 10:32:55 +0000 Subject: [PATCH 045/123] [maven-release-plugin][skip ci] prepare release 8.64 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fe1b30c01d..29b17854c6 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.64-SNAPSHOT + 8.64 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.64 From c56b9ef2881e17e9e3c12ac2a9f7768f6e1b5167 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 10:33:02 +0000 Subject: [PATCH 046/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 29b17854c6..6ebeb6c478 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.64 + 8.65-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.64 + HEAD From 35423d4a134e98bfe1420391fe78a470880a7657 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2019 14:35:32 +0000 Subject: [PATCH 047/123] Bump dependency.cxf.version from 3.3.3 to 3.3.4 (#169) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6ebeb6c478..a8b1bf5fc0 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 8.2 - 3.3.3 + 3.3.4 source/java/org/alfresco/repo/search/impl/parsers/CMIS*er.java, From c105027855af4b89857989afa4d804068c3188f9 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 14:40:11 +0000 Subject: [PATCH 048/123] [maven-release-plugin][skip ci] prepare release 8.65 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a8b1bf5fc0..fa18b101bd 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.65-SNAPSHOT + 8.65 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.65 From d74ffb789221d12185d5cc0ca7798b743c45b0e3 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 14:40:19 +0000 Subject: [PATCH 049/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fa18b101bd..9862125b62 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.65 + 8.66-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.65 + HEAD From 83f1f4a097f1ab198424b35527eb773b5715d7e5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2019 14:40:25 +0000 Subject: [PATCH 050/123] Bump bcmail-jdk15on from 1.63 to 1.64 (#165) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9862125b62..49a5fdd6c2 100644 --- a/pom.xml +++ b/pom.xml @@ -171,7 +171,7 @@ org.bouncycastle bcmail-jdk15on - 1.63 + 1.64 From 6e498edc3f7fdb0a50e82237467a61a38fb14c96 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 14:45:28 +0000 Subject: [PATCH 051/123] [maven-release-plugin][skip ci] prepare release 8.66 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 49a5fdd6c2..9f7bcccec8 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.66-SNAPSHOT + 8.66 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.66 From aaccd841af8e45f6ba3fb196f6d4c22b941c705c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 13 Dec 2019 14:45:34 +0000 Subject: [PATCH 052/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9f7bcccec8..f74ae35523 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.66 + 8.67-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.66 + HEAD From 0cd28750b35866c1219c8b1445d20a3fb8f3574f Mon Sep 17 00:00:00 2001 From: alandavis Date: Mon, 16 Dec 2019 09:44:39 +0000 Subject: [PATCH 053/123] Repo-4846 bump xpp3 1.1.3_8 to 1.1.4c (#180) - 1.1.3.4-RC8 Jul 2006 was green (1.1.3.4 did not exist). Now using 1.1.4c Dec 2007 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f74ae35523..5ca9809f32 100644 --- a/pom.xml +++ b/pom.xml @@ -313,7 +313,7 @@ xpp3 xpp3 - 1.1.3_8 + 1.1.4c From 88dd13cb1371e8e72c9cfcdd9072f4ab8e9b3838 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 16 Dec 2019 09:49:26 +0000 Subject: [PATCH 054/123] [maven-release-plugin][skip ci] prepare release 8.67 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5ca9809f32..567a755c89 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.67-SNAPSHOT + 8.67 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.67 From 134b4ac832155d9749086308838e58824c50acf4 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 16 Dec 2019 09:49:33 +0000 Subject: [PATCH 055/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 567a755c89..d082e85a71 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.67 + 8.68-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.67 + HEAD From 4579be5f396dee3ceb70836fd09d8aad31ccff4a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2019 11:39:20 +0000 Subject: [PATCH 056/123] Bump alfresco-core from 8.2 to 8.6 (#182) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d082e85a71..f7dc00e00f 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.2 + 8.6 3.3.4 From 2be2f9b431335862ca7033a0f40efdc357e7941d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 16 Dec 2019 12:36:15 +0000 Subject: [PATCH 057/123] [maven-release-plugin][skip ci] prepare release 8.68 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f7dc00e00f..b3650c137d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.68-SNAPSHOT + 8.68 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.68 From 742f2e0345f57dc31b0cfd5e4de17dafa51c4bed Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 16 Dec 2019 12:36:21 +0000 Subject: [PATCH 058/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index b3650c137d..4d22c1f6fe 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.68 + 8.69-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.68 + HEAD From 5afcd193c003df49dd56d1037f2eba35a4a7a82f Mon Sep 17 00:00:00 2001 From: Antonio Felix Date: Mon, 16 Dec 2019 17:43:36 +0000 Subject: [PATCH 059/123] REPO-4879 - Remove library org.apache.commons:commons-lang3 from alfresco-data-model project --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 4d22c1f6fe..9be45ff9e4 100644 --- a/pom.xml +++ b/pom.xml @@ -282,11 +282,6 @@ - - org.apache.commons - commons-lang3 - 3.9 - org.codehaus.woodstox woodstox-core-asl From 926a65bb61da632a2eeb5250f370d0674aa7ad88 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 12:32:18 +0000 Subject: [PATCH 060/123] Bump mockito-core from 3.0.0 to 3.2.4 (#190) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4d22c1f6fe..cd37da2d1d 100644 --- a/pom.xml +++ b/pom.xml @@ -372,7 +372,7 @@ org.mockito mockito-core - 3.0.0 + 3.2.4 test From 30328942961e448690e92107f5cf38b67b8a2469 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 18 Dec 2019 12:36:47 +0000 Subject: [PATCH 061/123] [maven-release-plugin][skip ci] prepare release 8.69 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index cd37da2d1d..d8681a429d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.69-SNAPSHOT + 8.69 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.69 From 9fd6cfc50b12d0c08cc46f4d606f721c265f474e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 18 Dec 2019 12:36:53 +0000 Subject: [PATCH 062/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d8681a429d..b9665954c7 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.69 + 8.70-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.69 + HEAD From dbaf16010ba34125ed91e64f645e9151e27f115e Mon Sep 17 00:00:00 2001 From: Alexandru-Eusebiu Epure Date: Wed, 18 Dec 2019 15:25:44 +0200 Subject: [PATCH 063/123] Bump pdfbox from 2.0.15 to 2.0.17 (#191) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9665954c7..87864939af 100644 --- a/pom.xml +++ b/pom.xml @@ -201,7 +201,7 @@ org.apache.pdfbox pdfbox - 2.0.15 + 2.0.17 From 638a16109f2e89e55ffefc674f7a8c45987a9a0a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 18 Dec 2019 13:31:45 +0000 Subject: [PATCH 064/123] [maven-release-plugin][skip ci] prepare release 8.70 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 87864939af..1b9845c878 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.70-SNAPSHOT + 8.70 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.70 From c1c2056eea383c1bfd8926b5953554b9eea39f78 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 18 Dec 2019 13:31:51 +0000 Subject: [PATCH 065/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1b9845c878..04f966263c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.70 + 8.71-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.70 + HEAD From db33e3cfa19c3682f5cb18359c7d920c2dc66a2d Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Thu, 19 Dec 2019 13:59:29 +0000 Subject: [PATCH 066/123] Pick up upstream projects --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 04f966263c..3dff9060b6 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.6 + 8.8 3.3.4 From 0d4f087dff06084140e1554c26a434af40a76f2b Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 19 Dec 2019 14:04:12 +0000 Subject: [PATCH 067/123] [maven-release-plugin][skip ci] prepare release 8.71 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3dff9060b6..3e3ab9700f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.71-SNAPSHOT + 8.71 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.71 From f002e64e69a52bf2fd4499569c6637ced4e6fc05 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 19 Dec 2019 14:04:18 +0000 Subject: [PATCH 068/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3e3ab9700f..3c7c860739 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.71 + 8.72-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.71 + HEAD From fc7accb341b1a9811e4a9b21573852ef1c3cccf3 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Thu, 19 Dec 2019 17:22:11 +0000 Subject: [PATCH 069/123] Pick up upstream projects --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3c7c860739..f09354f5c7 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.8 + 8.9 3.3.4 From fd8de033bfd74ea9ebe2ad6e9321aec27559a651 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 19 Dec 2019 17:27:05 +0000 Subject: [PATCH 070/123] [maven-release-plugin][skip ci] prepare release 8.72 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f09354f5c7..1e1ad79840 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.72-SNAPSHOT + 8.72 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.72 From 97cef5d5b5f6968cf40be0f8782decda8ddecf2e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 19 Dec 2019 17:27:11 +0000 Subject: [PATCH 071/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1e1ad79840..5b08f45a95 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.72 + 8.73-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.72 + HEAD From a73e79fa332863a5a8eadada0806e0882ba73ea0 Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Fri, 27 Dec 2019 09:56:30 +0100 Subject: [PATCH 072/123] Fix/search 1623 (#196) * [SEARCH-1623] Modified grammar and generated new Lexer and Parser(Modified for the too long method problem) * [SEARCH-1623] Added test case for testing name-dash identifiers * [SEARCH-1623] removed local references from FTSParser comments --- .../alfresco/repo/search/impl/parsers/FTS.g | 4906 ++-- .../repo/search/impl/parsers/FTSLexer.java | 21700 +++++++++++----- .../repo/search/impl/parsers/FTSParser.java | 3329 ++- .../repo/search/impl/parsers/fts_test.gunit | 2 + 4 files changed, 18752 insertions(+), 11185 deletions(-) diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g b/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g index 1fd5dfd0d3..17fcbd30a8 100644 --- a/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g @@ -1,2453 +1,2453 @@ -/* - * Copyright (C) 2005-2015 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ -/* - * Parser for the Alfresco full text query language. - * It may be used stand-alone or embedded, for example, in CMIS SQL contains() - * - */ - -grammar FTS; - -options -{ - output = AST; - backtrack = false; - memoize = false; -} -/* - * Additional tokens for tree building. - */ - - -tokens -{ - FTS; - DISJUNCTION; - CONJUNCTION; - NEGATION; - TERM; - EXACT_TERM; - PHRASE; - EXACT_PHRASE; - SYNONYM; - RANGE; - PROXIMITY; - DEFAULT; - MANDATORY; - OPTIONAL; - EXCLUDE; - FIELD_DISJUNCTION; - FIELD_CONJUNCTION; - FIELD_NEGATION; - FIELD_GROUP; - FIELD_DEFAULT; - FIELD_MANDATORY; - FIELD_OPTIONAL; - FIELD_EXCLUDE; - FG_TERM; - FG_EXACT_TERM; - FG_PHRASE; - FG_EXACT_PHRASE; - FG_SYNONYM; - FG_PROXIMITY; - FG_RANGE; - FIELD_REF; - INCLUSIVE; - EXCLUSIVE; - QUALIFIER; - PREFIX; - NAME_SPACE; - BOOST; - FUZZY; - TEMPLATE; -} -/* - * Make sure the lexer and parser are generated in the correct package - */ - - -@lexer::header -{ -package org.alfresco.repo.search.impl.parsers; -} - -@header -{ -package org.alfresco.repo.search.impl.parsers; -} -/* - * Embeded java to control the default connective when not specified. - * - * Do not support recover from errors - * - * Add extra detail to teh error message - */ - - -@members -{ - public enum Mode - { - CMIS, DEFAULT_CONJUNCTION, DEFAULT_DISJUNCTION - } - - private Stack paraphrases = new Stack(); - - private boolean defaultFieldConjunction = true; - - private Mode mode = Mode.DEFAULT_CONJUNCTION; - - public Mode getMode() - { - return mode; - } - - public void setMode(Mode mode) - { - this.mode = mode; - } - - public boolean defaultFieldConjunction() - { - return defaultFieldConjunction; - } - - public void setDefaultFieldConjunction(boolean defaultFieldConjunction) - { - this.defaultFieldConjunction = defaultFieldConjunction; - } - - protected Object recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow) throws RecognitionException - { - throw new MismatchedTokenException(ttype, input); - } - - public Object recoverFromMismatchedSet(IntStream input, RecognitionException e, BitSet follow) throws RecognitionException - { - throw e; - } - - public String getErrorMessage(RecognitionException e, String[] tokenNames) - { - List stack = getRuleInvocationStack(e, this.getClass().getName()); - String msg = e.getMessage(); - if ( e instanceof UnwantedTokenException ) - { - UnwantedTokenException ute = (UnwantedTokenException)e; - String tokenName=""; - if ( ute.expecting== Token.EOF ) - { - tokenName = "EOF"; - } - else - { - tokenName = tokenNames[ute.expecting]; - } - msg = "extraneous input " + getTokenErrorDisplay(ute.getUnexpectedToken()) - + " expecting "+tokenName; - } - else if ( e instanceof MissingTokenException ) - { - MissingTokenException mte = (MissingTokenException)e; - String tokenName=""; - if ( mte.expecting== Token.EOF ) - { - tokenName = "EOF"; - } - else - { - tokenName = tokenNames[mte.expecting]; - } - msg = "missing " + tokenName+" at " + getTokenErrorDisplay(e.token) - + " (" + getLongTokenErrorDisplay(e.token) +")"; - } - else if ( e instanceof MismatchedTokenException ) - { - MismatchedTokenException mte = (MismatchedTokenException)e; - String tokenName=""; - if ( mte.expecting== Token.EOF ) - { - tokenName = "EOF"; - } - else - { - tokenName = tokenNames[mte.expecting]; - } - msg = "mismatched input " + getTokenErrorDisplay(e.token) - + " expecting " + tokenName +" (" + getLongTokenErrorDisplay(e.token) + ")"; - } - else if ( e instanceof MismatchedTreeNodeException ) - { - MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e; - String tokenName=""; - if ( mtne.expecting==Token.EOF ) - { - tokenName = "EOF"; - } - else - { - tokenName = tokenNames[mtne.expecting]; - } - msg = "mismatched tree node: " + mtne.node + " expecting " + tokenName; - } - else if ( e instanceof NoViableAltException ) - { - NoViableAltException nvae = (NoViableAltException)e; - msg = "no viable alternative at input " + getTokenErrorDisplay(e.token) - + "\n\t (decision=" + nvae.decisionNumber - + " state " + nvae.stateNumber + ")" - + " decision=<<" + nvae.grammarDecisionDescription + ">>"; - } - else if ( e instanceof EarlyExitException ) - { - //EarlyExitException eee = (EarlyExitException)e; - // for development, can add "(decision="+eee.decisionNumber+")" - msg = "required (...)+ loop did not match anything at input " + getTokenErrorDisplay(e.token); - } - else if ( e instanceof MismatchedSetException ) - { - MismatchedSetException mse = (MismatchedSetException)e; - msg = "mismatched input " + getTokenErrorDisplay(e.token) - + " expecting set " + mse.expecting; - } - else if ( e instanceof MismatchedNotSetException ) - { - MismatchedNotSetException mse = (MismatchedNotSetException)e; - msg = "mismatched input " + getTokenErrorDisplay(e.token) - + " expecting set " + mse.expecting; - } - else if ( e instanceof FailedPredicateException ) - { - FailedPredicateException fpe = (FailedPredicateException)e; - msg = "rule " + fpe.ruleName + " failed predicate: {" + fpe.predicateText + "}?"; - } - - if(paraphrases.size() > 0) - { - String paraphrase = (String)paraphrases.peek(); - msg = msg+" "+paraphrase; - } - return msg +"\n\t"+stack; - } - - public String getLongTokenErrorDisplay(Token t) - { - return t.toString(); - } - - - public String getErrorString(RecognitionException e) - { - String hdr = getErrorHeader(e); - String msg = getErrorMessage(e, this.getTokenNames()); - return hdr+" "+msg; - } -} -/* - * Always throw exceptions - */ - - -@rulecatch -{ -catch(RecognitionException e) -{ - throw e; -} -} -/* - * Support for emitting duplicate tokens from the lexer - * - required to emit ranges after matching floating point literals ... - */ - - -@lexer::members -{ -List tokens = new ArrayList(); -public void emit(Token token) { - state.token = token; - tokens.add(token); -} -public Token nextToken() { - nextTokenImpl(); - if ( tokens.size()==0 ) { - return getEOFToken(); - } - return (Token)tokens.remove(0); -} - -public Token nextTokenImpl() { - while (true) - { - state.token = null; - state.channel = Token.DEFAULT_CHANNEL; - state.tokenStartCharIndex = input.index(); - state.tokenStartCharPositionInLine = input.getCharPositionInLine(); - state.tokenStartLine = input.getLine(); - state.text = null; - if ( input.LA(1)==CharStream.EOF ) - { - return getEOFToken(); - } - try - { - mTokens(); - if ( state.token==null ) - { - emit(); - } - else if ( state.token==Token.SKIP_TOKEN ) - { - continue; - } - return state.token; - } - catch (RecognitionException re) - { - throw new FTSQueryException(getErrorString(re), re); - } - } - } - - public String getErrorString(RecognitionException e) - { - String hdr = getErrorHeader(e); - String msg = getErrorMessage(e, this.getTokenNames()); - return hdr+" "+msg; - } -} - - -/* - * Top level query - */ - - -ftsQuery - : - ftsDisjunction EOF - -> ftsDisjunction - ; -/* - * "OR" - * As SQL, OR has lower precedence than AND - */ - - -ftsDisjunction - : - {getMode() == Mode.CMIS}? cmisExplicitDisjunction - | {getMode() == Mode.DEFAULT_CONJUNCTION}? ftsExplicitDisjunction - | {getMode() == Mode.DEFAULT_DISJUNCTION}? ftsImplicitDisjunction - ; - -ftsExplicitDisjunction - : - ftsImplicitConjunction (or ftsImplicitConjunction)* - -> - ^(DISJUNCTION ftsImplicitConjunction+) - ; - -cmisExplicitDisjunction - : - cmisConjunction (or cmisConjunction)* - -> - ^(DISJUNCTION cmisConjunction+) - ; - -ftsImplicitDisjunction - : - (or? ftsExplicitConjunction)+ - -> - ^(DISJUNCTION ftsExplicitConjunction+) - ; -/* - * "AND" - */ - - -ftsExplicitConjunction - : - ftsPrefixed (and ftsPrefixed)* - -> - ^(CONJUNCTION ftsPrefixed+) - ; - -ftsImplicitConjunction - : - (and? ftsPrefixed)+ - -> - ^(CONJUNCTION ftsPrefixed+) - ; - -cmisConjunction - : - cmisPrefixed+ - -> - ^(CONJUNCTION cmisPrefixed+) - ; -/* - * Additional info around query compoents - * - negation, default, mandatory, optional, exclude and boost - * These options control how individual elements are embedded in OR and AND - * and how matches affect the overall score. - */ - - -ftsPrefixed - : - (not) => not ftsTest boost? - -> - ^(NEGATION ftsTest boost?) - | ftsTest boost? - -> - ^(DEFAULT ftsTest boost?) - | PLUS ftsTest boost? - -> - ^(MANDATORY ftsTest boost?) - | BAR ftsTest boost? - -> - ^(OPTIONAL ftsTest boost?) - | MINUS ftsTest boost? - -> - ^(EXCLUDE ftsTest boost?) - ; - -cmisPrefixed - : - cmisTest - -> - ^(DEFAULT cmisTest) - | MINUS cmisTest - -> - ^(EXCLUDE cmisTest) - ; -/* - * Individual query components - */ - -ftsTest - : - (ftsFieldGroupProximity) => ftsFieldGroupProximity - -> - ^(PROXIMITY ftsFieldGroupProximity) - | - (ftsRange) => ftsRange - -> - ^(RANGE ftsRange) - | - (ftsFieldGroup) => ftsFieldGroup - -> ftsFieldGroup - | - (ftsTermOrPhrase) => ftsTermOrPhrase - | - (ftsExactTermOrPhrase) => ftsExactTermOrPhrase - | - (ftsTokenisedTermOrPhrase) => ftsTokenisedTermOrPhrase - - - | LPAREN ftsDisjunction RPAREN - -> ftsDisjunction - | template - -> template - ; - -cmisTest - : - cmisTerm - -> - ^(TERM cmisTerm) - | cmisPhrase - -> - ^(PHRASE cmisPhrase) - ; - -template - : - PERCENT tempReference - -> - ^(TEMPLATE tempReference) - | PERCENT LPAREN (tempReference COMMA?)+ RPAREN - -> - ^(TEMPLATE tempReference+) - ; - -fuzzy - : - TILDA number - -> - ^(FUZZY number) - ; - -slop - : - TILDA DECIMAL_INTEGER_LITERAL - -> - ^(FUZZY DECIMAL_INTEGER_LITERAL) - ; - -boost - : - CARAT number - -> - ^(BOOST number) - ; - -ftsTermOrPhrase - : - (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON - ( - FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fieldReferenceWithPrefix fuzzy?) - ) - | - (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON - ( - FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) - ) - | - FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fuzzy?) - ; - - -ftsExactTermOrPhrase - : - EQUALS - ( - (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON - ( - FTSPHRASE ((slop)=> slop)? - -> ^(EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(EXACT_TERM ftsWord fieldReferenceWithPrefix fuzzy?) - ) - | - (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON - ( - FTSPHRASE ((slop)=> slop)? - -> ^(EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(EXACT_TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) - ) - | - FTSPHRASE ((slop)=> slop)? - -> ^(EXACT_PHRASE FTSPHRASE slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(EXACT_TERM ftsWord fuzzy?) - ) - ; - - -ftsTokenisedTermOrPhrase - : - TILDA - ( - (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON - ( - FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fieldReferenceWithPrefix fuzzy?) - ) - | - (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON - ( - FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) - ) - | - FTSPHRASE ((slop)=> slop)? - -> ^(PHRASE FTSPHRASE slop?) - | - ftsWord ((fuzzy) => fuzzy)? - -> ^(TERM ftsWord fuzzy?) - ) - ; - - -cmisTerm - : - ftsWord - -> ftsWord - ; - - -cmisPhrase - : - FTSPHRASE - -> FTSPHRASE - ; - - -ftsRange - : - (fieldReference COLON)? ftsFieldGroupRange - -> ftsFieldGroupRange fieldReference? - ; - -ftsFieldGroup - : - fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN - -> - ^(FIELD_GROUP fieldReference ftsFieldGroupDisjunction) - ; - -ftsFieldGroupDisjunction - : - {defaultFieldConjunction() == true}? ftsFieldGroupExplicitDisjunction - | {defaultFieldConjunction() == false}? ftsFieldGroupImplicitDisjunction - ; - -ftsFieldGroupExplicitDisjunction - : - ftsFieldGroupImplicitConjunction (or ftsFieldGroupImplicitConjunction)* - -> - ^(FIELD_DISJUNCTION ftsFieldGroupImplicitConjunction+) - ; - -ftsFieldGroupImplicitDisjunction - : - (or? ftsFieldGroupExplicitConjunction)+ - -> - ^(FIELD_DISJUNCTION ftsFieldGroupExplicitConjunction+) - ; -/* - * "AND" - */ - - -ftsFieldGroupExplicitConjunction - : - ftsFieldGroupPrefixed (and ftsFieldGroupPrefixed)* - -> - ^(FIELD_CONJUNCTION ftsFieldGroupPrefixed+) - ; - -ftsFieldGroupImplicitConjunction - : - (and? ftsFieldGroupPrefixed)+ - -> - ^(FIELD_CONJUNCTION ftsFieldGroupPrefixed+) - ; - -ftsFieldGroupPrefixed - : - (not) => not ftsFieldGroupTest boost? - -> - ^(FIELD_NEGATION ftsFieldGroupTest boost?) - | ftsFieldGroupTest boost? - -> - ^(FIELD_DEFAULT ftsFieldGroupTest boost?) - | PLUS ftsFieldGroupTest boost? - -> - ^(FIELD_MANDATORY ftsFieldGroupTest boost?) - | BAR ftsFieldGroupTest boost? - -> - ^(FIELD_OPTIONAL ftsFieldGroupTest boost?) - | MINUS ftsFieldGroupTest boost? - -> - ^(FIELD_EXCLUDE ftsFieldGroupTest boost?) - ; - -ftsFieldGroupTest - : - (ftsFieldGroupProximity) => ftsFieldGroupProximity - -> - ^(FG_PROXIMITY ftsFieldGroupProximity) - | (ftsFieldGroupTerm) => ftsFieldGroupTerm ( (fuzzy) => fuzzy)? - -> - ^(FG_TERM ftsFieldGroupTerm fuzzy?) - | (ftsFieldGroupExactTerm) => ftsFieldGroupExactTerm ( (fuzzy) => fuzzy)? - -> - ^(FG_EXACT_TERM ftsFieldGroupExactTerm fuzzy?) - | (ftsFieldGroupPhrase) => ftsFieldGroupPhrase ( (slop) => slop)? - -> - ^(FG_PHRASE ftsFieldGroupPhrase slop?) - | (ftsFieldGroupExactPhrase) => ftsFieldGroupExactPhrase ( (slop) => slop)? - -> - ^(FG_EXACT_PHRASE ftsFieldGroupExactPhrase slop?) - | (ftsFieldGroupTokenisedPhrase) => ftsFieldGroupTokenisedPhrase ( (slop) => slop)? - -> - ^(FG_PHRASE ftsFieldGroupTokenisedPhrase slop?) - | (ftsFieldGroupSynonym) => ftsFieldGroupSynonym ( (fuzzy) => fuzzy)? - -> - ^(FG_SYNONYM ftsFieldGroupSynonym fuzzy?) - | (ftsFieldGroupRange) => ftsFieldGroupRange - -> - ^(FG_RANGE ftsFieldGroupRange) - | LPAREN ftsFieldGroupDisjunction RPAREN - -> ftsFieldGroupDisjunction - ; - -ftsFieldGroupTerm - : - ftsWord - ; - -ftsFieldGroupExactTerm - : - EQUALS ftsFieldGroupTerm - -> ftsFieldGroupTerm - ; - -ftsFieldGroupPhrase - : - FTSPHRASE - ; - -ftsFieldGroupExactPhrase - : - EQUALS ftsFieldGroupExactPhrase - -> ftsFieldGroupExactPhrase - ; - -ftsFieldGroupTokenisedPhrase - : - TILDA ftsFieldGroupExactPhrase - -> ftsFieldGroupExactPhrase - ; - -ftsFieldGroupSynonym - : - TILDA ftsFieldGroupTerm - -> ftsFieldGroupTerm - ; - -ftsFieldGroupProximity - : - ftsFieldGroupProximityTerm ( (proximityGroup) => proximityGroup ftsFieldGroupProximityTerm)+ - -> ftsFieldGroupProximityTerm (proximityGroup ftsFieldGroupProximityTerm)+ - ; - -ftsFieldGroupProximityTerm - : - ID - | FTSWORD - | FTSPRE - | FTSWILD - | NOT - | TO - | DECIMAL_INTEGER_LITERAL - | FLOATING_POINT_LITERAL - | DATETIME - | STAR - | URI identifier - ; - -proximityGroup - : - STAR (LPAREN DECIMAL_INTEGER_LITERAL? RPAREN)? - -> - ^(PROXIMITY DECIMAL_INTEGER_LITERAL?) - ; - -ftsFieldGroupRange - : - ftsRangeWord DOTDOT ftsRangeWord - -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE - | range_left ftsRangeWord TO ftsRangeWord range_right - -> range_left ftsRangeWord ftsRangeWord range_right - ; - -range_left - : - LSQUARE - -> INCLUSIVE - | LT - -> EXCLUSIVE - ; - -range_right - : - RSQUARE - -> INCLUSIVE - | GT - -> EXCLUSIVE - ; - -fieldReference - : - fieldReferenceWithPrefix - | fieldReferenceWithoutPrefix; - -fieldReferenceWithoutPrefix - : - AT? - uri? - identifier - -> - ^(FIELD_REF identifier uri?) - ; - -fieldReferenceWithPrefix - : - AT? - prefix identifier - -> - ^(FIELD_REF identifier prefix) - ; - -tempReference - : - AT? - ( - prefix - | uri - )? - identifier - -> - ^(FIELD_REF identifier prefix? uri?) - ; - -prefix - : - identifier COLON - -> - ^(PREFIX identifier) - ; - -uri - : - URI - -> - ^(NAME_SPACE URI) - ; - -identifier - : - (ID DOT ID) => - id1=ID DOT id2=ID - -> {new CommonTree(new CommonToken(FTSLexer.ID, $id1.text+$DOT.text+$id2.text))} - | - ID - -> - ID - | - TO - -> TO - | OR - -> OR - | AND - -> AND - | NOT - -> NOT - ; - -ftsWord - : - ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase DOT|COMMA ftsWordBase) => - ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) - | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => - ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) - | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => - ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) - | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => - ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) - | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => - ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) - | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ) => - ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) - | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase - | (ftsWordBase (DOT|COMMA) ftsWordBase) => - ftsWordBase (DOT|COMMA) ftsWordBase - | ((DOT|COMMA) ftsWordBase (DOT|COMMA)) => - (DOT|COMMA) ftsWordBase (DOT|COMMA) - | (ftsWordBase (DOT|COMMA)) => - ftsWordBase (DOT|COMMA) - | (DOT|COMMA) ftsWordBase - | ftsWordBase - ; - - -ftsWordBase - : - ID - | FTSWORD - | FTSPRE - | FTSWILD - | NOT - | TO - | DECIMAL_INTEGER_LITERAL - | FLOATING_POINT_LITERAL - | STAR - | QUESTION_MARK - | DATETIME - | URI identifier - ; - -number - : - DECIMAL_INTEGER_LITERAL - | FLOATING_POINT_LITERAL - ; - -ftsRangeWord - : - ID - | FTSWORD - | FTSPRE - | FTSWILD - | FTSPHRASE - | DECIMAL_INTEGER_LITERAL - | FLOATING_POINT_LITERAL - | DATETIME - | STAR - | URI identifier - ; - -// - -or - : - OR - | BAR BAR - ; - -and - : - AND - | AMP AMP - ; - -not - : - NOT - | EXCLAMATION - ; - -// ===== // -// LEXER // -// ===== // - -FTSPHRASE - : - '"' - ( - F_ESC - | - ~( - '\\' - | '"' - ) - )* - '"' - | '\'' - ( - F_ESC - | - ~( - '\\' - | '\'' - ) - )* - '\'' - ; -/* - * Basic URI pattern based on the regular expression patttern taken from the RFC (it it not full URI parsing) - * Note this means the language can not use {} anywhere else in the syntax - */ - - -URI - : - '{' - ( - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - ) - => - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - )+ - COLON - )? - ( - ( ('//') => '//') - ( - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - | COLON - ) - => - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - | COLON - ) - )* - )? - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - | COLON - | '/' - )* - ( - '?' - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - | COLON - | '/' - | '?' - )* - )? - ( - '#' - ( - F_URI_ALPHA - | F_URI_DIGIT - | F_URI_OTHER - | COLON - | '/' - | '?' - | '#' - )* - )? - '}' - ; - -fragment -F_URI_ALPHA - : - 'A'..'Z' - | 'a'..'z' - ; - -fragment -F_URI_DIGIT - : - '0'..'9' - ; - -fragment -F_URI_ESC - : - '%' F_HEX F_HEX - ; - -fragment -F_URI_OTHER - : - '-' - | '.' - | '_' - | '~' - | '[' - | ']' - | '@' - | '!' - | '$' - | '&' - | '\'' - | '(' - | ')' - | '*' - | '+' - | ',' - | ';' - | '=' - ; - - - - /** - * DATE literal - */ - -DATETIME - : - (SPECIFICDATETIME | NOW) (FS UNIT)? ( (PLUS|MINUS) DIGIT+ UNIT)* - ; - -fragment UNIT - : - (YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS) - ; - -fragment SPECIFICDATETIME - : - DIGIT DIGIT DIGIT DIGIT - ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' (DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | (( '+' | '-') DIGIT DIGIT ( ':' DIGIT DIGIT)? ) )? )? )? )? )? )? )? )? - ; - -fragment NOW - : - ('N'|'n') ('O'|'o') ('W'|'w') - ; - -fragment YEAR - : - ('Y'|'y') ('E'|'e') ('A'|'a') ('R'|'r') ('S'|'s')? - ; - -fragment MONTH - : - ('M'|'m') ('O'|'o') ('N'|'n') ('T'|'t') ('H'|'h') ('S'|'s')? - ; - -fragment DAY - : - ('D'|'d') ('A'|'a') ('Y'|'y') ('S'|'s')? - | ('D'|'d') ('A'|'a') ('T'|'t') ('E'|'e') - ; - -fragment HOUR - : - ('H'|'h') ('O'|'o') ('U'|'u') ('R'|'r') ('S'|'s')? - ; - -fragment MINUTE - : - ('M'|'m') ('I'|'i') ('N'|'n') ('U'|'u') ('T'|'t') ('E'|'e') ('S'|'s')? - ; - -fragment SECOND - : - ('S'|'s') ('E'|'e') ('C'|'c') ('O'|'o') ('N'|'n') ('D'|'d') ('S'|'s')? - ; - -fragment MILLIS - : - ('M'|'m') ('I'|'i') ('L'|'l') ('L'|'l') ('I'|'i') ('S'|'s') ('E'|'e') ('C'|'c') ('O'|'o') ('N'|'n') ('D'|'d') ('S'|'s')? - | ('M'|'m') ('I'|'i') ('L'|'l') ('L'|'l') ('I'|'i') ('S'|'s')? - ; - -fragment FS - : - '/' - ; - -/* - * Simple tokens, note all are case insensitive - */ - - -OR - : - ( - 'O' - | 'o' - ) - ( - 'R' - | 'r' - ) - ; - -AND - : - ( - 'A' - | 'a' - ) - ( - 'N' - | 'n' - ) - ( - 'D' - | 'd' - ) - ; - -NOT - : - ( - 'N' - | 'n' - ) - ( - 'O' - | 'o' - ) - ( - 'T' - | 't' - ) - ; - -TILDA - : - '~' - ; - -LPAREN - : - '(' - ; - -RPAREN - : - ')' - ; - -PLUS - : - '+' - ; - -MINUS - : - '-' - ; - -COLON - : - ':' - ; - -STAR - : - '*' - ; - -// This is handled sa part for FLOATING_POINT_LITERAL to reduce lexer complexity -fragment DOTDOT - : - '..' - ; - -// This is handled sa part for FLOATING_POINT_LITERAL to reduce lexer complexity -fragment DOT - : - '.' - ; - -AMP - : - '&' - ; - -EXCLAMATION - : - '!' - ; - -BAR - : - '|' - ; - -EQUALS - : - '=' - ; - -QUESTION_MARK - : - '?' - ; - -LCURL - : - '{' - ; - -RCURL - : - '}' - ; - -LSQUARE - : - '[' - ; - -RSQUARE - : - ']' - ; - -TO - : - ( - 'T' - | 't' - ) - ( - 'O' - | 'o' - ) - ; - -COMMA - : - ',' - ; - -CARAT - : - '^' - ; - -DOLLAR - : - '$' - ; - -GT - : - '>' - ; - -LT - : - '<' - ; - -AT - : - '@' - ; - -PERCENT - : - '%' - ; - - -/** - * ID - * _x????_ encoding is supported for invalid sql characters but requires nothing here, they are handled in the code - * Also supports \ style escaping for non CMIS SQL - */ -ID - : - ( - ( '0'..'9' ) - ( '0'..'9' | '$' | '#' | F_ESC )* - )? - ( 'a'..'z' | 'A'..'Z' | '_' ) - ( 'a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '$' | '#' | F_ESC )* - ; - - - - -// This is handled sa part for FLOATING_POINT_LITERAL to reduce lexer complexity -fragment DECIMAL_INTEGER_LITERAL - : - ; - -FLOATING_POINT_LITERAL - : - (PLUS|MINUS)? - ( - DIGIT+ - ( - {input.LA(2) != '.'}?=> DOT - ( - DIGIT+ - ( - EXPONENT - {$type = FLOATING_POINT_LITERAL; } - | - {input.LA(2) != '.'}?=> DOT - { - int index = $text.indexOf('.'); - - CommonToken digits1 = new CommonToken(input, DECIMAL_INTEGER_LITERAL, Token.DEFAULT_CHANNEL, $pos, $pos+index-1); - emit(digits1); - - CommonToken dot1 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos+index, $pos+index); - emit(dot1); - - CommonToken digits2 = new CommonToken(input, DECIMAL_INTEGER_LITERAL, Token.DEFAULT_CHANNEL, $pos+index+1, $pos + $text.length() -2); - emit(digits2); - - CommonToken dot2 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos + $text.length() -1, $pos + $text.length() -1); - emit(dot2); - - } - | - {$type = FLOATING_POINT_LITERAL; } - ) - | - EXPONENT - {$type = FLOATING_POINT_LITERAL; } - | - {$type = FLOATING_POINT_LITERAL; } - ) - | - ( - EXPONENT - {$type = FLOATING_POINT_LITERAL; } - | - {$type = DECIMAL_INTEGER_LITERAL; } - ) - - ) - | - - DOT - ( - DIGIT+ - ( - EXPONENT - {$type = FLOATING_POINT_LITERAL; } - | - {$text.startsWith(".")}? {input.LA(2) != '.'}?=> DOT - - { - - CommonToken dot1 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos, $pos); - emit(dot1); - - CommonToken digits = new CommonToken(input, DECIMAL_INTEGER_LITERAL, Token.DEFAULT_CHANNEL, $pos+1, $pos + $text.length() -2); - emit(digits); - - CommonToken dot2 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos + $text.length() -1, $pos + $text.length() -1); - emit(dot2); - - } - | - {$type = FLOATING_POINT_LITERAL; } - - ) - | - {input.LA(2) != '.'}?=> '.' - {$type = DOTDOT; } - | - {$type = DOT; } - ) - ) - ; - - - -/* - * Range and floating point have to be conbined to avoid lexer issues. - * This requires multi-token emits and addition supporting java code - see above ... - * - * Special rules for the likes of - * 1.. integer ranges - * 1... float range with the float terminated by . - * If floats are 'full' e.g. 2.4.. then the parse matches the normal float tokem and a DOTDOT token - * Likewise .1...2 does not require any special support - * - * Float and integer are based on the Java language spec. - */ - -/** - * Fragments for decimal - */ -fragment -DECIMAL_NUMERAL - : - ZERO_DIGIT - | NON_ZERO_DIGIT DIGIT* - ; - -fragment -DIGIT - : - ZERO_DIGIT - | NON_ZERO_DIGIT - ; - -fragment -ZERO_DIGIT - : - '0' - ; - -fragment -NON_ZERO_DIGIT - : - '1'..'9' - ; - -fragment -E - : - ( - 'e' - | 'E' - ) - ; - -fragment -EXPONENT - : - E SIGNED_INTEGER - ; - -fragment -SIGNED_INTEGER - : - ( - PLUS - | MINUS - )? - DIGIT+ - ; - - -FTSWORD - : - ( - F_ESC - | START_WORD - ) - ( - F_ESC - | IN_WORD - )* - ; - -FTSPRE - : - ( - F_ESC - | START_WORD - ) - ( - F_ESC - | IN_WORD - )* - STAR - ; - -FTSWILD - : - ( - F_ESC - | START_WORD - | STAR - | QUESTION_MARK - ) - ( - F_ESC - | IN_WORD - | STAR - | QUESTION_MARK - )* - ; - -fragment -F_ESC - : - '\\' - ( - // unicode - 'u' F_HEX F_HEX F_HEX F_HEX - // any single char escaped - | . - ) - ; - -fragment -F_HEX - : - '0'..'9' - | 'a'..'f' - | 'A'..'F' - ; - -fragment -START_WORD - : // Generated from Java Character.isLetterOrDigit() - '\u0024' - | '\u0030'..'\u0039' - | '\u0041'..'\u005a' - | '\u0061'..'\u007a' - | '\u00a2'..'\u00a7' - | '\u00a9'..'\u00aa' - | '\u00ae' - | '\u00b0' - | '\u00b2'..'\u00b3' - | '\u00b5'..'\u00b6' - | '\u00b9'..'\u00ba' - | '\u00bc'..'\u00be' - | '\u00c0'..'\u00d6' - | '\u00d8'..'\u00f6' - | '\u00f8'..'\u0236' - | '\u0250'..'\u02c1' - | '\u02c6'..'\u02d1' - | '\u02e0'..'\u02e4' - | '\u02ee' - | '\u0300'..'\u0357' - | '\u035d'..'\u036f' - | '\u037a'..'\u037a' - | '\u0386' - | '\u0388'..'\u038a' - | '\u038c'..'\u038c' - | '\u038e'..'\u03a1' - | '\u03a3'..'\u03ce' - | '\u03d0'..'\u03f5' - | '\u03f7'..'\u03fb' - | '\u0400'..'\u0486' - | '\u0488'..'\u04ce' - | '\u04d0'..'\u04f5' - | '\u04f8'..'\u04f9' - | '\u0500'..'\u050f' - | '\u0531'..'\u0556' - | '\u0559' - | '\u0561'..'\u0587' - | '\u0591'..'\u05a1' - | '\u05a3'..'\u05b9' - | '\u05bb'..'\u05bd' - | '\u05bf' - | '\u05c1'..'\u05c2' - | '\u05c4'..'\u05c4' - | '\u05d0'..'\u05ea' - | '\u05f0'..'\u05f2' - | '\u060e'..'\u0615' - | '\u0621'..'\u063a' - | '\u0640'..'\u0658' - | '\u0660'..'\u0669' - | '\u066e'..'\u06d3' - | '\u06d5'..'\u06dc' - | '\u06de'..'\u06ff' - | '\u0710'..'\u074a' - | '\u074d'..'\u074f' - | '\u0780'..'\u07b1' - | '\u0901'..'\u0939' - | '\u093c'..'\u094d' - | '\u0950'..'\u0954' - | '\u0958'..'\u0963' - | '\u0966'..'\u096f' - | '\u0981'..'\u0983' - | '\u0985'..'\u098c' - | '\u098f'..'\u0990' - | '\u0993'..'\u09a8' - | '\u09aa'..'\u09b0' - | '\u09b2'..'\u09b2' - | '\u09b6'..'\u09b9' - | '\u09bc'..'\u09c4' - | '\u09c7'..'\u09c8' - | '\u09cb'..'\u09cd' - | '\u09d7'..'\u09d7' - | '\u09dc'..'\u09dd' - | '\u09df'..'\u09e3' - | '\u09e6'..'\u09fa' - | '\u0a01'..'\u0a03' - | '\u0a05'..'\u0a0a' - | '\u0a0f'..'\u0a10' - | '\u0a13'..'\u0a28' - | '\u0a2a'..'\u0a30' - | '\u0a32'..'\u0a33' - | '\u0a35'..'\u0a36' - | '\u0a38'..'\u0a39' - | '\u0a3c'..'\u0a3c' - | '\u0a3e'..'\u0a42' - | '\u0a47'..'\u0a48' - | '\u0a4b'..'\u0a4d' - | '\u0a59'..'\u0a5c' - | '\u0a5e'..'\u0a5e' - | '\u0a66'..'\u0a74' - | '\u0a81'..'\u0a83' - | '\u0a85'..'\u0a8d' - | '\u0a8f'..'\u0a91' - | '\u0a93'..'\u0aa8' - | '\u0aaa'..'\u0ab0' - | '\u0ab2'..'\u0ab3' - | '\u0ab5'..'\u0ab9' - | '\u0abc'..'\u0ac5' - | '\u0ac7'..'\u0ac9' - | '\u0acb'..'\u0acd' - | '\u0ad0'..'\u0ad0' - | '\u0ae0'..'\u0ae3' - | '\u0ae6'..'\u0aef' - | '\u0af1'..'\u0af1' - | '\u0b01'..'\u0b03' - | '\u0b05'..'\u0b0c' - | '\u0b0f'..'\u0b10' - | '\u0b13'..'\u0b28' - | '\u0b2a'..'\u0b30' - | '\u0b32'..'\u0b33' - | '\u0b35'..'\u0b39' - | '\u0b3c'..'\u0b43' - | '\u0b47'..'\u0b48' - | '\u0b4b'..'\u0b4d' - | '\u0b56'..'\u0b57' - | '\u0b5c'..'\u0b5d' - | '\u0b5f'..'\u0b61' - | '\u0b66'..'\u0b71' - | '\u0b82'..'\u0b83' - | '\u0b85'..'\u0b8a' - | '\u0b8e'..'\u0b90' - | '\u0b92'..'\u0b95' - | '\u0b99'..'\u0b9a' - | '\u0b9c'..'\u0b9c' - | '\u0b9e'..'\u0b9f' - | '\u0ba3'..'\u0ba4' - | '\u0ba8'..'\u0baa' - | '\u0bae'..'\u0bb5' - | '\u0bb7'..'\u0bb9' - | '\u0bbe'..'\u0bc2' - | '\u0bc6'..'\u0bc8' - | '\u0bca'..'\u0bcd' - | '\u0bd7'..'\u0bd7' - | '\u0be7'..'\u0bfa' - | '\u0c01'..'\u0c03' - | '\u0c05'..'\u0c0c' - | '\u0c0e'..'\u0c10' - | '\u0c12'..'\u0c28' - | '\u0c2a'..'\u0c33' - | '\u0c35'..'\u0c39' - | '\u0c3e'..'\u0c44' - | '\u0c46'..'\u0c48' - | '\u0c4a'..'\u0c4d' - | '\u0c55'..'\u0c56' - | '\u0c60'..'\u0c61' - | '\u0c66'..'\u0c6f' - | '\u0c82'..'\u0c83' - | '\u0c85'..'\u0c8c' - | '\u0c8e'..'\u0c90' - | '\u0c92'..'\u0ca8' - | '\u0caa'..'\u0cb3' - | '\u0cb5'..'\u0cb9' - | '\u0cbc'..'\u0cc4' - | '\u0cc6'..'\u0cc8' - | '\u0cca'..'\u0ccd' - | '\u0cd5'..'\u0cd6' - | '\u0cde'..'\u0cde' - | '\u0ce0'..'\u0ce1' - | '\u0ce6'..'\u0cef' - | '\u0d02'..'\u0d03' - | '\u0d05'..'\u0d0c' - | '\u0d0e'..'\u0d10' - | '\u0d12'..'\u0d28' - | '\u0d2a'..'\u0d39' - | '\u0d3e'..'\u0d43' - | '\u0d46'..'\u0d48' - | '\u0d4a'..'\u0d4d' - | '\u0d57'..'\u0d57' - | '\u0d60'..'\u0d61' - | '\u0d66'..'\u0d6f' - | '\u0d82'..'\u0d83' - | '\u0d85'..'\u0d96' - | '\u0d9a'..'\u0db1' - | '\u0db3'..'\u0dbb' - | '\u0dbd'..'\u0dbd' - | '\u0dc0'..'\u0dc6' - | '\u0dca'..'\u0dca' - | '\u0dcf'..'\u0dd4' - | '\u0dd6'..'\u0dd6' - | '\u0dd8'..'\u0ddf' - | '\u0df2'..'\u0df3' - | '\u0e01'..'\u0e3a' - | '\u0e3f'..'\u0e4e' - | '\u0e50'..'\u0e59' - | '\u0e81'..'\u0e82' - | '\u0e84'..'\u0e84' - | '\u0e87'..'\u0e88' - | '\u0e8a'..'\u0e8a' - | '\u0e8d'..'\u0e8d' - | '\u0e94'..'\u0e97' - | '\u0e99'..'\u0e9f' - | '\u0ea1'..'\u0ea3' - | '\u0ea5'..'\u0ea5' - | '\u0ea7'..'\u0ea7' - | '\u0eaa'..'\u0eab' - | '\u0ead'..'\u0eb9' - | '\u0ebb'..'\u0ebd' - | '\u0ec0'..'\u0ec4' - | '\u0ec6'..'\u0ec6' - | '\u0ec8'..'\u0ecd' - | '\u0ed0'..'\u0ed9' - | '\u0edc'..'\u0edd' - | '\u0f00'..'\u0f03' - | '\u0f13'..'\u0f39' - | '\u0f3e'..'\u0f47' - | '\u0f49'..'\u0f6a' - | '\u0f71'..'\u0f84' - | '\u0f86'..'\u0f8b' - | '\u0f90'..'\u0f97' - | '\u0f99'..'\u0fbc' - | '\u0fbe'..'\u0fcc' - | '\u0fcf'..'\u0fcf' - | '\u1000'..'\u1021' - | '\u1023'..'\u1027' - | '\u1029'..'\u102a' - | '\u102c'..'\u1032' - | '\u1036'..'\u1039' - | '\u1040'..'\u1049' - | '\u1050'..'\u1059' - | '\u10a0'..'\u10c5' - | '\u10d0'..'\u10f8' - | '\u1100'..'\u1159' - | '\u115f'..'\u11a2' - | '\u11a8'..'\u11f9' - | '\u1200'..'\u1206' - | '\u1208'..'\u1246' - | '\u1248'..'\u1248' - | '\u124a'..'\u124d' - | '\u1250'..'\u1256' - | '\u1258'..'\u1258' - | '\u125a'..'\u125d' - | '\u1260'..'\u1286' - | '\u1288'..'\u1288' - | '\u128a'..'\u128d' - | '\u1290'..'\u12ae' - | '\u12b0'..'\u12b0' - | '\u12b2'..'\u12b5' - | '\u12b8'..'\u12be' - | '\u12c0'..'\u12c0' - | '\u12c2'..'\u12c5' - | '\u12c8'..'\u12ce' - | '\u12d0'..'\u12d6' - | '\u12d8'..'\u12ee' - | '\u12f0'..'\u130e' - | '\u1310'..'\u1310' - | '\u1312'..'\u1315' - | '\u1318'..'\u131e' - | '\u1320'..'\u1346' - | '\u1348'..'\u135a' - | '\u1369'..'\u137c' - | '\u13a0'..'\u13f4' - | '\u1401'..'\u166c' - | '\u166f'..'\u1676' - | '\u1681'..'\u169a' - | '\u16a0'..'\u16ea' - | '\u16ee'..'\u16f0' - | '\u1700'..'\u170c' - | '\u170e'..'\u1714' - | '\u1720'..'\u1734' - | '\u1740'..'\u1753' - | '\u1760'..'\u176c' - | '\u176e'..'\u1770' - | '\u1772'..'\u1773' - | '\u1780'..'\u17b3' - | '\u17b6'..'\u17d3' - | '\u17d7' - | '\u17db'..'\u17dd' - | '\u17e0'..'\u17e9' - | '\u17f0'..'\u17f9' - | '\u180b'..'\u180d' - | '\u1810'..'\u1819' - | '\u1820'..'\u1877' - | '\u1880'..'\u18a9' - | '\u1900'..'\u191c' - | '\u1920'..'\u192b' - | '\u1930'..'\u193b' - | '\u1940'..'\u1940' - | '\u1946'..'\u196d' - | '\u1970'..'\u1974' - | '\u19e0'..'\u19ff' - | '\u1d00'..'\u1d6b' - | '\u1e00'..'\u1e9b' - | '\u1ea0'..'\u1ef9' - | '\u1f00'..'\u1f15' - | '\u1f18'..'\u1f1d' - | '\u1f20'..'\u1f45' - | '\u1f48'..'\u1f4d' - | '\u1f50'..'\u1f57' - | '\u1f59'..'\u1f59' - | '\u1f5b'..'\u1f5b' - | '\u1f5d'..'\u1f5d' - | '\u1f5f'..'\u1f7d' - | '\u1f80'..'\u1fb4' - | '\u1fb6'..'\u1fbc' - | '\u1fbe' - | '\u1fc2'..'\u1fc4' - | '\u1fc6'..'\u1fcc' - | '\u1fd0'..'\u1fd3' - | '\u1fd6'..'\u1fdb' - | '\u1fe0'..'\u1fec' - | '\u1ff2'..'\u1ff4' - | '\u1ff6'..'\u1ffc' - | '\u2070'..'\u2071' - | '\u2074'..'\u2079' - | '\u207f'..'\u2089' - | '\u20a0'..'\u20b1' - | '\u20d0'..'\u20ea' - | '\u2100'..'\u213b' - | '\u213d'..'\u213f' - | '\u2145'..'\u214a' - | '\u2153'..'\u2183' - | '\u2195'..'\u2199' - | '\u219c'..'\u219f' - | '\u21a1'..'\u21a2' - | '\u21a4'..'\u21a5' - | '\u21a7'..'\u21ad' - | '\u21af'..'\u21cd' - | '\u21d0'..'\u21d1' - | '\u21d3' - | '\u21d5'..'\u21f3' - | '\u2300'..'\u2307' - | '\u230c'..'\u231f' - | '\u2322'..'\u2328' - | '\u232b'..'\u237b' - | '\u237d'..'\u239a' - | '\u23b7'..'\u23d0' - | '\u2400'..'\u2426' - | '\u2440'..'\u244a' - | '\u2460'..'\u25b6' - | '\u25b8'..'\u25c0' - | '\u25c2'..'\u25f7' - | '\u2600'..'\u2617' - | '\u2619'..'\u266e' - | '\u2670'..'\u267d' - | '\u2680'..'\u2691' - | '\u26a0'..'\u26a1' - | '\u2701'..'\u2704' - | '\u2706'..'\u2709' - | '\u270c'..'\u2727' - | '\u2729'..'\u274b' - | '\u274d'..'\u274d' - | '\u274f'..'\u2752' - | '\u2756'..'\u2756' - | '\u2758'..'\u275e' - | '\u2761'..'\u2767' - | '\u2776'..'\u2794' - | '\u2798'..'\u27af' - | '\u27b1'..'\u27be' - | '\u2800'..'\u28ff' - | '\u2b00'..'\u2b0d' - | '\u2e80'..'\u2e99' - | '\u2e9b'..'\u2ef3' - | '\u2f00'..'\u2fd5' - | '\u2ff0'..'\u2ffb' - | '\u3004'..'\u3007' - | '\u3012'..'\u3013' - | '\u3020'..'\u302f' - | '\u3031'..'\u303c' - | '\u303e'..'\u303f' - | '\u3041'..'\u3096' - | '\u3099'..'\u309a' - | '\u309d'..'\u309f' - | '\u30a1'..'\u30fa' - | '\u30fc'..'\u30ff' - | '\u3105'..'\u312c' - | '\u3131'..'\u318e' - | '\u3190'..'\u31b7' - | '\u31f0'..'\u321e' - | '\u3220'..'\u3243' - | '\u3250'..'\u327d' - | '\u327f'..'\u32fe' - | '\u3300'..'\u4db5' - | '\u4dc0'..'\u9fa5' - | '\ua000'..'\ua48c' - | '\ua490'..'\ua4c6' - | '\uac00'..'\ud7a3' - | '\uf900'..'\ufa2d' - | '\ufa30'..'\ufa6a' - | '\ufb00'..'\ufb06' - | '\ufb13'..'\ufb17' - | '\ufb1d'..'\ufb28' - | '\ufb2a'..'\ufb36' - | '\ufb38'..'\ufb3c' - | '\ufb3e'..'\ufb3e' - | '\ufb40'..'\ufb41' - | '\ufb43'..'\ufb44' - | '\ufb46'..'\ufbb1' - | '\ufbd3'..'\ufd3d' - | '\ufd50'..'\ufd8f' - | '\ufd92'..'\ufdc7' - | '\ufdf0'..'\ufdfd' - | '\ufe00'..'\ufe0f' - | '\ufe20'..'\ufe23' - | '\ufe69' - | '\ufe70'..'\ufe74' - | '\ufe76'..'\ufefc' - | '\uff04' - | '\uff10'..'\uff19' - | '\uff21'..'\uff3a' - | '\uff41'..'\uff5a' - | '\uff66'..'\uffbe' - | '\uffc2'..'\uffc7' - | '\uffca'..'\uffcf' - | '\uffd2'..'\uffd7' - | '\uffda'..'\uffdc' - | '\uffe0'..'\uffe1' - | '\uffe4'..'\uffe6' - | '\uffe8' - | '\uffed'..'\uffee' - ; - -// exclude ? 003F - wildcard -// exclude * 002A - wildcard -// exclude \ 005C - escape -// exclude : 003A - field indicator -// exclude ~ 00&E - fuzzy queries -// exclude > 003C - ranges -// exclude < 003E - range -// exclude . 002E -// exclude , 002C -// exclude -fragment -IN_WORD - : - '\u0021'..'\u0027' - | '\u002b' - | '\u002d' - | '\u002f'..'\u0039' - | '\u003b' - | '\u003d' - | '\u0040'..'\u005a' - | '\u005f' - | '\u0061'..'\u007a' - | '\u007c' - | '\u00a1'..'\u00a7' - | '\u00a9'..'\u00aa' - | '\u00ac' - | '\u00ae' - | '\u00b0'..'\u00b3' - | '\u00b5'..'\u00b7' - | '\u00b9'..'\u00ba' - | '\u00bc'..'\u0236' - | '\u0250'..'\u02c1' - | '\u02c6'..'\u02d1' - | '\u02e0'..'\u02e4' - | '\u02ee' - | '\u0300'..'\u0357' - | '\u035d'..'\u036f' - | '\u037a'..'\u037a' - | '\u037e'..'\u037e' - | '\u0386'..'\u038a' - | '\u038c'..'\u038c' - | '\u038e'..'\u03a1' - | '\u03a3'..'\u03ce' - | '\u03d0'..'\u03fb' - | '\u0400'..'\u0486' - | '\u0488'..'\u04ce' - | '\u04d0'..'\u04f5' - | '\u04f8'..'\u04f9' - | '\u0500'..'\u050f' - | '\u0531'..'\u0556' - | '\u0559'..'\u055f' - | '\u0561'..'\u0587' - | '\u0589'..'\u058a' - | '\u0591'..'\u05a1' - | '\u05a3'..'\u05b9' - | '\u05bb'..'\u05c4' - | '\u05d0'..'\u05ea' - | '\u05f0'..'\u05f4' - | '\u060c'..'\u0615' - | '\u061b'..'\u061b' - | '\u061f'..'\u061f' - | '\u0621'..'\u063a' - | '\u0640'..'\u0658' - | '\u0660'..'\u06dc' - | '\u06de'..'\u070d' - | '\u0710'..'\u074a' - | '\u074d'..'\u074f' - | '\u0780'..'\u07b1' - | '\u0901'..'\u0939' - | '\u093c'..'\u094d' - | '\u0950'..'\u0954' - | '\u0958'..'\u0970' - | '\u0981'..'\u0983' - | '\u0985'..'\u098c' - | '\u098f'..'\u0990' - | '\u0993'..'\u09a8' - | '\u09aa'..'\u09b0' - | '\u09b2'..'\u09b2' - | '\u09b6'..'\u09b9' - | '\u09bc'..'\u09c4' - | '\u09c7'..'\u09c8' - | '\u09cb'..'\u09cd' - | '\u09d7'..'\u09d7' - | '\u09dc'..'\u09dd' - | '\u09df'..'\u09e3' - | '\u09e6'..'\u09fa' - | '\u0a01'..'\u0a03' - | '\u0a05'..'\u0a0a' - | '\u0a0f'..'\u0a10' - | '\u0a13'..'\u0a28' - | '\u0a2a'..'\u0a30' - | '\u0a32'..'\u0a33' - | '\u0a35'..'\u0a36' - | '\u0a38'..'\u0a39' - | '\u0a3c'..'\u0a3c' - | '\u0a3e'..'\u0a42' - | '\u0a47'..'\u0a48' - | '\u0a4b'..'\u0a4d' - | '\u0a59'..'\u0a5c' - | '\u0a5e'..'\u0a5e' - | '\u0a66'..'\u0a74' - | '\u0a81'..'\u0a83' - | '\u0a85'..'\u0a8d' - | '\u0a8f'..'\u0a91' - | '\u0a93'..'\u0aa8' - | '\u0aaa'..'\u0ab0' - | '\u0ab2'..'\u0ab3' - | '\u0ab5'..'\u0ab9' - | '\u0abc'..'\u0ac5' - | '\u0ac7'..'\u0ac9' - | '\u0acb'..'\u0acd' - | '\u0ad0'..'\u0ad0' - | '\u0ae0'..'\u0ae3' - | '\u0ae6'..'\u0aef' - | '\u0af1'..'\u0af1' - | '\u0b01'..'\u0b03' - | '\u0b05'..'\u0b0c' - | '\u0b0f'..'\u0b10' - | '\u0b13'..'\u0b28' - | '\u0b2a'..'\u0b30' - | '\u0b32'..'\u0b33' - | '\u0b35'..'\u0b39' - | '\u0b3c'..'\u0b43' - | '\u0b47'..'\u0b48' - | '\u0b4b'..'\u0b4d' - | '\u0b56'..'\u0b57' - | '\u0b5c'..'\u0b5d' - | '\u0b5f'..'\u0b61' - | '\u0b66'..'\u0b71' - | '\u0b82'..'\u0b83' - | '\u0b85'..'\u0b8a' - | '\u0b8e'..'\u0b90' - | '\u0b92'..'\u0b95' - | '\u0b99'..'\u0b9a' - | '\u0b9c'..'\u0b9c' - | '\u0b9e'..'\u0b9f' - | '\u0ba3'..'\u0ba4' - | '\u0ba8'..'\u0baa' - | '\u0bae'..'\u0bb5' - | '\u0bb7'..'\u0bb9' - | '\u0bbe'..'\u0bc2' - | '\u0bc6'..'\u0bc8' - | '\u0bca'..'\u0bcd' - | '\u0bd7'..'\u0bd7' - | '\u0be7'..'\u0bfa' - | '\u0c01'..'\u0c03' - | '\u0c05'..'\u0c0c' - | '\u0c0e'..'\u0c10' - | '\u0c12'..'\u0c28' - | '\u0c2a'..'\u0c33' - | '\u0c35'..'\u0c39' - | '\u0c3e'..'\u0c44' - | '\u0c46'..'\u0c48' - | '\u0c4a'..'\u0c4d' - | '\u0c55'..'\u0c56' - | '\u0c60'..'\u0c61' - | '\u0c66'..'\u0c6f' - | '\u0c82'..'\u0c83' - | '\u0c85'..'\u0c8c' - | '\u0c8e'..'\u0c90' - | '\u0c92'..'\u0ca8' - | '\u0caa'..'\u0cb3' - | '\u0cb5'..'\u0cb9' - | '\u0cbc'..'\u0cc4' - | '\u0cc6'..'\u0cc8' - | '\u0cca'..'\u0ccd' - | '\u0cd5'..'\u0cd6' - | '\u0cde'..'\u0cde' - | '\u0ce0'..'\u0ce1' - | '\u0ce6'..'\u0cef' - | '\u0d02'..'\u0d03' - | '\u0d05'..'\u0d0c' - | '\u0d0e'..'\u0d10' - | '\u0d12'..'\u0d28' - | '\u0d2a'..'\u0d39' - | '\u0d3e'..'\u0d43' - | '\u0d46'..'\u0d48' - | '\u0d4a'..'\u0d4d' - | '\u0d57'..'\u0d57' - | '\u0d60'..'\u0d61' - | '\u0d66'..'\u0d6f' - | '\u0d82'..'\u0d83' - | '\u0d85'..'\u0d96' - | '\u0d9a'..'\u0db1' - | '\u0db3'..'\u0dbb' - | '\u0dbd'..'\u0dbd' - | '\u0dc0'..'\u0dc6' - | '\u0dca'..'\u0dca' - | '\u0dcf'..'\u0dd4' - | '\u0dd6'..'\u0dd6' - | '\u0dd8'..'\u0ddf' - | '\u0df2'..'\u0df4' - | '\u0e01'..'\u0e3a' - | '\u0e3f'..'\u0e5b' - | '\u0e81'..'\u0e82' - | '\u0e84'..'\u0e84' - | '\u0e87'..'\u0e88' - | '\u0e8a'..'\u0e8a' - | '\u0e8d'..'\u0e8d' - | '\u0e94'..'\u0e97' - | '\u0e99'..'\u0e9f' - | '\u0ea1'..'\u0ea3' - | '\u0ea5'..'\u0ea5' - | '\u0ea7'..'\u0ea7' - | '\u0eaa'..'\u0eab' - | '\u0ead'..'\u0eb9' - | '\u0ebb'..'\u0ebd' - | '\u0ec0'..'\u0ec4' - | '\u0ec6'..'\u0ec6' - | '\u0ec8'..'\u0ecd' - | '\u0ed0'..'\u0ed9' - | '\u0edc'..'\u0edd' - | '\u0f00'..'\u0f39' - | '\u0f3e'..'\u0f47' - | '\u0f49'..'\u0f6a' - | '\u0f71'..'\u0f8b' - | '\u0f90'..'\u0f97' - | '\u0f99'..'\u0fbc' - | '\u0fbe'..'\u0fcc' - | '\u0fcf'..'\u0fcf' - | '\u1000'..'\u1021' - | '\u1023'..'\u1027' - | '\u1029'..'\u102a' - | '\u102c'..'\u1032' - | '\u1036'..'\u1039' - | '\u1040'..'\u1059' - | '\u10a0'..'\u10c5' - | '\u10d0'..'\u10f8' - | '\u10fb'..'\u10fb' - | '\u1100'..'\u1159' - | '\u115f'..'\u11a2' - | '\u11a8'..'\u11f9' - | '\u1200'..'\u1206' - | '\u1208'..'\u1246' - | '\u1248'..'\u1248' - | '\u124a'..'\u124d' - | '\u1250'..'\u1256' - | '\u1258'..'\u1258' - | '\u125a'..'\u125d' - | '\u1260'..'\u1286' - | '\u1288'..'\u1288' - | '\u128a'..'\u128d' - | '\u1290'..'\u12ae' - | '\u12b0'..'\u12b0' - | '\u12b2'..'\u12b5' - | '\u12b8'..'\u12be' - | '\u12c0'..'\u12c0' - | '\u12c2'..'\u12c5' - | '\u12c8'..'\u12ce' - | '\u12d0'..'\u12d6' - | '\u12d8'..'\u12ee' - | '\u12f0'..'\u130e' - | '\u1310'..'\u1310' - | '\u1312'..'\u1315' - | '\u1318'..'\u131e' - | '\u1320'..'\u1346' - | '\u1348'..'\u135a' - | '\u1361'..'\u137c' - | '\u13a0'..'\u13f4' - | '\u1401'..'\u1676' - | '\u1681'..'\u169a' - | '\u16a0'..'\u16f0' - | '\u1700'..'\u170c' - | '\u170e'..'\u1714' - | '\u1720'..'\u1736' - | '\u1740'..'\u1753' - | '\u1760'..'\u176c' - | '\u176e'..'\u1770' - | '\u1772'..'\u1773' - | '\u1780'..'\u17b3' - | '\u17b6'..'\u17dd' - | '\u17e0'..'\u17e9' - | '\u17f0'..'\u17f9' - | '\u1800'..'\u180d' - | '\u1810'..'\u1819' - | '\u1820'..'\u1877' - | '\u1880'..'\u18a9' - | '\u1900'..'\u191c' - | '\u1920'..'\u192b' - | '\u1930'..'\u193b' - | '\u1940'..'\u1940' - | '\u1944'..'\u196d' - | '\u1970'..'\u1974' - | '\u19e0'..'\u19ff' - | '\u1d00'..'\u1d6b' - | '\u1e00'..'\u1e9b' - | '\u1ea0'..'\u1ef9' - | '\u1f00'..'\u1f15' - | '\u1f18'..'\u1f1d' - | '\u1f20'..'\u1f45' - | '\u1f48'..'\u1f4d' - | '\u1f50'..'\u1f57' - | '\u1f59'..'\u1f59' - | '\u1f5b'..'\u1f5b' - | '\u1f5d'..'\u1f5d' - | '\u1f5f'..'\u1f7d' - | '\u1f80'..'\u1fb4' - | '\u1fb6'..'\u1fbc' - | '\u1fbe' - | '\u1fc2'..'\u1fc4' - | '\u1fc6'..'\u1fcc' - | '\u1fd0'..'\u1fd3' - | '\u1fd6'..'\u1fdb' - | '\u1fe0'..'\u1fec' - | '\u1ff2'..'\u1ff4' - | '\u1ff6'..'\u1ffc' - | '\u2010'..'\u2017' - | '\u2020'..'\u2027' - | '\u2030'..'\u2038' - | '\u203b'..'\u2044' - | '\u2047'..'\u2054' - | '\u2057'..'\u2057' - | '\u2070'..'\u2071' - | '\u2074'..'\u207c' - | '\u207f'..'\u208c' - | '\u20a0'..'\u20b1' - | '\u20d0'..'\u20ea' - | '\u2100'..'\u213b' - | '\u213d'..'\u214b' - | '\u2153'..'\u2183' - | '\u2190'..'\u2328' - | '\u232b'..'\u23b3' - | '\u23b6'..'\u23d0' - | '\u2400'..'\u2426' - | '\u2440'..'\u244a' - | '\u2460'..'\u2617' - | '\u2619'..'\u267d' - | '\u2680'..'\u2691' - | '\u26a0'..'\u26a1' - | '\u2701'..'\u2704' - | '\u2706'..'\u2709' - | '\u270c'..'\u2727' - | '\u2729'..'\u274b' - | '\u274d'..'\u274d' - | '\u274f'..'\u2752' - | '\u2756'..'\u2756' - | '\u2758'..'\u275e' - | '\u2761'..'\u2767' - | '\u2776'..'\u2794' - | '\u2798'..'\u27af' - | '\u27b1'..'\u27be' - | '\u27d0'..'\u27e5' - | '\u27f0'..'\u2982' - | '\u2999'..'\u29d7' - | '\u29dc'..'\u29fb' - | '\u29fe'..'\u2b0d' - | '\u2e80'..'\u2e99' - | '\u2e9b'..'\u2ef3' - | '\u2f00'..'\u2fd5' - | '\u2ff0'..'\u2ffb' - | '\u3001'..'\u3007' - | '\u3012'..'\u3013' - | '\u301c' - | '\u3020'..'\u303f' - | '\u3041'..'\u3096' - | '\u3099'..'\u309a' - | '\u309d'..'\u30ff' - | '\u3105'..'\u312c' - | '\u3131'..'\u318e' - | '\u3190'..'\u31b7' - | '\u31f0'..'\u321e' - | '\u3220'..'\u3243' - | '\u3250'..'\u327d' - | '\u327f'..'\u32fe' - | '\u3300'..'\u4db5' - | '\u4dc0'..'\u9fa5' - | '\ua000'..'\ua48c' - | '\ua490'..'\ua4c6' - | '\uac00'..'\ud7a3' - | '\uf900'..'\ufa2d' - | '\ufa30'..'\ufa6a' - | '\ufb00'..'\ufb06' - | '\ufb13'..'\ufb17' - | '\ufb1d'..'\ufb36' - | '\ufb38'..'\ufb3c' - | '\ufb3e'..'\ufb3e' - | '\ufb40'..'\ufb41' - | '\ufb43'..'\ufb44' - | '\ufb46'..'\ufbb1' - | '\ufbd3'..'\ufd3d' - | '\ufd50'..'\ufd8f' - | '\ufd92'..'\ufdc7' - | '\ufdf0'..'\ufdfd' - | '\ufe00'..'\ufe0f' - | '\ufe20'..'\ufe23' - | '\ufe30'..'\ufe34' - | '\ufe45'..'\ufe46' - | '\ufe49'..'\ufe52' - | '\ufe54'..'\ufe58' - | '\ufe5f'..'\ufe66' - | '\ufe68'..'\ufe6b' - | '\ufe70'..'\ufe74' - | '\ufe76'..'\ufefc' - | '\uff01'..'\uff07' - | '\uff0a'..'\uff3a' - | '\uff3c' - | '\uff3f' - | '\uff41'..'\uff5a' - | '\uff5c' - | '\uff5e' - | '\uff61' - | '\uff64'..'\uffbe' - | '\uffc2'..'\uffc7' - | '\uffca'..'\uffcf' - | '\uffd2'..'\uffd7' - | '\uffda'..'\uffdc' - | '\uffe0'..'\uffe2' - | '\uffe4'..'\uffe6' - | '\uffe8'..'\uffee' - ; - - -/* - * Standard white space - * White space may be escaped by \ in some tokens - */ - - -WS - : - ( - ' ' - | '\t' - | '\r' - | '\n' - | '\u000C' // FF - | '\u00a0' // Additional Unicode space from Character.isSpaceChar() - | '\u1680' - | '\u180e' - | '\u2000' .. '\u200b' - | '\u2028' .. '\u2029' - | '\u202f' - | '\u205f' - | '\u3000' - )+ - { $channel = HIDDEN; } - ; + /* + * Copyright (C) 2005-2015 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +/* + * Parser for the Alfresco full text query language. + * It may be used stand-alone or embedded, for example, in CMIS SQL contains() + * + */ + +grammar FTS; + +options +{ + output = AST; + backtrack = false; + memoize = false; +} +/* + * Additional tokens for tree building. + */ + + +tokens +{ + FTS; + DISJUNCTION; + CONJUNCTION; + NEGATION; + TERM; + EXACT_TERM; + PHRASE; + EXACT_PHRASE; + SYNONYM; + RANGE; + PROXIMITY; + DEFAULT; + MANDATORY; + OPTIONAL; + EXCLUDE; + FIELD_DISJUNCTION; + FIELD_CONJUNCTION; + FIELD_NEGATION; + FIELD_GROUP; + FIELD_DEFAULT; + FIELD_MANDATORY; + FIELD_OPTIONAL; + FIELD_EXCLUDE; + FG_TERM; + FG_EXACT_TERM; + FG_PHRASE; + FG_EXACT_PHRASE; + FG_SYNONYM; + FG_PROXIMITY; + FG_RANGE; + FIELD_REF; + INCLUSIVE; + EXCLUSIVE; + QUALIFIER; + PREFIX; + NAME_SPACE; + BOOST; + FUZZY; + TEMPLATE; +} +/* + * Make sure the lexer and parser are generated in the correct package + */ + + +@lexer::header +{ +package org.alfresco.repo.search.impl.parsers; +} + +@header +{ +package org.alfresco.repo.search.impl.parsers; +} +/* + * Embeded java to control the default connective when not specified. + * + * Do not support recover from errors + * + * Add extra detail to teh error message + */ + + +@members +{ + public enum Mode + { + CMIS, DEFAULT_CONJUNCTION, DEFAULT_DISJUNCTION + } + + private Stack paraphrases = new Stack(); + + private boolean defaultFieldConjunction = true; + + private Mode mode = Mode.DEFAULT_CONJUNCTION; + + public Mode getMode() + { + return mode; + } + + public void setMode(Mode mode) + { + this.mode = mode; + } + + public boolean defaultFieldConjunction() + { + return defaultFieldConjunction; + } + + public void setDefaultFieldConjunction(boolean defaultFieldConjunction) + { + this.defaultFieldConjunction = defaultFieldConjunction; + } + + protected Object recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow) throws RecognitionException + { + throw new MismatchedTokenException(ttype, input); + } + + public Object recoverFromMismatchedSet(IntStream input, RecognitionException e, BitSet follow) throws RecognitionException + { + throw e; + } + + public String getErrorMessage(RecognitionException e, String[] tokenNames) + { + List stack = getRuleInvocationStack(e, this.getClass().getName()); + String msg = e.getMessage(); + if ( e instanceof UnwantedTokenException ) + { + UnwantedTokenException ute = (UnwantedTokenException)e; + String tokenName=""; + if ( ute.expecting== Token.EOF ) + { + tokenName = "EOF"; + } + else + { + tokenName = tokenNames[ute.expecting]; + } + msg = "extraneous input " + getTokenErrorDisplay(ute.getUnexpectedToken()) + + " expecting "+tokenName; + } + else if ( e instanceof MissingTokenException ) + { + MissingTokenException mte = (MissingTokenException)e; + String tokenName=""; + if ( mte.expecting== Token.EOF ) + { + tokenName = "EOF"; + } + else + { + tokenName = tokenNames[mte.expecting]; + } + msg = "missing " + tokenName+" at " + getTokenErrorDisplay(e.token) + + " (" + getLongTokenErrorDisplay(e.token) +")"; + } + else if ( e instanceof MismatchedTokenException ) + { + MismatchedTokenException mte = (MismatchedTokenException)e; + String tokenName=""; + if ( mte.expecting== Token.EOF ) + { + tokenName = "EOF"; + } + else + { + tokenName = tokenNames[mte.expecting]; + } + msg = "mismatched input " + getTokenErrorDisplay(e.token) + + " expecting " + tokenName +" (" + getLongTokenErrorDisplay(e.token) + ")"; + } + else if ( e instanceof MismatchedTreeNodeException ) + { + MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e; + String tokenName=""; + if ( mtne.expecting==Token.EOF ) + { + tokenName = "EOF"; + } + else + { + tokenName = tokenNames[mtne.expecting]; + } + msg = "mismatched tree node: " + mtne.node + " expecting " + tokenName; + } + else if ( e instanceof NoViableAltException ) + { + NoViableAltException nvae = (NoViableAltException)e; + msg = "no viable alternative at input " + getTokenErrorDisplay(e.token) + + "\n\t (decision=" + nvae.decisionNumber + + " state " + nvae.stateNumber + ")" + + " decision=<<" + nvae.grammarDecisionDescription + ">>"; + } + else if ( e instanceof EarlyExitException ) + { + //EarlyExitException eee = (EarlyExitException)e; + // for development, can add "(decision="+eee.decisionNumber+")" + msg = "required (...)+ loop did not match anything at input " + getTokenErrorDisplay(e.token); + } + else if ( e instanceof MismatchedSetException ) + { + MismatchedSetException mse = (MismatchedSetException)e; + msg = "mismatched input " + getTokenErrorDisplay(e.token) + + " expecting set " + mse.expecting; + } + else if ( e instanceof MismatchedNotSetException ) + { + MismatchedNotSetException mse = (MismatchedNotSetException)e; + msg = "mismatched input " + getTokenErrorDisplay(e.token) + + " expecting set " + mse.expecting; + } + else if ( e instanceof FailedPredicateException ) + { + FailedPredicateException fpe = (FailedPredicateException)e; + msg = "rule " + fpe.ruleName + " failed predicate: {" + fpe.predicateText + "}?"; + } + + if(paraphrases.size() > 0) + { + String paraphrase = (String)paraphrases.peek(); + msg = msg+" "+paraphrase; + } + return msg +"\n\t"+stack; + } + + public String getLongTokenErrorDisplay(Token t) + { + return t.toString(); + } + + + public String getErrorString(RecognitionException e) + { + String hdr = getErrorHeader(e); + String msg = getErrorMessage(e, this.getTokenNames()); + return hdr+" "+msg; + } +} +/* + * Always throw exceptions + */ + + +@rulecatch +{ +catch(RecognitionException e) +{ + throw e; +} +} +/* + * Support for emitting duplicate tokens from the lexer + * - required to emit ranges after matching floating point literals ... + */ + + +@lexer::members +{ +List tokens = new ArrayList(); +public void emit(Token token) { + state.token = token; + tokens.add(token); +} +public Token nextToken() { + nextTokenImpl(); + if ( tokens.size()==0 ) { + return getEOFToken(); + } + return (Token)tokens.remove(0); +} + +public Token nextTokenImpl() { + while (true) + { + state.token = null; + state.channel = Token.DEFAULT_CHANNEL; + state.tokenStartCharIndex = input.index(); + state.tokenStartCharPositionInLine = input.getCharPositionInLine(); + state.tokenStartLine = input.getLine(); + state.text = null; + if ( input.LA(1)==CharStream.EOF ) + { + return getEOFToken(); + } + try + { + mTokens(); + if ( state.token==null ) + { + emit(); + } + else if ( state.token==Token.SKIP_TOKEN ) + { + continue; + } + return state.token; + } + catch (RecognitionException re) + { + throw new FTSQueryException(getErrorString(re), re); + } + } + } + + public String getErrorString(RecognitionException e) + { + String hdr = getErrorHeader(e); + String msg = getErrorMessage(e, this.getTokenNames()); + return hdr+" "+msg; + } +} + + +/* + * Top level query + */ + + +ftsQuery + : + ftsDisjunction EOF + -> ftsDisjunction + ; +/* + * "OR" + * As SQL, OR has lower precedence than AND + */ + + +ftsDisjunction + : + {getMode() == Mode.CMIS}? cmisExplicitDisjunction + | {getMode() == Mode.DEFAULT_CONJUNCTION}? ftsExplicitDisjunction + | {getMode() == Mode.DEFAULT_DISJUNCTION}? ftsImplicitDisjunction + ; + +ftsExplicitDisjunction + : + ftsImplicitConjunction (or ftsImplicitConjunction)* + -> + ^(DISJUNCTION ftsImplicitConjunction+) + ; + +cmisExplicitDisjunction + : + cmisConjunction (or cmisConjunction)* + -> + ^(DISJUNCTION cmisConjunction+) + ; + +ftsImplicitDisjunction + : + (or? ftsExplicitConjunction)+ + -> + ^(DISJUNCTION ftsExplicitConjunction+) + ; +/* + * "AND" + */ + + +ftsExplicitConjunction + : + ftsPrefixed (and ftsPrefixed)* + -> + ^(CONJUNCTION ftsPrefixed+) + ; + +ftsImplicitConjunction + : + (and? ftsPrefixed)+ + -> + ^(CONJUNCTION ftsPrefixed+) + ; + +cmisConjunction + : + cmisPrefixed+ + -> + ^(CONJUNCTION cmisPrefixed+) + ; +/* + * Additional info around query compoents + * - negation, default, mandatory, optional, exclude and boost + * These options control how individual elements are embedded in OR and AND + * and how matches affect the overall score. + */ + + +ftsPrefixed + : + (not) => not ftsTest boost? + -> + ^(NEGATION ftsTest boost?) + | ftsTest boost? + -> + ^(DEFAULT ftsTest boost?) + | PLUS ftsTest boost? + -> + ^(MANDATORY ftsTest boost?) + | BAR ftsTest boost? + -> + ^(OPTIONAL ftsTest boost?) + | MINUS ftsTest boost? + -> + ^(EXCLUDE ftsTest boost?) + ; + +cmisPrefixed + : + cmisTest + -> + ^(DEFAULT cmisTest) + | MINUS cmisTest + -> + ^(EXCLUDE cmisTest) + ; +/* + * Individual query components + */ + +ftsTest + : + (ftsFieldGroupProximity) => ftsFieldGroupProximity + -> + ^(PROXIMITY ftsFieldGroupProximity) + | + (ftsRange) => ftsRange + -> + ^(RANGE ftsRange) + | + (ftsFieldGroup) => ftsFieldGroup + -> ftsFieldGroup + | + (ftsTermOrPhrase) => ftsTermOrPhrase + | + (ftsExactTermOrPhrase) => ftsExactTermOrPhrase + | + (ftsTokenisedTermOrPhrase) => ftsTokenisedTermOrPhrase + + + | LPAREN ftsDisjunction RPAREN + -> ftsDisjunction + | template + -> template + ; + +cmisTest + : + cmisTerm + -> + ^(TERM cmisTerm) + | cmisPhrase + -> + ^(PHRASE cmisPhrase) + ; + +template + : + PERCENT tempReference + -> + ^(TEMPLATE tempReference) + | PERCENT LPAREN (tempReference COMMA?)+ RPAREN + -> + ^(TEMPLATE tempReference+) + ; + +fuzzy + : + TILDA number + -> + ^(FUZZY number) + ; + +slop + : + TILDA DECIMAL_INTEGER_LITERAL + -> + ^(FUZZY DECIMAL_INTEGER_LITERAL) + ; + +boost + : + CARAT number + -> + ^(BOOST number) + ; + +ftsTermOrPhrase + : + (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fieldReferenceWithPrefix fuzzy?) + ) + | + (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) + ) + | + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fuzzy?) + ; + + +ftsExactTermOrPhrase + : + EQUALS + ( + (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(EXACT_TERM ftsWord fieldReferenceWithPrefix fuzzy?) + ) + | + (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(EXACT_TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) + ) + | + FTSPHRASE ((slop)=> slop)? + -> ^(EXACT_PHRASE FTSPHRASE slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(EXACT_TERM ftsWord fuzzy?) + ) + ; + + +ftsTokenisedTermOrPhrase + : + TILDA + ( + (fieldReferenceWithPrefix COLON) => fieldReferenceWithPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE fieldReferenceWithPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fieldReferenceWithPrefix fuzzy?) + ) + | + (fieldReferenceWithoutPrefix COLON) => fieldReferenceWithoutPrefix COLON + ( + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE fieldReferenceWithoutPrefix slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fieldReferenceWithoutPrefix fuzzy?) + ) + | + FTSPHRASE ((slop)=> slop)? + -> ^(PHRASE FTSPHRASE slop?) + | + ftsWord ((fuzzy) => fuzzy)? + -> ^(TERM ftsWord fuzzy?) + ) + ; + + +cmisTerm + : + ftsWord + -> ftsWord + ; + + +cmisPhrase + : + FTSPHRASE + -> FTSPHRASE + ; + + +ftsRange + : + (fieldReference COLON)? ftsFieldGroupRange + -> ftsFieldGroupRange fieldReference? + ; + +ftsFieldGroup + : + fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN + -> + ^(FIELD_GROUP fieldReference ftsFieldGroupDisjunction) + ; + +ftsFieldGroupDisjunction + : + {defaultFieldConjunction() == true}? ftsFieldGroupExplicitDisjunction + | {defaultFieldConjunction() == false}? ftsFieldGroupImplicitDisjunction + ; + +ftsFieldGroupExplicitDisjunction + : + ftsFieldGroupImplicitConjunction (or ftsFieldGroupImplicitConjunction)* + -> + ^(FIELD_DISJUNCTION ftsFieldGroupImplicitConjunction+) + ; + +ftsFieldGroupImplicitDisjunction + : + (or? ftsFieldGroupExplicitConjunction)+ + -> + ^(FIELD_DISJUNCTION ftsFieldGroupExplicitConjunction+) + ; +/* + * "AND" + */ + + +ftsFieldGroupExplicitConjunction + : + ftsFieldGroupPrefixed (and ftsFieldGroupPrefixed)* + -> + ^(FIELD_CONJUNCTION ftsFieldGroupPrefixed+) + ; + +ftsFieldGroupImplicitConjunction + : + (and? ftsFieldGroupPrefixed)+ + -> + ^(FIELD_CONJUNCTION ftsFieldGroupPrefixed+) + ; + +ftsFieldGroupPrefixed + : + (not) => not ftsFieldGroupTest boost? + -> + ^(FIELD_NEGATION ftsFieldGroupTest boost?) + | ftsFieldGroupTest boost? + -> + ^(FIELD_DEFAULT ftsFieldGroupTest boost?) + | PLUS ftsFieldGroupTest boost? + -> + ^(FIELD_MANDATORY ftsFieldGroupTest boost?) + | BAR ftsFieldGroupTest boost? + -> + ^(FIELD_OPTIONAL ftsFieldGroupTest boost?) + | MINUS ftsFieldGroupTest boost? + -> + ^(FIELD_EXCLUDE ftsFieldGroupTest boost?) + ; + +ftsFieldGroupTest + : + (ftsFieldGroupProximity) => ftsFieldGroupProximity + -> + ^(FG_PROXIMITY ftsFieldGroupProximity) + | (ftsFieldGroupTerm) => ftsFieldGroupTerm ( (fuzzy) => fuzzy)? + -> + ^(FG_TERM ftsFieldGroupTerm fuzzy?) + | (ftsFieldGroupExactTerm) => ftsFieldGroupExactTerm ( (fuzzy) => fuzzy)? + -> + ^(FG_EXACT_TERM ftsFieldGroupExactTerm fuzzy?) + | (ftsFieldGroupPhrase) => ftsFieldGroupPhrase ( (slop) => slop)? + -> + ^(FG_PHRASE ftsFieldGroupPhrase slop?) + | (ftsFieldGroupExactPhrase) => ftsFieldGroupExactPhrase ( (slop) => slop)? + -> + ^(FG_EXACT_PHRASE ftsFieldGroupExactPhrase slop?) + | (ftsFieldGroupTokenisedPhrase) => ftsFieldGroupTokenisedPhrase ( (slop) => slop)? + -> + ^(FG_PHRASE ftsFieldGroupTokenisedPhrase slop?) + | (ftsFieldGroupSynonym) => ftsFieldGroupSynonym ( (fuzzy) => fuzzy)? + -> + ^(FG_SYNONYM ftsFieldGroupSynonym fuzzy?) + | (ftsFieldGroupRange) => ftsFieldGroupRange + -> + ^(FG_RANGE ftsFieldGroupRange) + | LPAREN ftsFieldGroupDisjunction RPAREN + -> ftsFieldGroupDisjunction + ; + +ftsFieldGroupTerm + : + ftsWord + ; + +ftsFieldGroupExactTerm + : + EQUALS ftsFieldGroupTerm + -> ftsFieldGroupTerm + ; + +ftsFieldGroupPhrase + : + FTSPHRASE + ; + +ftsFieldGroupExactPhrase + : + EQUALS ftsFieldGroupExactPhrase + -> ftsFieldGroupExactPhrase + ; + +ftsFieldGroupTokenisedPhrase + : + TILDA ftsFieldGroupExactPhrase + -> ftsFieldGroupExactPhrase + ; + +ftsFieldGroupSynonym + : + TILDA ftsFieldGroupTerm + -> ftsFieldGroupTerm + ; + +ftsFieldGroupProximity + : + ftsFieldGroupProximityTerm ( (proximityGroup) => proximityGroup ftsFieldGroupProximityTerm)+ + -> ftsFieldGroupProximityTerm (proximityGroup ftsFieldGroupProximityTerm)+ + ; + +ftsFieldGroupProximityTerm + : + ID + | FTSWORD + | FTSPRE + | FTSWILD + | NOT + | TO + | DECIMAL_INTEGER_LITERAL + | FLOATING_POINT_LITERAL + | DATETIME + | STAR + | URI identifier + ; + +proximityGroup + : + STAR (LPAREN DECIMAL_INTEGER_LITERAL? RPAREN)? + -> + ^(PROXIMITY DECIMAL_INTEGER_LITERAL?) + ; + +ftsFieldGroupRange + : + ftsRangeWord DOTDOT ftsRangeWord + -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE + | range_left ftsRangeWord TO ftsRangeWord range_right + -> range_left ftsRangeWord ftsRangeWord range_right + ; + +range_left + : + LSQUARE + -> INCLUSIVE + | LT + -> EXCLUSIVE + ; + +range_right + : + RSQUARE + -> INCLUSIVE + | GT + -> EXCLUSIVE + ; + +fieldReference + : + fieldReferenceWithPrefix + | fieldReferenceWithoutPrefix; + +fieldReferenceWithoutPrefix + : + AT? + uri? + identifier + -> + ^(FIELD_REF identifier uri?) + ; + +fieldReferenceWithPrefix + : + AT? + prefix identifier + -> + ^(FIELD_REF identifier prefix) + ; + +tempReference + : + AT? + ( + prefix + | uri + )? + identifier + -> + ^(FIELD_REF identifier prefix? uri?) + ; + +prefix + : + identifier COLON + -> + ^(PREFIX identifier) + ; + +uri + : + URI + -> + ^(NAME_SPACE URI) + ; + +identifier + : + (ID DOT ID) => + id1=ID DOT id2=ID + -> {new CommonTree(new CommonToken(FTSLexer.ID, $id1.text+$DOT.text+$id2.text))} + | + ID + -> + ID + | + TO + -> TO + | OR + -> OR + | AND + -> AND + | NOT + -> NOT + ; + +ftsWord + : + ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase DOT|COMMA ftsWordBase) => + ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) + | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => + ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) + | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => + ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) + | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => + ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) + | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => + ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA)) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) + | (ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) ) => + ftsWordBase (DOT|COMMA) ftsWordBase (DOT|COMMA) + | ((DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) ftsWordBase + | (ftsWordBase (DOT|COMMA) ftsWordBase) => + ftsWordBase (DOT|COMMA) ftsWordBase + | ((DOT|COMMA) ftsWordBase (DOT|COMMA)) => + (DOT|COMMA) ftsWordBase (DOT|COMMA) + | (ftsWordBase (DOT|COMMA)) => + ftsWordBase (DOT|COMMA) + | (DOT|COMMA) ftsWordBase + | ftsWordBase + ; + + +ftsWordBase + : + ID + | FTSWORD + | FTSPRE + | FTSWILD + | NOT + | TO + | DECIMAL_INTEGER_LITERAL + | FLOATING_POINT_LITERAL + | STAR + | QUESTION_MARK + | DATETIME + | URI identifier + ; + +number + : + DECIMAL_INTEGER_LITERAL + | FLOATING_POINT_LITERAL + ; + +ftsRangeWord + : + ID + | FTSWORD + | FTSPRE + | FTSWILD + | FTSPHRASE + | DECIMAL_INTEGER_LITERAL + | FLOATING_POINT_LITERAL + | DATETIME + | STAR + | URI identifier + ; + +// + +or + : + OR + | BAR BAR + ; + +and + : + AND + | AMP AMP + ; + +not + : + NOT + | EXCLAMATION + ; + +// ===== // +// LEXER // +// ===== // + +FTSPHRASE + : + '"' + ( + F_ESC + | + ~( + '\\' + | '"' + ) + )* + '"' + | '\'' + ( + F_ESC + | + ~( + '\\' + | '\'' + ) + )* + '\'' + ; +/* + * Basic URI pattern based on the regular expression patttern taken from the RFC (it it not full URI parsing) + * Note this means the language can not use {} anywhere else in the syntax + */ + + +URI + : + '{' + ( + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + ) + => + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + )+ + COLON + )? + ( + ( ('//') => '//') + ( + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + | COLON + ) + => + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + | COLON + ) + )* + )? + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + | COLON + | '/' + )* + ( + '?' + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + | COLON + | '/' + | '?' + )* + )? + ( + '#' + ( + F_URI_ALPHA + | F_URI_DIGIT + | F_URI_OTHER + | COLON + | '/' + | '?' + | '#' + )* + )? + '}' + ; + +fragment +F_URI_ALPHA + : + 'A'..'Z' + | 'a'..'z' + ; + +fragment +F_URI_DIGIT + : + '0'..'9' + ; + +fragment +F_URI_ESC + : + '%' F_HEX F_HEX + ; + +fragment +F_URI_OTHER + : + '-' + | '.' + | '_' + | '~' + | '[' + | ']' + | '@' + | '!' + | '$' + | '&' + | '\'' + | '(' + | ')' + | '*' + | '+' + | ',' + | ';' + | '=' + ; + + + + /** + * DATE literal + */ + +DATETIME + : + (SPECIFICDATETIME | NOW) (FS UNIT)? ( (PLUS|MINUS) DIGIT+ UNIT)* + ; + +fragment UNIT + : + (YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS) + ; + +fragment SPECIFICDATETIME + : + DIGIT DIGIT DIGIT DIGIT + ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' (DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | (( '+' | '-') DIGIT DIGIT ( ':' DIGIT DIGIT)? ) )? )? )? )? )? )? )? )? + ; + +fragment NOW + : + ('N'|'n') ('O'|'o') ('W'|'w') + ; + +fragment YEAR + : + ('Y'|'y') ('E'|'e') ('A'|'a') ('R'|'r') ('S'|'s')? + ; + +fragment MONTH + : + ('M'|'m') ('O'|'o') ('N'|'n') ('T'|'t') ('H'|'h') ('S'|'s')? + ; + +fragment DAY + : + ('D'|'d') ('A'|'a') ('Y'|'y') ('S'|'s')? + | ('D'|'d') ('A'|'a') ('T'|'t') ('E'|'e') + ; + +fragment HOUR + : + ('H'|'h') ('O'|'o') ('U'|'u') ('R'|'r') ('S'|'s')? + ; + +fragment MINUTE + : + ('M'|'m') ('I'|'i') ('N'|'n') ('U'|'u') ('T'|'t') ('E'|'e') ('S'|'s')? + ; + +fragment SECOND + : + ('S'|'s') ('E'|'e') ('C'|'c') ('O'|'o') ('N'|'n') ('D'|'d') ('S'|'s')? + ; + +fragment MILLIS + : + ('M'|'m') ('I'|'i') ('L'|'l') ('L'|'l') ('I'|'i') ('S'|'s') ('E'|'e') ('C'|'c') ('O'|'o') ('N'|'n') ('D'|'d') ('S'|'s')? + | ('M'|'m') ('I'|'i') ('L'|'l') ('L'|'l') ('I'|'i') ('S'|'s')? + ; + +fragment FS + : + '/' + ; + +/* + * Simple tokens, note all are case insensitive + */ + + +OR + : + ( + 'O' + | 'o' + ) + ( + 'R' + | 'r' + ) + ; + +AND + : + ( + 'A' + | 'a' + ) + ( + 'N' + | 'n' + ) + ( + 'D' + | 'd' + ) + ; + +NOT + : + ( + 'N' + | 'n' + ) + ( + 'O' + | 'o' + ) + ( + 'T' + | 't' + ) + ; + +TILDA + : + '~' + ; + +LPAREN + : + '(' + ; + +RPAREN + : + ')' + ; + +PLUS + : + '+' + ; + +MINUS + : + '-' + ; + +COLON + : + ':' + ; + +STAR + : + '*' + ; + +// This is handled sa part for FLOATING_POINT_LITERAL to reduce lexer complexity +fragment DOTDOT + : + '..' + ; + +// This is handled sa part for FLOATING_POINT_LITERAL to reduce lexer complexity +fragment DOT + : + '.' + ; + +AMP + : + '&' + ; + +EXCLAMATION + : + '!' + ; + +BAR + : + '|' + ; + +EQUALS + : + '=' + ; + +QUESTION_MARK + : + '?' + ; + +LCURL + : + '{' + ; + +RCURL + : + '}' + ; + +LSQUARE + : + '[' + ; + +RSQUARE + : + ']' + ; + +TO + : + ( + 'T' + | 't' + ) + ( + 'O' + | 'o' + ) + ; + +COMMA + : + ',' + ; + +CARAT + : + '^' + ; + +DOLLAR + : + '$' + ; + +GT + : + '>' + ; + +LT + : + '<' + ; + +AT + : + '@' + ; + +PERCENT + : + '%' + ; + + +/** + * ID + * _x????_ encoding is supported for invalid sql characters but requires nothing here, they are handled in the code + * Also supports \ style escaping for non CMIS SQL + */ +ID + : + ( + ( '0'..'9' ) + ( '0'..'9' | '$' | '#' | F_ESC )* + )? + ( 'a'..'z' | 'A'..'Z' | '_' ) + ( 'a'..'z' | 'A'..'Z' | '0'..'9' | '-' | '_' | '$' | '#' | F_ESC )* + ; + + + + +// This is handled sa part for FLOATING_POINT_LITERAL to reduce lexer complexity +fragment DECIMAL_INTEGER_LITERAL + : + ; + +FLOATING_POINT_LITERAL + : + (PLUS|MINUS)? + ( + DIGIT+ + ( + {input.LA(2) != '.'}?=> DOT + ( + DIGIT+ + ( + EXPONENT + {$type = FLOATING_POINT_LITERAL; } + | + {input.LA(2) != '.'}?=> DOT + { + int index = $text.indexOf('.'); + + CommonToken digits1 = new CommonToken(input, DECIMAL_INTEGER_LITERAL, Token.DEFAULT_CHANNEL, $pos, $pos+index-1); + emit(digits1); + + CommonToken dot1 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos+index, $pos+index); + emit(dot1); + + CommonToken digits2 = new CommonToken(input, DECIMAL_INTEGER_LITERAL, Token.DEFAULT_CHANNEL, $pos+index+1, $pos + $text.length() -2); + emit(digits2); + + CommonToken dot2 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos + $text.length() -1, $pos + $text.length() -1); + emit(dot2); + + } + | + {$type = FLOATING_POINT_LITERAL; } + ) + | + EXPONENT + {$type = FLOATING_POINT_LITERAL; } + | + {$type = FLOATING_POINT_LITERAL; } + ) + | + ( + EXPONENT + {$type = FLOATING_POINT_LITERAL; } + | + {$type = DECIMAL_INTEGER_LITERAL; } + ) + + ) + | + + DOT + ( + DIGIT+ + ( + EXPONENT + {$type = FLOATING_POINT_LITERAL; } + | + {$text.startsWith(".")}? {input.LA(2) != '.'}?=> DOT + + { + + CommonToken dot1 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos, $pos); + emit(dot1); + + CommonToken digits = new CommonToken(input, DECIMAL_INTEGER_LITERAL, Token.DEFAULT_CHANNEL, $pos+1, $pos + $text.length() -2); + emit(digits); + + CommonToken dot2 = new CommonToken(input, DOT, Token.DEFAULT_CHANNEL, $pos + $text.length() -1, $pos + $text.length() -1); + emit(dot2); + + } + | + {$type = FLOATING_POINT_LITERAL; } + + ) + | + {input.LA(2) != '.'}?=> '.' + {$type = DOTDOT; } + | + {$type = DOT; } + ) + ) + ; + + + +/* + * Range and floating point have to be conbined to avoid lexer issues. + * This requires multi-token emits and addition supporting java code - see above ... + * + * Special rules for the likes of + * 1.. integer ranges + * 1... float range with the float terminated by . + * If floats are 'full' e.g. 2.4.. then the parse matches the normal float tokem and a DOTDOT token + * Likewise .1...2 does not require any special support + * + * Float and integer are based on the Java language spec. + */ + +/** + * Fragments for decimal + */ +fragment +DECIMAL_NUMERAL + : + ZERO_DIGIT + | NON_ZERO_DIGIT DIGIT* + ; + +fragment +DIGIT + : + ZERO_DIGIT + | NON_ZERO_DIGIT + ; + +fragment +ZERO_DIGIT + : + '0' + ; + +fragment +NON_ZERO_DIGIT + : + '1'..'9' + ; + +fragment +E + : + ( + 'e' + | 'E' + ) + ; + +fragment +EXPONENT + : + E SIGNED_INTEGER + ; + +fragment +SIGNED_INTEGER + : + ( + PLUS + | MINUS + )? + DIGIT+ + ; + + +FTSWORD + : + ( + F_ESC + | START_WORD + ) + ( + F_ESC + | IN_WORD + )* + ; + +FTSPRE + : + ( + F_ESC + | START_WORD + ) + ( + F_ESC + | IN_WORD + )* + STAR + ; + +FTSWILD + : + ( + F_ESC + | START_WORD + | STAR + | QUESTION_MARK + ) + ( + F_ESC + | IN_WORD + | STAR + | QUESTION_MARK + )* + ; + +fragment +F_ESC + : + '\\' + ( + // unicode + 'u' F_HEX F_HEX F_HEX F_HEX + // any single char escaped + | . + ) + ; + +fragment +F_HEX + : + '0'..'9' + | 'a'..'f' + | 'A'..'F' + ; + +fragment +START_WORD + : // Generated from Java Character.isLetterOrDigit() + '\u0024' + | '\u0030'..'\u0039' + | '\u0041'..'\u005a' + | '\u0061'..'\u007a' + | '\u00a2'..'\u00a7' + | '\u00a9'..'\u00aa' + | '\u00ae' + | '\u00b0' + | '\u00b2'..'\u00b3' + | '\u00b5'..'\u00b6' + | '\u00b9'..'\u00ba' + | '\u00bc'..'\u00be' + | '\u00c0'..'\u00d6' + | '\u00d8'..'\u00f6' + | '\u00f8'..'\u0236' + | '\u0250'..'\u02c1' + | '\u02c6'..'\u02d1' + | '\u02e0'..'\u02e4' + | '\u02ee' + | '\u0300'..'\u0357' + | '\u035d'..'\u036f' + | '\u037a'..'\u037a' + | '\u0386' + | '\u0388'..'\u038a' + | '\u038c'..'\u038c' + | '\u038e'..'\u03a1' + | '\u03a3'..'\u03ce' + | '\u03d0'..'\u03f5' + | '\u03f7'..'\u03fb' + | '\u0400'..'\u0486' + | '\u0488'..'\u04ce' + | '\u04d0'..'\u04f5' + | '\u04f8'..'\u04f9' + | '\u0500'..'\u050f' + | '\u0531'..'\u0556' + | '\u0559' + | '\u0561'..'\u0587' + | '\u0591'..'\u05a1' + | '\u05a3'..'\u05b9' + | '\u05bb'..'\u05bd' + | '\u05bf' + | '\u05c1'..'\u05c2' + | '\u05c4'..'\u05c4' + | '\u05d0'..'\u05ea' + | '\u05f0'..'\u05f2' + | '\u060e'..'\u0615' + | '\u0621'..'\u063a' + | '\u0640'..'\u0658' + | '\u0660'..'\u0669' + | '\u066e'..'\u06d3' + | '\u06d5'..'\u06dc' + | '\u06de'..'\u06ff' + | '\u0710'..'\u074a' + | '\u074d'..'\u074f' + | '\u0780'..'\u07b1' + | '\u0901'..'\u0939' + | '\u093c'..'\u094d' + | '\u0950'..'\u0954' + | '\u0958'..'\u0963' + | '\u0966'..'\u096f' + | '\u0981'..'\u0983' + | '\u0985'..'\u098c' + | '\u098f'..'\u0990' + | '\u0993'..'\u09a8' + | '\u09aa'..'\u09b0' + | '\u09b2'..'\u09b2' + | '\u09b6'..'\u09b9' + | '\u09bc'..'\u09c4' + | '\u09c7'..'\u09c8' + | '\u09cb'..'\u09cd' + | '\u09d7'..'\u09d7' + | '\u09dc'..'\u09dd' + | '\u09df'..'\u09e3' + | '\u09e6'..'\u09fa' + | '\u0a01'..'\u0a03' + | '\u0a05'..'\u0a0a' + | '\u0a0f'..'\u0a10' + | '\u0a13'..'\u0a28' + | '\u0a2a'..'\u0a30' + | '\u0a32'..'\u0a33' + | '\u0a35'..'\u0a36' + | '\u0a38'..'\u0a39' + | '\u0a3c'..'\u0a3c' + | '\u0a3e'..'\u0a42' + | '\u0a47'..'\u0a48' + | '\u0a4b'..'\u0a4d' + | '\u0a59'..'\u0a5c' + | '\u0a5e'..'\u0a5e' + | '\u0a66'..'\u0a74' + | '\u0a81'..'\u0a83' + | '\u0a85'..'\u0a8d' + | '\u0a8f'..'\u0a91' + | '\u0a93'..'\u0aa8' + | '\u0aaa'..'\u0ab0' + | '\u0ab2'..'\u0ab3' + | '\u0ab5'..'\u0ab9' + | '\u0abc'..'\u0ac5' + | '\u0ac7'..'\u0ac9' + | '\u0acb'..'\u0acd' + | '\u0ad0'..'\u0ad0' + | '\u0ae0'..'\u0ae3' + | '\u0ae6'..'\u0aef' + | '\u0af1'..'\u0af1' + | '\u0b01'..'\u0b03' + | '\u0b05'..'\u0b0c' + | '\u0b0f'..'\u0b10' + | '\u0b13'..'\u0b28' + | '\u0b2a'..'\u0b30' + | '\u0b32'..'\u0b33' + | '\u0b35'..'\u0b39' + | '\u0b3c'..'\u0b43' + | '\u0b47'..'\u0b48' + | '\u0b4b'..'\u0b4d' + | '\u0b56'..'\u0b57' + | '\u0b5c'..'\u0b5d' + | '\u0b5f'..'\u0b61' + | '\u0b66'..'\u0b71' + | '\u0b82'..'\u0b83' + | '\u0b85'..'\u0b8a' + | '\u0b8e'..'\u0b90' + | '\u0b92'..'\u0b95' + | '\u0b99'..'\u0b9a' + | '\u0b9c'..'\u0b9c' + | '\u0b9e'..'\u0b9f' + | '\u0ba3'..'\u0ba4' + | '\u0ba8'..'\u0baa' + | '\u0bae'..'\u0bb5' + | '\u0bb7'..'\u0bb9' + | '\u0bbe'..'\u0bc2' + | '\u0bc6'..'\u0bc8' + | '\u0bca'..'\u0bcd' + | '\u0bd7'..'\u0bd7' + | '\u0be7'..'\u0bfa' + | '\u0c01'..'\u0c03' + | '\u0c05'..'\u0c0c' + | '\u0c0e'..'\u0c10' + | '\u0c12'..'\u0c28' + | '\u0c2a'..'\u0c33' + | '\u0c35'..'\u0c39' + | '\u0c3e'..'\u0c44' + | '\u0c46'..'\u0c48' + | '\u0c4a'..'\u0c4d' + | '\u0c55'..'\u0c56' + | '\u0c60'..'\u0c61' + | '\u0c66'..'\u0c6f' + | '\u0c82'..'\u0c83' + | '\u0c85'..'\u0c8c' + | '\u0c8e'..'\u0c90' + | '\u0c92'..'\u0ca8' + | '\u0caa'..'\u0cb3' + | '\u0cb5'..'\u0cb9' + | '\u0cbc'..'\u0cc4' + | '\u0cc6'..'\u0cc8' + | '\u0cca'..'\u0ccd' + | '\u0cd5'..'\u0cd6' + | '\u0cde'..'\u0cde' + | '\u0ce0'..'\u0ce1' + | '\u0ce6'..'\u0cef' + | '\u0d02'..'\u0d03' + | '\u0d05'..'\u0d0c' + | '\u0d0e'..'\u0d10' + | '\u0d12'..'\u0d28' + | '\u0d2a'..'\u0d39' + | '\u0d3e'..'\u0d43' + | '\u0d46'..'\u0d48' + | '\u0d4a'..'\u0d4d' + | '\u0d57'..'\u0d57' + | '\u0d60'..'\u0d61' + | '\u0d66'..'\u0d6f' + | '\u0d82'..'\u0d83' + | '\u0d85'..'\u0d96' + | '\u0d9a'..'\u0db1' + | '\u0db3'..'\u0dbb' + | '\u0dbd'..'\u0dbd' + | '\u0dc0'..'\u0dc6' + | '\u0dca'..'\u0dca' + | '\u0dcf'..'\u0dd4' + | '\u0dd6'..'\u0dd6' + | '\u0dd8'..'\u0ddf' + | '\u0df2'..'\u0df3' + | '\u0e01'..'\u0e3a' + | '\u0e3f'..'\u0e4e' + | '\u0e50'..'\u0e59' + | '\u0e81'..'\u0e82' + | '\u0e84'..'\u0e84' + | '\u0e87'..'\u0e88' + | '\u0e8a'..'\u0e8a' + | '\u0e8d'..'\u0e8d' + | '\u0e94'..'\u0e97' + | '\u0e99'..'\u0e9f' + | '\u0ea1'..'\u0ea3' + | '\u0ea5'..'\u0ea5' + | '\u0ea7'..'\u0ea7' + | '\u0eaa'..'\u0eab' + | '\u0ead'..'\u0eb9' + | '\u0ebb'..'\u0ebd' + | '\u0ec0'..'\u0ec4' + | '\u0ec6'..'\u0ec6' + | '\u0ec8'..'\u0ecd' + | '\u0ed0'..'\u0ed9' + | '\u0edc'..'\u0edd' + | '\u0f00'..'\u0f03' + | '\u0f13'..'\u0f39' + | '\u0f3e'..'\u0f47' + | '\u0f49'..'\u0f6a' + | '\u0f71'..'\u0f84' + | '\u0f86'..'\u0f8b' + | '\u0f90'..'\u0f97' + | '\u0f99'..'\u0fbc' + | '\u0fbe'..'\u0fcc' + | '\u0fcf'..'\u0fcf' + | '\u1000'..'\u1021' + | '\u1023'..'\u1027' + | '\u1029'..'\u102a' + | '\u102c'..'\u1032' + | '\u1036'..'\u1039' + | '\u1040'..'\u1049' + | '\u1050'..'\u1059' + | '\u10a0'..'\u10c5' + | '\u10d0'..'\u10f8' + | '\u1100'..'\u1159' + | '\u115f'..'\u11a2' + | '\u11a8'..'\u11f9' + | '\u1200'..'\u1206' + | '\u1208'..'\u1246' + | '\u1248'..'\u1248' + | '\u124a'..'\u124d' + | '\u1250'..'\u1256' + | '\u1258'..'\u1258' + | '\u125a'..'\u125d' + | '\u1260'..'\u1286' + | '\u1288'..'\u1288' + | '\u128a'..'\u128d' + | '\u1290'..'\u12ae' + | '\u12b0'..'\u12b0' + | '\u12b2'..'\u12b5' + | '\u12b8'..'\u12be' + | '\u12c0'..'\u12c0' + | '\u12c2'..'\u12c5' + | '\u12c8'..'\u12ce' + | '\u12d0'..'\u12d6' + | '\u12d8'..'\u12ee' + | '\u12f0'..'\u130e' + | '\u1310'..'\u1310' + | '\u1312'..'\u1315' + | '\u1318'..'\u131e' + | '\u1320'..'\u1346' + | '\u1348'..'\u135a' + | '\u1369'..'\u137c' + | '\u13a0'..'\u13f4' + | '\u1401'..'\u166c' + | '\u166f'..'\u1676' + | '\u1681'..'\u169a' + | '\u16a0'..'\u16ea' + | '\u16ee'..'\u16f0' + | '\u1700'..'\u170c' + | '\u170e'..'\u1714' + | '\u1720'..'\u1734' + | '\u1740'..'\u1753' + | '\u1760'..'\u176c' + | '\u176e'..'\u1770' + | '\u1772'..'\u1773' + | '\u1780'..'\u17b3' + | '\u17b6'..'\u17d3' + | '\u17d7' + | '\u17db'..'\u17dd' + | '\u17e0'..'\u17e9' + | '\u17f0'..'\u17f9' + | '\u180b'..'\u180d' + | '\u1810'..'\u1819' + | '\u1820'..'\u1877' + | '\u1880'..'\u18a9' + | '\u1900'..'\u191c' + | '\u1920'..'\u192b' + | '\u1930'..'\u193b' + | '\u1940'..'\u1940' + | '\u1946'..'\u196d' + | '\u1970'..'\u1974' + | '\u19e0'..'\u19ff' + | '\u1d00'..'\u1d6b' + | '\u1e00'..'\u1e9b' + | '\u1ea0'..'\u1ef9' + | '\u1f00'..'\u1f15' + | '\u1f18'..'\u1f1d' + | '\u1f20'..'\u1f45' + | '\u1f48'..'\u1f4d' + | '\u1f50'..'\u1f57' + | '\u1f59'..'\u1f59' + | '\u1f5b'..'\u1f5b' + | '\u1f5d'..'\u1f5d' + | '\u1f5f'..'\u1f7d' + | '\u1f80'..'\u1fb4' + | '\u1fb6'..'\u1fbc' + | '\u1fbe' + | '\u1fc2'..'\u1fc4' + | '\u1fc6'..'\u1fcc' + | '\u1fd0'..'\u1fd3' + | '\u1fd6'..'\u1fdb' + | '\u1fe0'..'\u1fec' + | '\u1ff2'..'\u1ff4' + | '\u1ff6'..'\u1ffc' + | '\u2070'..'\u2071' + | '\u2074'..'\u2079' + | '\u207f'..'\u2089' + | '\u20a0'..'\u20b1' + | '\u20d0'..'\u20ea' + | '\u2100'..'\u213b' + | '\u213d'..'\u213f' + | '\u2145'..'\u214a' + | '\u2153'..'\u2183' + | '\u2195'..'\u2199' + | '\u219c'..'\u219f' + | '\u21a1'..'\u21a2' + | '\u21a4'..'\u21a5' + | '\u21a7'..'\u21ad' + | '\u21af'..'\u21cd' + | '\u21d0'..'\u21d1' + | '\u21d3' + | '\u21d5'..'\u21f3' + | '\u2300'..'\u2307' + | '\u230c'..'\u231f' + | '\u2322'..'\u2328' + | '\u232b'..'\u237b' + | '\u237d'..'\u239a' + | '\u23b7'..'\u23d0' + | '\u2400'..'\u2426' + | '\u2440'..'\u244a' + | '\u2460'..'\u25b6' + | '\u25b8'..'\u25c0' + | '\u25c2'..'\u25f7' + | '\u2600'..'\u2617' + | '\u2619'..'\u266e' + | '\u2670'..'\u267d' + | '\u2680'..'\u2691' + | '\u26a0'..'\u26a1' + | '\u2701'..'\u2704' + | '\u2706'..'\u2709' + | '\u270c'..'\u2727' + | '\u2729'..'\u274b' + | '\u274d'..'\u274d' + | '\u274f'..'\u2752' + | '\u2756'..'\u2756' + | '\u2758'..'\u275e' + | '\u2761'..'\u2767' + | '\u2776'..'\u2794' + | '\u2798'..'\u27af' + | '\u27b1'..'\u27be' + | '\u2800'..'\u28ff' + | '\u2b00'..'\u2b0d' + | '\u2e80'..'\u2e99' + | '\u2e9b'..'\u2ef3' + | '\u2f00'..'\u2fd5' + | '\u2ff0'..'\u2ffb' + | '\u3004'..'\u3007' + | '\u3012'..'\u3013' + | '\u3020'..'\u302f' + | '\u3031'..'\u303c' + | '\u303e'..'\u303f' + | '\u3041'..'\u3096' + | '\u3099'..'\u309a' + | '\u309d'..'\u309f' + | '\u30a1'..'\u30fa' + | '\u30fc'..'\u30ff' + | '\u3105'..'\u312c' + | '\u3131'..'\u318e' + | '\u3190'..'\u31b7' + | '\u31f0'..'\u321e' + | '\u3220'..'\u3243' + | '\u3250'..'\u327d' + | '\u327f'..'\u32fe' + | '\u3300'..'\u4db5' + | '\u4dc0'..'\u9fa5' + | '\ua000'..'\ua48c' + | '\ua490'..'\ua4c6' + | '\uac00'..'\ud7a3' + | '\uf900'..'\ufa2d' + | '\ufa30'..'\ufa6a' + | '\ufb00'..'\ufb06' + | '\ufb13'..'\ufb17' + | '\ufb1d'..'\ufb28' + | '\ufb2a'..'\ufb36' + | '\ufb38'..'\ufb3c' + | '\ufb3e'..'\ufb3e' + | '\ufb40'..'\ufb41' + | '\ufb43'..'\ufb44' + | '\ufb46'..'\ufbb1' + | '\ufbd3'..'\ufd3d' + | '\ufd50'..'\ufd8f' + | '\ufd92'..'\ufdc7' + | '\ufdf0'..'\ufdfd' + | '\ufe00'..'\ufe0f' + | '\ufe20'..'\ufe23' + | '\ufe69' + | '\ufe70'..'\ufe74' + | '\ufe76'..'\ufefc' + | '\uff04' + | '\uff10'..'\uff19' + | '\uff21'..'\uff3a' + | '\uff41'..'\uff5a' + | '\uff66'..'\uffbe' + | '\uffc2'..'\uffc7' + | '\uffca'..'\uffcf' + | '\uffd2'..'\uffd7' + | '\uffda'..'\uffdc' + | '\uffe0'..'\uffe1' + | '\uffe4'..'\uffe6' + | '\uffe8' + | '\uffed'..'\uffee' + ; + +// exclude ? 003F - wildcard +// exclude * 002A - wildcard +// exclude \ 005C - escape +// exclude : 003A - field indicator +// exclude ~ 00&E - fuzzy queries +// exclude > 003C - ranges +// exclude < 003E - range +// exclude . 002E +// exclude , 002C +// exclude +fragment +IN_WORD + : + '\u0021'..'\u0027' + | '\u002b' + | '\u002d' + | '\u002f'..'\u0039' + | '\u003b' + | '\u003d' + | '\u0040'..'\u005a' + | '\u005f' + | '\u0061'..'\u007a' + | '\u007c' + | '\u00a1'..'\u00a7' + | '\u00a9'..'\u00aa' + | '\u00ac' + | '\u00ae' + | '\u00b0'..'\u00b3' + | '\u00b5'..'\u00b7' + | '\u00b9'..'\u00ba' + | '\u00bc'..'\u0236' + | '\u0250'..'\u02c1' + | '\u02c6'..'\u02d1' + | '\u02e0'..'\u02e4' + | '\u02ee' + | '\u0300'..'\u0357' + | '\u035d'..'\u036f' + | '\u037a'..'\u037a' + | '\u037e'..'\u037e' + | '\u0386'..'\u038a' + | '\u038c'..'\u038c' + | '\u038e'..'\u03a1' + | '\u03a3'..'\u03ce' + | '\u03d0'..'\u03fb' + | '\u0400'..'\u0486' + | '\u0488'..'\u04ce' + | '\u04d0'..'\u04f5' + | '\u04f8'..'\u04f9' + | '\u0500'..'\u050f' + | '\u0531'..'\u0556' + | '\u0559'..'\u055f' + | '\u0561'..'\u0587' + | '\u0589'..'\u058a' + | '\u0591'..'\u05a1' + | '\u05a3'..'\u05b9' + | '\u05bb'..'\u05c4' + | '\u05d0'..'\u05ea' + | '\u05f0'..'\u05f4' + | '\u060c'..'\u0615' + | '\u061b'..'\u061b' + | '\u061f'..'\u061f' + | '\u0621'..'\u063a' + | '\u0640'..'\u0658' + | '\u0660'..'\u06dc' + | '\u06de'..'\u070d' + | '\u0710'..'\u074a' + | '\u074d'..'\u074f' + | '\u0780'..'\u07b1' + | '\u0901'..'\u0939' + | '\u093c'..'\u094d' + | '\u0950'..'\u0954' + | '\u0958'..'\u0970' + | '\u0981'..'\u0983' + | '\u0985'..'\u098c' + | '\u098f'..'\u0990' + | '\u0993'..'\u09a8' + | '\u09aa'..'\u09b0' + | '\u09b2'..'\u09b2' + | '\u09b6'..'\u09b9' + | '\u09bc'..'\u09c4' + | '\u09c7'..'\u09c8' + | '\u09cb'..'\u09cd' + | '\u09d7'..'\u09d7' + | '\u09dc'..'\u09dd' + | '\u09df'..'\u09e3' + | '\u09e6'..'\u09fa' + | '\u0a01'..'\u0a03' + | '\u0a05'..'\u0a0a' + | '\u0a0f'..'\u0a10' + | '\u0a13'..'\u0a28' + | '\u0a2a'..'\u0a30' + | '\u0a32'..'\u0a33' + | '\u0a35'..'\u0a36' + | '\u0a38'..'\u0a39' + | '\u0a3c'..'\u0a3c' + | '\u0a3e'..'\u0a42' + | '\u0a47'..'\u0a48' + | '\u0a4b'..'\u0a4d' + | '\u0a59'..'\u0a5c' + | '\u0a5e'..'\u0a5e' + | '\u0a66'..'\u0a74' + | '\u0a81'..'\u0a83' + | '\u0a85'..'\u0a8d' + | '\u0a8f'..'\u0a91' + | '\u0a93'..'\u0aa8' + | '\u0aaa'..'\u0ab0' + | '\u0ab2'..'\u0ab3' + | '\u0ab5'..'\u0ab9' + | '\u0abc'..'\u0ac5' + | '\u0ac7'..'\u0ac9' + | '\u0acb'..'\u0acd' + | '\u0ad0'..'\u0ad0' + | '\u0ae0'..'\u0ae3' + | '\u0ae6'..'\u0aef' + | '\u0af1'..'\u0af1' + | '\u0b01'..'\u0b03' + | '\u0b05'..'\u0b0c' + | '\u0b0f'..'\u0b10' + | '\u0b13'..'\u0b28' + | '\u0b2a'..'\u0b30' + | '\u0b32'..'\u0b33' + | '\u0b35'..'\u0b39' + | '\u0b3c'..'\u0b43' + | '\u0b47'..'\u0b48' + | '\u0b4b'..'\u0b4d' + | '\u0b56'..'\u0b57' + | '\u0b5c'..'\u0b5d' + | '\u0b5f'..'\u0b61' + | '\u0b66'..'\u0b71' + | '\u0b82'..'\u0b83' + | '\u0b85'..'\u0b8a' + | '\u0b8e'..'\u0b90' + | '\u0b92'..'\u0b95' + | '\u0b99'..'\u0b9a' + | '\u0b9c'..'\u0b9c' + | '\u0b9e'..'\u0b9f' + | '\u0ba3'..'\u0ba4' + | '\u0ba8'..'\u0baa' + | '\u0bae'..'\u0bb5' + | '\u0bb7'..'\u0bb9' + | '\u0bbe'..'\u0bc2' + | '\u0bc6'..'\u0bc8' + | '\u0bca'..'\u0bcd' + | '\u0bd7'..'\u0bd7' + | '\u0be7'..'\u0bfa' + | '\u0c01'..'\u0c03' + | '\u0c05'..'\u0c0c' + | '\u0c0e'..'\u0c10' + | '\u0c12'..'\u0c28' + | '\u0c2a'..'\u0c33' + | '\u0c35'..'\u0c39' + | '\u0c3e'..'\u0c44' + | '\u0c46'..'\u0c48' + | '\u0c4a'..'\u0c4d' + | '\u0c55'..'\u0c56' + | '\u0c60'..'\u0c61' + | '\u0c66'..'\u0c6f' + | '\u0c82'..'\u0c83' + | '\u0c85'..'\u0c8c' + | '\u0c8e'..'\u0c90' + | '\u0c92'..'\u0ca8' + | '\u0caa'..'\u0cb3' + | '\u0cb5'..'\u0cb9' + | '\u0cbc'..'\u0cc4' + | '\u0cc6'..'\u0cc8' + | '\u0cca'..'\u0ccd' + | '\u0cd5'..'\u0cd6' + | '\u0cde'..'\u0cde' + | '\u0ce0'..'\u0ce1' + | '\u0ce6'..'\u0cef' + | '\u0d02'..'\u0d03' + | '\u0d05'..'\u0d0c' + | '\u0d0e'..'\u0d10' + | '\u0d12'..'\u0d28' + | '\u0d2a'..'\u0d39' + | '\u0d3e'..'\u0d43' + | '\u0d46'..'\u0d48' + | '\u0d4a'..'\u0d4d' + | '\u0d57'..'\u0d57' + | '\u0d60'..'\u0d61' + | '\u0d66'..'\u0d6f' + | '\u0d82'..'\u0d83' + | '\u0d85'..'\u0d96' + | '\u0d9a'..'\u0db1' + | '\u0db3'..'\u0dbb' + | '\u0dbd'..'\u0dbd' + | '\u0dc0'..'\u0dc6' + | '\u0dca'..'\u0dca' + | '\u0dcf'..'\u0dd4' + | '\u0dd6'..'\u0dd6' + | '\u0dd8'..'\u0ddf' + | '\u0df2'..'\u0df4' + | '\u0e01'..'\u0e3a' + | '\u0e3f'..'\u0e5b' + | '\u0e81'..'\u0e82' + | '\u0e84'..'\u0e84' + | '\u0e87'..'\u0e88' + | '\u0e8a'..'\u0e8a' + | '\u0e8d'..'\u0e8d' + | '\u0e94'..'\u0e97' + | '\u0e99'..'\u0e9f' + | '\u0ea1'..'\u0ea3' + | '\u0ea5'..'\u0ea5' + | '\u0ea7'..'\u0ea7' + | '\u0eaa'..'\u0eab' + | '\u0ead'..'\u0eb9' + | '\u0ebb'..'\u0ebd' + | '\u0ec0'..'\u0ec4' + | '\u0ec6'..'\u0ec6' + | '\u0ec8'..'\u0ecd' + | '\u0ed0'..'\u0ed9' + | '\u0edc'..'\u0edd' + | '\u0f00'..'\u0f39' + | '\u0f3e'..'\u0f47' + | '\u0f49'..'\u0f6a' + | '\u0f71'..'\u0f8b' + | '\u0f90'..'\u0f97' + | '\u0f99'..'\u0fbc' + | '\u0fbe'..'\u0fcc' + | '\u0fcf'..'\u0fcf' + | '\u1000'..'\u1021' + | '\u1023'..'\u1027' + | '\u1029'..'\u102a' + | '\u102c'..'\u1032' + | '\u1036'..'\u1039' + | '\u1040'..'\u1059' + | '\u10a0'..'\u10c5' + | '\u10d0'..'\u10f8' + | '\u10fb'..'\u10fb' + | '\u1100'..'\u1159' + | '\u115f'..'\u11a2' + | '\u11a8'..'\u11f9' + | '\u1200'..'\u1206' + | '\u1208'..'\u1246' + | '\u1248'..'\u1248' + | '\u124a'..'\u124d' + | '\u1250'..'\u1256' + | '\u1258'..'\u1258' + | '\u125a'..'\u125d' + | '\u1260'..'\u1286' + | '\u1288'..'\u1288' + | '\u128a'..'\u128d' + | '\u1290'..'\u12ae' + | '\u12b0'..'\u12b0' + | '\u12b2'..'\u12b5' + | '\u12b8'..'\u12be' + | '\u12c0'..'\u12c0' + | '\u12c2'..'\u12c5' + | '\u12c8'..'\u12ce' + | '\u12d0'..'\u12d6' + | '\u12d8'..'\u12ee' + | '\u12f0'..'\u130e' + | '\u1310'..'\u1310' + | '\u1312'..'\u1315' + | '\u1318'..'\u131e' + | '\u1320'..'\u1346' + | '\u1348'..'\u135a' + | '\u1361'..'\u137c' + | '\u13a0'..'\u13f4' + | '\u1401'..'\u1676' + | '\u1681'..'\u169a' + | '\u16a0'..'\u16f0' + | '\u1700'..'\u170c' + | '\u170e'..'\u1714' + | '\u1720'..'\u1736' + | '\u1740'..'\u1753' + | '\u1760'..'\u176c' + | '\u176e'..'\u1770' + | '\u1772'..'\u1773' + | '\u1780'..'\u17b3' + | '\u17b6'..'\u17dd' + | '\u17e0'..'\u17e9' + | '\u17f0'..'\u17f9' + | '\u1800'..'\u180d' + | '\u1810'..'\u1819' + | '\u1820'..'\u1877' + | '\u1880'..'\u18a9' + | '\u1900'..'\u191c' + | '\u1920'..'\u192b' + | '\u1930'..'\u193b' + | '\u1940'..'\u1940' + | '\u1944'..'\u196d' + | '\u1970'..'\u1974' + | '\u19e0'..'\u19ff' + | '\u1d00'..'\u1d6b' + | '\u1e00'..'\u1e9b' + | '\u1ea0'..'\u1ef9' + | '\u1f00'..'\u1f15' + | '\u1f18'..'\u1f1d' + | '\u1f20'..'\u1f45' + | '\u1f48'..'\u1f4d' + | '\u1f50'..'\u1f57' + | '\u1f59'..'\u1f59' + | '\u1f5b'..'\u1f5b' + | '\u1f5d'..'\u1f5d' + | '\u1f5f'..'\u1f7d' + | '\u1f80'..'\u1fb4' + | '\u1fb6'..'\u1fbc' + | '\u1fbe' + | '\u1fc2'..'\u1fc4' + | '\u1fc6'..'\u1fcc' + | '\u1fd0'..'\u1fd3' + | '\u1fd6'..'\u1fdb' + | '\u1fe0'..'\u1fec' + | '\u1ff2'..'\u1ff4' + | '\u1ff6'..'\u1ffc' + | '\u2010'..'\u2017' + | '\u2020'..'\u2027' + | '\u2030'..'\u2038' + | '\u203b'..'\u2044' + | '\u2047'..'\u2054' + | '\u2057'..'\u2057' + | '\u2070'..'\u2071' + | '\u2074'..'\u207c' + | '\u207f'..'\u208c' + | '\u20a0'..'\u20b1' + | '\u20d0'..'\u20ea' + | '\u2100'..'\u213b' + | '\u213d'..'\u214b' + | '\u2153'..'\u2183' + | '\u2190'..'\u2328' + | '\u232b'..'\u23b3' + | '\u23b6'..'\u23d0' + | '\u2400'..'\u2426' + | '\u2440'..'\u244a' + | '\u2460'..'\u2617' + | '\u2619'..'\u267d' + | '\u2680'..'\u2691' + | '\u26a0'..'\u26a1' + | '\u2701'..'\u2704' + | '\u2706'..'\u2709' + | '\u270c'..'\u2727' + | '\u2729'..'\u274b' + | '\u274d'..'\u274d' + | '\u274f'..'\u2752' + | '\u2756'..'\u2756' + | '\u2758'..'\u275e' + | '\u2761'..'\u2767' + | '\u2776'..'\u2794' + | '\u2798'..'\u27af' + | '\u27b1'..'\u27be' + | '\u27d0'..'\u27e5' + | '\u27f0'..'\u2982' + | '\u2999'..'\u29d7' + | '\u29dc'..'\u29fb' + | '\u29fe'..'\u2b0d' + | '\u2e80'..'\u2e99' + | '\u2e9b'..'\u2ef3' + | '\u2f00'..'\u2fd5' + | '\u2ff0'..'\u2ffb' + | '\u3001'..'\u3007' + | '\u3012'..'\u3013' + | '\u301c' + | '\u3020'..'\u303f' + | '\u3041'..'\u3096' + | '\u3099'..'\u309a' + | '\u309d'..'\u30ff' + | '\u3105'..'\u312c' + | '\u3131'..'\u318e' + | '\u3190'..'\u31b7' + | '\u31f0'..'\u321e' + | '\u3220'..'\u3243' + | '\u3250'..'\u327d' + | '\u327f'..'\u32fe' + | '\u3300'..'\u4db5' + | '\u4dc0'..'\u9fa5' + | '\ua000'..'\ua48c' + | '\ua490'..'\ua4c6' + | '\uac00'..'\ud7a3' + | '\uf900'..'\ufa2d' + | '\ufa30'..'\ufa6a' + | '\ufb00'..'\ufb06' + | '\ufb13'..'\ufb17' + | '\ufb1d'..'\ufb36' + | '\ufb38'..'\ufb3c' + | '\ufb3e'..'\ufb3e' + | '\ufb40'..'\ufb41' + | '\ufb43'..'\ufb44' + | '\ufb46'..'\ufbb1' + | '\ufbd3'..'\ufd3d' + | '\ufd50'..'\ufd8f' + | '\ufd92'..'\ufdc7' + | '\ufdf0'..'\ufdfd' + | '\ufe00'..'\ufe0f' + | '\ufe20'..'\ufe23' + | '\ufe30'..'\ufe34' + | '\ufe45'..'\ufe46' + | '\ufe49'..'\ufe52' + | '\ufe54'..'\ufe58' + | '\ufe5f'..'\ufe66' + | '\ufe68'..'\ufe6b' + | '\ufe70'..'\ufe74' + | '\ufe76'..'\ufefc' + | '\uff01'..'\uff07' + | '\uff0a'..'\uff3a' + | '\uff3c' + | '\uff3f' + | '\uff41'..'\uff5a' + | '\uff5c' + | '\uff5e' + | '\uff61' + | '\uff64'..'\uffbe' + | '\uffc2'..'\uffc7' + | '\uffca'..'\uffcf' + | '\uffd2'..'\uffd7' + | '\uffda'..'\uffdc' + | '\uffe0'..'\uffe2' + | '\uffe4'..'\uffe6' + | '\uffe8'..'\uffee' + ; + + +/* + * Standard white space + * White space may be escaped by \ in some tokens + */ + + +WS + : + ( + ' ' + | '\t' + | '\r' + | '\n' + | '\u000C' // FF + | '\u00a0' // Additional Unicode space from Character.isSpaceChar() + | '\u1680' + | '\u180e' + | '\u2000' .. '\u200b' + | '\u2028' .. '\u2029' + | '\u202f' + | '\u205f' + | '\u3000' + )+ + { $channel = HIDDEN; } + ; diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java index a3796913b4..2834b1a77a 100644 --- a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSLexer.java @@ -1,29 +1,4 @@ -/* - * #%L - * Alfresco Data model classes - * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - * #L% - */ -// $ANTLR 3.5.2 src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g 2019-11-22 15:06:29 +// $ANTLR null /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g 2019-12-18 09:26:26 package org.alfresco.repo.search.impl.parsers; @@ -210,14 +185,14 @@ public class FTSLexer extends Lexer { public FTSLexer(CharStream input, RecognizerSharedState state) { super(input,state); } - @Override public String getGrammarFileName() { return "src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g"; } + @Override public String getGrammarFileName() { return "/home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g"; } // $ANTLR start "FTSPHRASE" public final void mFTSPHRASE() throws RecognitionException { try { int _type = FTSPHRASE; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:970:9: ( '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:970:9: ( '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' ) int alt3=2; int LA3_0 = input.LA(1); if ( (LA3_0=='\"') ) { @@ -236,10 +211,10 @@ public class FTSLexer extends Lexer { switch (alt3) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:971:9: '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:971:9: '\"' ( F_ESC |~ ( '\\\\' | '\"' ) )* '\"' { match('\"'); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:972:9: ( F_ESC |~ ( '\\\\' | '\"' ) )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:972:9: ( F_ESC |~ ( '\\\\' | '\"' ) )* loop1: while (true) { int alt1=3; @@ -253,14 +228,14 @@ public class FTSLexer extends Lexer { switch (alt1) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:973:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:973:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:975:17: ~ ( '\\\\' | '\"' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:975:17: ~ ( '\\\\' | '\"' ) { if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) { input.consume(); @@ -284,10 +259,10 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:981:11: '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:981:11: '\\'' ( F_ESC |~ ( '\\\\' | '\\'' ) )* '\\'' { match('\''); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:982:9: ( F_ESC |~ ( '\\\\' | '\\'' ) )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:982:9: ( F_ESC |~ ( '\\\\' | '\\'' ) )* loop2: while (true) { int alt2=3; @@ -301,14 +276,14 @@ public class FTSLexer extends Lexer { switch (alt2) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:983:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:983:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:985:17: ~ ( '\\\\' | '\\'' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:985:17: ~ ( '\\\\' | '\\'' ) { if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) { input.consume(); @@ -347,18 +322,18 @@ public class FTSLexer extends Lexer { try { int _type = URI; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:999:9: ( '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1000:9: '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:999:9: ( '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1000:9: '{' ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? '}' { match('{'); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1001:9: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1001:9: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON )? int alt5=2; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1002:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1002:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ COLON { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1008:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1008:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER )+ int cnt4=0; loop4: while (true) { @@ -370,7 +345,7 @@ public class FTSLexer extends Lexer { switch (alt4) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= '9')||input.LA(1)==';'||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -401,7 +376,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1015:9: ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1015:9: ( ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* )? int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0=='/') ) { @@ -415,16 +390,16 @@ public class FTSLexer extends Lexer { } switch (alt7) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:17: ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:17: ( ( '//' )=> '//' ) ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:17: ( ( '//' )=> '//' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:19: ( '//' )=> '//' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:17: ( ( '//' )=> '//' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:19: ( '//' )=> '//' { match("//"); if (state.failed) return; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1017:17: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1017:17: ( ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) )* loop6: while (true) { int alt6=2; @@ -439,7 +414,7 @@ public class FTSLexer extends Lexer { switch (alt6) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1018:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1018:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON )=> ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -464,7 +439,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1033:9: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1033:9: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' )* loop8: while (true) { int alt8=2; @@ -475,7 +450,7 @@ public class FTSLexer extends Lexer { switch (alt8) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -495,7 +470,7 @@ public class FTSLexer extends Lexer { } } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1040:9: ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1040:9: ( '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* )? int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0=='?') ) { @@ -503,10 +478,10 @@ public class FTSLexer extends Lexer { } switch (alt10) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1041:17: '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1041:17: '?' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* { match('?'); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1042:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1042:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' )* loop9: while (true) { int alt9=2; @@ -517,7 +492,7 @@ public class FTSLexer extends Lexer { switch (alt9) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '?' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -542,7 +517,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1051:9: ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1051:9: ( '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* )? int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0=='#') ) { @@ -550,10 +525,10 @@ public class FTSLexer extends Lexer { } switch (alt12) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1052:17: '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1052:17: '#' ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* { match('#'); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1053:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1053:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON | '/' | '?' | '#' )* loop11: while (true) { int alt11=2; @@ -564,7 +539,7 @@ public class FTSLexer extends Lexer { switch (alt11) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||(input.LA(1) >= '#' && input.LA(1) <= '$')||(input.LA(1) >= '&' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '?' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -604,8 +579,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_ALPHA" public final void mF_URI_ALPHA() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1069:9: ( 'A' .. 'Z' | 'a' .. 'z' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1069:9: ( 'A' .. 'Z' | 'a' .. 'z' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -629,8 +604,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_DIGIT" public final void mF_URI_DIGIT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1076:9: ( '0' .. '9' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1076:9: ( '0' .. '9' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -654,8 +629,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_ESC" public final void mF_URI_ESC() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1082:9: ( '%' F_HEX F_HEX ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1083:9: '%' F_HEX F_HEX + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1082:9: ( '%' F_HEX F_HEX ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1083:9: '%' F_HEX F_HEX { match('%'); if (state.failed) return; mF_HEX(); if (state.failed) return; @@ -674,8 +649,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_URI_OTHER" public final void mF_URI_OTHER() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1088:9: ( '-' | '.' | '_' | '~' | '[' | ']' | '@' | '!' | '$' | '&' | '\\'' | '(' | ')' | '*' | '+' | ',' | ';' | '=' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1088:9: ( '-' | '.' | '_' | '~' | '[' | ']' | '@' | '!' | '$' | '&' | '\\'' | '(' | ')' | '*' | '+' | ',' | ';' | '=' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||input.LA(1)==';'||input.LA(1)=='='||input.LA(1)=='@'||input.LA(1)=='['||input.LA(1)==']'||input.LA(1)=='_'||input.LA(1)=='~' ) { input.consume(); @@ -701,10 +676,10 @@ public class FTSLexer extends Lexer { try { int _type = DATETIME; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1119:9: ( ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:10: ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1119:9: ( ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:10: ( SPECIFICDATETIME | NOW ) ( FS UNIT )? ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:10: ( SPECIFICDATETIME | NOW ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:10: ( SPECIFICDATETIME | NOW ) int alt13=2; int LA13_0 = input.LA(1); if ( ((LA13_0 >= '0' && LA13_0 <= '9')) ) { @@ -723,14 +698,14 @@ public class FTSLexer extends Lexer { switch (alt13) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:11: SPECIFICDATETIME + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:11: SPECIFICDATETIME { mSPECIFICDATETIME(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:30: NOW + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:30: NOW { mNOW(); if (state.failed) return; @@ -739,7 +714,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:35: ( FS UNIT )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:35: ( FS UNIT )? int alt14=2; int LA14_0 = input.LA(1); if ( (LA14_0=='/') ) { @@ -747,7 +722,7 @@ public class FTSLexer extends Lexer { } switch (alt14) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:36: FS UNIT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:36: FS UNIT { mFS(); if (state.failed) return; @@ -758,7 +733,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:46: ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:46: ( ( PLUS | MINUS ) ( DIGIT )+ UNIT )* loop16: while (true) { int alt16=2; @@ -769,7 +744,7 @@ public class FTSLexer extends Lexer { switch (alt16) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:48: ( PLUS | MINUS ) ( DIGIT )+ UNIT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:48: ( PLUS | MINUS ) ( DIGIT )+ UNIT { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -781,7 +756,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:61: ( DIGIT )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:61: ( DIGIT )+ int cnt15=0; loop15: while (true) { @@ -793,7 +768,7 @@ public class FTSLexer extends Lexer { switch (alt15) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -841,10 +816,10 @@ public class FTSLexer extends Lexer { // $ANTLR start "UNIT" public final void mUNIT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:9: ( ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1120:9: ( ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:9: ( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLIS ) int alt17=7; switch ( input.LA(1) ) { case 'Y': @@ -927,49 +902,49 @@ public class FTSLexer extends Lexer { } switch (alt17) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:10: YEAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:10: YEAR { mYEAR(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:17: MONTH + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:17: MONTH { mMONTH(); if (state.failed) return; } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:25: DAY + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:25: DAY { mDAY(); if (state.failed) return; } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:31: HOUR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:31: HOUR { mHOUR(); if (state.failed) return; } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:38: MINUTE + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:38: MINUTE { mMINUTE(); if (state.failed) return; } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:47: SECOND + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:47: SECOND { mSECOND(); if (state.failed) return; } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:56: MILLIS + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1121:56: MILLIS { mMILLIS(); if (state.failed) return; @@ -990,8 +965,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "SPECIFICDATETIME" public final void mSPECIFICDATETIME() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1125:9: ( DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1126:12: DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1125:9: ( DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1126:12: DIGIT DIGIT DIGIT DIGIT ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? { mDIGIT(); if (state.failed) return; @@ -1001,7 +976,7 @@ public class FTSLexer extends Lexer { mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:15: ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:15: ( '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? )? int alt26=2; int LA26_0 = input.LA(1); if ( (LA26_0=='-') ) { @@ -1009,14 +984,14 @@ public class FTSLexer extends Lexer { } switch (alt26) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:17: '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:17: '-' DIGIT DIGIT ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? { match('-'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:33: ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:33: ( '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? )? int alt25=2; int LA25_0 = input.LA(1); if ( (LA25_0=='-') ) { @@ -1024,14 +999,14 @@ public class FTSLexer extends Lexer { } switch (alt25) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:35: '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:35: '-' DIGIT DIGIT ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? { match('-'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:51: ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:51: ( 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? )? int alt24=2; int LA24_0 = input.LA(1); if ( (LA24_0=='T') ) { @@ -1039,10 +1014,10 @@ public class FTSLexer extends Lexer { } switch (alt24) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:53: 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:53: 'T' ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? { match('T'); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:57: ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:57: ( DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? )? int alt23=2; int LA23_0 = input.LA(1); if ( ((LA23_0 >= '0' && LA23_0 <= '9')) ) { @@ -1050,13 +1025,13 @@ public class FTSLexer extends Lexer { } switch (alt23) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:58: DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:58: DIGIT DIGIT ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? { mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:70: ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:70: ( ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? )? int alt22=2; int LA22_0 = input.LA(1); if ( (LA22_0==':') ) { @@ -1064,14 +1039,14 @@ public class FTSLexer extends Lexer { } switch (alt22) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:72: ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:72: ':' DIGIT DIGIT ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? { match(':'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:88: ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:88: ( ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? )? int alt21=2; int LA21_0 = input.LA(1); if ( (LA21_0==':') ) { @@ -1079,14 +1054,14 @@ public class FTSLexer extends Lexer { } switch (alt21) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:90: ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:90: ':' DIGIT DIGIT ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? { match(':'); if (state.failed) return; mDIGIT(); if (state.failed) return; mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:106: ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:106: ( '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? )? int alt20=2; int LA20_0 = input.LA(1); if ( (LA20_0=='.') ) { @@ -1094,7 +1069,7 @@ public class FTSLexer extends Lexer { } switch (alt20) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:108: '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:108: '.' DIGIT DIGIT DIGIT ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? { match('.'); if (state.failed) return; mDIGIT(); if (state.failed) return; @@ -1103,7 +1078,7 @@ public class FTSLexer extends Lexer { mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:130: ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:130: ( 'Z' | ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) )? int alt19=3; int LA19_0 = input.LA(1); if ( (LA19_0=='Z') ) { @@ -1114,16 +1089,16 @@ public class FTSLexer extends Lexer { } switch (alt19) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:132: 'Z' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:132: 'Z' { match('Z'); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:139: ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:138: ( ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:139: ( '+' | '-' ) DIGIT DIGIT ( ':' DIGIT DIGIT )? { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -1139,7 +1114,7 @@ public class FTSLexer extends Lexer { mDIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:164: ( ':' DIGIT DIGIT )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:164: ( ':' DIGIT DIGIT )? int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==':') ) { @@ -1147,7 +1122,7 @@ public class FTSLexer extends Lexer { } switch (alt18) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:166: ':' DIGIT DIGIT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1127:166: ':' DIGIT DIGIT { match(':'); if (state.failed) return; mDIGIT(); if (state.failed) return; @@ -1213,8 +1188,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "NOW" public final void mNOW() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1131:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1132:12: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1131:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1132:12: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'W' | 'w' ) { if ( input.LA(1)=='N'||input.LA(1)=='n' ) { input.consume(); @@ -1258,8 +1233,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "YEAR" public final void mYEAR() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1136:9: ( ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1137:11: ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1136:9: ( ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1137:11: ( 'Y' | 'y' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'R' | 'r' ) ( 'S' | 's' )? { if ( input.LA(1)=='Y'||input.LA(1)=='y' ) { input.consume(); @@ -1301,7 +1276,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1137:51: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1137:51: ( 'S' | 's' )? int alt27=2; int LA27_0 = input.LA(1); if ( (LA27_0=='S'||LA27_0=='s') ) { @@ -1309,7 +1284,7 @@ public class FTSLexer extends Lexer { } switch (alt27) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1338,8 +1313,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "MONTH" public final void mMONTH() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1141:9: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1142:11: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1141:9: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1142:11: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -1391,7 +1366,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1142:61: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1142:61: ( 'S' | 's' )? int alt28=2; int LA28_0 = input.LA(1); if ( (LA28_0=='S'||LA28_0=='s') ) { @@ -1399,7 +1374,7 @@ public class FTSLexer extends Lexer { } switch (alt28) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1428,7 +1403,7 @@ public class FTSLexer extends Lexer { // $ANTLR start "DAY" public final void mDAY() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1146:9: ( ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? | ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1146:9: ( ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? | ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ) int alt30=2; int LA30_0 = input.LA(1); if ( (LA30_0=='D'||LA30_0=='d') ) { @@ -1483,7 +1458,7 @@ public class FTSLexer extends Lexer { switch (alt30) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1147:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1147:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'Y' | 'y' ) ( 'S' | 's' )? { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1515,7 +1490,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1147:41: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1147:41: ( 'S' | 's' )? int alt29=2; int LA29_0 = input.LA(1); if ( (LA29_0=='S'||LA29_0=='s') ) { @@ -1523,7 +1498,7 @@ public class FTSLexer extends Lexer { } switch (alt29) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1543,7 +1518,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1148:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1148:11: ( 'D' | 'd' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1599,8 +1574,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "HOUR" public final void mHOUR() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1152:9: ( ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1153:11: ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1152:9: ( ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1153:11: ( 'H' | 'h' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'S' | 's' )? { if ( input.LA(1)=='H'||input.LA(1)=='h' ) { input.consume(); @@ -1642,7 +1617,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1153:51: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1153:51: ( 'S' | 's' )? int alt31=2; int LA31_0 = input.LA(1); if ( (LA31_0=='S'||LA31_0=='s') ) { @@ -1650,7 +1625,7 @@ public class FTSLexer extends Lexer { } switch (alt31) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1679,8 +1654,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "MINUTE" public final void mMINUTE() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1157:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1158:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1157:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1158:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'U' | 'u' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -1742,7 +1717,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1158:71: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1158:71: ( 'S' | 's' )? int alt32=2; int LA32_0 = input.LA(1); if ( (LA32_0=='S'||LA32_0=='s') ) { @@ -1750,7 +1725,7 @@ public class FTSLexer extends Lexer { } switch (alt32) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1779,8 +1754,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "SECOND" public final void mSECOND() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1162:9: ( ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1163:11: ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1162:9: ( ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1163:11: ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1842,7 +1817,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1163:71: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1163:71: ( 'S' | 's' )? int alt33=2; int LA33_0 = input.LA(1); if ( (LA33_0=='S'||LA33_0=='s') ) { @@ -1850,7 +1825,7 @@ public class FTSLexer extends Lexer { } switch (alt33) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1879,7 +1854,7 @@ public class FTSLexer extends Lexer { // $ANTLR start "MILLIS" public final void mMILLIS() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1167:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? | ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1167:9: ( ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? | ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? ) int alt36=2; int LA36_0 = input.LA(1); if ( (LA36_0=='M'||LA36_0=='m') ) { @@ -1985,7 +1960,7 @@ public class FTSLexer extends Lexer { switch (alt36) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1168:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1168:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' ) ( 'E' | 'e' ) ( 'C' | 'c' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2097,7 +2072,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1168:121: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1168:121: ( 'S' | 's' )? int alt34=2; int LA34_0 = input.LA(1); if ( (LA34_0=='S'||LA34_0=='s') ) { @@ -2105,7 +2080,7 @@ public class FTSLexer extends Lexer { } switch (alt34) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -2125,7 +2100,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1169:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1169:11: ( 'M' | 'm' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ( 'I' | 'i' ) ( 'S' | 's' )? { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2177,7 +2152,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1169:61: ( 'S' | 's' )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1169:61: ( 'S' | 's' )? int alt35=2; int LA35_0 = input.LA(1); if ( (LA35_0=='S'||LA35_0=='s') ) { @@ -2185,7 +2160,7 @@ public class FTSLexer extends Lexer { } switch (alt35) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -2216,8 +2191,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "FS" public final void mFS() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1173:9: ( '/' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1174:9: '/' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1173:9: ( '/' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1174:9: '/' { match('/'); if (state.failed) return; } @@ -2234,8 +2209,8 @@ public class FTSLexer extends Lexer { try { int _type = OR; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1183:9: ( ( 'O' | 'o' ) ( 'R' | 'r' ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1184:9: ( 'O' | 'o' ) ( 'R' | 'r' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1183:9: ( ( 'O' | 'o' ) ( 'R' | 'r' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1184:9: ( 'O' | 'o' ) ( 'R' | 'r' ) { if ( input.LA(1)=='O'||input.LA(1)=='o' ) { input.consume(); @@ -2273,8 +2248,8 @@ public class FTSLexer extends Lexer { try { int _type = AND; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1195:9: ( ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1196:9: ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1195:9: ( ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1196:9: ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) { if ( input.LA(1)=='A'||input.LA(1)=='a' ) { input.consume(); @@ -2322,8 +2297,8 @@ public class FTSLexer extends Lexer { try { int _type = NOT; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1211:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1212:9: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1211:9: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1212:9: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) { if ( input.LA(1)=='N'||input.LA(1)=='n' ) { input.consume(); @@ -2371,8 +2346,8 @@ public class FTSLexer extends Lexer { try { int _type = TILDA; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1227:9: ( '~' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1228:9: '~' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1227:9: ( '~' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1228:9: '~' { match('~'); if (state.failed) return; } @@ -2391,8 +2366,8 @@ public class FTSLexer extends Lexer { try { int _type = LPAREN; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1232:9: ( '(' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1233:9: '(' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1232:9: ( '(' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1233:9: '(' { match('('); if (state.failed) return; } @@ -2411,8 +2386,8 @@ public class FTSLexer extends Lexer { try { int _type = RPAREN; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1237:9: ( ')' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1238:9: ')' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1237:9: ( ')' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1238:9: ')' { match(')'); if (state.failed) return; } @@ -2431,8 +2406,8 @@ public class FTSLexer extends Lexer { try { int _type = PLUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1242:9: ( '+' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1243:9: '+' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1242:9: ( '+' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1243:9: '+' { match('+'); if (state.failed) return; } @@ -2451,8 +2426,8 @@ public class FTSLexer extends Lexer { try { int _type = MINUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1247:9: ( '-' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1248:9: '-' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1247:9: ( '-' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1248:9: '-' { match('-'); if (state.failed) return; } @@ -2471,8 +2446,8 @@ public class FTSLexer extends Lexer { try { int _type = COLON; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1252:9: ( ':' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1253:9: ':' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1252:9: ( ':' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1253:9: ':' { match(':'); if (state.failed) return; } @@ -2491,8 +2466,8 @@ public class FTSLexer extends Lexer { try { int _type = STAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1257:9: ( '*' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1258:9: '*' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1257:9: ( '*' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1258:9: '*' { match('*'); if (state.failed) return; } @@ -2509,8 +2484,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DOTDOT" public final void mDOTDOT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1263:9: ( '..' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1264:9: '..' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1263:9: ( '..' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1264:9: '..' { match(".."); if (state.failed) return; @@ -2526,8 +2501,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DOT" public final void mDOT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1269:9: ( '.' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1270:9: '.' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1269:9: ( '.' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1270:9: '.' { match('.'); if (state.failed) return; } @@ -2544,8 +2519,8 @@ public class FTSLexer extends Lexer { try { int _type = AMP; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1274:9: ( '&' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1275:9: '&' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1274:9: ( '&' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1275:9: '&' { match('&'); if (state.failed) return; } @@ -2564,8 +2539,8 @@ public class FTSLexer extends Lexer { try { int _type = EXCLAMATION; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1279:9: ( '!' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1280:9: '!' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1279:9: ( '!' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1280:9: '!' { match('!'); if (state.failed) return; } @@ -2584,8 +2559,8 @@ public class FTSLexer extends Lexer { try { int _type = BAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1284:9: ( '|' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1285:9: '|' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1284:9: ( '|' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1285:9: '|' { match('|'); if (state.failed) return; } @@ -2604,8 +2579,8 @@ public class FTSLexer extends Lexer { try { int _type = EQUALS; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1289:9: ( '=' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1290:9: '=' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1289:9: ( '=' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1290:9: '=' { match('='); if (state.failed) return; } @@ -2624,8 +2599,8 @@ public class FTSLexer extends Lexer { try { int _type = QUESTION_MARK; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1294:9: ( '?' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1295:9: '?' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1294:9: ( '?' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1295:9: '?' { match('?'); if (state.failed) return; } @@ -2644,8 +2619,8 @@ public class FTSLexer extends Lexer { try { int _type = LCURL; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1299:9: ( '{' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1300:9: '{' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1299:9: ( '{' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1300:9: '{' { match('{'); if (state.failed) return; } @@ -2664,8 +2639,8 @@ public class FTSLexer extends Lexer { try { int _type = RCURL; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1304:9: ( '}' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1305:9: '}' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1304:9: ( '}' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1305:9: '}' { match('}'); if (state.failed) return; } @@ -2684,8 +2659,8 @@ public class FTSLexer extends Lexer { try { int _type = LSQUARE; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1309:9: ( '[' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1310:9: '[' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1309:9: ( '[' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1310:9: '[' { match('['); if (state.failed) return; } @@ -2704,8 +2679,8 @@ public class FTSLexer extends Lexer { try { int _type = RSQUARE; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1314:9: ( ']' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1315:9: ']' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1314:9: ( ']' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1315:9: ']' { match(']'); if (state.failed) return; } @@ -2724,8 +2699,8 @@ public class FTSLexer extends Lexer { try { int _type = TO; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1319:9: ( ( 'T' | 't' ) ( 'O' | 'o' ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1320:9: ( 'T' | 't' ) ( 'O' | 'o' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1319:9: ( ( 'T' | 't' ) ( 'O' | 'o' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1320:9: ( 'T' | 't' ) ( 'O' | 'o' ) { if ( input.LA(1)=='T'||input.LA(1)=='t' ) { input.consume(); @@ -2763,8 +2738,8 @@ public class FTSLexer extends Lexer { try { int _type = COMMA; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1331:9: ( ',' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1332:9: ',' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1331:9: ( ',' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1332:9: ',' { match(','); if (state.failed) return; } @@ -2783,8 +2758,8 @@ public class FTSLexer extends Lexer { try { int _type = CARAT; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1336:9: ( '^' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1337:9: '^' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1336:9: ( '^' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1337:9: '^' { match('^'); if (state.failed) return; } @@ -2803,8 +2778,8 @@ public class FTSLexer extends Lexer { try { int _type = DOLLAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1341:9: ( '$' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1342:9: '$' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1341:9: ( '$' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1342:9: '$' { match('$'); if (state.failed) return; } @@ -2823,8 +2798,8 @@ public class FTSLexer extends Lexer { try { int _type = GT; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1346:9: ( '>' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1347:9: '>' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1346:9: ( '>' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1347:9: '>' { match('>'); if (state.failed) return; } @@ -2843,8 +2818,8 @@ public class FTSLexer extends Lexer { try { int _type = LT; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1351:9: ( '<' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1352:9: '<' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1351:9: ( '<' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1352:9: '<' { match('<'); if (state.failed) return; } @@ -2863,8 +2838,8 @@ public class FTSLexer extends Lexer { try { int _type = AT; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1356:9: ( '@' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1357:9: '@' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1356:9: ( '@' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1357:9: '@' { match('@'); if (state.failed) return; } @@ -2883,8 +2858,8 @@ public class FTSLexer extends Lexer { try { int _type = PERCENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1361:9: ( '%' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1362:9: '%' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1361:9: ( '%' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1362:9: '%' { match('%'); if (state.failed) return; } @@ -2903,10 +2878,10 @@ public class FTSLexer extends Lexer { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1377:9: ( ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1378:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1377:9: ( ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '-' | '_' | '$' | '#' | F_ESC )* ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1378:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '-' | '_' | '$' | '#' | F_ESC )* { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1378:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1378:9: ( ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* )? int alt38=2; int LA38_0 = input.LA(1); if ( ((LA38_0 >= '0' && LA38_0 <= '9')) ) { @@ -2914,7 +2889,7 @@ public class FTSLexer extends Lexer { } switch (alt38) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1379:17: ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1379:17: ( '0' .. '9' ) ( '0' .. '9' | '$' | '#' | F_ESC )* { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -2926,7 +2901,7 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:17: ( '0' .. '9' | '$' | '#' | F_ESC )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:17: ( '0' .. '9' | '$' | '#' | F_ESC )* loop37: while (true) { int alt37=5; @@ -2963,25 +2938,25 @@ public class FTSLexer extends Lexer { } switch (alt37) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:19: '0' .. '9' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:19: '0' .. '9' { matchRange('0','9'); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:30: '$' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:30: '$' { match('$'); if (state.failed) return; } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:36: '#' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:36: '#' { match('#'); if (state.failed) return; } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:42: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1380:42: F_ESC { mF_ESC(); if (state.failed) return; @@ -3008,10 +2983,10 @@ public class FTSLexer extends Lexer { recover(mse); throw mse; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:9: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '$' | '#' | F_ESC )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:9: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '-' | '_' | '$' | '#' | F_ESC )* loop39: while (true) { - int alt39=8; + int alt39=9; switch ( input.LA(1) ) { case 'a': case 'b': @@ -3087,66 +3062,77 @@ public class FTSLexer extends Lexer { alt39=3; } break; - case '_': + case '-': { alt39=4; } break; - case '$': + case '_': { alt39=5; } break; - case '#': + case '$': { alt39=6; } break; - case '\\': + case '#': { alt39=7; } break; + case '\\': + { + alt39=8; + } + break; } switch (alt39) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:11: 'a' .. 'z' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:11: 'a' .. 'z' { matchRange('a','z'); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:22: 'A' .. 'Z' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:22: 'A' .. 'Z' { matchRange('A','Z'); if (state.failed) return; } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:33: '0' .. '9' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:33: '0' .. '9' { matchRange('0','9'); if (state.failed) return; } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:44: '_' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:44: '-' + { + match('-'); if (state.failed) return; + } + break; + case 5 : + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:50: '_' { match('_'); if (state.failed) return; } break; - case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:50: '$' + case 6 : + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:56: '$' { match('$'); if (state.failed) return; } break; - case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:56: '#' + case 7 : + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:62: '#' { match('#'); if (state.failed) return; } break; - case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:62: F_ESC + case 8 : + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1383:68: F_ESC { mF_ESC(); if (state.failed) return; @@ -3172,8 +3158,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DECIMAL_INTEGER_LITERAL" public final void mDECIMAL_INTEGER_LITERAL() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1386:9: () - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1387:9: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1386:9: () + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1387:9: { } @@ -3189,10 +3175,10 @@ public class FTSLexer extends Lexer { try { int _type = FLOATING_POINT_LITERAL; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1390:9: ( ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1391:10: ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1390:9: ( ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1391:10: ( PLUS | MINUS )? ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1391:10: ( PLUS | MINUS )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1391:10: ( PLUS | MINUS )? int alt40=2; int LA40_0 = input.LA(1); if ( (LA40_0=='+'||LA40_0=='-') ) { @@ -3200,7 +3186,7 @@ public class FTSLexer extends Lexer { } switch (alt40) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -3217,7 +3203,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1392:10: ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1392:10: ( ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) | DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) ) int alt50=2; int LA50_0 = input.LA(1); if ( ((LA50_0 >= '0' && LA50_0 <= '9')) ) { @@ -3236,9 +3222,9 @@ public class FTSLexer extends Lexer { switch (alt50) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1393:17: ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1393:17: ( DIGIT )+ ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1393:17: ( DIGIT )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1393:17: ( DIGIT )+ int cnt41=0; loop41: while (true) { @@ -3250,7 +3236,7 @@ public class FTSLexer extends Lexer { switch (alt41) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3274,7 +3260,7 @@ public class FTSLexer extends Lexer { cnt41++; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1394:17: ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1394:17: ({...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) | ( EXPONENT |) ) int alt46=2; int LA46_0 = input.LA(1); if ( (LA46_0=='.') && ((input.LA(2) != '.'))) { @@ -3283,7 +3269,7 @@ public class FTSLexer extends Lexer { switch (alt46) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1395:25: {...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1395:25: {...}? => DOT ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) { if ( !((input.LA(2) != '.')) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3291,7 +3277,7 @@ public class FTSLexer extends Lexer { } mDOT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1396:25: ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1396:25: ( ( DIGIT )+ ( EXPONENT |{...}? => DOT |) | EXPONENT |) int alt44=3; switch ( input.LA(1) ) { case '0': @@ -3319,9 +3305,9 @@ public class FTSLexer extends Lexer { } switch (alt44) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1397:33: ( DIGIT )+ ( EXPONENT |{...}? => DOT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1397:33: ( DIGIT )+ ( EXPONENT |{...}? => DOT |) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1397:33: ( DIGIT )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1397:33: ( DIGIT )+ int cnt42=0; loop42: while (true) { @@ -3333,7 +3319,7 @@ public class FTSLexer extends Lexer { switch (alt42) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3357,7 +3343,7 @@ public class FTSLexer extends Lexer { cnt42++; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1398:33: ( EXPONENT |{...}? => DOT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1398:33: ( EXPONENT |{...}? => DOT |) int alt43=3; int LA43_0 = input.LA(1); if ( (LA43_0=='E'||LA43_0=='e') ) { @@ -3369,7 +3355,7 @@ public class FTSLexer extends Lexer { switch (alt43) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1399:37: EXPONENT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1399:37: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3377,7 +3363,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1402:37: {...}? => DOT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1402:37: {...}? => DOT { if ( !((input.LA(2) != '.')) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3404,7 +3390,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1420:37: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1420:37: { if ( state.backtracking==0 ) {_type = FLOATING_POINT_LITERAL; } } @@ -3415,7 +3401,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1423:33: EXPONENT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1423:33: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3423,7 +3409,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1426:33: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1426:33: { if ( state.backtracking==0 ) {_type = FLOATING_POINT_LITERAL; } } @@ -3434,9 +3420,9 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1429:25: ( EXPONENT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1429:25: ( EXPONENT |) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1429:25: ( EXPONENT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1429:25: ( EXPONENT |) int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0=='E'||LA45_0=='e') ) { @@ -3449,7 +3435,7 @@ public class FTSLexer extends Lexer { switch (alt45) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1430:33: EXPONENT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1430:33: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3457,7 +3443,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1433:33: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1433:33: { if ( state.backtracking==0 ) {_type = DECIMAL_INTEGER_LITERAL; } } @@ -3473,11 +3459,11 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1439:17: DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1439:17: DOT ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) { mDOT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1440:17: ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1440:17: ( ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) |{...}? => '.' |) int alt49=3; int LA49_0 = input.LA(1); if ( ((LA49_0 >= '0' && LA49_0 <= '9')) ) { @@ -3489,9 +3475,9 @@ public class FTSLexer extends Lexer { switch (alt49) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1441:25: ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1441:25: ( DIGIT )+ ( EXPONENT |{...}?{...}? => DOT |) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1441:25: ( DIGIT )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1441:25: ( DIGIT )+ int cnt47=0; loop47: while (true) { @@ -3503,7 +3489,7 @@ public class FTSLexer extends Lexer { switch (alt47) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3527,7 +3513,7 @@ public class FTSLexer extends Lexer { cnt47++; } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1442:25: ( EXPONENT |{...}?{...}? => DOT |) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1442:25: ( EXPONENT |{...}?{...}? => DOT |) int alt48=3; int LA48_0 = input.LA(1); if ( (LA48_0=='E'||LA48_0=='e') ) { @@ -3539,7 +3525,7 @@ public class FTSLexer extends Lexer { switch (alt48) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1443:29: EXPONENT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1443:29: EXPONENT { mEXPONENT(); if (state.failed) return; @@ -3547,7 +3533,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1446:29: {...}?{...}? => DOT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1446:29: {...}?{...}? => DOT { if ( !((getText().startsWith("."))) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3574,7 +3560,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1461:29: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1461:29: { if ( state.backtracking==0 ) {_type = FLOATING_POINT_LITERAL; } } @@ -3585,7 +3571,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1465:25: {...}? => '.' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1465:25: {...}? => '.' { if ( !((input.LA(2) != '.')) ) { if (state.backtracking>0) {state.failed=true; return;} @@ -3596,7 +3582,7 @@ public class FTSLexer extends Lexer { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1468:25: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1468:25: { if ( state.backtracking==0 ) {_type = DOT; } } @@ -3623,7 +3609,7 @@ public class FTSLexer extends Lexer { // $ANTLR start "DECIMAL_NUMERAL" public final void mDECIMAL_NUMERAL() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1497:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ( DIGIT )* ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1497:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ( DIGIT )* ) int alt52=2; int LA52_0 = input.LA(1); if ( (LA52_0=='0') ) { @@ -3642,18 +3628,18 @@ public class FTSLexer extends Lexer { switch (alt52) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1498:9: ZERO_DIGIT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1498:9: ZERO_DIGIT { mZERO_DIGIT(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1499:11: NON_ZERO_DIGIT ( DIGIT )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1499:11: NON_ZERO_DIGIT ( DIGIT )* { mNON_ZERO_DIGIT(); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1499:26: ( DIGIT )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1499:26: ( DIGIT )* loop51: while (true) { int alt51=2; @@ -3664,7 +3650,7 @@ public class FTSLexer extends Lexer { switch (alt51) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3698,8 +3684,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "DIGIT" public final void mDIGIT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1501:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1501:9: ( ZERO_DIGIT | NON_ZERO_DIGIT ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3723,8 +3709,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "ZERO_DIGIT" public final void mZERO_DIGIT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1508:9: ( '0' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1509:9: '0' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1508:9: ( '0' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1509:9: '0' { match('0'); if (state.failed) return; } @@ -3739,8 +3725,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "NON_ZERO_DIGIT" public final void mNON_ZERO_DIGIT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1514:9: ( '1' .. '9' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1514:9: ( '1' .. '9' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '1' && input.LA(1) <= '9') ) { input.consume(); @@ -3764,8 +3750,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "E" public final void mE() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1520:9: ( ( 'e' | 'E' ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1520:9: ( ( 'e' | 'E' ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='E'||input.LA(1)=='e' ) { input.consume(); @@ -3789,8 +3775,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "EXPONENT" public final void mEXPONENT() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1529:9: ( E SIGNED_INTEGER ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1530:9: E SIGNED_INTEGER + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1529:9: ( E SIGNED_INTEGER ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1530:9: E SIGNED_INTEGER { mE(); if (state.failed) return; @@ -3808,10 +3794,10 @@ public class FTSLexer extends Lexer { // $ANTLR start "SIGNED_INTEGER" public final void mSIGNED_INTEGER() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1535:9: ( ( PLUS | MINUS )? ( DIGIT )+ ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1536:9: ( PLUS | MINUS )? ( DIGIT )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1535:9: ( ( PLUS | MINUS )? ( DIGIT )+ ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1536:9: ( PLUS | MINUS )? ( DIGIT )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1536:9: ( PLUS | MINUS )? + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1536:9: ( PLUS | MINUS )? int alt53=2; int LA53_0 = input.LA(1); if ( (LA53_0=='+'||LA53_0=='-') ) { @@ -3819,7 +3805,7 @@ public class FTSLexer extends Lexer { } switch (alt53) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='+'||input.LA(1)=='-' ) { input.consume(); @@ -3836,7 +3822,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1540:9: ( DIGIT )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1540:9: ( DIGIT )+ int cnt54=0; loop54: while (true) { @@ -3848,7 +3834,7 @@ public class FTSLexer extends Lexer { switch (alt54) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -3886,10 +3872,10 @@ public class FTSLexer extends Lexer { try { int _type = FTSWORD; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1544:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1545:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1544:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1545:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1545:9: ( F_ESC | START_WORD ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1545:9: ( F_ESC | START_WORD ) int alt55=2; int LA55_0 = input.LA(1); if ( (LA55_0=='\\') ) { @@ -3908,14 +3894,14 @@ public class FTSLexer extends Lexer { switch (alt55) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1546:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1546:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1547:19: START_WORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1547:19: START_WORD { mSTART_WORD(); if (state.failed) return; @@ -3924,7 +3910,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1549:9: ( F_ESC | IN_WORD )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1549:9: ( F_ESC | IN_WORD )* loop56: while (true) { int alt56=3; @@ -3938,14 +3924,14 @@ public class FTSLexer extends Lexer { switch (alt56) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1550:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1550:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1551:19: IN_WORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1551:19: IN_WORD { mIN_WORD(); if (state.failed) return; @@ -3973,10 +3959,10 @@ public class FTSLexer extends Lexer { try { int _type = FTSPRE; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1556:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1557:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1556:9: ( ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1557:9: ( F_ESC | START_WORD ) ( F_ESC | IN_WORD )* STAR { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1557:9: ( F_ESC | START_WORD ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1557:9: ( F_ESC | START_WORD ) int alt57=2; int LA57_0 = input.LA(1); if ( (LA57_0=='\\') ) { @@ -3995,14 +3981,14 @@ public class FTSLexer extends Lexer { switch (alt57) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1558:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1558:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1559:19: START_WORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1559:19: START_WORD { mSTART_WORD(); if (state.failed) return; @@ -4011,7 +3997,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1561:9: ( F_ESC | IN_WORD )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1561:9: ( F_ESC | IN_WORD )* loop58: while (true) { int alt58=3; @@ -4025,14 +4011,14 @@ public class FTSLexer extends Lexer { switch (alt58) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1562:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1562:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1563:19: IN_WORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1563:19: IN_WORD { mIN_WORD(); if (state.failed) return; @@ -4062,10 +4048,10 @@ public class FTSLexer extends Lexer { try { int _type = FTSWILD; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1569:9: ( ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1570:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1569:9: ( ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1570:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1570:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1570:9: ( F_ESC | START_WORD | STAR | QUESTION_MARK ) int alt59=4; int LA59_0 = input.LA(1); if ( (LA59_0=='\\') ) { @@ -4090,28 +4076,28 @@ public class FTSLexer extends Lexer { switch (alt59) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1571:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1571:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1572:19: START_WORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1572:19: START_WORD { mSTART_WORD(); if (state.failed) return; } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1573:19: STAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1573:19: STAR { mSTAR(); if (state.failed) return; } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1574:19: QUESTION_MARK + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1574:19: QUESTION_MARK { mQUESTION_MARK(); if (state.failed) return; @@ -4120,7 +4106,7 @@ public class FTSLexer extends Lexer { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1576:9: ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1576:9: ( F_ESC | IN_WORD | STAR | QUESTION_MARK )* loop60: while (true) { int alt60=5; @@ -4140,28 +4126,28 @@ public class FTSLexer extends Lexer { switch (alt60) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1577:17: F_ESC + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1577:17: F_ESC { mF_ESC(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1578:19: IN_WORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1578:19: IN_WORD { mIN_WORD(); if (state.failed) return; } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1579:19: STAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1579:19: STAR { mSTAR(); if (state.failed) return; } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1580:19: QUESTION_MARK + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1580:19: QUESTION_MARK { mQUESTION_MARK(); if (state.failed) return; @@ -4187,11 +4173,11 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_ESC" public final void mF_ESC() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1587:9: ( '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1588:9: '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1587:9: ( '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1588:9: '\\\\' ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) { match('\\'); if (state.failed) return; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1589:9: ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1589:9: ( 'u' F_HEX F_HEX F_HEX F_HEX | . ) int alt61=2; int LA61_0 = input.LA(1); if ( (LA61_0=='u') ) { @@ -4218,7 +4204,7 @@ public class FTSLexer extends Lexer { switch (alt61) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1591:17: 'u' F_HEX F_HEX F_HEX F_HEX + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1591:17: 'u' F_HEX F_HEX F_HEX F_HEX { match('u'); if (state.failed) return; mF_HEX(); if (state.failed) return; @@ -4232,7 +4218,7 @@ public class FTSLexer extends Lexer { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1593:19: . + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1593:19: . { matchAny(); if (state.failed) return; } @@ -4252,8 +4238,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "F_HEX" public final void mF_HEX() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1599:9: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1599:9: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) { input.consume(); @@ -4277,8 +4263,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "START_WORD" public final void mSTART_WORD() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1607:9: ( '\\u0024' | '\\u0030' .. '\\u0039' | '\\u0041' .. '\\u005a' | '\\u0061' .. '\\u007a' | '\\u00a2' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ae' | '\\u00b0' | '\\u00b2' .. '\\u00b3' | '\\u00b5' .. '\\u00b6' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u00be' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u0386' | '\\u0388' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03f5' | '\\u03f7' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05bd' | '\\u05bf' | '\\u05c1' .. '\\u05c2' | '\\u05c4' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f2' | '\\u060e' .. '\\u0615' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u066e' .. '\\u06d3' | '\\u06d5' .. '\\u06dc' | '\\u06de' .. '\\u06ff' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0963' | '\\u0966' .. '\\u096f' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df3' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e4e' | '\\u0e50' .. '\\u0e59' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f03' | '\\u0f13' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f84' | '\\u0f86' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1050' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1369' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u166c' | '\\u166f' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16ea' | '\\u16ee' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1734' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17d3' | '\\u17d7' | '\\u17db' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u180b' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1946' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u2079' | '\\u207f' .. '\\u2089' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u213f' | '\\u2145' .. '\\u214a' | '\\u2153' .. '\\u2183' | '\\u2195' .. '\\u2199' | '\\u219c' .. '\\u219f' | '\\u21a1' .. '\\u21a2' | '\\u21a4' .. '\\u21a5' | '\\u21a7' .. '\\u21ad' | '\\u21af' .. '\\u21cd' | '\\u21d0' .. '\\u21d1' | '\\u21d3' | '\\u21d5' .. '\\u21f3' | '\\u2300' .. '\\u2307' | '\\u230c' .. '\\u231f' | '\\u2322' .. '\\u2328' | '\\u232b' .. '\\u237b' | '\\u237d' .. '\\u239a' | '\\u23b7' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u25b6' | '\\u25b8' .. '\\u25c0' | '\\u25c2' .. '\\u25f7' | '\\u2600' .. '\\u2617' | '\\u2619' .. '\\u266e' | '\\u2670' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u2800' .. '\\u28ff' | '\\u2b00' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3004' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u3020' .. '\\u302f' | '\\u3031' .. '\\u303c' | '\\u303e' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u309f' | '\\u30a1' .. '\\u30fa' | '\\u30fc' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb28' | '\\ufb2a' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe69' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff04' | '\\uff10' .. '\\uff19' | '\\uff21' .. '\\uff3a' | '\\uff41' .. '\\uff5a' | '\\uff66' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe1' | '\\uffe4' .. '\\uffe6' | '\\uffe8' | '\\uffed' .. '\\uffee' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1607:9: ( '\\u0024' | '\\u0030' .. '\\u0039' | '\\u0041' .. '\\u005a' | '\\u0061' .. '\\u007a' | '\\u00a2' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ae' | '\\u00b0' | '\\u00b2' .. '\\u00b3' | '\\u00b5' .. '\\u00b6' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u00be' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u0386' | '\\u0388' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03f5' | '\\u03f7' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05bd' | '\\u05bf' | '\\u05c1' .. '\\u05c2' | '\\u05c4' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f2' | '\\u060e' .. '\\u0615' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u066e' .. '\\u06d3' | '\\u06d5' .. '\\u06dc' | '\\u06de' .. '\\u06ff' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0963' | '\\u0966' .. '\\u096f' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df3' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e4e' | '\\u0e50' .. '\\u0e59' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f03' | '\\u0f13' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f84' | '\\u0f86' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1050' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1369' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u166c' | '\\u166f' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16ea' | '\\u16ee' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1734' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17d3' | '\\u17d7' | '\\u17db' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u180b' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1946' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u2079' | '\\u207f' .. '\\u2089' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u213f' | '\\u2145' .. '\\u214a' | '\\u2153' .. '\\u2183' | '\\u2195' .. '\\u2199' | '\\u219c' .. '\\u219f' | '\\u21a1' .. '\\u21a2' | '\\u21a4' .. '\\u21a5' | '\\u21a7' .. '\\u21ad' | '\\u21af' .. '\\u21cd' | '\\u21d0' .. '\\u21d1' | '\\u21d3' | '\\u21d5' .. '\\u21f3' | '\\u2300' .. '\\u2307' | '\\u230c' .. '\\u231f' | '\\u2322' .. '\\u2328' | '\\u232b' .. '\\u237b' | '\\u237d' .. '\\u239a' | '\\u23b7' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u25b6' | '\\u25b8' .. '\\u25c0' | '\\u25c2' .. '\\u25f7' | '\\u2600' .. '\\u2617' | '\\u2619' .. '\\u266e' | '\\u2670' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u2800' .. '\\u28ff' | '\\u2b00' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3004' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u3020' .. '\\u302f' | '\\u3031' .. '\\u303c' | '\\u303e' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u309f' | '\\u30a1' .. '\\u30fa' | '\\u30fc' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb28' | '\\ufb2a' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe69' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff04' | '\\uff10' .. '\\uff19' | '\\uff21' .. '\\uff3a' | '\\uff41' .. '\\uff5a' | '\\uff66' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe1' | '\\uffe4' .. '\\uffe6' | '\\uffe8' | '\\uffed' .. '\\uffee' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='$'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||(input.LA(1) >= '\u00A2' && input.LA(1) <= '\u00A7')||(input.LA(1) >= '\u00A9' && input.LA(1) <= '\u00AA')||input.LA(1)=='\u00AE'||input.LA(1)=='\u00B0'||(input.LA(1) >= '\u00B2' && input.LA(1) <= '\u00B3')||(input.LA(1) >= '\u00B5' && input.LA(1) <= '\u00B6')||(input.LA(1) >= '\u00B9' && input.LA(1) <= '\u00BA')||(input.LA(1) >= '\u00BC' && input.LA(1) <= '\u00BE')||(input.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6')||(input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6')||(input.LA(1) >= '\u00F8' && input.LA(1) <= '\u0236')||(input.LA(1) >= '\u0250' && input.LA(1) <= '\u02C1')||(input.LA(1) >= '\u02C6' && input.LA(1) <= '\u02D1')||(input.LA(1) >= '\u02E0' && input.LA(1) <= '\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1) >= '\u0300' && input.LA(1) <= '\u0357')||(input.LA(1) >= '\u035D' && input.LA(1) <= '\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1) >= '\u0388' && input.LA(1) <= '\u038A')||input.LA(1)=='\u038C'||(input.LA(1) >= '\u038E' && input.LA(1) <= '\u03A1')||(input.LA(1) >= '\u03A3' && input.LA(1) <= '\u03CE')||(input.LA(1) >= '\u03D0' && input.LA(1) <= '\u03F5')||(input.LA(1) >= '\u03F7' && input.LA(1) <= '\u03FB')||(input.LA(1) >= '\u0400' && input.LA(1) <= '\u0486')||(input.LA(1) >= '\u0488' && input.LA(1) <= '\u04CE')||(input.LA(1) >= '\u04D0' && input.LA(1) <= '\u04F5')||(input.LA(1) >= '\u04F8' && input.LA(1) <= '\u04F9')||(input.LA(1) >= '\u0500' && input.LA(1) <= '\u050F')||(input.LA(1) >= '\u0531' && input.LA(1) <= '\u0556')||input.LA(1)=='\u0559'||(input.LA(1) >= '\u0561' && input.LA(1) <= '\u0587')||(input.LA(1) >= '\u0591' && input.LA(1) <= '\u05A1')||(input.LA(1) >= '\u05A3' && input.LA(1) <= '\u05B9')||(input.LA(1) >= '\u05BB' && input.LA(1) <= '\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1) >= '\u05C1' && input.LA(1) <= '\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1) >= '\u05D0' && input.LA(1) <= '\u05EA')||(input.LA(1) >= '\u05F0' && input.LA(1) <= '\u05F2')||(input.LA(1) >= '\u060E' && input.LA(1) <= '\u0615')||(input.LA(1) >= '\u0621' && input.LA(1) <= '\u063A')||(input.LA(1) >= '\u0640' && input.LA(1) <= '\u0658')||(input.LA(1) >= '\u0660' && input.LA(1) <= '\u0669')||(input.LA(1) >= '\u066E' && input.LA(1) <= '\u06D3')||(input.LA(1) >= '\u06D5' && input.LA(1) <= '\u06DC')||(input.LA(1) >= '\u06DE' && input.LA(1) <= '\u06FF')||(input.LA(1) >= '\u0710' && input.LA(1) <= '\u074A')||(input.LA(1) >= '\u074D' && input.LA(1) <= '\u074F')||(input.LA(1) >= '\u0780' && input.LA(1) <= '\u07B1')||(input.LA(1) >= '\u0901' && input.LA(1) <= '\u0939')||(input.LA(1) >= '\u093C' && input.LA(1) <= '\u094D')||(input.LA(1) >= '\u0950' && input.LA(1) <= '\u0954')||(input.LA(1) >= '\u0958' && input.LA(1) <= '\u0963')||(input.LA(1) >= '\u0966' && input.LA(1) <= '\u096F')||(input.LA(1) >= '\u0981' && input.LA(1) <= '\u0983')||(input.LA(1) >= '\u0985' && input.LA(1) <= '\u098C')||(input.LA(1) >= '\u098F' && input.LA(1) <= '\u0990')||(input.LA(1) >= '\u0993' && input.LA(1) <= '\u09A8')||(input.LA(1) >= '\u09AA' && input.LA(1) <= '\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1) >= '\u09B6' && input.LA(1) <= '\u09B9')||(input.LA(1) >= '\u09BC' && input.LA(1) <= '\u09C4')||(input.LA(1) >= '\u09C7' && input.LA(1) <= '\u09C8')||(input.LA(1) >= '\u09CB' && input.LA(1) <= '\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1) >= '\u09DC' && input.LA(1) <= '\u09DD')||(input.LA(1) >= '\u09DF' && input.LA(1) <= '\u09E3')||(input.LA(1) >= '\u09E6' && input.LA(1) <= '\u09FA')||(input.LA(1) >= '\u0A01' && input.LA(1) <= '\u0A03')||(input.LA(1) >= '\u0A05' && input.LA(1) <= '\u0A0A')||(input.LA(1) >= '\u0A0F' && input.LA(1) <= '\u0A10')||(input.LA(1) >= '\u0A13' && input.LA(1) <= '\u0A28')||(input.LA(1) >= '\u0A2A' && input.LA(1) <= '\u0A30')||(input.LA(1) >= '\u0A32' && input.LA(1) <= '\u0A33')||(input.LA(1) >= '\u0A35' && input.LA(1) <= '\u0A36')||(input.LA(1) >= '\u0A38' && input.LA(1) <= '\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1) >= '\u0A3E' && input.LA(1) <= '\u0A42')||(input.LA(1) >= '\u0A47' && input.LA(1) <= '\u0A48')||(input.LA(1) >= '\u0A4B' && input.LA(1) <= '\u0A4D')||(input.LA(1) >= '\u0A59' && input.LA(1) <= '\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1) >= '\u0A66' && input.LA(1) <= '\u0A74')||(input.LA(1) >= '\u0A81' && input.LA(1) <= '\u0A83')||(input.LA(1) >= '\u0A85' && input.LA(1) <= '\u0A8D')||(input.LA(1) >= '\u0A8F' && input.LA(1) <= '\u0A91')||(input.LA(1) >= '\u0A93' && input.LA(1) <= '\u0AA8')||(input.LA(1) >= '\u0AAA' && input.LA(1) <= '\u0AB0')||(input.LA(1) >= '\u0AB2' && input.LA(1) <= '\u0AB3')||(input.LA(1) >= '\u0AB5' && input.LA(1) <= '\u0AB9')||(input.LA(1) >= '\u0ABC' && input.LA(1) <= '\u0AC5')||(input.LA(1) >= '\u0AC7' && input.LA(1) <= '\u0AC9')||(input.LA(1) >= '\u0ACB' && input.LA(1) <= '\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1) >= '\u0AE0' && input.LA(1) <= '\u0AE3')||(input.LA(1) >= '\u0AE6' && input.LA(1) <= '\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1) >= '\u0B01' && input.LA(1) <= '\u0B03')||(input.LA(1) >= '\u0B05' && input.LA(1) <= '\u0B0C')||(input.LA(1) >= '\u0B0F' && input.LA(1) <= '\u0B10')||(input.LA(1) >= '\u0B13' && input.LA(1) <= '\u0B28')||(input.LA(1) >= '\u0B2A' && input.LA(1) <= '\u0B30')||(input.LA(1) >= '\u0B32' && input.LA(1) <= '\u0B33')||(input.LA(1) >= '\u0B35' && input.LA(1) <= '\u0B39')||(input.LA(1) >= '\u0B3C' && input.LA(1) <= '\u0B43')||(input.LA(1) >= '\u0B47' && input.LA(1) <= '\u0B48')||(input.LA(1) >= '\u0B4B' && input.LA(1) <= '\u0B4D')||(input.LA(1) >= '\u0B56' && input.LA(1) <= '\u0B57')||(input.LA(1) >= '\u0B5C' && input.LA(1) <= '\u0B5D')||(input.LA(1) >= '\u0B5F' && input.LA(1) <= '\u0B61')||(input.LA(1) >= '\u0B66' && input.LA(1) <= '\u0B71')||(input.LA(1) >= '\u0B82' && input.LA(1) <= '\u0B83')||(input.LA(1) >= '\u0B85' && input.LA(1) <= '\u0B8A')||(input.LA(1) >= '\u0B8E' && input.LA(1) <= '\u0B90')||(input.LA(1) >= '\u0B92' && input.LA(1) <= '\u0B95')||(input.LA(1) >= '\u0B99' && input.LA(1) <= '\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1) >= '\u0B9E' && input.LA(1) <= '\u0B9F')||(input.LA(1) >= '\u0BA3' && input.LA(1) <= '\u0BA4')||(input.LA(1) >= '\u0BA8' && input.LA(1) <= '\u0BAA')||(input.LA(1) >= '\u0BAE' && input.LA(1) <= '\u0BB5')||(input.LA(1) >= '\u0BB7' && input.LA(1) <= '\u0BB9')||(input.LA(1) >= '\u0BBE' && input.LA(1) <= '\u0BC2')||(input.LA(1) >= '\u0BC6' && input.LA(1) <= '\u0BC8')||(input.LA(1) >= '\u0BCA' && input.LA(1) <= '\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1) >= '\u0BE7' && input.LA(1) <= '\u0BFA')||(input.LA(1) >= '\u0C01' && input.LA(1) <= '\u0C03')||(input.LA(1) >= '\u0C05' && input.LA(1) <= '\u0C0C')||(input.LA(1) >= '\u0C0E' && input.LA(1) <= '\u0C10')||(input.LA(1) >= '\u0C12' && input.LA(1) <= '\u0C28')||(input.LA(1) >= '\u0C2A' && input.LA(1) <= '\u0C33')||(input.LA(1) >= '\u0C35' && input.LA(1) <= '\u0C39')||(input.LA(1) >= '\u0C3E' && input.LA(1) <= '\u0C44')||(input.LA(1) >= '\u0C46' && input.LA(1) <= '\u0C48')||(input.LA(1) >= '\u0C4A' && input.LA(1) <= '\u0C4D')||(input.LA(1) >= '\u0C55' && input.LA(1) <= '\u0C56')||(input.LA(1) >= '\u0C60' && input.LA(1) <= '\u0C61')||(input.LA(1) >= '\u0C66' && input.LA(1) <= '\u0C6F')||(input.LA(1) >= '\u0C82' && input.LA(1) <= '\u0C83')||(input.LA(1) >= '\u0C85' && input.LA(1) <= '\u0C8C')||(input.LA(1) >= '\u0C8E' && input.LA(1) <= '\u0C90')||(input.LA(1) >= '\u0C92' && input.LA(1) <= '\u0CA8')||(input.LA(1) >= '\u0CAA' && input.LA(1) <= '\u0CB3')||(input.LA(1) >= '\u0CB5' && input.LA(1) <= '\u0CB9')||(input.LA(1) >= '\u0CBC' && input.LA(1) <= '\u0CC4')||(input.LA(1) >= '\u0CC6' && input.LA(1) <= '\u0CC8')||(input.LA(1) >= '\u0CCA' && input.LA(1) <= '\u0CCD')||(input.LA(1) >= '\u0CD5' && input.LA(1) <= '\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1) >= '\u0CE0' && input.LA(1) <= '\u0CE1')||(input.LA(1) >= '\u0CE6' && input.LA(1) <= '\u0CEF')||(input.LA(1) >= '\u0D02' && input.LA(1) <= '\u0D03')||(input.LA(1) >= '\u0D05' && input.LA(1) <= '\u0D0C')||(input.LA(1) >= '\u0D0E' && input.LA(1) <= '\u0D10')||(input.LA(1) >= '\u0D12' && input.LA(1) <= '\u0D28')||(input.LA(1) >= '\u0D2A' && input.LA(1) <= '\u0D39')||(input.LA(1) >= '\u0D3E' && input.LA(1) <= '\u0D43')||(input.LA(1) >= '\u0D46' && input.LA(1) <= '\u0D48')||(input.LA(1) >= '\u0D4A' && input.LA(1) <= '\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1) >= '\u0D60' && input.LA(1) <= '\u0D61')||(input.LA(1) >= '\u0D66' && input.LA(1) <= '\u0D6F')||(input.LA(1) >= '\u0D82' && input.LA(1) <= '\u0D83')||(input.LA(1) >= '\u0D85' && input.LA(1) <= '\u0D96')||(input.LA(1) >= '\u0D9A' && input.LA(1) <= '\u0DB1')||(input.LA(1) >= '\u0DB3' && input.LA(1) <= '\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1) >= '\u0DC0' && input.LA(1) <= '\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1) >= '\u0DCF' && input.LA(1) <= '\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1) >= '\u0DD8' && input.LA(1) <= '\u0DDF')||(input.LA(1) >= '\u0DF2' && input.LA(1) <= '\u0DF3')||(input.LA(1) >= '\u0E01' && input.LA(1) <= '\u0E3A')||(input.LA(1) >= '\u0E3F' && input.LA(1) <= '\u0E4E')||(input.LA(1) >= '\u0E50' && input.LA(1) <= '\u0E59')||(input.LA(1) >= '\u0E81' && input.LA(1) <= '\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1) >= '\u0E87' && input.LA(1) <= '\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1) >= '\u0E94' && input.LA(1) <= '\u0E97')||(input.LA(1) >= '\u0E99' && input.LA(1) <= '\u0E9F')||(input.LA(1) >= '\u0EA1' && input.LA(1) <= '\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1) >= '\u0EAA' && input.LA(1) <= '\u0EAB')||(input.LA(1) >= '\u0EAD' && input.LA(1) <= '\u0EB9')||(input.LA(1) >= '\u0EBB' && input.LA(1) <= '\u0EBD')||(input.LA(1) >= '\u0EC0' && input.LA(1) <= '\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1) >= '\u0EC8' && input.LA(1) <= '\u0ECD')||(input.LA(1) >= '\u0ED0' && input.LA(1) <= '\u0ED9')||(input.LA(1) >= '\u0EDC' && input.LA(1) <= '\u0EDD')||(input.LA(1) >= '\u0F00' && input.LA(1) <= '\u0F03')||(input.LA(1) >= '\u0F13' && input.LA(1) <= '\u0F39')||(input.LA(1) >= '\u0F3E' && input.LA(1) <= '\u0F47')||(input.LA(1) >= '\u0F49' && input.LA(1) <= '\u0F6A')||(input.LA(1) >= '\u0F71' && input.LA(1) <= '\u0F84')||(input.LA(1) >= '\u0F86' && input.LA(1) <= '\u0F8B')||(input.LA(1) >= '\u0F90' && input.LA(1) <= '\u0F97')||(input.LA(1) >= '\u0F99' && input.LA(1) <= '\u0FBC')||(input.LA(1) >= '\u0FBE' && input.LA(1) <= '\u0FCC')||input.LA(1)=='\u0FCF'||(input.LA(1) >= '\u1000' && input.LA(1) <= '\u1021')||(input.LA(1) >= '\u1023' && input.LA(1) <= '\u1027')||(input.LA(1) >= '\u1029' && input.LA(1) <= '\u102A')||(input.LA(1) >= '\u102C' && input.LA(1) <= '\u1032')||(input.LA(1) >= '\u1036' && input.LA(1) <= '\u1039')||(input.LA(1) >= '\u1040' && input.LA(1) <= '\u1049')||(input.LA(1) >= '\u1050' && input.LA(1) <= '\u1059')||(input.LA(1) >= '\u10A0' && input.LA(1) <= '\u10C5')||(input.LA(1) >= '\u10D0' && input.LA(1) <= '\u10F8')||(input.LA(1) >= '\u1100' && input.LA(1) <= '\u1159')||(input.LA(1) >= '\u115F' && input.LA(1) <= '\u11A2')||(input.LA(1) >= '\u11A8' && input.LA(1) <= '\u11F9')||(input.LA(1) >= '\u1200' && input.LA(1) <= '\u1206')||(input.LA(1) >= '\u1208' && input.LA(1) <= '\u1246')||input.LA(1)=='\u1248'||(input.LA(1) >= '\u124A' && input.LA(1) <= '\u124D')||(input.LA(1) >= '\u1250' && input.LA(1) <= '\u1256')||input.LA(1)=='\u1258'||(input.LA(1) >= '\u125A' && input.LA(1) <= '\u125D')||(input.LA(1) >= '\u1260' && input.LA(1) <= '\u1286')||input.LA(1)=='\u1288'||(input.LA(1) >= '\u128A' && input.LA(1) <= '\u128D')||(input.LA(1) >= '\u1290' && input.LA(1) <= '\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1) >= '\u12B2' && input.LA(1) <= '\u12B5')||(input.LA(1) >= '\u12B8' && input.LA(1) <= '\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1) >= '\u12C2' && input.LA(1) <= '\u12C5')||(input.LA(1) >= '\u12C8' && input.LA(1) <= '\u12CE')||(input.LA(1) >= '\u12D0' && input.LA(1) <= '\u12D6')||(input.LA(1) >= '\u12D8' && input.LA(1) <= '\u12EE')||(input.LA(1) >= '\u12F0' && input.LA(1) <= '\u130E')||input.LA(1)=='\u1310'||(input.LA(1) >= '\u1312' && input.LA(1) <= '\u1315')||(input.LA(1) >= '\u1318' && input.LA(1) <= '\u131E')||(input.LA(1) >= '\u1320' && input.LA(1) <= '\u1346')||(input.LA(1) >= '\u1348' && input.LA(1) <= '\u135A')||(input.LA(1) >= '\u1369' && input.LA(1) <= '\u137C')||(input.LA(1) >= '\u13A0' && input.LA(1) <= '\u13F4')||(input.LA(1) >= '\u1401' && input.LA(1) <= '\u166C')||(input.LA(1) >= '\u166F' && input.LA(1) <= '\u1676')||(input.LA(1) >= '\u1681' && input.LA(1) <= '\u169A')||(input.LA(1) >= '\u16A0' && input.LA(1) <= '\u16EA')||(input.LA(1) >= '\u16EE' && input.LA(1) <= '\u16F0')||(input.LA(1) >= '\u1700' && input.LA(1) <= '\u170C')||(input.LA(1) >= '\u170E' && input.LA(1) <= '\u1714')||(input.LA(1) >= '\u1720' && input.LA(1) <= '\u1734')||(input.LA(1) >= '\u1740' && input.LA(1) <= '\u1753')||(input.LA(1) >= '\u1760' && input.LA(1) <= '\u176C')||(input.LA(1) >= '\u176E' && input.LA(1) <= '\u1770')||(input.LA(1) >= '\u1772' && input.LA(1) <= '\u1773')||(input.LA(1) >= '\u1780' && input.LA(1) <= '\u17B3')||(input.LA(1) >= '\u17B6' && input.LA(1) <= '\u17D3')||input.LA(1)=='\u17D7'||(input.LA(1) >= '\u17DB' && input.LA(1) <= '\u17DD')||(input.LA(1) >= '\u17E0' && input.LA(1) <= '\u17E9')||(input.LA(1) >= '\u17F0' && input.LA(1) <= '\u17F9')||(input.LA(1) >= '\u180B' && input.LA(1) <= '\u180D')||(input.LA(1) >= '\u1810' && input.LA(1) <= '\u1819')||(input.LA(1) >= '\u1820' && input.LA(1) <= '\u1877')||(input.LA(1) >= '\u1880' && input.LA(1) <= '\u18A9')||(input.LA(1) >= '\u1900' && input.LA(1) <= '\u191C')||(input.LA(1) >= '\u1920' && input.LA(1) <= '\u192B')||(input.LA(1) >= '\u1930' && input.LA(1) <= '\u193B')||input.LA(1)=='\u1940'||(input.LA(1) >= '\u1946' && input.LA(1) <= '\u196D')||(input.LA(1) >= '\u1970' && input.LA(1) <= '\u1974')||(input.LA(1) >= '\u19E0' && input.LA(1) <= '\u19FF')||(input.LA(1) >= '\u1D00' && input.LA(1) <= '\u1D6B')||(input.LA(1) >= '\u1E00' && input.LA(1) <= '\u1E9B')||(input.LA(1) >= '\u1EA0' && input.LA(1) <= '\u1EF9')||(input.LA(1) >= '\u1F00' && input.LA(1) <= '\u1F15')||(input.LA(1) >= '\u1F18' && input.LA(1) <= '\u1F1D')||(input.LA(1) >= '\u1F20' && input.LA(1) <= '\u1F45')||(input.LA(1) >= '\u1F48' && input.LA(1) <= '\u1F4D')||(input.LA(1) >= '\u1F50' && input.LA(1) <= '\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1) >= '\u1F5F' && input.LA(1) <= '\u1F7D')||(input.LA(1) >= '\u1F80' && input.LA(1) <= '\u1FB4')||(input.LA(1) >= '\u1FB6' && input.LA(1) <= '\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1) >= '\u1FC2' && input.LA(1) <= '\u1FC4')||(input.LA(1) >= '\u1FC6' && input.LA(1) <= '\u1FCC')||(input.LA(1) >= '\u1FD0' && input.LA(1) <= '\u1FD3')||(input.LA(1) >= '\u1FD6' && input.LA(1) <= '\u1FDB')||(input.LA(1) >= '\u1FE0' && input.LA(1) <= '\u1FEC')||(input.LA(1) >= '\u1FF2' && input.LA(1) <= '\u1FF4')||(input.LA(1) >= '\u1FF6' && input.LA(1) <= '\u1FFC')||(input.LA(1) >= '\u2070' && input.LA(1) <= '\u2071')||(input.LA(1) >= '\u2074' && input.LA(1) <= '\u2079')||(input.LA(1) >= '\u207F' && input.LA(1) <= '\u2089')||(input.LA(1) >= '\u20A0' && input.LA(1) <= '\u20B1')||(input.LA(1) >= '\u20D0' && input.LA(1) <= '\u20EA')||(input.LA(1) >= '\u2100' && input.LA(1) <= '\u213B')||(input.LA(1) >= '\u213D' && input.LA(1) <= '\u213F')||(input.LA(1) >= '\u2145' && input.LA(1) <= '\u214A')||(input.LA(1) >= '\u2153' && input.LA(1) <= '\u2183')||(input.LA(1) >= '\u2195' && input.LA(1) <= '\u2199')||(input.LA(1) >= '\u219C' && input.LA(1) <= '\u219F')||(input.LA(1) >= '\u21A1' && input.LA(1) <= '\u21A2')||(input.LA(1) >= '\u21A4' && input.LA(1) <= '\u21A5')||(input.LA(1) >= '\u21A7' && input.LA(1) <= '\u21AD')||(input.LA(1) >= '\u21AF' && input.LA(1) <= '\u21CD')||(input.LA(1) >= '\u21D0' && input.LA(1) <= '\u21D1')||input.LA(1)=='\u21D3'||(input.LA(1) >= '\u21D5' && input.LA(1) <= '\u21F3')||(input.LA(1) >= '\u2300' && input.LA(1) <= '\u2307')||(input.LA(1) >= '\u230C' && input.LA(1) <= '\u231F')||(input.LA(1) >= '\u2322' && input.LA(1) <= '\u2328')||(input.LA(1) >= '\u232B' && input.LA(1) <= '\u237B')||(input.LA(1) >= '\u237D' && input.LA(1) <= '\u239A')||(input.LA(1) >= '\u23B7' && input.LA(1) <= '\u23D0')||(input.LA(1) >= '\u2400' && input.LA(1) <= '\u2426')||(input.LA(1) >= '\u2440' && input.LA(1) <= '\u244A')||(input.LA(1) >= '\u2460' && input.LA(1) <= '\u25B6')||(input.LA(1) >= '\u25B8' && input.LA(1) <= '\u25C0')||(input.LA(1) >= '\u25C2' && input.LA(1) <= '\u25F7')||(input.LA(1) >= '\u2600' && input.LA(1) <= '\u2617')||(input.LA(1) >= '\u2619' && input.LA(1) <= '\u266E')||(input.LA(1) >= '\u2670' && input.LA(1) <= '\u267D')||(input.LA(1) >= '\u2680' && input.LA(1) <= '\u2691')||(input.LA(1) >= '\u26A0' && input.LA(1) <= '\u26A1')||(input.LA(1) >= '\u2701' && input.LA(1) <= '\u2704')||(input.LA(1) >= '\u2706' && input.LA(1) <= '\u2709')||(input.LA(1) >= '\u270C' && input.LA(1) <= '\u2727')||(input.LA(1) >= '\u2729' && input.LA(1) <= '\u274B')||input.LA(1)=='\u274D'||(input.LA(1) >= '\u274F' && input.LA(1) <= '\u2752')||input.LA(1)=='\u2756'||(input.LA(1) >= '\u2758' && input.LA(1) <= '\u275E')||(input.LA(1) >= '\u2761' && input.LA(1) <= '\u2767')||(input.LA(1) >= '\u2776' && input.LA(1) <= '\u2794')||(input.LA(1) >= '\u2798' && input.LA(1) <= '\u27AF')||(input.LA(1) >= '\u27B1' && input.LA(1) <= '\u27BE')||(input.LA(1) >= '\u2800' && input.LA(1) <= '\u28FF')||(input.LA(1) >= '\u2B00' && input.LA(1) <= '\u2B0D')||(input.LA(1) >= '\u2E80' && input.LA(1) <= '\u2E99')||(input.LA(1) >= '\u2E9B' && input.LA(1) <= '\u2EF3')||(input.LA(1) >= '\u2F00' && input.LA(1) <= '\u2FD5')||(input.LA(1) >= '\u2FF0' && input.LA(1) <= '\u2FFB')||(input.LA(1) >= '\u3004' && input.LA(1) <= '\u3007')||(input.LA(1) >= '\u3012' && input.LA(1) <= '\u3013')||(input.LA(1) >= '\u3020' && input.LA(1) <= '\u302F')||(input.LA(1) >= '\u3031' && input.LA(1) <= '\u303C')||(input.LA(1) >= '\u303E' && input.LA(1) <= '\u303F')||(input.LA(1) >= '\u3041' && input.LA(1) <= '\u3096')||(input.LA(1) >= '\u3099' && input.LA(1) <= '\u309A')||(input.LA(1) >= '\u309D' && input.LA(1) <= '\u309F')||(input.LA(1) >= '\u30A1' && input.LA(1) <= '\u30FA')||(input.LA(1) >= '\u30FC' && input.LA(1) <= '\u30FF')||(input.LA(1) >= '\u3105' && input.LA(1) <= '\u312C')||(input.LA(1) >= '\u3131' && input.LA(1) <= '\u318E')||(input.LA(1) >= '\u3190' && input.LA(1) <= '\u31B7')||(input.LA(1) >= '\u31F0' && input.LA(1) <= '\u321E')||(input.LA(1) >= '\u3220' && input.LA(1) <= '\u3243')||(input.LA(1) >= '\u3250' && input.LA(1) <= '\u327D')||(input.LA(1) >= '\u327F' && input.LA(1) <= '\u32FE')||(input.LA(1) >= '\u3300' && input.LA(1) <= '\u4DB5')||(input.LA(1) >= '\u4DC0' && input.LA(1) <= '\u9FA5')||(input.LA(1) >= '\uA000' && input.LA(1) <= '\uA48C')||(input.LA(1) >= '\uA490' && input.LA(1) <= '\uA4C6')||(input.LA(1) >= '\uAC00' && input.LA(1) <= '\uD7A3')||(input.LA(1) >= '\uF900' && input.LA(1) <= '\uFA2D')||(input.LA(1) >= '\uFA30' && input.LA(1) <= '\uFA6A')||(input.LA(1) >= '\uFB00' && input.LA(1) <= '\uFB06')||(input.LA(1) >= '\uFB13' && input.LA(1) <= '\uFB17')||(input.LA(1) >= '\uFB1D' && input.LA(1) <= '\uFB28')||(input.LA(1) >= '\uFB2A' && input.LA(1) <= '\uFB36')||(input.LA(1) >= '\uFB38' && input.LA(1) <= '\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1) >= '\uFB40' && input.LA(1) <= '\uFB41')||(input.LA(1) >= '\uFB43' && input.LA(1) <= '\uFB44')||(input.LA(1) >= '\uFB46' && input.LA(1) <= '\uFBB1')||(input.LA(1) >= '\uFBD3' && input.LA(1) <= '\uFD3D')||(input.LA(1) >= '\uFD50' && input.LA(1) <= '\uFD8F')||(input.LA(1) >= '\uFD92' && input.LA(1) <= '\uFDC7')||(input.LA(1) >= '\uFDF0' && input.LA(1) <= '\uFDFD')||(input.LA(1) >= '\uFE00' && input.LA(1) <= '\uFE0F')||(input.LA(1) >= '\uFE20' && input.LA(1) <= '\uFE23')||input.LA(1)=='\uFE69'||(input.LA(1) >= '\uFE70' && input.LA(1) <= '\uFE74')||(input.LA(1) >= '\uFE76' && input.LA(1) <= '\uFEFC')||input.LA(1)=='\uFF04'||(input.LA(1) >= '\uFF10' && input.LA(1) <= '\uFF19')||(input.LA(1) >= '\uFF21' && input.LA(1) <= '\uFF3A')||(input.LA(1) >= '\uFF41' && input.LA(1) <= '\uFF5A')||(input.LA(1) >= '\uFF66' && input.LA(1) <= '\uFFBE')||(input.LA(1) >= '\uFFC2' && input.LA(1) <= '\uFFC7')||(input.LA(1) >= '\uFFCA' && input.LA(1) <= '\uFFCF')||(input.LA(1) >= '\uFFD2' && input.LA(1) <= '\uFFD7')||(input.LA(1) >= '\uFFDA' && input.LA(1) <= '\uFFDC')||(input.LA(1) >= '\uFFE0' && input.LA(1) <= '\uFFE1')||(input.LA(1) >= '\uFFE4' && input.LA(1) <= '\uFFE6')||input.LA(1)=='\uFFE8'||(input.LA(1) >= '\uFFED' && input.LA(1) <= '\uFFEE') ) { input.consume(); @@ -4302,8 +4288,8 @@ public class FTSLexer extends Lexer { // $ANTLR start "IN_WORD" public final void mIN_WORD() throws RecognitionException { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2030:9: ( '\\u0021' .. '\\u0027' | '\\u002b' | '\\u002d' | '\\u002f' .. '\\u0039' | '\\u003b' | '\\u003d' | '\\u0040' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u007c' | '\\u00a1' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ac' | '\\u00ae' | '\\u00b0' .. '\\u00b3' | '\\u00b5' .. '\\u00b7' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u037e' .. '\\u037e' | '\\u0386' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' .. '\\u055f' | '\\u0561' .. '\\u0587' | '\\u0589' .. '\\u058a' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f4' | '\\u060c' .. '\\u0615' | '\\u061b' .. '\\u061b' | '\\u061f' .. '\\u061f' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u06dc' | '\\u06de' .. '\\u070d' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0970' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df4' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e5b' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u10fb' .. '\\u10fb' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1361' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1736' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u1800' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1944' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2010' .. '\\u2017' | '\\u2020' .. '\\u2027' | '\\u2030' .. '\\u2038' | '\\u203b' .. '\\u2044' | '\\u2047' .. '\\u2054' | '\\u2057' .. '\\u2057' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u207c' | '\\u207f' .. '\\u208c' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u214b' | '\\u2153' .. '\\u2183' | '\\u2190' .. '\\u2328' | '\\u232b' .. '\\u23b3' | '\\u23b6' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u2617' | '\\u2619' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u27d0' .. '\\u27e5' | '\\u27f0' .. '\\u2982' | '\\u2999' .. '\\u29d7' | '\\u29dc' .. '\\u29fb' | '\\u29fe' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3001' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u301c' | '\\u3020' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe30' .. '\\ufe34' | '\\ufe45' .. '\\ufe46' | '\\ufe49' .. '\\ufe52' | '\\ufe54' .. '\\ufe58' | '\\ufe5f' .. '\\ufe66' | '\\ufe68' .. '\\ufe6b' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff01' .. '\\uff07' | '\\uff0a' .. '\\uff3a' | '\\uff3c' | '\\uff3f' | '\\uff41' .. '\\uff5a' | '\\uff5c' | '\\uff5e' | '\\uff61' | '\\uff64' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe2' | '\\uffe4' .. '\\uffe6' | '\\uffe8' .. '\\uffee' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2030:9: ( '\\u0021' .. '\\u0027' | '\\u002b' | '\\u002d' | '\\u002f' .. '\\u0039' | '\\u003b' | '\\u003d' | '\\u0040' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u007c' | '\\u00a1' .. '\\u00a7' | '\\u00a9' .. '\\u00aa' | '\\u00ac' | '\\u00ae' | '\\u00b0' .. '\\u00b3' | '\\u00b5' .. '\\u00b7' | '\\u00b9' .. '\\u00ba' | '\\u00bc' .. '\\u0236' | '\\u0250' .. '\\u02c1' | '\\u02c6' .. '\\u02d1' | '\\u02e0' .. '\\u02e4' | '\\u02ee' | '\\u0300' .. '\\u0357' | '\\u035d' .. '\\u036f' | '\\u037a' .. '\\u037a' | '\\u037e' .. '\\u037e' | '\\u0386' .. '\\u038a' | '\\u038c' .. '\\u038c' | '\\u038e' .. '\\u03a1' | '\\u03a3' .. '\\u03ce' | '\\u03d0' .. '\\u03fb' | '\\u0400' .. '\\u0486' | '\\u0488' .. '\\u04ce' | '\\u04d0' .. '\\u04f5' | '\\u04f8' .. '\\u04f9' | '\\u0500' .. '\\u050f' | '\\u0531' .. '\\u0556' | '\\u0559' .. '\\u055f' | '\\u0561' .. '\\u0587' | '\\u0589' .. '\\u058a' | '\\u0591' .. '\\u05a1' | '\\u05a3' .. '\\u05b9' | '\\u05bb' .. '\\u05c4' | '\\u05d0' .. '\\u05ea' | '\\u05f0' .. '\\u05f4' | '\\u060c' .. '\\u0615' | '\\u061b' .. '\\u061b' | '\\u061f' .. '\\u061f' | '\\u0621' .. '\\u063a' | '\\u0640' .. '\\u0658' | '\\u0660' .. '\\u06dc' | '\\u06de' .. '\\u070d' | '\\u0710' .. '\\u074a' | '\\u074d' .. '\\u074f' | '\\u0780' .. '\\u07b1' | '\\u0901' .. '\\u0939' | '\\u093c' .. '\\u094d' | '\\u0950' .. '\\u0954' | '\\u0958' .. '\\u0970' | '\\u0981' .. '\\u0983' | '\\u0985' .. '\\u098c' | '\\u098f' .. '\\u0990' | '\\u0993' .. '\\u09a8' | '\\u09aa' .. '\\u09b0' | '\\u09b2' .. '\\u09b2' | '\\u09b6' .. '\\u09b9' | '\\u09bc' .. '\\u09c4' | '\\u09c7' .. '\\u09c8' | '\\u09cb' .. '\\u09cd' | '\\u09d7' .. '\\u09d7' | '\\u09dc' .. '\\u09dd' | '\\u09df' .. '\\u09e3' | '\\u09e6' .. '\\u09fa' | '\\u0a01' .. '\\u0a03' | '\\u0a05' .. '\\u0a0a' | '\\u0a0f' .. '\\u0a10' | '\\u0a13' .. '\\u0a28' | '\\u0a2a' .. '\\u0a30' | '\\u0a32' .. '\\u0a33' | '\\u0a35' .. '\\u0a36' | '\\u0a38' .. '\\u0a39' | '\\u0a3c' .. '\\u0a3c' | '\\u0a3e' .. '\\u0a42' | '\\u0a47' .. '\\u0a48' | '\\u0a4b' .. '\\u0a4d' | '\\u0a59' .. '\\u0a5c' | '\\u0a5e' .. '\\u0a5e' | '\\u0a66' .. '\\u0a74' | '\\u0a81' .. '\\u0a83' | '\\u0a85' .. '\\u0a8d' | '\\u0a8f' .. '\\u0a91' | '\\u0a93' .. '\\u0aa8' | '\\u0aaa' .. '\\u0ab0' | '\\u0ab2' .. '\\u0ab3' | '\\u0ab5' .. '\\u0ab9' | '\\u0abc' .. '\\u0ac5' | '\\u0ac7' .. '\\u0ac9' | '\\u0acb' .. '\\u0acd' | '\\u0ad0' .. '\\u0ad0' | '\\u0ae0' .. '\\u0ae3' | '\\u0ae6' .. '\\u0aef' | '\\u0af1' .. '\\u0af1' | '\\u0b01' .. '\\u0b03' | '\\u0b05' .. '\\u0b0c' | '\\u0b0f' .. '\\u0b10' | '\\u0b13' .. '\\u0b28' | '\\u0b2a' .. '\\u0b30' | '\\u0b32' .. '\\u0b33' | '\\u0b35' .. '\\u0b39' | '\\u0b3c' .. '\\u0b43' | '\\u0b47' .. '\\u0b48' | '\\u0b4b' .. '\\u0b4d' | '\\u0b56' .. '\\u0b57' | '\\u0b5c' .. '\\u0b5d' | '\\u0b5f' .. '\\u0b61' | '\\u0b66' .. '\\u0b71' | '\\u0b82' .. '\\u0b83' | '\\u0b85' .. '\\u0b8a' | '\\u0b8e' .. '\\u0b90' | '\\u0b92' .. '\\u0b95' | '\\u0b99' .. '\\u0b9a' | '\\u0b9c' .. '\\u0b9c' | '\\u0b9e' .. '\\u0b9f' | '\\u0ba3' .. '\\u0ba4' | '\\u0ba8' .. '\\u0baa' | '\\u0bae' .. '\\u0bb5' | '\\u0bb7' .. '\\u0bb9' | '\\u0bbe' .. '\\u0bc2' | '\\u0bc6' .. '\\u0bc8' | '\\u0bca' .. '\\u0bcd' | '\\u0bd7' .. '\\u0bd7' | '\\u0be7' .. '\\u0bfa' | '\\u0c01' .. '\\u0c03' | '\\u0c05' .. '\\u0c0c' | '\\u0c0e' .. '\\u0c10' | '\\u0c12' .. '\\u0c28' | '\\u0c2a' .. '\\u0c33' | '\\u0c35' .. '\\u0c39' | '\\u0c3e' .. '\\u0c44' | '\\u0c46' .. '\\u0c48' | '\\u0c4a' .. '\\u0c4d' | '\\u0c55' .. '\\u0c56' | '\\u0c60' .. '\\u0c61' | '\\u0c66' .. '\\u0c6f' | '\\u0c82' .. '\\u0c83' | '\\u0c85' .. '\\u0c8c' | '\\u0c8e' .. '\\u0c90' | '\\u0c92' .. '\\u0ca8' | '\\u0caa' .. '\\u0cb3' | '\\u0cb5' .. '\\u0cb9' | '\\u0cbc' .. '\\u0cc4' | '\\u0cc6' .. '\\u0cc8' | '\\u0cca' .. '\\u0ccd' | '\\u0cd5' .. '\\u0cd6' | '\\u0cde' .. '\\u0cde' | '\\u0ce0' .. '\\u0ce1' | '\\u0ce6' .. '\\u0cef' | '\\u0d02' .. '\\u0d03' | '\\u0d05' .. '\\u0d0c' | '\\u0d0e' .. '\\u0d10' | '\\u0d12' .. '\\u0d28' | '\\u0d2a' .. '\\u0d39' | '\\u0d3e' .. '\\u0d43' | '\\u0d46' .. '\\u0d48' | '\\u0d4a' .. '\\u0d4d' | '\\u0d57' .. '\\u0d57' | '\\u0d60' .. '\\u0d61' | '\\u0d66' .. '\\u0d6f' | '\\u0d82' .. '\\u0d83' | '\\u0d85' .. '\\u0d96' | '\\u0d9a' .. '\\u0db1' | '\\u0db3' .. '\\u0dbb' | '\\u0dbd' .. '\\u0dbd' | '\\u0dc0' .. '\\u0dc6' | '\\u0dca' .. '\\u0dca' | '\\u0dcf' .. '\\u0dd4' | '\\u0dd6' .. '\\u0dd6' | '\\u0dd8' .. '\\u0ddf' | '\\u0df2' .. '\\u0df4' | '\\u0e01' .. '\\u0e3a' | '\\u0e3f' .. '\\u0e5b' | '\\u0e81' .. '\\u0e82' | '\\u0e84' .. '\\u0e84' | '\\u0e87' .. '\\u0e88' | '\\u0e8a' .. '\\u0e8a' | '\\u0e8d' .. '\\u0e8d' | '\\u0e94' .. '\\u0e97' | '\\u0e99' .. '\\u0e9f' | '\\u0ea1' .. '\\u0ea3' | '\\u0ea5' .. '\\u0ea5' | '\\u0ea7' .. '\\u0ea7' | '\\u0eaa' .. '\\u0eab' | '\\u0ead' .. '\\u0eb9' | '\\u0ebb' .. '\\u0ebd' | '\\u0ec0' .. '\\u0ec4' | '\\u0ec6' .. '\\u0ec6' | '\\u0ec8' .. '\\u0ecd' | '\\u0ed0' .. '\\u0ed9' | '\\u0edc' .. '\\u0edd' | '\\u0f00' .. '\\u0f39' | '\\u0f3e' .. '\\u0f47' | '\\u0f49' .. '\\u0f6a' | '\\u0f71' .. '\\u0f8b' | '\\u0f90' .. '\\u0f97' | '\\u0f99' .. '\\u0fbc' | '\\u0fbe' .. '\\u0fcc' | '\\u0fcf' .. '\\u0fcf' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102a' | '\\u102c' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1059' | '\\u10a0' .. '\\u10c5' | '\\u10d0' .. '\\u10f8' | '\\u10fb' .. '\\u10fb' | '\\u1100' .. '\\u1159' | '\\u115f' .. '\\u11a2' | '\\u11a8' .. '\\u11f9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' .. '\\u1248' | '\\u124a' .. '\\u124d' | '\\u1250' .. '\\u1256' | '\\u1258' .. '\\u1258' | '\\u125a' .. '\\u125d' | '\\u1260' .. '\\u1286' | '\\u1288' .. '\\u1288' | '\\u128a' .. '\\u128d' | '\\u1290' .. '\\u12ae' | '\\u12b0' .. '\\u12b0' | '\\u12b2' .. '\\u12b5' | '\\u12b8' .. '\\u12be' | '\\u12c0' .. '\\u12c0' | '\\u12c2' .. '\\u12c5' | '\\u12c8' .. '\\u12ce' | '\\u12d0' .. '\\u12d6' | '\\u12d8' .. '\\u12ee' | '\\u12f0' .. '\\u130e' | '\\u1310' .. '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131e' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135a' | '\\u1361' .. '\\u137c' | '\\u13a0' .. '\\u13f4' | '\\u1401' .. '\\u1676' | '\\u1681' .. '\\u169a' | '\\u16a0' .. '\\u16f0' | '\\u1700' .. '\\u170c' | '\\u170e' .. '\\u1714' | '\\u1720' .. '\\u1736' | '\\u1740' .. '\\u1753' | '\\u1760' .. '\\u176c' | '\\u176e' .. '\\u1770' | '\\u1772' .. '\\u1773' | '\\u1780' .. '\\u17b3' | '\\u17b6' .. '\\u17dd' | '\\u17e0' .. '\\u17e9' | '\\u17f0' .. '\\u17f9' | '\\u1800' .. '\\u180d' | '\\u1810' .. '\\u1819' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18a9' | '\\u1900' .. '\\u191c' | '\\u1920' .. '\\u192b' | '\\u1930' .. '\\u193b' | '\\u1940' .. '\\u1940' | '\\u1944' .. '\\u196d' | '\\u1970' .. '\\u1974' | '\\u19e0' .. '\\u19ff' | '\\u1d00' .. '\\u1d6b' | '\\u1e00' .. '\\u1e9b' | '\\u1ea0' .. '\\u1ef9' | '\\u1f00' .. '\\u1f15' | '\\u1f18' .. '\\u1f1d' | '\\u1f20' .. '\\u1f45' | '\\u1f48' .. '\\u1f4d' | '\\u1f50' .. '\\u1f57' | '\\u1f59' .. '\\u1f59' | '\\u1f5b' .. '\\u1f5b' | '\\u1f5d' .. '\\u1f5d' | '\\u1f5f' .. '\\u1f7d' | '\\u1f80' .. '\\u1fb4' | '\\u1fb6' .. '\\u1fbc' | '\\u1fbe' | '\\u1fc2' .. '\\u1fc4' | '\\u1fc6' .. '\\u1fcc' | '\\u1fd0' .. '\\u1fd3' | '\\u1fd6' .. '\\u1fdb' | '\\u1fe0' .. '\\u1fec' | '\\u1ff2' .. '\\u1ff4' | '\\u1ff6' .. '\\u1ffc' | '\\u2010' .. '\\u2017' | '\\u2020' .. '\\u2027' | '\\u2030' .. '\\u2038' | '\\u203b' .. '\\u2044' | '\\u2047' .. '\\u2054' | '\\u2057' .. '\\u2057' | '\\u2070' .. '\\u2071' | '\\u2074' .. '\\u207c' | '\\u207f' .. '\\u208c' | '\\u20a0' .. '\\u20b1' | '\\u20d0' .. '\\u20ea' | '\\u2100' .. '\\u213b' | '\\u213d' .. '\\u214b' | '\\u2153' .. '\\u2183' | '\\u2190' .. '\\u2328' | '\\u232b' .. '\\u23b3' | '\\u23b6' .. '\\u23d0' | '\\u2400' .. '\\u2426' | '\\u2440' .. '\\u244a' | '\\u2460' .. '\\u2617' | '\\u2619' .. '\\u267d' | '\\u2680' .. '\\u2691' | '\\u26a0' .. '\\u26a1' | '\\u2701' .. '\\u2704' | '\\u2706' .. '\\u2709' | '\\u270c' .. '\\u2727' | '\\u2729' .. '\\u274b' | '\\u274d' .. '\\u274d' | '\\u274f' .. '\\u2752' | '\\u2756' .. '\\u2756' | '\\u2758' .. '\\u275e' | '\\u2761' .. '\\u2767' | '\\u2776' .. '\\u2794' | '\\u2798' .. '\\u27af' | '\\u27b1' .. '\\u27be' | '\\u27d0' .. '\\u27e5' | '\\u27f0' .. '\\u2982' | '\\u2999' .. '\\u29d7' | '\\u29dc' .. '\\u29fb' | '\\u29fe' .. '\\u2b0d' | '\\u2e80' .. '\\u2e99' | '\\u2e9b' .. '\\u2ef3' | '\\u2f00' .. '\\u2fd5' | '\\u2ff0' .. '\\u2ffb' | '\\u3001' .. '\\u3007' | '\\u3012' .. '\\u3013' | '\\u301c' | '\\u3020' .. '\\u303f' | '\\u3041' .. '\\u3096' | '\\u3099' .. '\\u309a' | '\\u309d' .. '\\u30ff' | '\\u3105' .. '\\u312c' | '\\u3131' .. '\\u318e' | '\\u3190' .. '\\u31b7' | '\\u31f0' .. '\\u321e' | '\\u3220' .. '\\u3243' | '\\u3250' .. '\\u327d' | '\\u327f' .. '\\u32fe' | '\\u3300' .. '\\u4db5' | '\\u4dc0' .. '\\u9fa5' | '\\ua000' .. '\\ua48c' | '\\ua490' .. '\\ua4c6' | '\\uac00' .. '\\ud7a3' | '\\uf900' .. '\\ufa2d' | '\\ufa30' .. '\\ufa6a' | '\\ufb00' .. '\\ufb06' | '\\ufb13' .. '\\ufb17' | '\\ufb1d' .. '\\ufb36' | '\\ufb38' .. '\\ufb3c' | '\\ufb3e' .. '\\ufb3e' | '\\ufb40' .. '\\ufb41' | '\\ufb43' .. '\\ufb44' | '\\ufb46' .. '\\ufbb1' | '\\ufbd3' .. '\\ufd3d' | '\\ufd50' .. '\\ufd8f' | '\\ufd92' .. '\\ufdc7' | '\\ufdf0' .. '\\ufdfd' | '\\ufe00' .. '\\ufe0f' | '\\ufe20' .. '\\ufe23' | '\\ufe30' .. '\\ufe34' | '\\ufe45' .. '\\ufe46' | '\\ufe49' .. '\\ufe52' | '\\ufe54' .. '\\ufe58' | '\\ufe5f' .. '\\ufe66' | '\\ufe68' .. '\\ufe6b' | '\\ufe70' .. '\\ufe74' | '\\ufe76' .. '\\ufefc' | '\\uff01' .. '\\uff07' | '\\uff0a' .. '\\uff3a' | '\\uff3c' | '\\uff3f' | '\\uff41' .. '\\uff5a' | '\\uff5c' | '\\uff5e' | '\\uff61' | '\\uff64' .. '\\uffbe' | '\\uffc2' .. '\\uffc7' | '\\uffca' .. '\\uffcf' | '\\uffd2' .. '\\uffd7' | '\\uffda' .. '\\uffdc' | '\\uffe0' .. '\\uffe2' | '\\uffe4' .. '\\uffe6' | '\\uffe8' .. '\\uffee' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '!' && input.LA(1) <= '\'')||input.LA(1)=='+'||input.LA(1)=='-'||(input.LA(1) >= '/' && input.LA(1) <= '9')||input.LA(1)==';'||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='|'||(input.LA(1) >= '\u00A1' && input.LA(1) <= '\u00A7')||(input.LA(1) >= '\u00A9' && input.LA(1) <= '\u00AA')||input.LA(1)=='\u00AC'||input.LA(1)=='\u00AE'||(input.LA(1) >= '\u00B0' && input.LA(1) <= '\u00B3')||(input.LA(1) >= '\u00B5' && input.LA(1) <= '\u00B7')||(input.LA(1) >= '\u00B9' && input.LA(1) <= '\u00BA')||(input.LA(1) >= '\u00BC' && input.LA(1) <= '\u0236')||(input.LA(1) >= '\u0250' && input.LA(1) <= '\u02C1')||(input.LA(1) >= '\u02C6' && input.LA(1) <= '\u02D1')||(input.LA(1) >= '\u02E0' && input.LA(1) <= '\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1) >= '\u0300' && input.LA(1) <= '\u0357')||(input.LA(1) >= '\u035D' && input.LA(1) <= '\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u037E'||(input.LA(1) >= '\u0386' && input.LA(1) <= '\u038A')||input.LA(1)=='\u038C'||(input.LA(1) >= '\u038E' && input.LA(1) <= '\u03A1')||(input.LA(1) >= '\u03A3' && input.LA(1) <= '\u03CE')||(input.LA(1) >= '\u03D0' && input.LA(1) <= '\u03FB')||(input.LA(1) >= '\u0400' && input.LA(1) <= '\u0486')||(input.LA(1) >= '\u0488' && input.LA(1) <= '\u04CE')||(input.LA(1) >= '\u04D0' && input.LA(1) <= '\u04F5')||(input.LA(1) >= '\u04F8' && input.LA(1) <= '\u04F9')||(input.LA(1) >= '\u0500' && input.LA(1) <= '\u050F')||(input.LA(1) >= '\u0531' && input.LA(1) <= '\u0556')||(input.LA(1) >= '\u0559' && input.LA(1) <= '\u055F')||(input.LA(1) >= '\u0561' && input.LA(1) <= '\u0587')||(input.LA(1) >= '\u0589' && input.LA(1) <= '\u058A')||(input.LA(1) >= '\u0591' && input.LA(1) <= '\u05A1')||(input.LA(1) >= '\u05A3' && input.LA(1) <= '\u05B9')||(input.LA(1) >= '\u05BB' && input.LA(1) <= '\u05C4')||(input.LA(1) >= '\u05D0' && input.LA(1) <= '\u05EA')||(input.LA(1) >= '\u05F0' && input.LA(1) <= '\u05F4')||(input.LA(1) >= '\u060C' && input.LA(1) <= '\u0615')||input.LA(1)=='\u061B'||input.LA(1)=='\u061F'||(input.LA(1) >= '\u0621' && input.LA(1) <= '\u063A')||(input.LA(1) >= '\u0640' && input.LA(1) <= '\u0658')||(input.LA(1) >= '\u0660' && input.LA(1) <= '\u06DC')||(input.LA(1) >= '\u06DE' && input.LA(1) <= '\u070D')||(input.LA(1) >= '\u0710' && input.LA(1) <= '\u074A')||(input.LA(1) >= '\u074D' && input.LA(1) <= '\u074F')||(input.LA(1) >= '\u0780' && input.LA(1) <= '\u07B1')||(input.LA(1) >= '\u0901' && input.LA(1) <= '\u0939')||(input.LA(1) >= '\u093C' && input.LA(1) <= '\u094D')||(input.LA(1) >= '\u0950' && input.LA(1) <= '\u0954')||(input.LA(1) >= '\u0958' && input.LA(1) <= '\u0970')||(input.LA(1) >= '\u0981' && input.LA(1) <= '\u0983')||(input.LA(1) >= '\u0985' && input.LA(1) <= '\u098C')||(input.LA(1) >= '\u098F' && input.LA(1) <= '\u0990')||(input.LA(1) >= '\u0993' && input.LA(1) <= '\u09A8')||(input.LA(1) >= '\u09AA' && input.LA(1) <= '\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1) >= '\u09B6' && input.LA(1) <= '\u09B9')||(input.LA(1) >= '\u09BC' && input.LA(1) <= '\u09C4')||(input.LA(1) >= '\u09C7' && input.LA(1) <= '\u09C8')||(input.LA(1) >= '\u09CB' && input.LA(1) <= '\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1) >= '\u09DC' && input.LA(1) <= '\u09DD')||(input.LA(1) >= '\u09DF' && input.LA(1) <= '\u09E3')||(input.LA(1) >= '\u09E6' && input.LA(1) <= '\u09FA')||(input.LA(1) >= '\u0A01' && input.LA(1) <= '\u0A03')||(input.LA(1) >= '\u0A05' && input.LA(1) <= '\u0A0A')||(input.LA(1) >= '\u0A0F' && input.LA(1) <= '\u0A10')||(input.LA(1) >= '\u0A13' && input.LA(1) <= '\u0A28')||(input.LA(1) >= '\u0A2A' && input.LA(1) <= '\u0A30')||(input.LA(1) >= '\u0A32' && input.LA(1) <= '\u0A33')||(input.LA(1) >= '\u0A35' && input.LA(1) <= '\u0A36')||(input.LA(1) >= '\u0A38' && input.LA(1) <= '\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1) >= '\u0A3E' && input.LA(1) <= '\u0A42')||(input.LA(1) >= '\u0A47' && input.LA(1) <= '\u0A48')||(input.LA(1) >= '\u0A4B' && input.LA(1) <= '\u0A4D')||(input.LA(1) >= '\u0A59' && input.LA(1) <= '\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1) >= '\u0A66' && input.LA(1) <= '\u0A74')||(input.LA(1) >= '\u0A81' && input.LA(1) <= '\u0A83')||(input.LA(1) >= '\u0A85' && input.LA(1) <= '\u0A8D')||(input.LA(1) >= '\u0A8F' && input.LA(1) <= '\u0A91')||(input.LA(1) >= '\u0A93' && input.LA(1) <= '\u0AA8')||(input.LA(1) >= '\u0AAA' && input.LA(1) <= '\u0AB0')||(input.LA(1) >= '\u0AB2' && input.LA(1) <= '\u0AB3')||(input.LA(1) >= '\u0AB5' && input.LA(1) <= '\u0AB9')||(input.LA(1) >= '\u0ABC' && input.LA(1) <= '\u0AC5')||(input.LA(1) >= '\u0AC7' && input.LA(1) <= '\u0AC9')||(input.LA(1) >= '\u0ACB' && input.LA(1) <= '\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1) >= '\u0AE0' && input.LA(1) <= '\u0AE3')||(input.LA(1) >= '\u0AE6' && input.LA(1) <= '\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1) >= '\u0B01' && input.LA(1) <= '\u0B03')||(input.LA(1) >= '\u0B05' && input.LA(1) <= '\u0B0C')||(input.LA(1) >= '\u0B0F' && input.LA(1) <= '\u0B10')||(input.LA(1) >= '\u0B13' && input.LA(1) <= '\u0B28')||(input.LA(1) >= '\u0B2A' && input.LA(1) <= '\u0B30')||(input.LA(1) >= '\u0B32' && input.LA(1) <= '\u0B33')||(input.LA(1) >= '\u0B35' && input.LA(1) <= '\u0B39')||(input.LA(1) >= '\u0B3C' && input.LA(1) <= '\u0B43')||(input.LA(1) >= '\u0B47' && input.LA(1) <= '\u0B48')||(input.LA(1) >= '\u0B4B' && input.LA(1) <= '\u0B4D')||(input.LA(1) >= '\u0B56' && input.LA(1) <= '\u0B57')||(input.LA(1) >= '\u0B5C' && input.LA(1) <= '\u0B5D')||(input.LA(1) >= '\u0B5F' && input.LA(1) <= '\u0B61')||(input.LA(1) >= '\u0B66' && input.LA(1) <= '\u0B71')||(input.LA(1) >= '\u0B82' && input.LA(1) <= '\u0B83')||(input.LA(1) >= '\u0B85' && input.LA(1) <= '\u0B8A')||(input.LA(1) >= '\u0B8E' && input.LA(1) <= '\u0B90')||(input.LA(1) >= '\u0B92' && input.LA(1) <= '\u0B95')||(input.LA(1) >= '\u0B99' && input.LA(1) <= '\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1) >= '\u0B9E' && input.LA(1) <= '\u0B9F')||(input.LA(1) >= '\u0BA3' && input.LA(1) <= '\u0BA4')||(input.LA(1) >= '\u0BA8' && input.LA(1) <= '\u0BAA')||(input.LA(1) >= '\u0BAE' && input.LA(1) <= '\u0BB5')||(input.LA(1) >= '\u0BB7' && input.LA(1) <= '\u0BB9')||(input.LA(1) >= '\u0BBE' && input.LA(1) <= '\u0BC2')||(input.LA(1) >= '\u0BC6' && input.LA(1) <= '\u0BC8')||(input.LA(1) >= '\u0BCA' && input.LA(1) <= '\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1) >= '\u0BE7' && input.LA(1) <= '\u0BFA')||(input.LA(1) >= '\u0C01' && input.LA(1) <= '\u0C03')||(input.LA(1) >= '\u0C05' && input.LA(1) <= '\u0C0C')||(input.LA(1) >= '\u0C0E' && input.LA(1) <= '\u0C10')||(input.LA(1) >= '\u0C12' && input.LA(1) <= '\u0C28')||(input.LA(1) >= '\u0C2A' && input.LA(1) <= '\u0C33')||(input.LA(1) >= '\u0C35' && input.LA(1) <= '\u0C39')||(input.LA(1) >= '\u0C3E' && input.LA(1) <= '\u0C44')||(input.LA(1) >= '\u0C46' && input.LA(1) <= '\u0C48')||(input.LA(1) >= '\u0C4A' && input.LA(1) <= '\u0C4D')||(input.LA(1) >= '\u0C55' && input.LA(1) <= '\u0C56')||(input.LA(1) >= '\u0C60' && input.LA(1) <= '\u0C61')||(input.LA(1) >= '\u0C66' && input.LA(1) <= '\u0C6F')||(input.LA(1) >= '\u0C82' && input.LA(1) <= '\u0C83')||(input.LA(1) >= '\u0C85' && input.LA(1) <= '\u0C8C')||(input.LA(1) >= '\u0C8E' && input.LA(1) <= '\u0C90')||(input.LA(1) >= '\u0C92' && input.LA(1) <= '\u0CA8')||(input.LA(1) >= '\u0CAA' && input.LA(1) <= '\u0CB3')||(input.LA(1) >= '\u0CB5' && input.LA(1) <= '\u0CB9')||(input.LA(1) >= '\u0CBC' && input.LA(1) <= '\u0CC4')||(input.LA(1) >= '\u0CC6' && input.LA(1) <= '\u0CC8')||(input.LA(1) >= '\u0CCA' && input.LA(1) <= '\u0CCD')||(input.LA(1) >= '\u0CD5' && input.LA(1) <= '\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1) >= '\u0CE0' && input.LA(1) <= '\u0CE1')||(input.LA(1) >= '\u0CE6' && input.LA(1) <= '\u0CEF')||(input.LA(1) >= '\u0D02' && input.LA(1) <= '\u0D03')||(input.LA(1) >= '\u0D05' && input.LA(1) <= '\u0D0C')||(input.LA(1) >= '\u0D0E' && input.LA(1) <= '\u0D10')||(input.LA(1) >= '\u0D12' && input.LA(1) <= '\u0D28')||(input.LA(1) >= '\u0D2A' && input.LA(1) <= '\u0D39')||(input.LA(1) >= '\u0D3E' && input.LA(1) <= '\u0D43')||(input.LA(1) >= '\u0D46' && input.LA(1) <= '\u0D48')||(input.LA(1) >= '\u0D4A' && input.LA(1) <= '\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1) >= '\u0D60' && input.LA(1) <= '\u0D61')||(input.LA(1) >= '\u0D66' && input.LA(1) <= '\u0D6F')||(input.LA(1) >= '\u0D82' && input.LA(1) <= '\u0D83')||(input.LA(1) >= '\u0D85' && input.LA(1) <= '\u0D96')||(input.LA(1) >= '\u0D9A' && input.LA(1) <= '\u0DB1')||(input.LA(1) >= '\u0DB3' && input.LA(1) <= '\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1) >= '\u0DC0' && input.LA(1) <= '\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1) >= '\u0DCF' && input.LA(1) <= '\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1) >= '\u0DD8' && input.LA(1) <= '\u0DDF')||(input.LA(1) >= '\u0DF2' && input.LA(1) <= '\u0DF4')||(input.LA(1) >= '\u0E01' && input.LA(1) <= '\u0E3A')||(input.LA(1) >= '\u0E3F' && input.LA(1) <= '\u0E5B')||(input.LA(1) >= '\u0E81' && input.LA(1) <= '\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1) >= '\u0E87' && input.LA(1) <= '\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1) >= '\u0E94' && input.LA(1) <= '\u0E97')||(input.LA(1) >= '\u0E99' && input.LA(1) <= '\u0E9F')||(input.LA(1) >= '\u0EA1' && input.LA(1) <= '\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1) >= '\u0EAA' && input.LA(1) <= '\u0EAB')||(input.LA(1) >= '\u0EAD' && input.LA(1) <= '\u0EB9')||(input.LA(1) >= '\u0EBB' && input.LA(1) <= '\u0EBD')||(input.LA(1) >= '\u0EC0' && input.LA(1) <= '\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1) >= '\u0EC8' && input.LA(1) <= '\u0ECD')||(input.LA(1) >= '\u0ED0' && input.LA(1) <= '\u0ED9')||(input.LA(1) >= '\u0EDC' && input.LA(1) <= '\u0EDD')||(input.LA(1) >= '\u0F00' && input.LA(1) <= '\u0F39')||(input.LA(1) >= '\u0F3E' && input.LA(1) <= '\u0F47')||(input.LA(1) >= '\u0F49' && input.LA(1) <= '\u0F6A')||(input.LA(1) >= '\u0F71' && input.LA(1) <= '\u0F8B')||(input.LA(1) >= '\u0F90' && input.LA(1) <= '\u0F97')||(input.LA(1) >= '\u0F99' && input.LA(1) <= '\u0FBC')||(input.LA(1) >= '\u0FBE' && input.LA(1) <= '\u0FCC')||input.LA(1)=='\u0FCF'||(input.LA(1) >= '\u1000' && input.LA(1) <= '\u1021')||(input.LA(1) >= '\u1023' && input.LA(1) <= '\u1027')||(input.LA(1) >= '\u1029' && input.LA(1) <= '\u102A')||(input.LA(1) >= '\u102C' && input.LA(1) <= '\u1032')||(input.LA(1) >= '\u1036' && input.LA(1) <= '\u1039')||(input.LA(1) >= '\u1040' && input.LA(1) <= '\u1059')||(input.LA(1) >= '\u10A0' && input.LA(1) <= '\u10C5')||(input.LA(1) >= '\u10D0' && input.LA(1) <= '\u10F8')||input.LA(1)=='\u10FB'||(input.LA(1) >= '\u1100' && input.LA(1) <= '\u1159')||(input.LA(1) >= '\u115F' && input.LA(1) <= '\u11A2')||(input.LA(1) >= '\u11A8' && input.LA(1) <= '\u11F9')||(input.LA(1) >= '\u1200' && input.LA(1) <= '\u1206')||(input.LA(1) >= '\u1208' && input.LA(1) <= '\u1246')||input.LA(1)=='\u1248'||(input.LA(1) >= '\u124A' && input.LA(1) <= '\u124D')||(input.LA(1) >= '\u1250' && input.LA(1) <= '\u1256')||input.LA(1)=='\u1258'||(input.LA(1) >= '\u125A' && input.LA(1) <= '\u125D')||(input.LA(1) >= '\u1260' && input.LA(1) <= '\u1286')||input.LA(1)=='\u1288'||(input.LA(1) >= '\u128A' && input.LA(1) <= '\u128D')||(input.LA(1) >= '\u1290' && input.LA(1) <= '\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1) >= '\u12B2' && input.LA(1) <= '\u12B5')||(input.LA(1) >= '\u12B8' && input.LA(1) <= '\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1) >= '\u12C2' && input.LA(1) <= '\u12C5')||(input.LA(1) >= '\u12C8' && input.LA(1) <= '\u12CE')||(input.LA(1) >= '\u12D0' && input.LA(1) <= '\u12D6')||(input.LA(1) >= '\u12D8' && input.LA(1) <= '\u12EE')||(input.LA(1) >= '\u12F0' && input.LA(1) <= '\u130E')||input.LA(1)=='\u1310'||(input.LA(1) >= '\u1312' && input.LA(1) <= '\u1315')||(input.LA(1) >= '\u1318' && input.LA(1) <= '\u131E')||(input.LA(1) >= '\u1320' && input.LA(1) <= '\u1346')||(input.LA(1) >= '\u1348' && input.LA(1) <= '\u135A')||(input.LA(1) >= '\u1361' && input.LA(1) <= '\u137C')||(input.LA(1) >= '\u13A0' && input.LA(1) <= '\u13F4')||(input.LA(1) >= '\u1401' && input.LA(1) <= '\u1676')||(input.LA(1) >= '\u1681' && input.LA(1) <= '\u169A')||(input.LA(1) >= '\u16A0' && input.LA(1) <= '\u16F0')||(input.LA(1) >= '\u1700' && input.LA(1) <= '\u170C')||(input.LA(1) >= '\u170E' && input.LA(1) <= '\u1714')||(input.LA(1) >= '\u1720' && input.LA(1) <= '\u1736')||(input.LA(1) >= '\u1740' && input.LA(1) <= '\u1753')||(input.LA(1) >= '\u1760' && input.LA(1) <= '\u176C')||(input.LA(1) >= '\u176E' && input.LA(1) <= '\u1770')||(input.LA(1) >= '\u1772' && input.LA(1) <= '\u1773')||(input.LA(1) >= '\u1780' && input.LA(1) <= '\u17B3')||(input.LA(1) >= '\u17B6' && input.LA(1) <= '\u17DD')||(input.LA(1) >= '\u17E0' && input.LA(1) <= '\u17E9')||(input.LA(1) >= '\u17F0' && input.LA(1) <= '\u17F9')||(input.LA(1) >= '\u1800' && input.LA(1) <= '\u180D')||(input.LA(1) >= '\u1810' && input.LA(1) <= '\u1819')||(input.LA(1) >= '\u1820' && input.LA(1) <= '\u1877')||(input.LA(1) >= '\u1880' && input.LA(1) <= '\u18A9')||(input.LA(1) >= '\u1900' && input.LA(1) <= '\u191C')||(input.LA(1) >= '\u1920' && input.LA(1) <= '\u192B')||(input.LA(1) >= '\u1930' && input.LA(1) <= '\u193B')||input.LA(1)=='\u1940'||(input.LA(1) >= '\u1944' && input.LA(1) <= '\u196D')||(input.LA(1) >= '\u1970' && input.LA(1) <= '\u1974')||(input.LA(1) >= '\u19E0' && input.LA(1) <= '\u19FF')||(input.LA(1) >= '\u1D00' && input.LA(1) <= '\u1D6B')||(input.LA(1) >= '\u1E00' && input.LA(1) <= '\u1E9B')||(input.LA(1) >= '\u1EA0' && input.LA(1) <= '\u1EF9')||(input.LA(1) >= '\u1F00' && input.LA(1) <= '\u1F15')||(input.LA(1) >= '\u1F18' && input.LA(1) <= '\u1F1D')||(input.LA(1) >= '\u1F20' && input.LA(1) <= '\u1F45')||(input.LA(1) >= '\u1F48' && input.LA(1) <= '\u1F4D')||(input.LA(1) >= '\u1F50' && input.LA(1) <= '\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1) >= '\u1F5F' && input.LA(1) <= '\u1F7D')||(input.LA(1) >= '\u1F80' && input.LA(1) <= '\u1FB4')||(input.LA(1) >= '\u1FB6' && input.LA(1) <= '\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1) >= '\u1FC2' && input.LA(1) <= '\u1FC4')||(input.LA(1) >= '\u1FC6' && input.LA(1) <= '\u1FCC')||(input.LA(1) >= '\u1FD0' && input.LA(1) <= '\u1FD3')||(input.LA(1) >= '\u1FD6' && input.LA(1) <= '\u1FDB')||(input.LA(1) >= '\u1FE0' && input.LA(1) <= '\u1FEC')||(input.LA(1) >= '\u1FF2' && input.LA(1) <= '\u1FF4')||(input.LA(1) >= '\u1FF6' && input.LA(1) <= '\u1FFC')||(input.LA(1) >= '\u2010' && input.LA(1) <= '\u2017')||(input.LA(1) >= '\u2020' && input.LA(1) <= '\u2027')||(input.LA(1) >= '\u2030' && input.LA(1) <= '\u2038')||(input.LA(1) >= '\u203B' && input.LA(1) <= '\u2044')||(input.LA(1) >= '\u2047' && input.LA(1) <= '\u2054')||input.LA(1)=='\u2057'||(input.LA(1) >= '\u2070' && input.LA(1) <= '\u2071')||(input.LA(1) >= '\u2074' && input.LA(1) <= '\u207C')||(input.LA(1) >= '\u207F' && input.LA(1) <= '\u208C')||(input.LA(1) >= '\u20A0' && input.LA(1) <= '\u20B1')||(input.LA(1) >= '\u20D0' && input.LA(1) <= '\u20EA')||(input.LA(1) >= '\u2100' && input.LA(1) <= '\u213B')||(input.LA(1) >= '\u213D' && input.LA(1) <= '\u214B')||(input.LA(1) >= '\u2153' && input.LA(1) <= '\u2183')||(input.LA(1) >= '\u2190' && input.LA(1) <= '\u2328')||(input.LA(1) >= '\u232B' && input.LA(1) <= '\u23B3')||(input.LA(1) >= '\u23B6' && input.LA(1) <= '\u23D0')||(input.LA(1) >= '\u2400' && input.LA(1) <= '\u2426')||(input.LA(1) >= '\u2440' && input.LA(1) <= '\u244A')||(input.LA(1) >= '\u2460' && input.LA(1) <= '\u2617')||(input.LA(1) >= '\u2619' && input.LA(1) <= '\u267D')||(input.LA(1) >= '\u2680' && input.LA(1) <= '\u2691')||(input.LA(1) >= '\u26A0' && input.LA(1) <= '\u26A1')||(input.LA(1) >= '\u2701' && input.LA(1) <= '\u2704')||(input.LA(1) >= '\u2706' && input.LA(1) <= '\u2709')||(input.LA(1) >= '\u270C' && input.LA(1) <= '\u2727')||(input.LA(1) >= '\u2729' && input.LA(1) <= '\u274B')||input.LA(1)=='\u274D'||(input.LA(1) >= '\u274F' && input.LA(1) <= '\u2752')||input.LA(1)=='\u2756'||(input.LA(1) >= '\u2758' && input.LA(1) <= '\u275E')||(input.LA(1) >= '\u2761' && input.LA(1) <= '\u2767')||(input.LA(1) >= '\u2776' && input.LA(1) <= '\u2794')||(input.LA(1) >= '\u2798' && input.LA(1) <= '\u27AF')||(input.LA(1) >= '\u27B1' && input.LA(1) <= '\u27BE')||(input.LA(1) >= '\u27D0' && input.LA(1) <= '\u27E5')||(input.LA(1) >= '\u27F0' && input.LA(1) <= '\u2982')||(input.LA(1) >= '\u2999' && input.LA(1) <= '\u29D7')||(input.LA(1) >= '\u29DC' && input.LA(1) <= '\u29FB')||(input.LA(1) >= '\u29FE' && input.LA(1) <= '\u2B0D')||(input.LA(1) >= '\u2E80' && input.LA(1) <= '\u2E99')||(input.LA(1) >= '\u2E9B' && input.LA(1) <= '\u2EF3')||(input.LA(1) >= '\u2F00' && input.LA(1) <= '\u2FD5')||(input.LA(1) >= '\u2FF0' && input.LA(1) <= '\u2FFB')||(input.LA(1) >= '\u3001' && input.LA(1) <= '\u3007')||(input.LA(1) >= '\u3012' && input.LA(1) <= '\u3013')||input.LA(1)=='\u301C'||(input.LA(1) >= '\u3020' && input.LA(1) <= '\u303F')||(input.LA(1) >= '\u3041' && input.LA(1) <= '\u3096')||(input.LA(1) >= '\u3099' && input.LA(1) <= '\u309A')||(input.LA(1) >= '\u309D' && input.LA(1) <= '\u30FF')||(input.LA(1) >= '\u3105' && input.LA(1) <= '\u312C')||(input.LA(1) >= '\u3131' && input.LA(1) <= '\u318E')||(input.LA(1) >= '\u3190' && input.LA(1) <= '\u31B7')||(input.LA(1) >= '\u31F0' && input.LA(1) <= '\u321E')||(input.LA(1) >= '\u3220' && input.LA(1) <= '\u3243')||(input.LA(1) >= '\u3250' && input.LA(1) <= '\u327D')||(input.LA(1) >= '\u327F' && input.LA(1) <= '\u32FE')||(input.LA(1) >= '\u3300' && input.LA(1) <= '\u4DB5')||(input.LA(1) >= '\u4DC0' && input.LA(1) <= '\u9FA5')||(input.LA(1) >= '\uA000' && input.LA(1) <= '\uA48C')||(input.LA(1) >= '\uA490' && input.LA(1) <= '\uA4C6')||(input.LA(1) >= '\uAC00' && input.LA(1) <= '\uD7A3')||(input.LA(1) >= '\uF900' && input.LA(1) <= '\uFA2D')||(input.LA(1) >= '\uFA30' && input.LA(1) <= '\uFA6A')||(input.LA(1) >= '\uFB00' && input.LA(1) <= '\uFB06')||(input.LA(1) >= '\uFB13' && input.LA(1) <= '\uFB17')||(input.LA(1) >= '\uFB1D' && input.LA(1) <= '\uFB36')||(input.LA(1) >= '\uFB38' && input.LA(1) <= '\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1) >= '\uFB40' && input.LA(1) <= '\uFB41')||(input.LA(1) >= '\uFB43' && input.LA(1) <= '\uFB44')||(input.LA(1) >= '\uFB46' && input.LA(1) <= '\uFBB1')||(input.LA(1) >= '\uFBD3' && input.LA(1) <= '\uFD3D')||(input.LA(1) >= '\uFD50' && input.LA(1) <= '\uFD8F')||(input.LA(1) >= '\uFD92' && input.LA(1) <= '\uFDC7')||(input.LA(1) >= '\uFDF0' && input.LA(1) <= '\uFDFD')||(input.LA(1) >= '\uFE00' && input.LA(1) <= '\uFE0F')||(input.LA(1) >= '\uFE20' && input.LA(1) <= '\uFE23')||(input.LA(1) >= '\uFE30' && input.LA(1) <= '\uFE34')||(input.LA(1) >= '\uFE45' && input.LA(1) <= '\uFE46')||(input.LA(1) >= '\uFE49' && input.LA(1) <= '\uFE52')||(input.LA(1) >= '\uFE54' && input.LA(1) <= '\uFE58')||(input.LA(1) >= '\uFE5F' && input.LA(1) <= '\uFE66')||(input.LA(1) >= '\uFE68' && input.LA(1) <= '\uFE6B')||(input.LA(1) >= '\uFE70' && input.LA(1) <= '\uFE74')||(input.LA(1) >= '\uFE76' && input.LA(1) <= '\uFEFC')||(input.LA(1) >= '\uFF01' && input.LA(1) <= '\uFF07')||(input.LA(1) >= '\uFF0A' && input.LA(1) <= '\uFF3A')||input.LA(1)=='\uFF3C'||input.LA(1)=='\uFF3F'||(input.LA(1) >= '\uFF41' && input.LA(1) <= '\uFF5A')||input.LA(1)=='\uFF5C'||input.LA(1)=='\uFF5E'||input.LA(1)=='\uFF61'||(input.LA(1) >= '\uFF64' && input.LA(1) <= '\uFFBE')||(input.LA(1) >= '\uFFC2' && input.LA(1) <= '\uFFC7')||(input.LA(1) >= '\uFFCA' && input.LA(1) <= '\uFFCF')||(input.LA(1) >= '\uFFD2' && input.LA(1) <= '\uFFD7')||(input.LA(1) >= '\uFFDA' && input.LA(1) <= '\uFFDC')||(input.LA(1) >= '\uFFE0' && input.LA(1) <= '\uFFE2')||(input.LA(1) >= '\uFFE4' && input.LA(1) <= '\uFFE6')||(input.LA(1) >= '\uFFE8' && input.LA(1) <= '\uFFEE') ) { input.consume(); @@ -4329,10 +4315,10 @@ public class FTSLexer extends Lexer { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2436:9: ( ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2437:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2436:9: ( ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2437:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2437:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:2437:9: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' | '\\u00a0' | '\\u1680' | '\\u180e' | '\\u2000' .. '\\u200b' | '\\u2028' .. '\\u2029' | '\\u202f' | '\\u205f' | '\\u3000' )+ int cnt62=0; loop62: while (true) { @@ -4344,7 +4330,7 @@ public class FTSLexer extends Lexer { switch (alt62) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||(input.LA(1) >= '\f' && input.LA(1) <= '\r')||input.LA(1)==' '||input.LA(1)=='\u00A0'||input.LA(1)=='\u1680'||input.LA(1)=='\u180E'||(input.LA(1) >= '\u2000' && input.LA(1) <= '\u200B')||(input.LA(1) >= '\u2028' && input.LA(1) <= '\u2029')||input.LA(1)=='\u202F'||input.LA(1)=='\u205F'||input.LA(1)=='\u3000' ) { input.consume(); @@ -4382,257 +4368,257 @@ public class FTSLexer extends Lexer { @Override public void mTokens() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:8: ( FTSPHRASE | URI | DATETIME | OR | AND | NOT | TILDA | LPAREN | RPAREN | PLUS | MINUS | COLON | STAR | AMP | EXCLAMATION | BAR | EQUALS | QUESTION_MARK | LCURL | RCURL | LSQUARE | RSQUARE | TO | COMMA | CARAT | DOLLAR | GT | LT | AT | PERCENT | ID | FLOATING_POINT_LITERAL | FTSWORD | FTSPRE | FTSWILD | WS ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:8: ( FTSPHRASE | URI | DATETIME | OR | AND | NOT | TILDA | LPAREN | RPAREN | PLUS | MINUS | COLON | STAR | AMP | EXCLAMATION | BAR | EQUALS | QUESTION_MARK | LCURL | RCURL | LSQUARE | RSQUARE | TO | COMMA | CARAT | DOLLAR | GT | LT | AT | PERCENT | ID | FLOATING_POINT_LITERAL | FTSWORD | FTSPRE | FTSWILD | WS ) int alt63=36; alt63 = dfa63.predict(input); switch (alt63) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:10: FTSPHRASE + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:10: FTSPHRASE { mFTSPHRASE(); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:20: URI + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:20: URI { mURI(); if (state.failed) return; } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:24: DATETIME + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:24: DATETIME { mDATETIME(); if (state.failed) return; } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:33: OR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:33: OR { mOR(); if (state.failed) return; } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:36: AND + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:36: AND { mAND(); if (state.failed) return; } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:40: NOT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:40: NOT { mNOT(); if (state.failed) return; } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:44: TILDA + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:44: TILDA { mTILDA(); if (state.failed) return; } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:50: LPAREN + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:50: LPAREN { mLPAREN(); if (state.failed) return; } break; case 9 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:57: RPAREN + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:57: RPAREN { mRPAREN(); if (state.failed) return; } break; case 10 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:64: PLUS + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:64: PLUS { mPLUS(); if (state.failed) return; } break; case 11 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:69: MINUS + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:69: MINUS { mMINUS(); if (state.failed) return; } break; case 12 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:75: COLON + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:75: COLON { mCOLON(); if (state.failed) return; } break; case 13 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:81: STAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:81: STAR { mSTAR(); if (state.failed) return; } break; case 14 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:86: AMP + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:86: AMP { mAMP(); if (state.failed) return; } break; case 15 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:90: EXCLAMATION + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:90: EXCLAMATION { mEXCLAMATION(); if (state.failed) return; } break; case 16 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:102: BAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:102: BAR { mBAR(); if (state.failed) return; } break; case 17 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:106: EQUALS + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:106: EQUALS { mEQUALS(); if (state.failed) return; } break; case 18 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:113: QUESTION_MARK + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:113: QUESTION_MARK { mQUESTION_MARK(); if (state.failed) return; } break; case 19 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:127: LCURL + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:127: LCURL { mLCURL(); if (state.failed) return; } break; case 20 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:133: RCURL + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:133: RCURL { mRCURL(); if (state.failed) return; } break; case 21 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:139: LSQUARE + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:139: LSQUARE { mLSQUARE(); if (state.failed) return; } break; case 22 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:147: RSQUARE + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:147: RSQUARE { mRSQUARE(); if (state.failed) return; } break; case 23 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:155: TO + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:155: TO { mTO(); if (state.failed) return; } break; case 24 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:158: COMMA + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:158: COMMA { mCOMMA(); if (state.failed) return; } break; case 25 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:164: CARAT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:164: CARAT { mCARAT(); if (state.failed) return; } break; case 26 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:170: DOLLAR + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:170: DOLLAR { mDOLLAR(); if (state.failed) return; } break; case 27 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:177: GT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:177: GT { mGT(); if (state.failed) return; } break; case 28 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:180: LT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:180: LT { mLT(); if (state.failed) return; } break; case 29 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:183: AT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:183: AT { mAT(); if (state.failed) return; } break; case 30 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:186: PERCENT + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:186: PERCENT { mPERCENT(); if (state.failed) return; } break; case 31 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:194: ID + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:194: ID { mID(); if (state.failed) return; } break; case 32 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:197: FLOATING_POINT_LITERAL + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:197: FLOATING_POINT_LITERAL { mFLOATING_POINT_LITERAL(); if (state.failed) return; } break; case 33 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:220: FTSWORD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:220: FTSWORD { mFTSWORD(); if (state.failed) return; } break; case 34 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:228: FTSPRE + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:228: FTSPRE { mFTSPRE(); if (state.failed) return; } break; case 35 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:235: FTSWILD + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:235: FTSWILD { mFTSWILD(); if (state.failed) return; } break; case 36 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:243: WS + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1:243: WS { mWS(); if (state.failed) return; @@ -4644,8 +4630,8 @@ public class FTSLexer extends Lexer { // $ANTLR start synpred1_FTS public final void synpred1_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1002:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1002:17: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= '9')||input.LA(1)==';'||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -4664,8 +4650,8 @@ public class FTSLexer extends Lexer { // $ANTLR start synpred2_FTS public final void synpred2_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:19: ( '//' ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:20: '//' + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:19: ( '//' ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1016:20: '//' { match("//"); if (state.failed) return; @@ -4676,8 +4662,8 @@ public class FTSLexer extends Lexer { // $ANTLR start synpred3_FTS public final void synpred3_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1018:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:1018:25: ( F_URI_ALPHA | F_URI_DIGIT | F_URI_OTHER | COLON ) + // /home/elia/dev/Alfresco/alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { if ( input.LA(1)=='!'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= ';')||input.LA(1)=='='||(input.LA(1) >= '@' && input.LA(1) <= '[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z')||input.LA(1)=='~' ) { input.consume(); @@ -4822,40 +4808,42 @@ public class FTSLexer extends Lexer { } static final String DFA63_eotS = - "\2\uffff\1\45\1\37\3\41\3\uffff\1\74\1\75\1\uffff\1\76\4\uffff\1\77\3"+ - "\uffff\1\41\2\uffff\1\102\4\uffff\1\41\3\uffff\1\106\3\uffff\1\37\2\106"+ - "\1\uffff\2\41\1\106\1\115\1\uffff\10\41\1\uffff\2\124\2\41\4\uffff\2\127"+ - "\2\uffff\2\106\1\uffff\1\37\3\106\1\41\1\106\1\uffff\1\137\1\142\1\137"+ - "\1\142\2\41\1\uffff\2\146\1\uffff\3\106\1\137\1\41\1\106\1\37\1\uffff"+ - "\2\106\1\uffff\3\41\1\uffff\3\106\1\37\4\41\7\106\3\41\3\106\4\41\14\106"+ - "\3\41\2\106\1\137\4\41\5\106\1\137\11\106\3\41\2\106\4\41\1\uffff\2\41"+ - "\1\137\3\106\3\137\5\106\1\137\4\106\2\41\2\137\1\106\2\137\1\106\1\137"+ - "\3\106\3\137\1\106\1\137\3\41\6\137\1\106\2\137\1\106\1\137\6\41\1\137"+ - "\1\106\5\137\1\106\6\41\1\106\1\137\1\106\2\137\6\41\4\106\1\137\1\106"+ - "\3\137"; + "\2\uffff\1\45\1\37\3\41\3\uffff\1\75\1\76\1\uffff\1\77\4\uffff\1\100\3"+ + "\uffff\1\41\2\uffff\1\103\4\uffff\1\41\3\uffff\1\107\3\uffff\1\37\2\107"+ + "\1\uffff\2\41\1\107\1\117\1\uffff\11\41\1\uffff\2\126\2\41\4\uffff\2\131"+ + "\2\uffff\2\107\1\uffff\1\37\3\107\2\41\1\107\1\uffff\1\141\1\145\1\141"+ + "\1\145\2\41\1\uffff\2\151\1\uffff\3\107\1\141\1\41\1\107\1\37\1\uffff"+ + "\1\107\1\41\1\107\1\uffff\3\41\1\uffff\3\107\1\37\4\41\6\107\1\41\1\107"+ + "\3\41\3\107\4\41\7\107\12\41\5\107\3\41\2\107\1\141\4\41\5\107\1\141\3"+ + "\107\14\41\6\107\3\41\2\107\4\41\1\uffff\2\41\1\141\3\107\3\141\1\107"+ + "\10\41\1\141\1\41\1\141\5\41\4\107\1\141\4\107\2\41\2\141\1\107\2\141"+ + "\1\107\2\141\6\41\6\141\2\41\1\141\3\107\3\141\1\107\1\141\3\41\10\141"+ + "\2\41\4\141\2\41\2\141\1\107\2\141\1\107\1\141\6\41\1\141\1\107\15\141"+ + "\1\107\6\41\1\107\2\141\2\41\3\141\1\107\2\141\6\41\1\107\2\41\2\107\2"+ + "\41\1\107\1\141\2\41\1\107\7\141"; static final String DFA63_eofS = - "\u0109\uffff"; + "\u0167\uffff"; static final String DFA63_minS = "\1\11\1\uffff\5\41\3\uffff\2\56\1\uffff\1\41\4\uffff\1\41\3\uffff\1\41"+ "\2\uffff\1\41\4\uffff\1\41\1\uffff\1\0\1\uffff\1\41\3\uffff\3\41\1\0\4"+ - "\41\1\uffff\10\41\1\0\4\41\4\uffff\2\41\1\uffff\1\0\2\41\1\uffff\6\41"+ - "\1\uffff\6\41\1\uffff\2\41\1\uffff\7\41\1\uffff\2\41\1\uffff\3\41\1\uffff"+ - "\107\41\1\0\132\41"; + "\41\1\uffff\11\41\1\0\4\41\4\uffff\2\41\1\uffff\1\0\2\41\1\uffff\7\41"+ + "\1\uffff\6\41\1\uffff\2\41\1\uffff\7\41\1\uffff\3\41\1\uffff\3\41\1\uffff"+ + "\136\41\1\0\u009e\41"; static final String DFA63_maxS = "\1\uffee\1\uffff\1\176\4\uffee\3\uffff\2\71\1\uffff\1\uffee\4\uffff\1"+ "\uffee\3\uffff\1\uffee\2\uffff\1\uffee\4\uffff\1\uffee\1\uffff\1\uffff"+ - "\1\uffff\1\uffee\3\uffff\3\uffee\1\uffff\4\uffee\1\uffff\10\uffee\1\uffff"+ - "\4\uffee\4\uffff\2\uffee\1\uffff\1\uffff\2\uffee\1\uffff\6\uffee\1\uffff"+ - "\6\uffee\1\uffff\2\uffee\1\uffff\7\uffee\1\uffff\2\uffee\1\uffff\3\uffee"+ - "\1\uffff\107\uffee\1\uffff\132\uffee"; + "\1\uffff\1\uffee\3\uffff\3\uffee\1\uffff\4\uffee\1\uffff\11\uffee\1\uffff"+ + "\4\uffee\4\uffff\2\uffee\1\uffff\1\uffff\2\uffee\1\uffff\7\uffee\1\uffff"+ + "\6\uffee\1\uffff\2\uffee\1\uffff\7\uffee\1\uffff\3\uffee\1\uffff\3\uffee"+ + "\1\uffff\136\uffee\1\uffff\u009e\uffee"; static final String DFA63_acceptS = "\1\uffff\1\1\5\uffff\1\7\1\10\1\11\2\uffff\1\14\1\uffff\1\16\1\17\1\20"+ "\1\21\1\uffff\1\24\1\25\1\26\1\uffff\1\30\1\31\1\uffff\1\33\1\34\1\35"+ - "\1\36\1\uffff\1\40\1\uffff\1\37\1\uffff\1\44\1\2\1\23\10\uffff\1\43\15"+ - "\uffff\1\12\1\13\1\15\1\22\2\uffff\1\32\3\uffff\1\41\6\uffff\1\42\6\uffff"+ - "\1\4\2\uffff\1\27\7\uffff\1\3\2\uffff\1\6\3\uffff\1\5\u00a2\uffff"; + "\1\36\1\uffff\1\40\1\uffff\1\37\1\uffff\1\44\1\2\1\23\10\uffff\1\43\16"+ + "\uffff\1\12\1\13\1\15\1\22\2\uffff\1\32\3\uffff\1\41\7\uffff\1\42\6\uffff"+ + "\1\4\2\uffff\1\27\7\uffff\1\3\3\uffff\1\6\3\uffff\1\5\u00fd\uffff"; static final String DFA63_specialS = - "\40\uffff\1\3\10\uffff\1\0\15\uffff\1\1\13\uffff\1\4\152\uffff\1\2\132"+ + "\40\uffff\1\0\10\uffff\1\2\16\uffff\1\3\13\uffff\1\1\u0083\uffff\1\4\u009e"+ "\uffff}>"; static final String[] DFA63_transitionS = { "\2\43\1\uffff\2\43\22\uffff\1\43\1\17\1\1\1\uffff\1\31\1\35\1\16\1\1"+ @@ -5029,9 +5017,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\60\13\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\16\61\1\57\13\61\1\uffff\1\54\44\uffff\7\54"+ + "\1\70\2\uffff\1\65\1\uffff\16\61\1\57\13\61\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -5110,9 +5098,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\21\62\1\71\10\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\21\61\1\70\10\61\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\21\62\1\72\10\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\21\61\1\71\10\61\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -5191,9 +5179,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\73\14\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\15\61\1\72\14\61\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\74\14\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\15\61\1\73\14\61\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -5445,9 +5433,9 @@ public class FTSLexer extends Lexer { "", "", "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\101\13\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\16\61\1\100\13\61\1\uffff\1\54\44\uffff\7"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\102\13\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\16\61\1\101\13\61\1\uffff\1\54\44\uffff\7"+ "\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -5529,7 +5517,7 @@ public class FTSLexer extends Lexer { "", "", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -5612,9 +5600,9 @@ public class FTSLexer extends Lexer { "", "", "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -5693,10 +5681,10 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "", - "\165\105\1\104\uff8a\105", + "\165\106\1\105\uff8a\106", "", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -5779,7 +5767,7 @@ public class FTSLexer extends Lexer { "", "", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\107\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ + "\110\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ "\1\51\2\uffff\1\53\1\uffff\4\53\1\52\25\53\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ @@ -5860,7 +5848,7 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\110\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ + "\111\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ "\uffff\1\53\1\uffff\32\53\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ @@ -5940,7 +5928,7 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\110\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ + "\111\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ "\uffff\1\53\1\uffff\32\53\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ @@ -6019,10 +6007,10 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\165\112\1\111\uff8a\112", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\114\1\uffff\1\114\1\uffff\1\54\12"+ - "\113\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\165\113\1\112\uff8a\113", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\116\1\uffff\1\115\1\uffff\1\54\12"+ + "\114\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6100,9 +6088,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6181,7 +6169,7 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -6341,9 +6329,9 @@ public class FTSLexer extends Lexer { "\uffff\133\56\3\uffff\6\56\2\uffff\6\56\2\uffff\6\56\2\uffff\3\56\3\uffff"+ "\3\56\1\uffff\3\56\1\uffff\7\56", "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\121\2\62\1\120"+ - "\3\62\1\uffff\1\67\2\uffff\1\64\1\uffff\23\61\1\117\2\61\1\116\3\61\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\123\2\62\1\122"+ + "\3\62\1\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\121\2\61\1\120\3\61\1"+ "\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff"+ "\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -6422,9 +6410,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\121\2\62\1\120"+ - "\3\62\1\uffff\1\67\2\uffff\1\64\1\uffff\23\61\1\117\2\61\1\116\3\61\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\123\2\62\1\122"+ + "\3\62\1\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\121\2\61\1\120\3\61\1"+ "\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff"+ "\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -6503,9 +6491,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6583,9 +6571,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6663,9 +6651,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6743,9 +6731,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6823,9 +6811,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6903,9 +6891,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -6983,10 +6971,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\165\123\1\122\uff8a\123", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -7064,9 +7051,10 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\165\125\1\124\uff8a\125", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -7144,9 +7132,89 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\126\26\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\3\61\1\125\26\61\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\130\26\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\3\61\1\127\26\61\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -7225,9 +7293,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\126\26\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\3\61\1\125\26\61\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\130\26\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\3\61\1\127\26\61\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -7310,9 +7378,9 @@ public class FTSLexer extends Lexer { "", "", "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -7390,9 +7458,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -7471,10 +7539,10 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "", - "\165\131\1\130\uff8a\131", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\132\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\1\54\6\132\24\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\6\132\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\165\133\1\132\uff8a\133", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\134\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\1\54\6\134\24\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\6\134\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -7553,7 +7621,7 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -7634,7 +7702,7 @@ public class FTSLexer extends Lexer { "\3\54\1\uffff\3\54\1\uffff\7\54", "", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\133\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ + "\135\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ "\1\51\2\uffff\1\53\1\uffff\4\53\1\52\25\53\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ @@ -7715,7 +7783,7 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\110\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ + "\111\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ "\uffff\1\53\1\uffff\32\53\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ @@ -7795,8 +7863,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\135\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\134\24\53\1\uffff"+ - "\1\51\2\uffff\1\53\1\uffff\6\134\24\53\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\137\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\136\24\53\1\uffff"+ + "\1\51\2\uffff\1\53\1\uffff\6\136\24\53\1\uffff\1\54\44\uffff\7\54\1\uffff"+ "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ @@ -7876,7 +7944,7 @@ public class FTSLexer extends Lexer { "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\110\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ + "\111\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ "\uffff\1\53\1\uffff\32\53\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ @@ -7955,9 +8023,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\113\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\114\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8035,8 +8103,88 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\136\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\114\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\140\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -8116,9 +8264,9 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\1\140"+ - "\12\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67"+ - "\2\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\142"+ + "\12\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70"+ + "\2\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -8197,9 +8345,9 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8277,9 +8425,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\1\140"+ - "\12\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67"+ - "\2\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\142"+ + "\12\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70"+ + "\2\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -8358,9 +8506,9 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8438,9 +8586,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\145\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\144\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\143\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\150\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\147\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\146\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ @@ -8519,9 +8667,9 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8600,9 +8748,9 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8680,9 +8828,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8761,9 +8909,9 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\147\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\1\54\6\147\24\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\6\147\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\152\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\1\54\6\152\24\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\6\152\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -8842,7 +8990,7 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -8921,9 +9069,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\150\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\1\54\6\150\24\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\6\150\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\153\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\1\54\6\153\24\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\6\153\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -9001,8 +9149,8 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\141\1\uffff\1\151\1\37\1\140\12"+ - "\152\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ + "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\144\1\uffff\1\154\1\37\1\142\12"+ + "\155\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ "\1\51\2\uffff\1\53\1\uffff\4\53\1\52\25\53\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ @@ -9082,9 +9230,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\155\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\154\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\153\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\160\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\157\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\156\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ @@ -9164,8 +9312,8 @@ public class FTSLexer extends Lexer { "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\157\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\156\24\53\1\uffff"+ - "\1\51\2\uffff\1\53\1\uffff\6\156\24\53\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\162\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\161\24\53\1\uffff"+ + "\1\51\2\uffff\1\53\1\uffff\6\161\24\53\1\uffff\1\54\44\uffff\7\54\1\uffff"+ "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ @@ -9244,8 +9392,8 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\136\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\140\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -9326,9 +9474,9 @@ public class FTSLexer extends Lexer { "\3\54\1\uffff\3\54\1\uffff\7\54", "", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\4\54\1\162\3\54\1\163\4\54\1\161\5\54\1\164\5\54\1"+ - "\160\1\54\1\uffff\1\103\2\uffff\1\54\1\uffff\3\54\1\162\3\54\1\163\4"+ - "\54\1\161\5\54\1\164\5\54\1\160\1\54\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\1\54\1\uffff\1\56\4\54\1\165\3\54\1\166\4\54\1\164\5\54\1\167\5\54\1"+ + "\163\1\54\1\uffff\1\104\2\uffff\1\54\1\uffff\3\54\1\165\3\54\1\166\4"+ + "\54\1\164\5\54\1\167\5\54\1\163\1\54\1\uffff\1\54\44\uffff\7\54\1\uffff"+ "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ @@ -9407,334 +9555,414 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\165\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\170\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\167\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\166\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\170\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\167\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\166\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\170\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\167\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\166\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\170\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\171\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\1\54\6\171\24\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\6\171\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\174\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\173\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\172\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ + "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ + "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ + "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ + "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ + "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ + "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ + "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ + "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ + "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ + "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ + "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ + "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ + "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ + "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ + "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ + "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ + "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ + "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ + "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ + "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ + "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ + "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ + "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ + "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ + "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ + "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ + "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ + "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ + "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ + "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ + "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ + "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ + "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\174\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\173\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\172\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ + "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ + "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ + "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ + "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ + "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ + "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ + "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ + "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ + "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ + "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ + "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ + "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ + "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ + "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ + "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ + "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ + "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ + "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ + "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ + "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ + "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ + "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ + "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ + "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ + "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ + "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ + "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ + "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ + "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ + "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ + "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ + "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ + "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\174\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\173\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\172\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ + "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ + "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ + "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ + "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ + "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ + "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ + "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ + "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ + "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ + "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ + "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ + "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ + "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ + "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ + "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ + "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ + "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ + "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ + "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ + "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ + "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ + "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ + "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ + "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ + "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ + "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ + "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ + "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ + "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ + "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ + "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ + "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ + "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ + "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\175\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\1\54\6\175\24\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\6\175\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -9812,9 +10040,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\172\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\1\54\6\172\24\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\6\172\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\176\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\1\54\6\176\24\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\6\176\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -9892,8 +10120,8 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\173\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\177\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -9973,7 +10201,7 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\152\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ + "\155\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\53\1\52\25\53\1\uffff"+ "\1\51\2\uffff\1\53\1\uffff\4\53\1\52\25\53\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ @@ -10053,414 +10281,414 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\176\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\175\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\174\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\176\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\175\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\174\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\176\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\175\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\174\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\176\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\175\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\174\24\61\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0082\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0081\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u0080\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0082\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0081\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u0080\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0082\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0081\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u0080\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0082\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0081\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u0080\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u0080\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\177\24\53\1\uffff"+ - "\1\51\2\uffff\1\53\1\uffff\6\177\24\53\1\uffff\1\54\44\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54"+ - "\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff"+ - "\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff"+ - "\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff"+ - "\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41"+ - "\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1"+ - "\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54"+ - "\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54"+ - "\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff"+ - "\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff"+ - "\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4"+ - "\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54"+ - "\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff"+ - "\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1"+ - "\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26"+ - "\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54"+ - "\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17"+ - "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ - "\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2"+ - "\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54"+ - "\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff"+ - "\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3"+ - "\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22"+ - "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1"+ - "\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff"+ - "\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4"+ - "\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22"+ - "\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54"+ - "\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54"+ - "\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2"+ - "\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1"+ - "\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12"+ - "\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17"+ - "\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54"+ - "\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1"+ - "\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff"+ - "\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", + "\u0084\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0083\24\53\1\uffff"+ + "\1\51\2\uffff\1\53\1\uffff\6\u0083\24\53\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u0081\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u0081\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\5\54\1\u0085\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u0085\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -10539,8 +10767,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\11\54\1\u0083\5\54\1\u0082\13\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\10\54\1\u0083\5\54\1\u0082\13\54\1\uffff\1\54\44\uffff"+ + "\1\54\1\uffff\1\56\11\54\1\u0087\5\54\1\u0086\13\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\10\54\1\u0087\5\54\1\u0086\13\54\1\uffff\1\54\44\uffff"+ "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -10620,8 +10848,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\1\54\1\u0084\31\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\1\u0084\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ + "\1\54\1\uffff\1\56\1\54\1\u0088\31\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\1\u0088\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ "\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31"+ "\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130"+ "\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54"+ @@ -10700,8 +10928,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\17\54\1\u0085\13\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\16\54\1\u0085\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\17\54\1\u0089\13\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\16\54\1\u0089\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -10780,8 +11008,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u0086\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u0086\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\5\54\1\u008a\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u008a\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -10859,10 +11087,92 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\165\1\uffff\1\54"+ - "\1\uffff\1\54\1\uffff\1\56\4\54\1\u0089\3\54\1\u008a\4\54\1\u0088\5\54"+ - "\1\u008b\5\54\1\u0087\1\54\1\uffff\1\103\2\uffff\1\54\1\uffff\3\54\1"+ - "\u0089\3\54\1\u008a\4\54\1\u0088\5\54\1\u008b\5\54\1\u0087\1\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\170\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\u0092\3\62\1"+ + "\u0093\4\62\1\u0091\5\62\1\u0094\5\62\1\u0090\1\62\1\uffff\1\70\2\uffff"+ + "\1\65\1\uffff\3\61\1\u008d\3\61\1\u008e\4\61\1\u008c\5\61\1\u008f\5\61"+ + "\1\u008b\1\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31"+ + "\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130"+ + "\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54"+ + "\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107"+ + "\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12"+ + "\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1"+ + "\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\171\1\uffff\1\54"+ + "\1\uffff\1\54\1\uffff\1\56\4\54\1\u0097\3\54\1\u0098\4\54\1\u0096\5\54"+ + "\1\u0099\5\54\1\u0095\1\54\1\uffff\1\104\2\uffff\1\54\1\uffff\3\54\1"+ + "\u0097\3\54\1\u0098\4\54\1\u0096\5\54\1\u0099\5\54\1\u0095\1\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -10941,9 +11251,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u008e\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u008d\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u008c\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u009c\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u009b\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u009a\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11022,9 +11332,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u008e\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u008d\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u008c\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u009c\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u009b\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u009a\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11103,9 +11413,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u008e\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u008d\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u008c\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u009c\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u009b\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u009a\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11184,9 +11494,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u008f\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u008f\24\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\6\u008f\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u009d\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u009d\24\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\6\u009d\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -11265,9 +11575,9 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u0090\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0090\24\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\6\u0090\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u009e\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u009e\24\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\6\u009e\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -11346,10 +11656,10 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u0091\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0089\3\54\1\u008a\4\54\1\u0088"+ - "\5\54\1\u008b\5\54\1\u0087\1\54\1\uffff\1\103\2\uffff\1\54\1\uffff\3"+ - "\54\1\u0089\3\54\1\u008a\4\54\1\u0088\5\54\1\u008b\5\54\1\u0087\1\54"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u009f\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0097\3\54\1\u0098\4\54\1\u0096"+ + "\5\54\1\u0099\5\54\1\u0095\1\54\1\uffff\1\104\2\uffff\1\54\1\uffff\3"+ + "\54\1\u0097\3\54\1\u0098\4\54\1\u0096\5\54\1\u0099\5\54\1\u0095\1\54"+ "\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1"+ "\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54"+ "\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23"+ @@ -11428,9 +11738,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u0094\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0093\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u0092\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00a2\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a1\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00a0\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11509,9 +11819,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u0094\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0093\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u0092\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00a2\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a1\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00a0\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11590,9 +11900,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u0094\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0093\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u0092\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00a2\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a1\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00a0\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11671,9 +11981,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u0094\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0093\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u0092\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00a2\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a1\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00a0\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11753,8 +12063,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u0096\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0095\24\53\1\uffff"+ - "\1\51\2\uffff\1\53\1\uffff\6\u0095\24\53\1\uffff\1\54\44\uffff\7\54\1"+ + "\u00a4\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a3\24\53\1\uffff"+ + "\1\51\2\uffff\1\53\1\uffff\6\u00a3\24\53\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -11834,8 +12144,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\1\54\1\u0097\31\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\1\u0097\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ + "\1\54\1\uffff\1\56\1\54\1\u00a5\31\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\1\u00a5\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ "\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31"+ "\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130"+ "\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54"+ @@ -11914,8 +12224,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\16\54\1\u0098\14\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\15\54\1\u0098\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\16\54\1\u00a6\14\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\15\54\1\u00a6\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -11994,8 +12304,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\14\54\1\u009a\1\54\1\u0099\14\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\13\54\1\u009a\1\54\1\u0099\14\54\1\uffff\1\54\44\uffff"+ + "\1\54\1\uffff\1\56\14\54\1\u00a8\1\54\1\u00a7\14\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\13\54\1\u00a8\1\54\1\u00a7\14\54\1\uffff\1\54\44\uffff"+ "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -12075,8 +12385,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\24\54\1\u009c\4\54\1\u009b\1\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\23\54\1\u009c\4\54\1\u009b\1\54\1\uffff\1\54\44\uffff\7"+ + "\1\54\1\uffff\1\56\24\54\1\u00aa\4\54\1\u00a9\1\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\23\54\1\u00aa\4\54\1\u00a9\1\54\1\uffff\1\54\44\uffff\7"+ "\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -12156,8 +12466,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\25\54\1\u009d\5\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\24\54\1\u009d\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\25\54\1\u00ab\5\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\24\54\1\u00ab\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -12236,8 +12546,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\3\54\1\u009e\27\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\2\54\1\u009e\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\3\54\1\u00ac\27\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\2\54\1\u00ac\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -12315,89 +12625,738 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u009f\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u009f\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\11\54\1\u00a1\5\54\1\u00a0\13\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\10\54\1\u00a1\5\54\1\u00a0\13\54\1\uffff\1\54\44\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u00ae\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u00ad\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\10\62\1\u00b2\5\62\1"+ + "\u00b1\13\62\1\uffff\1\70\2\uffff\1\65\1\uffff\10\61\1\u00b0\5\61\1\u00af"+ + "\13\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\1\u00b4\31\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\1\u00b3\31\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\u00b6\13\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\16\61\1\u00b5\13\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u00b8\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u00b7\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u00ae\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u00ad\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\10\62\1\u00b2\5\62\1"+ + "\u00b1\13\62\1\uffff\1\70\2\uffff\1\65\1\uffff\10\61\1\u00b0\5\61\1\u00af"+ + "\13\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\1\u00b4\31\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\1\u00b3\31\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\u00b6\13\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\16\61\1\u00b5\13\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u00b8\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u00b7\25\61\1\uffff\1\54\44\uffff"+ "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -12477,8 +13436,169 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\1\54\1\u00a2\31\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\1\u00a2\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ + "\1\54\1\uffff\1\56\5\54\1\u00b9\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u00b9\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\11\54\1\u00bb\5\54\1\u00ba\13\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\10\54\1\u00bb\5\54\1\u00ba\13\54\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\1\54\1\u00bc\31\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\1\u00bc\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ "\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31"+ "\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130"+ "\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54"+ @@ -12557,8 +13677,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\17\54\1\u00a3\13\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\16\54\1\u00a3\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\17\54\1\u00bd\13\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\16\54\1\u00bd\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -12637,8 +13757,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u00a4\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u00a4\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\5\54\1\u00be\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u00be\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -12716,9 +13836,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00a7\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a6\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00a5\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00c1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00c0\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00bf\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -12797,9 +13917,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00a7\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a6\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00a5\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00c1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00c0\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00bf\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -12878,9 +13998,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00a7\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a6\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00a5\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u00c1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00c0\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u00bf\24\61\1\uffff\1\54\44\uffff\7\54\1"+ "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -12959,9 +14079,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u00a8\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00a8\24\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\6\u00a8\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u00c2\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00c2\24\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\6\u00c2\24\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -13041,7 +14161,7 @@ public class FTSLexer extends Lexer { "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -13120,10 +14240,10 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\u00a9\1\uffff\1\140\12\165\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0089\3\54\1\u008a\4\54\1\u0088"+ - "\5\54\1\u008b\5\54\1\u0087\1\54\1\uffff\1\103\2\uffff\1\54\1\uffff\3"+ - "\54\1\u0089\3\54\1\u008a\4\54\1\u0088\5\54\1\u008b\5\54\1\u0087\1\54"+ + "\7\54\2\uffff\1\55\1\144\1\uffff\1\u00c3\1\uffff\1\142\12\171\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0097\3\54\1\u0098\4\54\1\u0096"+ + "\5\54\1\u0099\5\54\1\u0095\1\54\1\uffff\1\104\2\uffff\1\54\1\uffff\3"+ + "\54\1\u0097\3\54\1\u0098\4\54\1\u0096\5\54\1\u0099\5\54\1\u0095\1\54"+ "\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1"+ "\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54"+ "\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23"+ @@ -13202,9 +14322,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -13283,9 +14403,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -13364,9 +14484,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -13445,9 +14565,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -13527,7 +14647,7 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\2\54\1\50\1\47\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\110\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ + "\111\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\53\1\uffff\1\51\2"+ "\uffff\1\53\1\uffff\32\53\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ @@ -13607,8 +14727,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\22\54\1\u00b1\10\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\21\54\1\u00b1\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\22\54\1\u00cb\10\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\21\54\1\u00cb\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -13687,8 +14807,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\24\54\1\u00b2\6\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\23\54\1\u00b2\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\24\54\1\u00cc\6\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\23\54\1\u00cc\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -13767,8 +14887,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\25\54\1\u00b3\5\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\24\54\1\u00b3\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\25\54\1\u00cd\5\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\24\54\1\u00cd\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -13847,8 +14967,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\14\54\1\u00b4\16\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\13\54\1\u00b4\16\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\14\54\1\u00ce\16\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\13\54\1\u00ce\16\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -13926,9 +15046,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00b5\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00b5\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u00cf\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u00cf\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -14008,8 +15128,8 @@ public class FTSLexer extends Lexer { "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u00b6\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u00b6\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\5\54\1\u00d0\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u00d0\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14088,8 +15208,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\22\54\1\u00b7\10\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\21\54\1\u00b7\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\22\54\1\u00d1\10\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\21\54\1\u00d1\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14168,8 +15288,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\17\54\1\u00b8\13\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\16\54\1\u00b8\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\17\54\1\u00d2\13\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\16\54\1\u00d2\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14247,169 +15367,900 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\1\54\1\u00b9\31\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\1\u00b9\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31"+ - "\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130"+ - "\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54"+ - "\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107"+ - "\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12"+ - "\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1"+ - "\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\16\54\1\u00ba\14\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\15\54\1\u00ba\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\14\54\1\u00bc\1\54\1\u00bb\14\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\13\54\1\u00bc\1\54\1\u00bb\14\54\1\uffff\1\54\44\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\1\u00d4\31\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\1\u00d3\31\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\1\u00d4\31\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\1\u00d3\31\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\u00d6\14\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\15\61\1\u00d5\14\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\13\62\1\u00da\1\62\1"+ + "\u00d9\14\62\1\uffff\1\70\2\uffff\1\65\1\uffff\13\61\1\u00d8\1\61\1\u00d7"+ + "\14\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\u00d6\14\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\15\61\1\u00d5\14\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\13\62\1\u00da\1\62\1"+ + "\u00d9\14\62\1\uffff\1\70\2\uffff\1\65\1\uffff\13\61\1\u00d8\1\61\1\u00d7"+ + "\14\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\u00de\4\62\1"+ + "\u00dd\1\62\1\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\u00dc\4\61\1\u00db"+ + "\1\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\u00de\4\62\1"+ + "\u00dd\1\62\1\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\u00dc\4\61\1\u00db"+ + "\1\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\24\62\1\u00e0\5\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\24\61\1\u00df\5\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\24\62\1\u00e0\5\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\24\61\1\u00df\5\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\2\62\1\u00e2\27\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\2\61\1\u00e1\27\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\2\62\1\u00e2\27\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\2\61\1\u00e1\27\61\1\uffff\1\54\44\uffff"+ "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -14489,8 +16340,249 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\24\54\1\u00be\4\54\1\u00bd\1\54\1\uffff\1\103\2\uffff"+ - "\1\54\1\uffff\23\54\1\u00be\4\54\1\u00bd\1\54\1\uffff\1\54\44\uffff\7"+ + "\1\54\1\uffff\1\56\1\54\1\u00e3\31\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\1\u00e3\31\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31"+ + "\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130"+ + "\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54"+ + "\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107"+ + "\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12"+ + "\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1"+ + "\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\16\54\1\u00e4\14\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\15\54\1\u00e4\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\14\54\1\u00e6\1\54\1\u00e5\14\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\13\54\1\u00e6\1\54\1\u00e5\14\54\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\24\54\1\u00e8\4\54\1\u00e7\1\54\1\uffff\1\104\2\uffff"+ + "\1\54\1\uffff\23\54\1\u00e8\4\54\1\u00e7\1\54\1\uffff\1\54\44\uffff\7"+ "\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ @@ -14570,8 +16662,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\25\54\1\u00bf\5\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\24\54\1\u00bf\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\25\54\1\u00e9\5\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\24\54\1\u00e9\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14650,8 +16742,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\3\54\1\u00c0\27\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\2\54\1\u00c0\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\3\54\1\u00ea\27\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\2\54\1\u00ea\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14729,9 +16821,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14809,9 +16901,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14889,9 +16981,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -14970,7 +17062,7 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32\54\1\uffff"+ + "\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32\54\1\uffff"+ "\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4"+ "\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff"+ "\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ @@ -15049,8 +17141,8 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u00c1\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u00eb\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -15129,9 +17221,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -15209,9 +17301,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -15290,9 +17382,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -15371,9 +17463,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ @@ -15452,10 +17544,10 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\165\u00c3\1\u00c2\uff8a\u00c3", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\165\u00ed\1\u00ec\uff8a\u00ed", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -15533,9 +17625,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\67\2"+ - "\uffff\1\64\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -15613,9 +17705,9 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00c4\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00c4\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u00ee\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u00ee\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -15695,8 +17787,8 @@ public class FTSLexer extends Lexer { "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\10\54\1\u00c5\22\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\7\54\1\u00c5\22\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\10\54\1\u00ef\22\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\7\54\1\u00ef\22\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -15775,8 +17867,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\24\54\1\u00c6\6\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\23\54\1\u00c6\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\24\54\1\u00f0\6\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\23\54\1\u00f0\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -15855,8 +17947,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\11\54\1\u00c7\21\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\10\54\1\u00c7\21\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\11\54\1\u00f1\21\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\10\54\1\u00f1\21\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -15934,8 +18026,8 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -16014,8 +18106,8 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -16094,9 +18186,9 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00c8\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00c8\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u00f2\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u00f2\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ @@ -16176,8 +18268,8 @@ public class FTSLexer extends Lexer { "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\16\54\1\u00c9\14\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\15\54\1\u00c9\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\16\54\1\u00f3\14\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\15\54\1\u00f3\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -16255,739 +18347,16 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\22\54\1\u00ca\10\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\21\54\1\u00ca\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\24\54\1\u00cb\6\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\23\54\1\u00cb\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\25\54\1\u00cc\5\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\24\54\1\u00cc\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\14\54\1\u00cd\16\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\13\54\1\u00cd\16\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00ce\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00ce\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u00cf\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u00cf\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\22\54\1\u00d0\10\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\21\54\1\u00d0\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\17\54\1\u00d1\13\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\16\54\1\u00d1\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u00d2\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0089\3\54\1\u008a\4\54\1\u0088"+ - "\5\54\1\u008b\5\54\1\u0087\1\54\1\uffff\1\103\2\uffff\1\54\1\uffff\3"+ - "\54\1\u0089\3\54\1\u008a\4\54\1\u0088\5\54\1\u008b\5\54\1\u0087\1\54"+ - "\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1"+ - "\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54"+ - "\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23"+ - "\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54"+ - "\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00d4\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00d5\24\u00af"+ - "\1\uffff\1\u00ae\2\uffff\1\u00b0\1\uffff\6\u00d3\24\u00aa\1\uffff\1\54"+ - "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ - "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ - "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ - "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ - "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ - "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ - "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\21\62\1\u00f5\10\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\21\61\1\u00f4\10\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ @@ -17059,1384 +18428,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00d6\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00d6\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u00d7\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u00d7\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00d8\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00d8\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\4\54\1\u00d9\26\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\3\54\1\u00d9\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00da\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00da\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\10\54\1\u00db\22\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\7\54\1\u00db\22\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\24\54\1\u00dc\6\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\23\54\1\u00dc\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\11\54\1\u00dd\21\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\10\54\1\u00dd\21\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00de\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00de\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\16\54\1\u00df\14\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\15\54\1\u00df\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\1\140\12\165\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0089\3\54\1\u008a\4\54\1\u0088"+ - "\5\54\1\u008b\1\u00e0\4\54\1\u0087\1\54\1\uffff\1\103\2\uffff\1\54\1"+ - "\uffff\3\54\1\u0089\3\54\1\u008a\4\54\1\u0088\5\54\1\u008b\5\54\1\u0087"+ - "\1\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ - "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00e3\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00e2\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00e1\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00e5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00e6\24\u00af"+ - "\1\uffff\1\u00ae\2\uffff\1\u00b0\1\uffff\6\u00e4\24\u00aa\1\uffff\1\54"+ - "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ - "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ - "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ - "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ - "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ - "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ - "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\21\62\1\u00f5\10\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\21\61\1\u00f4\10\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ @@ -18508,16 +18509,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00e3\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00e2\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00e1\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\u00f7\6\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\u00f6\6\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ @@ -18589,901 +18590,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00e7\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00e7\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\5\54\1\u00e8\25\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\4\54\1\u00e8\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00e9\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00e9\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00ea\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00ea\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\5\54\1\u00eb\25\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\4\54\1\u00eb\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00ec\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00ec\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\4\54\1\u00ed\26\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\3\54\1\u00ed\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\1\140\12\u00ee\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ - "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00f1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00f0\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00ef\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\u00f7\6\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\u00f6\6\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ @@ -19555,16 +18671,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00f1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00f0\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00ef\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\24\62\1\u00f9\5\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\24\61\1\u00f8\5\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ @@ -19636,178 +18752,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00f1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00f0\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00ef\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00f1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00f0\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00ef\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00f3\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00f4\24\u00af"+ - "\1\uffff\1\u00ae\2\uffff\1\u00b0\1\uffff\6\u00f2\24\u00aa\1\uffff\1\54"+ - "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ - "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ - "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ - "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ - "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ - "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ - "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\13\62\1\u00fb\16\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\13\61\1\u00fa\16\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ @@ -19879,16 +18833,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00f1\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00f0\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00ef\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\24\62\1\u00f9\5\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\24\61\1\u00f8\5\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ @@ -19960,983 +18914,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\3\54\1\u00f5\27\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\2\54\1\u00f5\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00f6\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00f6\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\5\54\1\u00f7\25\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\4\54\1\u00f7\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u00f8\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u00f8\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u00f9\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ - "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00fc\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00fb\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00fa\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00fc\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00fb\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00fa\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00fc\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00fb\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00fa\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00fc\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00fb\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00fa\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00fe\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00ff\24\u00af"+ - "\1\uffff\1\u00ae\2\uffff\1\u00b0\1\uffff\6\u00fd\24\u00aa\1\uffff\1\54"+ - "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ - "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ - "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ - "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ - "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ - "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ - "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\13\62\1\u00fb\16\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\13\61\1\u00fa\16\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ @@ -21008,16 +18995,16 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\66\1\65\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12"+ - "\u00fc\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u00fb\24\62\1\uffff"+ - "\1\67\2\uffff\1\64\1\uffff\6\u00fa\24\61\1\uffff\1\54\44\uffff\7\54\1"+ - "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u00fd\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u00fc\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ @@ -21089,122 +19076,529 @@ public class FTSLexer extends Lexer { "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\17\54\1\u0100\13\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\16\54\1\u0100\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u00ff\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u00fe\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u00fd\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u00fc\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u00ff\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u00fe\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\21\62\1\u0101\10\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\21\61\1\u0100\10\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\21\62\1\u0101\10\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\21\61\1\u0100\10\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\u0103\13\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\16\61\1\u0102\13\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\u0103\13\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\16\61\1\u0102\13\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ @@ -21250,734 +19644,8 @@ public class FTSLexer extends Lexer { "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ "\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\3\54\1\u0101\27\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\2\54\1\u0101\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\1\140\12\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ - "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\2\54\1\u00ad\1\u00ac\3\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1"+ - "\54\12\u00ab\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00af\1\uffff"+ - "\1\u00ae\2\uffff\1\u00b0\1\uffff\32\u00aa\1\uffff\1\54\44\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ - "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ - "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ - "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ - "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ - "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ - "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ - "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ - "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ - "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ - "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ - "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ - "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ - "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ - "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ - "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ - "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ - "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ - "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ - "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ - "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ - "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ - "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ - "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ - "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ - "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ - "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ - "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ - "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ - "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ - "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ - "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ - "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ - "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ - "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ - "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ - "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ - "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ - "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ - "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ - "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ - "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ - "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ - "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ - "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ - "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ - "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ - "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ - "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ - "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ - "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ - "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\16\54\1\u0102\14\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\15\54\1\u0102\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\56\22\54\1\u0104\10\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\21\54\1\u0104\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -22056,88 +19724,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\17\54\1\u0103\13\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\16\54\1\u0103\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\4\54\1\u0104\26\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\3\54\1\u0104\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\24\54\1\u0105\6\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\23\54\1\u0105\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -22216,169 +19804,8 @@ public class FTSLexer extends Lexer { "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\16\54\1\u0105\14\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\15\54\1\u0105\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ - "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ - "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ - "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ - "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ - "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ - "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ - "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ - "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ - "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ - "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ - "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ - "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ - "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ - "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ - "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ - "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ - "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ - "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ - "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ - "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ - "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ - "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ - "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ - "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ - "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ - "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ - "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ - "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ - "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ - "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ - "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ - "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ - "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ - "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ - "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ - "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ - "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ - "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ - "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ - "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ - "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ - "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ - "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ - "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ - "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ - "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ - "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ - "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ - "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ - "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ - "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ - "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ - "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ - "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ - "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ - "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ - "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ - "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ - "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ - "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ - "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ - "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ - "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ - "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ - "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ - "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ - "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ - "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ - "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ - "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ - "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ - "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ - "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u0106\7\54\1\uffff\1\103\2\uffff\1\54"+ - "\1\uffff\22\54\1\u0106\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ - "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ - "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ - "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ - "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ - "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ - "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ - "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ - "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ - "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ - "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ - "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ - "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ - "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ - "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ - "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ - "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ - "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ - "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ - "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ - "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ - "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ - "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ - "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ - "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ - "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ - "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ - "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ - "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ - "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ - "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ - "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ - "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ - "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ - "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ - "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ - "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ - "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ - "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ - "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ - "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ - "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ - "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ - "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ - "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ - "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ - "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ - "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ - "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ - "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ - "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ - "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ - "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ - "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ - "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ - "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ - "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ - "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ - "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ - "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ - "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ - "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ - "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ - "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ - "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ - "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ - "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ - "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ - "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ - "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ - "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ - "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ - "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ - "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ - "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ - "\1\54\1\uffff\1\56\4\54\1\u0107\26\54\1\uffff\1\103\2\uffff\1\54\1\uffff"+ - "\3\54\1\u0107\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\1\54\1\uffff\1\56\25\54\1\u0106\5\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\24\54\1\u0106\5\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ @@ -22456,88 +19883,88 @@ public class FTSLexer extends Lexer { "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ - "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ - "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ - "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ - "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ - "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ - "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ - "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ - "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ - "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ - "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ - "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ - "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ - "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ - "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ - "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ - "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ - "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ - "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ - "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ - "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ - "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ - "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ - "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ - "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ - "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ - "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ - "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ - "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ - "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ - "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ - "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ - "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ - "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ - "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ - "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ - "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ - "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ - "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ - "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ - "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ - "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ - "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ - "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ - "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ - "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ - "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ - "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ - "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ - "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ - "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ - "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ - "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ - "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ - "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ - "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ - "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ - "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ - "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ - "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ - "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ - "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ - "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ - "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ - "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ - "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ - "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ - "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ - "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ - "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ - "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ - "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ - "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ - "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ - "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ - "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ - "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ - "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ - "\3\54\1\uffff\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\23\54\1\u0108\7\54\1\uffff\1\103\2\uffff\1\54"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\14\54\1\u0107\16\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\13\54\1\u0107\16\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0108\7\54\1\uffff\1\104\2\uffff\1\54"+ "\1\uffff\22\54\1\u0108\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ @@ -22617,8 +20044,10165 @@ public class FTSLexer extends Lexer { "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ "\3\54\1\uffff\7\54", - "\7\54\2\uffff\1\55\1\141\1\uffff\1\141\1\uffff\13\54\1\uffff\1\54\1"+ - "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\103\2\uffff\1\54\1\uffff\32"+ + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\5\54\1\u0109\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u0109\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\22\54\1\u010a\10\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\21\54\1\u010a\10\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\17\54\1\u010b\13\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\16\54\1\u010b\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u010c\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0097\3\54\1\u0098\4\54\1\u0096"+ + "\5\54\1\u0099\5\54\1\u0095\1\54\1\uffff\1\104\2\uffff\1\54\1\uffff\3"+ + "\54\1\u0097\3\54\1\u0098\4\54\1\u0096\5\54\1\u0099\5\54\1\u0095\1\54"+ + "\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1"+ + "\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54"+ + "\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23"+ + "\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54"+ + "\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u010e\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u010f\24\u00c9"+ + "\1\uffff\1\u00c8\2\uffff\1\u00ca\1\uffff\6\u010d\24\u00c4\1\uffff\1\54"+ + "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ + "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ + "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ + "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ + "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ + "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ + "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0110\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0110\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\5\54\1\u0111\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u0111\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0112\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0112\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\4\54\1\u0113\26\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\3\54\1\u0113\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0115\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0114\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0115\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0114\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\7\62\1\u0117\22\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\7\61\1\u0116\22\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\7\62\1\u0117\22\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\7\61\1\u0116\22\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\u0119\6\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\u0118\6\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\23\62\1\u0119\6\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\23\61\1\u0118\6\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\10\62\1\u011b\21\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\10\61\1\u011a\21\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\10\62\1\u011b\21\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\10\61\1\u011a\21\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u011d\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u011c\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u011d\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u011c\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\u011f\14\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\15\61\1\u011e\14\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\u011f\14\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\15\61\1\u011e\14\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0120\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0120\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\10\54\1\u0121\22\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\7\54\1\u0121\22\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\24\54\1\u0122\6\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\23\54\1\u0122\6\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\11\54\1\u0123\21\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\10\54\1\u0123\21\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0124\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0124\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\16\54\1\u0125\14\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\15\54\1\u0125\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\1\142\12\171\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\56\4\54\1\u0097\3\54\1\u0098\4\54\1\u0096"+ + "\5\54\1\u0099\1\u0126\4\54\1\u0095\1\54\1\uffff\1\104\2\uffff\1\54\1"+ + "\uffff\3\54\1\u0097\3\54\1\u0098\4\54\1\u0096\5\54\1\u0099\5\54\1\u0095"+ + "\1\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0129\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0128\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u0127\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u012b\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u012c\24\u00c9"+ + "\1\uffff\1\u00c8\2\uffff\1\u00ca\1\uffff\6\u012a\24\u00c4\1\uffff\1\54"+ + "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ + "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ + "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ + "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ + "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ + "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ + "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0129\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0128\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u0127\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u012d\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u012d\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\5\54\1\u012e\25\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\4\54\1\u012e\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u012f\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u012f\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0131\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0130\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0131\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0130\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u0133\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u0132\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u0133\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u0132\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0135\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0134\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0135\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0134\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\u0137\26\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\3\61\1\u0136\26\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\u0137\26\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\3\61\1\u0136\26\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0138\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0138\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\5\54\1\u0139\25\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\4\54\1\u0139\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u013a\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u013a\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\4\54\1\u013b\26\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\3\54\1\u013b\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\1\142\12\u013c\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u013f\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u013e\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u013d\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u013f\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u013e\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u013d\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u013f\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u013e\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u013d\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u013f\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u013e\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u013d\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u0141\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0142\24\u00c9"+ + "\1\uffff\1\u00c8\2\uffff\1\u00ca\1\uffff\6\u0140\24\u00c4\1\uffff\1\54"+ + "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ + "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ + "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ + "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ + "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ + "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ + "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u013f\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u013e\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u013d\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\3\54\1\u0143\27\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\2\54\1\u0143\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0145\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0144\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0145\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0144\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u0147\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u0146\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\4\62\1\u0147\25\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\4\61\1\u0146\25\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0149\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0148\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0149\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0148\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u014a\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u014a\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\5\54\1\u014b\25\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\4\54\1\u014b\25\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u014c\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u014c\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\1\54\12\u014d\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0150\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u014f\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u014e\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0150\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u014f\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u014e\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0150\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u014f\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u014e\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0150\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u014f\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u014e\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u0152\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u0153\24\u00c9"+ + "\1\uffff\1\u00c8\2\uffff\1\u00ca\1\uffff\6\u0151\24\u00c4\1\uffff\1\54"+ + "\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1"+ + "\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14"+ + "\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff"+ + "\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54"+ + "\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff"+ + "\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff"+ + "\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\u0150\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\6\u014f\24\62\1\uffff"+ + "\1\70\2\uffff\1\65\1\uffff\6\u014e\24\61\1\uffff\1\54\44\uffff\7\54\1"+ + "\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\17\54\1\u0154\13\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\16\54\1\u0154\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\2\62\1\u0156\27\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\2\61\1\u0155\27\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\2\62\1\u0156\27\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\2\61\1\u0155\27\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\3\54\1\u0157\27\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\2\54\1\u0157\27\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\1\142\12\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\32\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff"+ + "\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\u00c7\1\u00c6\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1"+ + "\54\12\u00c5\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\u00c9\1\uffff"+ + "\1\u00c8\2\uffff\1\u00ca\1\uffff\32\u00c4\1\uffff\1\54\44\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff"+ + "\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11"+ + "\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54"+ + "\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54"+ + "\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20"+ + "\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21"+ + "\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\16\54\1\u0158\14\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\15\54\1\u0158\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\u015a\13\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\16\61\1\u0159\13\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\16\62\1\u015a\13\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\16\61\1\u0159\13\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\17\54\1\u015b\13\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\16\54\1\u015b\13\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\4\54\1\u015c\26\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\3\54\1\u015c\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\u015e\14\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\15\61\1\u015d\14\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\15\62\1\u015e\14\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\15\61\1\u015d\14\61\1\uffff\1\54\44"+ + "\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff"+ + "\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16"+ + "\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54"+ + "\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1"+ + "\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2"+ + "\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2"+ + "\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff"+ + "\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff"+ + "\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff"+ + "\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20"+ + "\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff"+ + "\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1"+ + "\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54"+ + "\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1"+ + "\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff"+ + "\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12"+ + "\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54"+ + "\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2"+ + "\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20"+ + "\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3"+ + "\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24"+ + "\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12"+ + "\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54"+ + "\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54"+ + "\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54"+ + "\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22"+ + "\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4"+ + "\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff"+ + "\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10"+ + "\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\16\54\1\u015f\14\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\15\54\1\u015f\14\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0160\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0160\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\u0162\26\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\3\61\1\u0161\26\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\54\1\uffff\1\64\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\3\62\1\u0162\26\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\3\61\1\u0161\26\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\54\1\uffff\1\54\1\uffff\13\54\1\uffff\1\54\1\uffff"+ + "\1\54\1\uffff\1\56\4\54\1\u0163\26\54\1\uffff\1\104\2\uffff\1\54\1\uffff"+ + "\3\54\1\u0163\26\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ + "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ + "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ + "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ + "\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24"+ + "\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff"+ + "\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff"+ + "\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff"+ + "\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff"+ + "\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff"+ + "\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff"+ + "\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff"+ + "\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3"+ + "\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54"+ + "\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff"+ + "\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54"+ + "\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3"+ + "\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff"+ + "\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2"+ + "\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54"+ + "\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17"+ + "\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1"+ + "\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff"+ + "\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff"+ + "\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12"+ + "\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20"+ + "\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54"+ + "\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54"+ + "\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff"+ + "\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff"+ + "\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54"+ + "\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1"+ + "\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff"+ + "\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff"+ + "\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff"+ + "\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff"+ + "\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff"+ + "\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54"+ + "\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1"+ + "\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff"+ + "\34\54\43\uffff\125\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54"+ + "\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15"+ + "\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12"+ + "\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff"+ + "\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff"+ + "\52\54\2\uffff\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c"+ + "\54\4\uffff\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6"+ + "\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54"+ + "\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3"+ + "\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff"+ + "\10\54\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff"+ + "\1\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0165\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0164\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\22\62\1\u0165\7\62\1"+ + "\uffff\1\70\2\uffff\1\65\1\uffff\22\61\1\u0164\7\61\1\uffff\1\54\44\uffff"+ + "\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54"+ + "\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff"+ + "\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff"+ + "\1\54\7\uffff\5\54\1\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54"+ + "\54\4\uffff\u0087\54\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff"+ + "\20\54\41\uffff\46\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff"+ + "\21\54\1\uffff\27\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff"+ + "\12\54\5\uffff\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff"+ + "\175\54\1\uffff\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f"+ + "\uffff\71\54\2\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1"+ + "\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff"+ + "\4\54\2\uffff\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54"+ + "\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2"+ + "\uffff\1\54\1\uffff\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff"+ + "\1\54\7\uffff\17\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff"+ + "\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3"+ + "\54\1\uffff\3\54\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54"+ + "\17\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10"+ + "\uffff\2\54\4\uffff\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff"+ + "\6\54\3\uffff\3\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54"+ + "\3\uffff\2\54\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3"+ + "\uffff\3\54\1\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1"+ + "\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4"+ + "\uffff\7\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff"+ + "\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff"+ + "\12\54\1\uffff\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2"+ + "\54\7\uffff\1\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10"+ + "\54\1\uffff\3\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54"+ + "\1\uffff\4\54\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54"+ + "\1\uffff\22\54\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54"+ + "\3\uffff\1\54\4\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14"+ + "\uffff\72\54\4\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1"+ + "\uffff\1\54\2\uffff\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\1\54\1\uffff\1\54\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5"+ + "\54\1\uffff\1\54\1\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72"+ + "\54\4\uffff\12\54\1\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44"+ + "\54\1\uffff\17\54\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2"+ + "\54\1\uffff\7\54\3\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff"+ + "\51\54\2\uffff\1\54\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff"+ + "\7\54\1\uffff\77\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1"+ + "\54\1\uffff\4\54\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54"+ + "\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff"+ + "\7\54\1\uffff\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125"+ + "\54\14\uffff\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1"+ + "\uffff\7\54\13\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54"+ + "\1\uffff\2\54\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54"+ + "\6\uffff\16\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff"+ + "\35\54\3\uffff\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff"+ + "\5\54\153\uffff\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff"+ + "\132\54\6\uffff\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff"+ + "\10\54\1\uffff\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65"+ + "\54\1\uffff\7\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54"+ + "\2\uffff\6\54\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54"+ + "\10\uffff\10\54\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1"+ + "\54\30\uffff\2\54\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff"+ + "\33\54\25\uffff\74\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2"+ + "\uffff\u0089\54\2\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff"+ + "\u01b8\54\1\uffff\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1"+ + "\uffff\4\54\2\uffff\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff"+ + "\1\54\1\uffff\7\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff"+ + "\16\54\21\uffff\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54"+ + "\2\uffff\u0110\54\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54"+ + "\32\uffff\14\54\5\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54"+ + "\1\uffff\126\54\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136"+ + "\54\1\uffff\50\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff"+ + "\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff"+ + "\67\54\u0739\uffff\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095"+ + "\uffff\7\54\14\uffff\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff"+ + "\2\54\1\uffff\2\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2"+ + "\uffff\66\54\50\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54"+ + "\20\uffff\2\54\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54"+ + "\4\uffff\5\54\1\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54"+ + "\2\uffff\1\54\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2"+ + "\uffff\133\54\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff"+ + "\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\23\54\1\u0166\7\54\1\uffff\1\104\2\uffff\1\54"+ + "\1\uffff\22\54\1\u0166\7\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff"+ + "\u017b\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21"+ + "\uffff\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1"+ + "\uffff\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54"+ + "\1\uffff\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46"+ + "\54\2\uffff\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27"+ + "\54\1\uffff\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff"+ + "\1\54\3\uffff\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff"+ + "\60\54\2\uffff\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2"+ + "\uffff\22\54\2\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2"+ + "\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff"+ + "\11\54\2\uffff\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5"+ + "\54\2\uffff\25\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54"+ + "\1\uffff\7\54\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff"+ + "\5\54\4\uffff\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17"+ + "\54\14\uffff\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7"+ + "\54\1\uffff\2\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54"+ + "\2\uffff\1\54\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54"+ + "\1\uffff\10\54\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1"+ + "\uffff\5\54\2\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff"+ + "\2\54\1\uffff\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3"+ + "\54\1\uffff\4\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54"+ + "\3\uffff\3\54\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1"+ + "\uffff\4\54\11\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1"+ + "\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff"+ + "\3\54\1\uffff\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff"+ + "\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff"+ + "\5\54\2\uffff\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1"+ + "\54\1\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3"+ + "\54\1\uffff\27\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54"+ + "\11\uffff\1\54\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54"+ + "\3\uffff\30\54\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4"+ + "\uffff\6\54\1\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4"+ + "\uffff\35\54\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff"+ + "\1\54\6\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54"+ + "\2\uffff\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1"+ + "\uffff\6\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1"+ + "\uffff\42\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54"+ + "\2\uffff\1\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3"+ + "\uffff\4\54\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54"+ + "\4\uffff\132\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\47\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1"+ + "\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff"+ + "\7\54\1\uffff\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7"+ + "\54\1\uffff\47\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff"+ + "\u0276\54\12\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13"+ + "\uffff\27\54\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54"+ + "\14\uffff\64\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16"+ + "\54\2\uffff\12\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff"+ + "\14\54\4\uffff\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff"+ + "\40\54\u0300\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff"+ + "\26\54\2\uffff\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7"+ + "\54\1\uffff\1\54\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54"+ + "\4\uffff\15\54\5\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54"+ + "\10\uffff\11\54\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54"+ + "\2\uffff\11\54\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74"+ + "\54\1\uffff\17\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2"+ + "\uffff\33\54\57\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff"+ + "\145\54\2\uffff\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff"+ + "\34\54\1\uffff\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7"+ + "\54\2\uffff\7\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff"+ + "\26\54\12\uffff\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54"+ + "\u0372\uffff\32\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5"+ + "\uffff\7\54\12\uffff\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54"+ + "\2\uffff\2\54\2\uffff\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50"+ + "\54\70\uffff\57\54\1\uffff\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff"+ + "\u1ab6\54\12\uffff\u51e6\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff"+ + "\u2ba4\54\u215c\uffff\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff"+ + "\5\54\5\uffff\32\54\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2"+ + "\54\1\uffff\154\54\41\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50"+ + "\uffff\16\54\2\uffff\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54"+ + "\2\uffff\12\54\1\uffff\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1"+ + "\uffff\u0087\54\4\uffff\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54"+ + "\1\uffff\32\54\1\uffff\1\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54"+ + "\3\uffff\6\54\2\uffff\6\54\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff"+ + "\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\2\54\1\67\1\66\3\54\2\uffff\1\55\1\144\1\uffff\1\143\1\uffff\1\54\12"+ + "\63\1\uffff\1\54\1\uffff\1\54\1\uffff\1\56\1\54\32\62\1\uffff\1\70\2"+ + "\uffff\1\65\1\uffff\32\61\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff"+ + "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b"+ + "\54\31\uffff\162\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff"+ + "\130\54\5\uffff\23\54\12\uffff\1\54\3\uffff\1\54\7\uffff\5\54\1\uffff"+ + "\1\54\1\uffff\24\54\1\uffff\54\54\1\uffff\54\54\4\uffff\u0087\54\1\uffff"+ + "\107\54\1\uffff\46\54\2\uffff\2\54\6\uffff\20\54\41\uffff\46\54\2\uffff"+ + "\7\54\1\uffff\47\54\1\uffff\2\54\6\uffff\21\54\1\uffff\27\54\1\uffff"+ + "\12\54\13\uffff\33\54\5\uffff\5\54\27\uffff\12\54\5\uffff\1\54\3\uffff"+ + "\1\54\1\uffff\32\54\5\uffff\31\54\7\uffff\175\54\1\uffff\60\54\2\uffff"+ + "\73\54\2\uffff\3\54\60\uffff\62\54\u014f\uffff\71\54\2\uffff\22\54\2"+ + "\uffff\5\54\3\uffff\31\54\20\uffff\3\54\1\uffff\10\54\2\uffff\2\54\2"+ + "\uffff\26\54\1\uffff\7\54\1\uffff\1\54\3\uffff\4\54\2\uffff\11\54\2\uffff"+ + "\2\54\2\uffff\3\54\11\uffff\1\54\4\uffff\2\54\1\uffff\5\54\2\uffff\25"+ + "\54\6\uffff\3\54\1\uffff\6\54\4\uffff\2\54\2\uffff\26\54\1\uffff\7\54"+ + "\1\uffff\2\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\5\54\4\uffff"+ + "\2\54\2\uffff\3\54\13\uffff\4\54\1\uffff\1\54\7\uffff\17\54\14\uffff"+ + "\3\54\1\uffff\11\54\1\uffff\3\54\1\uffff\26\54\1\uffff\7\54\1\uffff\2"+ + "\54\1\uffff\5\54\2\uffff\12\54\1\uffff\3\54\1\uffff\3\54\2\uffff\1\54"+ + "\17\uffff\4\54\2\uffff\12\54\1\uffff\1\54\17\uffff\3\54\1\uffff\10\54"+ + "\2\uffff\2\54\2\uffff\26\54\1\uffff\7\54\1\uffff\2\54\1\uffff\5\54\2"+ + "\uffff\10\54\3\uffff\2\54\2\uffff\3\54\10\uffff\2\54\4\uffff\2\54\1\uffff"+ + "\3\54\4\uffff\14\54\20\uffff\2\54\1\uffff\6\54\3\uffff\3\54\1\uffff\4"+ + "\54\3\uffff\2\54\1\uffff\1\54\1\uffff\2\54\3\uffff\2\54\3\uffff\3\54"+ + "\3\uffff\10\54\1\uffff\3\54\4\uffff\5\54\3\uffff\3\54\1\uffff\4\54\11"+ + "\uffff\1\54\17\uffff\24\54\6\uffff\3\54\1\uffff\10\54\1\uffff\3\54\1"+ + "\uffff\27\54\1\uffff\12\54\1\uffff\5\54\4\uffff\7\54\1\uffff\3\54\1\uffff"+ + "\4\54\7\uffff\2\54\11\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff"+ + "\10\54\1\uffff\3\54\1\uffff\27\54\1\uffff\12\54\1\uffff\5\54\2\uffff"+ + "\11\54\1\uffff\3\54\1\uffff\4\54\7\uffff\2\54\7\uffff\1\54\1\uffff\2"+ + "\54\4\uffff\12\54\22\uffff\2\54\1\uffff\10\54\1\uffff\3\54\1\uffff\27"+ + "\54\1\uffff\20\54\4\uffff\6\54\2\uffff\3\54\1\uffff\4\54\11\uffff\1\54"+ + "\10\uffff\2\54\4\uffff\12\54\22\uffff\2\54\1\uffff\22\54\3\uffff\30\54"+ + "\1\uffff\11\54\1\uffff\1\54\2\uffff\7\54\3\uffff\1\54\4\uffff\6\54\1"+ + "\uffff\1\54\1\uffff\10\54\22\uffff\3\54\14\uffff\72\54\4\uffff\35\54"+ + "\45\uffff\2\54\1\uffff\1\54\2\uffff\2\54\1\uffff\1\54\2\uffff\1\54\6"+ + "\uffff\4\54\1\uffff\7\54\1\uffff\3\54\1\uffff\1\54\1\uffff\1\54\2\uffff"+ + "\2\54\1\uffff\15\54\1\uffff\3\54\2\uffff\5\54\1\uffff\1\54\1\uffff\6"+ + "\54\2\uffff\12\54\2\uffff\2\54\42\uffff\72\54\4\uffff\12\54\1\uffff\42"+ + "\54\6\uffff\33\54\4\uffff\10\54\1\uffff\44\54\1\uffff\17\54\2\uffff\1"+ + "\54\60\uffff\42\54\1\uffff\5\54\1\uffff\2\54\1\uffff\7\54\3\uffff\4\54"+ + "\6\uffff\32\54\106\uffff\46\54\12\uffff\51\54\2\uffff\1\54\4\uffff\132"+ + "\54\5\uffff\104\54\5\uffff\122\54\6\uffff\7\54\1\uffff\77\54\1\uffff"+ + "\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\47"+ + "\54\1\uffff\1\54\1\uffff\4\54\2\uffff\37\54\1\uffff\1\54\1\uffff\4\54"+ + "\2\uffff\7\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\7\54\1\uffff"+ + "\27\54\1\uffff\37\54\1\uffff\1\54\1\uffff\4\54\2\uffff\7\54\1\uffff\47"+ + "\54\1\uffff\23\54\6\uffff\34\54\43\uffff\125\54\14\uffff\u0276\54\12"+ + "\uffff\32\54\5\uffff\121\54\17\uffff\15\54\1\uffff\7\54\13\uffff\27\54"+ + "\11\uffff\24\54\14\uffff\15\54\1\uffff\3\54\1\uffff\2\54\14\uffff\64"+ + "\54\2\uffff\50\54\2\uffff\12\54\6\uffff\12\54\6\uffff\16\54\2\uffff\12"+ + "\54\6\uffff\130\54\10\uffff\52\54\126\uffff\35\54\3\uffff\14\54\4\uffff"+ + "\14\54\4\uffff\1\54\3\uffff\52\54\2\uffff\5\54\153\uffff\40\54\u0300"+ + "\uffff\154\54\u0094\uffff\u009c\54\4\uffff\132\54\6\uffff\26\54\2\uffff"+ + "\6\54\2\uffff\46\54\2\uffff\6\54\2\uffff\10\54\1\uffff\1\54\1\uffff\1"+ + "\54\1\uffff\1\54\1\uffff\37\54\2\uffff\65\54\1\uffff\7\54\1\uffff\1\54"+ + "\3\uffff\3\54\1\uffff\7\54\3\uffff\4\54\2\uffff\6\54\4\uffff\15\54\5"+ + "\uffff\3\54\1\uffff\7\54\23\uffff\10\54\10\uffff\10\54\10\uffff\11\54"+ + "\2\uffff\12\54\2\uffff\16\54\2\uffff\1\54\30\uffff\2\54\2\uffff\11\54"+ + "\2\uffff\16\54\23\uffff\22\54\36\uffff\33\54\25\uffff\74\54\1\uffff\17"+ + "\54\7\uffff\61\54\14\uffff\u0199\54\2\uffff\u0089\54\2\uffff\33\54\57"+ + "\uffff\47\54\31\uffff\13\54\25\uffff\u01b8\54\1\uffff\145\54\2\uffff"+ + "\22\54\16\uffff\2\54\137\uffff\4\54\1\uffff\4\54\2\uffff\34\54\1\uffff"+ + "\43\54\1\uffff\1\54\1\uffff\4\54\3\uffff\1\54\1\uffff\7\54\2\uffff\7"+ + "\54\16\uffff\37\54\3\uffff\30\54\1\uffff\16\54\21\uffff\26\54\12\uffff"+ + "\u0193\54\26\uffff\77\54\4\uffff\40\54\2\uffff\u0110\54\u0372\uffff\32"+ + "\54\1\uffff\131\54\14\uffff\u00d6\54\32\uffff\14\54\5\uffff\7\54\12\uffff"+ + "\2\54\10\uffff\1\54\3\uffff\40\54\1\uffff\126\54\2\uffff\2\54\2\uffff"+ + "\143\54\5\uffff\50\54\4\uffff\136\54\1\uffff\50\54\70\uffff\57\54\1\uffff"+ + "\44\54\14\uffff\56\54\1\uffff\u0080\54\1\uffff\u1ab6\54\12\uffff\u51e6"+ + "\54\132\uffff\u048d\54\3\uffff\67\54\u0739\uffff\u2ba4\54\u215c\uffff"+ + "\u012e\54\2\uffff\73\54\u0095\uffff\7\54\14\uffff\5\54\5\uffff\32\54"+ + "\1\uffff\5\54\1\uffff\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\154\54\41"+ + "\uffff\u016b\54\22\uffff\100\54\2\uffff\66\54\50\uffff\16\54\2\uffff"+ + "\20\54\20\uffff\4\54\14\uffff\5\54\20\uffff\2\54\2\uffff\12\54\1\uffff"+ + "\5\54\6\uffff\10\54\1\uffff\4\54\4\uffff\5\54\1\uffff\u0087\54\4\uffff"+ + "\7\54\2\uffff\61\54\1\uffff\1\54\2\uffff\1\54\1\uffff\32\54\1\uffff\1"+ + "\54\1\uffff\1\54\2\uffff\1\54\2\uffff\133\54\3\uffff\6\54\2\uffff\6\54"+ + "\2\uffff\6\54\2\uffff\3\54\3\uffff\3\54\1\uffff\3\54\1\uffff\7\54", + "\7\54\2\uffff\1\55\1\144\1\uffff\1\144\1\uffff\13\54\1\uffff\1\54\1"+ + "\uffff\1\54\1\uffff\1\56\33\54\1\uffff\1\104\2\uffff\1\54\1\uffff\32"+ "\54\1\uffff\1\54\44\uffff\7\54\1\uffff\2\54\1\uffff\1\54\1\uffff\1\54"+ "\1\uffff\4\54\1\uffff\3\54\1\uffff\2\54\1\uffff\u017b\54\31\uffff\162"+ "\54\4\uffff\14\54\16\uffff\5\54\11\uffff\1\54\21\uffff\130\54\5\uffff"+ @@ -22738,42 +30322,42 @@ public class FTSLexer extends Lexer { int _s = s; switch ( s ) { case 0 : - int LA63_41 = input.LA(1); + int LA63_32 = input.LA(1); s = -1; - if ( (LA63_41=='u') ) {s = 73;} - else if ( ((LA63_41 >= '\u0000' && LA63_41 <= 't')||(LA63_41 >= 'v' && LA63_41 <= '\uFFFF')) ) {s = 74;} + if ( (LA63_32=='u') ) {s = 69;} + else if ( ((LA63_32 >= '\u0000' && LA63_32 <= 't')||(LA63_32 >= 'v' && LA63_32 <= '\uFFFF')) ) {s = 70;} if ( s>=0 ) return s; break; case 1 : - int LA63_55 = input.LA(1); + int LA63_68 = input.LA(1); s = -1; - if ( (LA63_55=='u') ) {s = 82;} - else if ( ((LA63_55 >= '\u0000' && LA63_55 <= 't')||(LA63_55 >= 'v' && LA63_55 <= '\uFFFF')) ) {s = 83;} + if ( (LA63_68=='u') ) {s = 90;} + else if ( ((LA63_68 >= '\u0000' && LA63_68 <= 't')||(LA63_68 >= 'v' && LA63_68 <= '\uFFFF')) ) {s = 91;} if ( s>=0 ) return s; break; case 2 : - int LA63_174 = input.LA(1); + int LA63_41 = input.LA(1); s = -1; - if ( (LA63_174=='u') ) {s = 194;} - else if ( ((LA63_174 >= '\u0000' && LA63_174 <= 't')||(LA63_174 >= 'v' && LA63_174 <= '\uFFFF')) ) {s = 195;} + if ( (LA63_41=='u') ) {s = 74;} + else if ( ((LA63_41 >= '\u0000' && LA63_41 <= 't')||(LA63_41 >= 'v' && LA63_41 <= '\uFFFF')) ) {s = 75;} if ( s>=0 ) return s; break; case 3 : - int LA63_32 = input.LA(1); + int LA63_56 = input.LA(1); s = -1; - if ( (LA63_32=='u') ) {s = 68;} - else if ( ((LA63_32 >= '\u0000' && LA63_32 <= 't')||(LA63_32 >= 'v' && LA63_32 <= '\uFFFF')) ) {s = 69;} + if ( (LA63_56=='u') ) {s = 84;} + else if ( ((LA63_56 >= '\u0000' && LA63_56 <= 't')||(LA63_56 >= 'v' && LA63_56 <= '\uFFFF')) ) {s = 85;} if ( s>=0 ) return s; break; case 4 : - int LA63_67 = input.LA(1); + int LA63_200 = input.LA(1); s = -1; - if ( (LA63_67=='u') ) {s = 88;} - else if ( ((LA63_67 >= '\u0000' && LA63_67 <= 't')||(LA63_67 >= 'v' && LA63_67 <= '\uFFFF')) ) {s = 89;} + if ( (LA63_200=='u') ) {s = 236;} + else if ( ((LA63_200 >= '\u0000' && LA63_200 <= 't')||(LA63_200 >= 'v' && LA63_200 <= '\uFFFF')) ) {s = 237;} if ( s>=0 ) return s; break; } diff --git a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java index 00b90d1a8d..a348d64633 100644 --- a/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java +++ b/src/main/java/org/alfresco/repo/search/impl/parsers/FTSParser.java @@ -1,29 +1,4 @@ -/* - * #%L - * Alfresco Data model classes - * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - * #L% - */ -// $ANTLR 3.5.2 src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g 2019-11-22 15:06:19 +// $ANTLR null ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g 2019-12-18 09:26:10 package org.alfresco.repo.search.impl.parsers; @@ -31,9 +6,6 @@ package org.alfresco.repo.search.impl.parsers; import org.antlr.runtime.*; import java.util.Stack; import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; import org.antlr.runtime.tree.*; @@ -189,7 +161,7 @@ public class FTSParser extends Parser { return adaptor; } @Override public String[] getTokenNames() { return FTSParser.tokenNames; } - @Override public String getGrammarFileName() { return "src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g"; } + @Override public String getGrammarFileName() { return "./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g"; } public enum Mode @@ -358,7 +330,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsQuery" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:342:1: ftsQuery : ftsDisjunction EOF -> ftsDisjunction ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:342:1: ftsQuery : ftsDisjunction EOF -> ftsDisjunction ; public final FTSParser.ftsQuery_return ftsQuery() throws RecognitionException { FTSParser.ftsQuery_return retval = new FTSParser.ftsQuery_return(); retval.start = input.LT(1); @@ -373,15 +345,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsDisjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsDisjunction"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:343:9: ( ftsDisjunction EOF -> ftsDisjunction ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:344:9: ftsDisjunction EOF + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:343:9: ( ftsDisjunction EOF -> ftsDisjunction ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:344:9: ftsDisjunction EOF { - pushFollow(FOLLOW_ftsDisjunction_in_ftsQuery577); + pushFollow(FOLLOW_ftsDisjunction_in_ftsQuery578); ftsDisjunction1=ftsDisjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsDisjunction.add(ftsDisjunction1.getTree()); - EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_ftsQuery579); if (state.failed) return retval; + EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_ftsQuery580); if (state.failed) return retval; if ( state.backtracking==0 ) stream_EOF.add(EOF2); // AST REWRITE @@ -436,7 +408,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:353:1: ftsDisjunction : ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:353:1: ftsDisjunction : ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ); public final FTSParser.ftsDisjunction_return ftsDisjunction() throws RecognitionException { FTSParser.ftsDisjunction_return retval = new FTSParser.ftsDisjunction_return(); retval.start = input.LT(1); @@ -449,7 +421,7 @@ public class FTSParser extends Parser { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:354:9: ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:354:9: ({...}? cmisExplicitDisjunction |{...}? ftsExplicitDisjunction |{...}? ftsImplicitDisjunction ) int alt1=3; switch ( input.LA(1) ) { case COMMA: @@ -1186,7 +1158,7 @@ public class FTSParser extends Parser { } switch (alt1) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:355:11: {...}? cmisExplicitDisjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:355:11: {...}? cmisExplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -1195,7 +1167,7 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsDisjunction", "getMode() == Mode.CMIS"); } - pushFollow(FOLLOW_cmisExplicitDisjunction_in_ftsDisjunction639); + pushFollow(FOLLOW_cmisExplicitDisjunction_in_ftsDisjunction640); cmisExplicitDisjunction3=cmisExplicitDisjunction(); state._fsp--; if (state.failed) return retval; @@ -1204,7 +1176,7 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:356:11: {...}? ftsExplicitDisjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:356:11: {...}? ftsExplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -1213,7 +1185,7 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsDisjunction", "getMode() == Mode.DEFAULT_CONJUNCTION"); } - pushFollow(FOLLOW_ftsExplicitDisjunction_in_ftsDisjunction653); + pushFollow(FOLLOW_ftsExplicitDisjunction_in_ftsDisjunction654); ftsExplicitDisjunction4=ftsExplicitDisjunction(); state._fsp--; if (state.failed) return retval; @@ -1222,7 +1194,7 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:357:11: {...}? ftsImplicitDisjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:357:11: {...}? ftsImplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -1231,7 +1203,7 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsDisjunction", "getMode() == Mode.DEFAULT_DISJUNCTION"); } - pushFollow(FOLLOW_ftsImplicitDisjunction_in_ftsDisjunction667); + pushFollow(FOLLOW_ftsImplicitDisjunction_in_ftsDisjunction668); ftsImplicitDisjunction5=ftsImplicitDisjunction(); state._fsp--; if (state.failed) return retval; @@ -1270,7 +1242,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsExplicitDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:360:1: ftsExplicitDisjunction : ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:360:1: ftsExplicitDisjunction : ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ; public final FTSParser.ftsExplicitDisjunction_return ftsExplicitDisjunction() throws RecognitionException { FTSParser.ftsExplicitDisjunction_return retval = new FTSParser.ftsExplicitDisjunction_return(); retval.start = input.LT(1); @@ -1285,15 +1257,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsImplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsImplicitConjunction"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:361:9: ( ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:9: ftsImplicitConjunction ( or ftsImplicitConjunction )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:361:9: ( ftsImplicitConjunction ( or ftsImplicitConjunction )* -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:9: ftsImplicitConjunction ( or ftsImplicitConjunction )* { - pushFollow(FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction700); + pushFollow(FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction701); ftsImplicitConjunction6=ftsImplicitConjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsImplicitConjunction.add(ftsImplicitConjunction6.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:32: ( or ftsImplicitConjunction )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:32: ( or ftsImplicitConjunction )* loop2: while (true) { int alt2=2; @@ -1304,14 +1276,14 @@ public class FTSParser extends Parser { switch (alt2) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:33: or ftsImplicitConjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:362:33: or ftsImplicitConjunction { - pushFollow(FOLLOW_or_in_ftsExplicitDisjunction703); + pushFollow(FOLLOW_or_in_ftsExplicitDisjunction704); or7=or(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_or.add(or7.getTree()); - pushFollow(FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction705); + pushFollow(FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction706); ftsImplicitConjunction8=ftsImplicitConjunction(); state._fsp--; if (state.failed) return retval; @@ -1338,7 +1310,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 363:17: -> ^( DISJUNCTION ( ftsImplicitConjunction )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:364:25: ^( DISJUNCTION ( ftsImplicitConjunction )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:364:25: ^( DISJUNCTION ( ftsImplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DISJUNCTION, "DISJUNCTION"), root_1); @@ -1390,7 +1362,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisExplicitDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:367:1: cmisExplicitDisjunction : cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:367:1: cmisExplicitDisjunction : cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ; public final FTSParser.cmisExplicitDisjunction_return cmisExplicitDisjunction() throws RecognitionException { FTSParser.cmisExplicitDisjunction_return retval = new FTSParser.cmisExplicitDisjunction_return(); retval.start = input.LT(1); @@ -1405,15 +1377,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_or=new RewriteRuleSubtreeStream(adaptor,"rule or"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:368:9: ( cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:9: cmisConjunction ( or cmisConjunction )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:368:9: ( cmisConjunction ( or cmisConjunction )* -> ^( DISJUNCTION ( cmisConjunction )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:9: cmisConjunction ( or cmisConjunction )* { - pushFollow(FOLLOW_cmisConjunction_in_cmisExplicitDisjunction789); + pushFollow(FOLLOW_cmisConjunction_in_cmisExplicitDisjunction790); cmisConjunction9=cmisConjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_cmisConjunction.add(cmisConjunction9.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:25: ( or cmisConjunction )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:25: ( or cmisConjunction )* loop3: while (true) { int alt3=2; @@ -1424,14 +1396,14 @@ public class FTSParser extends Parser { switch (alt3) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:26: or cmisConjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:369:26: or cmisConjunction { - pushFollow(FOLLOW_or_in_cmisExplicitDisjunction792); + pushFollow(FOLLOW_or_in_cmisExplicitDisjunction793); or10=or(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_or.add(or10.getTree()); - pushFollow(FOLLOW_cmisConjunction_in_cmisExplicitDisjunction794); + pushFollow(FOLLOW_cmisConjunction_in_cmisExplicitDisjunction795); cmisConjunction11=cmisConjunction(); state._fsp--; if (state.failed) return retval; @@ -1458,7 +1430,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 370:17: -> ^( DISJUNCTION ( cmisConjunction )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:371:25: ^( DISJUNCTION ( cmisConjunction )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:371:25: ^( DISJUNCTION ( cmisConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DISJUNCTION, "DISJUNCTION"), root_1); @@ -1510,7 +1482,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsImplicitDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:374:1: ftsImplicitDisjunction : ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:374:1: ftsImplicitDisjunction : ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ; public final FTSParser.ftsImplicitDisjunction_return ftsImplicitDisjunction() throws RecognitionException { FTSParser.ftsImplicitDisjunction_return retval = new FTSParser.ftsImplicitDisjunction_return(); retval.start = input.LT(1); @@ -1524,10 +1496,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsExplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsExplicitConjunction"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:375:9: ( ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:375:9: ( ( ( or )? ftsExplicitConjunction )+ -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:9: ( ( or )? ftsExplicitConjunction )+ int cnt5=0; loop5: while (true) { @@ -1539,9 +1511,9 @@ public class FTSParser extends Parser { switch (alt5) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: ( or )? ftsExplicitConjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: ( or )? ftsExplicitConjunction { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: ( or )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: ( or )? int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==OR) ) { @@ -1558,9 +1530,9 @@ public class FTSParser extends Parser { } switch (alt4) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: or + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:376:10: or { - pushFollow(FOLLOW_or_in_ftsImplicitDisjunction879); + pushFollow(FOLLOW_or_in_ftsImplicitDisjunction880); or12=or(); state._fsp--; if (state.failed) return retval; @@ -1570,7 +1542,7 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_ftsExplicitConjunction_in_ftsImplicitDisjunction882); + pushFollow(FOLLOW_ftsExplicitConjunction_in_ftsImplicitDisjunction883); ftsExplicitConjunction13=ftsExplicitConjunction(); state._fsp--; if (state.failed) return retval; @@ -1601,7 +1573,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 377:17: -> ^( DISJUNCTION ( ftsExplicitConjunction )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:378:25: ^( DISJUNCTION ( ftsExplicitConjunction )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:378:25: ^( DISJUNCTION ( ftsExplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DISJUNCTION, "DISJUNCTION"), root_1); @@ -1653,7 +1625,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsExplicitConjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:385:1: ftsExplicitConjunction : ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:385:1: ftsExplicitConjunction : ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; public final FTSParser.ftsExplicitConjunction_return ftsExplicitConjunction() throws RecognitionException { FTSParser.ftsExplicitConjunction_return retval = new FTSParser.ftsExplicitConjunction_return(); retval.start = input.LT(1); @@ -1668,15 +1640,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule ftsPrefixed"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:386:9: ( ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:9: ftsPrefixed ( and ftsPrefixed )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:386:9: ( ftsPrefixed ( and ftsPrefixed )* -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:9: ftsPrefixed ( and ftsPrefixed )* { - pushFollow(FOLLOW_ftsPrefixed_in_ftsExplicitConjunction969); + pushFollow(FOLLOW_ftsPrefixed_in_ftsExplicitConjunction970); ftsPrefixed14=ftsPrefixed(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsPrefixed.add(ftsPrefixed14.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:21: ( and ftsPrefixed )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:21: ( and ftsPrefixed )* loop6: while (true) { int alt6=2; @@ -1694,14 +1666,14 @@ public class FTSParser extends Parser { switch (alt6) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:22: and ftsPrefixed + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:387:22: and ftsPrefixed { - pushFollow(FOLLOW_and_in_ftsExplicitConjunction972); + pushFollow(FOLLOW_and_in_ftsExplicitConjunction973); and15=and(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_and.add(and15.getTree()); - pushFollow(FOLLOW_ftsPrefixed_in_ftsExplicitConjunction974); + pushFollow(FOLLOW_ftsPrefixed_in_ftsExplicitConjunction975); ftsPrefixed16=ftsPrefixed(); state._fsp--; if (state.failed) return retval; @@ -1728,7 +1700,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 388:17: -> ^( CONJUNCTION ( ftsPrefixed )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:389:25: ^( CONJUNCTION ( ftsPrefixed )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:389:25: ^( CONJUNCTION ( ftsPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONJUNCTION, "CONJUNCTION"), root_1); @@ -1780,7 +1752,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsImplicitConjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:392:1: ftsImplicitConjunction : ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:392:1: ftsImplicitConjunction : ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ; public final FTSParser.ftsImplicitConjunction_return ftsImplicitConjunction() throws RecognitionException { FTSParser.ftsImplicitConjunction_return retval = new FTSParser.ftsImplicitConjunction_return(); retval.start = input.LT(1); @@ -1794,10 +1766,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule ftsPrefixed"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:393:9: ( ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:9: ( ( and )? ftsPrefixed )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:393:9: ( ( ( and )? ftsPrefixed )+ -> ^( CONJUNCTION ( ftsPrefixed )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:9: ( ( and )? ftsPrefixed )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:9: ( ( and )? ftsPrefixed )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:9: ( ( and )? ftsPrefixed )+ int cnt8=0; loop8: while (true) { @@ -1855,9 +1827,9 @@ public class FTSParser extends Parser { } switch (alt8) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: ( and )? ftsPrefixed + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: ( and )? ftsPrefixed { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: ( and )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: ( and )? int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0==AND) ) { @@ -1871,9 +1843,9 @@ public class FTSParser extends Parser { } switch (alt7) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: and + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:394:10: and { - pushFollow(FOLLOW_and_in_ftsImplicitConjunction1059); + pushFollow(FOLLOW_and_in_ftsImplicitConjunction1060); and17=and(); state._fsp--; if (state.failed) return retval; @@ -1883,7 +1855,7 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_ftsPrefixed_in_ftsImplicitConjunction1062); + pushFollow(FOLLOW_ftsPrefixed_in_ftsImplicitConjunction1063); ftsPrefixed18=ftsPrefixed(); state._fsp--; if (state.failed) return retval; @@ -1914,7 +1886,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 395:17: -> ^( CONJUNCTION ( ftsPrefixed )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:396:25: ^( CONJUNCTION ( ftsPrefixed )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:396:25: ^( CONJUNCTION ( ftsPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONJUNCTION, "CONJUNCTION"), root_1); @@ -1966,7 +1938,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisConjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:399:1: cmisConjunction : ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:399:1: cmisConjunction : ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ; public final FTSParser.cmisConjunction_return cmisConjunction() throws RecognitionException { FTSParser.cmisConjunction_return retval = new FTSParser.cmisConjunction_return(); retval.start = input.LT(1); @@ -1978,10 +1950,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_cmisPrefixed=new RewriteRuleSubtreeStream(adaptor,"rule cmisPrefixed"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:400:9: ( ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: ( cmisPrefixed )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:400:9: ( ( cmisPrefixed )+ -> ^( CONJUNCTION ( cmisPrefixed )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: ( cmisPrefixed )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: ( cmisPrefixed )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: ( cmisPrefixed )+ int cnt9=0; loop9: while (true) { @@ -1993,9 +1965,9 @@ public class FTSParser extends Parser { switch (alt9) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: cmisPrefixed + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:401:9: cmisPrefixed { - pushFollow(FOLLOW_cmisPrefixed_in_cmisConjunction1146); + pushFollow(FOLLOW_cmisPrefixed_in_cmisConjunction1147); cmisPrefixed19=cmisPrefixed(); state._fsp--; if (state.failed) return retval; @@ -2026,7 +1998,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 402:17: -> ^( CONJUNCTION ( cmisPrefixed )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:403:25: ^( CONJUNCTION ( cmisPrefixed )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:403:25: ^( CONJUNCTION ( cmisPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONJUNCTION, "CONJUNCTION"), root_1); @@ -2078,7 +2050,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsPrefixed" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:413:1: ftsPrefixed : ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:413:1: ftsPrefixed : ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ); public final FTSParser.ftsPrefixed_return ftsPrefixed() throws RecognitionException { FTSParser.ftsPrefixed_return retval = new FTSParser.ftsPrefixed_return(); retval.start = input.LT(1); @@ -2111,7 +2083,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsTest=new RewriteRuleSubtreeStream(adaptor,"rule ftsTest"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:414:9: ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:414:9: ( ( not )=> not ftsTest ( boost )? -> ^( NEGATION ftsTest ( boost )? ) | ftsTest ( boost )? -> ^( DEFAULT ftsTest ( boost )? ) | PLUS ftsTest ( boost )? -> ^( MANDATORY ftsTest ( boost )? ) | BAR ftsTest ( boost )? -> ^( OPTIONAL ftsTest ( boost )? ) | MINUS ftsTest ( boost )? -> ^( EXCLUDE ftsTest ( boost )? ) ) int alt15=5; int LA15_0 = input.LA(1); if ( (LA15_0==NOT) ) { @@ -2149,19 +2121,19 @@ public class FTSParser extends Parser { switch (alt15) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:9: ( not )=> not ftsTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:9: ( not )=> not ftsTest ( boost )? { - pushFollow(FOLLOW_not_in_ftsPrefixed1238); + pushFollow(FOLLOW_not_in_ftsPrefixed1239); not20=not(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_not.add(not20.getTree()); - pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1240); + pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1241); ftsTest21=ftsTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest21.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:30: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:30: ( boost )? int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0==CARAT) ) { @@ -2169,9 +2141,9 @@ public class FTSParser extends Parser { } switch (alt10) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:30: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:30: boost { - pushFollow(FOLLOW_boost_in_ftsPrefixed1242); + pushFollow(FOLLOW_boost_in_ftsPrefixed1243); boost22=boost(); state._fsp--; if (state.failed) return retval; @@ -2182,7 +2154,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: boost, ftsTest + // elements: ftsTest, boost // token labels: // rule labels: retval // token list labels: @@ -2195,12 +2167,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 416:17: -> ^( NEGATION ftsTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:417:25: ^( NEGATION ftsTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:417:25: ^( NEGATION ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NEGATION, "NEGATION"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:417:44: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:417:44: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2218,14 +2190,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:11: ftsTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:11: ftsTest ( boost )? { - pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1306); + pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1307); ftsTest23=ftsTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest23.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:19: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:19: ( boost )? int alt11=2; int LA11_0 = input.LA(1); if ( (LA11_0==CARAT) ) { @@ -2233,9 +2205,9 @@ public class FTSParser extends Parser { } switch (alt11) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:19: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:418:19: boost { - pushFollow(FOLLOW_boost_in_ftsPrefixed1308); + pushFollow(FOLLOW_boost_in_ftsPrefixed1309); boost24=boost(); state._fsp--; if (state.failed) return retval; @@ -2246,7 +2218,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: boost, ftsTest + // elements: ftsTest, boost // token labels: // rule labels: retval // token list labels: @@ -2259,12 +2231,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 419:17: -> ^( DEFAULT ftsTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:420:25: ^( DEFAULT ftsTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:420:25: ^( DEFAULT ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFAULT, "DEFAULT"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:420:43: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:420:43: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2282,17 +2254,17 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:11: PLUS ftsTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:11: PLUS ftsTest ( boost )? { - PLUS25=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsPrefixed1372); if (state.failed) return retval; + PLUS25=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsPrefixed1373); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PLUS.add(PLUS25); - pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1374); + pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1375); ftsTest26=ftsTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest26.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:24: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:24: ( boost )? int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0==CARAT) ) { @@ -2300,9 +2272,9 @@ public class FTSParser extends Parser { } switch (alt12) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:24: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:421:24: boost { - pushFollow(FOLLOW_boost_in_ftsPrefixed1376); + pushFollow(FOLLOW_boost_in_ftsPrefixed1377); boost27=boost(); state._fsp--; if (state.failed) return retval; @@ -2326,12 +2298,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 422:17: -> ^( MANDATORY ftsTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:423:25: ^( MANDATORY ftsTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:423:25: ^( MANDATORY ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MANDATORY, "MANDATORY"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:423:45: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:423:45: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2349,17 +2321,17 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:11: BAR ftsTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:11: BAR ftsTest ( boost )? { - BAR28=(Token)match(input,BAR,FOLLOW_BAR_in_ftsPrefixed1440); if (state.failed) return retval; + BAR28=(Token)match(input,BAR,FOLLOW_BAR_in_ftsPrefixed1441); if (state.failed) return retval; if ( state.backtracking==0 ) stream_BAR.add(BAR28); - pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1442); + pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1443); ftsTest29=ftsTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest29.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:23: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:23: ( boost )? int alt13=2; int LA13_0 = input.LA(1); if ( (LA13_0==CARAT) ) { @@ -2367,9 +2339,9 @@ public class FTSParser extends Parser { } switch (alt13) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:23: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:424:23: boost { - pushFollow(FOLLOW_boost_in_ftsPrefixed1444); + pushFollow(FOLLOW_boost_in_ftsPrefixed1445); boost30=boost(); state._fsp--; if (state.failed) return retval; @@ -2393,12 +2365,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 425:17: -> ^( OPTIONAL ftsTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:426:25: ^( OPTIONAL ftsTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:426:25: ^( OPTIONAL ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTIONAL, "OPTIONAL"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:426:44: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:426:44: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2416,17 +2388,17 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:11: MINUS ftsTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:11: MINUS ftsTest ( boost )? { - MINUS31=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsPrefixed1508); if (state.failed) return retval; + MINUS31=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsPrefixed1509); if (state.failed) return retval; if ( state.backtracking==0 ) stream_MINUS.add(MINUS31); - pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1510); + pushFollow(FOLLOW_ftsTest_in_ftsPrefixed1511); ftsTest32=ftsTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsTest.add(ftsTest32.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:25: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:25: ( boost )? int alt14=2; int LA14_0 = input.LA(1); if ( (LA14_0==CARAT) ) { @@ -2434,9 +2406,9 @@ public class FTSParser extends Parser { } switch (alt14) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:25: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:427:25: boost { - pushFollow(FOLLOW_boost_in_ftsPrefixed1512); + pushFollow(FOLLOW_boost_in_ftsPrefixed1513); boost33=boost(); state._fsp--; if (state.failed) return retval; @@ -2447,7 +2419,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsTest, boost + // elements: boost, ftsTest // token labels: // rule labels: retval // token list labels: @@ -2460,12 +2432,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 428:17: -> ^( EXCLUDE ftsTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:429:25: ^( EXCLUDE ftsTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:429:25: ^( EXCLUDE ftsTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXCLUDE, "EXCLUDE"), root_1); adaptor.addChild(root_1, stream_ftsTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:429:43: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:429:43: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -2513,7 +2485,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisPrefixed" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:432:1: cmisPrefixed : ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:432:1: cmisPrefixed : ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ); public final FTSParser.cmisPrefixed_return cmisPrefixed() throws RecognitionException { FTSParser.cmisPrefixed_return retval = new FTSParser.cmisPrefixed_return(); retval.start = input.LT(1); @@ -2529,7 +2501,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_cmisTest=new RewriteRuleSubtreeStream(adaptor,"rule cmisTest"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:433:9: ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:433:9: ( cmisTest -> ^( DEFAULT cmisTest ) | MINUS cmisTest -> ^( EXCLUDE cmisTest ) ) int alt16=2; int LA16_0 = input.LA(1); if ( (LA16_0==COMMA||LA16_0==DATETIME||LA16_0==DECIMAL_INTEGER_LITERAL||LA16_0==DOT||LA16_0==FLOATING_POINT_LITERAL||(LA16_0 >= FTSPHRASE && LA16_0 <= FTSWORD)||LA16_0==ID||LA16_0==NOT||LA16_0==QUESTION_MARK||LA16_0==STAR||LA16_0==TO||LA16_0==URI) ) { @@ -2548,9 +2520,9 @@ public class FTSParser extends Parser { switch (alt16) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:434:9: cmisTest + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:434:9: cmisTest { - pushFollow(FOLLOW_cmisTest_in_cmisPrefixed1597); + pushFollow(FOLLOW_cmisTest_in_cmisPrefixed1598); cmisTest34=cmisTest(); state._fsp--; if (state.failed) return retval; @@ -2569,7 +2541,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 435:17: -> ^( DEFAULT cmisTest ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:436:25: ^( DEFAULT cmisTest ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:436:25: ^( DEFAULT cmisTest ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFAULT, "DEFAULT"), root_1); @@ -2586,12 +2558,12 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:437:11: MINUS cmisTest + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:437:11: MINUS cmisTest { - MINUS35=(Token)match(input,MINUS,FOLLOW_MINUS_in_cmisPrefixed1657); if (state.failed) return retval; + MINUS35=(Token)match(input,MINUS,FOLLOW_MINUS_in_cmisPrefixed1658); if (state.failed) return retval; if ( state.backtracking==0 ) stream_MINUS.add(MINUS35); - pushFollow(FOLLOW_cmisTest_in_cmisPrefixed1659); + pushFollow(FOLLOW_cmisTest_in_cmisPrefixed1660); cmisTest36=cmisTest(); state._fsp--; if (state.failed) return retval; @@ -2610,7 +2582,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 438:17: -> ^( EXCLUDE cmisTest ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:439:25: ^( EXCLUDE cmisTest ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:439:25: ^( EXCLUDE cmisTest ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXCLUDE, "EXCLUDE"), root_1); @@ -2657,7 +2629,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsTest" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:445:1: ftsTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:445:1: ftsTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ); public final FTSParser.ftsTest_return ftsTest() throws RecognitionException { FTSParser.ftsTest_return retval = new FTSParser.ftsTest_return(); retval.start = input.LT(1); @@ -2686,14 +2658,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroup=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroup"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:446:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:446:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( PROXIMITY ftsFieldGroupProximity ) | ( ftsRange )=> ftsRange -> ^( RANGE ftsRange ) | ( ftsFieldGroup )=> ftsFieldGroup -> ftsFieldGroup | ( ftsTermOrPhrase )=> ftsTermOrPhrase | ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase | ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase | LPAREN ftsDisjunction RPAREN -> ftsDisjunction | template -> template ) int alt17=8; alt17 = dfa17.predict(input); switch (alt17) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:12: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:12: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity { - pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsTest1751); + pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsTest1752); ftsFieldGroupProximity37=ftsFieldGroupProximity(); state._fsp--; if (state.failed) return retval; @@ -2712,7 +2684,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 448:17: -> ^( PROXIMITY ftsFieldGroupProximity ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:449:25: ^( PROXIMITY ftsFieldGroupProximity ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:449:25: ^( PROXIMITY ftsFieldGroupProximity ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROXIMITY, "PROXIMITY"), root_1); @@ -2729,9 +2701,9 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:12: ( ftsRange )=> ftsRange + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:12: ( ftsRange )=> ftsRange { - pushFollow(FOLLOW_ftsRange_in_ftsTest1828); + pushFollow(FOLLOW_ftsRange_in_ftsTest1829); ftsRange38=ftsRange(); state._fsp--; if (state.failed) return retval; @@ -2750,7 +2722,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 452:17: -> ^( RANGE ftsRange ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:453:25: ^( RANGE ftsRange ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:453:25: ^( RANGE ftsRange ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RANGE, "RANGE"), root_1); @@ -2767,9 +2739,9 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:12: ( ftsFieldGroup )=> ftsFieldGroup + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:12: ( ftsFieldGroup )=> ftsFieldGroup { - pushFollow(FOLLOW_ftsFieldGroup_in_ftsTest1907); + pushFollow(FOLLOW_ftsFieldGroup_in_ftsTest1908); ftsFieldGroup39=ftsFieldGroup(); state._fsp--; if (state.failed) return retval; @@ -2798,12 +2770,12 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:12: ( ftsTermOrPhrase )=> ftsTermOrPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:12: ( ftsTermOrPhrase )=> ftsTermOrPhrase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsTermOrPhrase_in_ftsTest1956); + pushFollow(FOLLOW_ftsTermOrPhrase_in_ftsTest1957); ftsTermOrPhrase40=ftsTermOrPhrase(); state._fsp--; if (state.failed) return retval; @@ -2812,12 +2784,12 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:12: ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:12: ( ftsExactTermOrPhrase )=> ftsExactTermOrPhrase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsExactTermOrPhrase_in_ftsTest1985); + pushFollow(FOLLOW_ftsExactTermOrPhrase_in_ftsTest1986); ftsExactTermOrPhrase41=ftsExactTermOrPhrase(); state._fsp--; if (state.failed) return retval; @@ -2826,12 +2798,12 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:12: ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:12: ( ftsTokenisedTermOrPhrase )=> ftsTokenisedTermOrPhrase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsTokenisedTermOrPhrase_in_ftsTest2015); + pushFollow(FOLLOW_ftsTokenisedTermOrPhrase_in_ftsTest2016); ftsTokenisedTermOrPhrase42=ftsTokenisedTermOrPhrase(); state._fsp--; if (state.failed) return retval; @@ -2840,17 +2812,17 @@ public class FTSParser extends Parser { } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:465:12: LPAREN ftsDisjunction RPAREN + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:465:12: LPAREN ftsDisjunction RPAREN { - LPAREN43=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsTest2046); if (state.failed) return retval; + LPAREN43=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsTest2047); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN43); - pushFollow(FOLLOW_ftsDisjunction_in_ftsTest2048); + pushFollow(FOLLOW_ftsDisjunction_in_ftsTest2049); ftsDisjunction44=ftsDisjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsDisjunction.add(ftsDisjunction44.getTree()); - RPAREN45=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsTest2050); if (state.failed) return retval; + RPAREN45=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsTest2051); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN45); // AST REWRITE @@ -2877,9 +2849,9 @@ public class FTSParser extends Parser { } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:467:12: template + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:467:12: template { - pushFollow(FOLLOW_template_in_ftsTest2083); + pushFollow(FOLLOW_template_in_ftsTest2084); template46=template(); state._fsp--; if (state.failed) return retval; @@ -2938,7 +2910,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisTest" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:471:1: cmisTest : ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:471:1: cmisTest : ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ); public final FTSParser.cmisTest_return cmisTest() throws RecognitionException { FTSParser.cmisTest_return retval = new FTSParser.cmisTest_return(); retval.start = input.LT(1); @@ -2952,7 +2924,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_cmisPhrase=new RewriteRuleSubtreeStream(adaptor,"rule cmisPhrase"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:472:9: ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:472:9: ( cmisTerm -> ^( TERM cmisTerm ) | cmisPhrase -> ^( PHRASE cmisPhrase ) ) int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==COMMA||LA18_0==DATETIME||LA18_0==DECIMAL_INTEGER_LITERAL||LA18_0==DOT||LA18_0==FLOATING_POINT_LITERAL||(LA18_0 >= FTSPRE && LA18_0 <= FTSWORD)||LA18_0==ID||LA18_0==NOT||LA18_0==QUESTION_MARK||LA18_0==STAR||LA18_0==TO||LA18_0==URI) ) { @@ -2971,9 +2943,9 @@ public class FTSParser extends Parser { switch (alt18) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:473:9: cmisTerm + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:473:9: cmisTerm { - pushFollow(FOLLOW_cmisTerm_in_cmisTest2136); + pushFollow(FOLLOW_cmisTerm_in_cmisTest2137); cmisTerm47=cmisTerm(); state._fsp--; if (state.failed) return retval; @@ -2992,7 +2964,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 474:17: -> ^( TERM cmisTerm ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:475:25: ^( TERM cmisTerm ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:475:25: ^( TERM cmisTerm ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); @@ -3009,9 +2981,9 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:476:11: cmisPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:476:11: cmisPhrase { - pushFollow(FOLLOW_cmisPhrase_in_cmisTest2196); + pushFollow(FOLLOW_cmisPhrase_in_cmisTest2197); cmisPhrase48=cmisPhrase(); state._fsp--; if (state.failed) return retval; @@ -3030,7 +3002,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 477:17: -> ^( PHRASE cmisPhrase ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:478:25: ^( PHRASE cmisPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:478:25: ^( PHRASE cmisPhrase ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); @@ -3077,7 +3049,7 @@ public class FTSParser extends Parser { // $ANTLR start "template" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:481:1: template : ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:481:1: template : ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ); public final FTSParser.template_return template() throws RecognitionException { FTSParser.template_return retval = new FTSParser.template_return(); retval.start = input.LT(1); @@ -3104,7 +3076,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_tempReference=new RewriteRuleSubtreeStream(adaptor,"rule tempReference"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:482:9: ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:482:9: ( PERCENT tempReference -> ^( TEMPLATE tempReference ) | PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN -> ^( TEMPLATE ( tempReference )+ ) ) int alt21=2; int LA21_0 = input.LA(1); if ( (LA21_0==PERCENT) ) { @@ -3140,12 +3112,12 @@ public class FTSParser extends Parser { switch (alt21) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:483:9: PERCENT tempReference + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:483:9: PERCENT tempReference { - PERCENT49=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_template2277); if (state.failed) return retval; + PERCENT49=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_template2278); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PERCENT.add(PERCENT49); - pushFollow(FOLLOW_tempReference_in_template2279); + pushFollow(FOLLOW_tempReference_in_template2280); tempReference50=tempReference(); state._fsp--; if (state.failed) return retval; @@ -3164,7 +3136,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 484:17: -> ^( TEMPLATE tempReference ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:485:25: ^( TEMPLATE tempReference ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:485:25: ^( TEMPLATE tempReference ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TEMPLATE, "TEMPLATE"), root_1); @@ -3181,15 +3153,15 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:11: PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:11: PERCENT LPAREN ( tempReference ( COMMA )? )+ RPAREN { - PERCENT51=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_template2339); if (state.failed) return retval; + PERCENT51=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_template2340); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PERCENT.add(PERCENT51); - LPAREN52=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_template2341); if (state.failed) return retval; + LPAREN52=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_template2342); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN52); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:26: ( tempReference ( COMMA )? )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:26: ( tempReference ( COMMA )? )+ int cnt20=0; loop20: while (true) { @@ -3201,14 +3173,14 @@ public class FTSParser extends Parser { switch (alt20) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:27: tempReference ( COMMA )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:27: tempReference ( COMMA )? { - pushFollow(FOLLOW_tempReference_in_template2344); + pushFollow(FOLLOW_tempReference_in_template2345); tempReference53=tempReference(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_tempReference.add(tempReference53.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:41: ( COMMA )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:41: ( COMMA )? int alt19=2; int LA19_0 = input.LA(1); if ( (LA19_0==COMMA) ) { @@ -3216,9 +3188,9 @@ public class FTSParser extends Parser { } switch (alt19) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:41: COMMA + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:486:41: COMMA { - COMMA54=(Token)match(input,COMMA,FOLLOW_COMMA_in_template2346); if (state.failed) return retval; + COMMA54=(Token)match(input,COMMA,FOLLOW_COMMA_in_template2347); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COMMA.add(COMMA54); } @@ -3238,7 +3210,7 @@ public class FTSParser extends Parser { cnt20++; } - RPAREN55=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_template2351); if (state.failed) return retval; + RPAREN55=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_template2352); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN55); // AST REWRITE @@ -3255,7 +3227,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 487:17: -> ^( TEMPLATE ( tempReference )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:488:25: ^( TEMPLATE ( tempReference )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:488:25: ^( TEMPLATE ( tempReference )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TEMPLATE, "TEMPLATE"), root_1); @@ -3309,7 +3281,7 @@ public class FTSParser extends Parser { // $ANTLR start "fuzzy" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:491:1: fuzzy : TILDA number -> ^( FUZZY number ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:491:1: fuzzy : TILDA number -> ^( FUZZY number ) ; public final FTSParser.fuzzy_return fuzzy() throws RecognitionException { FTSParser.fuzzy_return retval = new FTSParser.fuzzy_return(); retval.start = input.LT(1); @@ -3324,13 +3296,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_number=new RewriteRuleSubtreeStream(adaptor,"rule number"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:492:9: ( TILDA number -> ^( FUZZY number ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:493:9: TILDA number + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:492:9: ( TILDA number -> ^( FUZZY number ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:493:9: TILDA number { - TILDA56=(Token)match(input,TILDA,FOLLOW_TILDA_in_fuzzy2433); if (state.failed) return retval; + TILDA56=(Token)match(input,TILDA,FOLLOW_TILDA_in_fuzzy2434); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA56); - pushFollow(FOLLOW_number_in_fuzzy2435); + pushFollow(FOLLOW_number_in_fuzzy2436); number57=number(); state._fsp--; if (state.failed) return retval; @@ -3349,7 +3321,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 494:17: -> ^( FUZZY number ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:495:25: ^( FUZZY number ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:495:25: ^( FUZZY number ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1); @@ -3394,7 +3366,7 @@ public class FTSParser extends Parser { // $ANTLR start "slop" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:498:1: slop : TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:498:1: slop : TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ; public final FTSParser.slop_return slop() throws RecognitionException { FTSParser.slop_return retval = new FTSParser.slop_return(); retval.start = input.LT(1); @@ -3410,13 +3382,13 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_TILDA=new RewriteRuleTokenStream(adaptor,"token TILDA"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:499:9: ( TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:500:9: TILDA DECIMAL_INTEGER_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:499:9: ( TILDA DECIMAL_INTEGER_LITERAL -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:500:9: TILDA DECIMAL_INTEGER_LITERAL { - TILDA58=(Token)match(input,TILDA,FOLLOW_TILDA_in_slop2516); if (state.failed) return retval; + TILDA58=(Token)match(input,TILDA,FOLLOW_TILDA_in_slop2517); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA58); - DECIMAL_INTEGER_LITERAL59=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_slop2518); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL59=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_slop2519); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DECIMAL_INTEGER_LITERAL.add(DECIMAL_INTEGER_LITERAL59); // AST REWRITE @@ -3433,7 +3405,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 501:17: -> ^( FUZZY DECIMAL_INTEGER_LITERAL ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:502:25: ^( FUZZY DECIMAL_INTEGER_LITERAL ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:502:25: ^( FUZZY DECIMAL_INTEGER_LITERAL ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1); @@ -3478,7 +3450,7 @@ public class FTSParser extends Parser { // $ANTLR start "boost" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:505:1: boost : CARAT number -> ^( BOOST number ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:505:1: boost : CARAT number -> ^( BOOST number ) ; public final FTSParser.boost_return boost() throws RecognitionException { FTSParser.boost_return retval = new FTSParser.boost_return(); retval.start = input.LT(1); @@ -3493,13 +3465,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_number=new RewriteRuleSubtreeStream(adaptor,"rule number"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:506:9: ( CARAT number -> ^( BOOST number ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:507:9: CARAT number + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:506:9: ( CARAT number -> ^( BOOST number ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:507:9: CARAT number { - CARAT60=(Token)match(input,CARAT,FOLLOW_CARAT_in_boost2599); if (state.failed) return retval; + CARAT60=(Token)match(input,CARAT,FOLLOW_CARAT_in_boost2600); if (state.failed) return retval; if ( state.backtracking==0 ) stream_CARAT.add(CARAT60); - pushFollow(FOLLOW_number_in_boost2601); + pushFollow(FOLLOW_number_in_boost2602); number61=number(); state._fsp--; if (state.failed) return retval; @@ -3518,7 +3490,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 508:17: -> ^( BOOST number ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:509:25: ^( BOOST number ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:509:25: ^( BOOST number ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOST, "BOOST"), root_1); @@ -3563,7 +3535,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsTermOrPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:512:1: ftsTermOrPhrase : ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:512:1: ftsTermOrPhrase : ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ); public final FTSParser.ftsTermOrPhrase_return ftsTermOrPhrase() throws RecognitionException { FTSParser.ftsTermOrPhrase_return retval = new FTSParser.ftsTermOrPhrase_return(); retval.start = input.LT(1); @@ -3601,22 +3573,22 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:513:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:513:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) int alt30=4; alt30 = dfa30.predict(input); switch (alt30) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsTermOrPhrase2690); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsTermOrPhrase2691); fieldReferenceWithPrefix62=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReferenceWithPrefix.add(fieldReferenceWithPrefix62.getTree()); - COLON63=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTermOrPhrase2692); if (state.failed) return retval; + COLON63=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTermOrPhrase2693); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON63); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:515:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:515:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) int alt24=2; int LA24_0 = input.LA(1); if ( (LA24_0==FTSPHRASE) ) { @@ -3635,12 +3607,12 @@ public class FTSParser extends Parser { switch (alt24) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:17: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE64=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2720); if (state.failed) return retval; + FTSPHRASE64=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2721); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE64); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:27: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:27: ( ( slop )=> slop )? int alt22=2; int LA22_0 = input.LA(1); if ( (LA22_0==TILDA) ) { @@ -3654,9 +3626,9 @@ public class FTSParser extends Parser { } switch (alt22) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:28: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2728); + pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2729); slop65=slop(); state._fsp--; if (state.failed) return retval; @@ -3667,7 +3639,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: FTSPHRASE, fieldReferenceWithPrefix, slop + // elements: fieldReferenceWithPrefix, slop, FTSPHRASE // token labels: // rule labels: retval // token list labels: @@ -3680,13 +3652,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 517:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:517:20: ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:517:20: ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:517:64: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:517:64: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -3704,14 +3676,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:17: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2795); + pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2796); ftsWord66=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord66.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:25: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:25: ( ( fuzzy )=> fuzzy )? int alt23=2; int LA23_0 = input.LA(1); if ( (LA23_0==TILDA) ) { @@ -3731,9 +3703,9 @@ public class FTSParser extends Parser { } switch (alt23) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:26: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2804); + pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2805); fuzzy67=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -3744,7 +3716,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsWord, fuzzy, fieldReferenceWithPrefix + // elements: fuzzy, ftsWord, fieldReferenceWithPrefix // token labels: // rule labels: retval // token list labels: @@ -3757,13 +3729,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 520:17: -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:520:20: ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:520:20: ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:520:60: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:520:60: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -3786,17 +3758,17 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsTermOrPhrase2873); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsTermOrPhrase2874); fieldReferenceWithoutPrefix68=fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReferenceWithoutPrefix.add(fieldReferenceWithoutPrefix68.getTree()); - COLON69=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTermOrPhrase2875); if (state.failed) return retval; + COLON69=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTermOrPhrase2876); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON69); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:524:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:524:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) int alt27=2; int LA27_0 = input.LA(1); if ( (LA27_0==FTSPHRASE) ) { @@ -3815,12 +3787,12 @@ public class FTSParser extends Parser { switch (alt27) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:17: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE70=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2903); if (state.failed) return retval; + FTSPHRASE70=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2904); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE70); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:27: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:27: ( ( slop )=> slop )? int alt25=2; int LA25_0 = input.LA(1); if ( (LA25_0==TILDA) ) { @@ -3834,9 +3806,9 @@ public class FTSParser extends Parser { } switch (alt25) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:28: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2911); + pushFollow(FOLLOW_slop_in_ftsTermOrPhrase2912); slop71=slop(); state._fsp--; if (state.failed) return retval; @@ -3860,13 +3832,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 526:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:526:20: ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:526:20: ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:526:67: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:526:67: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -3884,14 +3856,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:17: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2978); + pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase2979); ftsWord72=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord72.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:25: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:25: ( ( fuzzy )=> fuzzy )? int alt26=2; int LA26_0 = input.LA(1); if ( (LA26_0==TILDA) ) { @@ -3911,9 +3883,9 @@ public class FTSParser extends Parser { } switch (alt26) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:26: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2987); + pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase2988); fuzzy73=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -3924,7 +3896,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fuzzy, ftsWord, fieldReferenceWithoutPrefix + // elements: ftsWord, fuzzy, fieldReferenceWithoutPrefix // token labels: // rule labels: retval // token list labels: @@ -3937,13 +3909,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 529:17: -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:529:20: ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:529:20: ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:529:63: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:529:63: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -3966,12 +3938,12 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:9: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:9: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE74=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase3048); if (state.failed) return retval; + FTSPHRASE74=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTermOrPhrase3049); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE74); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:19: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:19: ( ( slop )=> slop )? int alt28=2; int LA28_0 = input.LA(1); if ( (LA28_0==TILDA) ) { @@ -3985,9 +3957,9 @@ public class FTSParser extends Parser { } switch (alt28) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:20: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:20: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTermOrPhrase3056); + pushFollow(FOLLOW_slop_in_ftsTermOrPhrase3057); slop75=slop(); state._fsp--; if (state.failed) return retval; @@ -4011,12 +3983,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 533:17: -> ^( PHRASE FTSPHRASE ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:533:20: ^( PHRASE FTSPHRASE ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:533:20: ^( PHRASE FTSPHRASE ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:533:39: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:533:39: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4034,14 +4006,14 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:9: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:9: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase3106); + pushFollow(FOLLOW_ftsWord_in_ftsTermOrPhrase3107); ftsWord76=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord76.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:17: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:17: ( ( fuzzy )=> fuzzy )? int alt29=2; int LA29_0 = input.LA(1); if ( (LA29_0==TILDA) ) { @@ -4061,9 +4033,9 @@ public class FTSParser extends Parser { } switch (alt29) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:18: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:18: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase3115); + pushFollow(FOLLOW_fuzzy_in_ftsTermOrPhrase3116); fuzzy77=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -4087,12 +4059,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 536:17: -> ^( TERM ftsWord ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:536:20: ^( TERM ftsWord ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:536:20: ^( TERM ftsWord ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:536:35: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:536:35: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4140,7 +4112,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsExactTermOrPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:540:1: ftsExactTermOrPhrase : EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:540:1: ftsExactTermOrPhrase : EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ; public final FTSParser.ftsExactTermOrPhrase_return ftsExactTermOrPhrase() throws RecognitionException { FTSParser.ftsExactTermOrPhrase_return retval = new FTSParser.ftsExactTermOrPhrase_return(); retval.start = input.LT(1); @@ -4181,28 +4153,28 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:541:9: ( EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:542:9: EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:541:9: ( EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:542:9: EQUALS ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) { - EQUALS78=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsExactTermOrPhrase3194); if (state.failed) return retval; + EQUALS78=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsExactTermOrPhrase3195); if (state.failed) return retval; if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS78); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:543:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:543:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord ( fuzzy )? ) ) int alt39=4; alt39 = dfa39.predict(input); switch (alt39) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsExactTermOrPhrase3222); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsExactTermOrPhrase3223); fieldReferenceWithPrefix79=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReferenceWithPrefix.add(fieldReferenceWithPrefix79.getTree()); - COLON80=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3224); if (state.failed) return retval; + COLON80=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3225); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON80); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:545:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:545:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) int alt33=2; int LA33_0 = input.LA(1); if ( (LA33_0==FTSPHRASE) ) { @@ -4221,12 +4193,12 @@ public class FTSParser extends Parser { switch (alt33) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:17: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE81=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3252); if (state.failed) return retval; + FTSPHRASE81=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3253); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE81); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:27: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:27: ( ( slop )=> slop )? int alt31=2; int LA31_0 = input.LA(1); if ( (LA31_0==TILDA) ) { @@ -4240,9 +4212,9 @@ public class FTSParser extends Parser { } switch (alt31) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:28: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3260); + pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3261); slop82=slop(); state._fsp--; if (state.failed) return retval; @@ -4253,7 +4225,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fieldReferenceWithPrefix, FTSPHRASE, slop + // elements: slop, fieldReferenceWithPrefix, FTSPHRASE // token labels: // rule labels: retval // token list labels: @@ -4266,13 +4238,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 547:17: -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:547:20: ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:547:20: ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_PHRASE, "EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:547:70: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:547:70: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4290,14 +4262,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:17: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3327); + pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3328); ftsWord83=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord83.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:25: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:25: ( ( fuzzy )=> fuzzy )? int alt32=2; int LA32_0 = input.LA(1); if ( (LA32_0==TILDA) ) { @@ -4317,9 +4289,9 @@ public class FTSParser extends Parser { } switch (alt32) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:26: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3336); + pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3337); fuzzy84=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -4330,7 +4302,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fuzzy, ftsWord, fieldReferenceWithPrefix + // elements: ftsWord, fieldReferenceWithPrefix, fuzzy // token labels: // rule labels: retval // token list labels: @@ -4343,13 +4315,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 550:17: -> ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:550:20: ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:550:20: ^( EXACT_TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_TERM, "EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:550:66: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:550:66: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4372,17 +4344,17 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsExactTermOrPhrase3405); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsExactTermOrPhrase3406); fieldReferenceWithoutPrefix85=fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReferenceWithoutPrefix.add(fieldReferenceWithoutPrefix85.getTree()); - COLON86=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3407); if (state.failed) return retval; + COLON86=(Token)match(input,COLON,FOLLOW_COLON_in_ftsExactTermOrPhrase3408); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON86); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:554:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:554:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) int alt36=2; int LA36_0 = input.LA(1); if ( (LA36_0==FTSPHRASE) ) { @@ -4401,12 +4373,12 @@ public class FTSParser extends Parser { switch (alt36) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:17: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE87=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3435); if (state.failed) return retval; + FTSPHRASE87=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3436); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE87); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:27: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:27: ( ( slop )=> slop )? int alt34=2; int LA34_0 = input.LA(1); if ( (LA34_0==TILDA) ) { @@ -4420,9 +4392,9 @@ public class FTSParser extends Parser { } switch (alt34) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:28: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3443); + pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3444); slop88=slop(); state._fsp--; if (state.failed) return retval; @@ -4433,7 +4405,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: FTSPHRASE, slop, fieldReferenceWithoutPrefix + // elements: slop, fieldReferenceWithoutPrefix, FTSPHRASE // token labels: // rule labels: retval // token list labels: @@ -4446,13 +4418,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 556:17: -> ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:556:20: ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:556:20: ^( EXACT_PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_PHRASE, "EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:556:73: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:556:73: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4470,14 +4442,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:17: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3510); + pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3511); ftsWord89=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord89.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:25: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:25: ( ( fuzzy )=> fuzzy )? int alt35=2; int LA35_0 = input.LA(1); if ( (LA35_0==TILDA) ) { @@ -4497,9 +4469,9 @@ public class FTSParser extends Parser { } switch (alt35) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:26: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3519); + pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3520); fuzzy90=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -4523,13 +4495,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 559:17: -> ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:559:20: ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:559:20: ^( EXACT_TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_TERM, "EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:559:69: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:559:69: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4552,12 +4524,12 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:9: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:9: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE91=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3580); if (state.failed) return retval; + FTSPHRASE91=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3581); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE91); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:19: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:19: ( ( slop )=> slop )? int alt37=2; int LA37_0 = input.LA(1); if ( (LA37_0==TILDA) ) { @@ -4571,9 +4543,9 @@ public class FTSParser extends Parser { } switch (alt37) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:20: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:20: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3588); + pushFollow(FOLLOW_slop_in_ftsExactTermOrPhrase3589); slop92=slop(); state._fsp--; if (state.failed) return retval; @@ -4584,7 +4556,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: slop, FTSPHRASE + // elements: FTSPHRASE, slop // token labels: // rule labels: retval // token list labels: @@ -4597,12 +4569,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 563:17: -> ^( EXACT_PHRASE FTSPHRASE ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:563:20: ^( EXACT_PHRASE FTSPHRASE ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:563:20: ^( EXACT_PHRASE FTSPHRASE ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_PHRASE, "EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:563:45: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:563:45: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4620,14 +4592,14 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:9: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:9: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3638); + pushFollow(FOLLOW_ftsWord_in_ftsExactTermOrPhrase3639); ftsWord93=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord93.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:17: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:17: ( ( fuzzy )=> fuzzy )? int alt38=2; int LA38_0 = input.LA(1); if ( (LA38_0==TILDA) ) { @@ -4647,9 +4619,9 @@ public class FTSParser extends Parser { } switch (alt38) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:18: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:18: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3647); + pushFollow(FOLLOW_fuzzy_in_ftsExactTermOrPhrase3648); fuzzy94=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -4660,7 +4632,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fuzzy, ftsWord + // elements: ftsWord, fuzzy // token labels: // rule labels: retval // token list labels: @@ -4673,12 +4645,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 566:17: -> ^( EXACT_TERM ftsWord ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:566:20: ^( EXACT_TERM ftsWord ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:566:20: ^( EXACT_TERM ftsWord ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXACT_TERM, "EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:566:41: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:566:41: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4729,7 +4701,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsTokenisedTermOrPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:571:1: ftsTokenisedTermOrPhrase : TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:571:1: ftsTokenisedTermOrPhrase : TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ; public final FTSParser.ftsTokenisedTermOrPhrase_return ftsTokenisedTermOrPhrase() throws RecognitionException { FTSParser.ftsTokenisedTermOrPhrase_return retval = new FTSParser.ftsTokenisedTermOrPhrase_return(); retval.start = input.LT(1); @@ -4770,28 +4742,28 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:572:9: ( TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:573:9: TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:572:9: ( TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:573:9: TILDA ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) { - TILDA95=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3728); if (state.failed) return retval; + TILDA95=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3729); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA95); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:574:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:574:9: ( ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) | ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) | FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord ( fuzzy )? ) ) int alt48=4; alt48 = dfa48.predict(input); switch (alt48) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:9: ( fieldReferenceWithPrefix COLON )=> fieldReferenceWithPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsTokenisedTermOrPhrase3756); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_ftsTokenisedTermOrPhrase3757); fieldReferenceWithPrefix96=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReferenceWithPrefix.add(fieldReferenceWithPrefix96.getTree()); - COLON97=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3758); if (state.failed) return retval; + COLON97=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3759); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON97); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:576:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:576:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) ) int alt42=2; int LA42_0 = input.LA(1); if ( (LA42_0==FTSPHRASE) ) { @@ -4810,12 +4782,12 @@ public class FTSParser extends Parser { switch (alt42) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:17: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE98=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3786); if (state.failed) return retval; + FTSPHRASE98=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3787); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE98); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:27: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:27: ( ( slop )=> slop )? int alt40=2; int LA40_0 = input.LA(1); if ( (LA40_0==TILDA) ) { @@ -4829,9 +4801,9 @@ public class FTSParser extends Parser { } switch (alt40) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:28: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3794); + pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3795); slop99=slop(); state._fsp--; if (state.failed) return retval; @@ -4855,13 +4827,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 578:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:578:20: ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:578:20: ^( PHRASE FTSPHRASE fieldReferenceWithPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:578:64: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:578:64: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -4879,14 +4851,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:17: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3861); + pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3862); ftsWord100=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord100.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:25: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:25: ( ( fuzzy )=> fuzzy )? int alt41=2; int LA41_0 = input.LA(1); if ( (LA41_0==TILDA) ) { @@ -4906,9 +4878,9 @@ public class FTSParser extends Parser { } switch (alt41) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:26: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3870); + pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3871); fuzzy101=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -4919,7 +4891,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsWord, fieldReferenceWithPrefix, fuzzy + // elements: fieldReferenceWithPrefix, fuzzy, ftsWord // token labels: // rule labels: retval // token list labels: @@ -4932,13 +4904,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 581:17: -> ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:581:20: ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:581:20: ^( TERM ftsWord fieldReferenceWithPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); adaptor.addChild(root_1, stream_fieldReferenceWithPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:581:60: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:581:60: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -4961,17 +4933,17 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:9: ( fieldReferenceWithoutPrefix COLON )=> fieldReferenceWithoutPrefix COLON ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) { - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsTokenisedTermOrPhrase3939); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_ftsTokenisedTermOrPhrase3940); fieldReferenceWithoutPrefix102=fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReferenceWithoutPrefix.add(fieldReferenceWithoutPrefix102.getTree()); - COLON103=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3941); if (state.failed) return retval; + COLON103=(Token)match(input,COLON,FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3942); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON103); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:585:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:585:9: ( FTSPHRASE ( ( slop )=> slop )? -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) | ftsWord ( ( fuzzy )=> fuzzy )? -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) ) int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0==FTSPHRASE) ) { @@ -4990,12 +4962,12 @@ public class FTSParser extends Parser { switch (alt45) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:17: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:17: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE104=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3969); if (state.failed) return retval; + FTSPHRASE104=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3970); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE104); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:27: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:27: ( ( slop )=> slop )? int alt43=2; int LA43_0 = input.LA(1); if ( (LA43_0==TILDA) ) { @@ -5009,9 +4981,9 @@ public class FTSParser extends Parser { } switch (alt43) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:28: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:28: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3977); + pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase3978); slop105=slop(); state._fsp--; if (state.failed) return retval; @@ -5022,7 +4994,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fieldReferenceWithoutPrefix, FTSPHRASE, slop + // elements: slop, FTSPHRASE, fieldReferenceWithoutPrefix // token labels: // rule labels: retval // token list labels: @@ -5035,13 +5007,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 587:17: -> ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:587:20: ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:587:20: ^( PHRASE FTSPHRASE fieldReferenceWithoutPrefix ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:587:67: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:587:67: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -5059,14 +5031,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:17: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:17: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4044); + pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4045); ftsWord106=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord106.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:25: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:25: ( ( fuzzy )=> fuzzy )? int alt44=2; int LA44_0 = input.LA(1); if ( (LA44_0==TILDA) ) { @@ -5086,9 +5058,9 @@ public class FTSParser extends Parser { } switch (alt44) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:26: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:26: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4053); + pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4054); fuzzy107=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -5112,13 +5084,13 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 590:17: -> ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:590:20: ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:590:20: ^( TERM ftsWord fieldReferenceWithoutPrefix ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); adaptor.addChild(root_1, stream_fieldReferenceWithoutPrefix.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:590:63: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:590:63: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -5141,12 +5113,12 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:9: FTSPHRASE ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:9: FTSPHRASE ( ( slop )=> slop )? { - FTSPHRASE108=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase4114); if (state.failed) return retval; + FTSPHRASE108=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase4115); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE108); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:19: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:19: ( ( slop )=> slop )? int alt46=2; int LA46_0 = input.LA(1); if ( (LA46_0==TILDA) ) { @@ -5160,9 +5132,9 @@ public class FTSParser extends Parser { } switch (alt46) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:20: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:20: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase4122); + pushFollow(FOLLOW_slop_in_ftsTokenisedTermOrPhrase4123); slop109=slop(); state._fsp--; if (state.failed) return retval; @@ -5173,7 +5145,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: slop, FTSPHRASE + // elements: FTSPHRASE, slop // token labels: // rule labels: retval // token list labels: @@ -5186,12 +5158,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 594:17: -> ^( PHRASE FTSPHRASE ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:594:20: ^( PHRASE FTSPHRASE ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:594:20: ^( PHRASE FTSPHRASE ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PHRASE, "PHRASE"), root_1); adaptor.addChild(root_1, stream_FTSPHRASE.nextNode()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:594:39: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:594:39: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -5209,14 +5181,14 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:9: ftsWord ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:9: ftsWord ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4172); + pushFollow(FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4173); ftsWord110=ftsWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsWord.add(ftsWord110.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:17: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:17: ( ( fuzzy )=> fuzzy )? int alt47=2; int LA47_0 = input.LA(1); if ( (LA47_0==TILDA) ) { @@ -5236,9 +5208,9 @@ public class FTSParser extends Parser { } switch (alt47) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:18: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:18: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4181); + pushFollow(FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4182); fuzzy111=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -5249,7 +5221,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fuzzy, ftsWord + // elements: ftsWord, fuzzy // token labels: // rule labels: retval // token list labels: @@ -5262,12 +5234,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 597:17: -> ^( TERM ftsWord ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:597:20: ^( TERM ftsWord ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:597:20: ^( TERM ftsWord ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM, "TERM"), root_1); adaptor.addChild(root_1, stream_ftsWord.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:597:35: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:597:35: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -5318,7 +5290,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisTerm" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:602:1: cmisTerm : ftsWord -> ftsWord ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:602:1: cmisTerm : ftsWord -> ftsWord ; public final FTSParser.cmisTerm_return cmisTerm() throws RecognitionException { FTSParser.cmisTerm_return retval = new FTSParser.cmisTerm_return(); retval.start = input.LT(1); @@ -5330,10 +5302,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsWord=new RewriteRuleSubtreeStream(adaptor,"rule ftsWord"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:603:9: ( ftsWord -> ftsWord ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:604:9: ftsWord + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:603:9: ( ftsWord -> ftsWord ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:604:9: ftsWord { - pushFollow(FOLLOW_ftsWord_in_cmisTerm4254); + pushFollow(FOLLOW_ftsWord_in_cmisTerm4255); ftsWord112=ftsWord(); state._fsp--; if (state.failed) return retval; @@ -5390,7 +5362,7 @@ public class FTSParser extends Parser { // $ANTLR start "cmisPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:609:1: cmisPhrase : FTSPHRASE -> FTSPHRASE ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:609:1: cmisPhrase : FTSPHRASE -> FTSPHRASE ; public final FTSParser.cmisPhrase_return cmisPhrase() throws RecognitionException { FTSParser.cmisPhrase_return retval = new FTSParser.cmisPhrase_return(); retval.start = input.LT(1); @@ -5403,10 +5375,10 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_FTSPHRASE=new RewriteRuleTokenStream(adaptor,"token FTSPHRASE"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:610:9: ( FTSPHRASE -> FTSPHRASE ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:611:9: FTSPHRASE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:610:9: ( FTSPHRASE -> FTSPHRASE ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:611:9: FTSPHRASE { - FTSPHRASE113=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_cmisPhrase4308); if (state.failed) return retval; + FTSPHRASE113=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_cmisPhrase4309); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FTSPHRASE.add(FTSPHRASE113); // AST REWRITE @@ -5461,7 +5433,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsRange" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:616:1: ftsRange : ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:616:1: ftsRange : ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ; public final FTSParser.ftsRange_return ftsRange() throws RecognitionException { FTSParser.ftsRange_return retval = new FTSParser.ftsRange_return(); retval.start = input.LT(1); @@ -5478,10 +5450,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:617:9: ( ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:9: ( fieldReference COLON )? ftsFieldGroupRange + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:617:9: ( ( fieldReference COLON )? ftsFieldGroupRange -> ftsFieldGroupRange ( fieldReference )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:9: ( fieldReference COLON )? ftsFieldGroupRange { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:9: ( fieldReference COLON )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:9: ( fieldReference COLON )? int alt49=2; switch ( input.LA(1) ) { case AND: @@ -5559,14 +5531,14 @@ public class FTSParser extends Parser { } switch (alt49) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:10: fieldReference COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:618:10: fieldReference COLON { - pushFollow(FOLLOW_fieldReference_in_ftsRange4363); + pushFollow(FOLLOW_fieldReference_in_ftsRange4364); fieldReference114=fieldReference(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference114.getTree()); - COLON115=(Token)match(input,COLON,FOLLOW_COLON_in_ftsRange4365); if (state.failed) return retval; + COLON115=(Token)match(input,COLON,FOLLOW_COLON_in_ftsRange4366); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON115); } @@ -5574,7 +5546,7 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsRange4369); + pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsRange4370); ftsFieldGroupRange116=ftsFieldGroupRange(); state._fsp--; if (state.failed) return retval; @@ -5594,7 +5566,7 @@ public class FTSParser extends Parser { // 619:17: -> ftsFieldGroupRange ( fieldReference )? { adaptor.addChild(root_0, stream_ftsFieldGroupRange.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:619:39: ( fieldReference )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:619:39: ( fieldReference )? if ( stream_fieldReference.hasNext() ) { adaptor.addChild(root_0, stream_fieldReference.nextTree()); } @@ -5637,7 +5609,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroup" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:622:1: ftsFieldGroup : fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:622:1: ftsFieldGroup : fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ; public final FTSParser.ftsFieldGroup_return ftsFieldGroup() throws RecognitionException { FTSParser.ftsFieldGroup_return retval = new FTSParser.ftsFieldGroup_return(); retval.start = input.LT(1); @@ -5660,26 +5632,26 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_fieldReference=new RewriteRuleSubtreeStream(adaptor,"rule fieldReference"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:623:9: ( fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:624:9: fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:623:9: ( fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:624:9: fieldReference COLON LPAREN ftsFieldGroupDisjunction RPAREN { - pushFollow(FOLLOW_fieldReference_in_ftsFieldGroup4425); + pushFollow(FOLLOW_fieldReference_in_ftsFieldGroup4426); fieldReference117=fieldReference(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_fieldReference.add(fieldReference117.getTree()); - COLON118=(Token)match(input,COLON,FOLLOW_COLON_in_ftsFieldGroup4427); if (state.failed) return retval; + COLON118=(Token)match(input,COLON,FOLLOW_COLON_in_ftsFieldGroup4428); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON118); - LPAREN119=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroup4429); if (state.failed) return retval; + LPAREN119=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroup4430); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN119); - pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup4431); + pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup4432); ftsFieldGroupDisjunction120=ftsFieldGroupDisjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupDisjunction.add(ftsFieldGroupDisjunction120.getTree()); - RPAREN121=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroup4433); if (state.failed) return retval; + RPAREN121=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroup4434); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN121); // AST REWRITE @@ -5696,7 +5668,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 625:17: -> ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:626:25: ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:626:25: ^( FIELD_GROUP fieldReference ftsFieldGroupDisjunction ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_GROUP, "FIELD_GROUP"), root_1); @@ -5742,7 +5714,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:629:1: ftsFieldGroupDisjunction : ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:629:1: ftsFieldGroupDisjunction : ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ); public final FTSParser.ftsFieldGroupDisjunction_return ftsFieldGroupDisjunction() throws RecognitionException { FTSParser.ftsFieldGroupDisjunction_return retval = new FTSParser.ftsFieldGroupDisjunction_return(); retval.start = input.LT(1); @@ -5754,7 +5726,7 @@ public class FTSParser extends Parser { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:630:9: ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:630:9: ({...}? ftsFieldGroupExplicitDisjunction |{...}? ftsFieldGroupImplicitDisjunction ) int alt50=2; switch ( input.LA(1) ) { case AMP: @@ -6352,7 +6324,7 @@ public class FTSParser extends Parser { } switch (alt50) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:631:9: {...}? ftsFieldGroupExplicitDisjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:631:9: {...}? ftsFieldGroupExplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -6361,7 +6333,7 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsFieldGroupDisjunction", "defaultFieldConjunction() == true"); } - pushFollow(FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction4518); + pushFollow(FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction4519); ftsFieldGroupExplicitDisjunction122=ftsFieldGroupExplicitDisjunction(); state._fsp--; if (state.failed) return retval; @@ -6370,7 +6342,7 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:632:11: {...}? ftsFieldGroupImplicitDisjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:632:11: {...}? ftsFieldGroupImplicitDisjunction { root_0 = (Object)adaptor.nil(); @@ -6379,7 +6351,7 @@ public class FTSParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ftsFieldGroupDisjunction", "defaultFieldConjunction() == false"); } - pushFollow(FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction4532); + pushFollow(FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction4533); ftsFieldGroupImplicitDisjunction123=ftsFieldGroupImplicitDisjunction(); state._fsp--; if (state.failed) return retval; @@ -6418,7 +6390,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExplicitDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:635:1: ftsFieldGroupExplicitDisjunction : ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:635:1: ftsFieldGroupExplicitDisjunction : ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ; public final FTSParser.ftsFieldGroupExplicitDisjunction_return ftsFieldGroupExplicitDisjunction() throws RecognitionException { FTSParser.ftsFieldGroupExplicitDisjunction_return retval = new FTSParser.ftsFieldGroupExplicitDisjunction_return(); retval.start = input.LT(1); @@ -6433,15 +6405,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_or=new RewriteRuleSubtreeStream(adaptor,"rule or"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:636:9: ( ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:9: ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:636:9: ( ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:9: ftsFieldGroupImplicitConjunction ( or ftsFieldGroupImplicitConjunction )* { - pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4565); + pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4566); ftsFieldGroupImplicitConjunction124=ftsFieldGroupImplicitConjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupImplicitConjunction.add(ftsFieldGroupImplicitConjunction124.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:42: ( or ftsFieldGroupImplicitConjunction )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:42: ( or ftsFieldGroupImplicitConjunction )* loop51: while (true) { int alt51=2; @@ -6452,14 +6424,14 @@ public class FTSParser extends Parser { switch (alt51) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:43: or ftsFieldGroupImplicitConjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:637:43: or ftsFieldGroupImplicitConjunction { - pushFollow(FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4568); + pushFollow(FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4569); or125=or(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_or.add(or125.getTree()); - pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4570); + pushFollow(FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4571); ftsFieldGroupImplicitConjunction126=ftsFieldGroupImplicitConjunction(); state._fsp--; if (state.failed) return retval; @@ -6486,7 +6458,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 638:17: -> ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:639:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:639:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupImplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DISJUNCTION, "FIELD_DISJUNCTION"), root_1); @@ -6538,7 +6510,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupImplicitDisjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:642:1: ftsFieldGroupImplicitDisjunction : ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:642:1: ftsFieldGroupImplicitDisjunction : ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ; public final FTSParser.ftsFieldGroupImplicitDisjunction_return ftsFieldGroupImplicitDisjunction() throws RecognitionException { FTSParser.ftsFieldGroupImplicitDisjunction_return retval = new FTSParser.ftsFieldGroupImplicitDisjunction_return(); retval.start = input.LT(1); @@ -6552,10 +6524,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroupExplicitConjunction=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupExplicitConjunction"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:643:9: ( ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:643:9: ( ( ( or )? ftsFieldGroupExplicitConjunction )+ -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:9: ( ( or )? ftsFieldGroupExplicitConjunction )+ int cnt53=0; loop53: while (true) { @@ -6567,9 +6539,9 @@ public class FTSParser extends Parser { switch (alt53) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: ( or )? ftsFieldGroupExplicitConjunction + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: ( or )? ftsFieldGroupExplicitConjunction { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: ( or )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: ( or )? int alt52=2; int LA52_0 = input.LA(1); if ( (LA52_0==OR) ) { @@ -6583,9 +6555,9 @@ public class FTSParser extends Parser { } switch (alt52) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: or + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:644:10: or { - pushFollow(FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4655); + pushFollow(FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4656); or127=or(); state._fsp--; if (state.failed) return retval; @@ -6595,7 +6567,7 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4658); + pushFollow(FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4659); ftsFieldGroupExplicitConjunction128=ftsFieldGroupExplicitConjunction(); state._fsp--; if (state.failed) return retval; @@ -6626,7 +6598,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 645:17: -> ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:646:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:646:25: ^( FIELD_DISJUNCTION ( ftsFieldGroupExplicitConjunction )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DISJUNCTION, "FIELD_DISJUNCTION"), root_1); @@ -6678,7 +6650,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExplicitConjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:653:1: ftsFieldGroupExplicitConjunction : ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:653:1: ftsFieldGroupExplicitConjunction : ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; public final FTSParser.ftsFieldGroupExplicitConjunction_return ftsFieldGroupExplicitConjunction() throws RecognitionException { FTSParser.ftsFieldGroupExplicitConjunction_return retval = new FTSParser.ftsFieldGroupExplicitConjunction_return(); retval.start = input.LT(1); @@ -6693,15 +6665,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_and=new RewriteRuleSubtreeStream(adaptor,"rule and"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:654:9: ( ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:9: ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:654:9: ( ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:9: ftsFieldGroupPrefixed ( and ftsFieldGroupPrefixed )* { - pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4745); + pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4746); ftsFieldGroupPrefixed129=ftsFieldGroupPrefixed(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupPrefixed.add(ftsFieldGroupPrefixed129.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:31: ( and ftsFieldGroupPrefixed )* + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:31: ( and ftsFieldGroupPrefixed )* loop54: while (true) { int alt54=2; @@ -6712,14 +6684,14 @@ public class FTSParser extends Parser { switch (alt54) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:32: and ftsFieldGroupPrefixed + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:655:32: and ftsFieldGroupPrefixed { - pushFollow(FOLLOW_and_in_ftsFieldGroupExplicitConjunction4748); + pushFollow(FOLLOW_and_in_ftsFieldGroupExplicitConjunction4749); and130=and(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_and.add(and130.getTree()); - pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4750); + pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4751); ftsFieldGroupPrefixed131=ftsFieldGroupPrefixed(); state._fsp--; if (state.failed) return retval; @@ -6746,7 +6718,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 656:17: -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:657:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:657:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_CONJUNCTION, "FIELD_CONJUNCTION"), root_1); @@ -6798,7 +6770,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupImplicitConjunction" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:660:1: ftsFieldGroupImplicitConjunction : ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:660:1: ftsFieldGroupImplicitConjunction : ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ; public final FTSParser.ftsFieldGroupImplicitConjunction_return ftsFieldGroupImplicitConjunction() throws RecognitionException { FTSParser.ftsFieldGroupImplicitConjunction_return retval = new FTSParser.ftsFieldGroupImplicitConjunction_return(); retval.start = input.LT(1); @@ -6812,10 +6784,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_and=new RewriteRuleSubtreeStream(adaptor,"rule and"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:661:9: ( ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:9: ( ( and )? ftsFieldGroupPrefixed )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:661:9: ( ( ( and )? ftsFieldGroupPrefixed )+ -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:9: ( ( and )? ftsFieldGroupPrefixed )+ { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:9: ( ( and )? ftsFieldGroupPrefixed )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:9: ( ( and )? ftsFieldGroupPrefixed )+ int cnt56=0; loop56: while (true) { @@ -6834,9 +6806,9 @@ public class FTSParser extends Parser { switch (alt56) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: ( and )? ftsFieldGroupPrefixed + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: ( and )? ftsFieldGroupPrefixed { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: ( and )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: ( and )? int alt55=2; int LA55_0 = input.LA(1); if ( ((LA55_0 >= AMP && LA55_0 <= AND)) ) { @@ -6844,9 +6816,9 @@ public class FTSParser extends Parser { } switch (alt55) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: and + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:662:10: and { - pushFollow(FOLLOW_and_in_ftsFieldGroupImplicitConjunction4835); + pushFollow(FOLLOW_and_in_ftsFieldGroupImplicitConjunction4836); and132=and(); state._fsp--; if (state.failed) return retval; @@ -6856,7 +6828,7 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4838); + pushFollow(FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4839); ftsFieldGroupPrefixed133=ftsFieldGroupPrefixed(); state._fsp--; if (state.failed) return retval; @@ -6887,7 +6859,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 663:17: -> ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:664:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:664:25: ^( FIELD_CONJUNCTION ( ftsFieldGroupPrefixed )+ ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_CONJUNCTION, "FIELD_CONJUNCTION"), root_1); @@ -6939,7 +6911,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupPrefixed" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:667:1: ftsFieldGroupPrefixed : ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:667:1: ftsFieldGroupPrefixed : ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ); public final FTSParser.ftsFieldGroupPrefixed_return ftsFieldGroupPrefixed() throws RecognitionException { FTSParser.ftsFieldGroupPrefixed_return retval = new FTSParser.ftsFieldGroupPrefixed_return(); retval.start = input.LT(1); @@ -6972,7 +6944,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_boost=new RewriteRuleSubtreeStream(adaptor,"rule boost"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:668:9: ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:668:9: ( ( not )=> not ftsFieldGroupTest ( boost )? -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) | ftsFieldGroupTest ( boost )? -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) | PLUS ftsFieldGroupTest ( boost )? -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) | BAR ftsFieldGroupTest ( boost )? -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) | MINUS ftsFieldGroupTest ( boost )? -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) ) int alt62=5; int LA62_0 = input.LA(1); if ( (LA62_0==NOT) ) { @@ -7010,19 +6982,19 @@ public class FTSParser extends Parser { switch (alt62) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:9: ( not )=> not ftsFieldGroupTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:9: ( not )=> not ftsFieldGroupTest ( boost )? { - pushFollow(FOLLOW_not_in_ftsFieldGroupPrefixed4928); + pushFollow(FOLLOW_not_in_ftsFieldGroupPrefixed4929); not134=not(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_not.add(not134.getTree()); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4930); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4931); ftsFieldGroupTest135=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest135.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:40: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:40: ( boost )? int alt57=2; int LA57_0 = input.LA(1); if ( (LA57_0==CARAT) ) { @@ -7030,9 +7002,9 @@ public class FTSParser extends Parser { } switch (alt57) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:40: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:40: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4932); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4933); boost136=boost(); state._fsp--; if (state.failed) return retval; @@ -7043,7 +7015,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: boost, ftsFieldGroupTest + // elements: ftsFieldGroupTest, boost // token labels: // rule labels: retval // token list labels: @@ -7056,12 +7028,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 670:17: -> ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:671:25: ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:671:25: ^( FIELD_NEGATION ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_NEGATION, "FIELD_NEGATION"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:671:60: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:671:60: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7079,14 +7051,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:11: ftsFieldGroupTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:11: ftsFieldGroupTest ( boost )? { - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4996); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4997); ftsFieldGroupTest137=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest137.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:29: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:29: ( boost )? int alt58=2; int LA58_0 = input.LA(1); if ( (LA58_0==CARAT) ) { @@ -7094,9 +7066,9 @@ public class FTSParser extends Parser { } switch (alt58) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:29: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:672:29: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4998); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed4999); boost138=boost(); state._fsp--; if (state.failed) return retval; @@ -7107,7 +7079,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsFieldGroupTest, boost + // elements: boost, ftsFieldGroupTest // token labels: // rule labels: retval // token list labels: @@ -7120,12 +7092,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 673:17: -> ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:674:25: ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:674:25: ^( FIELD_DEFAULT ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DEFAULT, "FIELD_DEFAULT"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:674:59: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:674:59: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7143,17 +7115,17 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:11: PLUS ftsFieldGroupTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:11: PLUS ftsFieldGroupTest ( boost )? { - PLUS139=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsFieldGroupPrefixed5062); if (state.failed) return retval; + PLUS139=(Token)match(input,PLUS,FOLLOW_PLUS_in_ftsFieldGroupPrefixed5063); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PLUS.add(PLUS139); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5064); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5065); ftsFieldGroupTest140=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest140.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:34: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:34: ( boost )? int alt59=2; int LA59_0 = input.LA(1); if ( (LA59_0==CARAT) ) { @@ -7161,9 +7133,9 @@ public class FTSParser extends Parser { } switch (alt59) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:34: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:675:34: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5066); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5067); boost141=boost(); state._fsp--; if (state.failed) return retval; @@ -7174,7 +7146,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsFieldGroupTest, boost + // elements: boost, ftsFieldGroupTest // token labels: // rule labels: retval // token list labels: @@ -7187,12 +7159,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 676:17: -> ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:677:25: ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:677:25: ^( FIELD_MANDATORY ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_MANDATORY, "FIELD_MANDATORY"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:677:61: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:677:61: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7210,17 +7182,17 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:11: BAR ftsFieldGroupTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:11: BAR ftsFieldGroupTest ( boost )? { - BAR142=(Token)match(input,BAR,FOLLOW_BAR_in_ftsFieldGroupPrefixed5130); if (state.failed) return retval; + BAR142=(Token)match(input,BAR,FOLLOW_BAR_in_ftsFieldGroupPrefixed5131); if (state.failed) return retval; if ( state.backtracking==0 ) stream_BAR.add(BAR142); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5132); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5133); ftsFieldGroupTest143=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest143.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:33: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:33: ( boost )? int alt60=2; int LA60_0 = input.LA(1); if ( (LA60_0==CARAT) ) { @@ -7228,9 +7200,9 @@ public class FTSParser extends Parser { } switch (alt60) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:33: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:678:33: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5134); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5135); boost144=boost(); state._fsp--; if (state.failed) return retval; @@ -7254,12 +7226,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 679:17: -> ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:680:25: ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:680:25: ^( FIELD_OPTIONAL ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_OPTIONAL, "FIELD_OPTIONAL"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:680:60: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:680:60: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7277,17 +7249,17 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:11: MINUS ftsFieldGroupTest ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:11: MINUS ftsFieldGroupTest ( boost )? { - MINUS145=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsFieldGroupPrefixed5198); if (state.failed) return retval; + MINUS145=(Token)match(input,MINUS,FOLLOW_MINUS_in_ftsFieldGroupPrefixed5199); if (state.failed) return retval; if ( state.backtracking==0 ) stream_MINUS.add(MINUS145); - pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5200); + pushFollow(FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5201); ftsFieldGroupTest146=ftsFieldGroupTest(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTest.add(ftsFieldGroupTest146.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:35: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:35: ( boost )? int alt61=2; int LA61_0 = input.LA(1); if ( (LA61_0==CARAT) ) { @@ -7295,9 +7267,9 @@ public class FTSParser extends Parser { } switch (alt61) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:35: boost + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:681:35: boost { - pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5202); + pushFollow(FOLLOW_boost_in_ftsFieldGroupPrefixed5203); boost147=boost(); state._fsp--; if (state.failed) return retval; @@ -7308,7 +7280,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: boost, ftsFieldGroupTest + // elements: ftsFieldGroupTest, boost // token labels: // rule labels: retval // token list labels: @@ -7321,12 +7293,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 682:17: -> ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:683:25: ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:683:25: ^( FIELD_EXCLUDE ftsFieldGroupTest ( boost )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_EXCLUDE, "FIELD_EXCLUDE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTest.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:683:59: ( boost )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:683:59: ( boost )? if ( stream_boost.hasNext() ) { adaptor.addChild(root_1, stream_boost.nextTree()); } @@ -7374,7 +7346,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupTest" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:686:1: ftsFieldGroupTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:686:1: ftsFieldGroupTest : ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ); public final FTSParser.ftsFieldGroupTest_return ftsFieldGroupTest() throws RecognitionException { FTSParser.ftsFieldGroupTest_return retval = new FTSParser.ftsFieldGroupTest_return(); retval.start = input.LT(1); @@ -7416,14 +7388,14 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_slop=new RewriteRuleSubtreeStream(adaptor,"rule slop"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:687:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:687:9: ( ( ftsFieldGroupProximity )=> ftsFieldGroupProximity -> ^( FG_PROXIMITY ftsFieldGroupProximity ) | ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) | ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) | ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) | ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) | ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) | ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) | ( ftsFieldGroupRange )=> ftsFieldGroupRange -> ^( FG_RANGE ftsFieldGroupRange ) | LPAREN ftsFieldGroupDisjunction RPAREN -> ftsFieldGroupDisjunction ) int alt69=9; alt69 = dfa69.predict(input); switch (alt69) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:9: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:9: ( ftsFieldGroupProximity )=> ftsFieldGroupProximity { - pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest5293); + pushFollow(FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest5294); ftsFieldGroupProximity148=ftsFieldGroupProximity(); state._fsp--; if (state.failed) return retval; @@ -7442,7 +7414,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 689:17: -> ^( FG_PROXIMITY ftsFieldGroupProximity ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:690:25: ^( FG_PROXIMITY ftsFieldGroupProximity ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:690:25: ^( FG_PROXIMITY ftsFieldGroupProximity ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_PROXIMITY, "FG_PROXIMITY"), root_1); @@ -7459,14 +7431,14 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:11: ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:11: ( ftsFieldGroupTerm )=> ftsFieldGroupTerm ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest5359); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest5360); ftsFieldGroupTerm149=ftsFieldGroupTerm(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTerm.add(ftsFieldGroupTerm149.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:52: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:52: ( ( fuzzy )=> fuzzy )? int alt63=2; int LA63_0 = input.LA(1); if ( (LA63_0==TILDA) ) { @@ -7486,9 +7458,9 @@ public class FTSParser extends Parser { } switch (alt63) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:54: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:54: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5369); + pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5370); fuzzy150=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -7512,12 +7484,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 692:17: -> ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:693:25: ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:693:25: ^( FG_TERM ftsFieldGroupTerm ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_TERM, "FG_TERM"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTerm.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:693:53: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:693:53: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -7535,14 +7507,14 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:11: ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:11: ( ftsFieldGroupExactTerm )=> ftsFieldGroupExactTerm ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest5440); + pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest5441); ftsFieldGroupExactTerm151=ftsFieldGroupExactTerm(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupExactTerm.add(ftsFieldGroupExactTerm151.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:62: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:62: ( ( fuzzy )=> fuzzy )? int alt64=2; int LA64_0 = input.LA(1); if ( (LA64_0==TILDA) ) { @@ -7562,9 +7534,9 @@ public class FTSParser extends Parser { } switch (alt64) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:64: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:64: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5450); + pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5451); fuzzy152=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -7575,7 +7547,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: fuzzy, ftsFieldGroupExactTerm + // elements: ftsFieldGroupExactTerm, fuzzy // token labels: // rule labels: retval // token list labels: @@ -7588,12 +7560,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 695:17: -> ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:696:25: ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:696:25: ^( FG_EXACT_TERM ftsFieldGroupExactTerm ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_EXACT_TERM, "FG_EXACT_TERM"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupExactTerm.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:696:64: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:696:64: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -7611,14 +7583,14 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:11: ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:11: ( ftsFieldGroupPhrase )=> ftsFieldGroupPhrase ( ( slop )=> slop )? { - pushFollow(FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest5521); + pushFollow(FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest5522); ftsFieldGroupPhrase153=ftsFieldGroupPhrase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupPhrase.add(ftsFieldGroupPhrase153.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:56: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:56: ( ( slop )=> slop )? int alt65=2; int LA65_0 = input.LA(1); if ( (LA65_0==TILDA) ) { @@ -7632,9 +7604,9 @@ public class FTSParser extends Parser { } switch (alt65) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:58: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:58: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5531); + pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5532); slop154=slop(); state._fsp--; if (state.failed) return retval; @@ -7645,7 +7617,7 @@ public class FTSParser extends Parser { } // AST REWRITE - // elements: ftsFieldGroupPhrase, slop + // elements: slop, ftsFieldGroupPhrase // token labels: // rule labels: retval // token list labels: @@ -7658,12 +7630,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 698:17: -> ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:699:25: ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:699:25: ^( FG_PHRASE ftsFieldGroupPhrase ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_PHRASE, "FG_PHRASE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupPhrase.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:699:57: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:699:57: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -7681,14 +7653,14 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:11: ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:11: ( ftsFieldGroupExactPhrase )=> ftsFieldGroupExactPhrase ( ( slop )=> slop )? { - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5602); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5603); ftsFieldGroupExactPhrase155=ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupExactPhrase.add(ftsFieldGroupExactPhrase155.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:66: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:66: ( ( slop )=> slop )? int alt66=2; int LA66_0 = input.LA(1); if ( (LA66_0==TILDA) ) { @@ -7702,9 +7674,9 @@ public class FTSParser extends Parser { } switch (alt66) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:68: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:68: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5612); + pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5613); slop156=slop(); state._fsp--; if (state.failed) return retval; @@ -7728,12 +7700,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 701:17: -> ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:702:25: ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:702:25: ^( FG_EXACT_PHRASE ftsFieldGroupExactPhrase ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_EXACT_PHRASE, "FG_EXACT_PHRASE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupExactPhrase.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:702:68: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:702:68: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -7751,14 +7723,14 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:11: ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:11: ( ftsFieldGroupTokenisedPhrase )=> ftsFieldGroupTokenisedPhrase ( ( slop )=> slop )? { - pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5683); + pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5684); ftsFieldGroupTokenisedPhrase157=ftsFieldGroupTokenisedPhrase(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupTokenisedPhrase.add(ftsFieldGroupTokenisedPhrase157.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:74: ( ( slop )=> slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:74: ( ( slop )=> slop )? int alt67=2; int LA67_0 = input.LA(1); if ( (LA67_0==TILDA) ) { @@ -7772,9 +7744,9 @@ public class FTSParser extends Parser { } switch (alt67) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:76: ( slop )=> slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:76: ( slop )=> slop { - pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5693); + pushFollow(FOLLOW_slop_in_ftsFieldGroupTest5694); slop158=slop(); state._fsp--; if (state.failed) return retval; @@ -7798,12 +7770,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 704:17: -> ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:705:25: ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:705:25: ^( FG_PHRASE ftsFieldGroupTokenisedPhrase ( slop )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_PHRASE, "FG_PHRASE"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupTokenisedPhrase.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:705:66: ( slop )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:705:66: ( slop )? if ( stream_slop.hasNext() ) { adaptor.addChild(root_1, stream_slop.nextTree()); } @@ -7821,14 +7793,14 @@ public class FTSParser extends Parser { } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:11: ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:11: ( ftsFieldGroupSynonym )=> ftsFieldGroupSynonym ( ( fuzzy )=> fuzzy )? { - pushFollow(FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5764); + pushFollow(FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5765); ftsFieldGroupSynonym159=ftsFieldGroupSynonym(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupSynonym.add(ftsFieldGroupSynonym159.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:58: ( ( fuzzy )=> fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:58: ( ( fuzzy )=> fuzzy )? int alt68=2; int LA68_0 = input.LA(1); if ( (LA68_0==TILDA) ) { @@ -7848,9 +7820,9 @@ public class FTSParser extends Parser { } switch (alt68) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:60: ( fuzzy )=> fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:60: ( fuzzy )=> fuzzy { - pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5774); + pushFollow(FOLLOW_fuzzy_in_ftsFieldGroupTest5775); fuzzy160=fuzzy(); state._fsp--; if (state.failed) return retval; @@ -7874,12 +7846,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 707:17: -> ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:708:25: ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:708:25: ^( FG_SYNONYM ftsFieldGroupSynonym ( fuzzy )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_SYNONYM, "FG_SYNONYM"), root_1); adaptor.addChild(root_1, stream_ftsFieldGroupSynonym.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:708:59: ( fuzzy )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:708:59: ( fuzzy )? if ( stream_fuzzy.hasNext() ) { adaptor.addChild(root_1, stream_fuzzy.nextTree()); } @@ -7897,9 +7869,9 @@ public class FTSParser extends Parser { } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:11: ( ftsFieldGroupRange )=> ftsFieldGroupRange + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:11: ( ftsFieldGroupRange )=> ftsFieldGroupRange { - pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5845); + pushFollow(FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5846); ftsFieldGroupRange161=ftsFieldGroupRange(); state._fsp--; if (state.failed) return retval; @@ -7918,7 +7890,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 710:17: -> ^( FG_RANGE ftsFieldGroupRange ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:711:25: ^( FG_RANGE ftsFieldGroupRange ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:711:25: ^( FG_RANGE ftsFieldGroupRange ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FG_RANGE, "FG_RANGE"), root_1); @@ -7935,17 +7907,17 @@ public class FTSParser extends Parser { } break; case 9 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:712:11: LPAREN ftsFieldGroupDisjunction RPAREN + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:712:11: LPAREN ftsFieldGroupDisjunction RPAREN { - LPAREN162=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroupTest5905); if (state.failed) return retval; + LPAREN162=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ftsFieldGroupTest5906); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN162); - pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5907); + pushFollow(FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5908); ftsFieldGroupDisjunction163=ftsFieldGroupDisjunction(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupDisjunction.add(ftsFieldGroupDisjunction163.getTree()); - RPAREN164=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroupTest5909); if (state.failed) return retval; + RPAREN164=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ftsFieldGroupTest5910); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN164); // AST REWRITE @@ -8002,7 +7974,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupTerm" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:716:1: ftsFieldGroupTerm : ftsWord ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:716:1: ftsFieldGroupTerm : ftsWord ; public final FTSParser.ftsFieldGroupTerm_return ftsFieldGroupTerm() throws RecognitionException { FTSParser.ftsFieldGroupTerm_return retval = new FTSParser.ftsFieldGroupTerm_return(); retval.start = input.LT(1); @@ -8013,13 +7985,13 @@ public class FTSParser extends Parser { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:717:9: ( ftsWord ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:718:9: ftsWord + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:717:9: ( ftsWord ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:718:9: ftsWord { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWord_in_ftsFieldGroupTerm5962); + pushFollow(FOLLOW_ftsWord_in_ftsFieldGroupTerm5963); ftsWord165=ftsWord(); state._fsp--; if (state.failed) return retval; @@ -8056,7 +8028,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExactTerm" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:721:1: ftsFieldGroupExactTerm : EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:721:1: ftsFieldGroupExactTerm : EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ; public final FTSParser.ftsFieldGroupExactTerm_return ftsFieldGroupExactTerm() throws RecognitionException { FTSParser.ftsFieldGroupExactTerm_return retval = new FTSParser.ftsFieldGroupExactTerm_return(); retval.start = input.LT(1); @@ -8071,13 +8043,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroupTerm=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupTerm"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:722:9: ( EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:723:9: EQUALS ftsFieldGroupTerm + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:722:9: ( EQUALS ftsFieldGroupTerm -> ftsFieldGroupTerm ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:723:9: EQUALS ftsFieldGroupTerm { - EQUALS166=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5995); if (state.failed) return retval; + EQUALS166=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5996); if (state.failed) return retval; if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS166); - pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5997); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5998); ftsFieldGroupTerm167=ftsFieldGroupTerm(); state._fsp--; if (state.failed) return retval; @@ -8134,7 +8106,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:727:1: ftsFieldGroupPhrase : FTSPHRASE ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:727:1: ftsFieldGroupPhrase : FTSPHRASE ; public final FTSParser.ftsFieldGroupPhrase_return ftsFieldGroupPhrase() throws RecognitionException { FTSParser.ftsFieldGroupPhrase_return retval = new FTSParser.ftsFieldGroupPhrase_return(); retval.start = input.LT(1); @@ -8146,13 +8118,13 @@ public class FTSParser extends Parser { Object FTSPHRASE168_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:728:9: ( FTSPHRASE ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:729:9: FTSPHRASE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:728:9: ( FTSPHRASE ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:729:9: FTSPHRASE { root_0 = (Object)adaptor.nil(); - FTSPHRASE168=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase6050); if (state.failed) return retval; + FTSPHRASE168=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase6051); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSPHRASE168_tree = (Object)adaptor.create(FTSPHRASE168); adaptor.addChild(root_0, FTSPHRASE168_tree); @@ -8189,7 +8161,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupExactPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:732:1: ftsFieldGroupExactPhrase : EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:732:1: ftsFieldGroupExactPhrase : EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; public final FTSParser.ftsFieldGroupExactPhrase_return ftsFieldGroupExactPhrase() throws RecognitionException { FTSParser.ftsFieldGroupExactPhrase_return retval = new FTSParser.ftsFieldGroupExactPhrase_return(); retval.start = input.LT(1); @@ -8204,13 +8176,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroupExactPhrase=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupExactPhrase"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:733:9: ( EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:734:9: EQUALS ftsFieldGroupExactPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:733:9: ( EQUALS ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:734:9: EQUALS ftsFieldGroupExactPhrase { - EQUALS169=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase6091); if (state.failed) return retval; + EQUALS169=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase6092); if (state.failed) return retval; if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS169); - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase6093); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase6094); ftsFieldGroupExactPhrase170=ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return retval; @@ -8267,7 +8239,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupTokenisedPhrase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:738:1: ftsFieldGroupTokenisedPhrase : TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:738:1: ftsFieldGroupTokenisedPhrase : TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ; public final FTSParser.ftsFieldGroupTokenisedPhrase_return ftsFieldGroupTokenisedPhrase() throws RecognitionException { FTSParser.ftsFieldGroupTokenisedPhrase_return retval = new FTSParser.ftsFieldGroupTokenisedPhrase_return(); retval.start = input.LT(1); @@ -8282,13 +8254,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroupExactPhrase=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupExactPhrase"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:739:9: ( TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:740:9: TILDA ftsFieldGroupExactPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:739:9: ( TILDA ftsFieldGroupExactPhrase -> ftsFieldGroupExactPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:740:9: TILDA ftsFieldGroupExactPhrase { - TILDA171=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase6154); if (state.failed) return retval; + TILDA171=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase6155); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA171); - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase6156); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase6157); ftsFieldGroupExactPhrase172=ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return retval; @@ -8345,7 +8317,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupSynonym" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:744:1: ftsFieldGroupSynonym : TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:744:1: ftsFieldGroupSynonym : TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ; public final FTSParser.ftsFieldGroupSynonym_return ftsFieldGroupSynonym() throws RecognitionException { FTSParser.ftsFieldGroupSynonym_return retval = new FTSParser.ftsFieldGroupSynonym_return(); retval.start = input.LT(1); @@ -8360,13 +8332,13 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroupTerm=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupTerm"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:745:9: ( TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:746:9: TILDA ftsFieldGroupTerm + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:745:9: ( TILDA ftsFieldGroupTerm -> ftsFieldGroupTerm ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:746:9: TILDA ftsFieldGroupTerm { - TILDA173=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupSynonym6209); if (state.failed) return retval; + TILDA173=(Token)match(input,TILDA,FOLLOW_TILDA_in_ftsFieldGroupSynonym6210); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TILDA.add(TILDA173); - pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym6211); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym6212); ftsFieldGroupTerm174=ftsFieldGroupTerm(); state._fsp--; if (state.failed) return retval; @@ -8423,7 +8395,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupProximity" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:750:1: ftsFieldGroupProximity : ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:750:1: ftsFieldGroupProximity : ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ; public final FTSParser.ftsFieldGroupProximity_return ftsFieldGroupProximity() throws RecognitionException { FTSParser.ftsFieldGroupProximity_return retval = new FTSParser.ftsFieldGroupProximity_return(); retval.start = input.LT(1); @@ -8438,15 +8410,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_ftsFieldGroupProximityTerm=new RewriteRuleSubtreeStream(adaptor,"rule ftsFieldGroupProximityTerm"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:751:9: ( ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:9: ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:751:9: ( ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ -> ftsFieldGroupProximityTerm ( proximityGroup ftsFieldGroupProximityTerm )+ ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:9: ftsFieldGroupProximityTerm ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ { - pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6264); + pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6265); ftsFieldGroupProximityTerm175=ftsFieldGroupProximityTerm(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsFieldGroupProximityTerm.add(ftsFieldGroupProximityTerm175.getTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:36: ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:36: ( ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm )+ int cnt70=0; loop70: while (true) { @@ -8758,14 +8730,14 @@ public class FTSParser extends Parser { switch (alt70) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:38: ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:38: ( proximityGroup )=> proximityGroup ftsFieldGroupProximityTerm { - pushFollow(FOLLOW_proximityGroup_in_ftsFieldGroupProximity6274); + pushFollow(FOLLOW_proximityGroup_in_ftsFieldGroupProximity6275); proximityGroup176=proximityGroup(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_proximityGroup.add(proximityGroup176.getTree()); - pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6276); + pushFollow(FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6277); ftsFieldGroupProximityTerm177=ftsFieldGroupProximityTerm(); state._fsp--; if (state.failed) return retval; @@ -8844,7 +8816,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupProximityTerm" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:756:1: ftsFieldGroupProximityTerm : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:756:1: ftsFieldGroupProximityTerm : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); public final FTSParser.ftsFieldGroupProximityTerm_return ftsFieldGroupProximityTerm() throws RecognitionException { FTSParser.ftsFieldGroupProximityTerm_return retval = new FTSParser.ftsFieldGroupProximityTerm_return(); retval.start = input.LT(1); @@ -8877,7 +8849,7 @@ public class FTSParser extends Parser { Object URI188_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:757:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:757:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) int alt71=11; switch ( input.LA(1) ) { case ID: @@ -8943,12 +8915,12 @@ public class FTSParser extends Parser { } switch (alt71) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:758:11: ID + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:758:11: ID { root_0 = (Object)adaptor.nil(); - ID178=(Token)match(input,ID,FOLLOW_ID_in_ftsFieldGroupProximityTerm6340); if (state.failed) return retval; + ID178=(Token)match(input,ID,FOLLOW_ID_in_ftsFieldGroupProximityTerm6341); if (state.failed) return retval; if ( state.backtracking==0 ) { ID178_tree = (Object)adaptor.create(ID178); adaptor.addChild(root_0, ID178_tree); @@ -8957,12 +8929,12 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:759:11: FTSWORD + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:759:11: FTSWORD { root_0 = (Object)adaptor.nil(); - FTSWORD179=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm6352); if (state.failed) return retval; + FTSWORD179=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm6353); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSWORD179_tree = (Object)adaptor.create(FTSWORD179); adaptor.addChild(root_0, FTSWORD179_tree); @@ -8971,12 +8943,12 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:760:11: FTSPRE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:760:11: FTSPRE { root_0 = (Object)adaptor.nil(); - FTSPRE180=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm6364); if (state.failed) return retval; + FTSPRE180=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm6365); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSPRE180_tree = (Object)adaptor.create(FTSPRE180); adaptor.addChild(root_0, FTSPRE180_tree); @@ -8985,12 +8957,12 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:761:11: FTSWILD + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:761:11: FTSWILD { root_0 = (Object)adaptor.nil(); - FTSWILD181=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm6376); if (state.failed) return retval; + FTSWILD181=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm6377); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSWILD181_tree = (Object)adaptor.create(FTSWILD181); adaptor.addChild(root_0, FTSWILD181_tree); @@ -8999,12 +8971,12 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:762:11: NOT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:762:11: NOT { root_0 = (Object)adaptor.nil(); - NOT182=(Token)match(input,NOT,FOLLOW_NOT_in_ftsFieldGroupProximityTerm6388); if (state.failed) return retval; + NOT182=(Token)match(input,NOT,FOLLOW_NOT_in_ftsFieldGroupProximityTerm6389); if (state.failed) return retval; if ( state.backtracking==0 ) { NOT182_tree = (Object)adaptor.create(NOT182); adaptor.addChild(root_0, NOT182_tree); @@ -9013,12 +8985,12 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:763:11: TO + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:763:11: TO { root_0 = (Object)adaptor.nil(); - TO183=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupProximityTerm6400); if (state.failed) return retval; + TO183=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupProximityTerm6401); if (state.failed) return retval; if ( state.backtracking==0 ) { TO183_tree = (Object)adaptor.create(TO183); adaptor.addChild(root_0, TO183_tree); @@ -9027,12 +8999,12 @@ public class FTSParser extends Parser { } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:764:11: DECIMAL_INTEGER_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:764:11: DECIMAL_INTEGER_LITERAL { root_0 = (Object)adaptor.nil(); - DECIMAL_INTEGER_LITERAL184=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm6412); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL184=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm6413); if (state.failed) return retval; if ( state.backtracking==0 ) { DECIMAL_INTEGER_LITERAL184_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL184); adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL184_tree); @@ -9041,12 +9013,12 @@ public class FTSParser extends Parser { } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:765:11: FLOATING_POINT_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:765:11: FLOATING_POINT_LITERAL { root_0 = (Object)adaptor.nil(); - FLOATING_POINT_LITERAL185=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm6424); if (state.failed) return retval; + FLOATING_POINT_LITERAL185=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm6425); if (state.failed) return retval; if ( state.backtracking==0 ) { FLOATING_POINT_LITERAL185_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL185); adaptor.addChild(root_0, FLOATING_POINT_LITERAL185_tree); @@ -9055,12 +9027,12 @@ public class FTSParser extends Parser { } break; case 9 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:766:11: DATETIME + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:766:11: DATETIME { root_0 = (Object)adaptor.nil(); - DATETIME186=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm6436); if (state.failed) return retval; + DATETIME186=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm6437); if (state.failed) return retval; if ( state.backtracking==0 ) { DATETIME186_tree = (Object)adaptor.create(DATETIME186); adaptor.addChild(root_0, DATETIME186_tree); @@ -9069,12 +9041,12 @@ public class FTSParser extends Parser { } break; case 10 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:767:11: STAR + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:767:11: STAR { root_0 = (Object)adaptor.nil(); - STAR187=(Token)match(input,STAR,FOLLOW_STAR_in_ftsFieldGroupProximityTerm6448); if (state.failed) return retval; + STAR187=(Token)match(input,STAR,FOLLOW_STAR_in_ftsFieldGroupProximityTerm6449); if (state.failed) return retval; if ( state.backtracking==0 ) { STAR187_tree = (Object)adaptor.create(STAR187); adaptor.addChild(root_0, STAR187_tree); @@ -9083,18 +9055,18 @@ public class FTSParser extends Parser { } break; case 11 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:768:11: URI identifier + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:768:11: URI identifier { root_0 = (Object)adaptor.nil(); - URI188=(Token)match(input,URI,FOLLOW_URI_in_ftsFieldGroupProximityTerm6460); if (state.failed) return retval; + URI188=(Token)match(input,URI,FOLLOW_URI_in_ftsFieldGroupProximityTerm6461); if (state.failed) return retval; if ( state.backtracking==0 ) { URI188_tree = (Object)adaptor.create(URI188); adaptor.addChild(root_0, URI188_tree); } - pushFollow(FOLLOW_identifier_in_ftsFieldGroupProximityTerm6462); + pushFollow(FOLLOW_identifier_in_ftsFieldGroupProximityTerm6463); identifier189=identifier(); state._fsp--; if (state.failed) return retval; @@ -9133,7 +9105,7 @@ public class FTSParser extends Parser { // $ANTLR start "proximityGroup" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:771:1: proximityGroup : STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:771:1: proximityGroup : STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ; public final FTSParser.proximityGroup_return proximityGroup() throws RecognitionException { FTSParser.proximityGroup_return retval = new FTSParser.proximityGroup_return(); retval.start = input.LT(1); @@ -9155,13 +9127,13 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:772:9: ( STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:9: STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:772:9: ( STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:9: STAR ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? { - STAR190=(Token)match(input,STAR,FOLLOW_STAR_in_proximityGroup6495); if (state.failed) return retval; + STAR190=(Token)match(input,STAR,FOLLOW_STAR_in_proximityGroup6496); if (state.failed) return retval; if ( state.backtracking==0 ) stream_STAR.add(STAR190); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:14: ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:14: ( LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN )? int alt73=2; int LA73_0 = input.LA(1); if ( (LA73_0==LPAREN) ) { @@ -9169,12 +9141,12 @@ public class FTSParser extends Parser { } switch (alt73) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:15: LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:15: LPAREN ( DECIMAL_INTEGER_LITERAL )? RPAREN { - LPAREN191=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_proximityGroup6498); if (state.failed) return retval; + LPAREN191=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_proximityGroup6499); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN191); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:22: ( DECIMAL_INTEGER_LITERAL )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:22: ( DECIMAL_INTEGER_LITERAL )? int alt72=2; int LA72_0 = input.LA(1); if ( (LA72_0==DECIMAL_INTEGER_LITERAL) ) { @@ -9182,9 +9154,9 @@ public class FTSParser extends Parser { } switch (alt72) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:22: DECIMAL_INTEGER_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:773:22: DECIMAL_INTEGER_LITERAL { - DECIMAL_INTEGER_LITERAL192=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup6500); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL192=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup6501); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DECIMAL_INTEGER_LITERAL.add(DECIMAL_INTEGER_LITERAL192); } @@ -9192,7 +9164,7 @@ public class FTSParser extends Parser { } - RPAREN193=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_proximityGroup6503); if (state.failed) return retval; + RPAREN193=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_proximityGroup6504); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN193); } @@ -9214,11 +9186,11 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 774:17: -> ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:775:25: ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:775:25: ^( PROXIMITY ( DECIMAL_INTEGER_LITERAL )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROXIMITY, "PROXIMITY"), root_1); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:775:37: ( DECIMAL_INTEGER_LITERAL )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:775:37: ( DECIMAL_INTEGER_LITERAL )? if ( stream_DECIMAL_INTEGER_LITERAL.hasNext() ) { adaptor.addChild(root_1, stream_DECIMAL_INTEGER_LITERAL.nextNode()); } @@ -9264,7 +9236,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsFieldGroupRange" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:778:1: ftsFieldGroupRange : ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:778:1: ftsFieldGroupRange : ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ); public final FTSParser.ftsFieldGroupRange_return ftsFieldGroupRange() throws RecognitionException { FTSParser.ftsFieldGroupRange_return retval = new FTSParser.ftsFieldGroupRange_return(); retval.start = input.LT(1); @@ -9289,7 +9261,7 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_range_right=new RewriteRuleSubtreeStream(adaptor,"rule range_right"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:779:9: ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:779:9: ( ftsRangeWord DOTDOT ftsRangeWord -> INCLUSIVE ftsRangeWord ftsRangeWord INCLUSIVE | range_left ftsRangeWord TO ftsRangeWord range_right -> range_left ftsRangeWord ftsRangeWord range_right ) int alt74=2; int LA74_0 = input.LA(1); if ( (LA74_0==DATETIME||LA74_0==DECIMAL_INTEGER_LITERAL||LA74_0==FLOATING_POINT_LITERAL||(LA74_0 >= FTSPHRASE && LA74_0 <= FTSWORD)||LA74_0==ID||LA74_0==STAR||LA74_0==URI) ) { @@ -9308,17 +9280,17 @@ public class FTSParser extends Parser { switch (alt74) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:780:9: ftsRangeWord DOTDOT ftsRangeWord + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:780:9: ftsRangeWord DOTDOT ftsRangeWord { - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6587); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6588); ftsRangeWord194=ftsRangeWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord194.getTree()); - DOTDOT195=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_ftsFieldGroupRange6589); if (state.failed) return retval; + DOTDOT195=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_ftsFieldGroupRange6590); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT195); - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6591); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6592); ftsRangeWord196=ftsRangeWord(); state._fsp--; if (state.failed) return retval; @@ -9350,33 +9322,33 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:782:11: range_left ftsRangeWord TO ftsRangeWord range_right + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:782:11: range_left ftsRangeWord TO ftsRangeWord range_right { - pushFollow(FOLLOW_range_left_in_ftsFieldGroupRange6629); + pushFollow(FOLLOW_range_left_in_ftsFieldGroupRange6630); range_left197=range_left(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_range_left.add(range_left197.getTree()); - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6631); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6632); ftsRangeWord198=ftsRangeWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord198.getTree()); - TO199=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupRange6633); if (state.failed) return retval; + TO199=(Token)match(input,TO,FOLLOW_TO_in_ftsFieldGroupRange6634); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TO.add(TO199); - pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6635); + pushFollow(FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6636); ftsRangeWord200=ftsRangeWord(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ftsRangeWord.add(ftsRangeWord200.getTree()); - pushFollow(FOLLOW_range_right_in_ftsFieldGroupRange6637); + pushFollow(FOLLOW_range_right_in_ftsFieldGroupRange6638); range_right201=range_right(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_range_right.add(range_right201.getTree()); // AST REWRITE - // elements: ftsRangeWord, ftsRangeWord, range_left, range_right + // elements: range_left, ftsRangeWord, ftsRangeWord, range_right // token labels: // rule labels: retval // token list labels: @@ -9432,7 +9404,7 @@ public class FTSParser extends Parser { // $ANTLR start "range_left" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:786:1: range_left : ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:786:1: range_left : ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ); public final FTSParser.range_left_return range_left() throws RecognitionException { FTSParser.range_left_return retval = new FTSParser.range_left_return(); retval.start = input.LT(1); @@ -9448,7 +9420,7 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:787:9: ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:787:9: ( LSQUARE -> INCLUSIVE | LT -> EXCLUSIVE ) int alt75=2; int LA75_0 = input.LA(1); if ( (LA75_0==LSQUARE) ) { @@ -9467,9 +9439,9 @@ public class FTSParser extends Parser { switch (alt75) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:788:9: LSQUARE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:788:9: LSQUARE { - LSQUARE202=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_range_left6696); if (state.failed) return retval; + LSQUARE202=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_range_left6697); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE202); // AST REWRITE @@ -9496,9 +9468,9 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:790:11: LT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:790:11: LT { - LT203=(Token)match(input,LT,FOLLOW_LT_in_range_left6728); if (state.failed) return retval; + LT203=(Token)match(input,LT,FOLLOW_LT_in_range_left6729); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LT.add(LT203); // AST REWRITE @@ -9555,7 +9527,7 @@ public class FTSParser extends Parser { // $ANTLR start "range_right" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:794:1: range_right : ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:794:1: range_right : ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ); public final FTSParser.range_right_return range_right() throws RecognitionException { FTSParser.range_right_return retval = new FTSParser.range_right_return(); retval.start = input.LT(1); @@ -9571,7 +9543,7 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_GT=new RewriteRuleTokenStream(adaptor,"token GT"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:795:9: ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:795:9: ( RSQUARE -> INCLUSIVE | GT -> EXCLUSIVE ) int alt76=2; int LA76_0 = input.LA(1); if ( (LA76_0==RSQUARE) ) { @@ -9590,9 +9562,9 @@ public class FTSParser extends Parser { switch (alt76) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:796:9: RSQUARE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:796:9: RSQUARE { - RSQUARE204=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_range_right6781); if (state.failed) return retval; + RSQUARE204=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_range_right6782); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE204); // AST REWRITE @@ -9619,9 +9591,9 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:798:11: GT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:798:11: GT { - GT205=(Token)match(input,GT,FOLLOW_GT_in_range_right6813); if (state.failed) return retval; + GT205=(Token)match(input,GT,FOLLOW_GT_in_range_right6814); if (state.failed) return retval; if ( state.backtracking==0 ) stream_GT.add(GT205); // AST REWRITE @@ -9678,7 +9650,7 @@ public class FTSParser extends Parser { // $ANTLR start "fieldReference" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:802:1: fieldReference : ( fieldReferenceWithPrefix | fieldReferenceWithoutPrefix ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:802:1: fieldReference : ( fieldReferenceWithPrefix | fieldReferenceWithoutPrefix ); public final FTSParser.fieldReference_return fieldReference() throws RecognitionException { FTSParser.fieldReference_return retval = new FTSParser.fieldReference_return(); retval.start = input.LT(1); @@ -9690,7 +9662,7 @@ public class FTSParser extends Parser { try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:803:9: ( fieldReferenceWithPrefix | fieldReferenceWithoutPrefix ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:803:9: ( fieldReferenceWithPrefix | fieldReferenceWithoutPrefix ) int alt77=2; switch ( input.LA(1) ) { case AT: @@ -10820,12 +10792,12 @@ public class FTSParser extends Parser { } switch (alt77) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:804:9: fieldReferenceWithPrefix + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:804:9: fieldReferenceWithPrefix { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_fieldReference6866); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_fieldReference6867); fieldReferenceWithPrefix206=fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return retval; @@ -10834,12 +10806,12 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:805:11: fieldReferenceWithoutPrefix + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:805:11: fieldReferenceWithoutPrefix { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_fieldReference6878); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_fieldReference6879); fieldReferenceWithoutPrefix207=fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return retval; @@ -10878,7 +10850,7 @@ public class FTSParser extends Parser { // $ANTLR start "fieldReferenceWithoutPrefix" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:807:1: fieldReferenceWithoutPrefix : ( AT )? ( uri )? identifier -> ^( FIELD_REF identifier ( uri )? ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:807:1: fieldReferenceWithoutPrefix : ( AT )? ( uri )? identifier -> ^( FIELD_REF identifier ( uri )? ) ; public final FTSParser.fieldReferenceWithoutPrefix_return fieldReferenceWithoutPrefix() throws RecognitionException { FTSParser.fieldReferenceWithoutPrefix_return retval = new FTSParser.fieldReferenceWithoutPrefix_return(); retval.start = input.LT(1); @@ -10895,10 +10867,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_uri=new RewriteRuleSubtreeStream(adaptor,"rule uri"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:808:9: ( ( AT )? ( uri )? identifier -> ^( FIELD_REF identifier ( uri )? ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: ( AT )? ( uri )? identifier + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:808:9: ( ( AT )? ( uri )? identifier -> ^( FIELD_REF identifier ( uri )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: ( AT )? ( uri )? identifier { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: ( AT )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: ( AT )? int alt78=2; int LA78_0 = input.LA(1); if ( (LA78_0==AT) ) { @@ -10906,9 +10878,9 @@ public class FTSParser extends Parser { } switch (alt78) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: AT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:809:9: AT { - AT208=(Token)match(input,AT,FOLLOW_AT_in_fieldReferenceWithoutPrefix6902); if (state.failed) return retval; + AT208=(Token)match(input,AT,FOLLOW_AT_in_fieldReferenceWithoutPrefix6903); if (state.failed) return retval; if ( state.backtracking==0 ) stream_AT.add(AT208); } @@ -10916,7 +10888,7 @@ public class FTSParser extends Parser { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:810:9: ( uri )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:810:9: ( uri )? int alt79=2; int LA79_0 = input.LA(1); if ( (LA79_0==URI) ) { @@ -10924,9 +10896,9 @@ public class FTSParser extends Parser { } switch (alt79) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:810:9: uri + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:810:9: uri { - pushFollow(FOLLOW_uri_in_fieldReferenceWithoutPrefix6913); + pushFollow(FOLLOW_uri_in_fieldReferenceWithoutPrefix6914); uri209=uri(); state._fsp--; if (state.failed) return retval; @@ -10936,13 +10908,13 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_identifier_in_fieldReferenceWithoutPrefix6924); + pushFollow(FOLLOW_identifier_in_fieldReferenceWithoutPrefix6925); identifier210=identifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_identifier.add(identifier210.getTree()); // AST REWRITE - // elements: identifier, uri + // elements: uri, identifier // token labels: // rule labels: retval // token list labels: @@ -10955,12 +10927,12 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 812:17: -> ^( FIELD_REF identifier ( uri )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:813:25: ^( FIELD_REF identifier ( uri )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:813:25: ^( FIELD_REF identifier ( uri )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_REF, "FIELD_REF"), root_1); adaptor.addChild(root_1, stream_identifier.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:813:48: ( uri )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:813:48: ( uri )? if ( stream_uri.hasNext() ) { adaptor.addChild(root_1, stream_uri.nextTree()); } @@ -11006,7 +10978,7 @@ public class FTSParser extends Parser { // $ANTLR start "fieldReferenceWithPrefix" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:816:1: fieldReferenceWithPrefix : ( AT )? prefix identifier -> ^( FIELD_REF identifier prefix ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:816:1: fieldReferenceWithPrefix : ( AT )? prefix identifier -> ^( FIELD_REF identifier prefix ) ; public final FTSParser.fieldReferenceWithPrefix_return fieldReferenceWithPrefix() throws RecognitionException { FTSParser.fieldReferenceWithPrefix_return retval = new FTSParser.fieldReferenceWithPrefix_return(); retval.start = input.LT(1); @@ -11023,10 +10995,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_prefix=new RewriteRuleSubtreeStream(adaptor,"rule prefix"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:817:9: ( ( AT )? prefix identifier -> ^( FIELD_REF identifier prefix ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: ( AT )? prefix identifier + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:817:9: ( ( AT )? prefix identifier -> ^( FIELD_REF identifier prefix ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: ( AT )? prefix identifier { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: ( AT )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: ( AT )? int alt80=2; int LA80_0 = input.LA(1); if ( (LA80_0==AT) ) { @@ -11034,9 +11006,9 @@ public class FTSParser extends Parser { } switch (alt80) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: AT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:818:9: AT { - AT211=(Token)match(input,AT,FOLLOW_AT_in_fieldReferenceWithPrefix7008); if (state.failed) return retval; + AT211=(Token)match(input,AT,FOLLOW_AT_in_fieldReferenceWithPrefix7009); if (state.failed) return retval; if ( state.backtracking==0 ) stream_AT.add(AT211); } @@ -11044,12 +11016,12 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_prefix_in_fieldReferenceWithPrefix7019); + pushFollow(FOLLOW_prefix_in_fieldReferenceWithPrefix7020); prefix212=prefix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_prefix.add(prefix212.getTree()); - pushFollow(FOLLOW_identifier_in_fieldReferenceWithPrefix7021); + pushFollow(FOLLOW_identifier_in_fieldReferenceWithPrefix7022); identifier213=identifier(); state._fsp--; if (state.failed) return retval; @@ -11068,7 +11040,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 820:17: -> ^( FIELD_REF identifier prefix ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:821:25: ^( FIELD_REF identifier prefix ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:821:25: ^( FIELD_REF identifier prefix ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_REF, "FIELD_REF"), root_1); @@ -11114,7 +11086,7 @@ public class FTSParser extends Parser { // $ANTLR start "tempReference" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:824:1: tempReference : ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:824:1: tempReference : ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ; public final FTSParser.tempReference_return tempReference() throws RecognitionException { FTSParser.tempReference_return retval = new FTSParser.tempReference_return(); retval.start = input.LT(1); @@ -11133,10 +11105,10 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_uri=new RewriteRuleSubtreeStream(adaptor,"rule uri"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:825:9: ( ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: ( AT )? ( prefix | uri )? identifier + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:825:9: ( ( AT )? ( prefix | uri )? identifier -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: ( AT )? ( prefix | uri )? identifier { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: ( AT )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: ( AT )? int alt81=2; int LA81_0 = input.LA(1); if ( (LA81_0==AT) ) { @@ -11144,9 +11116,9 @@ public class FTSParser extends Parser { } switch (alt81) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: AT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:826:9: AT { - AT214=(Token)match(input,AT,FOLLOW_AT_in_tempReference7104); if (state.failed) return retval; + AT214=(Token)match(input,AT,FOLLOW_AT_in_tempReference7105); if (state.failed) return retval; if ( state.backtracking==0 ) stream_AT.add(AT214); } @@ -11154,7 +11126,7 @@ public class FTSParser extends Parser { } - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:827:9: ( prefix | uri )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:827:9: ( prefix | uri )? int alt82=3; switch ( input.LA(1) ) { case ID: @@ -11214,9 +11186,9 @@ public class FTSParser extends Parser { } switch (alt82) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:828:17: prefix + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:828:17: prefix { - pushFollow(FOLLOW_prefix_in_tempReference7133); + pushFollow(FOLLOW_prefix_in_tempReference7134); prefix215=prefix(); state._fsp--; if (state.failed) return retval; @@ -11224,9 +11196,9 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:829:19: uri + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:829:19: uri { - pushFollow(FOLLOW_uri_in_tempReference7153); + pushFollow(FOLLOW_uri_in_tempReference7154); uri216=uri(); state._fsp--; if (state.failed) return retval; @@ -11236,13 +11208,13 @@ public class FTSParser extends Parser { } - pushFollow(FOLLOW_identifier_in_tempReference7174); + pushFollow(FOLLOW_identifier_in_tempReference7175); identifier217=identifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_identifier.add(identifier217.getTree()); // AST REWRITE - // elements: identifier, prefix, uri + // elements: prefix, uri, identifier // token labels: // rule labels: retval // token list labels: @@ -11255,18 +11227,18 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 832:17: -> ^( FIELD_REF identifier ( prefix )? ( uri )? ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:25: ^( FIELD_REF identifier ( prefix )? ( uri )? ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:25: ^( FIELD_REF identifier ( prefix )? ( uri )? ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_REF, "FIELD_REF"), root_1); adaptor.addChild(root_1, stream_identifier.nextTree()); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:48: ( prefix )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:48: ( prefix )? if ( stream_prefix.hasNext() ) { adaptor.addChild(root_1, stream_prefix.nextTree()); } stream_prefix.reset(); - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:56: ( uri )? + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:833:56: ( uri )? if ( stream_uri.hasNext() ) { adaptor.addChild(root_1, stream_uri.nextTree()); } @@ -11312,7 +11284,7 @@ public class FTSParser extends Parser { // $ANTLR start "prefix" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:836:1: prefix : identifier COLON -> ^( PREFIX identifier ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:836:1: prefix : identifier COLON -> ^( PREFIX identifier ) ; public final FTSParser.prefix_return prefix() throws RecognitionException { FTSParser.prefix_return retval = new FTSParser.prefix_return(); retval.start = input.LT(1); @@ -11327,15 +11299,15 @@ public class FTSParser extends Parser { RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:837:9: ( identifier COLON -> ^( PREFIX identifier ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:838:9: identifier COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:837:9: ( identifier COLON -> ^( PREFIX identifier ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:838:9: identifier COLON { - pushFollow(FOLLOW_identifier_in_prefix7261); + pushFollow(FOLLOW_identifier_in_prefix7262); identifier218=identifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_identifier.add(identifier218.getTree()); - COLON219=(Token)match(input,COLON,FOLLOW_COLON_in_prefix7263); if (state.failed) return retval; + COLON219=(Token)match(input,COLON,FOLLOW_COLON_in_prefix7264); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON219); // AST REWRITE @@ -11352,7 +11324,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 839:17: -> ^( PREFIX identifier ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:840:25: ^( PREFIX identifier ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:840:25: ^( PREFIX identifier ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1); @@ -11397,7 +11369,7 @@ public class FTSParser extends Parser { // $ANTLR start "uri" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:843:1: uri : URI -> ^( NAME_SPACE URI ) ; + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:843:1: uri : URI -> ^( NAME_SPACE URI ) ; public final FTSParser.uri_return uri() throws RecognitionException { FTSParser.uri_return retval = new FTSParser.uri_return(); retval.start = input.LT(1); @@ -11410,10 +11382,10 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_URI=new RewriteRuleTokenStream(adaptor,"token URI"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:844:9: ( URI -> ^( NAME_SPACE URI ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:845:9: URI + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:844:9: ( URI -> ^( NAME_SPACE URI ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:845:9: URI { - URI220=(Token)match(input,URI,FOLLOW_URI_in_uri7344); if (state.failed) return retval; + URI220=(Token)match(input,URI,FOLLOW_URI_in_uri7345); if (state.failed) return retval; if ( state.backtracking==0 ) stream_URI.add(URI220); // AST REWRITE @@ -11430,7 +11402,7 @@ public class FTSParser extends Parser { root_0 = (Object)adaptor.nil(); // 846:17: -> ^( NAME_SPACE URI ) { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:847:25: ^( NAME_SPACE URI ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:847:25: ^( NAME_SPACE URI ) { Object root_1 = (Object)adaptor.nil(); root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NAME_SPACE, "NAME_SPACE"), root_1); @@ -11475,7 +11447,7 @@ public class FTSParser extends Parser { // $ANTLR start "identifier" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:850:1: identifier : ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:850:1: identifier : ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ); public final FTSParser.identifier_return identifier() throws RecognitionException { FTSParser.identifier_return retval = new FTSParser.identifier_return(); retval.start = input.LT(1); @@ -11507,7 +11479,7 @@ public class FTSParser extends Parser { RewriteRuleTokenStream stream_TO=new RewriteRuleTokenStream(adaptor,"token TO"); try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:851:9: ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:851:9: ( ( ID DOT ID )=>id1= ID DOT id2= ID ->| ID -> ID | TO -> TO | OR -> OR | AND -> AND | NOT -> NOT ) int alt83=6; switch ( input.LA(1) ) { case ID: @@ -11592,15 +11564,15 @@ public class FTSParser extends Parser { } switch (alt83) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:9: ( ID DOT ID )=>id1= ID DOT id2= ID + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:9: ( ID DOT ID )=>id1= ID DOT id2= ID { - id1=(Token)match(input,ID,FOLLOW_ID_in_identifier7446); if (state.failed) return retval; + id1=(Token)match(input,ID,FOLLOW_ID_in_identifier7447); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ID.add(id1); - DOT221=(Token)match(input,DOT,FOLLOW_DOT_in_identifier7448); if (state.failed) return retval; + DOT221=(Token)match(input,DOT,FOLLOW_DOT_in_identifier7449); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOT.add(DOT221); - id2=(Token)match(input,ID,FOLLOW_ID_in_identifier7452); if (state.failed) return retval; + id2=(Token)match(input,ID,FOLLOW_ID_in_identifier7453); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ID.add(id2); // AST REWRITE @@ -11627,9 +11599,9 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:856:12: ID + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:856:12: ID { - ID222=(Token)match(input,ID,FOLLOW_ID_in_identifier7501); if (state.failed) return retval; + ID222=(Token)match(input,ID,FOLLOW_ID_in_identifier7502); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ID.add(ID222); // AST REWRITE @@ -11656,9 +11628,9 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:860:12: TO + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:860:12: TO { - TO223=(Token)match(input,TO,FOLLOW_TO_in_identifier7568); if (state.failed) return retval; + TO223=(Token)match(input,TO,FOLLOW_TO_in_identifier7569); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TO.add(TO223); // AST REWRITE @@ -11685,9 +11657,9 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:862:12: OR + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:862:12: OR { - OR224=(Token)match(input,OR,FOLLOW_OR_in_identifier7606); if (state.failed) return retval; + OR224=(Token)match(input,OR,FOLLOW_OR_in_identifier7607); if (state.failed) return retval; if ( state.backtracking==0 ) stream_OR.add(OR224); // AST REWRITE @@ -11714,9 +11686,9 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:864:12: AND + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:864:12: AND { - AND225=(Token)match(input,AND,FOLLOW_AND_in_identifier7644); if (state.failed) return retval; + AND225=(Token)match(input,AND,FOLLOW_AND_in_identifier7645); if (state.failed) return retval; if ( state.backtracking==0 ) stream_AND.add(AND225); // AST REWRITE @@ -11743,9 +11715,9 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:866:12: NOT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:866:12: NOT { - NOT226=(Token)match(input,NOT,FOLLOW_NOT_in_identifier7683); if (state.failed) return retval; + NOT226=(Token)match(input,NOT,FOLLOW_NOT_in_identifier7684); if (state.failed) return retval; if ( state.backtracking==0 ) stream_NOT.add(NOT226); // AST REWRITE @@ -11802,7 +11774,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsWord" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:870:1: ftsWord : ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:870:1: ftsWord : ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ); public final FTSParser.ftsWord_return ftsWord() throws RecognitionException { FTSParser.ftsWord_return retval = new FTSParser.ftsWord_return(); retval.start = input.LT(1); @@ -11960,12 +11932,12 @@ public class FTSParser extends Parser { Object set323_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:871:9: ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:871:9: ( ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase | ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) | ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) | ( DOT | COMMA ) ftsWordBase | ftsWordBase ) int alt84=18; alt84 = dfa84.predict(input); switch (alt84) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); @@ -11982,7 +11954,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7807); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7808); ftsWordBase228=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12000,7 +11972,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7815); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7816); ftsWordBase230=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12018,7 +11990,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7823); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7824); ftsWordBase232=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12036,7 +12008,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7831); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7832); ftsWordBase234=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12054,7 +12026,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7839); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7840); ftsWordBase236=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12063,12 +12035,12 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7899); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7900); ftsWordBase237=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12086,7 +12058,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7907); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7908); ftsWordBase239=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12104,7 +12076,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7915); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7916); ftsWordBase241=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12122,7 +12094,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7923); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7924); ftsWordBase243=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12140,7 +12112,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord7931); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord7932); ftsWordBase245=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12149,7 +12121,7 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); @@ -12166,7 +12138,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8004); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8005); ftsWordBase247=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12184,7 +12156,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8012); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8013); ftsWordBase249=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12202,7 +12174,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8020); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8021); ftsWordBase251=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12220,7 +12192,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8028); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8029); ftsWordBase253=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12241,12 +12213,12 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8094); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8095); ftsWordBase255=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12264,7 +12236,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8102); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8103); ftsWordBase257=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12282,7 +12254,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8110); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8111); ftsWordBase259=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12300,7 +12272,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8118); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8119); ftsWordBase261=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12321,7 +12293,7 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); @@ -12338,7 +12310,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8191); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8192); ftsWordBase264=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12356,7 +12328,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8199); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8200); ftsWordBase266=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12374,7 +12346,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8207); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8208); ftsWordBase268=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12392,7 +12364,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8215); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8216); ftsWordBase270=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12401,12 +12373,12 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8269); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8270); ftsWordBase271=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12424,7 +12396,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8277); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8278); ftsWordBase273=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12442,7 +12414,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8285); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8286); ftsWordBase275=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12460,7 +12432,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8293); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8294); ftsWordBase277=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12469,7 +12441,7 @@ public class FTSParser extends Parser { } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); @@ -12486,7 +12458,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8357); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8358); ftsWordBase279=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12504,7 +12476,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8365); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8366); ftsWordBase281=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12522,7 +12494,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8373); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8374); ftsWordBase283=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12543,12 +12515,12 @@ public class FTSParser extends Parser { } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8431); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8432); ftsWordBase285=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12566,7 +12538,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8439); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8440); ftsWordBase287=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12584,7 +12556,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8447); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8448); ftsWordBase289=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12605,7 +12577,7 @@ public class FTSParser extends Parser { } break; case 9 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); @@ -12622,7 +12594,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8511); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8512); ftsWordBase292=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12640,7 +12612,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8519); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8520); ftsWordBase294=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12658,7 +12630,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8527); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8528); ftsWordBase296=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12667,12 +12639,12 @@ public class FTSParser extends Parser { } break; case 10 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8573); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8574); ftsWordBase297=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12690,7 +12662,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8581); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8582); ftsWordBase299=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12708,7 +12680,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8589); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8590); ftsWordBase301=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12717,7 +12689,7 @@ public class FTSParser extends Parser { } break; case 11 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); @@ -12734,7 +12706,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8646); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8647); ftsWordBase303=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12752,7 +12724,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8654); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8655); ftsWordBase305=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12773,12 +12745,12 @@ public class FTSParser extends Parser { } break; case 12 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8705); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8706); ftsWordBase307=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12796,7 +12768,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8713); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8714); ftsWordBase309=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12817,7 +12789,7 @@ public class FTSParser extends Parser { } break; case 13 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); @@ -12834,7 +12806,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8770); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8771); ftsWordBase312=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12852,7 +12824,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8778); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8779); ftsWordBase314=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12861,12 +12833,12 @@ public class FTSParser extends Parser { } break; case 14 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase )=> ftsWordBase ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8816); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8817); ftsWordBase315=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12884,7 +12856,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8824); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8825); ftsWordBase317=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12893,7 +12865,7 @@ public class FTSParser extends Parser { } break; case 15 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) )=> ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); @@ -12910,7 +12882,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8872); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8873); ftsWordBase319=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12931,12 +12903,12 @@ public class FTSParser extends Parser { } break; case 16 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:11: ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:11: ( ftsWordBase ( DOT | COMMA ) )=> ftsWordBase ( DOT | COMMA ) { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8914); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8915); ftsWordBase321=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12957,7 +12929,7 @@ public class FTSParser extends Parser { } break; case 17 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:904:11: ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:904:11: ( DOT | COMMA ) ftsWordBase { root_0 = (Object)adaptor.nil(); @@ -12974,7 +12946,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8938); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8939); ftsWordBase324=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -12983,12 +12955,12 @@ public class FTSParser extends Parser { } break; case 18 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:905:11: ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:905:11: ftsWordBase { root_0 = (Object)adaptor.nil(); - pushFollow(FOLLOW_ftsWordBase_in_ftsWord8951); + pushFollow(FOLLOW_ftsWordBase_in_ftsWord8952); ftsWordBase325=ftsWordBase(); state._fsp--; if (state.failed) return retval; @@ -13027,7 +12999,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsWordBase" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:909:1: ftsWordBase : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:909:1: ftsWordBase : ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ); public final FTSParser.ftsWordBase_return ftsWordBase() throws RecognitionException { FTSParser.ftsWordBase_return retval = new FTSParser.ftsWordBase_return(); retval.start = input.LT(1); @@ -13062,7 +13034,7 @@ public class FTSParser extends Parser { Object URI337_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:910:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:910:9: ( ID | FTSWORD | FTSPRE | FTSWILD | NOT | TO | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | STAR | QUESTION_MARK | DATETIME | URI identifier ) int alt85=12; switch ( input.LA(1) ) { case ID: @@ -13133,12 +13105,12 @@ public class FTSParser extends Parser { } switch (alt85) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:911:11: ID + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:911:11: ID { root_0 = (Object)adaptor.nil(); - ID326=(Token)match(input,ID,FOLLOW_ID_in_ftsWordBase8996); if (state.failed) return retval; + ID326=(Token)match(input,ID,FOLLOW_ID_in_ftsWordBase8997); if (state.failed) return retval; if ( state.backtracking==0 ) { ID326_tree = (Object)adaptor.create(ID326); adaptor.addChild(root_0, ID326_tree); @@ -13147,12 +13119,12 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:912:11: FTSWORD + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:912:11: FTSWORD { root_0 = (Object)adaptor.nil(); - FTSWORD327=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsWordBase9008); if (state.failed) return retval; + FTSWORD327=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsWordBase9009); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSWORD327_tree = (Object)adaptor.create(FTSWORD327); adaptor.addChild(root_0, FTSWORD327_tree); @@ -13161,12 +13133,12 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:913:11: FTSPRE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:913:11: FTSPRE { root_0 = (Object)adaptor.nil(); - FTSPRE328=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsWordBase9020); if (state.failed) return retval; + FTSPRE328=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsWordBase9021); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSPRE328_tree = (Object)adaptor.create(FTSPRE328); adaptor.addChild(root_0, FTSPRE328_tree); @@ -13175,12 +13147,12 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:914:11: FTSWILD + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:914:11: FTSWILD { root_0 = (Object)adaptor.nil(); - FTSWILD329=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsWordBase9033); if (state.failed) return retval; + FTSWILD329=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsWordBase9034); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSWILD329_tree = (Object)adaptor.create(FTSWILD329); adaptor.addChild(root_0, FTSWILD329_tree); @@ -13189,12 +13161,12 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:915:11: NOT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:915:11: NOT { root_0 = (Object)adaptor.nil(); - NOT330=(Token)match(input,NOT,FOLLOW_NOT_in_ftsWordBase9046); if (state.failed) return retval; + NOT330=(Token)match(input,NOT,FOLLOW_NOT_in_ftsWordBase9047); if (state.failed) return retval; if ( state.backtracking==0 ) { NOT330_tree = (Object)adaptor.create(NOT330); adaptor.addChild(root_0, NOT330_tree); @@ -13203,12 +13175,12 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:916:11: TO + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:916:11: TO { root_0 = (Object)adaptor.nil(); - TO331=(Token)match(input,TO,FOLLOW_TO_in_ftsWordBase9058); if (state.failed) return retval; + TO331=(Token)match(input,TO,FOLLOW_TO_in_ftsWordBase9059); if (state.failed) return retval; if ( state.backtracking==0 ) { TO331_tree = (Object)adaptor.create(TO331); adaptor.addChild(root_0, TO331_tree); @@ -13217,12 +13189,12 @@ public class FTSParser extends Parser { } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:917:11: DECIMAL_INTEGER_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:917:11: DECIMAL_INTEGER_LITERAL { root_0 = (Object)adaptor.nil(); - DECIMAL_INTEGER_LITERAL332=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase9070); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL332=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase9071); if (state.failed) return retval; if ( state.backtracking==0 ) { DECIMAL_INTEGER_LITERAL332_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL332); adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL332_tree); @@ -13231,12 +13203,12 @@ public class FTSParser extends Parser { } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:918:11: FLOATING_POINT_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:918:11: FLOATING_POINT_LITERAL { root_0 = (Object)adaptor.nil(); - FLOATING_POINT_LITERAL333=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase9082); if (state.failed) return retval; + FLOATING_POINT_LITERAL333=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase9083); if (state.failed) return retval; if ( state.backtracking==0 ) { FLOATING_POINT_LITERAL333_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL333); adaptor.addChild(root_0, FLOATING_POINT_LITERAL333_tree); @@ -13245,12 +13217,12 @@ public class FTSParser extends Parser { } break; case 9 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:919:11: STAR + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:919:11: STAR { root_0 = (Object)adaptor.nil(); - STAR334=(Token)match(input,STAR,FOLLOW_STAR_in_ftsWordBase9094); if (state.failed) return retval; + STAR334=(Token)match(input,STAR,FOLLOW_STAR_in_ftsWordBase9095); if (state.failed) return retval; if ( state.backtracking==0 ) { STAR334_tree = (Object)adaptor.create(STAR334); adaptor.addChild(root_0, STAR334_tree); @@ -13259,12 +13231,12 @@ public class FTSParser extends Parser { } break; case 10 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:920:11: QUESTION_MARK + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:920:11: QUESTION_MARK { root_0 = (Object)adaptor.nil(); - QUESTION_MARK335=(Token)match(input,QUESTION_MARK,FOLLOW_QUESTION_MARK_in_ftsWordBase9106); if (state.failed) return retval; + QUESTION_MARK335=(Token)match(input,QUESTION_MARK,FOLLOW_QUESTION_MARK_in_ftsWordBase9107); if (state.failed) return retval; if ( state.backtracking==0 ) { QUESTION_MARK335_tree = (Object)adaptor.create(QUESTION_MARK335); adaptor.addChild(root_0, QUESTION_MARK335_tree); @@ -13273,12 +13245,12 @@ public class FTSParser extends Parser { } break; case 11 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:921:11: DATETIME + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:921:11: DATETIME { root_0 = (Object)adaptor.nil(); - DATETIME336=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsWordBase9118); if (state.failed) return retval; + DATETIME336=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsWordBase9119); if (state.failed) return retval; if ( state.backtracking==0 ) { DATETIME336_tree = (Object)adaptor.create(DATETIME336); adaptor.addChild(root_0, DATETIME336_tree); @@ -13287,18 +13259,18 @@ public class FTSParser extends Parser { } break; case 12 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:922:11: URI identifier + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:922:11: URI identifier { root_0 = (Object)adaptor.nil(); - URI337=(Token)match(input,URI,FOLLOW_URI_in_ftsWordBase9130); if (state.failed) return retval; + URI337=(Token)match(input,URI,FOLLOW_URI_in_ftsWordBase9131); if (state.failed) return retval; if ( state.backtracking==0 ) { URI337_tree = (Object)adaptor.create(URI337); adaptor.addChild(root_0, URI337_tree); } - pushFollow(FOLLOW_identifier_in_ftsWordBase9132); + pushFollow(FOLLOW_identifier_in_ftsWordBase9133); identifier338=identifier(); state._fsp--; if (state.failed) return retval; @@ -13337,7 +13309,7 @@ public class FTSParser extends Parser { // $ANTLR start "number" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:925:1: number : ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:925:1: number : ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ); public final FTSParser.number_return number() throws RecognitionException { FTSParser.number_return retval = new FTSParser.number_return(); retval.start = input.LT(1); @@ -13349,8 +13321,8 @@ public class FTSParser extends Parser { Object set339_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:926:9: ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:926:9: ( DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { root_0 = (Object)adaptor.nil(); @@ -13398,7 +13370,7 @@ public class FTSParser extends Parser { // $ANTLR start "ftsRangeWord" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:931:1: ftsRangeWord : ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:931:1: ftsRangeWord : ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ); public final FTSParser.ftsRangeWord_return ftsRangeWord() throws RecognitionException { FTSParser.ftsRangeWord_return retval = new FTSParser.ftsRangeWord_return(); retval.start = input.LT(1); @@ -13429,7 +13401,7 @@ public class FTSParser extends Parser { Object URI349_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:932:9: ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:932:9: ( ID | FTSWORD | FTSPRE | FTSWILD | FTSPHRASE | DECIMAL_INTEGER_LITERAL | FLOATING_POINT_LITERAL | DATETIME | STAR | URI identifier ) int alt86=10; switch ( input.LA(1) ) { case ID: @@ -13490,12 +13462,12 @@ public class FTSParser extends Parser { } switch (alt86) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:933:11: ID + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:933:11: ID { root_0 = (Object)adaptor.nil(); - ID340=(Token)match(input,ID,FOLLOW_ID_in_ftsRangeWord9212); if (state.failed) return retval; + ID340=(Token)match(input,ID,FOLLOW_ID_in_ftsRangeWord9213); if (state.failed) return retval; if ( state.backtracking==0 ) { ID340_tree = (Object)adaptor.create(ID340); adaptor.addChild(root_0, ID340_tree); @@ -13504,12 +13476,12 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:934:11: FTSWORD + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:934:11: FTSWORD { root_0 = (Object)adaptor.nil(); - FTSWORD341=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsRangeWord9224); if (state.failed) return retval; + FTSWORD341=(Token)match(input,FTSWORD,FOLLOW_FTSWORD_in_ftsRangeWord9225); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSWORD341_tree = (Object)adaptor.create(FTSWORD341); adaptor.addChild(root_0, FTSWORD341_tree); @@ -13518,12 +13490,12 @@ public class FTSParser extends Parser { } break; case 3 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:935:11: FTSPRE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:935:11: FTSPRE { root_0 = (Object)adaptor.nil(); - FTSPRE342=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsRangeWord9236); if (state.failed) return retval; + FTSPRE342=(Token)match(input,FTSPRE,FOLLOW_FTSPRE_in_ftsRangeWord9237); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSPRE342_tree = (Object)adaptor.create(FTSPRE342); adaptor.addChild(root_0, FTSPRE342_tree); @@ -13532,12 +13504,12 @@ public class FTSParser extends Parser { } break; case 4 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:936:11: FTSWILD + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:936:11: FTSWILD { root_0 = (Object)adaptor.nil(); - FTSWILD343=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsRangeWord9248); if (state.failed) return retval; + FTSWILD343=(Token)match(input,FTSWILD,FOLLOW_FTSWILD_in_ftsRangeWord9249); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSWILD343_tree = (Object)adaptor.create(FTSWILD343); adaptor.addChild(root_0, FTSWILD343_tree); @@ -13546,12 +13518,12 @@ public class FTSParser extends Parser { } break; case 5 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:937:11: FTSPHRASE + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:937:11: FTSPHRASE { root_0 = (Object)adaptor.nil(); - FTSPHRASE344=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsRangeWord9260); if (state.failed) return retval; + FTSPHRASE344=(Token)match(input,FTSPHRASE,FOLLOW_FTSPHRASE_in_ftsRangeWord9261); if (state.failed) return retval; if ( state.backtracking==0 ) { FTSPHRASE344_tree = (Object)adaptor.create(FTSPHRASE344); adaptor.addChild(root_0, FTSPHRASE344_tree); @@ -13560,12 +13532,12 @@ public class FTSParser extends Parser { } break; case 6 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:938:11: DECIMAL_INTEGER_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:938:11: DECIMAL_INTEGER_LITERAL { root_0 = (Object)adaptor.nil(); - DECIMAL_INTEGER_LITERAL345=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord9272); if (state.failed) return retval; + DECIMAL_INTEGER_LITERAL345=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord9273); if (state.failed) return retval; if ( state.backtracking==0 ) { DECIMAL_INTEGER_LITERAL345_tree = (Object)adaptor.create(DECIMAL_INTEGER_LITERAL345); adaptor.addChild(root_0, DECIMAL_INTEGER_LITERAL345_tree); @@ -13574,12 +13546,12 @@ public class FTSParser extends Parser { } break; case 7 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:939:11: FLOATING_POINT_LITERAL + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:939:11: FLOATING_POINT_LITERAL { root_0 = (Object)adaptor.nil(); - FLOATING_POINT_LITERAL346=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord9284); if (state.failed) return retval; + FLOATING_POINT_LITERAL346=(Token)match(input,FLOATING_POINT_LITERAL,FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord9285); if (state.failed) return retval; if ( state.backtracking==0 ) { FLOATING_POINT_LITERAL346_tree = (Object)adaptor.create(FLOATING_POINT_LITERAL346); adaptor.addChild(root_0, FLOATING_POINT_LITERAL346_tree); @@ -13588,12 +13560,12 @@ public class FTSParser extends Parser { } break; case 8 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:940:11: DATETIME + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:940:11: DATETIME { root_0 = (Object)adaptor.nil(); - DATETIME347=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsRangeWord9296); if (state.failed) return retval; + DATETIME347=(Token)match(input,DATETIME,FOLLOW_DATETIME_in_ftsRangeWord9297); if (state.failed) return retval; if ( state.backtracking==0 ) { DATETIME347_tree = (Object)adaptor.create(DATETIME347); adaptor.addChild(root_0, DATETIME347_tree); @@ -13602,12 +13574,12 @@ public class FTSParser extends Parser { } break; case 9 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:941:11: STAR + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:941:11: STAR { root_0 = (Object)adaptor.nil(); - STAR348=(Token)match(input,STAR,FOLLOW_STAR_in_ftsRangeWord9308); if (state.failed) return retval; + STAR348=(Token)match(input,STAR,FOLLOW_STAR_in_ftsRangeWord9309); if (state.failed) return retval; if ( state.backtracking==0 ) { STAR348_tree = (Object)adaptor.create(STAR348); adaptor.addChild(root_0, STAR348_tree); @@ -13616,18 +13588,18 @@ public class FTSParser extends Parser { } break; case 10 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:942:11: URI identifier + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:942:11: URI identifier { root_0 = (Object)adaptor.nil(); - URI349=(Token)match(input,URI,FOLLOW_URI_in_ftsRangeWord9320); if (state.failed) return retval; + URI349=(Token)match(input,URI,FOLLOW_URI_in_ftsRangeWord9321); if (state.failed) return retval; if ( state.backtracking==0 ) { URI349_tree = (Object)adaptor.create(URI349); adaptor.addChild(root_0, URI349_tree); } - pushFollow(FOLLOW_identifier_in_ftsRangeWord9322); + pushFollow(FOLLOW_identifier_in_ftsRangeWord9323); identifier350=identifier(); state._fsp--; if (state.failed) return retval; @@ -13666,7 +13638,7 @@ public class FTSParser extends Parser { // $ANTLR start "or" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:947:1: or : ( OR | BAR BAR ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:947:1: or : ( OR | BAR BAR ); public final FTSParser.or_return or() throws RecognitionException { FTSParser.or_return retval = new FTSParser.or_return(); retval.start = input.LT(1); @@ -13682,7 +13654,7 @@ public class FTSParser extends Parser { Object BAR353_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:948:9: ( OR | BAR BAR ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:948:9: ( OR | BAR BAR ) int alt87=2; int LA87_0 = input.LA(1); if ( (LA87_0==OR) ) { @@ -13701,12 +13673,12 @@ public class FTSParser extends Parser { switch (alt87) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:949:9: OR + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:949:9: OR { root_0 = (Object)adaptor.nil(); - OR351=(Token)match(input,OR,FOLLOW_OR_in_or9357); if (state.failed) return retval; + OR351=(Token)match(input,OR,FOLLOW_OR_in_or9358); if (state.failed) return retval; if ( state.backtracking==0 ) { OR351_tree = (Object)adaptor.create(OR351); adaptor.addChild(root_0, OR351_tree); @@ -13715,18 +13687,18 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:950:11: BAR BAR + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:950:11: BAR BAR { root_0 = (Object)adaptor.nil(); - BAR352=(Token)match(input,BAR,FOLLOW_BAR_in_or9369); if (state.failed) return retval; + BAR352=(Token)match(input,BAR,FOLLOW_BAR_in_or9370); if (state.failed) return retval; if ( state.backtracking==0 ) { BAR352_tree = (Object)adaptor.create(BAR352); adaptor.addChild(root_0, BAR352_tree); } - BAR353=(Token)match(input,BAR,FOLLOW_BAR_in_or9371); if (state.failed) return retval; + BAR353=(Token)match(input,BAR,FOLLOW_BAR_in_or9372); if (state.failed) return retval; if ( state.backtracking==0 ) { BAR353_tree = (Object)adaptor.create(BAR353); adaptor.addChild(root_0, BAR353_tree); @@ -13765,7 +13737,7 @@ public class FTSParser extends Parser { // $ANTLR start "and" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:953:1: and : ( AND | AMP AMP ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:953:1: and : ( AND | AMP AMP ); public final FTSParser.and_return and() throws RecognitionException { FTSParser.and_return retval = new FTSParser.and_return(); retval.start = input.LT(1); @@ -13781,7 +13753,7 @@ public class FTSParser extends Parser { Object AMP356_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:954:9: ( AND | AMP AMP ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:954:9: ( AND | AMP AMP ) int alt88=2; int LA88_0 = input.LA(1); if ( (LA88_0==AND) ) { @@ -13800,12 +13772,12 @@ public class FTSParser extends Parser { switch (alt88) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:955:9: AND + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:955:9: AND { root_0 = (Object)adaptor.nil(); - AND354=(Token)match(input,AND,FOLLOW_AND_in_and9404); if (state.failed) return retval; + AND354=(Token)match(input,AND,FOLLOW_AND_in_and9405); if (state.failed) return retval; if ( state.backtracking==0 ) { AND354_tree = (Object)adaptor.create(AND354); adaptor.addChild(root_0, AND354_tree); @@ -13814,18 +13786,18 @@ public class FTSParser extends Parser { } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:956:11: AMP AMP + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:956:11: AMP AMP { root_0 = (Object)adaptor.nil(); - AMP355=(Token)match(input,AMP,FOLLOW_AMP_in_and9416); if (state.failed) return retval; + AMP355=(Token)match(input,AMP,FOLLOW_AMP_in_and9417); if (state.failed) return retval; if ( state.backtracking==0 ) { AMP355_tree = (Object)adaptor.create(AMP355); adaptor.addChild(root_0, AMP355_tree); } - AMP356=(Token)match(input,AMP,FOLLOW_AMP_in_and9418); if (state.failed) return retval; + AMP356=(Token)match(input,AMP,FOLLOW_AMP_in_and9419); if (state.failed) return retval; if ( state.backtracking==0 ) { AMP356_tree = (Object)adaptor.create(AMP356); adaptor.addChild(root_0, AMP356_tree); @@ -13864,7 +13836,7 @@ public class FTSParser extends Parser { // $ANTLR start "not" - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:959:1: not : ( NOT | EXCLAMATION ); + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:959:1: not : ( NOT | EXCLAMATION ); public final FTSParser.not_return not() throws RecognitionException { FTSParser.not_return retval = new FTSParser.not_return(); retval.start = input.LT(1); @@ -13876,8 +13848,8 @@ public class FTSParser extends Parser { Object set357_tree=null; try { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:960:9: ( NOT | EXCLAMATION ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:960:9: ( NOT | EXCLAMATION ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g: { root_0 = (Object)adaptor.nil(); @@ -13918,10 +13890,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred1_FTS public final void synpred1_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:9: ( not ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:10: not + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:9: ( not ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:415:10: not { - pushFollow(FOLLOW_not_in_synpred1_FTS1233); + pushFollow(FOLLOW_not_in_synpred1_FTS1234); not(); state._fsp--; if (state.failed) return; @@ -13933,10 +13905,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred2_FTS public final void synpred2_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:12: ( ftsFieldGroupProximity ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:13: ftsFieldGroupProximity + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:12: ( ftsFieldGroupProximity ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:447:13: ftsFieldGroupProximity { - pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred2_FTS1746); + pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred2_FTS1747); ftsFieldGroupProximity(); state._fsp--; if (state.failed) return; @@ -13948,10 +13920,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred3_FTS public final void synpred3_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:12: ( ftsRange ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:13: ftsRange + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:12: ( ftsRange ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:451:13: ftsRange { - pushFollow(FOLLOW_ftsRange_in_synpred3_FTS1823); + pushFollow(FOLLOW_ftsRange_in_synpred3_FTS1824); ftsRange(); state._fsp--; if (state.failed) return; @@ -13963,10 +13935,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred4_FTS public final void synpred4_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:12: ( ftsFieldGroup ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:13: ftsFieldGroup + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:12: ( ftsFieldGroup ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:455:13: ftsFieldGroup { - pushFollow(FOLLOW_ftsFieldGroup_in_synpred4_FTS1902); + pushFollow(FOLLOW_ftsFieldGroup_in_synpred4_FTS1903); ftsFieldGroup(); state._fsp--; if (state.failed) return; @@ -13978,10 +13950,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred5_FTS public final void synpred5_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:12: ( ftsTermOrPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:13: ftsTermOrPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:12: ( ftsTermOrPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:458:13: ftsTermOrPhrase { - pushFollow(FOLLOW_ftsTermOrPhrase_in_synpred5_FTS1951); + pushFollow(FOLLOW_ftsTermOrPhrase_in_synpred5_FTS1952); ftsTermOrPhrase(); state._fsp--; if (state.failed) return; @@ -13993,10 +13965,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred6_FTS public final void synpred6_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:12: ( ftsExactTermOrPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:13: ftsExactTermOrPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:12: ( ftsExactTermOrPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:460:13: ftsExactTermOrPhrase { - pushFollow(FOLLOW_ftsExactTermOrPhrase_in_synpred6_FTS1980); + pushFollow(FOLLOW_ftsExactTermOrPhrase_in_synpred6_FTS1981); ftsExactTermOrPhrase(); state._fsp--; if (state.failed) return; @@ -14008,10 +13980,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred7_FTS public final void synpred7_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:12: ( ftsTokenisedTermOrPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:13: ftsTokenisedTermOrPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:12: ( ftsTokenisedTermOrPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:462:13: ftsTokenisedTermOrPhrase { - pushFollow(FOLLOW_ftsTokenisedTermOrPhrase_in_synpred7_FTS2010); + pushFollow(FOLLOW_ftsTokenisedTermOrPhrase_in_synpred7_FTS2011); ftsTokenisedTermOrPhrase(); state._fsp--; if (state.failed) return; @@ -14023,15 +13995,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred8_FTS public final void synpred8_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:9: ( fieldReferenceWithPrefix COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:10: fieldReferenceWithPrefix COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:9: ( fieldReferenceWithPrefix COLON ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:514:10: fieldReferenceWithPrefix COLON { - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred8_FTS2683); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred8_FTS2684); fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred8_FTS2685); if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred8_FTS2686); if (state.failed) return; } @@ -14040,10 +14012,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred9_FTS public final void synpred9_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:28: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:29: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:28: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:516:29: slop { - pushFollow(FOLLOW_slop_in_synpred9_FTS2724); + pushFollow(FOLLOW_slop_in_synpred9_FTS2725); slop(); state._fsp--; if (state.failed) return; @@ -14055,10 +14027,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred10_FTS public final void synpred10_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:26: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:27: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:26: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:519:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred10_FTS2799); + pushFollow(FOLLOW_fuzzy_in_synpred10_FTS2800); fuzzy(); state._fsp--; if (state.failed) return; @@ -14070,15 +14042,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred11_FTS public final void synpred11_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:9: ( fieldReferenceWithoutPrefix COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:10: fieldReferenceWithoutPrefix COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:9: ( fieldReferenceWithoutPrefix COLON ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:523:10: fieldReferenceWithoutPrefix COLON { - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred11_FTS2866); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred11_FTS2867); fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred11_FTS2868); if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred11_FTS2869); if (state.failed) return; } @@ -14087,10 +14059,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred12_FTS public final void synpred12_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:28: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:29: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:28: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:525:29: slop { - pushFollow(FOLLOW_slop_in_synpred12_FTS2907); + pushFollow(FOLLOW_slop_in_synpred12_FTS2908); slop(); state._fsp--; if (state.failed) return; @@ -14102,10 +14074,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred13_FTS public final void synpred13_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:26: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:27: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:26: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:528:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred13_FTS2982); + pushFollow(FOLLOW_fuzzy_in_synpred13_FTS2983); fuzzy(); state._fsp--; if (state.failed) return; @@ -14117,10 +14089,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred14_FTS public final void synpred14_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:20: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:21: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:20: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:532:21: slop { - pushFollow(FOLLOW_slop_in_synpred14_FTS3052); + pushFollow(FOLLOW_slop_in_synpred14_FTS3053); slop(); state._fsp--; if (state.failed) return; @@ -14132,10 +14104,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred15_FTS public final void synpred15_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:18: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:19: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:18: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:535:19: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred15_FTS3110); + pushFollow(FOLLOW_fuzzy_in_synpred15_FTS3111); fuzzy(); state._fsp--; if (state.failed) return; @@ -14147,15 +14119,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred16_FTS public final void synpred16_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:9: ( fieldReferenceWithPrefix COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:10: fieldReferenceWithPrefix COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:9: ( fieldReferenceWithPrefix COLON ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:544:10: fieldReferenceWithPrefix COLON { - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred16_FTS3215); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred16_FTS3216); fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred16_FTS3217); if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred16_FTS3218); if (state.failed) return; } @@ -14164,10 +14136,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred17_FTS public final void synpred17_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:28: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:29: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:28: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:546:29: slop { - pushFollow(FOLLOW_slop_in_synpred17_FTS3256); + pushFollow(FOLLOW_slop_in_synpred17_FTS3257); slop(); state._fsp--; if (state.failed) return; @@ -14179,10 +14151,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred18_FTS public final void synpred18_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:26: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:27: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:26: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:549:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred18_FTS3331); + pushFollow(FOLLOW_fuzzy_in_synpred18_FTS3332); fuzzy(); state._fsp--; if (state.failed) return; @@ -14194,15 +14166,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred19_FTS public final void synpred19_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:9: ( fieldReferenceWithoutPrefix COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:10: fieldReferenceWithoutPrefix COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:9: ( fieldReferenceWithoutPrefix COLON ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:553:10: fieldReferenceWithoutPrefix COLON { - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred19_FTS3398); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred19_FTS3399); fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred19_FTS3400); if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred19_FTS3401); if (state.failed) return; } @@ -14211,10 +14183,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred20_FTS public final void synpred20_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:28: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:29: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:28: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:555:29: slop { - pushFollow(FOLLOW_slop_in_synpred20_FTS3439); + pushFollow(FOLLOW_slop_in_synpred20_FTS3440); slop(); state._fsp--; if (state.failed) return; @@ -14226,10 +14198,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred21_FTS public final void synpred21_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:26: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:27: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:26: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:558:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred21_FTS3514); + pushFollow(FOLLOW_fuzzy_in_synpred21_FTS3515); fuzzy(); state._fsp--; if (state.failed) return; @@ -14241,10 +14213,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred22_FTS public final void synpred22_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:20: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:21: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:20: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:562:21: slop { - pushFollow(FOLLOW_slop_in_synpred22_FTS3584); + pushFollow(FOLLOW_slop_in_synpred22_FTS3585); slop(); state._fsp--; if (state.failed) return; @@ -14256,10 +14228,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred23_FTS public final void synpred23_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:18: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:19: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:18: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:565:19: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred23_FTS3642); + pushFollow(FOLLOW_fuzzy_in_synpred23_FTS3643); fuzzy(); state._fsp--; if (state.failed) return; @@ -14271,15 +14243,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred24_FTS public final void synpred24_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:9: ( fieldReferenceWithPrefix COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:10: fieldReferenceWithPrefix COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:9: ( fieldReferenceWithPrefix COLON ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:575:10: fieldReferenceWithPrefix COLON { - pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred24_FTS3749); + pushFollow(FOLLOW_fieldReferenceWithPrefix_in_synpred24_FTS3750); fieldReferenceWithPrefix(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred24_FTS3751); if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred24_FTS3752); if (state.failed) return; } @@ -14288,10 +14260,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred25_FTS public final void synpred25_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:28: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:29: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:28: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:577:29: slop { - pushFollow(FOLLOW_slop_in_synpred25_FTS3790); + pushFollow(FOLLOW_slop_in_synpred25_FTS3791); slop(); state._fsp--; if (state.failed) return; @@ -14303,10 +14275,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred26_FTS public final void synpred26_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:26: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:27: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:26: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:580:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred26_FTS3865); + pushFollow(FOLLOW_fuzzy_in_synpred26_FTS3866); fuzzy(); state._fsp--; if (state.failed) return; @@ -14318,15 +14290,15 @@ public class FTSParser extends Parser { // $ANTLR start synpred27_FTS public final void synpred27_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:9: ( fieldReferenceWithoutPrefix COLON ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:10: fieldReferenceWithoutPrefix COLON + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:9: ( fieldReferenceWithoutPrefix COLON ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:584:10: fieldReferenceWithoutPrefix COLON { - pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred27_FTS3932); + pushFollow(FOLLOW_fieldReferenceWithoutPrefix_in_synpred27_FTS3933); fieldReferenceWithoutPrefix(); state._fsp--; if (state.failed) return; - match(input,COLON,FOLLOW_COLON_in_synpred27_FTS3934); if (state.failed) return; + match(input,COLON,FOLLOW_COLON_in_synpred27_FTS3935); if (state.failed) return; } @@ -14335,10 +14307,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred28_FTS public final void synpred28_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:28: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:29: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:28: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:586:29: slop { - pushFollow(FOLLOW_slop_in_synpred28_FTS3973); + pushFollow(FOLLOW_slop_in_synpred28_FTS3974); slop(); state._fsp--; if (state.failed) return; @@ -14350,10 +14322,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred29_FTS public final void synpred29_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:26: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:27: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:26: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:589:27: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred29_FTS4048); + pushFollow(FOLLOW_fuzzy_in_synpred29_FTS4049); fuzzy(); state._fsp--; if (state.failed) return; @@ -14365,10 +14337,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred30_FTS public final void synpred30_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:20: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:21: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:20: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:593:21: slop { - pushFollow(FOLLOW_slop_in_synpred30_FTS4118); + pushFollow(FOLLOW_slop_in_synpred30_FTS4119); slop(); state._fsp--; if (state.failed) return; @@ -14380,10 +14352,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred31_FTS public final void synpred31_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:18: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:19: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:18: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:596:19: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred31_FTS4176); + pushFollow(FOLLOW_fuzzy_in_synpred31_FTS4177); fuzzy(); state._fsp--; if (state.failed) return; @@ -14395,10 +14367,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred32_FTS public final void synpred32_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:9: ( not ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:10: not + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:9: ( not ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:669:10: not { - pushFollow(FOLLOW_not_in_synpred32_FTS4923); + pushFollow(FOLLOW_not_in_synpred32_FTS4924); not(); state._fsp--; if (state.failed) return; @@ -14410,10 +14382,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred33_FTS public final void synpred33_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:9: ( ftsFieldGroupProximity ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:10: ftsFieldGroupProximity + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:9: ( ftsFieldGroupProximity ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:688:10: ftsFieldGroupProximity { - pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred33_FTS5288); + pushFollow(FOLLOW_ftsFieldGroupProximity_in_synpred33_FTS5289); ftsFieldGroupProximity(); state._fsp--; if (state.failed) return; @@ -14425,10 +14397,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred34_FTS public final void synpred34_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:11: ( ftsFieldGroupTerm ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:12: ftsFieldGroupTerm + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:11: ( ftsFieldGroupTerm ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:12: ftsFieldGroupTerm { - pushFollow(FOLLOW_ftsFieldGroupTerm_in_synpred34_FTS5354); + pushFollow(FOLLOW_ftsFieldGroupTerm_in_synpred34_FTS5355); ftsFieldGroupTerm(); state._fsp--; if (state.failed) return; @@ -14440,10 +14412,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred35_FTS public final void synpred35_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:54: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:55: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:54: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:691:55: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred35_FTS5364); + pushFollow(FOLLOW_fuzzy_in_synpred35_FTS5365); fuzzy(); state._fsp--; if (state.failed) return; @@ -14455,10 +14427,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred36_FTS public final void synpred36_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:11: ( ftsFieldGroupExactTerm ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:12: ftsFieldGroupExactTerm + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:11: ( ftsFieldGroupExactTerm ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:12: ftsFieldGroupExactTerm { - pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_synpred36_FTS5435); + pushFollow(FOLLOW_ftsFieldGroupExactTerm_in_synpred36_FTS5436); ftsFieldGroupExactTerm(); state._fsp--; if (state.failed) return; @@ -14470,10 +14442,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred37_FTS public final void synpred37_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:64: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:65: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:64: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:694:65: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred37_FTS5445); + pushFollow(FOLLOW_fuzzy_in_synpred37_FTS5446); fuzzy(); state._fsp--; if (state.failed) return; @@ -14485,10 +14457,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred38_FTS public final void synpred38_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:11: ( ftsFieldGroupPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:12: ftsFieldGroupPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:11: ( ftsFieldGroupPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:12: ftsFieldGroupPhrase { - pushFollow(FOLLOW_ftsFieldGroupPhrase_in_synpred38_FTS5516); + pushFollow(FOLLOW_ftsFieldGroupPhrase_in_synpred38_FTS5517); ftsFieldGroupPhrase(); state._fsp--; if (state.failed) return; @@ -14500,10 +14472,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred39_FTS public final void synpred39_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:58: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:59: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:58: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:697:59: slop { - pushFollow(FOLLOW_slop_in_synpred39_FTS5526); + pushFollow(FOLLOW_slop_in_synpred39_FTS5527); slop(); state._fsp--; if (state.failed) return; @@ -14515,10 +14487,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred40_FTS public final void synpred40_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:11: ( ftsFieldGroupExactPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:12: ftsFieldGroupExactPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:11: ( ftsFieldGroupExactPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:12: ftsFieldGroupExactPhrase { - pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_synpred40_FTS5597); + pushFollow(FOLLOW_ftsFieldGroupExactPhrase_in_synpred40_FTS5598); ftsFieldGroupExactPhrase(); state._fsp--; if (state.failed) return; @@ -14530,10 +14502,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred41_FTS public final void synpred41_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:68: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:69: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:68: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:700:69: slop { - pushFollow(FOLLOW_slop_in_synpred41_FTS5607); + pushFollow(FOLLOW_slop_in_synpred41_FTS5608); slop(); state._fsp--; if (state.failed) return; @@ -14545,10 +14517,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred42_FTS public final void synpred42_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:11: ( ftsFieldGroupTokenisedPhrase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:12: ftsFieldGroupTokenisedPhrase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:11: ( ftsFieldGroupTokenisedPhrase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:12: ftsFieldGroupTokenisedPhrase { - pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred42_FTS5678); + pushFollow(FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred42_FTS5679); ftsFieldGroupTokenisedPhrase(); state._fsp--; if (state.failed) return; @@ -14560,10 +14532,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred43_FTS public final void synpred43_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:76: ( slop ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:77: slop + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:76: ( slop ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:703:77: slop { - pushFollow(FOLLOW_slop_in_synpred43_FTS5688); + pushFollow(FOLLOW_slop_in_synpred43_FTS5689); slop(); state._fsp--; if (state.failed) return; @@ -14575,10 +14547,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred44_FTS public final void synpred44_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:11: ( ftsFieldGroupSynonym ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:12: ftsFieldGroupSynonym + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:11: ( ftsFieldGroupSynonym ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:12: ftsFieldGroupSynonym { - pushFollow(FOLLOW_ftsFieldGroupSynonym_in_synpred44_FTS5759); + pushFollow(FOLLOW_ftsFieldGroupSynonym_in_synpred44_FTS5760); ftsFieldGroupSynonym(); state._fsp--; if (state.failed) return; @@ -14590,10 +14562,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred45_FTS public final void synpred45_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:60: ( fuzzy ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:61: fuzzy + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:60: ( fuzzy ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:706:61: fuzzy { - pushFollow(FOLLOW_fuzzy_in_synpred45_FTS5769); + pushFollow(FOLLOW_fuzzy_in_synpred45_FTS5770); fuzzy(); state._fsp--; if (state.failed) return; @@ -14605,10 +14577,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred46_FTS public final void synpred46_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:11: ( ftsFieldGroupRange ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:12: ftsFieldGroupRange + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:11: ( ftsFieldGroupRange ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:709:12: ftsFieldGroupRange { - pushFollow(FOLLOW_ftsFieldGroupRange_in_synpred46_FTS5840); + pushFollow(FOLLOW_ftsFieldGroupRange_in_synpred46_FTS5841); ftsFieldGroupRange(); state._fsp--; if (state.failed) return; @@ -14620,10 +14592,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred47_FTS public final void synpred47_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:38: ( proximityGroup ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:39: proximityGroup + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:38: ( proximityGroup ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:752:39: proximityGroup { - pushFollow(FOLLOW_proximityGroup_in_synpred47_FTS6269); + pushFollow(FOLLOW_proximityGroup_in_synpred47_FTS6270); proximityGroup(); state._fsp--; if (state.failed) return; @@ -14635,14 +14607,14 @@ public class FTSParser extends Parser { // $ANTLR start synpred48_FTS public final void synpred48_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:9: ( ID DOT ID ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:10: ID DOT ID + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:9: ( ID DOT ID ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:852:10: ID DOT ID { - match(input,ID,FOLLOW_ID_in_synpred48_FTS7426); if (state.failed) return; + match(input,ID,FOLLOW_ID_in_synpred48_FTS7427); if (state.failed) return; - match(input,DOT,FOLLOW_DOT_in_synpred48_FTS7428); if (state.failed) return; + match(input,DOT,FOLLOW_DOT_in_synpred48_FTS7429); if (state.failed) return; - match(input,ID,FOLLOW_ID_in_synpred48_FTS7430); if (state.failed) return; + match(input,ID,FOLLOW_ID_in_synpred48_FTS7431); if (state.failed) return; } @@ -14651,8 +14623,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred49_FTS public final void synpred49_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:872:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -14664,7 +14636,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7752); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7753); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14679,7 +14651,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7760); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7761); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14694,7 +14666,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7768); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7769); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14709,7 +14681,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7776); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7777); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14724,7 +14696,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7784); + pushFollow(FOLLOW_ftsWordBase_in_synpred49_FTS7785); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14736,7 +14708,7 @@ public class FTSParser extends Parser { // $ANTLR start synpred50_FTS public final void synpred50_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT | COMMA ftsWordBase ) int alt89=2; int LA89_0 = input.LA(1); if ( (LA89_0==DATETIME||LA89_0==DECIMAL_INTEGER_LITERAL||LA89_0==FLOATING_POINT_LITERAL||(LA89_0 >= FTSPRE && LA89_0 <= FTSWORD)||LA89_0==ID||LA89_0==NOT||LA89_0==QUESTION_MARK||LA89_0==STAR||LA89_0==TO||LA89_0==URI) ) { @@ -14755,9 +14727,9 @@ public class FTSParser extends Parser { switch (alt89) { case 1 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase DOT { - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7852); + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7853); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14772,7 +14744,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7860); + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7861); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14787,7 +14759,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7868); + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7869); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14802,21 +14774,21 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7876); + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7877); ftsWordBase(); state._fsp--; if (state.failed) return; - match(input,DOT,FOLLOW_DOT_in_synpred50_FTS7878); if (state.failed) return; + match(input,DOT,FOLLOW_DOT_in_synpred50_FTS7879); if (state.failed) return; } break; case 2 : - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:100: COMMA ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:874:100: COMMA ftsWordBase { - match(input,COMMA,FOLLOW_COMMA_in_synpred50_FTS7880); if (state.failed) return; + match(input,COMMA,FOLLOW_COMMA_in_synpred50_FTS7881); if (state.failed) return; - pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7882); + pushFollow(FOLLOW_ftsWordBase_in_synpred50_FTS7883); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14830,8 +14802,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred51_FTS public final void synpred51_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:876:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -14843,7 +14815,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7951); + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7952); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14858,7 +14830,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7959); + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7960); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14873,7 +14845,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7967); + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7968); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14888,7 +14860,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7975); + pushFollow(FOLLOW_ftsWordBase_in_synpred51_FTS7976); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14910,10 +14882,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred52_FTS public final void synpred52_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:878:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { - pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8047); + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8048); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14928,7 +14900,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8055); + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8056); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14943,7 +14915,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8063); + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8064); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14958,7 +14930,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8071); + pushFollow(FOLLOW_ftsWordBase_in_synpred52_FTS8072); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -14980,8 +14952,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred53_FTS public final void synpred53_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:12: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:880:13: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -14993,7 +14965,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8144); + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8145); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15008,7 +14980,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8152); + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8153); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15023,7 +14995,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8160); + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8161); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15038,7 +15010,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8168); + pushFollow(FOLLOW_ftsWordBase_in_synpred53_FTS8169); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15050,10 +15022,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred54_FTS public final void synpred54_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:882:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { - pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8228); + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8229); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15068,7 +15040,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8236); + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8237); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15083,7 +15055,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8244); + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8245); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15098,7 +15070,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8252); + pushFollow(FOLLOW_ftsWordBase_in_synpred54_FTS8253); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15110,8 +15082,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred55_FTS public final void synpred55_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:884:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -15123,7 +15095,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8312); + pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8313); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15138,7 +15110,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8320); + pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8321); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15153,7 +15125,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8328); + pushFollow(FOLLOW_ftsWordBase_in_synpred55_FTS8329); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15175,10 +15147,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred56_FTS public final void synpred56_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:886:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { - pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8392); + pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8393); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15193,7 +15165,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8400); + pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8401); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15208,7 +15180,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8408); + pushFollow(FOLLOW_ftsWordBase_in_synpred56_FTS8409); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15230,8 +15202,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred57_FTS public final void synpred57_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:888:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -15243,7 +15215,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8472); + pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8473); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15258,7 +15230,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8480); + pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8481); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15273,7 +15245,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8488); + pushFollow(FOLLOW_ftsWordBase_in_synpred57_FTS8489); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15285,10 +15257,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred58_FTS public final void synpred58_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:890:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { - pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8540); + pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8541); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15303,7 +15275,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8548); + pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8549); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15318,7 +15290,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8556); + pushFollow(FOLLOW_ftsWordBase_in_synpred58_FTS8557); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15330,8 +15302,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred59_FTS public final void synpred59_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:892:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -15343,7 +15315,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred59_FTS8609); + pushFollow(FOLLOW_ftsWordBase_in_synpred59_FTS8610); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15358,7 +15330,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred59_FTS8617); + pushFollow(FOLLOW_ftsWordBase_in_synpred59_FTS8618); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15380,10 +15352,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred60_FTS public final void synpred60_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:894:12: ftsWordBase ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { - pushFollow(FOLLOW_ftsWordBase_in_synpred60_FTS8673); + pushFollow(FOLLOW_ftsWordBase_in_synpred60_FTS8674); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15398,7 +15370,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred60_FTS8681); + pushFollow(FOLLOW_ftsWordBase_in_synpred60_FTS8682); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15420,8 +15392,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred61_FTS public final void synpred61_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:896:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ftsWordBase { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -15433,7 +15405,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred61_FTS8739); + pushFollow(FOLLOW_ftsWordBase_in_synpred61_FTS8740); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15448,7 +15420,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred61_FTS8747); + pushFollow(FOLLOW_ftsWordBase_in_synpred61_FTS8748); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15460,10 +15432,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred62_FTS public final void synpred62_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:12: ftsWordBase ( DOT | COMMA ) ftsWordBase + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:11: ( ftsWordBase ( DOT | COMMA ) ftsWordBase ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:898:12: ftsWordBase ( DOT | COMMA ) ftsWordBase { - pushFollow(FOLLOW_ftsWordBase_in_synpred62_FTS8791); + pushFollow(FOLLOW_ftsWordBase_in_synpred62_FTS8792); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15478,7 +15450,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred62_FTS8799); + pushFollow(FOLLOW_ftsWordBase_in_synpred62_FTS8800); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15490,8 +15462,8 @@ public class FTSParser extends Parser { // $ANTLR start synpred63_FTS public final void synpred63_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:11: ( ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:900:12: ( DOT | COMMA ) ftsWordBase ( DOT | COMMA ) { if ( input.LA(1)==COMMA||input.LA(1)==DOT ) { input.consume(); @@ -15503,7 +15475,7 @@ public class FTSParser extends Parser { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } - pushFollow(FOLLOW_ftsWordBase_in_synpred63_FTS8843); + pushFollow(FOLLOW_ftsWordBase_in_synpred63_FTS8844); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -15525,10 +15497,10 @@ public class FTSParser extends Parser { // $ANTLR start synpred64_FTS public final void synpred64_FTS_fragment() throws RecognitionException { - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:11: ( ftsWordBase ( DOT | COMMA ) ) - // src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:12: ftsWordBase ( DOT | COMMA ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:11: ( ftsWordBase ( DOT | COMMA ) ) + // ./alfresco-data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTS.g:902:12: ftsWordBase ( DOT | COMMA ) { - pushFollow(FOLLOW_ftsWordBase_in_synpred64_FTS8891); + pushFollow(FOLLOW_ftsWordBase_in_synpred64_FTS8892); ftsWordBase(); state._fsp--; if (state.failed) return; @@ -17015,6 +16987,7 @@ public class FTSParser extends Parser { int index17_204 = input.index(); input.rewind(); + s = -1; s = specialStateTransition0(LA17_204); input.seek(index17_204); @@ -17039,7 +17012,8 @@ public class FTSParser extends Parser { int index17_203 = input.index(); input.rewind(); - s = specialStateTransition2(LA17_203); + s = -1; + s = specialStateTransition1(LA17_203); input.seek(index17_203); if ( s>=0 ) return s; @@ -17050,7 +17024,8 @@ public class FTSParser extends Parser { int index17_160 = input.index(); input.rewind(); - s = specialStateTransition3(LA17_160); + s = -1; + s = specialStateTransition2(LA17_160); input.seek(index17_160); if ( s>=0 ) return s; @@ -17061,7 +17036,8 @@ public class FTSParser extends Parser { int index17_6 = input.index(); input.rewind(); - s = specialStateTransition4(LA17_6); + s = -1; + s = specialStateTransition3(LA17_6); input.seek(index17_6); if ( s>=0 ) return s; @@ -17072,7 +17048,8 @@ public class FTSParser extends Parser { int index17_166 = input.index(); input.rewind(); - s = specialStateTransition5(LA17_166); + s = -1; + s = specialStateTransition4(LA17_166); input.seek(index17_166); if ( s>=0 ) return s; @@ -17083,7 +17060,8 @@ public class FTSParser extends Parser { int index17_206 = input.index(); input.rewind(); - s = specialStateTransition6(LA17_206); + s = -1; + s = specialStateTransition5(LA17_206); input.seek(index17_206); if ( s>=0 ) return s; @@ -17094,7 +17072,8 @@ public class FTSParser extends Parser { int index17_165 = input.index(); input.rewind(); - s = specialStateTransition7(LA17_165); + s = -1; + s = specialStateTransition6(LA17_165); input.seek(index17_165); if ( s>=0 ) return s; @@ -17106,39 +17085,9 @@ public class FTSParser extends Parser { int index17_24 = input.index(); input.rewind(); s = -1; - if ( (LA17_24==ID) ) {s = 70;} - else if ( (LA17_24==FTSWORD) && (synpred5_FTS())) {s = 71;} - else if ( (LA17_24==FTSPRE) && (synpred5_FTS())) {s = 72;} - else if ( (LA17_24==FTSWILD) && (synpred5_FTS())) {s = 73;} - else if ( (LA17_24==NOT) && (synpred5_FTS())) {s = 74;} - else if ( (LA17_24==TO) && (synpred5_FTS())) {s = 75;} - else if ( (LA17_24==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 76;} - else if ( (LA17_24==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 77;} - else if ( (LA17_24==STAR) && (synpred5_FTS())) {s = 78;} - else if ( (LA17_24==QUESTION_MARK) && (synpred5_FTS())) {s = 79;} - else if ( (LA17_24==DATETIME) && (synpred5_FTS())) {s = 80;} - else if ( (LA17_24==URI) && (synpred5_FTS())) {s = 81;} - else if ( (LA17_24==TILDA) && (synpred5_FTS())) {s = 29;} - else if ( (LA17_24==CARAT) && (synpred5_FTS())) {s = 30;} - else if ( (LA17_24==AND) && (synpred5_FTS())) {s = 31;} - else if ( (LA17_24==AMP) && (synpred5_FTS())) {s = 32;} - else if ( (LA17_24==EOF) && (synpred5_FTS())) {s = 33;} - else if ( (LA17_24==RPAREN) && (synpred5_FTS())) {s = 34;} - else if ( (LA17_24==OR) && (synpred5_FTS())) {s = 35;} - else if ( (LA17_24==BAR) && (synpred5_FTS())) {s = 36;} - else if ( (LA17_24==EXCLAMATION) && (synpred5_FTS())) {s = 42;} - else if ( (LA17_24==AT) && (synpred5_FTS())) {s = 48;} - else if ( (LA17_24==FTSPHRASE) && (synpred5_FTS())) {s = 49;} - else if ( (LA17_24==LSQUARE) && (synpred5_FTS())) {s = 50;} - else if ( (LA17_24==LT) && (synpred5_FTS())) {s = 51;} - else if ( (LA17_24==COMMA||LA17_24==DOT) && (synpred5_FTS())) {s = 69;} - else if ( (LA17_24==EQUALS) && (synpred5_FTS())) {s = 53;} - else if ( (LA17_24==LPAREN) && (synpred5_FTS())) {s = 54;} - else if ( (LA17_24==PERCENT) && (synpred5_FTS())) {s = 55;} - else if ( (LA17_24==PLUS) && (synpred5_FTS())) {s = 56;} - else if ( (LA17_24==MINUS) && (synpred5_FTS())) {s = 57;} - - input.seek(index17_24); + s = specialStateTransition7(LA17_24); + + input.seek(index17_24); if ( s>=0 ) return s; break; @@ -19615,10 +19564,10 @@ public class FTSParser extends Parser { throw nvae; } + private int specialStateTransition0(int LA17_204) { - int s; - s = -1; + int s = -1; if ( (LA17_204==DOTDOT) && (synpred3_FTS())) {s = 27;} else if ( (LA17_204==COMMA||LA17_204==DOT) && (synpred5_FTS())) {s = 216;} else if ( (LA17_204==TILDA) && (synpred5_FTS())) {s = 217;} @@ -19654,10 +19603,10 @@ public class FTSParser extends Parser { return s; } - private int specialStateTransition2(int LA17_203) + + private int specialStateTransition1(int LA17_203) { - int s; - s = -1; + int s = -1; if ( (LA17_203==DOTDOT) && (synpred3_FTS())) {s = 27;} else if ( (LA17_203==COMMA||LA17_203==DOT) && (synpred5_FTS())) {s = 216;} else if ( (LA17_203==TILDA) && (synpred5_FTS())) {s = 217;} @@ -19693,10 +19642,9 @@ public class FTSParser extends Parser { return s; } - private int specialStateTransition3(int LA17_160) + private int specialStateTransition2(int LA17_160) { - int s; - s = -1; + int s = -1; if ( (LA17_160==LPAREN) && (synpred4_FTS())) {s = 100;} else if ( (LA17_160==ID) ) {s = 198;} else if ( (LA17_160==FTSWORD) ) {s = 199;} @@ -19717,10 +19665,9 @@ public class FTSParser extends Parser { return s; } - private int specialStateTransition4(int LA17_6) + private int specialStateTransition3(int LA17_6) { - int s; - s = -1; + int s = -1; if ( (LA17_6==STAR) ) {s = 25;} else if ( (LA17_6==COLON) ) {s = 26;} else if ( (LA17_6==COMMA||LA17_6==DOT) && (synpred5_FTS())) {s = 28;} @@ -19756,10 +19703,9 @@ public class FTSParser extends Parser { return s; } - private int specialStateTransition5(int LA17_166) + private int specialStateTransition4(int LA17_166) { - int s; - s = -1; + int s = -1; if ( (LA17_166==DOTDOT) && (synpred3_FTS())) {s = 27;} else if ( (LA17_166==COMMA||LA17_166==DOT) && (synpred5_FTS())) {s = 161;} else if ( (LA17_166==TILDA) && (synpred5_FTS())) {s = 162;} @@ -19795,10 +19741,9 @@ public class FTSParser extends Parser { return s; } - private int specialStateTransition6(int LA17_206) + private int specialStateTransition5(int LA17_206) { - int s; - s = -1; + int s = -1; if ( (LA17_206==DOTDOT) && (synpred3_FTS())) {s = 27;} else if ( (LA17_206==COMMA||LA17_206==DOT) && (synpred5_FTS())) {s = 216;} else if ( (LA17_206==TILDA) && (synpred5_FTS())) {s = 217;} @@ -19834,10 +19779,9 @@ public class FTSParser extends Parser { return s; } - private int specialStateTransition7(int LA17_165) + private int specialStateTransition6(int LA17_165) { - int s; - s = -1; + int s = -1; if ( (LA17_165==DOTDOT) && (synpred3_FTS())) {s = 27;} else if ( (LA17_165==COMMA||LA17_165==DOT) && (synpred5_FTS())) {s = 161;} else if ( (LA17_165==TILDA) && (synpred5_FTS())) {s = 162;} @@ -19872,6 +19816,43 @@ public class FTSParser extends Parser { else if ( (LA17_165==MINUS) && (synpred5_FTS())) {s = 57;} return s; } + + private int specialStateTransition7(int LA17_24) + { + int s = -1; + if ( (LA17_24==ID) ) {s = 70;} + else if ( (LA17_24==FTSWORD) && (synpred5_FTS())) {s = 71;} + else if ( (LA17_24==FTSPRE) && (synpred5_FTS())) {s = 72;} + else if ( (LA17_24==FTSWILD) && (synpred5_FTS())) {s = 73;} + else if ( (LA17_24==NOT) && (synpred5_FTS())) {s = 74;} + else if ( (LA17_24==TO) && (synpred5_FTS())) {s = 75;} + else if ( (LA17_24==DECIMAL_INTEGER_LITERAL) && (synpred5_FTS())) {s = 76;} + else if ( (LA17_24==FLOATING_POINT_LITERAL) && (synpred5_FTS())) {s = 77;} + else if ( (LA17_24==STAR) && (synpred5_FTS())) {s = 78;} + else if ( (LA17_24==QUESTION_MARK) && (synpred5_FTS())) {s = 79;} + else if ( (LA17_24==DATETIME) && (synpred5_FTS())) {s = 80;} + else if ( (LA17_24==URI) && (synpred5_FTS())) {s = 81;} + else if ( (LA17_24==TILDA) && (synpred5_FTS())) {s = 29;} + else if ( (LA17_24==CARAT) && (synpred5_FTS())) {s = 30;} + else if ( (LA17_24==AND) && (synpred5_FTS())) {s = 31;} + else if ( (LA17_24==AMP) && (synpred5_FTS())) {s = 32;} + else if ( (LA17_24==EOF) && (synpred5_FTS())) {s = 33;} + else if ( (LA17_24==RPAREN) && (synpred5_FTS())) {s = 34;} + else if ( (LA17_24==OR) && (synpred5_FTS())) {s = 35;} + else if ( (LA17_24==BAR) && (synpred5_FTS())) {s = 36;} + else if ( (LA17_24==EXCLAMATION) && (synpred5_FTS())) {s = 42;} + else if ( (LA17_24==AT) && (synpred5_FTS())) {s = 48;} + else if ( (LA17_24==FTSPHRASE) && (synpred5_FTS())) {s = 49;} + else if ( (LA17_24==LSQUARE) && (synpred5_FTS())) {s = 50;} + else if ( (LA17_24==LT) && (synpred5_FTS())) {s = 51;} + else if ( (LA17_24==COMMA||LA17_24==DOT) && (synpred5_FTS())) {s = 69;} + else if ( (LA17_24==EQUALS) && (synpred5_FTS())) {s = 53;} + else if ( (LA17_24==LPAREN) && (synpred5_FTS())) {s = 54;} + else if ( (LA17_24==PERCENT) && (synpred5_FTS())) {s = 55;} + else if ( (LA17_24==PLUS) && (synpred5_FTS())) {s = 56;} + else if ( (LA17_24==MINUS) && (synpred5_FTS())) {s = 57;} + return s; + } } static final String DFA30_eotS = @@ -31659,514 +31640,514 @@ public class FTSParser extends Parser { } } - public static final BitSet FOLLOW_ftsDisjunction_in_ftsQuery577 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_ftsQuery579 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_cmisExplicitDisjunction_in_ftsDisjunction639 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsExplicitDisjunction_in_ftsDisjunction653 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsImplicitDisjunction_in_ftsDisjunction667 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction700 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_ftsExplicitDisjunction703 = new BitSet(new long[]{0x803C80000920A8F0L,0x0000016101164138L}); - public static final BitSet FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction705 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_cmisConjunction_in_cmisExplicitDisjunction789 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_cmisExplicitDisjunction792 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004100L}); - public static final BitSet FOLLOW_cmisConjunction_in_cmisExplicitDisjunction794 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_ftsImplicitDisjunction879 = new BitSet(new long[]{0x803C80000920A8E0L,0x0000016101164138L}); - public static final BitSet FOLLOW_ftsExplicitConjunction_in_ftsImplicitDisjunction882 = new BitSet(new long[]{0x803C80000920A8E2L,0x0000016101164138L}); - public static final BitSet FOLLOW_ftsPrefixed_in_ftsExplicitConjunction969 = new BitSet(new long[]{0x0000000000000032L}); - public static final BitSet FOLLOW_and_in_ftsExplicitConjunction972 = new BitSet(new long[]{0x803C80000920A8E0L,0x0000016101164138L}); - public static final BitSet FOLLOW_ftsPrefixed_in_ftsExplicitConjunction974 = new BitSet(new long[]{0x0000000000000032L}); - public static final BitSet FOLLOW_and_in_ftsImplicitConjunction1059 = new BitSet(new long[]{0x803C80000920A8E0L,0x0000016101164138L}); - public static final BitSet FOLLOW_ftsPrefixed_in_ftsImplicitConjunction1062 = new BitSet(new long[]{0x803C80000920A8F2L,0x0000016101164138L}); - public static final BitSet FOLLOW_cmisPrefixed_in_cmisConjunction1146 = new BitSet(new long[]{0x803C80000020A802L,0x0000014101004100L}); - public static final BitSet FOLLOW_not_in_ftsPrefixed1238 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); - public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1240 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsPrefixed1242 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1306 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsPrefixed1308 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PLUS_in_ftsPrefixed1372 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); - public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1374 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsPrefixed1376 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BAR_in_ftsPrefixed1440 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); - public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1442 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsPrefixed1444 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_MINUS_in_ftsPrefixed1508 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); - public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1510 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsPrefixed1512 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_cmisTest_in_cmisPrefixed1597 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_MINUS_in_cmisPrefixed1657 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_cmisTest_in_cmisPrefixed1659 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximity_in_ftsTest1751 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsRange_in_ftsTest1828 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroup_in_ftsTest1907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsTermOrPhrase_in_ftsTest1956 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsExactTermOrPhrase_in_ftsTest1985 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsTokenisedTermOrPhrase_in_ftsTest2015 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LPAREN_in_ftsTest2046 = new BitSet(new long[]{0x803C80000920A8F0L,0x0000016101164138L}); - public static final BitSet FOLLOW_ftsDisjunction_in_ftsTest2048 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_ftsTest2050 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_template_in_ftsTest2083 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_cmisTerm_in_cmisTest2136 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_cmisPhrase_in_cmisTest2196 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PERCENT_in_template2277 = new BitSet(new long[]{0x8000000000000060L,0x0000014000024000L}); - public static final BitSet FOLLOW_tempReference_in_template2279 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PERCENT_in_template2339 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_LPAREN_in_template2341 = new BitSet(new long[]{0x8000000000000060L,0x0000014000024000L}); - public static final BitSet FOLLOW_tempReference_in_template2344 = new BitSet(new long[]{0x8000000000000860L,0x0000014008024000L}); - public static final BitSet FOLLOW_COMMA_in_template2346 = new BitSet(new long[]{0x8000000000000060L,0x0000014008024000L}); - public static final BitSet FOLLOW_RPAREN_in_template2351 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_fuzzy2433 = new BitSet(new long[]{0x0000800000008000L}); - public static final BitSet FOLLOW_number_in_fuzzy2435 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_slop2516 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_slop2518 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CARAT_in_boost2599 = new BitSet(new long[]{0x0000800000008000L}); - public static final BitSet FOLLOW_number_in_boost2601 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsTermOrPhrase2690 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsTermOrPhrase2692 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2720 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2728 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2795 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2804 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsTermOrPhrase2873 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsTermOrPhrase2875 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2903 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2911 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2978 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2987 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase3048 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase3056 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase3106 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase3115 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EQUALS_in_ftsExactTermOrPhrase3194 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsExactTermOrPhrase3222 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3224 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3252 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3260 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3327 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3336 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsExactTermOrPhrase3405 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3407 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3435 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3443 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3510 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3519 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3580 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3588 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3638 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3647 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3728 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsTokenisedTermOrPhrase3756 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3758 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3786 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3794 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3861 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3870 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsTokenisedTermOrPhrase3939 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3941 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3969 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3977 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4044 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4053 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase4114 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase4122 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4172 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_cmisTerm4254 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_cmisPhrase4308 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_ftsRange4363 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsRange4365 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000030L}); - public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsRange4369 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReference_in_ftsFieldGroup4425 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_ftsFieldGroup4427 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroup4429 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); - public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup4431 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroup4433 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction4518 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction4532 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4565 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4568 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4570 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); - public static final BitSet FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4655 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4658 = new BitSet(new long[]{0x803C80000920A882L,0x0000016101124138L}); - public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4745 = new BitSet(new long[]{0x0000000000000032L}); - public static final BitSet FOLLOW_and_in_ftsFieldGroupExplicitConjunction4748 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4750 = new BitSet(new long[]{0x0000000000000032L}); - public static final BitSet FOLLOW_and_in_ftsFieldGroupImplicitConjunction4835 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); - public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4838 = new BitSet(new long[]{0x803C80000920A8B2L,0x0000016101104138L}); - public static final BitSet FOLLOW_not_in_ftsFieldGroupPrefixed4928 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4930 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4932 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4996 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4998 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PLUS_in_ftsFieldGroupPrefixed5062 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5064 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5066 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BAR_in_ftsFieldGroupPrefixed5130 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5132 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5134 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_MINUS_in_ftsFieldGroupPrefixed5198 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); - public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5200 = new BitSet(new long[]{0x0000000000000202L}); - public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest5293 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest5359 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5369 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest5440 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5450 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest5521 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5531 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5602 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5612 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5683 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5693 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5764 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); - public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5774 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5845 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroupTest5905 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); - public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5907 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroupTest5909 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWord_in_ftsFieldGroupTerm5962 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5995 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5997 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase6050 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase6091 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase6093 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase6154 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase6156 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupSynonym6209 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym6211 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6264 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); - public static final BitSet FOLLOW_proximityGroup_in_ftsFieldGroupProximity6274 = new BitSet(new long[]{0x803880000000A000L,0x0000014100004000L}); - public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6276 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L}); - public static final BitSet FOLLOW_ID_in_ftsFieldGroupProximityTerm6340 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm6352 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm6364 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm6376 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_ftsFieldGroupProximityTerm6388 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TO_in_ftsFieldGroupProximityTerm6400 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm6412 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm6424 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm6436 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ftsFieldGroupProximityTerm6448 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_ftsFieldGroupProximityTerm6460 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_ftsFieldGroupProximityTerm6462 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_proximityGroup6495 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L}); - public static final BitSet FOLLOW_LPAREN_in_proximityGroup6498 = new BitSet(new long[]{0x0000000000008000L,0x0000000008000000L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup6500 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); - public static final BitSet FOLLOW_RPAREN_in_proximityGroup6503 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6587 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_DOTDOT_in_ftsFieldGroupRange6589 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6591 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_range_left_in_ftsFieldGroupRange6629 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6631 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L}); - public static final BitSet FOLLOW_TO_in_ftsFieldGroupRange6633 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); - public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6635 = new BitSet(new long[]{0x2000000000000000L,0x0000000010000000L}); - public static final BitSet FOLLOW_range_right_in_ftsFieldGroupRange6637 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LSQUARE_in_range_left6696 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LT_in_range_left6728 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RSQUARE_in_range_right6781 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_GT_in_range_right6813 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_fieldReference6866 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_fieldReference6878 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_fieldReferenceWithoutPrefix6902 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); - public static final BitSet FOLLOW_uri_in_fieldReferenceWithoutPrefix6913 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_fieldReferenceWithoutPrefix6924 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_fieldReferenceWithPrefix7008 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_prefix_in_fieldReferenceWithPrefix7019 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_fieldReferenceWithPrefix7021 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_tempReference7104 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); - public static final BitSet FOLLOW_prefix_in_tempReference7133 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_uri_in_tempReference7153 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_tempReference7174 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_identifier_in_prefix7261 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_prefix7263 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_uri7344 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_identifier7446 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_DOT_in_identifier7448 = new BitSet(new long[]{0x8000000000000000L}); - public static final BitSet FOLLOW_ID_in_identifier7452 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_identifier7501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TO_in_identifier7568 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_OR_in_identifier7606 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AND_in_identifier7644 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_identifier7683 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7801 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7807 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7809 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7815 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7817 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7823 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7825 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7831 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7833 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7839 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7899 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7901 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7907 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7909 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7915 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7917 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7923 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord7925 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7931 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord7998 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8004 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8006 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8012 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8014 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8020 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8022 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8028 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8030 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8094 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8096 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8102 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8104 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8110 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8112 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8118 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8185 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8191 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8193 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8199 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8201 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8207 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8209 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8215 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8269 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8271 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8277 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8279 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8285 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8287 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8293 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8351 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8357 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8359 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8365 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8367 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8373 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8375 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8431 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8433 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8439 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8441 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8447 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8449 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8505 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8511 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8513 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8519 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8521 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8527 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8573 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8575 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8581 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8583 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8589 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8640 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8646 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8648 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8654 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8656 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8705 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8707 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8713 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8715 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8764 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8770 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8772 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8778 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8816 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8818 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8824 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8866 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8872 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8874 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8914 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_ftsWord8916 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_ftsWord8932 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8938 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8951 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_ftsWordBase8996 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWORD_in_ftsWordBase9008 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPRE_in_ftsWordBase9020 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWILD_in_ftsWordBase9033 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_ftsWordBase9046 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TO_in_ftsWordBase9058 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase9070 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase9082 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ftsWordBase9094 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_QUESTION_MARK_in_ftsWordBase9106 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DATETIME_in_ftsWordBase9118 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_ftsWordBase9130 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_ftsWordBase9132 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_ftsRangeWord9212 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWORD_in_ftsRangeWord9224 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPRE_in_ftsRangeWord9236 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSWILD_in_ftsRangeWord9248 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FTSPHRASE_in_ftsRangeWord9260 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord9272 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord9284 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DATETIME_in_ftsRangeWord9296 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ftsRangeWord9308 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_URI_in_ftsRangeWord9320 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); - public static final BitSet FOLLOW_identifier_in_ftsRangeWord9322 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_OR_in_or9357 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BAR_in_or9369 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_BAR_in_or9371 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AND_in_and9404 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AMP_in_and9416 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_AMP_in_and9418 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_not_in_synpred1_FTS1233 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred2_FTS1746 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsRange_in_synpred3_FTS1823 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroup_in_synpred4_FTS1902 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsTermOrPhrase_in_synpred5_FTS1951 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsExactTermOrPhrase_in_synpred6_FTS1980 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsTokenisedTermOrPhrase_in_synpred7_FTS2010 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred8_FTS2683 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred8_FTS2685 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred9_FTS2724 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred10_FTS2799 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred11_FTS2866 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred11_FTS2868 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred12_FTS2907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred13_FTS2982 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred14_FTS3052 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred15_FTS3110 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred16_FTS3215 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred16_FTS3217 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred17_FTS3256 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred18_FTS3331 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred19_FTS3398 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred19_FTS3400 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred20_FTS3439 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred21_FTS3514 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred22_FTS3584 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred23_FTS3642 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred24_FTS3749 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred24_FTS3751 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred25_FTS3790 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred26_FTS3865 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred27_FTS3932 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_COLON_in_synpred27_FTS3934 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred28_FTS3973 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred29_FTS4048 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred30_FTS4118 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred31_FTS4176 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_not_in_synpred32_FTS4923 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred33_FTS5288 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTerm_in_synpred34_FTS5354 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred35_FTS5364 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_synpred36_FTS5435 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred37_FTS5445 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_synpred38_FTS5516 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred39_FTS5526 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_synpred40_FTS5597 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred41_FTS5607 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred42_FTS5678 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_slop_in_synpred43_FTS5688 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_synpred44_FTS5759 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_fuzzy_in_synpred45_FTS5769 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsFieldGroupRange_in_synpred46_FTS5840 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_proximityGroup_in_synpred47_FTS6269 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_synpred48_FTS7426 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_DOT_in_synpred48_FTS7428 = new BitSet(new long[]{0x8000000000000000L}); - public static final BitSet FOLLOW_ID_in_synpred48_FTS7430 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7746 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7752 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7754 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7760 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7762 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7768 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7770 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7776 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred49_FTS7778 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7784 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7852 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred50_FTS7854 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7860 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred50_FTS7862 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7868 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred50_FTS7870 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7876 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_DOT_in_synpred50_FTS7878 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_COMMA_in_synpred50_FTS7880 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7882 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7945 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7951 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7953 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7959 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7961 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7967 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7969 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7975 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred51_FTS7977 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8047 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred52_FTS8049 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8055 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred52_FTS8057 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8063 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred52_FTS8065 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8071 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred52_FTS8073 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred53_FTS8138 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8144 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred53_FTS8146 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8152 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred53_FTS8154 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8160 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred53_FTS8162 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8168 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8228 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred54_FTS8230 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8236 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred54_FTS8238 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8244 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred54_FTS8246 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8252 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred55_FTS8306 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8312 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred55_FTS8314 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8320 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred55_FTS8322 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8328 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred55_FTS8330 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8392 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred56_FTS8394 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8400 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred56_FTS8402 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8408 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred56_FTS8410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred57_FTS8466 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8472 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred57_FTS8474 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8480 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred57_FTS8482 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8488 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8540 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred58_FTS8542 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8548 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred58_FTS8550 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8556 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred59_FTS8603 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred59_FTS8609 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred59_FTS8611 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred59_FTS8617 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred59_FTS8619 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred60_FTS8673 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred60_FTS8675 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred60_FTS8681 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred60_FTS8683 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred61_FTS8733 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred61_FTS8739 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred61_FTS8741 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred61_FTS8747 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred62_FTS8791 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred62_FTS8793 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred62_FTS8799 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_synpred63_FTS8837 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred63_FTS8843 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred63_FTS8845 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ftsWordBase_in_synpred64_FTS8891 = new BitSet(new long[]{0x0000000000200800L}); - public static final BitSet FOLLOW_set_in_synpred64_FTS8893 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsDisjunction_in_ftsQuery578 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_ftsQuery580 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_cmisExplicitDisjunction_in_ftsDisjunction640 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsExplicitDisjunction_in_ftsDisjunction654 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsImplicitDisjunction_in_ftsDisjunction668 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction701 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_ftsExplicitDisjunction704 = new BitSet(new long[]{0x803C80000920A8F0L,0x0000016101164138L}); + public static final BitSet FOLLOW_ftsImplicitConjunction_in_ftsExplicitDisjunction706 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_cmisConjunction_in_cmisExplicitDisjunction790 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_cmisExplicitDisjunction793 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004100L}); + public static final BitSet FOLLOW_cmisConjunction_in_cmisExplicitDisjunction795 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_ftsImplicitDisjunction880 = new BitSet(new long[]{0x803C80000920A8E0L,0x0000016101164138L}); + public static final BitSet FOLLOW_ftsExplicitConjunction_in_ftsImplicitDisjunction883 = new BitSet(new long[]{0x803C80000920A8E2L,0x0000016101164138L}); + public static final BitSet FOLLOW_ftsPrefixed_in_ftsExplicitConjunction970 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_and_in_ftsExplicitConjunction973 = new BitSet(new long[]{0x803C80000920A8E0L,0x0000016101164138L}); + public static final BitSet FOLLOW_ftsPrefixed_in_ftsExplicitConjunction975 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_and_in_ftsImplicitConjunction1060 = new BitSet(new long[]{0x803C80000920A8E0L,0x0000016101164138L}); + public static final BitSet FOLLOW_ftsPrefixed_in_ftsImplicitConjunction1063 = new BitSet(new long[]{0x803C80000920A8F2L,0x0000016101164138L}); + public static final BitSet FOLLOW_cmisPrefixed_in_cmisConjunction1147 = new BitSet(new long[]{0x803C80000020A802L,0x0000014101004100L}); + public static final BitSet FOLLOW_not_in_ftsPrefixed1239 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); + public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1241 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsPrefixed1243 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1307 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsPrefixed1309 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PLUS_in_ftsPrefixed1373 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); + public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1375 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsPrefixed1377 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BAR_in_ftsPrefixed1441 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); + public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1443 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsPrefixed1445 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_MINUS_in_ftsPrefixed1509 = new BitSet(new long[]{0x803C80000120A860L,0x0000016101064038L}); + public static final BitSet FOLLOW_ftsTest_in_ftsPrefixed1511 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsPrefixed1513 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_cmisTest_in_cmisPrefixed1598 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_MINUS_in_cmisPrefixed1658 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_cmisTest_in_cmisPrefixed1660 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximity_in_ftsTest1752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsRange_in_ftsTest1829 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroup_in_ftsTest1908 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsTermOrPhrase_in_ftsTest1957 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsExactTermOrPhrase_in_ftsTest1986 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsTokenisedTermOrPhrase_in_ftsTest2016 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_ftsTest2047 = new BitSet(new long[]{0x803C80000920A8F0L,0x0000016101164138L}); + public static final BitSet FOLLOW_ftsDisjunction_in_ftsTest2049 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_ftsTest2051 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_template_in_ftsTest2084 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_cmisTerm_in_cmisTest2137 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_cmisPhrase_in_cmisTest2197 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PERCENT_in_template2278 = new BitSet(new long[]{0x8000000000000060L,0x0000014000024000L}); + public static final BitSet FOLLOW_tempReference_in_template2280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PERCENT_in_template2340 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_LPAREN_in_template2342 = new BitSet(new long[]{0x8000000000000060L,0x0000014000024000L}); + public static final BitSet FOLLOW_tempReference_in_template2345 = new BitSet(new long[]{0x8000000000000860L,0x0000014008024000L}); + public static final BitSet FOLLOW_COMMA_in_template2347 = new BitSet(new long[]{0x8000000000000060L,0x0000014008024000L}); + public static final BitSet FOLLOW_RPAREN_in_template2352 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_fuzzy2434 = new BitSet(new long[]{0x0000800000008000L}); + public static final BitSet FOLLOW_number_in_fuzzy2436 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_slop2517 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_slop2519 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CARAT_in_boost2600 = new BitSet(new long[]{0x0000800000008000L}); + public static final BitSet FOLLOW_number_in_boost2602 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsTermOrPhrase2691 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTermOrPhrase2693 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2721 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2729 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2796 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2805 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsTermOrPhrase2874 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTermOrPhrase2876 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase2904 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase2912 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase2979 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase2988 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTermOrPhrase3049 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTermOrPhrase3057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTermOrPhrase3107 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTermOrPhrase3116 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_ftsExactTermOrPhrase3195 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsExactTermOrPhrase3223 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3225 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3253 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3261 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3328 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3337 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsExactTermOrPhrase3406 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsExactTermOrPhrase3408 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3436 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3444 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3511 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3520 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsExactTermOrPhrase3581 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsExactTermOrPhrase3589 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsExactTermOrPhrase3639 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsExactTermOrPhrase3648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_ftsTokenisedTermOrPhrase3729 = new BitSet(new long[]{0x803C80000020A860L,0x0000014101024000L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_ftsTokenisedTermOrPhrase3757 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3759 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3787 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3795 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase3862 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase3871 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_ftsTokenisedTermOrPhrase3940 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsTokenisedTermOrPhrase3942 = new BitSet(new long[]{0x803C80000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase3970 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase3978 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4045 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4054 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsTokenisedTermOrPhrase4115 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsTokenisedTermOrPhrase4123 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsTokenisedTermOrPhrase4173 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsTokenisedTermOrPhrase4182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_cmisTerm4255 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_cmisPhrase4309 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReference_in_ftsRange4364 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsRange4366 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000030L}); + public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsRange4370 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReference_in_ftsFieldGroup4426 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_ftsFieldGroup4428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroup4430 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); + public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroup4432 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroup4434 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExplicitDisjunction_in_ftsFieldGroupDisjunction4519 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupImplicitDisjunction_in_ftsFieldGroupDisjunction4533 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4566 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_ftsFieldGroupExplicitDisjunction4569 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupImplicitConjunction_in_ftsFieldGroupExplicitDisjunction4571 = new BitSet(new long[]{0x0000000000000082L,0x0000000000020000L}); + public static final BitSet FOLLOW_or_in_ftsFieldGroupImplicitDisjunction4656 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupExplicitConjunction_in_ftsFieldGroupImplicitDisjunction4659 = new BitSet(new long[]{0x803C80000920A882L,0x0000016101124138L}); + public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4746 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_and_in_ftsFieldGroupExplicitConjunction4749 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupExplicitConjunction4751 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_and_in_ftsFieldGroupImplicitConjunction4836 = new BitSet(new long[]{0x803C80000920A880L,0x0000016101104138L}); + public static final BitSet FOLLOW_ftsFieldGroupPrefixed_in_ftsFieldGroupImplicitConjunction4839 = new BitSet(new long[]{0x803C80000920A8B2L,0x0000016101104138L}); + public static final BitSet FOLLOW_not_in_ftsFieldGroupPrefixed4929 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4931 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4933 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed4997 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed4999 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PLUS_in_ftsFieldGroupPrefixed5063 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5065 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5067 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BAR_in_ftsFieldGroupPrefixed5131 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5133 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5135 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_MINUS_in_ftsFieldGroupPrefixed5199 = new BitSet(new long[]{0x803C80000120A800L,0x0000016101004038L}); + public static final BitSet FOLLOW_ftsFieldGroupTest_in_ftsFieldGroupPrefixed5201 = new BitSet(new long[]{0x0000000000000202L}); + public static final BitSet FOLLOW_boost_in_ftsFieldGroupPrefixed5203 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximity_in_ftsFieldGroupTest5294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupTest5360 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5370 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_ftsFieldGroupTest5441 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5451 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_ftsFieldGroupTest5522 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5532 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTest5603 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5613 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_ftsFieldGroupTest5684 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_slop_in_ftsFieldGroupTest5694 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_ftsFieldGroupTest5765 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L}); + public static final BitSet FOLLOW_fuzzy_in_ftsFieldGroupTest5775 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupRange_in_ftsFieldGroupTest5846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_ftsFieldGroupTest5906 = new BitSet(new long[]{0x803C80000920A8B0L,0x0000016101124138L}); + public static final BitSet FOLLOW_ftsFieldGroupDisjunction_in_ftsFieldGroupTest5908 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_ftsFieldGroupTest5910 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWord_in_ftsFieldGroupTerm5963 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactTerm5996 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupExactTerm5998 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsFieldGroupPhrase6051 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_ftsFieldGroupExactPhrase6092 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupExactPhrase6094 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupTokenisedPhrase6155 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_ftsFieldGroupTokenisedPhrase6157 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TILDA_in_ftsFieldGroupSynonym6210 = new BitSet(new long[]{0x803880000020A800L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_ftsFieldGroupSynonym6212 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6265 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); + public static final BitSet FOLLOW_proximityGroup_in_ftsFieldGroupProximity6275 = new BitSet(new long[]{0x803880000000A000L,0x0000014100004000L}); + public static final BitSet FOLLOW_ftsFieldGroupProximityTerm_in_ftsFieldGroupProximity6277 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L}); + public static final BitSet FOLLOW_ID_in_ftsFieldGroupProximityTerm6341 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWORD_in_ftsFieldGroupProximityTerm6353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPRE_in_ftsFieldGroupProximityTerm6365 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWILD_in_ftsFieldGroupProximityTerm6377 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_ftsFieldGroupProximityTerm6389 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TO_in_ftsFieldGroupProximityTerm6401 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsFieldGroupProximityTerm6413 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsFieldGroupProximityTerm6425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DATETIME_in_ftsFieldGroupProximityTerm6437 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ftsFieldGroupProximityTerm6449 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_ftsFieldGroupProximityTerm6461 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_ftsFieldGroupProximityTerm6463 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_proximityGroup6496 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L}); + public static final BitSet FOLLOW_LPAREN_in_proximityGroup6499 = new BitSet(new long[]{0x0000000000008000L,0x0000000008000000L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_proximityGroup6501 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_RPAREN_in_proximityGroup6504 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6588 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_DOTDOT_in_ftsFieldGroupRange6590 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6592 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_range_left_in_ftsFieldGroupRange6630 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6632 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L}); + public static final BitSet FOLLOW_TO_in_ftsFieldGroupRange6634 = new BitSet(new long[]{0x803C80000000A000L,0x0000010100000000L}); + public static final BitSet FOLLOW_ftsRangeWord_in_ftsFieldGroupRange6636 = new BitSet(new long[]{0x2000000000000000L,0x0000000010000000L}); + public static final BitSet FOLLOW_range_right_in_ftsFieldGroupRange6638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LSQUARE_in_range_left6697 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LT_in_range_left6729 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RSQUARE_in_range_right6782 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GT_in_range_right6814 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_fieldReference6867 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_fieldReference6879 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_fieldReferenceWithoutPrefix6903 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); + public static final BitSet FOLLOW_uri_in_fieldReferenceWithoutPrefix6914 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_fieldReferenceWithoutPrefix6925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_fieldReferenceWithPrefix7009 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_prefix_in_fieldReferenceWithPrefix7020 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_fieldReferenceWithPrefix7022 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_tempReference7105 = new BitSet(new long[]{0x8000000000000020L,0x0000014000024000L}); + public static final BitSet FOLLOW_prefix_in_tempReference7134 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_uri_in_tempReference7154 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_tempReference7175 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_identifier_in_prefix7262 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_prefix7264 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_uri7345 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_identifier7447 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_DOT_in_identifier7449 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_ID_in_identifier7453 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_identifier7502 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TO_in_identifier7569 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OR_in_identifier7607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AND_in_identifier7645 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_identifier7684 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord7802 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7808 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7810 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7816 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7818 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7824 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7826 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7832 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7834 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7900 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7902 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7908 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7910 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7916 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7918 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7924 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord7926 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord7932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord7999 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8005 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8007 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8013 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8015 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8021 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8023 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8029 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8031 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8095 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8097 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8103 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8105 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8111 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8113 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8119 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8121 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8186 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8192 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8194 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8200 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8202 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8208 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8210 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8216 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8270 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8272 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8278 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8280 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8286 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8288 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8352 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8358 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8360 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8366 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8368 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8374 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8376 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8432 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8434 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8440 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8442 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8448 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8450 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8506 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8512 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8514 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8520 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8522 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8528 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8574 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8576 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8582 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8584 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8590 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8641 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8647 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8649 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8655 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8657 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8706 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8708 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8714 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8716 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8765 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8771 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8773 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8817 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8819 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8825 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8867 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8873 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8875 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8915 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_ftsWord8917 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_ftsWord8933 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8939 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_ftsWord8952 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_ftsWordBase8997 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWORD_in_ftsWordBase9009 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPRE_in_ftsWordBase9021 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWILD_in_ftsWordBase9034 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_ftsWordBase9047 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TO_in_ftsWordBase9059 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsWordBase9071 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsWordBase9083 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ftsWordBase9095 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_QUESTION_MARK_in_ftsWordBase9107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DATETIME_in_ftsWordBase9119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_ftsWordBase9131 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_ftsWordBase9133 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_ftsRangeWord9213 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWORD_in_ftsRangeWord9225 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPRE_in_ftsRangeWord9237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSWILD_in_ftsRangeWord9249 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FTSPHRASE_in_ftsRangeWord9261 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_ftsRangeWord9273 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATING_POINT_LITERAL_in_ftsRangeWord9285 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DATETIME_in_ftsRangeWord9297 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ftsRangeWord9309 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_URI_in_ftsRangeWord9321 = new BitSet(new long[]{0x8000000000000020L,0x0000004000024000L}); + public static final BitSet FOLLOW_identifier_in_ftsRangeWord9323 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OR_in_or9358 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BAR_in_or9370 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_BAR_in_or9372 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AND_in_and9405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AMP_in_and9417 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_AMP_in_and9419 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_not_in_synpred1_FTS1234 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred2_FTS1747 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsRange_in_synpred3_FTS1824 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroup_in_synpred4_FTS1903 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsTermOrPhrase_in_synpred5_FTS1952 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsExactTermOrPhrase_in_synpred6_FTS1981 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsTokenisedTermOrPhrase_in_synpred7_FTS2011 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred8_FTS2684 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred8_FTS2686 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred9_FTS2725 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred10_FTS2800 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred11_FTS2867 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred11_FTS2869 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred12_FTS2908 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred13_FTS2983 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred14_FTS3053 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred15_FTS3111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred16_FTS3216 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred16_FTS3218 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred17_FTS3257 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred18_FTS3332 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred19_FTS3399 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred19_FTS3401 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred20_FTS3440 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred21_FTS3515 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred22_FTS3585 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred23_FTS3643 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithPrefix_in_synpred24_FTS3750 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred24_FTS3752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred25_FTS3791 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred26_FTS3866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldReferenceWithoutPrefix_in_synpred27_FTS3933 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_COLON_in_synpred27_FTS3935 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred28_FTS3974 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred29_FTS4049 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred30_FTS4119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred31_FTS4177 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_not_in_synpred32_FTS4924 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupProximity_in_synpred33_FTS5289 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTerm_in_synpred34_FTS5355 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred35_FTS5365 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactTerm_in_synpred36_FTS5436 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred37_FTS5446 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupPhrase_in_synpred38_FTS5517 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred39_FTS5527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupExactPhrase_in_synpred40_FTS5598 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred41_FTS5608 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupTokenisedPhrase_in_synpred42_FTS5679 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_slop_in_synpred43_FTS5689 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupSynonym_in_synpred44_FTS5760 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fuzzy_in_synpred45_FTS5770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsFieldGroupRange_in_synpred46_FTS5841 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_proximityGroup_in_synpred47_FTS6270 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_synpred48_FTS7427 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_DOT_in_synpred48_FTS7429 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_ID_in_synpred48_FTS7431 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7747 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7753 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7755 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7761 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7763 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7769 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7771 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7777 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred49_FTS7779 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred49_FTS7785 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7853 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred50_FTS7855 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7861 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred50_FTS7863 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7869 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred50_FTS7871 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7877 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_DOT_in_synpred50_FTS7879 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_COMMA_in_synpred50_FTS7881 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred50_FTS7883 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7946 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7952 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7954 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7960 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7962 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7968 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7970 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred51_FTS7976 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred51_FTS7978 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8048 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8050 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8056 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8058 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8064 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8066 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred52_FTS8072 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred52_FTS8074 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8139 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8145 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8147 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8153 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8155 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8161 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred53_FTS8163 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred53_FTS8169 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8229 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred54_FTS8231 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8237 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred54_FTS8239 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8245 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred54_FTS8247 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred54_FTS8253 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8307 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8313 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8315 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8321 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8323 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred55_FTS8329 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred55_FTS8331 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8393 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred56_FTS8395 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8401 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred56_FTS8403 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred56_FTS8409 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred56_FTS8411 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred57_FTS8467 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8473 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred57_FTS8475 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8481 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred57_FTS8483 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred57_FTS8489 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8541 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred58_FTS8543 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8549 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred58_FTS8551 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred58_FTS8557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred59_FTS8604 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred59_FTS8610 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred59_FTS8612 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred59_FTS8618 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred59_FTS8620 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred60_FTS8674 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred60_FTS8676 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred60_FTS8682 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred60_FTS8684 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred61_FTS8734 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred61_FTS8740 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred61_FTS8742 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred61_FTS8748 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred62_FTS8792 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred62_FTS8794 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred62_FTS8800 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred63_FTS8838 = new BitSet(new long[]{0x803880000000A000L,0x0000014101004000L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred63_FTS8844 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred63_FTS8846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ftsWordBase_in_synpred64_FTS8892 = new BitSet(new long[]{0x0000000000200800L}); + public static final BitSet FOLLOW_set_in_synpred64_FTS8894 = new BitSet(new long[]{0x0000000000000002L}); } diff --git a/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit b/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit index 0741a7ecf7..e7951f2a5c 100644 --- a/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit +++ b/src/test/resources/org/alfresco/repo/search/impl/parsers/fts_test.gunit @@ -21,6 +21,8 @@ ftsQuery: "test_txt_woof" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM test_txt_woof))))" "test,txt,woof" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM test , txt , woof))))" "test\:txt\:woof" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM test\\:txt\\:woof))))" +"name-dash:file" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM file (FIELD_REF name-dash)))))" +"name-dash:file.txt" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM file . txt (FIELD_REF name-dash)))))" "+\++" -> "(DISJUNCTION (CONJUNCTION (MANDATORY (TERM \\++))))" ".txt" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM . txt))))" "*.txt" -> "(DISJUNCTION (CONJUNCTION (DEFAULT (TERM * . txt))))" From d7a9cfbd4977de6a6fa722cc78b6d4e08a58196f Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 27 Dec 2019 09:01:15 +0000 Subject: [PATCH 073/123] [maven-release-plugin][skip ci] prepare release 8.73 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5b08f45a95..38948ee8ce 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.73-SNAPSHOT + 8.73 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.73 From 64d1562f8279349ef4cb1b9509a8a6621975903b Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 27 Dec 2019 09:01:21 +0000 Subject: [PATCH 074/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 38948ee8ce..1b52932434 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.73 + 8.74-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.73 + HEAD From 10b2886d22acea1992d23a9aedb60133d17f65ea Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2020 08:52:09 +0000 Subject: [PATCH 075/123] Bump alfresco-core from 8.9 to 8.11 (#200) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1b52932434..ff3aa23692 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.9 + 8.11 3.3.4 From fc307865dbe5b0a7c95ea022f395f7c9987bd776 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2020 08:52:12 +0000 Subject: [PATCH 076/123] Bump junit from 4.12 to 4.13 (#199) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ff3aa23692..334e849608 100644 --- a/pom.xml +++ b/pom.xml @@ -360,7 +360,7 @@ junit junit - 4.12 + 4.13 test From 71578555629c8fa9fa734d132257cefa6b16d6aa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2020 08:52:54 +0000 Subject: [PATCH 077/123] Bump guava from 28.1-jre to 28.2-jre (#198) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 334e849608..5af27a95fe 100644 --- a/pom.xml +++ b/pom.xml @@ -189,7 +189,7 @@ com.google.guava guava - 28.1-jre + 28.2-jre From ea681cc37bdebb4fd021b591fe1a693e8780e84c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 3 Jan 2020 08:57:32 +0000 Subject: [PATCH 078/123] [maven-release-plugin][skip ci] prepare release 8.74 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5af27a95fe..354b05f049 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.74-SNAPSHOT + 8.74 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.74 From 6337ff9ab6f0fef83798793fe0ff691c8a07e227 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 3 Jan 2020 08:57:38 +0000 Subject: [PATCH 079/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 354b05f049..7ec163f8c6 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.74 + 8.75-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.74 + HEAD From be5a69375acde3e7dae10765a5cbeccf3bc29d8f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 12:13:31 +0000 Subject: [PATCH 080/123] Bump jackson-core from 2.10.1 to 2.10.2 (#202) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ec163f8c6..66e85e4232 100644 --- a/pom.xml +++ b/pom.xml @@ -234,7 +234,7 @@ com.fasterxml.jackson.core jackson-core - 2.10.1 + 2.10.2 From c6193966d3a55a126bbf028e185655a42dd4bb90 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 12:13:46 +0000 Subject: [PATCH 081/123] Bump alfresco-core from 8.11 to 8.12 (#201) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 66e85e4232..f2f063f98b 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.11 + 8.12 3.3.4 From df6c9493c4a24657b911b639e277f6d672b4bed5 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 6 Jan 2020 12:18:46 +0000 Subject: [PATCH 082/123] [maven-release-plugin][skip ci] prepare release 8.75 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f2f063f98b..60b88e0643 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.75-SNAPSHOT + 8.75 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.75 From 74efc85bad5ba943ef6515bc7e3b4fd10a75b3e8 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 6 Jan 2020 12:18:52 +0000 Subject: [PATCH 083/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 60b88e0643..536fe35562 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.75 + 8.76-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.75 + HEAD From 50b97819066d852c0901baa75c0c6fb03c09d84e Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 13:00:41 +0000 Subject: [PATCH 084/123] REPO-4876 - Remove library com.googlecode.juniversalchardet:juniversalchardet from alfresco-data-model project (#183) --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 536fe35562..c06c3039d5 100644 --- a/pom.xml +++ b/pom.xml @@ -350,11 +350,6 @@ vorbis-java-tika 0.8 - - com.googlecode.juniversalchardet - juniversalchardet - 1.0.3 - From d3f873230c4b1c3f8904555870264947fe816738 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:07:21 +0000 Subject: [PATCH 085/123] [maven-release-plugin][skip ci] prepare release 8.76 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c06c3039d5..36b7ddd9b1 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.76-SNAPSHOT + 8.76 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.76 From a327305f047ae5a0ab2aa51b37fd1edbe44e0a59 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:07:27 +0000 Subject: [PATCH 086/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 36b7ddd9b1..df736b1e05 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.76 + 8.77-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.76 + HEAD From 66b16b0ddde6802e3eddc2036b7e909f52ac49fc Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 13:13:38 +0000 Subject: [PATCH 087/123] REPO-4883 - Remove library xpp3:xpp3 from alfresco-data-model project (#189) --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index df736b1e05..91e4d2fcd9 100644 --- a/pom.xml +++ b/pom.xml @@ -310,11 +310,6 @@ xercesImpl 2.12.0-alfresco-patched-20191004 - - xpp3 - xpp3 - 1.1.4c - org.apache.tika From ff263049df8ba841538477a5c3b73cd788c35ad4 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:25:32 +0000 Subject: [PATCH 088/123] [maven-release-plugin][skip ci] prepare release 8.77 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 91e4d2fcd9..38890c095f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.77-SNAPSHOT + 8.77 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.77 From 8b63b50806879d188086c99570ab7bc0c5d18821 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:25:38 +0000 Subject: [PATCH 089/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 38890c095f..5c0e932309 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.77 + 8.78-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.77 + HEAD From 8552dd8348b3d31fdee8eba85e0ceb7243e7325b Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 13:28:45 +0000 Subject: [PATCH 090/123] REPO-4880 - Remove library org.codehaus.woodstox:woodstox-core-asl from alfresco-data-model project (#186) --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 5c0e932309..5a7b67f2f6 100644 --- a/pom.xml +++ b/pom.xml @@ -287,11 +287,6 @@ commons-lang3 3.9 - - org.codehaus.woodstox - woodstox-core-asl - 4.4.1 - From 9b636dff91021c87044cb4295cfefaf3bda90ff1 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:42:26 +0000 Subject: [PATCH 091/123] [maven-release-plugin][skip ci] prepare release 8.78 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5a7b67f2f6..a320cf98cd 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.78-SNAPSHOT + 8.78 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.78 From ba6b0a032f90df5d1a714a809f84450e41fb97a5 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:42:32 +0000 Subject: [PATCH 092/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a320cf98cd..8e3c66bf56 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.78 + 8.79-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.78 + HEAD From 6708164ef99720fa100b115d96e209bd820f388a Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 13:45:57 +0000 Subject: [PATCH 093/123] REPO-4878 - Remove library org.apache.chemistry.opencmis:chemistry-opencmis-client-impl from alfresco-data-model project (#184) --- pom.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/pom.xml b/pom.xml index 8e3c66bf56..b101cdfe46 100644 --- a/pom.xml +++ b/pom.xml @@ -249,17 +249,6 @@ 3.5.2 - - org.apache.chemistry.opencmis - chemistry-opencmis-client-impl - 1.0.0 - - - junit - junit - - - org.apache.chemistry.opencmis chemistry-opencmis-commons-impl From 0ab1dddb04bd4037da70cbcb1b908d8fff6fa2b0 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:51:19 +0000 Subject: [PATCH 094/123] [maven-release-plugin][skip ci] prepare release 8.79 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index b101cdfe46..55f138a9f3 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.79-SNAPSHOT + 8.79 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.79 From 94f496c19a3ee649fc9d9f5570d1d4836d6a106b Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 13:51:24 +0000 Subject: [PATCH 095/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 55f138a9f3..b8fa6eb861 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.79 + 8.80-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.79 + HEAD From 20ce47927f7ddcce7b0f129bdb4b18100a5a789d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 14:01:00 +0000 Subject: [PATCH 096/123] [maven-release-plugin][skip ci] prepare release 8.80 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 763379bd7a..7272faaea0 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.80-SNAPSHOT + 8.80 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.80 From 40607ba6bfa370cc58d520f0e83725ea38cdc087 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 14:01:06 +0000 Subject: [PATCH 097/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 7272faaea0..66c33e8724 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.80 + 8.81-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.80 + HEAD From a94ecd791e9c57597a6a4e2cbb92b86ef6e388b2 Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 14:04:00 +0000 Subject: [PATCH 098/123] REPO-4881 - Remove library org.gagravarr:vorbis-java-core from alfresco-data-model project (#187) --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 66c33e8724..64663ed3b5 100644 --- a/pom.xml +++ b/pom.xml @@ -314,11 +314,6 @@ - - org.gagravarr - vorbis-java-core - 0.8 - org.gagravarr vorbis-java-tika From b0fb3dab33a0e9750f7bef7edd4d2a241a475b7a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 14:08:57 +0000 Subject: [PATCH 099/123] [maven-release-plugin][skip ci] prepare release 8.81 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 64663ed3b5..c9354ce91c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.81-SNAPSHOT + 8.81 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.81 From c4f987cc0bcd3fcbd0a98e791e407bd4df45bcf5 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 14:09:02 +0000 Subject: [PATCH 100/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c9354ce91c..326b729109 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.81 + 8.82-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.81 + HEAD From 05f83f9b2070d263b16f08a2ea77aa8b401b5612 Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 15:09:53 +0000 Subject: [PATCH 101/123] REPO-4910 - Remove library com.fasterxml.jackson.core:jackson-core:none from alfresc-data-model (#195) --- pom.xml | 7 ------- src/main/java/org/alfresco/util/ConfigFileFinder.java | 3 +-- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 326b729109..85dfc5de95 100644 --- a/pom.xml +++ b/pom.xml @@ -230,13 +230,6 @@ jibx-run 1.3.1 - - - com.fasterxml.jackson.core - jackson-core - 2.10.2 - - com.fasterxml.jackson.core jackson-annotations diff --git a/src/main/java/org/alfresco/util/ConfigFileFinder.java b/src/main/java/org/alfresco/util/ConfigFileFinder.java index f097bb743a..0bb21ae043 100644 --- a/src/main/java/org/alfresco/util/ConfigFileFinder.java +++ b/src/main/java/org/alfresco/util/ConfigFileFinder.java @@ -25,7 +25,6 @@ */ package org.alfresco.util; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.logging.Log; @@ -204,7 +203,7 @@ public abstract class ConfigFileFinder boolean successReadingConfig = true; try { - JsonNode jsonNode = jsonObjectMapper.readValue(reader, new TypeReference() {}); + JsonNode jsonNode = jsonObjectMapper.readValue(reader, JsonNode.class); String readFromMessage = readFrom + ' ' + path; if (log.isTraceEnabled()) { From f788231793f5656939e6c477dc5a2c0d78dfba51 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 15:14:47 +0000 Subject: [PATCH 102/123] [maven-release-plugin][skip ci] prepare release 8.82 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 85dfc5de95..eaaeb56b6a 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.82-SNAPSHOT + 8.82 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.82 From 52f76b06e11884abfd8b8489fecdf7921c5674db Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 15:14:53 +0000 Subject: [PATCH 103/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index eaaeb56b6a..b2781cb356 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.82 + 8.83-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.82 + HEAD From 2e926524b39b4e4e3f94695362e453166f55b8f8 Mon Sep 17 00:00:00 2001 From: antoniojfelix Date: Wed, 8 Jan 2020 15:23:23 +0000 Subject: [PATCH 104/123] REPO-4882 - Remove library org.gagravarr:vorbis-java-tika from alfresco-data-model project (#188) --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index b2781cb356..08d0094437 100644 --- a/pom.xml +++ b/pom.xml @@ -307,11 +307,6 @@ - - org.gagravarr - vorbis-java-tika - 0.8 - From 754aaa0df062a607cab7a51e9cb6aa4824d53258 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 15:28:07 +0000 Subject: [PATCH 105/123] [maven-release-plugin][skip ci] prepare release 8.83 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 08d0094437..e3400d3490 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.83-SNAPSHOT + 8.83 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.83 From 2282b0a43db2f18d8d5db0025510d171c8f86c3d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 8 Jan 2020 15:28:12 +0000 Subject: [PATCH 106/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e3400d3490..0a7fc6643c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.83 + 8.84-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.83 + HEAD From ced387304002a1b2b18574229d905431aa527668 Mon Sep 17 00:00:00 2001 From: Antonio Felix Date: Thu, 9 Jan 2020 16:43:42 +0000 Subject: [PATCH 107/123] Update versions of referenced projects --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0a7fc6643c..566f55d694 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.12 + 8.18 3.3.4 From a23e0972ad336c449aef6f05042c408dca0bab76 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 9 Jan 2020 16:48:30 +0000 Subject: [PATCH 108/123] [maven-release-plugin][skip ci] prepare release 8.84 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 566f55d694..575dae1d3a 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.84-SNAPSHOT + 8.84 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.84 From ca2a2050ae04ce1a411a9e60173fcc74082dc060 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 9 Jan 2020 16:48:35 +0000 Subject: [PATCH 109/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 575dae1d3a..f93083934b 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.84 + 8.85-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.84 + HEAD From 05ffd37e1a4960266a4e39907b501019df4bc661 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2020 07:55:09 +0000 Subject: [PATCH 110/123] Bump jackson-annotations from 2.10.1 to 2.10.2 (#203) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f93083934b..d19965af9a 100644 --- a/pom.xml +++ b/pom.xml @@ -233,7 +233,7 @@ com.fasterxml.jackson.core jackson-annotations - 2.10.1 + 2.10.2 From 06e2c80bff78c924581e784396bfd1a1632d3d8e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2020 07:55:15 +0000 Subject: [PATCH 111/123] Bump dependency.cxf.version from 3.3.4 to 3.3.5 (#206) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d19965af9a..2f3cb9ec17 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 8.18 - 3.3.4 + 3.3.5 source/java/org/alfresco/repo/search/impl/parsers/CMIS*er.java, From 7eb97210e9d79d037384269768f42b19b3abf2cb Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 17 Jan 2020 10:01:23 +0000 Subject: [PATCH 112/123] [maven-release-plugin][skip ci] prepare release 8.85 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2f3cb9ec17..4998cd4a95 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.85-SNAPSHOT + 8.85 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.85 From 3dc0ba4a93538daa73609974f238ec95fa43745f Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 17 Jan 2020 10:01:29 +0000 Subject: [PATCH 113/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4998cd4a95..7815e9db6f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.85 + 8.86-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.85 + HEAD From 75e2d857d62f77f9e2d205503c89fb3ab2eedcde Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 18 Jan 2020 05:59:48 +0000 Subject: [PATCH 114/123] Bump alfresco-core from 8.18 to 8.20 (#207) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7815e9db6f..4e701967f8 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.18 + 8.20 3.3.5 From 1b2eb3d79a80f1322892d8a181831f2bbfa9c00d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 18 Jan 2020 06:04:36 +0000 Subject: [PATCH 115/123] [maven-release-plugin][skip ci] prepare release 8.86 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4e701967f8..c04f74cd15 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.86-SNAPSHOT + 8.86 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.86 From 3abe4a0bc9e55ddfa1ae17e4ee90c48a25f52a19 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 18 Jan 2020 06:04:42 +0000 Subject: [PATCH 116/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c04f74cd15..760cd19d4e 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.86 + 8.87-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.86 + HEAD From a8086396533a413b176d08332ab6c3ff4de69d1c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2020 13:37:09 +0000 Subject: [PATCH 117/123] Bump alfresco-core from 8.20 to 8.21 (#208) Bumps [alfresco-core](https://github.com/Alfresco/alfresco-core) from 8.20 to 8.21. - [Release notes](https://github.com/Alfresco/alfresco-core/releases) - [Commits](https://github.com/Alfresco/alfresco-core/compare/8.20...8.21) Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 760cd19d4e..051c32735e 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 8.20 + 8.21 3.3.5 From 9aec6c861cac5562d64fd3d1d4834de8921d7415 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 21 Jan 2020 13:42:00 +0000 Subject: [PATCH 118/123] [maven-release-plugin][skip ci] prepare release 8.87 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 051c32735e..237e0b318b 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.87-SNAPSHOT + 8.87 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.87 From b3c7be08acacb2bbc7563a890e73f7d14c2f8d3f Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 21 Jan 2020 13:42:07 +0000 Subject: [PATCH 119/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 237e0b318b..ec9d5853b3 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.87 + 8.88-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.87 + HEAD From 0e606a689741c1d78c1ac5266528b4f60cecac32 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2020 13:19:08 +0000 Subject: [PATCH 120/123] Bump jibx-run from 1.3.1 to 1.3.3 (#210) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ec9d5853b3..123984a7a5 100644 --- a/pom.xml +++ b/pom.xml @@ -228,7 +228,7 @@ org.jibx jibx-run - 1.3.1 + 1.3.3 com.fasterxml.jackson.core From 5d88855d84e76a8f8cc49e39ba8dae225b3a9440 Mon Sep 17 00:00:00 2001 From: alandavis Date: Sat, 22 Feb 2020 13:49:41 +0000 Subject: [PATCH 121/123] REPO-4710 Remove Legacy Transformers (#213) Bug Fix: In tests we also need to read config resources on both main and test classpaths --- .../java/org/alfresco/util/ConfigFileFinder.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/alfresco/util/ConfigFileFinder.java b/src/main/java/org/alfresco/util/ConfigFileFinder.java index 0bb21ae043..5a5c01bf3b 100644 --- a/src/main/java/org/alfresco/util/ConfigFileFinder.java +++ b/src/main/java/org/alfresco/util/ConfigFileFinder.java @@ -42,6 +42,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; +import java.util.Iterator; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.jar.JarEntry; @@ -89,11 +90,15 @@ public abstract class ConfigFileFinder else { // Try reading resources from disk - URL url = getClass().getClassLoader().getResource(path); - if (url != null) + Iterator pathUrls = getClass().getClassLoader().getResources(path).asIterator(); + while(pathUrls.hasNext()) { - String urlPath = url.getPath(); - readFromDisk(urlPath, log, successReadingConfig, somethingRead); + URL url = pathUrls.next(); + if (url != null) + { + String urlPath = url.getPath(); + readFromDisk(urlPath, log, successReadingConfig, somethingRead); + } } } From 65dbe2ff850073d1438dcc5b0b9d5cc2d0aa599e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 22 Feb 2020 13:54:17 +0000 Subject: [PATCH 122/123] [maven-release-plugin][skip ci] prepare release 8.88 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 123984a7a5..bf14a12e1f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.88-SNAPSHOT + 8.88 scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - HEAD + 8.88 From 53ce0d8ab4e1d626fa8f768fd51d726fe4dad267 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 22 Feb 2020 13:54:22 +0000 Subject: [PATCH 123/123] [maven-release-plugin][skip ci] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index bf14a12e1f..a53b6c8682 100644 --- a/pom.xml +++ b/pom.xml @@ -10,13 +10,13 @@ alfresco-data-model Alfresco Data Model Alfresco Data Model classes - 8.88 + 8.89-SNAPSHOT scm:git:https://github.com/Alfresco/alfresco-data-model.git scm:git:https://github.com/Alfresco/alfresco-data-model.git https://github.com/Alfresco/alfresco-data-model - 8.88 + HEAD