Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 81657 Details for
Bug 206963
JSP directives not allowed in tag itself
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch
206963a.patch (text/plain), 152.10 KB, created by
Nitin Dahyabhai
on 2007-10-30 18:20:15 EDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Nitin Dahyabhai
Created:
2007-10-30 18:20:15 EDT
Size:
152.10 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jst.jsp.core >Index: src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java >=================================================================== >RCS file: /cvsroot/webtools/jst/components/jsp/plugins/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java,v >retrieving revision 1.23 >diff -u -r1.23 StructuredTextPartitionerForJSP.java >--- src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java 10 Apr 2007 17:02:56 -0000 1.23 >+++ src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java 30 Oct 2007 22:18:35 -0000 >@@ -318,7 +318,7 @@ > List fCustomActionPrefixes = ((JSPSourceParser) parser).getNestablePrefixes(); > for (int i = 0; i < fCustomActionPrefixes.size(); i++) > if (tagName.startsWith(((TagMarker) fCustomActionPrefixes.get(i)).getTagName())) { >- fLastCheckedPrefix = tagName; >+ fLastCheckedPrefix = ((TagMarker) fCustomActionPrefixes.get(i)).getTagName(); > return true; > } > } >Index: src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java >=================================================================== >RCS file: /cvsroot/webtools/jst/components/jsp/plugins/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java,v >retrieving revision 1.68 >diff -u -r1.68 JSPTranslator.java >--- src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java 12 Sep 2007 13:08:00 -0000 1.68 >+++ src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java 30 Oct 2007 22:18:33 -0000 >@@ -53,6 +53,7 @@ > import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache.PropertyGroup; > import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser; > import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace; >+import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace; > import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts; > import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelper; > import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager; >@@ -734,7 +735,7 @@ > addTaglibVariables(tagToAdd, getCurrentNode()); > } > >- protected void addTaglibVariables(String tagToAdd, IStructuredDocumentRegion customTag) { >+ protected void addTaglibVariables(String tagToAdd, ITextRegionCollection customTag) { > IFile f = getFile(); > > if (f == null || !f.exists()) >@@ -1005,6 +1006,9 @@ > // //////////////////////////////////////////////////////////////////////////////// > } > } >+ if (region instanceof ITextRegionCollection && ((ITextRegionCollection) region).getNumberOfRegions() > 0) { >+ translateRegionContainer((ITextRegionCollection) region, EMBEDDED_JSP); >+ } > if (type != null && isJSP(type)) // <%, <%=, <%!, <%@ > { > // translateJSPNode(region, regions, type, JSPType); >@@ -1791,7 +1795,8 @@ > while (!sdRegion.isDeleted() && taglibRegions.hasNext()) { > r = (ITextRegion) taglibRegions.next(); > if (r.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) { >- if (sdRegion.getText(r).equals(JSP12TLDNames.TAGLIB)) { >+ String text = sdRegion.getText(r); >+ if (JSP12TLDNames.TAGLIB.equals(text) || JSP12Namespace.ElementName.DIRECTIVE_TAGLIB.equals(text)) { > addBlockMarkers(tracker.getDocument()); > } > } >@@ -1950,6 +1955,7 @@ > if (!getIncludes().contains(filePath) && !filePath.equals(basePath.toString())) { > getIncludes().push(filePath); > JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this); >+ // Should we consider preludes on this segment? > helper.parse(filePath); > getIncludes().pop(); > } >Index: src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java >=================================================================== >RCS file: /cvsroot/webtools/jst/components/jsp/plugins/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java,v >retrieving revision 1.35 >diff -u -r1.35 XMLJSPRegionHelper.java >--- src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java 6 Sep 2007 23:32:47 -0000 1.35 >+++ src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java 30 Oct 2007 22:18:34 -0000 >@@ -17,6 +17,7 @@ > import org.eclipse.core.runtime.Path; > import org.eclipse.jst.jsp.core.internal.Logger; > import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager; >+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker; > import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser; > import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace; > import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts; >@@ -106,6 +107,18 @@ > for (int i = 0; i < blockMarkers.size(); i++) { > addBlockMarker((BlockMarker) blockMarkers.get(i)); > } >+ // RATLC01139770 >+// getLocalParser().getNestablePrefixes().addAll(((JSPSourceParser)fTranslator.getStructuredDocument().getParser()).getNestablePrefixes()); >+ TLDCMDocumentManager documentManager = this.fTranslator.getTLDCMDocumentManager(); >+ if (documentManager != null) { >+ List trackers = documentManager.getTaglibTrackers(); >+ for (Iterator it = trackers.iterator(); it.hasNext();) { >+ TaglibTracker tracker = (TaglibTracker) it.next(); >+ String prefix = tracker.getPrefix(); >+ getLocalParser().getNestablePrefixes().add(new TagMarker(prefix)); >+ } >+ } >+ > reset(contents); > // forceParse(); > document.set(contents); >Index: src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java >=================================================================== >RCS file: /cvsroot/webtools/jst/components/jsp/plugins/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java,v >retrieving revision 1.14 >diff -u -r1.14 TaglibHelper.java >--- src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java 12 Sep 2007 13:07:54 -0000 1.14 >+++ src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java 30 Oct 2007 22:18:35 -0000 >@@ -51,8 +51,8 @@ > import org.eclipse.wst.sse.core.StructuredModelManager; > import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; > import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; >-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; > import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; >+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection; > import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; > import org.eclipse.wst.sse.core.utils.StringUtils; > import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; >@@ -100,7 +100,7 @@ > * is the IStructuredDocumentRegion opening tag for the custom > * tag > */ >- public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, IStructuredDocumentRegion customTag) { >+ public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, ITextRegionCollection customTag) { > > List results = new ArrayList(); > fValidationMessages.clear(); >@@ -158,7 +158,7 @@ > * list where the <code>TaglibVariable</code> s are added > * @param node > */ >- private void addVariables(List results, CMNode node, IStructuredDocumentRegion customTag) { >+ private void addVariables(List results, CMNode node, ITextRegionCollection customTag) { > > List list = ((TLDElementDeclaration) node).getVariables(); > Iterator it = list.iterator(); >@@ -214,7 +214,7 @@ > * @param uri > * URI where the tld can be found > */ >- private void addTEIVariables(IStructuredDocumentRegion customTag, List results, TLDElementDeclaration decl, String prefix, String uri) { >+ private void addTEIVariables(ITextRegionCollection customTag, List results, TLDElementDeclaration decl, String prefix, String uri) { > String teiClassname = decl.getTeiclass(); > if (teiClassname == null || teiClassname.length() == 0) > return; >@@ -344,7 +344,7 @@ > * @param customTag > * @return > */ >- private Hashtable extractTagData(IStructuredDocumentRegion customTag) { >+ private Hashtable extractTagData(ITextRegionCollection customTag) { > > Hashtable tagDataTable = new Hashtable(); > ITextRegionList regions = customTag.getRegions(); >Index: src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java >=================================================================== >RCS file: /cvsroot/webtools/jst/components/jsp/plugins/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java,v >retrieving revision 1.17 >diff -u -r1.17 JSPTokenizer.java >--- src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java 17 Oct 2007 08:31:35 -0000 1.17 >+++ src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java 30 Oct 2007 22:18:34 -0000 >@@ -1,4 +1,4 @@ >-/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:12 AM */ >+/* The following code was generated by JFlex 1.2.2 on 10/24/07 5:16 AM */ > > /******************************************************************************* > * Copyright (c) 2004, 2007 IBM Corporation and others. >@@ -35,7 +35,7 @@ > /** > * This class is a scanner generated by > * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 >- * on 10/17/07 4:12 AM from the specification file >+ * on 10/24/07 5:16 AM from the specification file > * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt> > */ > public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts { >@@ -44,16 +44,16 @@ > final public static int YYEOF = -1; > > /** lexical states */ >- final public static int ST_JSP_VBL_DQUOTES = 52; >- final public static int ST_JSP_VBL_SQUOTES = 51; >- final public static int ST_JSP_VBL_SQUOTES_END = 53; >+ final public static int ST_JSP_VBL_DQUOTES = 51; >+ final public static int ST_JSP_VBL_SQUOTES = 50; >+ final public static int ST_JSP_VBL_SQUOTES_END = 52; > final public static int ST_XML_COMMENT_END = 4; > final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21; >- final public static int ST_JSP_EL_SQUOTES_END = 46; >- final public static int ST_JSP_EL_DQUOTES = 45; >- final public static int ST_JSP_EL = 43; >+ final public static int ST_JSP_EL_SQUOTES_END = 45; >+ final public static int ST_JSP_EL_DQUOTES = 44; >+ final public static int ST_JSP_EL = 42; > final public static int ST_BLOCK_TAG_SCAN = 36; >- final public static int ST_JSP_EL_SQUOTES = 44; >+ final public static int ST_JSP_EL_SQUOTES = 43; > final public static int ST_DHTML_ATTRIBUTE_VALUE = 14; > final public static int ST_XML_PI_ATTRIBUTE_NAME = 8; > final public static int ST_DHTML_TAG_CLOSE = 15; >@@ -61,8 +61,8 @@ > final public static int ST_DHTML_EQUALS = 13; > final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10; > final public static int ST_XML_ATTRIBUTE_VALUE = 25; >- final public static int ST_JSP_VBL = 50; >- final public static int ST_JSP_SQUOTED_VBL = 56; >+ final public static int ST_JSP_VBL = 49; >+ final public static int ST_JSP_SQUOTED_VBL = 55; > final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40; > final public static int ST_XML_ATTRIBUTE_NAME = 23; > final public static int ST_XML_EQUALS = 24; >@@ -73,8 +73,8 @@ > final public static int ST_XML_ELEMENT_DECLARATION = 32; > final public static int ST_XML_DECLARATION_CLOSE = 27; > final public static int ST_JSP_DIRECTIVE_EQUALS = 20; >- final public static int ST_JSP_VBL_DQUOTES_END = 54; >- final public static int ST_JSP_DQUOTED_EL = 48; >+ final public static int ST_JSP_VBL_DQUOTES_END = 53; >+ final public static int ST_JSP_DQUOTED_EL = 47; > final public static int ST_XML_DOCTYPE_DECLARATION = 28; > final public static int ST_CDATA_END = 2; > final public static int ST_PI_WS = 6; >@@ -82,15 +82,15 @@ > final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18; > final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33; > final public static int ST_XML_ATTLIST_DECLARATION = 34; >- final public static int ST_JSP_EL_DQUOTES_END = 47; >- final public static int ST_JSP_SQUOTED_EL = 49; >+ final public static int ST_JSP_EL_DQUOTES_END = 46; >+ final public static int ST_JSP_SQUOTED_EL = 48; > final public static int ST_JSP_COMMENT_END = 39; > final public static int ST_XML_PI_EQUALS = 9; > final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35; > final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30; >- final public static int ST_JSP_DQUOTED_VBL = 55; >+ final public static int ST_JSP_DQUOTED_VBL = 54; > final public static int ST_DHTML_ATTRIBUTE_NAME = 12; >- final public static int ST_ABORT_EMBEDDED = 42; >+ final public static int ST_ABORT_EMBEDDED = 37; > final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29; > final public static int ST_JSP_COMMENT = 38; > final public static int ST_PI_CONTENT = 7; >@@ -191,583 +191,585 @@ > 2130, 2201, 2272, 2343, 2414, 2485, 2556, 2627, 2698, 2769, > 2840, 2911, 2982, 3053, 3124, 3195, 3266, 3337, 3408, 3479, > 3550, 3621, 3692, 3763, 3834, 3905, 3976, 4047, 4118, 4189, >- 4260, 4331, 4402, 4473, 4544, 4473, 4544, 4615, 4473, 4473, >- 4544, 4686, 4757, 4828, 4899, 4970, 5041, 5112, 5183, 4473, >- 4544, 5254, 5325, 5396, 4473, 5467, 5467, 5538, 5609, 5680, >- 5254, 4473, 5751, 5822, 4473, 5893, 5964, 6035, 6106, 4473, >- 4544, 6177, 6248, 6319, 6390, 6461, 6532, 4473, 6603, 6603, >- 6674, 6745, 6816, 6887, 6958, 4473, 7029, 7100, 7171, 7242, >- 7313, 7384, 4473, 7455, 7526, 7597, 7668, 7739, 7810, 7881, >- 7952, 4473, 8023, 8094, 8165, 8236, 8307, 8378, 8449, 8520, >- 8520, 8591, 8662, 8733, 8804, 8804, 8875, 8946, 9017, 9088, >- 9088, 9159, 9230, 9301, 9372, 4473, 9443, 9443, 9514, 9585, >- 9656, 9727, 4473, 4473, 4544, 9798, 4473, 4544, 9869, 9940, >- 10011, 10082, 4473, 10153, 10224, 10295, 10366, 4473, 10437, 10508, >- 10579, 10650, 4473, 4473, 10721, 4473, 10792, 10863, 10792, 10934, >- 11005, 10934, 4473, 4473, 11076, 11147, 11218, 4473, 11289, 11360, >- 11431, 11502, 11573, 4473, 4473, 11644, 4473, 11715, 11786, 11715, >- 11857, 11928, 11857, 4473, 4473, 11999, 12070, 12141, 4473, 12212, >- 12283, 12354, 4473, 4473, 12425, 12496, 12567, 12638, 12709, 4473, >- 12780, 12851, 12922, 12993, 13064, 13135, 13206, 13277, 13348, 4473, >- 13419, 13490, 13561, 4473, 4473, 5467, 5609, 4473, 13632, 5680, >- 13703, 5751, 5893, 5964, 13774, 6035, 4473, 13845, 13916, 6106, >- 13987, 4473, 12496, 4473, 6603, 6674, 4473, 14058, 6745, 14129, >- 4473, 14200, 14271, 7455, 14342, 7668, 4473, 14413, 7739, 14484, >- 14555, 14626, 14697, 14768, 14839, 8236, 4473, 14910, 14981, 8520, >- 8591, 4473, 15052, 15123, 15194, 15265, 15336, 8733, 8520, 8804, >- 8875, 4473, 8946, 9017, 8804, 9088, 9159, 4473, 15407, 15478, >- 15549, 15620, 15691, 15762, 15833, 9443, 9514, 4473, 15904, 15975, >- 16046, 16117, 16188, 16259, 16330, 16401, 16472, 4473, 4473, 4473, >- 16543, 4473, 4473, 16614, 16685, 16756, 16827, 10792, 4473, 16898, >- 16969, 10934, 4473, 17040, 17111, 17182, 17253, 17324, 17395, 17466, >- 17537, 17608, 11502, 11715, 4473, 17679, 17750, 11857, 4473, 17821, >- 17892, 17963, 18034, 18105, 18176, 18247, 18318, 18389, 4473, 4473, >- 4473, 18460, 18531, 18602, 18673, 18744, 4473, 18815, 18886, 4473, >- 4473, 4473, 4473, 4473, 4899, 18957, 19028, 19099, 19170, 19241, >- 19312, 19383, 19312, 19454, 19525, 19454, 19596, 19667, 19738, 19809, >- 19880, 19951, 20022, 20022, 20093, 20164, 20164, 20235, 9301, 9301, >- 20306, 20377, 20448, 20448, 20519, 9656, 9656, 20590, 20661, 16756, >- 20732, 10579, 10579, 20803, 20874, 10792, 10792, 20945, 21016, 10934, >- 10934, 21087, 21158, 11076, 11076, 17324, 21229, 21300, 11289, 11289, >- 17537, 21371, 21442, 11502, 11502, 21513, 11715, 11715, 21584, 21655, >- 11857, 11857, 21726, 21797, 11999, 11999, 18105, 21868, 21939, 12212, >- 12212, 18318, 22010, 4473, 4473, 22081, 22152, 4473, 22223, 22294, >- 22365, 22436, 7455, 4473, 4473, 22507, 22578, 22649, 22720, 22791, >- 15265, 15620, 9301, 22862, 16117, 9656, 22933, 4473, 10579, 10792, >- 23004, 10934, 23075, 11076, 23146, 4473, 11289, 23217, 11502, 11715, >- 23288, 11857, 23359, 11999, 23430, 4473, 12212, 23501, 23572, 23643, >- 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211, 24282, 24353, >- 24424, 24495, 24566, 24637, 24708, 24779, 24850, 24921, 24992, 25063, >- 4899, 25134, 25205, 25276, 25347, 25418, 4473, 4473, 25489, 25560, >- 25631, 25702, 17324, 17537, 25773, 25844, 18105, 18318, 25915, 25986, >- 26057, 26128, 4473, 4473, 4473, 26199, 26270, 26341, 26412, 26483, >- 26554, 26625, 26696, 7171, 26767, 26838, 26909, 26980, 27051, 27122, >- 27193, 4473, 27264, 27335, 9301, 9656, 10792, 10934, 11715, 11857, >- 27406, 27477, 27548, 27619, 27690, 27761, 27832, 27903, 4899, 27974, >- 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542, 28613, 28684, >- 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252, 29323, 29394, >- 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962, 30033, 30104, >- 30175, 30246, 30317, 30388, 30459, 4473, 30530, 30601, 30672, 30743, >- 7171, 30814, 30885, 30956, 31027, 31098, 31169, 31240, 31311, 31382, >- 31453, 31524, 31595, 31666, 31737 >+ 4260, 4331, 4402, 4473, 4402, 4473, 4544, 4402, 4402, 4473, >+ 4615, 4686, 4757, 4828, 4899, 4970, 5041, 5112, 4402, 4473, >+ 5183, 5254, 5325, 4402, 5396, 5396, 5467, 5538, 5609, 5183, >+ 4402, 5680, 5751, 4402, 5822, 5893, 5964, 6035, 4402, 4473, >+ 6106, 6177, 6248, 6319, 6390, 6461, 4402, 6532, 6532, 6603, >+ 6674, 6745, 6816, 6887, 4402, 6958, 7029, 7100, 7171, 7242, >+ 7313, 4402, 7384, 7455, 7526, 7597, 7668, 7739, 7810, 7881, >+ 4402, 7952, 8023, 8094, 8165, 8236, 8307, 8378, 8449, 8449, >+ 8520, 8591, 8662, 8733, 8733, 8804, 8875, 8946, 9017, 9017, >+ 9088, 9159, 9230, 9301, 4402, 9372, 9372, 9443, 9514, 9585, >+ 9656, 4402, 4402, 4473, 4402, 4473, 9727, 9798, 9869, 9940, >+ 4402, 10011, 10082, 10153, 10224, 4402, 10295, 10366, 10437, 10508, >+ 4402, 4402, 10579, 4402, 10650, 10721, 10650, 10792, 10863, 10792, >+ 4402, 4402, 10934, 11005, 11076, 4402, 11147, 11218, 11289, 11360, >+ 11431, 4402, 4402, 11502, 4402, 11573, 11644, 11573, 11715, 11786, >+ 11715, 4402, 4402, 11857, 11928, 11999, 4402, 12070, 12141, 12212, >+ 4402, 4402, 12283, 12354, 12425, 12496, 12567, 4402, 12638, 12709, >+ 12780, 12851, 12922, 12993, 13064, 13135, 4402, 13206, 13277, 13348, >+ 4402, 4402, 5396, 5538, 4402, 13419, 5609, 13490, 5680, 5822, >+ 5893, 13561, 5964, 4402, 13632, 13703, 6035, 13774, 4402, 12354, >+ 4402, 6532, 6603, 4402, 13845, 6674, 13916, 4402, 13987, 14058, >+ 7384, 14129, 7597, 4402, 14200, 7668, 14271, 14342, 14413, 14484, >+ 14555, 14626, 8165, 4402, 14697, 14768, 8449, 8520, 4402, 14839, >+ 14910, 14981, 15052, 15123, 8662, 8449, 8733, 8804, 4402, 8875, >+ 8946, 8733, 9017, 9088, 4402, 15194, 15265, 15336, 15407, 15478, >+ 15549, 15620, 9372, 9443, 4402, 15691, 15762, 15833, 15904, 15975, >+ 16046, 16117, 16188, 16259, 4402, 4402, 4402, 16330, 4402, 4402, >+ 16401, 16472, 16543, 16614, 10650, 4402, 16685, 16756, 10792, 4402, >+ 16827, 16898, 16969, 17040, 17111, 17182, 17253, 17324, 17395, 11360, >+ 11573, 4402, 17466, 17537, 11715, 4402, 17608, 17679, 17750, 17821, >+ 17892, 17963, 18034, 18105, 18176, 4402, 4402, 4402, 18247, 18318, >+ 18389, 18460, 18531, 4402, 18602, 18673, 4402, 4402, 4402, 4402, >+ 4402, 4828, 18744, 18815, 18886, 18957, 19028, 19099, 19170, 19099, >+ 19241, 19312, 19241, 19383, 19454, 19525, 19596, 19667, 19738, 19809, >+ 19809, 19880, 19951, 19951, 20022, 9230, 9230, 9230, 20093, 20164, >+ 20235, 20235, 20306, 9585, 9585, 9585, 20377, 20448, 16543, 20519, >+ 10437, 10437, 10437, 20590, 20661, 10650, 10650, 10650, 20732, 20803, >+ 10792, 10792, 10792, 20874, 20945, 10934, 10934, 10934, 17111, 21016, >+ 21087, 11147, 11147, 11147, 17324, 21158, 21229, 11360, 11360, 11360, >+ 21300, 11573, 11573, 11573, 21371, 21442, 11715, 11715, 11715, 21513, >+ 21584, 11857, 11857, 11857, 17892, 21655, 21726, 12070, 12070, 12070, >+ 18105, 21797, 4402, 4402, 21868, 21939, 4402, 22010, 22081, 22152, >+ 22223, 7384, 4402, 4402, 22294, 22365, 22436, 22507, 22578, 15052, >+ 15407, 9230, 22649, 15904, 9585, 22720, 4402, 10437, 10650, 22791, >+ 10792, 22862, 10934, 22933, 4402, 11147, 23004, 11360, 11573, 23075, >+ 11715, 23146, 11857, 23217, 4402, 12070, 23288, 23359, 23430, 23501, >+ 23572, 23643, 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211, >+ 24282, 24353, 24424, 24495, 24566, 24637, 24708, 24779, 24850, 4828, >+ 24921, 24992, 25063, 25134, 25205, 4402, 4402, 25276, 25347, 25418, >+ 25489, 17111, 17324, 25560, 25631, 17892, 18105, 25702, 25773, 25844, >+ 25915, 4402, 4402, 4402, 25986, 26057, 26128, 26199, 26270, 26341, >+ 26412, 26483, 7100, 26554, 26625, 26696, 26767, 26838, 26909, 26980, >+ 4402, 27051, 27122, 9230, 9585, 10650, 10792, 11573, 11715, 27193, >+ 27264, 27335, 27406, 27477, 27548, 27619, 27690, 4828, 27761, 27832, >+ 27903, 27974, 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542, >+ 28613, 28684, 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252, >+ 29323, 29394, 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962, >+ 30033, 30104, 30175, 30246, 4402, 30317, 30388, 30459, 30530, 7100, >+ 30601, 30672, 30743, 30814, 30885, 30956, 31027, 31098, 31169, 31240, >+ 31311, 31382, 31453, 31524 > }; > > /** > * The packed transition table of the DFA > */ > final private static String yy_packed = >- "\1\72\1\73\11\72\1\74\1\72\1\75\4\72\1\76"+ >- "\42\72\1\77\21\72\1\100\1\101\105\100\1\102\1\103"+ >- "\21\102\1\104\2\102\1\105\60\102\1\106\1\107\105\106"+ >- "\1\102\1\103\5\102\1\110\16\102\1\105\61\102\1\103"+ >- "\2\102\1\111\1\112\2\102\2\113\5\102\1\112\6\102"+ >- "\1\112\1\114\1\115\4\113\1\102\10\113\1\116\2\113"+ >- "\1\102\11\113\1\116\1\113\1\102\4\113\1\102\4\113"+ >- "\1\102\4\113\2\102\1\113\1\102\1\103\2\102\1\111"+ >- "\1\117\11\102\1\117\6\102\1\117\60\102\1\120\1\121"+ >- "\2\120\1\122\21\120\1\105\60\120\1\102\1\103\2\102"+ >- "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+ >- "\6\124\1\102\13\124\1\102\13\124\1\102\4\124\1\102"+ >- "\4\124\1\102\4\124\2\102\1\124\1\102\1\103\2\102"+ >- "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+ >- "\6\124\1\102\13\124\1\125\13\124\1\102\4\124\1\102"+ >- "\4\124\1\102\4\124\2\102\1\124\1\126\1\103\1\102"+ >- "\1\127\1\130\1\112\4\126\1\131\1\126\1\132\2\126"+ >- "\1\112\6\126\1\112\60\126\1\102\1\103\2\102\1\133"+ >- "\21\102\1\105\61\102\1\103\1\134\1\135\1\102\1\112"+ >- "\2\102\2\136\5\102\1\112\6\102\1\112\6\136\1\102"+ >- "\13\136\1\102\13\136\1\102\4\136\1\102\4\136\1\102"+ >- "\4\136\2\102\1\136\1\102\1\103\1\134\1\135\1\102"+ >- "\1\112\2\102\2\136\5\102\1\112\6\102\1\112\6\136"+ >- "\1\102\13\136\1\137\13\136\1\102\4\136\1\102\4\136"+ >- "\1\102\4\136\2\102\1\136\1\140\1\103\1\134\1\141"+ >- "\1\140\1\112\4\140\1\142\1\140\1\143\2\140\1\112"+ >- "\6\140\1\112\60\140\1\102\1\103\3\102\1\112\11\102"+ >- "\1\112\6\102\1\112\60\102\1\144\1\145\20\144\1\146"+ >- "\64\144\1\102\1\147\3\102\1\112\2\102\2\150\5\102"+ >- "\1\112\2\102\1\151\3\102\1\112\6\150\1\102\13\150"+ >- "\1\102\13\150\1\102\4\150\1\102\4\150\1\102\4\150"+ >- "\2\102\1\150\1\102\1\147\3\102\1\152\11\102\1\152"+ >- "\2\102\1\151\3\102\1\152\61\102\1\147\3\102\1\112"+ >- "\2\102\2\153\5\102\1\112\2\102\1\151\3\102\1\112"+ >- "\6\153\1\102\13\153\1\102\13\153\1\102\4\153\1\102"+ >- "\4\153\1\102\4\153\2\102\1\153\1\102\1\147\3\102"+ >- "\1\112\2\102\2\153\5\102\1\112\2\102\1\151\3\102"+ >- "\1\112\6\153\1\102\13\153\1\154\13\153\1\102\4\153"+ >- "\1\102\4\153\1\102\4\153\2\102\1\153\1\155\1\147"+ >- "\1\102\1\156\1\155\1\112\4\155\1\157\1\155\1\160"+ >- "\2\155\1\112\2\155\1\161\3\155\1\112\60\155\1\162"+ >- "\1\163\1\164\1\165\4\162\2\166\15\162\6\167\1\162"+ >- "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\162"+ >- "\1\170\3\167\2\162\1\167\1\102\1\171\1\164\1\165"+ >- "\1\102\1\112\2\102\2\172\5\102\1\112\6\102\1\112"+ >- "\6\172\1\102\13\172\1\102\13\172\1\102\4\172\1\102"+ >- "\4\172\1\102\4\172\2\102\1\172\1\102\1\171\1\164"+ >- "\1\165\1\102\1\112\2\102\2\172\5\102\1\112\6\102"+ >- "\1\112\6\172\1\102\13\172\1\173\13\172\1\102\4\172"+ >- "\1\102\4\172\1\102\4\172\2\102\1\172\1\174\1\175"+ >- "\1\164\1\176\1\174\1\112\4\174\1\177\1\174\1\200"+ >- "\1\201\1\174\1\112\6\174\1\112\36\174\1\202\21\174"+ >- "\1\102\1\203\1\204\2\102\1\112\11\102\1\112\6\102"+ >- "\1\112\10\102\1\205\1\206\2\102\1\207\11\102\1\207"+ >- "\1\102\1\206\1\205\27\102\1\103\1\204\2\102\1\112"+ >- "\11\102\1\112\6\102\1\112\6\102\1\210\52\102\1\103"+ >- "\1\204\2\102\1\112\2\102\2\211\5\102\1\112\6\102"+ >- "\1\112\6\211\1\210\13\211\1\102\13\211\1\102\4\211"+ >- "\1\102\4\211\1\102\4\211\2\102\1\211\1\102\1\103"+ >- "\1\204\2\102\1\112\11\102\1\112\6\102\1\112\6\102"+ >- "\1\210\7\102\1\212\6\102\1\213\11\102\1\212\12\102"+ >- "\1\213\5\102\1\214\1\103\1\204\1\215\1\214\1\112"+ >- "\4\214\1\216\1\214\1\217\2\214\1\112\6\214\1\112"+ >- "\6\214\1\220\51\214\1\221\1\103\1\204\1\222\1\221"+ >- "\1\112\4\221\1\223\1\221\1\224\2\221\1\112\6\221"+ >- "\1\112\6\221\1\225\51\221\1\226\1\103\1\204\1\227"+ >- "\1\226\1\112\4\226\1\230\1\226\1\231\2\226\1\112"+ >- "\6\226\1\112\60\226\1\232\1\233\1\234\104\232\1\235"+ >- "\1\103\1\204\1\236\1\235\1\112\4\235\1\237\1\235"+ >- "\1\240\2\235\1\112\6\235\1\112\60\235\1\241\1\242"+ >- "\1\243\104\241\1\244\1\245\105\244\1\102\1\246\24\102"+ >- "\1\105\60\102\1\247\1\250\105\247\1\102\1\103\5\102"+ >- "\1\251\16\102\1\105\60\102\1\252\1\253\3\252\1\254"+ >- "\6\252\1\255\1\256\1\252\1\254\6\252\1\254\36\252"+ >- "\1\257\21\252\1\260\1\253\3\260\1\261\4\260\1\262"+ >- "\2\260\1\263\1\260\1\261\6\260\1\261\36\260\1\264"+ >- "\21\260\1\102\1\103\24\102\1\105\60\102\1\265\1\266"+ >- "\10\265\1\267\1\265\1\270\1\271\67\265\1\272\1\265"+ >- "\1\273\1\274\12\273\1\102\11\273\1\275\60\273\1\276"+ >- "\1\277\10\276\1\102\13\276\1\300\60\276\1\102\1\103"+ >- "\12\102\1\301\11\102\1\105\61\102\1\103\10\102\1\302"+ >- "\13\102\1\105\60\102\1\303\1\304\10\303\1\262\71\303"+ >- "\1\305\1\306\1\303\1\307\1\310\12\307\1\255\67\307"+ >- "\1\311\1\306\1\307\1\312\1\313\10\312\1\314\1\312"+ >- "\1\315\50\312\1\316\17\312\1\317\1\312\1\320\1\321"+ >- "\12\320\1\102\11\320\1\322\60\320\1\323\1\324\10\323"+ >- "\1\102\13\323\1\325\60\323\1\102\1\103\12\102\1\326"+ >- "\11\102\1\105\61\102\1\103\10\102\1\327\13\102\1\105"+ >- "\60\102\1\330\1\331\10\330\1\262\71\330\1\332\1\333"+ >- "\1\330\1\334\1\335\12\334\1\255\67\334\1\336\1\333"+ >- "\1\334\1\72\1\0\11\72\1\0\1\72\1\0\4\72"+ >- "\1\0\42\72\1\0\21\72\3\0\1\337\1\340\15\0"+ >- "\1\341\2\0\1\342\66\0\1\343\2\0\2\344\5\0"+ >- "\1\343\6\0\1\343\6\344\1\0\13\344\1\0\13\344"+ >- "\1\345\4\344\1\0\4\344\1\0\4\344\2\0\1\344"+ >- "\1\346\1\0\11\346\1\0\1\346\1\347\1\350\3\346"+ >- "\1\0\64\346\5\0\1\343\2\0\2\351\5\0\1\343"+ >- "\6\0\1\343\6\351\1\0\13\351\1\0\13\351\1\0"+ >- "\4\351\1\0\4\351\1\0\4\351\2\0\1\351\1\346"+ >- "\1\0\11\346\1\0\2\346\1\352\3\346\1\0\42\346"+ >- "\1\353\21\346\131\0\1\354\2\0\1\355\104\0\1\356"+ >- "\72\0\1\357\101\0\1\360\111\0\1\112\11\0\1\112"+ >- "\6\0\1\112\66\0\4\113\6\0\1\113\6\0\6\113"+ >- "\1\0\13\113\1\0\13\113\1\0\4\113\1\0\11\113"+ >- "\2\0\1\113\6\0\4\113\6\0\1\113\6\0\2\113"+ >- "\2\361\2\113\1\0\13\113\1\0\13\113\1\0\4\113"+ >- "\1\0\11\113\2\0\1\113\6\0\4\113\6\0\1\113"+ >- "\6\0\2\113\1\361\1\362\2\113\1\0\13\113\1\0"+ >- "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+ >- "\4\113\6\0\1\113\6\0\2\113\2\363\2\113\1\0"+ >- "\13\113\1\0\13\113\1\0\4\113\1\0\11\113\2\0"+ >- "\1\113\5\0\1\117\11\0\1\117\6\0\1\117\62\0"+ >- "\1\364\106\0\1\365\112\0\4\124\6\0\1\124\6\0"+ >- "\6\124\1\0\13\124\1\0\13\124\1\0\4\124\1\0"+ >- "\11\124\2\0\1\124\1\126\2\0\1\366\1\126\1\0"+ >- "\4\126\1\0\1\126\1\0\2\126\1\0\6\126\1\0"+ >- "\61\126\1\0\1\365\1\366\1\126\1\0\4\126\1\0"+ >- "\1\126\1\0\2\126\1\0\6\126\1\0\60\126\1\367"+ >- "\1\0\10\367\1\370\2\367\1\371\47\367\1\371\21\367"+ >- "\1\372\1\0\12\372\1\370\1\373\47\372\1\373\21\372"+ >- "\2\0\1\134\1\374\111\0\4\136\6\0\1\136\6\0"+ >- "\6\136\1\0\13\136\1\0\13\136\1\0\4\136\1\0"+ >- "\11\136\2\0\1\136\1\140\2\0\1\375\1\140\1\0"+ >- "\4\140\1\0\1\140\1\0\2\140\1\0\6\140\1\0"+ >- "\61\140\1\0\1\134\1\376\1\140\1\0\4\140\1\0"+ >- "\1\140\1\0\2\140\1\0\6\140\1\0\60\140\1\142"+ >- "\1\0\1\377\1\u0100\1\142\1\377\4\142\1\u0101\1\142"+ >- "\1\377\1\u0102\1\142\1\377\6\142\1\377\36\142\1\u0102"+ >- "\21\142\1\143\1\0\1\u0103\1\u0104\1\143\1\u0103\4\143"+ >- "\1\u0103\1\143\1\u0101\1\u0105\1\143\1\u0103\6\143\1\u0103"+ >- "\36\143\1\u0105\21\143\2\0\1\u0106\126\0\1\354\2\0"+ >- "\1\u0107\67\0\4\150\6\0\1\150\6\0\6\150\1\0"+ >- "\13\150\1\0\13\150\1\0\4\150\1\0\11\150\2\0"+ >- "\1\150\2\0\1\u0108\111\0\1\152\11\0\1\152\6\0"+ >- "\1\152\66\0\4\153\6\0\1\153\6\0\6\153\1\0"+ >- "\13\153\1\0\13\153\1\0\4\153\1\0\11\153\2\0"+ >- "\1\153\1\155\2\0\1\u0109\1\155\1\0\4\155\1\0"+ >- "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\u010a"+ >- "\1\0\10\u010a\1\u010b\2\u010a\1\u010c\47\u010a\1\u010c\21\u010a"+ >- "\1\u010d\1\0\12\u010d\1\u010b\1\u010e\47\u010d\1\u010e\21\u010d"+ >- "\1\155\1\0\1\u0108\1\u0109\1\155\1\0\4\155\1\0"+ >- "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\162"+ >- "\3\0\23\162\6\0\1\162\13\0\1\162\13\0\1\162"+ >- "\4\0\1\162\4\0\1\162\4\0\2\162\4\0\1\337"+ >- "\16\0\1\354\2\0\1\342\63\0\1\u010f\104\0\1\162"+ >- "\3\0\2\162\4\166\6\162\1\166\6\162\6\167\1\162"+ >- "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\166"+ >- "\4\167\2\162\1\167\6\0\4\167\6\0\1\167\6\0"+ >- "\6\167\1\0\13\167\1\0\13\167\1\0\4\167\1\0"+ >- "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+ >- "\6\167\1\0\7\167\1\u0110\3\167\1\0\13\167\1\0"+ >- "\4\167\1\0\11\167\2\0\1\167\3\0\1\337\4\0"+ >- "\2\u0111\10\0\1\354\2\0\1\342\1\0\6\u0111\1\0"+ >- "\13\u0111\1\0\13\u0111\1\0\4\u0111\1\0\4\u0111\1\0"+ >- "\4\u0111\2\0\1\u0111\6\0\4\172\6\0\1\172\6\0"+ >- "\6\172\1\0\13\172\1\0\13\172\1\0\4\172\1\0"+ >- "\11\172\2\0\1\172\1\174\2\0\1\u0112\1\174\1\0"+ >- "\4\174\1\0\1\174\1\0\2\174\1\0\6\174\1\0"+ >- "\60\174\3\0\1\337\4\0\2\u0113\10\0\1\354\2\0"+ >- "\1\342\1\0\6\u0113\1\0\13\u0113\1\0\13\u0113\1\0"+ >- "\4\u0113\1\0\4\u0113\1\0\4\u0113\2\0\1\u0113\1\174"+ >- "\1\0\1\u010f\1\u0112\1\174\1\0\4\174\1\0\1\174"+ >- "\1\0\2\174\1\0\6\174\1\0\60\174\1\u0114\1\0"+ >- "\10\u0114\1\u0115\2\u0114\1\u0116\47\u0114\1\u0116\21\u0114\1\u0117"+ >- "\1\0\12\u0117\1\u0115\1\u0118\47\u0117\1\u0118\21\u0117\1\174"+ >- "\2\0\1\u0112\1\174\1\0\4\174\1\0\1\174\1\0"+ >- "\1\174\1\u0119\1\0\6\174\1\0\61\174\2\0\1\u0112"+ >- "\1\174\1\0\4\174\1\0\1\174\1\0\1\174\1\u011a"+ >- "\1\0\6\174\1\0\60\174\3\0\1\337\16\0\1\354"+ >- "\2\0\1\u0107\130\0\1\u011b\2\0\1\u011b\75\0\1\u011c"+ >- "\14\0\1\u011c\63\0\2\u011d\52\0\23\u011e\1\u011f\63\u011e"+ >- "\6\0\4\211\6\0\1\211\6\0\6\211\1\0\13\211"+ >- "\1\0\13\211\1\0\4\211\1\0\11\211\2\0\1\211"+ >- "\53\0\1\u0120\5\0\1\u0120\116\0\1\u0121\10\0\1\u0121"+ >- "\4\0\1\214\2\0\1\u0122\1\214\1\0\4\214\1\0"+ >- "\1\214\1\0\2\214\1\0\6\214\1\0\60\214\1\u0123"+ >- "\1\0\10\u0123\1\u0124\2\u0123\1\u0125\47\u0123\1\u0125\21\u0123"+ >- "\1\u0126\1\0\1\u0126\2\u0127\1\u0126\4\u0127\2\u0126\1\u0128"+ >- "\1\u0129\1\u0126\4\u0127\1\u0126\11\u0127\1\u0126\27\u0127\1\u0129"+ >- "\10\u0127\2\u0126\4\u0127\2\u0126\1\u0127\1\220\2\u011e\1\u012a"+ >- "\1\220\1\u011e\4\220\1\u011e\1\220\1\u011e\2\220\1\u011e"+ >- "\3\220\1\u012b\2\220\1\u011e\60\220\1\221\2\0\1\u012c"+ >- "\1\221\1\0\4\221\1\0\1\221\1\0\2\221\1\0"+ >- "\6\221\1\0\60\221\12\u012d\1\u012e\74\u012d\14\u012f\1\u012e"+ >- "\72\u012f\1\225\2\u011e\1\u0130\1\225\1\u011e\4\225\1\u011e"+ >- "\1\225\1\u011e\2\225\1\u011e\3\225\1\u0131\2\225\1\u011e"+ >- "\60\225\1\226\2\0\1\u0132\1\226\1\0\4\226\1\0"+ >- "\1\226\1\0\2\226\1\0\6\226\1\0\60\226\1\u0133"+ >- "\1\0\10\u0133\1\u0134\2\u0133\1\u0135\47\u0133\1\u0135\21\u0133"+ >- "\1\u0136\1\0\1\u0136\2\u0137\1\u0136\4\u0137\2\u0136\1\u0138"+ >- "\1\u0139\1\u0136\4\u0137\1\u0136\11\u0137\1\u0136\27\u0137\1\u0139"+ >- "\10\u0137\2\u0136\4\u0137\2\u0136\1\u0137\2\232\1\0\106\232"+ >- "\1\0\17\232\1\u013a\2\232\1\u013b\61\232\1\235\2\0"+ >- "\1\u013c\1\235\1\0\4\235\1\0\1\235\1\0\2\235"+ >- "\1\0\6\235\1\0\60\235\1\u013d\1\0\10\u013d\1\u013e"+ >- "\2\u013d\1\u013f\47\u013d\1\u013f\21\u013d\1\u0140\1\0\1\u0140"+ >- "\2\u0141\1\u0140\4\u0141\2\u0140\1\u0142\1\u0143\1\u0140\4\u0141"+ >- "\1\u0140\11\u0141\1\u0140\27\u0141\1\u0143\10\u0141\2\u0140\4\u0141"+ >- "\2\u0140\1\u0141\2\241\1\0\106\241\1\0\17\241\1\u0144"+ >- "\2\241\1\u0145\61\241\22\0\1\341\2\0\1\355\70\0"+ >- "\1\u0146\77\0\1\252\1\0\12\252\1\0\1\u0147\47\252"+ >- "\1\u0147\21\252\3\0\1\u0148\16\0\1\354\2\0\1\355"+ >- "\61\0\1\252\1\0\3\252\1\254\6\252\1\0\1\u0147"+ >- "\1\252\1\254\6\252\1\254\36\252\1\u0147\37\252\1\u0149"+ >- "\106\252\1\u014a\70\252\1\260\1\0\10\260\1\0\2\260"+ >- "\1\u014b\47\260\1\u014b\22\260\1\0\3\260\1\261\4\260"+ >- "\1\0\2\260\1\u014b\1\260\1\261\6\260\1\261\36\260"+ >- "\1\u014b\37\260\1\u014c\106\260\1\u014d\70\260\12\265\1\0"+ >- "\1\265\1\0\1\u014e\67\265\1\0\13\265\1\0\1\265"+ >- "\1\0\1\u014e\4\265\1\u014f\62\265\1\0\13\265\1\0"+ >- "\1\265\1\0\1\265\1\u0150\66\265\1\u0151\1\265\14\u0152"+ >- "\1\u0153\106\u0152\1\u0153\5\u0152\1\u0154\2\u0152\1\u0155\61\u0152"+ >- "\12\u0156\1\u0157\106\u0156\1\u0157\7\u0156\1\u0158\2\u0156\1\u0159"+ >- "\61\u0156\12\303\1\0\71\303\1\u015a\1\0\13\303\1\0"+ >- "\7\303\1\u015b\61\303\1\u015a\1\0\13\303\1\u015c\74\303"+ >- "\14\307\1\0\67\307\1\u015d\1\0\15\307\1\0\5\307"+ >- "\1\u015e\61\307\1\u015d\1\0\15\307\1\u015f\72\307\12\312"+ >- "\1\0\1\312\1\0\70\312\1\0\13\312\1\0\1\312"+ >- "\1\0\5\312\1\u0160\62\312\1\0\13\312\1\0\1\312"+ >- "\1\0\1\312\1\u0161\66\312\1\0\1\312\14\u0162\1\u0163"+ >- "\106\u0162\1\u0163\5\u0162\1\u0164\2\u0162\1\u0165\61\u0162\12\u0166"+ >- "\1\u0167\106\u0166\1\u0167\7\u0166\1\u0168\2\u0166\1\u0169\61\u0166"+ >- "\12\330\1\0\71\330\1\u016a\1\0\13\330\1\0\7\330"+ >- "\1\u016b\61\330\1\u016a\1\0\13\330\1\u016c\74\330\14\334"+ >- "\1\0\67\334\1\u016d\1\0\15\334\1\0\5\334\1\u016e"+ >- "\61\334\1\u016d\1\0\15\334\1\u016f\72\334\7\0\1\u0170"+ >- "\11\0\1\u0171\3\0\1\u0172\23\0\1\u0173\44\0\1\u0174"+ >- "\25\0\1\u0175\56\0\1\343\2\0\2\u0176\5\0\1\343"+ >- "\6\0\1\343\6\u0176\1\0\13\u0176\1\0\13\u0176\1\0"+ >- "\4\u0176\1\0\4\u0176\1\0\4\u0176\2\0\1\u0176\1\u0177"+ >- "\1\0\3\u0177\1\u0178\4\344\1\u0177\1\0\3\u0177\1\u0178"+ >- "\1\344\1\u0177\1\0\3\u0177\1\u0178\6\344\1\u0177\13\344"+ >- "\1\u0177\13\344\1\u0177\4\344\1\u0179\11\344\2\u0177\1\344"+ >- "\20\0\1\u017a\7\0\1\u017b\73\0\1\347\71\0\105\350"+ >- "\1\u017c\1\350\1\u0177\1\0\3\u0177\1\u0178\4\351\1\u0177"+ >- "\1\0\3\u0177\1\u0178\1\351\1\u0177\1\0\3\u0177\1\u0178"+ >- "\6\351\1\u0177\13\351\1\u0177\13\351\1\u0177\4\351\1\u017d"+ >- "\11\351\2\u0177\1\351\105\352\1\u017e\1\352\65\0\1\353"+ >- "\30\0\1\u0170\15\0\1\u0172\23\0\1\u0173\72\0\1\u0175"+ >- "\53\0\1\u017f\106\0\1\u0180\112\0\4\113\6\0\1\113"+ >- "\6\0\4\113\2\u0181\1\0\13\113\1\0\13\113\1\0"+ >- "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+ >- "\1\113\6\0\4\113\1\u0181\1\u0182\1\0\13\113\1\0"+ >- "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+ >- "\4\113\6\0\1\113\6\0\6\113\1\0\13\113\1\0"+ >- "\2\113\1\u0183\10\113\1\0\4\113\1\0\6\113\1\u0183"+ >- "\2\113\2\0\1\113\12\367\1\370\3\367\1\0\70\367"+ >- "\14\372\1\370\1\372\1\0\70\372\1\377\1\0\10\377"+ >- "\1\u0101\2\377\1\u0184\47\377\1\u0184\21\377\1\142\2\377"+ >- "\1\u0100\1\142\1\377\4\142\1\u0101\1\142\1\377\1\142"+ >- "\1\140\1\377\6\142\1\377\60\142\1\u0103\1\0\12\u0103"+ >- "\1\u0101\1\u0185\47\u0103\1\u0185\21\u0103\1\143\2\u0103\1\u0104"+ >- "\1\143\1\u0103\4\143\1\u0103\1\143\1\u0101\1\143\1\140"+ >- "\1\u0103\6\143\1\u0103\60\143\12\u010a\1\u010b\3\u010a\1\0"+ >- "\70\u010a\14\u010d\1\u010b\1\u010d\1\0\70\u010d\6\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+ >- "\1\0\4\167\1\0\6\167\1\u0186\2\167\2\0\1\167"+ >- "\6\0\4\u0111\6\0\1\u0111\6\0\6\u0111\1\0\13\u0111"+ >- "\1\0\13\u0111\1\0\4\u0111\1\0\11\u0111\2\0\1\u0111"+ >- "\6\0\4\u0113\6\0\1\u0113\6\0\6\u0113\1\0\13\u0113"+ >- "\1\0\13\u0113\1\0\4\u0113\1\0\11\u0113\2\0\1\u0113"+ >- "\12\u0114\1\u0115\3\u0114\1\0\70\u0114\14\u0117\1\u0115\1\u0117"+ >- "\1\0\70\u0117\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187"+ >- "\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187"+ >- "\1\174\1\u0187\1\u018a\2\u018b\1\u018c\1\u018a\1\u018b\4\u018a"+ >- "\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a\1\u018b\56\u018a"+ >- "\1\174\1\u018a\36\0\1\u018d\35\0\1\u018d\53\0\1\u018e"+ >- "\14\0\1\u018e\73\0\1\u018f\11\0\1\u018f\76\0\1\u0190"+ >- "\20\0\1\u0190\113\0\1\u0191\7\0\1\u0191\3\0\12\u0123"+ >- "\1\u0124\3\u0123\1\0\70\u0123\1\u0126\1\0\12\u0126\1\u0124"+ >- "\1\u0192\47\u0126\1\u0192\22\u0126\1\0\12\u0126\1\u0193\1\u0192"+ >- "\47\u0126\1\u0192\21\u0126\14\0\1\u0194\72\0\14\u0126\1\u0193"+ >- "\1\u0126\1\0\70\u0126\12\u0133\1\u0134\3\u0133\1\0\70\u0133"+ >- "\1\u0136\1\0\12\u0136\1\u0134\1\u0195\47\u0136\1\u0195\22\u0136"+ >- "\1\0\12\u0136\1\u0196\1\u0195\47\u0136\1\u0195\21\u0136\14\0"+ >- "\1\u0197\72\0\14\u0136\1\u0196\1\u0136\1\0\70\u0136\2\232"+ >- "\1\0\4\232\1\u0198\15\232\1\u0199\23\232\1\u019a\37\232"+ >- "\1\0\32\232\1\u019b\51\232\12\u013d\1\u013e\3\u013d\1\0"+ >- "\70\u013d\1\u0140\1\0\12\u0140\1\u013e\1\u019c\47\u0140\1\u019c"+ >- "\22\u0140\1\0\12\u0140\1\u019d\1\u019c\47\u0140\1\u019c\21\u0140"+ >- "\14\0\1\u019e\72\0\14\u0140\1\u019d\1\u0140\1\0\70\u0140"+ >- "\2\241\1\0\4\241\1\u019f\15\241\1\u01a0\23\241\1\u01a1"+ >- "\37\241\1\0\32\241\1\u01a2\51\241\22\0\1\u01a3\64\0"+ >- "\16\252\1\0\70\252\16\260\1\0\70\260\12\265\1\0"+ >- "\1\265\1\0\1\265\1\u01a4\66\265\1\u0151\10\265\1\u01a5"+ >- "\2\265\1\0\1\265\1\0\1\u014e\7\265\1\u01a6\23\265"+ >- "\1\u01a7\33\265\1\0\1\265\12\u01a4\1\0\1\u01a4\1\0"+ >- "\70\u01a4\1\0\1\u01a4\12\u0151\1\0\1\u0151\1\0\1\u01a8"+ >- "\67\u0151\1\0\1\u0151\7\u0152\1\u01a9\4\u0152\1\u0153\10\u0152"+ >- "\1\u01aa\23\u0152\1\u01ab\51\u0152\1\u0153\20\u0152\1\u01ac\51\u0152"+ >- "\7\u0156\1\u01ad\2\u0156\1\u0157\12\u0156\1\u01ae\23\u0156\1\u01af"+ >- "\47\u0156\1\u0157\22\u0156\1\u01b0\51\u0156\12\303\1\0\103\303"+ >- "\1\u01b1\2\303\1\0\12\303\1\u01b2\23\303\1\u01b3\32\303"+ >- "\1\u015a\1\0\1\303\104\u01b4\1\u01b5\2\u01b4\14\307\1\0"+ >- "\101\307\1\u01b6\4\307\1\0\10\307\1\u01b7\23\307\1\u01b8"+ >- "\32\307\1\u015d\1\0\1\307\104\u01b9\1\u01ba\2\u01b9\7\312"+ >- "\1\u01bb\2\312\1\0\1\312\1\0\10\312\1\u01bc\23\312"+ >- "\1\u01bd\33\312\1\0\1\312\7\u0162\1\u01be\4\u0162\1\u0163"+ >- "\10\u0162\1\u01bf\23\u0162\1\u01c0\51\u0162\1\u0163\20\u0162\1\u01c1"+ >- "\51\u0162\7\u0166\1\u01c2\2\u0166\1\u0167\12\u0166\1\u01c3\23\u0166"+ >- "\1\u01c4\47\u0166\1\u0167\22\u0166\1\u01c5\51\u0166\12\330\1\0"+ >- "\103\330\1\u01c6\2\330\1\0\12\330\1\u01c7\23\330\1\u01c8"+ >- "\32\330\1\u016a\1\0\1\330\104\u01c9\1\u01ca\2\u01c9\14\334"+ >- "\1\0\101\334\1\u01cb\4\334\1\0\10\334\1\u01cc\23\334"+ >- "\1\u01cd\32\334\1\u016d\1\0\1\334\104\u01ce\1\u01cf\2\u01ce"+ >- "\7\0\1\u01d0\106\0\1\u01d1\135\0\1\u01d2\50\0\1\u0176"+ >- "\1\0\11\u0176\1\0\6\u0176\1\0\64\u0176\1\u0177\1\0"+ >- "\11\u0177\1\0\6\u0177\1\0\47\u0177\1\0\15\u0177\1\0"+ >- "\3\u0177\1\u0178\5\u0177\1\0\3\u0177\1\u0178\2\u0177\1\0"+ >- "\3\u0177\1\u0178\43\u0177\1\u01d3\14\u0177\20\0\1\u017a\51\0"+ >- "\1\u01d4\34\0\1\u01d5\15\0\3\u01d5\2\0\1\u01d5\11\0"+ >- "\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\2\0\2\u01d5\6\0"+ >- "\1\u01d5\11\0\1\113\1\u01d6\2\113\6\0\1\113\6\0"+ >- "\6\113\1\0\13\113\1\0\13\113\1\0\4\113\1\0"+ >- "\11\113\2\0\1\113\6\0\4\113\6\0\1\113\6\0"+ >- "\6\113\1\0\11\113\1\u01d7\1\113\1\0\1\u01d7\12\113"+ >- "\1\0\4\113\1\0\11\113\2\0\1\113\12\377\1\u0101"+ >- "\3\377\1\0\70\377\14\u0103\1\u0101\1\u0103\1\0\70\u0103"+ >- "\6\0\3\167\1\u01d8\6\0\1\167\6\0\6\167\1\0"+ >- "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+ >- "\1\167\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187\1\u0188"+ >- "\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187\1\u01d9"+ >- "\1\u0187\105\u0188\1\u01da\1\u0188\1\u018a\2\u018b\1\u018c\1\u018a"+ >- "\1\u018b\4\u018a\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a"+ >- "\1\u018b\56\u018a\1\u01d9\1\u018a\105\u018b\1\u01db\1\u018b\41\0"+ >- "\1\u01dc\14\0\1\u01dc\63\0\2\u01dd\103\0\2\u01de\115\0"+ >- "\1\u01df\14\0\1\u01df\63\0\2\u01e0\52\0\14\u0126\1\u0124"+ >- "\1\u0126\1\0\70\u0126\3\0\2\u01e1\1\0\4\u01e1\2\0"+ >- "\1\u0128\1\u01e1\1\0\4\u01e1\1\0\11\u01e1\1\0\40\u01e1"+ >- "\2\0\4\u01e1\2\0\1\u01e1\14\u0136\1\u0134\1\u0136\1\0"+ >- "\70\u0136\3\0\2\u01e2\1\0\4\u01e2\2\0\1\u0138\1\u01e2"+ >- "\1\0\4\u01e2\1\0\11\u01e2\1\0\40\u01e2\2\0\4\u01e2"+ >- "\2\0\1\u01e2\2\232\1\0\4\232\1\u01e3\101\232\1\0"+ >- "\33\232\1\u01e4\50\232\14\u0140\1\u013e\1\u0140\1\0\70\u0140"+ >- "\3\0\2\u01e5\1\0\4\u01e5\2\0\1\u0142\1\u01e5\1\0"+ >- "\4\u01e5\1\0\11\u01e5\1\0\40\u01e5\2\0\4\u01e5\2\0"+ >- "\1\u01e5\2\241\1\0\4\241\1\u01e6\101\241\1\0\33\241"+ >- "\1\u01e7\50\241\2\0\1\u01e8\104\0\7\265\1\u01e9\2\265"+ >- "\1\0\1\265\1\0\1\u014e\67\265\1\0\1\265\12\u0151"+ >- "\1\0\1\u0151\1\0\1\u0151\1\0\70\u0151\7\u0152\1\u01ea"+ >- "\4\u0152\1\u0153\106\u0152\1\u0153\21\u0152\1\u01eb\50\u0152\7\u0156"+ >- "\1\u01ec\2\u0156\1\u0157\106\u0156\1\u0157\23\u0156\1\u01ed\50\u0156"+ >- "\7\303\1\u01ee\2\303\1\0\71\303\1\u015a\1\0\1\303"+ >- "\12\u01ef\1\u01f0\72\u01ef\1\0\1\u01ef\7\307\1\u01f1\4\307"+ >- "\1\0\67\307\1\u015d\1\0\1\307\14\u01f2\1\u01f0\70\u01f2"+ >- "\1\0\1\u01f2\7\312\1\u01f3\2\312\1\0\1\312\1\0"+ >- "\70\312\1\0\1\312\7\u0162\1\u01f4\4\u0162\1\u0163\106\u0162"+ >- "\1\u0163\21\u0162\1\u01f5\50\u0162\7\u0166\1\u01f6\2\u0166\1\u0167"+ >- "\106\u0166\1\u0167\23\u0166\1\u01f7\50\u0166\7\330\1\u01f8\2\330"+ >- "\1\0\71\330\1\u016a\1\0\1\330\12\u01f9\1\u01fa\72\u01f9"+ >- "\1\0\1\u01f9\7\334\1\u01fb\4\334\1\0\67\334\1\u016d"+ >- "\1\0\1\334\14\u01fc\1\u01fa\70\u01fc\1\0\1\u01fc\37\0"+ >- "\1\u01fd\141\0\1\u01d3\34\0\1\u01d5\15\0\3\u01d5\2\0"+ >- "\1\u01d5\11\0\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\1\0"+ >- "\1\u01d4\2\u01d5\6\0\1\u01d5\11\0\4\113\6\0\1\113"+ >- "\6\0\6\113\1\0\7\113\1\u01fe\3\113\1\0\13\113"+ >- "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\113"+ >- "\6\0\1\113\6\0\6\113\1\0\6\113\1\u01ff\4\113"+ >- "\1\0\13\113\1\0\1\113\1\u01ff\2\113\1\0\11\113"+ >- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\6\167\1\u0200\4\167\1\0\6\167\1\u0201\4\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\53\0\1\u0202"+ >- "\5\0\1\u0202\73\0\1\u0203\14\0\1\u0203\66\0\1\u0204"+ >- "\11\0\1\u0204\74\0\1\u0205\11\0\1\u0205\77\0\1\u0206"+ >- "\14\0\1\u0206\23\0\2\232\1\0\34\232\1\u0207\47\232"+ >- "\2\241\1\0\34\241\1\u0208\47\241\14\u0152\1\u0153\22\u0152"+ >- "\1\u0209\47\u0152\12\u0156\1\u0157\24\u0156\1\u020a\47\u0156\12\u01ef"+ >- "\1\u01b4\71\u01ef\1\u020b\1\u01b4\1\u01ef\14\u01f2\1\u01b9\67\u01f2"+ >- "\1\u020c\1\u01b9\1\u01f2\14\u0162\1\u0163\22\u0162\1\u020d\47\u0162"+ >- "\12\u0166\1\u0167\24\u0166\1\u020e\47\u0166\12\u01f9\1\u01c9\71\u01f9"+ >- "\1\u020f\1\u01c9\1\u01f9\14\u01fc\1\u01ce\67\u01fc\1\u0210\1\u01ce"+ >- "\1\u01fc\40\0\1\u0211\54\0\4\113\6\0\1\113\6\0"+ >- "\6\113\1\0\13\113\1\0\4\113\1\u0212\6\113\1\0"+ >- "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+ >- "\1\113\6\0\6\113\1\0\3\113\1\u0213\7\113\1\0"+ >- "\4\113\1\u0213\6\113\1\0\4\113\1\0\11\113\2\0"+ >- "\1\113\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+ >- "\11\167\1\u0214\1\167\1\0\13\167\1\0\4\167\1\0"+ >- "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+ >- "\6\167\1\0\10\167\1\u0215\2\167\1\0\13\167\1\0"+ >- "\4\167\1\0\11\167\2\0\1\167\54\0\1\u0216\24\0"+ >- "\1\u0216\52\0\1\u0217\20\0\1\u0217\70\0\1\u0218\13\0"+ >- "\1\u0218\53\0\2\u0219\112\0\1\u021a\35\0\1\u021a\12\0"+ >- "\2\232\1\0\35\232\1\u021b\46\232\2\241\1\0\35\241"+ >- "\1\u021c\46\241\14\u0152\1\u0153\23\u0152\1\u021d\46\u0152\12\u0156"+ >- "\1\u0157\25\u0156\1\u021e\46\u0156\12\u01ef\1\u021f\71\u01ef\1\u020b"+ >- "\1\u01b4\1\u01ef\14\u01f2\1\u0220\67\u01f2\1\u020c\1\u01b9\1\u01f2"+ >- "\14\u0162\1\u0163\23\u0162\1\u0221\46\u0162\12\u0166\1\u0167\25\u0166"+ >- "\1\u0222\46\u0166\12\u01f9\1\u0223\71\u01f9\1\u020f\1\u01c9\1\u01f9"+ >- "\14\u01fc\1\u0224\67\u01fc\1\u0210\1\u01ce\1\u01fc\41\0\1\u0225"+ >- "\53\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+ >- "\1\0\7\113\1\u0226\3\113\1\0\4\113\1\0\11\113"+ >- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\11\167\1\u0227\1\167\1\0\13\167\1\0\4\167"+ >- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\6\167\1\u0228\4\167\1\0\13\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\43\0\1\u0229"+ >- "\11\0\1\u0229\72\0\1\u022a\14\0\1\u022a\71\0\1\u022b"+ >- "\14\0\1\u022b\30\0\2\232\1\0\36\232\1\u022c\45\232"+ >- "\2\241\1\0\36\241\1\u022d\45\241\14\u0152\1\u0153\24\u0152"+ >- "\1\u022e\45\u0152\12\u0156\1\u0157\26\u0156\1\u022f\45\u0156\14\u0162"+ >- "\1\u0163\24\u0162\1\u0230\45\u0162\12\u0166\1\u0167\26\u0166\1\u0231"+ >- "\45\u0166\40\0\1\u0232\54\0\4\113\6\0\1\113\6\0"+ >- "\5\113\1\u0233\1\0\13\113\1\0\13\113\1\0\4\113"+ >- "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0234\6\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\5\167\1\u0235\5\167"+ >- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\2\232\1\0\35\232\1\u0236\46\232\2\241\1\0\35\241"+ >- "\1\u0237\46\241\14\u0152\1\u0153\23\u0152\1\u0238\46\u0152\12\u0156"+ >- "\1\u0157\25\u0156\1\u0239\46\u0156\14\u0162\1\u0163\23\u0162\1\u023a"+ >- "\46\u0162\12\u0166\1\u0167\25\u0166\1\u023b\46\u0166\35\0\1\u023c"+ >- "\57\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+ >- "\1\u023d\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+ >- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\1\167"+ >- "\1\u023e\7\167\2\0\1\167\2\232\1\0\32\232\1\u023f"+ >- "\51\232\2\241\1\0\32\241\1\u0240\51\241\14\u0152\1\u0153"+ >- "\20\u0152\1\u0241\51\u0152\12\u0156\1\u0157\22\u0156\1\u0242\51\u0156"+ >- "\14\u0162\1\u0163\20\u0162\1\u0243\51\u0162\12\u0166\1\u0167\22\u0166"+ >- "\1\u0244\51\u0166\6\0\4\113\6\0\1\113\6\0\6\113"+ >- "\1\0\7\113\1\u0245\3\113\1\0\13\113\1\0\4\113"+ >- "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0246\6\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\113"+ >- "\6\0\1\113\6\0\6\113\1\0\13\113\1\0\13\113"+ >- "\1\0\4\113\1\0\11\113\2\0\1\u0247\6\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0248\2\167"+ >- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+ >- "\1\u0249\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+ >- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\4\167\1\u024a\6\167\1\0\13\167\1\0\4\167"+ >- "\1\0\11\167\2\0\1\167\6\0\4\113\6\0\1\113"+ >- "\6\0\6\113\1\0\5\113\1\u024b\5\113\1\0\13\113"+ >- "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\5\167\1\u024c\5\167"+ >- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+ >- "\1\0\4\113\1\u024d\6\113\1\0\4\113\1\0\11\113"+ >- "\2\0\1\113\6\u024e\4\u024f\6\u024e\1\u024f\5\u024e\1\0"+ >- "\6\u024f\1\u024e\13\u024f\1\u024e\13\u024f\1\u024e\4\u024f\1\u024e"+ >- "\11\u024f\2\u024e\1\u024f\42\0\1\u0250\3\0\1\u0251\7\0"+ >- "\1\u0252\1\u0253\21\0\1\u0254\13\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\4\167\1\u0255\3\167\1\u0256\2\167"+ >- "\1\0\4\167\1\u0257\1\u0258\5\167\1\0\4\167\1\0"+ >- "\6\167\1\u0259\2\167\2\0\1\167\57\0\1\u025a\77\0"+ >- "\1\u025b\115\0\1\u025c\105\0\1\u025d\107\0\1\u025e\35\0"+ >- "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+ >- "\5\167\1\u025f\5\167\1\0\4\167\1\0\11\167\2\0"+ >- "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+ >- "\12\167\1\u0260\1\0\13\167\1\0\4\167\1\0\11\167"+ >- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\13\167\1\0\5\167\1\u0261\5\167\1\0\4\167"+ >- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0262\6\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+ >- "\1\u0263\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\44\0\1\u0264\136\0\1\u0265\107\0\1\u0266\67\0\1\u0267"+ >- "\125\0\1\u0268\17\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\6\167\1\u0269\4\167\1\0\13\167\1\0\4\167"+ >- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\13\167\1\0\13\167\1\0\4\167"+ >- "\1\0\1\167\1\u026a\7\167\2\0\1\167\6\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+ >- "\1\0\4\167\1\0\2\167\1\u026b\6\167\2\0\1\167"+ >- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+ >- "\1\0\4\167\1\u026c\6\167\1\0\4\167\1\0\11\167"+ >- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\2\167"+ >- "\1\u026d\6\167\2\0\1\167\46\0\1\u026e\74\0\1\u026f"+ >- "\106\0\1\u0270\116\0\1\u0271\105\0\1\u0272\51\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0273\2\167"+ >- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\6\0\4\167\6\0\1\167\6\0\5\167\1\u0274\1\0"+ >- "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+ >- "\1\167\6\0\4\167\6\0\1\167\6\0\5\167\1\u0275"+ >- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\11\167"+ >- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\6\167\1\u0276\4\167\1\0\13\167\1\0\4\167"+ >- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\5\167\1\u0277\5\167\1\0\13\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\57\0\1\u0278"+ >- "\131\0\1\u0279\52\0\1\u027a\106\0\1\u027b\46\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+ >- "\1\u027c\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+ >- "\1\0\13\167\1\0\4\167\1\0\7\167\1\u027d\1\167"+ >- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\10\167\1\u027e\2\167\1\0\13\167\1\0\4\167"+ >- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\10\167\1\u027f\2\167\1\0\13\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167\103\0\1\u0280"+ >- "\63\0\1\u0268\131\0\1\u0272\106\0\1\u0281\11\0\4\167"+ >- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+ >- "\1\0\4\167\1\0\10\167\1\u0282\2\0\1\167\6\0"+ >- "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+ >- "\6\167\1\u026d\4\167\1\0\4\167\1\0\11\167\2\0"+ >- "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+ >- "\13\167\1\0\13\167\1\0\4\167\1\0\10\167\1\u0277"+ >- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+ >- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\10\167"+ >- "\1\u0283\2\0\1\167\34\0\1\u0268\154\0\1\u0284\12\0"+ >- "\4\167\6\0\1\167\6\0\5\167\1\u026d\1\0\13\167"+ >- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+ >- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+ >- "\1\0\13\167\1\0\4\167\1\0\7\167\1\u0285\1\167"+ >- "\2\0\1\167\56\0\1\u0268\36\0\4\167\6\0\1\167"+ >- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u026d\6\167"+ >- "\1\0\4\167\1\0\11\167\2\0\1\167"; >+ "\1\71\1\72\11\71\1\73\1\71\1\74\4\71\1\75"+ >+ "\42\71\1\76\21\71\1\77\1\100\105\77\1\101\1\102"+ >+ "\21\101\1\103\2\101\1\104\60\101\1\105\1\106\105\105"+ >+ "\1\101\1\102\5\101\1\107\16\101\1\104\61\101\1\102"+ >+ "\2\101\1\110\1\111\2\101\2\112\5\101\1\111\6\101"+ >+ "\1\111\1\113\1\114\4\112\1\101\10\112\1\115\2\112"+ >+ "\1\101\11\112\1\115\1\112\1\101\4\112\1\101\4\112"+ >+ "\1\101\4\112\2\101\1\112\1\101\1\102\2\101\1\110"+ >+ "\1\116\11\101\1\116\6\101\1\116\60\101\1\117\1\120"+ >+ "\2\117\1\121\21\117\1\104\60\117\1\101\1\102\2\101"+ >+ "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+ >+ "\6\123\1\101\13\123\1\101\13\123\1\101\4\123\1\101"+ >+ "\4\123\1\101\4\123\2\101\1\123\1\101\1\102\2\101"+ >+ "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+ >+ "\6\123\1\101\13\123\1\124\13\123\1\101\4\123\1\101"+ >+ "\4\123\1\101\4\123\2\101\1\123\1\125\1\102\1\101"+ >+ "\1\126\1\127\1\111\4\125\1\130\1\125\1\131\2\125"+ >+ "\1\111\6\125\1\111\60\125\1\101\1\102\2\101\1\132"+ >+ "\21\101\1\104\61\101\1\102\1\133\1\134\1\101\1\111"+ >+ "\2\101\2\135\5\101\1\111\6\101\1\111\6\135\1\101"+ >+ "\13\135\1\101\13\135\1\101\4\135\1\101\4\135\1\101"+ >+ "\4\135\2\101\1\135\1\101\1\102\1\133\1\134\1\101"+ >+ "\1\111\2\101\2\135\5\101\1\111\6\101\1\111\6\135"+ >+ "\1\101\13\135\1\136\13\135\1\101\4\135\1\101\4\135"+ >+ "\1\101\4\135\2\101\1\135\1\137\1\102\1\133\1\140"+ >+ "\1\137\1\111\4\137\1\141\1\137\1\142\2\137\1\111"+ >+ "\6\137\1\111\60\137\1\101\1\102\3\101\1\111\11\101"+ >+ "\1\111\6\101\1\111\60\101\1\143\1\144\20\143\1\145"+ >+ "\64\143\1\101\1\146\3\101\1\111\2\101\2\147\5\101"+ >+ "\1\111\2\101\1\150\3\101\1\111\6\147\1\101\13\147"+ >+ "\1\101\13\147\1\101\4\147\1\101\4\147\1\101\4\147"+ >+ "\2\101\1\147\1\101\1\146\3\101\1\151\11\101\1\151"+ >+ "\2\101\1\150\3\101\1\151\61\101\1\146\3\101\1\111"+ >+ "\2\101\2\152\5\101\1\111\2\101\1\150\3\101\1\111"+ >+ "\6\152\1\101\13\152\1\101\13\152\1\101\4\152\1\101"+ >+ "\4\152\1\101\4\152\2\101\1\152\1\101\1\146\3\101"+ >+ "\1\111\2\101\2\152\5\101\1\111\2\101\1\150\3\101"+ >+ "\1\111\6\152\1\101\13\152\1\153\13\152\1\101\4\152"+ >+ "\1\101\4\152\1\101\4\152\2\101\1\152\1\154\1\146"+ >+ "\1\101\1\155\1\154\1\111\4\154\1\156\1\154\1\157"+ >+ "\2\154\1\111\2\154\1\160\3\154\1\111\60\154\1\161"+ >+ "\1\162\1\163\1\164\4\161\2\165\15\161\6\166\1\161"+ >+ "\13\166\1\161\13\166\1\161\4\166\1\161\4\166\1\161"+ >+ "\1\167\3\166\2\161\1\166\1\101\1\170\1\163\1\164"+ >+ "\1\101\1\111\2\101\2\171\5\101\1\111\6\101\1\111"+ >+ "\6\171\1\101\13\171\1\101\13\171\1\101\4\171\1\101"+ >+ "\4\171\1\101\4\171\2\101\1\171\1\101\1\170\1\163"+ >+ "\1\164\1\101\1\111\2\101\2\171\5\101\1\111\6\101"+ >+ "\1\111\6\171\1\101\13\171\1\172\13\171\1\101\4\171"+ >+ "\1\101\4\171\1\101\4\171\2\101\1\171\1\173\1\174"+ >+ "\1\163\1\175\1\173\1\111\4\173\1\176\1\173\1\177"+ >+ "\1\200\1\173\1\111\6\173\1\111\36\173\1\201\21\173"+ >+ "\1\101\1\202\1\203\2\101\1\111\11\101\1\111\6\101"+ >+ "\1\111\10\101\1\204\1\205\2\101\1\206\11\101\1\206"+ >+ "\1\101\1\205\1\204\27\101\1\102\1\203\2\101\1\111"+ >+ "\11\101\1\111\6\101\1\111\6\101\1\207\52\101\1\102"+ >+ "\1\203\2\101\1\111\2\101\2\210\5\101\1\111\6\101"+ >+ "\1\111\6\210\1\207\13\210\1\101\13\210\1\101\4\210"+ >+ "\1\101\4\210\1\101\4\210\2\101\1\210\1\101\1\102"+ >+ "\1\203\2\101\1\111\11\101\1\111\6\101\1\111\6\101"+ >+ "\1\207\7\101\1\211\6\101\1\212\11\101\1\211\12\101"+ >+ "\1\212\5\101\1\213\1\102\1\203\1\214\1\213\1\111"+ >+ "\4\213\1\215\1\213\1\216\2\213\1\111\6\213\1\111"+ >+ "\6\213\1\217\51\213\1\220\1\102\1\203\1\221\1\220"+ >+ "\1\111\4\220\1\222\1\220\1\223\2\220\1\111\6\220"+ >+ "\1\111\6\220\1\224\51\220\1\225\1\102\1\203\1\226"+ >+ "\1\225\1\111\4\225\1\227\1\225\1\230\2\225\1\111"+ >+ "\6\225\1\111\60\225\1\231\1\232\1\233\104\231\1\234"+ >+ "\1\102\1\203\1\235\1\234\1\111\4\234\1\236\1\234"+ >+ "\1\237\2\234\1\111\6\234\1\111\60\234\1\240\1\241"+ >+ "\1\242\104\240\1\243\1\244\105\243\1\101\1\102\24\101"+ >+ "\1\104\60\101\1\245\1\246\105\245\1\101\1\102\5\101"+ >+ "\1\247\16\101\1\104\60\101\1\250\1\251\3\250\1\252"+ >+ "\6\250\1\253\1\254\1\250\1\252\6\250\1\252\36\250"+ >+ "\1\255\21\250\1\256\1\251\3\256\1\257\4\256\1\260"+ >+ "\2\256\1\261\1\256\1\257\6\256\1\257\36\256\1\262"+ >+ "\21\256\1\263\1\264\10\263\1\265\1\263\1\266\1\267"+ >+ "\67\263\1\270\1\263\1\271\1\272\12\271\1\101\11\271"+ >+ "\1\273\60\271\1\274\1\275\10\274\1\101\13\274\1\276"+ >+ "\60\274\1\101\1\102\12\101\1\277\11\101\1\104\61\101"+ >+ "\1\102\10\101\1\300\13\101\1\104\60\101\1\301\1\302"+ >+ "\10\301\1\260\71\301\1\303\1\304\1\301\1\305\1\306"+ >+ "\12\305\1\253\67\305\1\307\1\304\1\305\1\310\1\311"+ >+ "\10\310\1\312\1\310\1\313\50\310\1\314\17\310\1\315"+ >+ "\1\310\1\316\1\317\12\316\1\101\11\316\1\320\60\316"+ >+ "\1\321\1\322\10\321\1\101\13\321\1\323\60\321\1\101"+ >+ "\1\102\12\101\1\324\11\101\1\104\61\101\1\102\10\101"+ >+ "\1\325\13\101\1\104\60\101\1\326\1\327\10\326\1\260"+ >+ "\71\326\1\330\1\331\1\326\1\332\1\333\12\332\1\253"+ >+ "\67\332\1\334\1\331\1\332\1\71\1\0\11\71\1\0"+ >+ "\1\71\1\0\4\71\1\0\42\71\1\0\21\71\3\0"+ >+ "\1\335\1\336\15\0\1\337\2\0\1\340\66\0\1\341"+ >+ "\2\0\2\342\5\0\1\341\6\0\1\341\6\342\1\0"+ >+ "\13\342\1\0\13\342\1\343\4\342\1\0\4\342\1\0"+ >+ "\4\342\2\0\1\342\1\344\1\0\11\344\1\0\1\344"+ >+ "\1\345\1\346\3\344\1\0\64\344\5\0\1\341\2\0"+ >+ "\2\347\5\0\1\341\6\0\1\341\6\347\1\0\13\347"+ >+ "\1\0\13\347\1\0\4\347\1\0\4\347\1\0\4\347"+ >+ "\2\0\1\347\1\344\1\0\11\344\1\0\2\344\1\350"+ >+ "\3\344\1\0\42\344\1\351\21\344\131\0\1\337\2\0"+ >+ "\1\352\104\0\1\353\72\0\1\354\101\0\1\355\111\0"+ >+ "\1\111\11\0\1\111\6\0\1\111\66\0\4\112\6\0"+ >+ "\1\112\6\0\6\112\1\0\13\112\1\0\13\112\1\0"+ >+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\112\6\0"+ >+ "\1\112\6\0\2\112\2\356\2\112\1\0\13\112\1\0"+ >+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+ >+ "\4\112\6\0\1\112\6\0\2\112\1\356\1\357\2\112"+ >+ "\1\0\13\112\1\0\13\112\1\0\4\112\1\0\11\112"+ >+ "\2\0\1\112\6\0\4\112\6\0\1\112\6\0\2\112"+ >+ "\2\360\2\112\1\0\13\112\1\0\13\112\1\0\4\112"+ >+ "\1\0\11\112\2\0\1\112\5\0\1\116\11\0\1\116"+ >+ "\6\0\1\116\62\0\1\361\106\0\1\362\112\0\4\123"+ >+ "\6\0\1\123\6\0\6\123\1\0\13\123\1\0\13\123"+ >+ "\1\0\4\123\1\0\11\123\2\0\1\123\1\125\2\0"+ >+ "\1\363\1\125\1\0\4\125\1\0\1\125\1\0\2\125"+ >+ "\1\0\6\125\1\0\61\125\1\0\1\362\1\363\1\125"+ >+ "\1\0\4\125\1\0\1\125\1\0\2\125\1\0\6\125"+ >+ "\1\0\60\125\1\364\1\0\10\364\1\365\2\364\1\366"+ >+ "\47\364\1\366\21\364\1\367\1\0\12\367\1\365\1\370"+ >+ "\47\367\1\370\21\367\2\0\1\133\1\371\111\0\4\135"+ >+ "\6\0\1\135\6\0\6\135\1\0\13\135\1\0\13\135"+ >+ "\1\0\4\135\1\0\11\135\2\0\1\135\1\137\2\0"+ >+ "\1\372\1\137\1\0\4\137\1\0\1\137\1\0\2\137"+ >+ "\1\0\6\137\1\0\61\137\1\0\1\133\1\373\1\137"+ >+ "\1\0\4\137\1\0\1\137\1\0\2\137\1\0\6\137"+ >+ "\1\0\60\137\1\141\1\0\1\374\1\375\1\141\1\374"+ >+ "\4\141\1\376\1\141\1\374\1\377\1\141\1\374\6\141"+ >+ "\1\374\36\141\1\377\21\141\1\142\1\0\1\u0100\1\u0101"+ >+ "\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\u0102\1\142"+ >+ "\1\u0100\6\142\1\u0100\36\142\1\u0102\21\142\2\0\1\u0103"+ >+ "\126\0\1\337\2\0\1\u0104\67\0\4\147\6\0\1\147"+ >+ "\6\0\6\147\1\0\13\147\1\0\13\147\1\0\4\147"+ >+ "\1\0\11\147\2\0\1\147\2\0\1\u0105\111\0\1\151"+ >+ "\11\0\1\151\6\0\1\151\66\0\4\152\6\0\1\152"+ >+ "\6\0\6\152\1\0\13\152\1\0\13\152\1\0\4\152"+ >+ "\1\0\11\152\2\0\1\152\1\154\2\0\1\u0106\1\154"+ >+ "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+ >+ "\1\0\60\154\1\u0107\1\0\10\u0107\1\u0108\2\u0107\1\u0109"+ >+ "\47\u0107\1\u0109\21\u0107\1\u010a\1\0\12\u010a\1\u0108\1\u010b"+ >+ "\47\u010a\1\u010b\21\u010a\1\154\1\0\1\u0105\1\u0106\1\154"+ >+ "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+ >+ "\1\0\60\154\1\161\3\0\23\161\6\0\1\161\13\0"+ >+ "\1\161\13\0\1\161\4\0\1\161\4\0\1\161\4\0"+ >+ "\2\161\4\0\1\335\16\0\1\337\2\0\1\340\63\0"+ >+ "\1\u010c\104\0\1\161\3\0\2\161\4\165\6\161\1\165"+ >+ "\6\161\6\166\1\161\13\166\1\161\13\166\1\161\4\166"+ >+ "\1\161\4\166\1\165\4\166\2\161\1\166\6\0\4\166"+ >+ "\6\0\1\166\6\0\6\166\1\0\13\166\1\0\13\166"+ >+ "\1\0\4\166\1\0\11\166\2\0\1\166\6\0\4\166"+ >+ "\6\0\1\166\6\0\6\166\1\0\7\166\1\u010d\3\166"+ >+ "\1\0\13\166\1\0\4\166\1\0\11\166\2\0\1\166"+ >+ "\3\0\1\335\4\0\2\u010e\10\0\1\337\2\0\1\340"+ >+ "\1\0\6\u010e\1\0\13\u010e\1\0\13\u010e\1\0\4\u010e"+ >+ "\1\0\4\u010e\1\0\4\u010e\2\0\1\u010e\6\0\4\171"+ >+ "\6\0\1\171\6\0\6\171\1\0\13\171\1\0\13\171"+ >+ "\1\0\4\171\1\0\11\171\2\0\1\171\1\173\2\0"+ >+ "\1\u010f\1\173\1\0\4\173\1\0\1\173\1\0\2\173"+ >+ "\1\0\6\173\1\0\60\173\3\0\1\335\4\0\2\u0110"+ >+ "\10\0\1\337\2\0\1\340\1\0\6\u0110\1\0\13\u0110"+ >+ "\1\0\13\u0110\1\0\4\u0110\1\0\4\u0110\1\0\4\u0110"+ >+ "\2\0\1\u0110\1\173\1\0\1\u010c\1\u010f\1\173\1\0"+ >+ "\4\173\1\0\1\173\1\0\2\173\1\0\6\173\1\0"+ >+ "\60\173\1\u0111\1\0\10\u0111\1\u0112\2\u0111\1\u0113\47\u0111"+ >+ "\1\u0113\21\u0111\1\u0114\1\0\12\u0114\1\u0112\1\u0115\47\u0114"+ >+ "\1\u0115\21\u0114\1\173\2\0\1\u010f\1\173\1\0\4\173"+ >+ "\1\0\1\173\1\0\1\173\1\u0116\1\0\6\173\1\0"+ >+ "\61\173\2\0\1\u010f\1\173\1\0\4\173\1\0\1\173"+ >+ "\1\0\1\173\1\u0117\1\0\6\173\1\0\60\173\3\0"+ >+ "\1\335\16\0\1\337\2\0\1\u0104\130\0\1\u0118\2\0"+ >+ "\1\u0118\75\0\1\u0119\14\0\1\u0119\63\0\2\u011a\52\0"+ >+ "\23\u011b\1\u011c\63\u011b\6\0\4\210\6\0\1\210\6\0"+ >+ "\6\210\1\0\13\210\1\0\13\210\1\0\4\210\1\0"+ >+ "\11\210\2\0\1\210\53\0\1\u011d\5\0\1\u011d\116\0"+ >+ "\1\u011e\10\0\1\u011e\4\0\1\213\2\0\1\u011f\1\213"+ >+ "\1\0\4\213\1\0\1\213\1\0\2\213\1\0\6\213"+ >+ "\1\0\60\213\1\u0120\1\0\10\u0120\1\u0121\2\u0120\1\u0122"+ >+ "\47\u0120\1\u0122\21\u0120\1\u0123\1\0\1\u0123\2\u0124\1\u0123"+ >+ "\4\u0124\2\u0123\1\u0125\1\u0126\1\u0123\4\u0124\1\u0123\11\u0124"+ >+ "\1\u0123\27\u0124\1\u0126\10\u0124\2\u0123\4\u0124\2\u0123\1\u0124"+ >+ "\1\217\2\u011b\1\u0127\1\217\1\u011b\4\217\1\u011b\1\217"+ >+ "\1\u011b\2\217\1\u011b\3\217\1\u0128\2\217\1\u011b\60\217"+ >+ "\1\220\2\0\1\u0129\1\220\1\0\4\220\1\0\1\220"+ >+ "\1\0\2\220\1\0\6\220\1\0\60\220\12\u012a\1\u012b"+ >+ "\74\u012a\14\u012c\1\u012b\72\u012c\1\224\2\u011b\1\u012d\1\224"+ >+ "\1\u011b\4\224\1\u011b\1\224\1\u011b\2\224\1\u011b\3\224"+ >+ "\1\u012e\2\224\1\u011b\60\224\1\225\2\0\1\u012f\1\225"+ >+ "\1\0\4\225\1\0\1\225\1\0\2\225\1\0\6\225"+ >+ "\1\0\60\225\1\u0130\1\0\10\u0130\1\u0131\2\u0130\1\u0132"+ >+ "\47\u0130\1\u0132\21\u0130\1\u0133\1\0\1\u0133\2\u0134\1\u0133"+ >+ "\4\u0134\2\u0133\1\u0135\1\u0136\1\u0133\4\u0134\1\u0133\11\u0134"+ >+ "\1\u0133\27\u0134\1\u0136\10\u0134\2\u0133\4\u0134\2\u0133\1\u0134"+ >+ "\2\231\1\0\106\231\1\0\17\231\1\u0137\2\231\1\u0138"+ >+ "\61\231\1\234\2\0\1\u0139\1\234\1\0\4\234\1\0"+ >+ "\1\234\1\0\2\234\1\0\6\234\1\0\60\234\1\u013a"+ >+ "\1\0\10\u013a\1\u013b\2\u013a\1\u013c\47\u013a\1\u013c\21\u013a"+ >+ "\1\u013d\1\0\1\u013d\2\u013e\1\u013d\4\u013e\2\u013d\1\u013f"+ >+ "\1\u0140\1\u013d\4\u013e\1\u013d\11\u013e\1\u013d\27\u013e\1\u0140"+ >+ "\10\u013e\2\u013d\4\u013e\2\u013d\1\u013e\2\240\1\0\106\240"+ >+ "\1\0\17\240\1\u0141\2\240\1\u0142\61\240\7\0\1\u0143"+ >+ "\77\0\1\250\1\0\12\250\1\0\1\u0144\47\250\1\u0144"+ >+ "\21\250\3\0\1\u0145\16\0\1\337\2\0\1\352\61\0"+ >+ "\1\250\1\0\3\250\1\252\6\250\1\0\1\u0144\1\250"+ >+ "\1\252\6\250\1\252\36\250\1\u0144\37\250\1\u0146\106\250"+ >+ "\1\u0147\70\250\1\256\1\0\10\256\1\0\2\256\1\u0148"+ >+ "\47\256\1\u0148\22\256\1\0\3\256\1\257\4\256\1\0"+ >+ "\2\256\1\u0148\1\256\1\257\6\256\1\257\36\256\1\u0148"+ >+ "\37\256\1\u0149\106\256\1\u014a\70\256\12\263\1\0\1\263"+ >+ "\1\0\1\u014b\67\263\1\0\13\263\1\0\1\263\1\0"+ >+ "\1\u014b\4\263\1\u014c\62\263\1\0\13\263\1\0\1\263"+ >+ "\1\0\1\263\1\u014d\66\263\1\u014e\1\263\14\u014f\1\u0150"+ >+ "\106\u014f\1\u0150\5\u014f\1\u0151\2\u014f\1\u0152\61\u014f\12\u0153"+ >+ "\1\u0154\106\u0153\1\u0154\7\u0153\1\u0155\2\u0153\1\u0156\61\u0153"+ >+ "\12\301\1\0\71\301\1\u0157\1\0\13\301\1\0\7\301"+ >+ "\1\u0158\61\301\1\u0157\1\0\13\301\1\u0159\74\301\14\305"+ >+ "\1\0\67\305\1\u015a\1\0\15\305\1\0\5\305\1\u015b"+ >+ "\61\305\1\u015a\1\0\15\305\1\u015c\72\305\12\310\1\0"+ >+ "\1\310\1\0\70\310\1\0\13\310\1\0\1\310\1\0"+ >+ "\5\310\1\u015d\62\310\1\0\13\310\1\0\1\310\1\0"+ >+ "\1\310\1\u015e\66\310\1\0\1\310\14\u015f\1\u0160\106\u015f"+ >+ "\1\u0160\5\u015f\1\u0161\2\u015f\1\u0162\61\u015f\12\u0163\1\u0164"+ >+ "\106\u0163\1\u0164\7\u0163\1\u0165\2\u0163\1\u0166\61\u0163\12\326"+ >+ "\1\0\71\326\1\u0167\1\0\13\326\1\0\7\326\1\u0168"+ >+ "\61\326\1\u0167\1\0\13\326\1\u0169\74\326\14\332\1\0"+ >+ "\67\332\1\u016a\1\0\15\332\1\0\5\332\1\u016b\61\332"+ >+ "\1\u016a\1\0\15\332\1\u016c\72\332\7\0\1\u016d\11\0"+ >+ "\1\u016e\3\0\1\u016f\23\0\1\u0170\44\0\1\u0171\25\0"+ >+ "\1\u0172\56\0\1\341\2\0\2\u0173\5\0\1\341\6\0"+ >+ "\1\341\6\u0173\1\0\13\u0173\1\0\13\u0173\1\0\4\u0173"+ >+ "\1\0\4\u0173\1\0\4\u0173\2\0\1\u0173\1\u0174\1\0"+ >+ "\3\u0174\1\u0175\4\342\1\u0174\1\0\3\u0174\1\u0175\1\342"+ >+ "\1\u0174\1\0\3\u0174\1\u0175\6\342\1\u0174\13\342\1\u0174"+ >+ "\13\342\1\u0174\4\342\1\u0176\11\342\2\u0174\1\342\20\0"+ >+ "\1\u0177\7\0\1\u0178\73\0\1\345\71\0\105\346\1\u0179"+ >+ "\1\346\1\u0174\1\0\3\u0174\1\u0175\4\347\1\u0174\1\0"+ >+ "\3\u0174\1\u0175\1\347\1\u0174\1\0\3\u0174\1\u0175\6\347"+ >+ "\1\u0174\13\347\1\u0174\13\347\1\u0174\4\347\1\u017a\11\347"+ >+ "\2\u0174\1\347\105\350\1\u017b\1\350\65\0\1\351\56\0"+ >+ "\1\u0172\53\0\1\u017c\106\0\1\u017d\112\0\4\112\6\0"+ >+ "\1\112\6\0\4\112\2\u017e\1\0\13\112\1\0\13\112"+ >+ "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+ >+ "\6\0\1\112\6\0\4\112\1\u017e\1\u017f\1\0\13\112"+ >+ "\1\0\13\112\1\0\4\112\1\0\11\112\2\0\1\112"+ >+ "\6\0\4\112\6\0\1\112\6\0\6\112\1\0\13\112"+ >+ "\1\0\2\112\1\u0180\10\112\1\0\4\112\1\0\6\112"+ >+ "\1\u0180\2\112\2\0\1\112\12\364\1\365\3\364\1\0"+ >+ "\70\364\14\367\1\365\1\367\1\0\70\367\1\374\1\0"+ >+ "\10\374\1\376\2\374\1\u0181\47\374\1\u0181\21\374\1\141"+ >+ "\2\374\1\375\1\141\1\374\4\141\1\376\1\141\1\374"+ >+ "\1\141\1\137\1\374\6\141\1\374\60\141\1\u0100\1\0"+ >+ "\12\u0100\1\376\1\u0182\47\u0100\1\u0182\21\u0100\1\142\2\u0100"+ >+ "\1\u0101\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\142"+ >+ "\1\137\1\u0100\6\142\1\u0100\60\142\12\u0107\1\u0108\3\u0107"+ >+ "\1\0\70\u0107\14\u010a\1\u0108\1\u010a\1\0\70\u010a\6\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+ >+ "\13\166\1\0\4\166\1\0\6\166\1\u0183\2\166\2\0"+ >+ "\1\166\6\0\4\u010e\6\0\1\u010e\6\0\6\u010e\1\0"+ >+ "\13\u010e\1\0\13\u010e\1\0\4\u010e\1\0\11\u010e\2\0"+ >+ "\1\u010e\6\0\4\u0110\6\0\1\u0110\6\0\6\u0110\1\0"+ >+ "\13\u0110\1\0\13\u0110\1\0\4\u0110\1\0\11\u0110\2\0"+ >+ "\1\u0110\12\u0111\1\u0112\3\u0111\1\0\70\u0111\14\u0114\1\u0112"+ >+ "\1\u0114\1\0\70\u0114\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185"+ >+ "\4\u0184\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185"+ >+ "\56\u0184\1\173\1\u0184\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188"+ >+ "\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188"+ >+ "\56\u0187\1\173\1\u0187\36\0\1\u018a\35\0\1\u018a\53\0"+ >+ "\1\u018b\14\0\1\u018b\73\0\1\u018c\11\0\1\u018c\76\0"+ >+ "\1\u018d\20\0\1\u018d\113\0\1\u018e\7\0\1\u018e\3\0"+ >+ "\12\u0120\1\u0121\3\u0120\1\0\70\u0120\1\u0123\1\0\12\u0123"+ >+ "\1\u0121\1\u018f\47\u0123\1\u018f\22\u0123\1\0\12\u0123\1\u0190"+ >+ "\1\u018f\47\u0123\1\u018f\21\u0123\14\0\1\u0191\72\0\14\u0123"+ >+ "\1\u0190\1\u0123\1\0\70\u0123\12\u0130\1\u0131\3\u0130\1\0"+ >+ "\70\u0130\1\u0133\1\0\12\u0133\1\u0131\1\u0192\47\u0133\1\u0192"+ >+ "\22\u0133\1\0\12\u0133\1\u0193\1\u0192\47\u0133\1\u0192\21\u0133"+ >+ "\14\0\1\u0194\72\0\14\u0133\1\u0193\1\u0133\1\0\70\u0133"+ >+ "\2\231\1\0\4\231\1\u0195\11\231\1\u0196\3\231\1\u0197"+ >+ "\23\231\1\u0198\37\231\1\0\32\231\1\u0199\51\231\12\u013a"+ >+ "\1\u013b\3\u013a\1\0\70\u013a\1\u013d\1\0\12\u013d\1\u013b"+ >+ "\1\u019a\47\u013d\1\u019a\22\u013d\1\0\12\u013d\1\u019b\1\u019a"+ >+ "\47\u013d\1\u019a\21\u013d\14\0\1\u019c\72\0\14\u013d\1\u019b"+ >+ "\1\u013d\1\0\70\u013d\2\240\1\0\4\240\1\u019d\11\240"+ >+ "\1\u019e\3\240\1\u019f\23\240\1\u01a0\37\240\1\0\32\240"+ >+ "\1\u01a1\51\240\22\0\1\u01a2\64\0\16\250\1\0\70\250"+ >+ "\16\256\1\0\70\256\12\263\1\0\1\263\1\0\1\263"+ >+ "\1\u01a3\66\263\1\u014e\10\263\1\u01a4\2\263\1\0\1\263"+ >+ "\1\0\1\u014b\3\263\1\u01a5\3\263\1\u01a6\23\263\1\u01a7"+ >+ "\33\263\1\0\1\263\12\u01a3\1\0\1\u01a3\1\0\70\u01a3"+ >+ "\1\0\1\u01a3\12\u014e\1\0\1\u014e\1\0\1\u01a8\67\u014e"+ >+ "\1\0\1\u014e\7\u014f\1\u01a9\4\u014f\1\u0150\4\u014f\1\u01aa"+ >+ "\3\u014f\1\u01ab\23\u014f\1\u01ac\51\u014f\1\u0150\20\u014f\1\u01ad"+ >+ "\51\u014f\7\u0153\1\u01ae\2\u0153\1\u0154\6\u0153\1\u01af\3\u0153"+ >+ "\1\u01b0\23\u0153\1\u01b1\47\u0153\1\u0154\22\u0153\1\u01b2\51\u0153"+ >+ "\12\301\1\0\103\301\1\u01b3\2\301\1\0\6\301\1\u01b4"+ >+ "\3\301\1\u01b5\23\301\1\u01b6\32\301\1\u0157\1\0\1\301"+ >+ "\104\u01b7\1\u01b8\2\u01b7\14\305\1\0\101\305\1\u01b9\4\305"+ >+ "\1\0\4\305\1\u01ba\3\305\1\u01bb\23\305\1\u01bc\32\305"+ >+ "\1\u015a\1\0\1\305\104\u01bd\1\u01be\2\u01bd\7\310\1\u01bf"+ >+ "\2\310\1\0\1\310\1\0\4\310\1\u01c0\3\310\1\u01c1"+ >+ "\23\310\1\u01c2\33\310\1\0\1\310\7\u015f\1\u01c3\4\u015f"+ >+ "\1\u0160\4\u015f\1\u01c4\3\u015f\1\u01c5\23\u015f\1\u01c6\51\u015f"+ >+ "\1\u0160\20\u015f\1\u01c7\51\u015f\7\u0163\1\u01c8\2\u0163\1\u0164"+ >+ "\6\u0163\1\u01c9\3\u0163\1\u01ca\23\u0163\1\u01cb\47\u0163\1\u0164"+ >+ "\22\u0163\1\u01cc\51\u0163\12\326\1\0\103\326\1\u01cd\2\326"+ >+ "\1\0\6\326\1\u01ce\3\326\1\u01cf\23\326\1\u01d0\32\326"+ >+ "\1\u0167\1\0\1\326\104\u01d1\1\u01d2\2\u01d1\14\332\1\0"+ >+ "\101\332\1\u01d3\4\332\1\0\4\332\1\u01d4\3\332\1\u01d5"+ >+ "\23\332\1\u01d6\32\332\1\u016a\1\0\1\332\104\u01d7\1\u01d8"+ >+ "\2\u01d7\7\0\1\u01d9\106\0\1\u01da\135\0\1\u01db\50\0"+ >+ "\1\u0173\1\0\11\u0173\1\0\6\u0173\1\0\64\u0173\1\u0174"+ >+ "\1\0\11\u0174\1\0\6\u0174\1\0\47\u0174\1\0\15\u0174"+ >+ "\1\0\3\u0174\1\u0175\5\u0174\1\0\3\u0174\1\u0175\2\u0174"+ >+ "\1\0\3\u0174\1\u0175\43\u0174\1\u01dc\14\u0174\20\0\1\u0177"+ >+ "\51\0\1\u01dd\34\0\1\u01de\15\0\3\u01de\2\0\1\u01de"+ >+ "\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de\2\0\2\u01de"+ >+ "\6\0\1\u01de\11\0\1\112\1\u01df\2\112\6\0\1\112"+ >+ "\6\0\6\112\1\0\13\112\1\0\13\112\1\0\4\112"+ >+ "\1\0\11\112\2\0\1\112\6\0\4\112\6\0\1\112"+ >+ "\6\0\6\112\1\0\11\112\1\u01e0\1\112\1\0\1\u01e0"+ >+ "\12\112\1\0\4\112\1\0\11\112\2\0\1\112\12\374"+ >+ "\1\376\3\374\1\0\70\374\14\u0100\1\376\1\u0100\1\0"+ >+ "\70\u0100\6\0\3\166\1\u01e1\6\0\1\166\6\0\6\166"+ >+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+ >+ "\2\0\1\166\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185\4\u0184"+ >+ "\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185\56\u0184"+ >+ "\1\u01e2\1\u0184\105\u0185\1\u01e3\1\u0185\1\u0187\2\u0188\1\u0189"+ >+ "\1\u0187\1\u0188\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188"+ >+ "\6\u0187\1\u0188\56\u0187\1\u01e2\1\u0187\105\u0188\1\u01e4\1\u0188"+ >+ "\41\0\1\u01e5\14\0\1\u01e5\63\0\2\u01e6\103\0\2\u01e7"+ >+ "\115\0\1\u01e8\14\0\1\u01e8\63\0\2\u01e9\52\0\14\u0123"+ >+ "\1\u0121\1\u0123\1\0\70\u0123\3\0\2\u01ea\1\0\4\u01ea"+ >+ "\2\0\1\u0125\1\u01ea\1\0\4\u01ea\1\0\11\u01ea\1\0"+ >+ "\40\u01ea\2\0\4\u01ea\2\0\1\u01ea\14\u0133\1\u0131\1\u0133"+ >+ "\1\0\70\u0133\3\0\2\u01eb\1\0\4\u01eb\2\0\1\u0135"+ >+ "\1\u01eb\1\0\4\u01eb\1\0\11\u01eb\1\0\40\u01eb\2\0"+ >+ "\4\u01eb\2\0\1\u01eb\2\231\1\0\4\231\1\u01ec\101\231"+ >+ "\1\0\33\231\1\u01ed\50\231\14\u013d\1\u013b\1\u013d\1\0"+ >+ "\70\u013d\3\0\2\u01ee\1\0\4\u01ee\2\0\1\u013f\1\u01ee"+ >+ "\1\0\4\u01ee\1\0\11\u01ee\1\0\40\u01ee\2\0\4\u01ee"+ >+ "\2\0\1\u01ee\2\240\1\0\4\240\1\u01ef\101\240\1\0"+ >+ "\33\240\1\u01f0\50\240\2\0\1\u01f1\104\0\7\263\1\u01f2"+ >+ "\2\263\1\0\1\263\1\0\1\u014b\67\263\1\0\1\263"+ >+ "\12\u014e\1\0\1\u014e\1\0\1\u014e\1\0\70\u014e\7\u014f"+ >+ "\1\u01f3\4\u014f\1\u0150\106\u014f\1\u0150\21\u014f\1\u01f4\50\u014f"+ >+ "\7\u0153\1\u01f5\2\u0153\1\u0154\106\u0153\1\u0154\23\u0153\1\u01f6"+ >+ "\50\u0153\7\301\1\u01f7\2\301\1\0\71\301\1\u0157\1\0"+ >+ "\1\301\12\u01f8\1\u01f9\72\u01f8\1\0\1\u01f8\7\305\1\u01fa"+ >+ "\4\305\1\0\67\305\1\u015a\1\0\1\305\14\u01fb\1\u01f9"+ >+ "\70\u01fb\1\0\1\u01fb\7\310\1\u01fc\2\310\1\0\1\310"+ >+ "\1\0\70\310\1\0\1\310\7\u015f\1\u01fd\4\u015f\1\u0160"+ >+ "\106\u015f\1\u0160\21\u015f\1\u01fe\50\u015f\7\u0163\1\u01ff\2\u0163"+ >+ "\1\u0164\106\u0163\1\u0164\23\u0163\1\u0200\50\u0163\7\326\1\u0201"+ >+ "\2\326\1\0\71\326\1\u0167\1\0\1\326\12\u0202\1\u0203"+ >+ "\72\u0202\1\0\1\u0202\7\332\1\u0204\4\332\1\0\67\332"+ >+ "\1\u016a\1\0\1\332\14\u0205\1\u0203\70\u0205\1\0\1\u0205"+ >+ "\37\0\1\u0206\141\0\1\u01dc\34\0\1\u01de\15\0\3\u01de"+ >+ "\2\0\1\u01de\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de"+ >+ "\1\0\1\u01dd\2\u01de\6\0\1\u01de\11\0\4\112\6\0"+ >+ "\1\112\6\0\6\112\1\0\7\112\1\u0207\3\112\1\0"+ >+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+ >+ "\4\112\6\0\1\112\6\0\6\112\1\0\6\112\1\u0208"+ >+ "\4\112\1\0\13\112\1\0\1\112\1\u0208\2\112\1\0"+ >+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\6\166\1\u0209\4\166\1\0\6\166\1\u020a"+ >+ "\4\166\1\0\4\166\1\0\11\166\2\0\1\166\53\0"+ >+ "\1\u020b\5\0\1\u020b\73\0\1\u020c\14\0\1\u020c\66\0"+ >+ "\1\u020d\11\0\1\u020d\74\0\1\u020e\11\0\1\u020e\77\0"+ >+ "\1\u020f\14\0\1\u020f\23\0\2\231\1\0\34\231\1\u0210"+ >+ "\47\231\2\240\1\0\34\240\1\u0211\47\240\14\u014f\1\u0150"+ >+ "\22\u014f\1\u0212\47\u014f\12\u0153\1\u0154\24\u0153\1\u0213\47\u0153"+ >+ "\12\u01f8\1\u01b7\71\u01f8\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u01bd"+ >+ "\67\u01fb\1\u0215\1\u01bd\1\u01fb\14\u015f\1\u0160\22\u015f\1\u0216"+ >+ "\47\u015f\12\u0163\1\u0164\24\u0163\1\u0217\47\u0163\12\u0202\1\u01d1"+ >+ "\71\u0202\1\u0218\1\u01d1\1\u0202\14\u0205\1\u01d7\67\u0205\1\u0219"+ >+ "\1\u01d7\1\u0205\40\0\1\u021a\54\0\4\112\6\0\1\112"+ >+ "\6\0\6\112\1\0\13\112\1\0\4\112\1\u021b\6\112"+ >+ "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+ >+ "\6\0\1\112\6\0\6\112\1\0\3\112\1\u021c\7\112"+ >+ "\1\0\4\112\1\u021c\6\112\1\0\4\112\1\0\11\112"+ >+ "\2\0\1\112\6\0\4\166\6\0\1\166\6\0\6\166"+ >+ "\1\0\11\166\1\u021d\1\166\1\0\13\166\1\0\4\166"+ >+ "\1\0\11\166\2\0\1\166\6\0\4\166\6\0\1\166"+ >+ "\6\0\6\166\1\0\10\166\1\u021e\2\166\1\0\13\166"+ >+ "\1\0\4\166\1\0\11\166\2\0\1\166\54\0\1\u021f"+ >+ "\24\0\1\u021f\52\0\1\u0220\20\0\1\u0220\70\0\1\u0221"+ >+ "\13\0\1\u0221\53\0\2\u0222\112\0\1\u0223\35\0\1\u0223"+ >+ "\12\0\2\231\1\0\35\231\1\u0224\46\231\2\240\1\0"+ >+ "\35\240\1\u0225\46\240\14\u014f\1\u0150\23\u014f\1\u0226\46\u014f"+ >+ "\12\u0153\1\u0154\25\u0153\1\u0227\46\u0153\12\u01f8\1\u0228\71\u01f8"+ >+ "\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u0229\67\u01fb\1\u0215\1\u01bd"+ >+ "\1\u01fb\14\u015f\1\u0160\23\u015f\1\u022a\46\u015f\12\u0163\1\u0164"+ >+ "\25\u0163\1\u022b\46\u0163\12\u0202\1\u022c\71\u0202\1\u0218\1\u01d1"+ >+ "\1\u0202\14\u0205\1\u022d\67\u0205\1\u0219\1\u01d7\1\u0205\41\0"+ >+ "\1\u022e\53\0\4\112\6\0\1\112\6\0\6\112\1\0"+ >+ "\13\112\1\0\7\112\1\u022f\3\112\1\0\4\112\1\0"+ >+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\11\166\1\u0230\1\166\1\0\13\166\1\0"+ >+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\6\166\1\u0231\4\166\1\0"+ >+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\43\0"+ >+ "\1\u0232\11\0\1\u0232\72\0\1\u0233\14\0\1\u0233\71\0"+ >+ "\1\u0234\14\0\1\u0234\30\0\2\231\1\0\36\231\1\u0235"+ >+ "\45\231\2\240\1\0\36\240\1\u0236\45\240\14\u014f\1\u0150"+ >+ "\24\u014f\1\u0237\45\u014f\12\u0153\1\u0154\26\u0153\1\u0238\45\u0153"+ >+ "\14\u015f\1\u0160\24\u015f\1\u0239\45\u015f\12\u0163\1\u0164\26\u0163"+ >+ "\1\u023a\45\u0163\40\0\1\u023b\54\0\4\112\6\0\1\112"+ >+ "\6\0\5\112\1\u023c\1\0\13\112\1\0\13\112\1\0"+ >+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u023d"+ >+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u023e"+ >+ "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\2\231\1\0\35\231\1\u023f\46\231\2\240\1\0"+ >+ "\35\240\1\u0240\46\240\14\u014f\1\u0150\23\u014f\1\u0241\46\u014f"+ >+ "\12\u0153\1\u0154\25\u0153\1\u0242\46\u0153\14\u015f\1\u0160\23\u015f"+ >+ "\1\u0243\46\u015f\12\u0163\1\u0164\25\u0163\1\u0244\46\u0163\35\0"+ >+ "\1\u0245\57\0\4\112\6\0\1\112\6\0\6\112\1\0"+ >+ "\5\112\1\u0246\5\112\1\0\13\112\1\0\4\112\1\0"+ >+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+ >+ "\1\166\1\u0247\7\166\2\0\1\166\2\231\1\0\32\231"+ >+ "\1\u0248\51\231\2\240\1\0\32\240\1\u0249\51\240\14\u014f"+ >+ "\1\u0150\20\u014f\1\u024a\51\u014f\12\u0153\1\u0154\22\u0153\1\u024b"+ >+ "\51\u0153\14\u015f\1\u0160\20\u015f\1\u024c\51\u015f\12\u0163\1\u0164"+ >+ "\22\u0163\1\u024d\51\u0163\6\0\4\112\6\0\1\112\6\0"+ >+ "\6\112\1\0\7\112\1\u024e\3\112\1\0\13\112\1\0"+ >+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u024f"+ >+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+ >+ "\4\112\6\0\1\112\6\0\6\112\1\0\13\112\1\0"+ >+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\u0250\6\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u0251"+ >+ "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+ >+ "\5\112\1\u0252\5\112\1\0\13\112\1\0\4\112\1\0"+ >+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\4\166\1\u0253\6\166\1\0\13\166\1\0"+ >+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\112\6\0"+ >+ "\1\112\6\0\6\112\1\0\5\112\1\u0254\5\112\1\0"+ >+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u0255"+ >+ "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+ >+ "\13\112\1\0\4\112\1\u0256\6\112\1\0\4\112\1\0"+ >+ "\11\112\2\0\1\112\6\u0257\4\u0258\6\u0257\1\u0258\5\u0257"+ >+ "\1\0\6\u0258\1\u0257\13\u0258\1\u0257\13\u0258\1\u0257\4\u0258"+ >+ "\1\u0257\11\u0258\2\u0257\1\u0258\42\0\1\u0259\3\0\1\u025a"+ >+ "\7\0\1\u025b\1\u025c\21\0\1\u025d\13\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\4\166\1\u025e\3\166\1\u025f"+ >+ "\2\166\1\0\4\166\1\u0260\1\u0261\5\166\1\0\4\166"+ >+ "\1\0\6\166\1\u0262\2\166\2\0\1\166\57\0\1\u0263"+ >+ "\77\0\1\u0264\115\0\1\u0265\105\0\1\u0266\107\0\1\u0267"+ >+ "\35\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+ >+ "\1\0\5\166\1\u0268\5\166\1\0\4\166\1\0\11\166"+ >+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+ >+ "\1\0\12\166\1\u0269\1\0\13\166\1\0\4\166\1\0"+ >+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\13\166\1\0\5\166\1\u026a\5\166\1\0"+ >+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u026b"+ >+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+ >+ "\5\166\1\u026c\5\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\44\0\1\u026d\136\0\1\u026e\107\0\1\u026f\67\0"+ >+ "\1\u0270\125\0\1\u0271\17\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\6\166\1\u0272\4\166\1\0\13\166\1\0"+ >+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\13\166\1\0\13\166\1\0"+ >+ "\4\166\1\0\1\166\1\u0273\7\166\2\0\1\166\6\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+ >+ "\13\166\1\0\4\166\1\0\2\166\1\u0274\6\166\2\0"+ >+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+ >+ "\13\166\1\0\4\166\1\u0275\6\166\1\0\4\166\1\0"+ >+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+ >+ "\2\166\1\u0276\6\166\2\0\1\166\46\0\1\u0277\74\0"+ >+ "\1\u0278\106\0\1\u0279\116\0\1\u027a\105\0\1\u027b\51\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u027c"+ >+ "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\6\0\4\166\6\0\1\166\6\0\5\166\1\u027d"+ >+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+ >+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\5\166"+ >+ "\1\u027e\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+ >+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\6\166\1\u027f\4\166\1\0\13\166\1\0"+ >+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\5\166\1\u0280\5\166\1\0"+ >+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\57\0"+ >+ "\1\u0281\131\0\1\u0282\52\0\1\u0283\106\0\1\u0284\46\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+ >+ "\5\166\1\u0285\5\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+ >+ "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u0286"+ >+ "\1\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\10\166\1\u0287\2\166\1\0\13\166\1\0"+ >+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\10\166\1\u0288\2\166\1\0"+ >+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\103\0"+ >+ "\1\u0289\63\0\1\u0271\131\0\1\u027b\106\0\1\u028a\11\0"+ >+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+ >+ "\13\166\1\0\4\166\1\0\10\166\1\u028b\2\0\1\166"+ >+ "\6\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+ >+ "\1\0\6\166\1\u0276\4\166\1\0\4\166\1\0\11\166"+ >+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+ >+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\10\166"+ >+ "\1\u0280\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+ >+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+ >+ "\10\166\1\u028c\2\0\1\166\34\0\1\u0271\154\0\1\u028d"+ >+ "\12\0\4\166\6\0\1\166\6\0\5\166\1\u0276\1\0"+ >+ "\13\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+ >+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+ >+ "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u028e"+ >+ "\1\166\2\0\1\166\56\0\1\u0271\36\0\4\166\6\0"+ >+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u0276"+ >+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166"; > > /** > * The transition table of the DFA >@@ -795,45 +797,45 @@ > private final static byte YY_ATTRIBUTE[] = { > 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, > 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, >- 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, >- 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, >- 1, 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, >- 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1, >- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, >- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, >- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, >- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, >- 1, 1, 9, 9, 1, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, >- 1, 9, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3, >- 9, 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3, >- 3, 3, 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9, >- 1, 1, 0, 1, 0, 9, 1, 2, 1, 2, 1, 1, 0, 0, 0, 9, >- 1, 1, 1, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, >- 9, 1, 0, 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1, >- 1, 0, 1, 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0, >- 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0, >- 1, 0, 0, 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0, >- 0, 1, 0, 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1, >- 1, 2, 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1, >- 1, 2, 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0, >- 9, 9, 9, 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9, >- 1, 1, 1, 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0, >- 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, >- 1, 1, 0, 1, 1, 1, 1, 0, 2, 3, 3, 2, 2, 3, 3, 2, >- 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3, >- 2, 2, 3, 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 9, >- 9, 0, 1, 9, 0, 1, 1, 1, 5, 13, 13, 0, 0, 0, 0, 0, >- 0, 0, 1, 1, 0, 1, 1, 9, 1, 3, 2, 3, 2, 1, 0, 9, >- 1, 0, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 0, 1, 1, 1, >- 1, 0, 0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 2, 2, 0, 0, >- 0, 1, 1, 1, 1, 0, 0, 0, 9, 9, 1, 1, 2, 2, 1, 1, >- 2, 2, 1, 1, 0, 1, 1, 1, 9, 9, 9, 1, 1, 2, 2, 2, >- 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 9, 1, 1, 1, 1, >- 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, >- 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, >- 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, >- 0, 9, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, >- 0, 1, 1, 0, 1 >+ 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, >+ 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, 1, >+ 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, >+ 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1, 1, >+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, >+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, >+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, >+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, >+ 1, 9, 9, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 9, >+ 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3, 9, 9, >+ 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, >+ 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9, 1, 1, >+ 0, 1, 0, 9, 1, 2, 1, 2, 1, 0, 0, 0, 9, 1, 1, 1, >+ 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, >+ 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1, 1, 0, 1, >+ 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, >+ 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0, 1, 0, 0, >+ 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0, 0, 1, 0, >+ 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1, 1, 2, 13, >+ 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1, 1, 2, 13, >+ 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0, 9, 9, 9, >+ 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9, 1, 1, 1, >+ 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 1, >+ 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, >+ 1, 0, 1, 1, 1, 1, 1, 0, 2, 3, 3, 3, 2, 2, 3, 3, >+ 3, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, >+ 1, 1, 2, 3, 3, 3, 2, 2, 3, 3, 3, 2, 1, 1, 1, 1, >+ 0, 0, 1, 1, 1, 1, 0, 0, 9, 9, 0, 1, 9, 0, 1, 1, >+ 1, 5, 13, 13, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, >+ 9, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 1, 3, 2, 3, 2, >+ 1, 0, 9, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, >+ 1, 2, 2, 0, 0, 2, 2, 0, 0, 0, 1, 1, 1, 1, 0, 0, >+ 0, 9, 9, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 0, 1, 1, >+ 1, 9, 9, 9, 1, 1, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, >+ 2, 2, 2, 2, 9, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, >+ 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, >+ 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, >+ 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1, >+ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1 > }; > > /** the input device */ >@@ -1738,10 +1740,10 @@ > * @return the unpacked transition table > */ > private static int [] yy_unpack(String packed) { >- int [] trans = new int[31808]; >+ int [] trans = new int[31595]; > int i = 0; /* index in packed string */ > int j = 0; /* index in unpacked array */ >- while (i < 8188) { >+ while (i < 8206) { > int count = packed.charAt(i++); > int value = packed.charAt(i++); > value--; >@@ -2073,10 +2075,10 @@ > > switch (yy_action) { > >- case 613: >- case 618: >- case 625: >- case 630: >+ case 622: >+ case 627: >+ case 634: >+ case 639: > { > if(Debug.debugTokenizer) > dump("jsp directive tag name");//$NON-NLS-1$ >@@ -2085,8 +2087,8 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return JSP_DIRECTIVE_NAME; > } >- case 646: break; >- case 588: >+ case 655: break; >+ case 597: > { > if(Debug.debugTokenizer) > dump("XSL processing instruction target");//$NON-NLS-1$ >@@ -2094,14 +2096,14 @@ > yybegin(ST_XML_PI_ATTRIBUTE_NAME); > return XML_TAG_NAME; > } >- case 647: break; >- case 571: >- case 574: >- case 575: >- case 576: >- case 577: >- case 578: >- case 579: >+ case 656: break; >+ case 580: >+ case 583: >+ case 584: >+ case 585: >+ case 586: >+ case 587: >+ case 588: > { > if(Debug.debugTokenizer) > dump("\nCDATA start");//$NON-NLS-1$ >@@ -2109,8 +2111,8 @@ > yybegin(ST_CDATA_TEXT); > return XML_CDATA_OPEN; > } >- case 648: break; >- case 563: >+ case 657: break; >+ case 572: > { > if(Debug.debugTokenizer) > dump("jsp:root tag name");//$NON-NLS-1$ >@@ -2119,32 +2121,32 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return JSP_ROOT_TAG_NAME; > } >- case 649: break; >- case 554: >+ case 658: break; >+ case 563: > { > if(Debug.debugTokenizer) > dump("element");//$NON-NLS-1$ > yybegin(ST_XML_ELEMENT_DECLARATION); > return XML_ELEMENT_DECLARATION; > } >- case 650: break; >- case 553: >+ case 659: break; >+ case 562: > { > if(Debug.debugTokenizer) > dump("attlist");//$NON-NLS-1$ > yybegin(ST_XML_ATTLIST_DECLARATION); > return XML_ATTLIST_DECLARATION; > } >- case 651: break; >- case 552: >+ case 660: break; >+ case 561: > { > if(Debug.debugTokenizer) > dump("doctype");//$NON-NLS-1$ > yybegin(ST_XML_DOCTYPE_DECLARATION); > return XML_DOCTYPE_DECLARATION; > } >- case 652: break; >- case 537: >+ case 661: break; >+ case 546: > { > if(Debug.debugTokenizer) > dump("doctype external id");//$NON-NLS-1$ >@@ -2152,8 +2154,8 @@ > yybegin(ST_XML_DOCTYPE_ID_PUBLIC); > return XML_DOCTYPE_EXTERNAL_ID_PUBLIC; > } >- case 653: break; >- case 536: >+ case 662: break; >+ case 545: > { > if(Debug.debugTokenizer) > dump("doctype external id");//$NON-NLS-1$ >@@ -2161,8 +2163,8 @@ > yybegin(ST_XML_DOCTYPE_ID_SYSTEM); > return XML_DOCTYPE_EXTERNAL_ID_SYSTEM; > } >- case 654: break; >- case 530: >+ case 663: break; >+ case 539: > { > if(Debug.debugTokenizer) > dump("DHTML processing instruction target");//$NON-NLS-1$ >@@ -2171,30 +2173,30 @@ > yybegin(ST_DHTML_ATTRIBUTE_NAME); > return XML_TAG_NAME; > } >- case 655: break; >- case 505: >- case 546: >- case 547: >+ case 664: break; >+ case 514: >+ case 555: >+ case 556: > { > return JSP_VBL_QUOTED_CONTENT; > } >- case 656: break; >- case 495: >- case 542: >- case 543: >+ case 665: break; >+ case 504: >+ case 551: >+ case 552: > { > return JSP_EL_QUOTED_CONTENT; > } >- case 657: break; >- case 487: >+ case 666: break; >+ case 496: > { > if(Debug.debugTokenizer) > dump("\nJSP comment close");//$NON-NLS-1$ > yybegin(YYINITIAL); > return JSP_COMMENT_CLOSE; > } >- case 658: break; >- case 474: >+ case 667: break; >+ case 483: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -2215,8 +2217,8 @@ > fEmbeddedPostState = ST_XML_EQUALS; > return PROXY_CONTEXT; > } >- case 659: break; >- case 473: >+ case 668: break; >+ case 482: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -2237,15 +2239,15 @@ > fEmbeddedPostState = ST_XML_EQUALS; > return PROXY_CONTEXT; > } >- case 660: break; >- case 467: >+ case 669: break; >+ case 476: > { > if(Debug.debugTokenizer) > dump("\nCharRef");//$NON-NLS-1$ > return XML_CHAR_REFERENCE; > } >- case 661: break; >- case 464: >+ case 670: break; >+ case 473: > { > if(Debug.debugTokenizer) > dump("\ncomment start");//$NON-NLS-1$ >@@ -2254,20 +2256,20 @@ > yybegin(ST_XML_COMMENT); > return XML_COMMENT_OPEN; > } >- case 662: break; >- case 463: >- case 482: >- case 485: >- case 488: >- case 489: >+ case 671: break; >+ case 472: > case 491: >- case 493: >- case 496: >+ case 494: >+ case 497: > case 498: >- case 499: >- case 501: >- case 503: >- case 506: >+ case 500: >+ case 502: >+ case 505: >+ case 507: >+ case 508: >+ case 510: >+ case 512: >+ case 515: > { > /* JSP comment begun (anywhere) > * A consequence of the start anywhere possibility is that the >@@ -2349,9 +2351,9 @@ > return PROXY_CONTEXT; > } > } >- case 663: break; >- case 384: >- case 385: >+ case 672: break; >+ case 381: >+ case 382: > { > if(Debug.debugTokenizer) > dump("XML processing instruction target");//$NON-NLS-1$ >@@ -2360,8 +2362,8 @@ > yybegin(ST_XML_PI_ATTRIBUTE_NAME); > return XML_TAG_NAME; > } >- case 664: break; >- case 383: >+ case 673: break; >+ case 380: > { > if(Debug.debugTokenizer) > dump("comment end");//$NON-NLS-1$ >@@ -2369,16 +2371,16 @@ > yybegin(YYINITIAL); > return XML_COMMENT_CLOSE; > } >- case 665: break; >- case 382: >+ case 674: break; >+ case 379: > { > if(Debug.debugTokenizer) > dump("CDATA end");//$NON-NLS-1$ > yybegin(fStateStack.pop()); > return XML_CDATA_CLOSE; > } >- case 666: break; >- case 381: >+ case 675: break; >+ case 378: > { > yybegin(ST_JSP_VBL); > if(yylength() > 2) >@@ -2391,15 +2393,15 @@ > yybegin(YYINITIAL); > return PROXY_CONTEXT; > } >- case 667: break; >- case 380: >+ case 676: break; >+ case 377: > { > if(Debug.debugTokenizer) > dump("\nPEReference");//$NON-NLS-1$ > return XML_PE_REFERENCE; > } >- case 668: break; >- case 379: >+ case 677: break; >+ case 376: > { > yybegin(ST_JSP_EL); > if(yylength() > 2) >@@ -2412,27 +2414,27 @@ > yybegin(YYINITIAL); > return PROXY_CONTEXT; > } >- case 669: break; >- case 376: >+ case 678: break; >+ case 373: > { > if(Debug.debugTokenizer) > dump("\nEntityRef");//$NON-NLS-1$ > return XML_ENTITY_REFERENCE; > } >- case 670: break; >- case 370: >- case 409: >- case 416: >+ case 679: break; >+ case 367: >+ case 407: >+ case 415: > case 422: >- case 426: >- case 430: >- case 434: >- case 439: >- case 444: >- case 447: >- case 451: >- case 455: >- case 460: >+ case 427: >+ case 432: >+ case 437: >+ case 443: >+ case 449: >+ case 453: >+ case 458: >+ case 463: >+ case 469: > { > /* JSP expression begun (anywhere) > * A consequence of the start anywhere possibility is that the >@@ -2502,20 +2504,20 @@ > return PROXY_CONTEXT; > } > } >- case 671: break; >- case 369: >- case 408: >- case 415: >+ case 680: break; >+ case 366: >+ case 406: >+ case 414: > case 421: >- case 425: >- case 429: >- case 433: >- case 438: >- case 443: >- case 446: >- case 450: >- case 454: >- case 459: >+ case 426: >+ case 431: >+ case 436: >+ case 442: >+ case 448: >+ case 452: >+ case 457: >+ case 462: >+ case 468: > { > /* JSP declaration begun (anywhere) > * A consequence of the start anywhere possibility is that the >@@ -2585,11 +2587,48 @@ > return PROXY_CONTEXT; > } > } >- case 672: break; >- case 368: >+ case 681: break; >+ case 365: >+ case 405: >+ case 413: >+ case 420: >+ case 425: >+ case 430: >+ case 435: >+ case 441: >+ case 447: >+ case 451: >+ case 456: >+ case 461: >+ case 467: > { >+ /* JSP directive begun (anywhere) >+ * A consequence of the start anywhere possibility is that the >+ * incoming state must be checked to see if it's erroneous >+ * due to the order of precedence generated >+ */ >+ // begin sanity checks >+ if(yystate() == ST_JSP_CONTENT) { >+ // at the beginning?! >+ yypushback(2); >+ return JSP_CONTENT; >+ } >+ else if(yystate() == ST_BLOCK_TAG_SCAN) { >+ yypushback(3); >+ return doBlockTagScan(); >+ } >+ else if(yystate() == ST_XML_COMMENT) { >+ yypushback(3); >+ return scanXMLCommentText(); >+ } >+ else if(yystate() == ST_JSP_COMMENT) { >+ yypushback(3); >+ return scanJSPCommentText(); >+ } >+ // end sanity checks > fStateStack.push(yystate()); > if(fStateStack.peek()==YYINITIAL) { >+ // the simple case, just a declaration out in content > if(Debug.debugTokenizer) > dump("\nJSP directive start");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_NAME); >@@ -2600,64 +2639,85 @@ > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ > } > if(Debug.debugTokenizer) >- dump("JSP directive start");//$NON-NLS-1$ >+ dump("JSP declaration start");//$NON-NLS-1$ >+ if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED) >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; >+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED) >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; >+ else if(yystate() == ST_CDATA_TEXT) { >+ fEmbeddedPostState = ST_CDATA_TEXT; >+ fEmbeddedHint = XML_CDATA_TEXT; >+ } > yybegin(ST_JSP_DIRECTIVE_NAME); > assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE}); > if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { > yybegin(ST_BLOCK_TAG_SCAN); > return BLOCK_TEXT; > } >+ // required help for successive embedded regions >+ if(yystate() == ST_XML_TAG_NAME) { >+ fEmbeddedHint = XML_TAG_NAME; >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; >+ } >+ else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) { >+ fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; >+ fEmbeddedPostState = ST_XML_EQUALS; >+ } >+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE) { >+ fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; >+ } > return PROXY_CONTEXT; > } > } >- case 673: break; >- case 358: >+ case 682: break; >+ case 355: > { > yybegin(ST_JSP_VBL_DQUOTES_END); > return JSP_VBL_QUOTED_CONTENT; > } >- case 674: break; >- case 354: >+ case 683: break; >+ case 351: > { > yybegin(ST_JSP_VBL_SQUOTES_END); > return JSP_VBL_QUOTED_CONTENT; > } >- case 675: break; >- case 352: >+ case 684: break; >+ case 349: > { > fELlevel++; > if(fELlevel == 1) { > return JSP_VBL_OPEN; > } > } >- case 676: break; >- case 342: >+ case 685: break; >+ case 339: > { > yybegin(ST_JSP_EL_DQUOTES_END); > return JSP_EL_QUOTED_CONTENT; > } >- case 677: break; >- case 338: >+ case 686: break; >+ case 335: > { > yybegin(ST_JSP_EL_SQUOTES_END); > return JSP_EL_QUOTED_CONTENT; > } >- case 678: break; >- case 336: >+ case 687: break; >+ case 333: > { > //System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]"); > return JSP_EL_CONTENT; > } >- case 679: break; >- case 335: >+ case 688: break; >+ case 332: > { > fELlevel++; > if(fELlevel == 1) { > return JSP_EL_OPEN; > } > } >- case 680: break; >- case 332: >+ case 689: break; >+ case 329: > { > int enterState = yystate(); > yybegin(ST_JSP_DQUOTED_VBL); >@@ -2672,8 +2732,8 @@ > } > return PROXY_CONTEXT; > } >- case 681: break; >- case 331: >+ case 690: break; >+ case 328: > { > int enterState = yystate(); > yybegin(ST_JSP_DQUOTED_EL); >@@ -2688,8 +2748,8 @@ > } > return PROXY_CONTEXT; > } >- case 682: break; >- case 329: >+ case 691: break; >+ case 326: > { > int enterState = yystate(); > yybegin(ST_JSP_SQUOTED_VBL); >@@ -2704,8 +2764,8 @@ > } > return PROXY_CONTEXT; > } >- case 683: break; >- case 328: >+ case 692: break; >+ case 325: > { > int enterState = yystate(); > yybegin(ST_JSP_SQUOTED_EL); >@@ -2720,8 +2780,8 @@ > } > return PROXY_CONTEXT; > } >- case 684: break; >- case 327: >+ case 693: break; >+ case 324: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -2737,15 +2797,15 @@ > yybegin(incomingState); > return PROXY_CONTEXT; > } >- case 685: break; >- case 286: >- case 298: >- case 304: >+ case 694: break; >+ case 283: >+ case 295: >+ case 301: > { > return XML_DOCTYPE_INTERNAL_SUBSET; > } >- case 686: break; >- case 274: >+ case 695: break; >+ case 271: > { > String tagName = yytext().substring(1); > // pushback to just after the opening bracket >@@ -2770,8 +2830,8 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return PROXY_CONTEXT; > } >- case 687: break; >- case 272: >+ case 696: break; >+ case 269: > { > String tagName = yytext().substring(1); > // pushback to just after the opening bracket >@@ -2796,8 +2856,8 @@ > yybegin(ST_XML_EQUALS); > return PROXY_CONTEXT; > } >- case 688: break; >- case 270: >+ case 697: break; >+ case 267: > { > yybegin(YYINITIAL); > fEmbeddedHint = UNDEFINED; >@@ -2805,8 +2865,8 @@ > dump("empty tag close");//$NON-NLS-1$ > return XML_EMPTY_TAG_CLOSE; > } >- case 689: break; >- case 126: >+ case 698: break; >+ case 125: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -2824,8 +2884,8 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return PROXY_CONTEXT; > } >- case 690: break; >- case 124: >+ case 699: break; >+ case 123: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -2843,16 +2903,16 @@ > fEmbeddedPostState = ST_XML_EQUALS; > return PROXY_CONTEXT; > } >- case 691: break; >- case 123: >+ case 700: break; >+ case 122: >+ case 127: > case 128: >- case 129: >- case 276: >- case 280: >- case 281: >+ case 273: >+ case 277: >+ case 278: >+ case 387: > case 390: >- case 393: >- case 472: >+ case 481: > { > if(Debug.debugTokenizer) > dump("attr value");//$NON-NLS-1$ >@@ -2861,8 +2921,8 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return XML_TAG_ATTRIBUTE_VALUE; > } >- case 692: break; >- case 122: >+ case 701: break; >+ case 121: > { > if(Debug.debugTokenizer) > dump("equals");//$NON-NLS-1$ >@@ -2871,9 +2931,9 @@ > yybegin(ST_XML_ATTRIBUTE_VALUE); > return XML_TAG_ATTRIBUTE_EQUALS; > } >- case 693: break; >- case 121: >- { >+ case 702: break; >+ case 120: >+ { > if(Debug.debugTokenizer) > dump("attr name");//$NON-NLS-1$ > fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; >@@ -2881,51 +2941,51 @@ > yybegin(ST_XML_EQUALS); > return XML_TAG_ATTRIBUTE_NAME; > } >- case 694: break; >+ case 703: break; >+ case 116: > case 117: > case 118: >- case 119: >- case 271: >- case 389: >- case 471: >- case 511: >- case 512: >- case 531: >- case 532: >- case 550: >- case 551: >- case 564: >+ case 268: >+ case 386: >+ case 480: >+ case 520: >+ case 521: >+ case 540: >+ case 541: >+ case 559: >+ case 560: > case 573: >- case 581: >- case 583: >- case 585: >- case 587: >+ case 582: > case 590: >+ case 592: >+ case 594: > case 596: >- case 597: >- case 598: > case 599: >- case 600: >+ case 605: > case 606: > case 607: > case 608: > case 609: >- case 610: >+ case 615: > case 616: > case 617: >+ case 618: > case 619: >- case 620: >+ case 625: > case 626: >- case 627: > case 628: > case 629: > case 635: > case 636: > case 637: > case 638: >- case 641: >- case 642: > case 644: >+ case 645: >+ case 646: >+ case 647: >+ case 650: >+ case 651: >+ case 653: > { > if(Debug.debugTokenizer) > dump("tag name");//$NON-NLS-1$ >@@ -2934,8 +2994,8 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return XML_TAG_NAME; > } >- case 695: break; >- case 115: >+ case 704: break; >+ case 114: > { > if(Debug.debugTokenizer) > dump("tag close");//$NON-NLS-1$ >@@ -2949,56 +3009,56 @@ > yybegin(YYINITIAL); > return XML_TAG_CLOSE; > } >- case 696: break; >- case 108: >- case 112: >- case 266: >+ case 705: break; >+ case 107: >+ case 111: >+ case 263: > { > if(Debug.debugTokenizer) > dump("attr value");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME); > return XML_TAG_ATTRIBUTE_VALUE; > } >- case 697: break; >- case 107: >+ case 706: break; >+ case 106: > { > if(Debug.debugTokenizer) > dump("equals");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE); > return XML_TAG_ATTRIBUTE_EQUALS; > } >- case 698: break; >- case 106: >+ case 707: break; >+ case 105: > { > if(Debug.debugTokenizer) > dump("attr name");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_EQUALS); > return XML_TAG_ATTRIBUTE_NAME; > } >- case 699: break; >- case 103: >+ case 708: break; >+ case 102: > { > if(Debug.debugTokenizer) > dump("JSP directive name");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE); > return JSP_DIRECTIVE_NAME; > } >- case 700: break; >+ case 709: break; >+ case 98: > case 99: > case 100: >- case 101: > { > if(Debug.debugTokenizer) > dump("JSP code content");//$NON-NLS-1$ > return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT); > } >- case 701: break; >- case 95: >+ case 710: break; >+ case 94: >+ case 96: > case 97: >- case 98: >- case 256: >+ case 253: >+ case 254: > case 257: >- case 260: > { > if(Debug.debugTokenizer) > dump("DHTML processing instruction attribute value");//$NON-NLS-1$ >@@ -3007,8 +3067,8 @@ > yybegin(ST_DHTML_ATTRIBUTE_NAME); > return XML_TAG_ATTRIBUTE_VALUE; > } >- case 702: break; >- case 94: >+ case 711: break; >+ case 93: > { > if(Debug.debugTokenizer) > dump("DHTML processing instruction '='");//$NON-NLS-1$ >@@ -3017,16 +3077,16 @@ > yybegin(ST_DHTML_ATTRIBUTE_VALUE); > return XML_TAG_ATTRIBUTE_EQUALS; > } >- case 703: break; >- case 93: >+ case 712: break; >+ case 92: > { > if(Debug.debugTokenizer) > dump("DHTML processing instruction attribute name");//$NON-NLS-1$ > yybegin(ST_DHTML_EQUALS); > return XML_TAG_ATTRIBUTE_NAME; > } >- case 704: break; >- case 91: >+ case 713: break; >+ case 90: > { > if(Debug.debugTokenizer) > dump("DHTML processing instruction end");//$NON-NLS-1$ >@@ -3034,10 +3094,10 @@ > yybegin(YYINITIAL); > return XML_PI_CLOSE; > } >- case 705: break; >- case 85: >- case 87: >- case 247: >+ case 714: break; >+ case 84: >+ case 86: >+ case 244: > { > if(Debug.debugTokenizer) > dump("XML processing instruction attribute value");//$NON-NLS-1$ >@@ -3046,8 +3106,8 @@ > yybegin(ST_XML_PI_ATTRIBUTE_NAME); > return XML_TAG_ATTRIBUTE_VALUE; > } >- case 706: break; >- case 84: >+ case 715: break; >+ case 83: > { > if(Debug.debugTokenizer) > dump("XML processing instruction '='");//$NON-NLS-1$ >@@ -3056,79 +3116,79 @@ > yybegin(ST_XML_PI_ATTRIBUTE_VALUE); > return XML_TAG_ATTRIBUTE_EQUALS; > } >- case 707: break; >- case 50: >- case 201: >- case 202: >- case 205: >- case 215: >- case 216: >- case 219: >- case 220: >+ case 716: break; >+ case 49: >+ case 199: >+ case 200: >+ case 203: >+ case 213: >+ case 214: >+ case 217: >+ case 218: >+ case 360: > case 363: >- case 366: >- case 442: >- case 453: >- case 458: >+ case 446: >+ case 460: >+ case 466: > { > return JSP_VBL_CONTENT; > } >- case 708: break; >- case 43: >- case 180: >- case 181: >- case 184: >- case 194: >- case 195: >- case 198: >- case 199: >- case 333: >+ case 717: break; >+ case 42: >+ case 178: >+ case 179: >+ case 182: >+ case 192: >+ case 193: >+ case 196: >+ case 197: >+ case 330: >+ case 344: > case 347: >- case 350: >+ case 418: > case 419: >- case 420: >- case 432: >- case 437: >+ case 434: >+ case 440: > { > return JSP_EL_CONTENT; > } >- case 709: break; >+ case 718: break; > case 35: >+ case 159: > case 160: >- case 161: >- case 324: >- case 414: >- case 417: >- case 486: >- case 519: >- case 539: >- case 556: >- case 566: >+ case 321: >+ case 412: >+ case 416: >+ case 495: >+ case 528: >+ case 548: >+ case 565: >+ case 575: > { > if(Debug.debugTokenizer) > dump("attlist contentspec");//$NON-NLS-1$ > return XML_ATTLIST_DECL_CONTENT; > } >- case 710: break; >+ case 719: break; > case 33: >+ case 152: > case 153: >- case 154: >- case 314: >- case 407: >- case 410: >- case 483: >- case 518: >- case 538: >- case 555: >- case 565: >+ case 311: >+ case 404: >+ case 408: >+ case 492: >+ case 527: >+ case 547: >+ case 564: >+ case 574: > { > if(Debug.debugTokenizer) > dump("elementdecl contentspec");//$NON-NLS-1$ > return XML_ELEMENT_DECL_CONTENT; > } >- case 711: break; >+ case 720: break; > case 22: >- case 113: >+ case 112: > { > if(Debug.debugTokenizer) > dump("inappropriate tag name");//$NON-NLS-1$ >@@ -3140,16 +3200,16 @@ > yybegin(YYINITIAL); > return XML_CONTENT; > } >- case 712: break; >+ case 721: break; > case 18: >- case 105: >+ case 104: > { > if(Debug.debugTokenizer) > dump("white space");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME); > return WHITE_SPACE; > } >- case 713: break; >+ case 722: break; > case 5: > case 8: > case 9: >@@ -3175,39 +3235,39 @@ > case 34: > case 40: > case 41: >- case 73: >- case 171: >- case 176: >+ case 72: >+ case 169: >+ case 174: > { > if(Debug.debugTokenizer) > dump("white space");//$NON-NLS-1$ > return WHITE_SPACE; > } >- case 714: break; >+ case 723: break; > case 0: >- case 57: >- case 60: >- case 62: >+ case 56: >+ case 59: >+ case 61: >+ case 225: > case 227: >- case 229: >+ case 228: > case 230: > case 232: >- case 234: >- case 373: >- case 374: >- case 375: >- case 466: >+ case 370: >+ case 371: >+ case 372: >+ case 475: > { > if(Debug.debugTokenizer) > dump("\nXML content");//$NON-NLS-1$ > return XML_CONTENT; > } >- case 715: break; >- case 58: >- case 102: >- case 114: >- case 120: >- case 130: >+ case 724: break; >+ case 57: >+ case 101: >+ case 113: >+ case 119: >+ case 129: > { > if(Debug.debugTokenizer) > dump("\nstart tag open");//$NON-NLS-1$ >@@ -3216,72 +3276,71 @@ > yybegin(ST_XML_TAG_NAME); > return XML_TAG_OPEN; > } >- case 716: break; >- case 59: >- case 61: >+ case 725: break; >+ case 58: >+ case 60: >+ case 64: > case 65: > case 66: >- case 67: >+ case 70: > case 71: >- case 72: >- case 82: >- case 86: >+ case 81: >+ case 85: >+ case 87: > case 88: > case 89: >- case 90: >- case 92: >- case 96: >- case 104: >+ case 91: >+ case 95: >+ case 103: >+ case 108: > case 109: > case 110: >- case 111: >- case 116: >- case 125: >+ case 115: >+ case 124: >+ case 131: > case 132: > case 133: > case 134: >- case 135: >+ case 136: > case 137: >- case 138: >+ case 139: > case 140: > case 141: >- case 142: >+ case 144: > case 145: > case 146: >- case 147: >+ case 149: > case 150: > case 151: >- case 152: >+ case 156: > case 157: > case 158: >- case 159: >- case 165: >- case 168: >- case 173: >- case 174: >- case 178: >- case 179: >- case 186: >+ case 166: >+ case 171: >+ case 172: >+ case 176: >+ case 177: >+ case 184: >+ case 185: > case 187: >- case 189: >- case 190: >- case 196: >- case 200: >- case 207: >+ case 188: >+ case 194: >+ case 198: >+ case 205: >+ case 206: > case 208: >- case 210: >- case 211: >- case 217: >- case 221: >+ case 209: >+ case 215: >+ case 219: > { > if (Debug.debugTokenizer) > System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$ > yychar + "-" + (yychar + yylength()));//$NON-NLS-1$ > return UNDEFINED; > } >- case 717: break; >+ case 726: break; >+ case 62: > case 63: >- case 64: > { > if(Debug.debugTokenizer) > dump("CDATA text");//$NON-NLS-1$ >@@ -3292,46 +3351,46 @@ > yybegin(ST_CDATA_END); > return returnedContext; > } >- case 718: break; >- case 68: >- case 188: >- case 191: >- case 209: >- case 212: >+ case 727: break; >+ case 67: >+ case 186: >+ case 189: >+ case 207: >+ case 210: > { > if(Debug.debugTokenizer) > dump("LINE FEED");//$NON-NLS-1$ > return WHITE_SPACE; > } >- case 719: break; >+ case 728: break; >+ case 68: > case 69: >- case 70: > { > if(Debug.debugTokenizer) > dump("comment content");//$NON-NLS-1$ > return scanXMLCommentText(); > } >- case 720: break; >+ case 729: break; >+ case 73: > case 74: > case 75: > case 76: >- case 77: >- case 240: >- case 241: >- case 242: >- case 386: >- case 469: >- case 470: >- case 509: >- case 510: >- case 529: >- case 549: >- case 562: >- case 572: >- case 580: >- case 582: >- case 584: >- case 586: >+ case 237: >+ case 238: >+ case 239: >+ case 383: >+ case 478: >+ case 479: >+ case 518: >+ case 519: >+ case 538: >+ case 558: >+ case 571: >+ case 581: >+ case 589: >+ case 591: >+ case 593: >+ case 595: > { > if(Debug.debugTokenizer) > dump("processing instruction target");//$NON-NLS-1$ >@@ -3339,30 +3398,30 @@ > yybegin(ST_PI_WS); > return XML_TAG_NAME; > } >- case 721: break; >- case 78: >+ case 730: break; >+ case 77: > { > yybegin(ST_PI_CONTENT); > return WHITE_SPACE; > } >- case 722: break; >+ case 731: break; >+ case 78: > case 79: > case 80: >- case 81: > { > // block scan until close is found > return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE); > } >- case 723: break; >- case 83: >+ case 732: break; >+ case 82: > { > if(Debug.debugTokenizer) > dump("XML processing instruction attribute name");//$NON-NLS-1$ > yybegin(ST_XML_PI_EQUALS); > return XML_TAG_ATTRIBUTE_NAME; > } >- case 724: break; >- case 127: >+ case 733: break; >+ case 126: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -3380,8 +3439,8 @@ > yybegin(ST_XML_ATTRIBUTE_NAME); > return PROXY_CONTEXT; > } >- case 725: break; >- case 131: >+ case 734: break; >+ case 130: > { > if(Debug.debugTokenizer) > dump("declaration end");//$NON-NLS-1$ >@@ -3392,20 +3451,20 @@ > yybegin(fStateStack.pop()); > return XML_DECLARATION_CLOSE; > } >- case 726: break; >- case 136: >+ case 735: break; >+ case 135: > { > if(Debug.debugTokenizer) > dump("doctype type");//$NON-NLS-1$ > yybegin(ST_XML_DOCTYPE_EXTERNAL_ID); > return XML_DOCTYPE_NAME; > } >- case 727: break; >- case 139: >- case 143: >- case 291: >- case 295: >- case 402: >+ case 736: break; >+ case 138: >+ case 142: >+ case 288: >+ case 292: >+ case 399: > { > if(Debug.debugTokenizer) > dump("doctype public reference");//$NON-NLS-1$ >@@ -3414,10 +3473,10 @@ > yybegin(ST_XML_DOCTYPE_ID_SYSTEM); > return XML_DOCTYPE_EXTERNAL_ID_PUBREF; > } >- case 728: break; >- case 144: >- case 148: >- case 301: >+ case 737: break; >+ case 143: >+ case 147: >+ case 298: > { > if(Debug.debugTokenizer) > dump("doctype system reference");//$NON-NLS-1$ >@@ -3426,11 +3485,11 @@ > yybegin(ST_XML_DECLARATION_CLOSE); > return XML_DOCTYPE_EXTERNAL_ID_SYSREF; > } >- case 729: break; >- case 149: >- case 307: >- case 311: >- case 405: >+ case 738: break; >+ case 148: >+ case 304: >+ case 308: >+ case 402: > { > if(Debug.debugTokenizer) > dump("elementdecl name");//$NON-NLS-1$ >@@ -3439,8 +3498,8 @@ > yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT); > return XML_ELEMENT_DECL_NAME; > } >- case 730: break; >- case 155: >+ case 739: break; >+ case 154: > { > if(Debug.debugTokenizer) > dump("elementdecl close");//$NON-NLS-1$ >@@ -3451,11 +3510,11 @@ > yybegin(fStateStack.pop()); > return XML_DECLARATION_CLOSE; > } >- case 731: break; >- case 156: >- case 317: >- case 321: >- case 412: >+ case 740: break; >+ case 155: >+ case 314: >+ case 318: >+ case 410: > { > if(Debug.debugTokenizer) > dump("attlist name");//$NON-NLS-1$ >@@ -3464,8 +3523,8 @@ > yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT); > return XML_ATTLIST_DECL_NAME; > } >- case 732: break; >- case 162: >+ case 741: break; >+ case 161: > { > if(Debug.debugTokenizer) > dump("attlist close");//$NON-NLS-1$ >@@ -3476,22 +3535,22 @@ > yybegin(fStateStack.pop()); > return XML_DECLARATION_CLOSE; > } >- case 733: break; >- case 166: >- case 167: >+ case 742: break; >+ case 164: >+ case 165: > { > if(Debug.debugTokenizer) > dump("\nJSP comment text");//$NON-NLS-1$ > return scanJSPCommentText(); > } >- case 734: break; >- case 169: >- case 175: >+ case 743: break; >+ case 167: >+ case 173: > { > return XML_TAG_ATTRIBUTE_VALUE; > } >- case 735: break; >- case 170: >+ case 744: break; >+ case 168: > { > if (Debug.debugTokenizer) { > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ >@@ -3507,30 +3566,30 @@ > yybegin(incomingState); > return PROXY_CONTEXT; > } >- case 736: break; >- case 172: >+ case 745: break; >+ case 170: > { > return XML_TAG_ATTRIBUTE_VALUE_SQUOTE; > } >- case 737: break; >- case 177: >+ case 746: break; >+ case 175: > { > return XML_TAG_ATTRIBUTE_VALUE_DQUOTE; > } >- case 738: break; >- case 182: >+ case 747: break; >+ case 180: > { > yybegin(ST_JSP_EL_DQUOTES); > return JSP_EL_DQUOTE; > } >- case 739: break; >- case 183: >+ case 748: break; >+ case 181: > { > yybegin(ST_JSP_EL_SQUOTES); > return JSP_EL_SQUOTE; > } >- case 740: break; >- case 185: >+ case 749: break; >+ case 183: > { > fELlevel--; > if(fELlevel == 0) { >@@ -3539,37 +3598,37 @@ > } > return JSP_EL_CONTENT; > } >- case 741: break; >- case 192: >+ case 750: break; >+ case 190: > { > yybegin(ST_JSP_EL); > return JSP_EL_SQUOTE; > } >- case 742: break; >- case 193: >+ case 751: break; >+ case 191: > { > yybegin(ST_JSP_EL); > return JSP_EL_DQUOTE; > } >- case 743: break; >- case 197: >+ case 752: break; >+ case 195: > { > return JSP_EL_CLOSE; > } >- case 744: break; >- case 203: >+ case 753: break; >+ case 201: > { > yybegin(ST_JSP_VBL_DQUOTES); > return JSP_VBL_DQUOTE; > } >- case 745: break; >- case 204: >+ case 754: break; >+ case 202: > { > yybegin(ST_JSP_VBL_SQUOTES); > return JSP_VBL_SQUOTE; > } >- case 746: break; >- case 206: >+ case 755: break; >+ case 204: > { > fELlevel--; > if(fELlevel == 0) { >@@ -3578,25 +3637,25 @@ > } > return JSP_VBL_CONTENT; > } >- case 747: break; >- case 213: >+ case 756: break; >+ case 211: > { > yybegin(ST_JSP_VBL); > return JSP_VBL_SQUOTE; > } >- case 748: break; >- case 214: >+ case 757: break; >+ case 212: > { > yybegin(ST_JSP_VBL); > return JSP_VBL_DQUOTE; > } >- case 749: break; >- case 218: >+ case 758: break; >+ case 216: > { > return JSP_VBL_CLOSE; > } >- case 750: break; >- case 222: >+ case 759: break; >+ case 220: > { > if(Debug.debugTokenizer) > dump("\nend tag open");//$NON-NLS-1$ >@@ -3605,29 +3664,28 @@ > yybegin(ST_XML_TAG_NAME); > return XML_END_TAG_OPEN; > } >- case 751: break; >- case 223: >+ case 760: break; >+ case 221: > { > if(Debug.debugTokenizer) > dump("\nprocessing instruction start");//$NON-NLS-1$ > yybegin(ST_PI); > return XML_PI_OPEN; > } >- case 752: break; >- case 224: >- case 235: >- case 313: >- case 323: >- case 334: >- case 339: >+ case 761: break; >+ case 222: >+ case 310: >+ case 320: >+ case 331: >+ case 336: >+ case 340: > case 343: > case 346: >- case 349: >- case 351: >- case 355: >+ case 348: >+ case 352: >+ case 356: > case 359: > case 362: >- case 365: > { > /* JSP scriptlet begun (anywhere) > * A consequence of the start anywhere possibility is that the >@@ -3697,8 +3755,8 @@ > return PROXY_CONTEXT; > } > } >- case 753: break; >- case 225: >+ case 762: break; >+ case 223: > { > fStateStack.push(yystate()); > if(Debug.debugTokenizer) >@@ -3706,8 +3764,8 @@ > yybegin(ST_XML_DECLARATION); > return XML_DECLARATION_OPEN; > } >- case 754: break; >- case 239: >+ case 763: break; >+ case 236: > { > if(Debug.debugTokenizer) > dump("processing instruction end");//$NON-NLS-1$ >@@ -3715,16 +3773,16 @@ > yybegin(YYINITIAL); > return XML_PI_CLOSE; > } >- case 755: break; >- case 243: >+ case 764: break; >+ case 240: > { > // ended with nothing inside > fEmbeddedHint = UNDEFINED; > yybegin(YYINITIAL); > return XML_PI_CLOSE; > } >- case 756: break; >- case 244: >+ case 765: break; >+ case 241: > { > if(Debug.debugTokenizer) > dump("XML processing instruction end");//$NON-NLS-1$ >@@ -3732,8 +3790,8 @@ > yybegin(YYINITIAL); > return XML_PI_CLOSE; > } >- case 757: break; >- case 261: >+ case 766: break; >+ case 258: > { > if(Debug.debugTokenizer) > dump("JSP end");//$NON-NLS-1$ >@@ -3744,8 +3802,8 @@ > yybegin(fStateStack.pop()); > return JSP_CLOSE; > } >- case 758: break; >- case 263: >+ case 767: break; >+ case 260: > { > if(Debug.debugTokenizer) > dump("JSP end");//$NON-NLS-1$ >@@ -3756,13 +3814,13 @@ > yybegin(fStateStack.pop()); > return JSP_DIRECTIVE_CLOSE; > } >- case 759: break; >+ case 768: break; >+ case 162: > case 163: >- case 164: > { > return doBlockTagScan(); > } >- case 760: break; >+ case 769: break; > default: > if (yy_input == YYEOF && yy_startRead == yy_currentPos) { > yy_atEOF = true; >Index: src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java >=================================================================== >RCS file: /cvsroot/webtools/jst/components/jsp/plugins/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java,v >retrieving revision 1.34 >diff -u -r1.34 TLDCMDocumentManager.java >--- src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java 12 Sep 2007 12:55:46 -0000 1.34 >+++ src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java 30 Oct 2007 22:18:33 -0000 >@@ -59,6 +59,7 @@ > import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; > import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; > import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; >+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection; > import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; > import org.eclipse.wst.sse.core.internal.util.Assert; > import org.eclipse.wst.sse.core.internal.util.Debug; >@@ -76,7 +77,7 @@ > * IStructuredDocumentRegion along with position cues during reparses > * allow the JSPSourceParser to enable/ignore the tags as blocks. > */ >- protected void addBlockTag(String tagnameNS, IStructuredDocumentRegion marker) { >+ protected void addBlockTag(String tagnameNS, ITextRegionCollection marker) { > if (getParser() == null) > return; > if (getParser().getBlockMarker(tagnameNS) == null) { >@@ -146,68 +147,47 @@ > System.out.println("TLDCMDocumentManager registered a tracker for directory" + tagdir + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$ > } > } >+ >+ protected void processRegionCollection(ITextRegionCollection regionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >+ /* >+ * Would test > 1, but since we only care if there are 8 (<%@, >+ * taglib, uri, =, where, prefix, =, what) [or 4 for include >+ * directives] >+ */ >+ if (regionCollection.getNumberOfRegions() > 4 && regionCollection.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) { >+ ITextRegion name = regionCollection.getRegions().get(1); >+ boolean taglibDetected = false; >+ boolean taglibDirectiveDetected = false; >+ boolean includeDetected = false; >+ boolean includeDirectiveDetected = false; >+ int startOffset = regionCollection.getStartOffset(name); >+ int textLength = name.getTextLength(); >+ >+ taglibDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB); >+ if (!taglibDetected) >+ taglibDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB); >+ if (!taglibDirectiveDetected) >+ includeDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE); >+ if (!includeDetected) >+ includeDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE); >+ if (taglibDetected || taglibDirectiveDetected) { >+ processTaglib(regionCollection, anchorStructuredDocumentRegion, textSource); >+ } >+ else if (includeDetected || includeDirectiveDetected) { >+ processInclude(regionCollection, anchorStructuredDocumentRegion, textSource); >+ } >+ } >+ else if (regionCollection.getNumberOfRegions() > 1 && DOMRegionContext.XML_TAG_OPEN.equals(regionCollection.getFirstRegion().getType())) { >+ processXMLStartTag(regionCollection, anchorStructuredDocumentRegion, textSource); >+ } >+ } > >- public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) { >+ public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) { > if (!preludesHandled) { > handlePreludes(); > preludesHandled = true; > } >- // could test > 1, but since we only care if there are 8 (<%@, >- // taglib, uri, =, where, prefix, =, what) [or 4 for includes] >- if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) { >- ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1); >- try { >- if (getParser() == null) { >- Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$ >- } >- else { >- boolean taglibDetected = false; >- boolean taglibDirectiveDetected = false; >- boolean includeDetected = false; >- boolean includeDirectiveDetected = false; >- int startOffset = aCoreStructuredDocumentRegion.getStartOffset(name); >- int textLength = name.getTextLength(); >- >- if (getParser() != null) { >- taglibDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB); >- taglibDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB); >- includeDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE); >- includeDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE); >- } >- else { >- // old fashioned way >- String directiveName = getParser().getText(startOffset, textLength); >- taglibDetected = directiveName.equals(JSP12TLDNames.TAGLIB); >- taglibDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB); >- includeDetected = directiveName.equals(JSP12TLDNames.INCLUDE); >- includeDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE); >- } >- if (taglibDetected || taglibDirectiveDetected) { >- processTaglib(aCoreStructuredDocumentRegion); >- } >- else if (includeDetected || includeDirectiveDetected) { >- processInclude(aCoreStructuredDocumentRegion); >- } >- } >- } >- catch (StringIndexOutOfBoundsException sioobExc) { >- // do nothing >- } >- } >- // could test > 1, but since we only care if there are 5 (<, >- // jsp:root, xmlns:prefix, =, where) >- else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) { >- if (getParser() == null) { >- Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$ >- } >- else { >- processJSPRoot(aCoreStructuredDocumentRegion); >- } >- } >- } >- >- protected void processInclude(IStructuredDocumentRegion aCoreStructuredDocumentRegion) { >- processInclude(aCoreStructuredDocumentRegion, aCoreStructuredDocumentRegion, getParser()); >+ processRegionCollection(structuredDocumentRegion, structuredDocumentRegion, getParser()); > } > > /** >@@ -216,15 +196,15 @@ > * anchorStructuredDocumentRegion. Includes use the including file as > * the point of reference, not necessarily the "top" file. > */ >- protected void processInclude(IStructuredDocumentRegion includeStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >- ITextRegionList regions = includeStructuredDocumentRegion.getRegions(); >+ protected void processInclude(ITextRegionCollection includeDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >+ ITextRegionList regions = includeDirectiveCollection.getRegions(); > String includedFile = null; > boolean isFilename = false; > try { >- for (int i = 0; i < regions.size(); i++) { >+ for (int i = 2; includedFile == null && i < regions.size(); i++) { > ITextRegion region = regions.get(i); > if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { >- if (textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength()).equals(JSP12TLDNames.FILE)) { >+ if (textSource.regionMatches(includeDirectiveCollection.getStartOffset(region), region.getTextLength(), JSP12TLDNames.FILE)) { > isFilename = true; > } > else { >@@ -232,7 +212,7 @@ > } > } > else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) { >- includedFile = textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength()); >+ includedFile = textSource.getText(includeDirectiveCollection.getStartOffset(region), region.getTextLength()); > isFilename = false; > } > } >@@ -272,18 +252,20 @@ > */ > if (hasAnyIncludeBeenModified(filePath)) { > getIncludes().push(filePath); >- if (getParser() != null) { >- IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser()); >- includeHelper.parse(filePath); >- List references = includeHelper.taglibReferences; >- fTLDCMReferencesMap.put(filePath, references); >- /* >- * TODO: walk up the include hierarchy and add >- * these references to each of the parents. >- */ >+ >+ IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser()); >+ includeHelper.parse(filePath); >+ List references = includeHelper.taglibReferences; >+ fTLDCMReferencesMap.put(filePath, references); >+ for (int i = 0; references != null && i < references.size(); i++) { >+ TLDCMDocumentReference reference = (TLDCMDocumentReference) references.get(i); >+ getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$ > } >- else >- Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$ >+ /* >+ * TODO: walk up the include hierarchy and add >+ * these references to each of the parents? >+ */ >+ > getIncludes().pop(); > } > else { >@@ -295,7 +277,7 @@ > * The uri might not be resolved properly if > * relative to the JSP fragment. > */ >- enableTaglibFromURI(reference.prefix, reference.uri, includeStructuredDocumentRegion); >+ enableTaglibFromURI(reference.prefix, reference.uri, anchorStructuredDocumentRegion); > getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$ > } > } >@@ -307,51 +289,46 @@ > } > } > >- // Pulls the URI and prefix from the given jsp:root >- // IStructuredDocumentRegion and >- // makes sure the tags are known. >- protected void processJSPRoot(IStructuredDocumentRegion jspRootStructuredDocumentRegion) { >- processJSPRoot(jspRootStructuredDocumentRegion, jspRootStructuredDocumentRegion, getParser()); >- } >- >- protected void processJSPRoot(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >- ITextRegionList regions = taglibStructuredDocumentRegion.getRegions(); >+ protected void processXMLStartTag(ITextRegionCollection startTagRegionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >+ ITextRegionList regions = startTagRegionCollection.getRegions(); > String uri = null; > String prefix = null; >- boolean taglib = false; >- try { >- // skip the first two, they're the open bracket and name >- for (int i = 2; i < regions.size(); i++) { >- ITextRegion region = regions.get(i); >+ boolean isTaglibValue = false; >+ // skip the first two, they're the open bracket and name >+ for (int i = 2; i < regions.size(); i++) { >+ ITextRegion region = regions.get(i); >+ if (region instanceof ITextRegionCollection) { >+ // Handle nested directives >+ processRegionCollection((ITextRegionCollection) region, anchorStructuredDocumentRegion, textSource); >+ } >+ else { >+ // Handle xmlns:xxx=yyy >+ int regionStartOffset = startTagRegionCollection.getStartOffset(region); >+ int regionTextLength = region.getTextLength(); > if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { >- String name = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength()); >- if (name.startsWith(XMLNS)) { //$NON-NLS-1$ >- prefix = name.substring(XMLNS_LENGTH); >+ if (regionTextLength > XMLNS_LENGTH && textSource.regionMatches(regionStartOffset, XMLNS_LENGTH, XMLNS)) { >+ prefix = textSource.getText(regionStartOffset + XMLNS_LENGTH, regionTextLength - XMLNS_LENGTH); > if (!bannedPrefixes.contains(prefix)) >- taglib = true; >+ isTaglibValue = true; > } > else { > prefix = null; >- taglib = false; >+ isTaglibValue = false; > } > } >- else if (taglib && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) { >+ else if (isTaglibValue && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) { > if (prefix != null && prefix.length() > 0) { >- uri = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength()); >+ uri = textSource.getText(regionStartOffset, regionTextLength); > uri = StringUtils.strip(uri); >- if (uri != null && uri.length() > 0) { >- if (uri.startsWith(URN_TLD)) { >- uri = uri.substring(URN_TLD.length()); >- } >- else if (uri.startsWith(URN_TAGDIR)) { >- uri = uri.substring(URN_TAGDIR.length()); >+ int uriLength = uri.length(); >+ if (uri != null && uriLength > 0) { >+ if (uriLength > URN_TLD_LENGTH && uri.startsWith(URN_TLD)) { >+ uri = uri.substring(URN_TLD_LENGTH); > } >- if (anchorStructuredDocumentRegion == null) { >- enableTags(prefix, uri, taglibStructuredDocumentRegion); >- } >- else { >- enableTags(prefix, uri, anchorStructuredDocumentRegion); >+ else if (uriLength > URN_TAGDIR_LENGTH && uri.startsWith(URN_TAGDIR)) { >+ uri = uri.substring(URN_TAGDIR_LENGTH); > } >+ enableTags(prefix, uri, anchorStructuredDocumentRegion); > uri = null; > prefix = null; > } >@@ -359,32 +336,23 @@ > } > } > } >- catch (StringIndexOutOfBoundsException sioobExc) { >- // nothing to be done >- uri = null; >- prefix = null; >- } >- } >- >- protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion) { >- processTaglib(taglibStructuredDocumentRegion, taglibStructuredDocumentRegion, getParser()); > } > > /** > * Pulls the URI and prefix from the given taglib directive > * IStructuredDocumentRegion and makes sure the tags are known. > */ >- protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >- ITextRegionList regions = taglibStructuredDocumentRegion.getRegions(); >+ protected void processTaglib(ITextRegionCollection taglibDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) { >+ ITextRegionList regions = taglibDirectiveCollection.getRegions(); > String uri = null; > String prefix = null; > String tagdir = null; > String attrName = null; > try { >- for (int i = 0; i < regions.size(); i++) { >+ for (int i = 2; i < regions.size(); i++) { > ITextRegion region = regions.get(i); > // remember attribute name >- int startOffset = taglibStructuredDocumentRegion.getStartOffset(region); >+ int startOffset = taglibDirectiveCollection.getStartOffset(region); > int textLength = region.getTextLength(); > if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { > // String name = textSource.getText(startOffset, >@@ -419,16 +387,10 @@ > prefix = null; > } > if (uri != null && prefix != null && uri.length() > 0 && prefix.length() > 0) { >- if (anchorStructuredDocumentRegion == null) >- enableTaglibFromURI(prefix, StringUtils.strip(uri), taglibStructuredDocumentRegion); >- else >- enableTaglibFromURI(prefix, uri, anchorStructuredDocumentRegion); >+ enableTaglibFromURI(prefix, StringUtils.strip(uri), anchorStructuredDocumentRegion); > } > else if (tagdir != null && prefix != null && tagdir.length() > 0 && prefix.length() > 0) { >- if (anchorStructuredDocumentRegion == null) >- enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), taglibStructuredDocumentRegion); >- else >- enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion); >+ enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion); > } > } > >@@ -524,29 +486,8 @@ > return FileContentCache.getInstance().getContents(filePath); > } > >- public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) { >- // could test > 1, but since we only care if there are 8 (<%@, >- // taglib, uri, =, where, prefix, =, what) >- if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 1 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) { >- ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1); >- try { >- String directiveName = fLocalParser.getText(aCoreStructuredDocumentRegion.getStartOffset(name), name.getTextLength()); >- if (directiveName.equals(JSP12TLDNames.TAGLIB) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB)) { >- processTaglib(aCoreStructuredDocumentRegion, fAnchor, fLocalParser); >- } >- if (directiveName.equals(JSP12TLDNames.INCLUDE) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE)) { >- processInclude(aCoreStructuredDocumentRegion, fAnchor, fLocalParser); >- } >- } >- catch (StringIndexOutOfBoundsException sioobExc) { >- // do nothing >- } >- } >- // could test > 1, but since we only care if there are 5 (<, >- // jsp:root, xmlns:prefix, =, where) >- else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) { >- processJSPRoot(aCoreStructuredDocumentRegion, fAnchor, fLocalParser); >- } >+ public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) { >+ processRegionCollection(structuredDocumentRegion, fAnchor, fLocalParser); > } > > /** >@@ -556,14 +497,19 @@ > void parse(IPath path) { > JSPSourceParser p = new JSPSourceParser(); > fLocalParser = p; >- List blockTags = fParentParser.getBlockMarkers(); > String s = getContents(path); >- fLocalParser.addStructuredDocumentRegionHandler(this); >+ // Should we consider preludes on this segment? >+ fLocalParser.addStructuredDocumentRegionHandler(IncludeHelper.this); > fLocalParser.reset(s); >+ List blockTags = fParentParser.getBlockMarkers(); > for (int i = 0; i < blockTags.size(); i++) { > BlockMarker marker = (BlockMarker) blockTags.get(i); > fLocalParser.addBlockMarker(new BlockMarker(marker.getTagName(), null, marker.getContext(), marker.isCaseSensitive())); > } >+ TagMarker[] knownPrefixes = (TagMarker[]) fParentParser.getNestablePrefixes().toArray(new TagMarker[0]); >+ for (int i = 0; i < knownPrefixes.length; i++) { >+ fLocalParser.addNestablePrefix(new TagMarker(knownPrefixes[i].getTagName(), null)); >+ } > // force parse > fLocalParser.getDocumentRegions(); > fLocalParser = null; >@@ -603,11 +549,13 @@ > protected static List bannedPrefixes = null; > > private static Hashtable fCache = null; >- String XMLNS = "xmlns:"; //$NON-NLS-1$ >- protected String URN_TAGDIR = "urn:jsptagdir:"; >- protected String URN_TLD = "urn:jsptld:"; >- >- int XMLNS_LENGTH = XMLNS.length(); >+ final String XMLNS = "xmlns:"; //$NON-NLS-1$ >+ final String URN_TAGDIR = "urn:jsptagdir:"; >+ final String URN_TLD = "urn:jsptld:"; >+ >+ final int XMLNS_LENGTH = XMLNS.length(); >+ final int URN_TAGDIR_LENGTH = URN_TAGDIR.length(); >+ final int URN_TLD_LENGTH = URN_TLD.length(); > > static { > bannedPrefixes = new ArrayList(7); >#P org.eclipse.wst.sse.core >Index: DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex >=================================================================== >RCS file: /cvsroot/webtools/wst/components/sse/plugins/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex,v >retrieving revision 1.8 >diff -u -r1.8 JSPTokenizer.jflex >--- DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex 17 Oct 2007 08:31:26 -0000 1.8 >+++ DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex 30 Oct 2007 22:18:38 -0000 >@@ -1933,6 +1933,7 @@ > return PROXY_CONTEXT; > } > } >+ > <ST_BLOCK_TAG_INTERNAL_SCAN> {jspCommentStart} { > yybegin(ST_JSP_COMMENT); > assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE); >@@ -1940,9 +1941,35 @@ > yybegin(ST_BLOCK_TAG_SCAN); > return PROXY_CONTEXT; > } >-<YYINITIAL,ST_BLOCK_TAG_INTERNAL_SCAN> {jspDirectiveStart} { >+ >+{jspDirectiveStart} { >+ /* JSP directive begun (anywhere) >+ * A consequence of the start anywhere possibility is that the >+ * incoming state must be checked to see if it's erroneous >+ * due to the order of precedence generated >+ */ >+ // begin sanity checks >+ if(yystate() == ST_JSP_CONTENT) { >+ // at the beginning?! >+ yypushback(2); >+ return JSP_CONTENT; >+ } >+ else if(yystate() == ST_BLOCK_TAG_SCAN) { >+ yypushback(3); >+ return doBlockTagScan(); >+ } >+ else if(yystate() == ST_XML_COMMENT) { >+ yypushback(3); >+ return scanXMLCommentText(); >+ } >+ else if(yystate() == ST_JSP_COMMENT) { >+ yypushback(3); >+ return scanJSPCommentText(); >+ } >+ // end sanity checks > fStateStack.push(yystate()); > if(fStateStack.peek()==YYINITIAL) { >+ // the simple case, just a declaration out in content > if(Debug.debugTokenizer) > dump("\nJSP directive start");//$NON-NLS-1$ > yybegin(ST_JSP_DIRECTIVE_NAME); >@@ -1953,16 +1980,39 @@ > System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ > } > if(Debug.debugTokenizer) >- dump("JSP directive start");//$NON-NLS-1$ >+ dump("JSP declaration start");//$NON-NLS-1$ >+ if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED) >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; >+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED) >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; >+ else if(yystate() == ST_CDATA_TEXT) { >+ fEmbeddedPostState = ST_CDATA_TEXT; >+ fEmbeddedHint = XML_CDATA_TEXT; >+ } > yybegin(ST_JSP_DIRECTIVE_NAME); > assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE}); > if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { > yybegin(ST_BLOCK_TAG_SCAN); > return BLOCK_TEXT; > } >+ // required help for successive embedded regions >+ if(yystate() == ST_XML_TAG_NAME) { >+ fEmbeddedHint = XML_TAG_NAME; >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; >+ } >+ else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) { >+ fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; >+ fEmbeddedPostState = ST_XML_EQUALS; >+ } >+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE) { >+ fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; >+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; >+ } > return PROXY_CONTEXT; > } > } >+ >+ > <ST_JSP_DIRECTIVE_NAME> {Name} { > if(Debug.debugTokenizer) > dump("JSP directive name");//$NON-NLS-1$
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 206963
: 81657 |
81667