Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /*
2 * Copyright (c) 2008-2014 Mozilla Foundation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
21 */
23 package nu.validator.htmlparser.impl;
25 import java.util.Arrays;
27 import nu.validator.htmlparser.annotation.Inline;
28 import nu.validator.htmlparser.annotation.Local;
29 import nu.validator.htmlparser.annotation.NoLength;
30 import nu.validator.htmlparser.annotation.Virtual;
31 import nu.validator.htmlparser.common.Interner;
33 public final class ElementName
34 // uncomment when regenerating self
35 // implements Comparable<ElementName>
36 {
38 /**
39 * The mask for extracting the dispatch group.
40 */
41 public static final int GROUP_MASK = 127;
43 /**
44 * Indicates that the element is not a pre-interned element. Forbidden
45 * on preinterned elements.
46 */
47 public static final int CUSTOM = (1 << 30);
49 /**
50 * Indicates that the element is in the "special" category. This bit
51 * should not be pre-set on MathML or SVG specials--only on HTML specials.
52 */
53 public static final int SPECIAL = (1 << 29);
55 /**
56 * The element is foster-parenting. This bit should be pre-set on elements
57 * that are foster-parenting as HTML.
58 */
59 public static final int FOSTER_PARENTING = (1 << 28);
61 /**
62 * The element is scoping. This bit should be pre-set on elements
63 * that are scoping as HTML.
64 */
65 public static final int SCOPING = (1 << 27);
67 /**
68 * The element is scoping as SVG.
69 */
70 public static final int SCOPING_AS_SVG = (1 << 26);
72 /**
73 * The element is scoping as MathML.
74 */
75 public static final int SCOPING_AS_MATHML = (1 << 25);
77 /**
78 * The element is an HTML integration point.
79 */
80 public static final int HTML_INTEGRATION_POINT = (1 << 24);
82 /**
83 * The element has an optional end tag.
84 */
85 public static final int OPTIONAL_END_TAG = (1 << 23);
87 public static final ElementName NULL_ELEMENT_NAME = new ElementName(null);
89 public final @Local String name;
91 public final @Local String camelCaseName;
93 /**
94 * The lowest 7 bits are the dispatch group. The high bits are flags.
95 */
96 public final int flags;
98 @Inline public int getFlags() {
99 return flags;
100 }
102 public int getGroup() {
103 return flags & GROUP_MASK;
104 }
106 public boolean isCustom() {
107 return (flags & CUSTOM) != 0;
108 }
110 static ElementName elementNameByBuffer(@NoLength char[] buf, int offset, int length, Interner interner) {
111 int hash = ElementName.bufToHash(buf, length);
112 int index = Arrays.binarySearch(ElementName.ELEMENT_HASHES, hash);
113 if (index < 0) {
114 return new ElementName(Portability.newLocalNameFromBuffer(buf, offset, length, interner));
115 } else {
116 ElementName elementName = ElementName.ELEMENT_NAMES[index];
117 @Local String name = elementName.name;
118 if (!Portability.localEqualsBuffer(name, buf, offset, length)) {
119 return new ElementName(Portability.newLocalNameFromBuffer(buf,
120 offset, length, interner));
121 }
122 return elementName;
123 }
124 }
126 /**
127 * This method has to return a unique integer for each well-known
128 * lower-cased element name.
129 *
130 * @param buf
131 * @param len
132 * @return
133 */
134 private static int bufToHash(@NoLength char[] buf, int len) {
135 int hash = len;
136 hash <<= 5;
137 hash += buf[0] - 0x60;
138 int j = len;
139 for (int i = 0; i < 4 && j > 0; i++) {
140 j--;
141 hash <<= 5;
142 hash += buf[j] - 0x60;
143 }
144 return hash;
145 }
147 private ElementName(@Local String name, @Local String camelCaseName,
148 int flags) {
149 this.name = name;
150 this.camelCaseName = camelCaseName;
151 this.flags = flags;
152 }
154 protected ElementName(@Local String name) {
155 this.name = name;
156 this.camelCaseName = name;
157 this.flags = TreeBuilder.OTHER | CUSTOM;
158 }
160 @Virtual void release() {
161 // No-op in Java.
162 // Implement as delete this in subclass.
163 // Be sure to release the local name
164 }
166 @SuppressWarnings("unused") @Virtual private void destructor() {
167 }
169 @Virtual public ElementName cloneElementName(Interner interner) {
170 return this;
171 }
173 // START CODE ONLY USED FOR GENERATING CODE uncomment and run to regenerate
175 // /**
176 // * @see java.lang.Object#toString()
177 // */
178 // @Override public String toString() {
179 // return "(\"" + name + "\", \"" + camelCaseName + "\", " + decomposedFlags() + ")";
180 // }
181 //
182 // private String decomposedFlags() {
183 // StringBuilder buf = new StringBuilder("TreeBuilder.");
184 // buf.append(treeBuilderGroupToName());
185 // if ((flags & SPECIAL) != 0) {
186 // buf.append(" | SPECIAL");
187 // }
188 // if ((flags & FOSTER_PARENTING) != 0) {
189 // buf.append(" | FOSTER_PARENTING");
190 // }
191 // if ((flags & SCOPING) != 0) {
192 // buf.append(" | SCOPING");
193 // }
194 // if ((flags & SCOPING_AS_MATHML) != 0) {
195 // buf.append(" | SCOPING_AS_MATHML");
196 // }
197 // if ((flags & SCOPING_AS_SVG) != 0) {
198 // buf.append(" | SCOPING_AS_SVG");
199 // }
200 // if ((flags & OPTIONAL_END_TAG) != 0) {
201 // buf.append(" | OPTIONAL_END_TAG");
202 // }
203 // return buf.toString();
204 // }
205 //
206 // private String constName() {
207 // char[] buf = new char[name.length()];
208 // for (int i = 0; i < name.length(); i++) {
209 // char c = name.charAt(i);
210 // if (c == '-') {
211 // buf[i] = '_';
212 // } else if (c >= '0' && c <= '9') {
213 // buf[i] = c;
214 // } else {
215 // buf[i] = (char) (c - 0x20);
216 // }
217 // }
218 // return new String(buf);
219 // }
220 //
221 // private int hash() {
222 // return bufToHash(name.toCharArray(), name.length());
223 // }
224 //
225 // public int compareTo(ElementName other) {
226 // int thisHash = this.hash();
227 // int otherHash = other.hash();
228 // if (thisHash < otherHash) {
229 // return -1;
230 // } else if (thisHash == otherHash) {
231 // return 0;
232 // } else {
233 // return 1;
234 // }
235 // }
236 //
237 // private String treeBuilderGroupToName() {
238 // switch (getGroup()) {
239 // case TreeBuilder.OTHER:
240 // return "OTHER";
241 // case TreeBuilder.A:
242 // return "A";
243 // case TreeBuilder.BASE:
244 // return "BASE";
245 // case TreeBuilder.BODY:
246 // return "BODY";
247 // case TreeBuilder.BR:
248 // return "BR";
249 // case TreeBuilder.BUTTON:
250 // return "BUTTON";
251 // case TreeBuilder.CAPTION:
252 // return "CAPTION";
253 // case TreeBuilder.COL:
254 // return "COL";
255 // case TreeBuilder.COLGROUP:
256 // return "COLGROUP";
257 // case TreeBuilder.FONT:
258 // return "FONT";
259 // case TreeBuilder.FORM:
260 // return "FORM";
261 // case TreeBuilder.FRAME:
262 // return "FRAME";
263 // case TreeBuilder.FRAMESET:
264 // return "FRAMESET";
265 // case TreeBuilder.IMAGE:
266 // return "IMAGE";
267 // case TreeBuilder.INPUT:
268 // return "INPUT";
269 // case TreeBuilder.ISINDEX:
270 // return "ISINDEX";
271 // case TreeBuilder.LI:
272 // return "LI";
273 // case TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND:
274 // return "LINK_OR_BASEFONT_OR_BGSOUND";
275 // case TreeBuilder.MATH:
276 // return "MATH";
277 // case TreeBuilder.META:
278 // return "META";
279 // case TreeBuilder.SVG:
280 // return "SVG";
281 // case TreeBuilder.HEAD:
282 // return "HEAD";
283 // case TreeBuilder.HR:
284 // return "HR";
285 // case TreeBuilder.HTML:
286 // return "HTML";
287 // case TreeBuilder.KEYGEN:
288 // return "KEYGEN";
289 // case TreeBuilder.NOBR:
290 // return "NOBR";
291 // case TreeBuilder.NOFRAMES:
292 // return "NOFRAMES";
293 // case TreeBuilder.NOSCRIPT:
294 // return "NOSCRIPT";
295 // case TreeBuilder.OPTGROUP:
296 // return "OPTGROUP";
297 // case TreeBuilder.OPTION:
298 // return "OPTION";
299 // case TreeBuilder.P:
300 // return "P";
301 // case TreeBuilder.PLAINTEXT:
302 // return "PLAINTEXT";
303 // case TreeBuilder.SCRIPT:
304 // return "SCRIPT";
305 // case TreeBuilder.SELECT:
306 // return "SELECT";
307 // case TreeBuilder.STYLE:
308 // return "STYLE";
309 // case TreeBuilder.TABLE:
310 // return "TABLE";
311 // case TreeBuilder.TEXTAREA:
312 // return "TEXTAREA";
313 // case TreeBuilder.TITLE:
314 // return "TITLE";
315 // case TreeBuilder.TEMPLATE:
316 // return "TEMPLATE";
317 // case TreeBuilder.TR:
318 // return "TR";
319 // case TreeBuilder.XMP:
320 // return "XMP";
321 // case TreeBuilder.TBODY_OR_THEAD_OR_TFOOT:
322 // return "TBODY_OR_THEAD_OR_TFOOT";
323 // case TreeBuilder.TD_OR_TH:
324 // return "TD_OR_TH";
325 // case TreeBuilder.DD_OR_DT:
326 // return "DD_OR_DT";
327 // case TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6:
328 // return "H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6";
329 // case TreeBuilder.OBJECT:
330 // return "OBJECT";
331 // case TreeBuilder.OUTPUT_OR_LABEL:
332 // return "OUTPUT_OR_LABEL";
333 // case TreeBuilder.MARQUEE_OR_APPLET:
334 // return "MARQUEE_OR_APPLET";
335 // case TreeBuilder.PRE_OR_LISTING:
336 // return "PRE_OR_LISTING";
337 // case TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
338 // return "B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U";
339 // case TreeBuilder.UL_OR_OL_OR_DL:
340 // return "UL_OR_OL_OR_DL";
341 // case TreeBuilder.IFRAME:
342 // return "IFRAME";
343 // case TreeBuilder.NOEMBED:
344 // return "NOEMBED";
345 // case TreeBuilder.EMBED:
346 // return "EMBED";
347 // case TreeBuilder.IMG:
348 // return "IMG";
349 // case TreeBuilder.AREA_OR_WBR:
350 // return "AREA_OR_WBR";
351 // case TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
352 // return "DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU";
353 // case TreeBuilder.FIELDSET:
354 // return "FIELDSET";
355 // case TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY:
356 // return "ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY";
357 // case TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
358 // return "RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR";
359 // case TreeBuilder.RT_OR_RP:
360 // return "RT_OR_RP";
361 // case TreeBuilder.PARAM_OR_SOURCE_OR_TRACK:
362 // return "PARAM_OR_SOURCE_OR_TRACK";
363 // case TreeBuilder.MGLYPH_OR_MALIGNMARK:
364 // return "MGLYPH_OR_MALIGNMARK";
365 // case TreeBuilder.MI_MO_MN_MS_MTEXT:
366 // return "MI_MO_MN_MS_MTEXT";
367 // case TreeBuilder.ANNOTATION_XML:
368 // return "ANNOTATION_XML";
369 // case TreeBuilder.FOREIGNOBJECT_OR_DESC:
370 // return "FOREIGNOBJECT_OR_DESC";
371 // case TreeBuilder.MENUITEM:
372 // return "MENUITEM";
373 // }
374 // return null;
375 // }
376 //
377 // /**
378 // * Regenerate self
379 // *
380 // * @param args
381 // */
382 // public static void main(String[] args) {
383 // Arrays.sort(ELEMENT_NAMES);
384 // for (int i = 1; i < ELEMENT_NAMES.length; i++) {
385 // if (ELEMENT_NAMES[i].hash() == ELEMENT_NAMES[i - 1].hash()) {
386 // System.err.println("Hash collision: " + ELEMENT_NAMES[i].name
387 // + ", " + ELEMENT_NAMES[i - 1].name);
388 // return;
389 // }
390 // }
391 // for (int i = 0; i < ELEMENT_NAMES.length; i++) {
392 // ElementName el = ELEMENT_NAMES[i];
393 // System.out.println("public static final ElementName "
394 // + el.constName() + " = new ElementName" + el.toString()
395 // + ";");
396 // }
397 // System.out.println("private final static @NoLength ElementName[] ELEMENT_NAMES = {");
398 // for (int i = 0; i < ELEMENT_NAMES.length; i++) {
399 // ElementName el = ELEMENT_NAMES[i];
400 // System.out.println(el.constName() + ",");
401 // }
402 // System.out.println("};");
403 // System.out.println("private final static int[] ELEMENT_HASHES = {");
404 // for (int i = 0; i < ELEMENT_NAMES.length; i++) {
405 // ElementName el = ELEMENT_NAMES[i];
406 // System.out.println(Integer.toString(el.hash()) + ",");
407 // }
408 // System.out.println("};");
409 // }
411 // START GENERATED CODE
412 public static final ElementName A = new ElementName("a", "a", TreeBuilder.A);
413 public static final ElementName B = new ElementName("b", "b", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
414 public static final ElementName G = new ElementName("g", "g", TreeBuilder.OTHER);
415 public static final ElementName I = new ElementName("i", "i", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
416 public static final ElementName P = new ElementName("p", "p", TreeBuilder.P | SPECIAL | OPTIONAL_END_TAG);
417 public static final ElementName Q = new ElementName("q", "q", TreeBuilder.OTHER);
418 public static final ElementName S = new ElementName("s", "s", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
419 public static final ElementName U = new ElementName("u", "u", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
420 public static final ElementName BR = new ElementName("br", "br", TreeBuilder.BR | SPECIAL);
421 public static final ElementName CI = new ElementName("ci", "ci", TreeBuilder.OTHER);
422 public static final ElementName CN = new ElementName("cn", "cn", TreeBuilder.OTHER);
423 public static final ElementName DD = new ElementName("dd", "dd", TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
424 public static final ElementName DL = new ElementName("dl", "dl", TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
425 public static final ElementName DT = new ElementName("dt", "dt", TreeBuilder.DD_OR_DT | SPECIAL | OPTIONAL_END_TAG);
426 public static final ElementName EM = new ElementName("em", "em", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
427 public static final ElementName EQ = new ElementName("eq", "eq", TreeBuilder.OTHER);
428 public static final ElementName FN = new ElementName("fn", "fn", TreeBuilder.OTHER);
429 public static final ElementName H1 = new ElementName("h1", "h1", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
430 public static final ElementName H2 = new ElementName("h2", "h2", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
431 public static final ElementName H3 = new ElementName("h3", "h3", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
432 public static final ElementName H4 = new ElementName("h4", "h4", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
433 public static final ElementName H5 = new ElementName("h5", "h5", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
434 public static final ElementName H6 = new ElementName("h6", "h6", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
435 public static final ElementName GT = new ElementName("gt", "gt", TreeBuilder.OTHER);
436 public static final ElementName HR = new ElementName("hr", "hr", TreeBuilder.HR | SPECIAL);
437 public static final ElementName IN = new ElementName("in", "in", TreeBuilder.OTHER);
438 public static final ElementName LI = new ElementName("li", "li", TreeBuilder.LI | SPECIAL | OPTIONAL_END_TAG);
439 public static final ElementName LN = new ElementName("ln", "ln", TreeBuilder.OTHER);
440 public static final ElementName LT = new ElementName("lt", "lt", TreeBuilder.OTHER);
441 public static final ElementName MI = new ElementName("mi", "mi", TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
442 public static final ElementName MN = new ElementName("mn", "mn", TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
443 public static final ElementName MO = new ElementName("mo", "mo", TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
444 public static final ElementName MS = new ElementName("ms", "ms", TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
445 public static final ElementName OL = new ElementName("ol", "ol", TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
446 public static final ElementName OR = new ElementName("or", "or", TreeBuilder.OTHER);
447 public static final ElementName PI = new ElementName("pi", "pi", TreeBuilder.OTHER);
448 public static final ElementName RP = new ElementName("rp", "rp", TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
449 public static final ElementName RT = new ElementName("rt", "rt", TreeBuilder.RT_OR_RP | OPTIONAL_END_TAG);
450 public static final ElementName TD = new ElementName("td", "td", TreeBuilder.TD_OR_TH | SPECIAL | SCOPING | OPTIONAL_END_TAG);
451 public static final ElementName TH = new ElementName("th", "th", TreeBuilder.TD_OR_TH | SPECIAL | SCOPING | OPTIONAL_END_TAG);
452 public static final ElementName TR = new ElementName("tr", "tr", TreeBuilder.TR | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
453 public static final ElementName TT = new ElementName("tt", "tt", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
454 public static final ElementName UL = new ElementName("ul", "ul", TreeBuilder.UL_OR_OL_OR_DL | SPECIAL);
455 public static final ElementName AND = new ElementName("and", "and", TreeBuilder.OTHER);
456 public static final ElementName ARG = new ElementName("arg", "arg", TreeBuilder.OTHER);
457 public static final ElementName ABS = new ElementName("abs", "abs", TreeBuilder.OTHER);
458 public static final ElementName BIG = new ElementName("big", "big", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
459 public static final ElementName BDO = new ElementName("bdo", "bdo", TreeBuilder.OTHER);
460 public static final ElementName CSC = new ElementName("csc", "csc", TreeBuilder.OTHER);
461 public static final ElementName COL = new ElementName("col", "col", TreeBuilder.COL | SPECIAL);
462 public static final ElementName COS = new ElementName("cos", "cos", TreeBuilder.OTHER);
463 public static final ElementName COT = new ElementName("cot", "cot", TreeBuilder.OTHER);
464 public static final ElementName DEL = new ElementName("del", "del", TreeBuilder.OTHER);
465 public static final ElementName DFN = new ElementName("dfn", "dfn", TreeBuilder.OTHER);
466 public static final ElementName DIR = new ElementName("dir", "dir", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
467 public static final ElementName DIV = new ElementName("div", "div", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
468 public static final ElementName EXP = new ElementName("exp", "exp", TreeBuilder.OTHER);
469 public static final ElementName GCD = new ElementName("gcd", "gcd", TreeBuilder.OTHER);
470 public static final ElementName GEQ = new ElementName("geq", "geq", TreeBuilder.OTHER);
471 public static final ElementName IMG = new ElementName("img", "img", TreeBuilder.IMG | SPECIAL);
472 public static final ElementName INS = new ElementName("ins", "ins", TreeBuilder.OTHER);
473 public static final ElementName INT = new ElementName("int", "int", TreeBuilder.OTHER);
474 public static final ElementName KBD = new ElementName("kbd", "kbd", TreeBuilder.OTHER);
475 public static final ElementName LOG = new ElementName("log", "log", TreeBuilder.OTHER);
476 public static final ElementName LCM = new ElementName("lcm", "lcm", TreeBuilder.OTHER);
477 public static final ElementName LEQ = new ElementName("leq", "leq", TreeBuilder.OTHER);
478 public static final ElementName MTD = new ElementName("mtd", "mtd", TreeBuilder.OTHER);
479 public static final ElementName MIN = new ElementName("min", "min", TreeBuilder.OTHER);
480 public static final ElementName MAP = new ElementName("map", "map", TreeBuilder.OTHER);
481 public static final ElementName MTR = new ElementName("mtr", "mtr", TreeBuilder.OTHER);
482 public static final ElementName MAX = new ElementName("max", "max", TreeBuilder.OTHER);
483 public static final ElementName NEQ = new ElementName("neq", "neq", TreeBuilder.OTHER);
484 public static final ElementName NOT = new ElementName("not", "not", TreeBuilder.OTHER);
485 public static final ElementName NAV = new ElementName("nav", "nav", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
486 public static final ElementName PRE = new ElementName("pre", "pre", TreeBuilder.PRE_OR_LISTING | SPECIAL);
487 public static final ElementName REM = new ElementName("rem", "rem", TreeBuilder.OTHER);
488 public static final ElementName SUB = new ElementName("sub", "sub", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
489 public static final ElementName SEC = new ElementName("sec", "sec", TreeBuilder.OTHER);
490 public static final ElementName SVG = new ElementName("svg", "svg", TreeBuilder.SVG);
491 public static final ElementName SUM = new ElementName("sum", "sum", TreeBuilder.OTHER);
492 public static final ElementName SIN = new ElementName("sin", "sin", TreeBuilder.OTHER);
493 public static final ElementName SEP = new ElementName("sep", "sep", TreeBuilder.OTHER);
494 public static final ElementName SUP = new ElementName("sup", "sup", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
495 public static final ElementName SET = new ElementName("set", "set", TreeBuilder.OTHER);
496 public static final ElementName TAN = new ElementName("tan", "tan", TreeBuilder.OTHER);
497 public static final ElementName USE = new ElementName("use", "use", TreeBuilder.OTHER);
498 public static final ElementName VAR = new ElementName("var", "var", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
499 public static final ElementName WBR = new ElementName("wbr", "wbr", TreeBuilder.AREA_OR_WBR | SPECIAL);
500 public static final ElementName XMP = new ElementName("xmp", "xmp", TreeBuilder.XMP | SPECIAL);
501 public static final ElementName XOR = new ElementName("xor", "xor", TreeBuilder.OTHER);
502 public static final ElementName AREA = new ElementName("area", "area", TreeBuilder.AREA_OR_WBR | SPECIAL);
503 public static final ElementName ABBR = new ElementName("abbr", "abbr", TreeBuilder.OTHER);
504 public static final ElementName BASE = new ElementName("base", "base", TreeBuilder.BASE | SPECIAL);
505 public static final ElementName BVAR = new ElementName("bvar", "bvar", TreeBuilder.OTHER);
506 public static final ElementName BODY = new ElementName("body", "body", TreeBuilder.BODY | SPECIAL | OPTIONAL_END_TAG);
507 public static final ElementName CARD = new ElementName("card", "card", TreeBuilder.OTHER);
508 public static final ElementName CODE = new ElementName("code", "code", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
509 public static final ElementName CITE = new ElementName("cite", "cite", TreeBuilder.OTHER);
510 public static final ElementName CSCH = new ElementName("csch", "csch", TreeBuilder.OTHER);
511 public static final ElementName COSH = new ElementName("cosh", "cosh", TreeBuilder.OTHER);
512 public static final ElementName COTH = new ElementName("coth", "coth", TreeBuilder.OTHER);
513 public static final ElementName CURL = new ElementName("curl", "curl", TreeBuilder.OTHER);
514 public static final ElementName DESC = new ElementName("desc", "desc", TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
515 public static final ElementName DIFF = new ElementName("diff", "diff", TreeBuilder.OTHER);
516 public static final ElementName DEFS = new ElementName("defs", "defs", TreeBuilder.OTHER);
517 public static final ElementName FORM = new ElementName("form", "form", TreeBuilder.FORM | SPECIAL);
518 public static final ElementName FONT = new ElementName("font", "font", TreeBuilder.FONT);
519 public static final ElementName GRAD = new ElementName("grad", "grad", TreeBuilder.OTHER);
520 public static final ElementName HEAD = new ElementName("head", "head", TreeBuilder.HEAD | SPECIAL | OPTIONAL_END_TAG);
521 public static final ElementName HTML = new ElementName("html", "html", TreeBuilder.HTML | SPECIAL | SCOPING | OPTIONAL_END_TAG);
522 public static final ElementName LINE = new ElementName("line", "line", TreeBuilder.OTHER);
523 public static final ElementName LINK = new ElementName("link", "link", TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
524 public static final ElementName LIST = new ElementName("list", "list", TreeBuilder.OTHER);
525 public static final ElementName META = new ElementName("meta", "meta", TreeBuilder.META | SPECIAL);
526 public static final ElementName MSUB = new ElementName("msub", "msub", TreeBuilder.OTHER);
527 public static final ElementName MODE = new ElementName("mode", "mode", TreeBuilder.OTHER);
528 public static final ElementName MATH = new ElementName("math", "math", TreeBuilder.MATH);
529 public static final ElementName MARK = new ElementName("mark", "mark", TreeBuilder.OTHER);
530 public static final ElementName MASK = new ElementName("mask", "mask", TreeBuilder.OTHER);
531 public static final ElementName MEAN = new ElementName("mean", "mean", TreeBuilder.OTHER);
532 public static final ElementName MAIN = new ElementName("main", "main", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
533 public static final ElementName MSUP = new ElementName("msup", "msup", TreeBuilder.OTHER);
534 public static final ElementName MENU = new ElementName("menu", "menu", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
535 public static final ElementName MROW = new ElementName("mrow", "mrow", TreeBuilder.OTHER);
536 public static final ElementName NONE = new ElementName("none", "none", TreeBuilder.OTHER);
537 public static final ElementName NOBR = new ElementName("nobr", "nobr", TreeBuilder.NOBR);
538 public static final ElementName NEST = new ElementName("nest", "nest", TreeBuilder.OTHER);
539 public static final ElementName PATH = new ElementName("path", "path", TreeBuilder.OTHER);
540 public static final ElementName PLUS = new ElementName("plus", "plus", TreeBuilder.OTHER);
541 public static final ElementName RULE = new ElementName("rule", "rule", TreeBuilder.OTHER);
542 public static final ElementName REAL = new ElementName("real", "real", TreeBuilder.OTHER);
543 public static final ElementName RELN = new ElementName("reln", "reln", TreeBuilder.OTHER);
544 public static final ElementName RECT = new ElementName("rect", "rect", TreeBuilder.OTHER);
545 public static final ElementName ROOT = new ElementName("root", "root", TreeBuilder.OTHER);
546 public static final ElementName RUBY = new ElementName("ruby", "ruby", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
547 public static final ElementName SECH = new ElementName("sech", "sech", TreeBuilder.OTHER);
548 public static final ElementName SINH = new ElementName("sinh", "sinh", TreeBuilder.OTHER);
549 public static final ElementName SPAN = new ElementName("span", "span", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
550 public static final ElementName SAMP = new ElementName("samp", "samp", TreeBuilder.OTHER);
551 public static final ElementName STOP = new ElementName("stop", "stop", TreeBuilder.OTHER);
552 public static final ElementName SDEV = new ElementName("sdev", "sdev", TreeBuilder.OTHER);
553 public static final ElementName TIME = new ElementName("time", "time", TreeBuilder.OTHER);
554 public static final ElementName TRUE = new ElementName("true", "true", TreeBuilder.OTHER);
555 public static final ElementName TREF = new ElementName("tref", "tref", TreeBuilder.OTHER);
556 public static final ElementName TANH = new ElementName("tanh", "tanh", TreeBuilder.OTHER);
557 public static final ElementName TEXT = new ElementName("text", "text", TreeBuilder.OTHER);
558 public static final ElementName VIEW = new ElementName("view", "view", TreeBuilder.OTHER);
559 public static final ElementName ASIDE = new ElementName("aside", "aside", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
560 public static final ElementName AUDIO = new ElementName("audio", "audio", TreeBuilder.OTHER);
561 public static final ElementName APPLY = new ElementName("apply", "apply", TreeBuilder.OTHER);
562 public static final ElementName EMBED = new ElementName("embed", "embed", TreeBuilder.EMBED | SPECIAL);
563 public static final ElementName FRAME = new ElementName("frame", "frame", TreeBuilder.FRAME | SPECIAL);
564 public static final ElementName FALSE = new ElementName("false", "false", TreeBuilder.OTHER);
565 public static final ElementName FLOOR = new ElementName("floor", "floor", TreeBuilder.OTHER);
566 public static final ElementName GLYPH = new ElementName("glyph", "glyph", TreeBuilder.OTHER);
567 public static final ElementName HKERN = new ElementName("hkern", "hkern", TreeBuilder.OTHER);
568 public static final ElementName IMAGE = new ElementName("image", "image", TreeBuilder.IMAGE);
569 public static final ElementName IDENT = new ElementName("ident", "ident", TreeBuilder.OTHER);
570 public static final ElementName INPUT = new ElementName("input", "input", TreeBuilder.INPUT | SPECIAL);
571 public static final ElementName LABEL = new ElementName("label", "label", TreeBuilder.OUTPUT_OR_LABEL);
572 public static final ElementName LIMIT = new ElementName("limit", "limit", TreeBuilder.OTHER);
573 public static final ElementName MFRAC = new ElementName("mfrac", "mfrac", TreeBuilder.OTHER);
574 public static final ElementName MPATH = new ElementName("mpath", "mpath", TreeBuilder.OTHER);
575 public static final ElementName METER = new ElementName("meter", "meter", TreeBuilder.OTHER);
576 public static final ElementName MOVER = new ElementName("mover", "mover", TreeBuilder.OTHER);
577 public static final ElementName MINUS = new ElementName("minus", "minus", TreeBuilder.OTHER);
578 public static final ElementName MROOT = new ElementName("mroot", "mroot", TreeBuilder.OTHER);
579 public static final ElementName MSQRT = new ElementName("msqrt", "msqrt", TreeBuilder.OTHER);
580 public static final ElementName MTEXT = new ElementName("mtext", "mtext", TreeBuilder.MI_MO_MN_MS_MTEXT | SCOPING_AS_MATHML);
581 public static final ElementName NOTIN = new ElementName("notin", "notin", TreeBuilder.OTHER);
582 public static final ElementName PIECE = new ElementName("piece", "piece", TreeBuilder.OTHER);
583 public static final ElementName PARAM = new ElementName("param", "param", TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
584 public static final ElementName POWER = new ElementName("power", "power", TreeBuilder.OTHER);
585 public static final ElementName REALS = new ElementName("reals", "reals", TreeBuilder.OTHER);
586 public static final ElementName STYLE = new ElementName("style", "style", TreeBuilder.STYLE | SPECIAL);
587 public static final ElementName SMALL = new ElementName("small", "small", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
588 public static final ElementName THEAD = new ElementName("thead", "thead", TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
589 public static final ElementName TABLE = new ElementName("table", "table", TreeBuilder.TABLE | SPECIAL | FOSTER_PARENTING | SCOPING);
590 public static final ElementName TITLE = new ElementName("title", "title", TreeBuilder.TITLE | SPECIAL | SCOPING_AS_SVG);
591 public static final ElementName TRACK = new ElementName("track", "track", TreeBuilder.PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
592 public static final ElementName TSPAN = new ElementName("tspan", "tspan", TreeBuilder.OTHER);
593 public static final ElementName TIMES = new ElementName("times", "times", TreeBuilder.OTHER);
594 public static final ElementName TFOOT = new ElementName("tfoot", "tfoot", TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
595 public static final ElementName TBODY = new ElementName("tbody", "tbody", TreeBuilder.TBODY_OR_THEAD_OR_TFOOT | SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
596 public static final ElementName UNION = new ElementName("union", "union", TreeBuilder.OTHER);
597 public static final ElementName VKERN = new ElementName("vkern", "vkern", TreeBuilder.OTHER);
598 public static final ElementName VIDEO = new ElementName("video", "video", TreeBuilder.OTHER);
599 public static final ElementName ARCSEC = new ElementName("arcsec", "arcsec", TreeBuilder.OTHER);
600 public static final ElementName ARCCSC = new ElementName("arccsc", "arccsc", TreeBuilder.OTHER);
601 public static final ElementName ARCTAN = new ElementName("arctan", "arctan", TreeBuilder.OTHER);
602 public static final ElementName ARCSIN = new ElementName("arcsin", "arcsin", TreeBuilder.OTHER);
603 public static final ElementName ARCCOS = new ElementName("arccos", "arccos", TreeBuilder.OTHER);
604 public static final ElementName APPLET = new ElementName("applet", "applet", TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
605 public static final ElementName ARCCOT = new ElementName("arccot", "arccot", TreeBuilder.OTHER);
606 public static final ElementName APPROX = new ElementName("approx", "approx", TreeBuilder.OTHER);
607 public static final ElementName BUTTON = new ElementName("button", "button", TreeBuilder.BUTTON | SPECIAL);
608 public static final ElementName CIRCLE = new ElementName("circle", "circle", TreeBuilder.OTHER);
609 public static final ElementName CENTER = new ElementName("center", "center", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
610 public static final ElementName CURSOR = new ElementName("cursor", "cursor", TreeBuilder.OTHER);
611 public static final ElementName CANVAS = new ElementName("canvas", "canvas", TreeBuilder.OTHER);
612 public static final ElementName DIVIDE = new ElementName("divide", "divide", TreeBuilder.OTHER);
613 public static final ElementName DEGREE = new ElementName("degree", "degree", TreeBuilder.OTHER);
614 public static final ElementName DOMAIN = new ElementName("domain", "domain", TreeBuilder.OTHER);
615 public static final ElementName EXISTS = new ElementName("exists", "exists", TreeBuilder.OTHER);
616 public static final ElementName FETILE = new ElementName("fetile", "feTile", TreeBuilder.OTHER);
617 public static final ElementName FIGURE = new ElementName("figure", "figure", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
618 public static final ElementName FORALL = new ElementName("forall", "forall", TreeBuilder.OTHER);
619 public static final ElementName FILTER = new ElementName("filter", "filter", TreeBuilder.OTHER);
620 public static final ElementName FOOTER = new ElementName("footer", "footer", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
621 public static final ElementName HGROUP = new ElementName("hgroup", "hgroup", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
622 public static final ElementName HEADER = new ElementName("header", "header", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
623 public static final ElementName IFRAME = new ElementName("iframe", "iframe", TreeBuilder.IFRAME | SPECIAL);
624 public static final ElementName KEYGEN = new ElementName("keygen", "keygen", TreeBuilder.KEYGEN);
625 public static final ElementName LAMBDA = new ElementName("lambda", "lambda", TreeBuilder.OTHER);
626 public static final ElementName LEGEND = new ElementName("legend", "legend", TreeBuilder.OTHER);
627 public static final ElementName MSPACE = new ElementName("mspace", "mspace", TreeBuilder.OTHER);
628 public static final ElementName MTABLE = new ElementName("mtable", "mtable", TreeBuilder.OTHER);
629 public static final ElementName MSTYLE = new ElementName("mstyle", "mstyle", TreeBuilder.OTHER);
630 public static final ElementName MGLYPH = new ElementName("mglyph", "mglyph", TreeBuilder.MGLYPH_OR_MALIGNMARK);
631 public static final ElementName MEDIAN = new ElementName("median", "median", TreeBuilder.OTHER);
632 public static final ElementName MUNDER = new ElementName("munder", "munder", TreeBuilder.OTHER);
633 public static final ElementName MARKER = new ElementName("marker", "marker", TreeBuilder.OTHER);
634 public static final ElementName MERROR = new ElementName("merror", "merror", TreeBuilder.OTHER);
635 public static final ElementName MOMENT = new ElementName("moment", "moment", TreeBuilder.OTHER);
636 public static final ElementName MATRIX = new ElementName("matrix", "matrix", TreeBuilder.OTHER);
637 public static final ElementName OPTION = new ElementName("option", "option", TreeBuilder.OPTION | OPTIONAL_END_TAG);
638 public static final ElementName OBJECT = new ElementName("object", "object", TreeBuilder.OBJECT | SPECIAL | SCOPING);
639 public static final ElementName OUTPUT = new ElementName("output", "output", TreeBuilder.OUTPUT_OR_LABEL);
640 public static final ElementName PRIMES = new ElementName("primes", "primes", TreeBuilder.OTHER);
641 public static final ElementName SOURCE = new ElementName("source", "source", TreeBuilder.PARAM_OR_SOURCE_OR_TRACK);
642 public static final ElementName STRIKE = new ElementName("strike", "strike", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
643 public static final ElementName STRONG = new ElementName("strong", "strong", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
644 public static final ElementName SWITCH = new ElementName("switch", "switch", TreeBuilder.OTHER);
645 public static final ElementName SYMBOL = new ElementName("symbol", "symbol", TreeBuilder.OTHER);
646 public static final ElementName SELECT = new ElementName("select", "select", TreeBuilder.SELECT | SPECIAL);
647 public static final ElementName SUBSET = new ElementName("subset", "subset", TreeBuilder.OTHER);
648 public static final ElementName SCRIPT = new ElementName("script", "script", TreeBuilder.SCRIPT | SPECIAL);
649 public static final ElementName TBREAK = new ElementName("tbreak", "tbreak", TreeBuilder.OTHER);
650 public static final ElementName VECTOR = new ElementName("vector", "vector", TreeBuilder.OTHER);
651 public static final ElementName ARTICLE = new ElementName("article", "article", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
652 public static final ElementName ANIMATE = new ElementName("animate", "animate", TreeBuilder.OTHER);
653 public static final ElementName ARCSECH = new ElementName("arcsech", "arcsech", TreeBuilder.OTHER);
654 public static final ElementName ARCCSCH = new ElementName("arccsch", "arccsch", TreeBuilder.OTHER);
655 public static final ElementName ARCTANH = new ElementName("arctanh", "arctanh", TreeBuilder.OTHER);
656 public static final ElementName ARCSINH = new ElementName("arcsinh", "arcsinh", TreeBuilder.OTHER);
657 public static final ElementName ARCCOSH = new ElementName("arccosh", "arccosh", TreeBuilder.OTHER);
658 public static final ElementName ARCCOTH = new ElementName("arccoth", "arccoth", TreeBuilder.OTHER);
659 public static final ElementName ACRONYM = new ElementName("acronym", "acronym", TreeBuilder.OTHER);
660 public static final ElementName ADDRESS = new ElementName("address", "address", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
661 public static final ElementName BGSOUND = new ElementName("bgsound", "bgsound", TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
662 public static final ElementName COMPOSE = new ElementName("compose", "compose", TreeBuilder.OTHER);
663 public static final ElementName CEILING = new ElementName("ceiling", "ceiling", TreeBuilder.OTHER);
664 public static final ElementName CSYMBOL = new ElementName("csymbol", "csymbol", TreeBuilder.OTHER);
665 public static final ElementName CAPTION = new ElementName("caption", "caption", TreeBuilder.CAPTION | SPECIAL | SCOPING);
666 public static final ElementName DISCARD = new ElementName("discard", "discard", TreeBuilder.OTHER);
667 public static final ElementName DECLARE = new ElementName("declare", "declare", TreeBuilder.OTHER);
668 public static final ElementName DETAILS = new ElementName("details", "details", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
669 public static final ElementName ELLIPSE = new ElementName("ellipse", "ellipse", TreeBuilder.OTHER);
670 public static final ElementName FEFUNCA = new ElementName("fefunca", "feFuncA", TreeBuilder.OTHER);
671 public static final ElementName FEFUNCB = new ElementName("fefuncb", "feFuncB", TreeBuilder.OTHER);
672 public static final ElementName FEBLEND = new ElementName("feblend", "feBlend", TreeBuilder.OTHER);
673 public static final ElementName FEFLOOD = new ElementName("feflood", "feFlood", TreeBuilder.OTHER);
674 public static final ElementName FEIMAGE = new ElementName("feimage", "feImage", TreeBuilder.OTHER);
675 public static final ElementName FEMERGE = new ElementName("femerge", "feMerge", TreeBuilder.OTHER);
676 public static final ElementName FEFUNCG = new ElementName("fefuncg", "feFuncG", TreeBuilder.OTHER);
677 public static final ElementName FEFUNCR = new ElementName("fefuncr", "feFuncR", TreeBuilder.OTHER);
678 public static final ElementName HANDLER = new ElementName("handler", "handler", TreeBuilder.OTHER);
679 public static final ElementName INVERSE = new ElementName("inverse", "inverse", TreeBuilder.OTHER);
680 public static final ElementName IMPLIES = new ElementName("implies", "implies", TreeBuilder.OTHER);
681 public static final ElementName ISINDEX = new ElementName("isindex", "isindex", TreeBuilder.ISINDEX | SPECIAL);
682 public static final ElementName LOGBASE = new ElementName("logbase", "logbase", TreeBuilder.OTHER);
683 public static final ElementName LISTING = new ElementName("listing", "listing", TreeBuilder.PRE_OR_LISTING | SPECIAL);
684 public static final ElementName MFENCED = new ElementName("mfenced", "mfenced", TreeBuilder.OTHER);
685 public static final ElementName MPADDED = new ElementName("mpadded", "mpadded", TreeBuilder.OTHER);
686 public static final ElementName MARQUEE = new ElementName("marquee", "marquee", TreeBuilder.MARQUEE_OR_APPLET | SPECIAL | SCOPING);
687 public static final ElementName MACTION = new ElementName("maction", "maction", TreeBuilder.OTHER);
688 public static final ElementName MSUBSUP = new ElementName("msubsup", "msubsup", TreeBuilder.OTHER);
689 public static final ElementName NOEMBED = new ElementName("noembed", "noembed", TreeBuilder.NOEMBED | SPECIAL);
690 public static final ElementName POLYGON = new ElementName("polygon", "polygon", TreeBuilder.OTHER);
691 public static final ElementName PATTERN = new ElementName("pattern", "pattern", TreeBuilder.OTHER);
692 public static final ElementName PRODUCT = new ElementName("product", "product", TreeBuilder.OTHER);
693 public static final ElementName SETDIFF = new ElementName("setdiff", "setdiff", TreeBuilder.OTHER);
694 public static final ElementName SECTION = new ElementName("section", "section", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
695 public static final ElementName SUMMARY = new ElementName("summary", "summary", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
696 public static final ElementName TENDSTO = new ElementName("tendsto", "tendsto", TreeBuilder.OTHER);
697 public static final ElementName UPLIMIT = new ElementName("uplimit", "uplimit", TreeBuilder.OTHER);
698 public static final ElementName ALTGLYPH = new ElementName("altglyph", "altGlyph", TreeBuilder.OTHER);
699 public static final ElementName BASEFONT = new ElementName("basefont", "basefont", TreeBuilder.LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
700 public static final ElementName CLIPPATH = new ElementName("clippath", "clipPath", TreeBuilder.OTHER);
701 public static final ElementName CODOMAIN = new ElementName("codomain", "codomain", TreeBuilder.OTHER);
702 public static final ElementName COLGROUP = new ElementName("colgroup", "colgroup", TreeBuilder.COLGROUP | SPECIAL | OPTIONAL_END_TAG);
703 public static final ElementName EMPTYSET = new ElementName("emptyset", "emptyset", TreeBuilder.OTHER);
704 public static final ElementName FACTOROF = new ElementName("factorof", "factorof", TreeBuilder.OTHER);
705 public static final ElementName FIELDSET = new ElementName("fieldset", "fieldset", TreeBuilder.FIELDSET | SPECIAL);
706 public static final ElementName FRAMESET = new ElementName("frameset", "frameset", TreeBuilder.FRAMESET | SPECIAL);
707 public static final ElementName FEOFFSET = new ElementName("feoffset", "feOffset", TreeBuilder.OTHER);
708 public static final ElementName GLYPHREF = new ElementName("glyphref", "glyphRef", TreeBuilder.OTHER);
709 public static final ElementName INTERVAL = new ElementName("interval", "interval", TreeBuilder.OTHER);
710 public static final ElementName INTEGERS = new ElementName("integers", "integers", TreeBuilder.OTHER);
711 public static final ElementName INFINITY = new ElementName("infinity", "infinity", TreeBuilder.OTHER);
712 public static final ElementName LISTENER = new ElementName("listener", "listener", TreeBuilder.OTHER);
713 public static final ElementName LOWLIMIT = new ElementName("lowlimit", "lowlimit", TreeBuilder.OTHER);
714 public static final ElementName METADATA = new ElementName("metadata", "metadata", TreeBuilder.OTHER);
715 public static final ElementName MENCLOSE = new ElementName("menclose", "menclose", TreeBuilder.OTHER);
716 public static final ElementName MENUITEM = new ElementName("menuitem", "menuitem", TreeBuilder.MENUITEM);
717 public static final ElementName MPHANTOM = new ElementName("mphantom", "mphantom", TreeBuilder.OTHER);
718 public static final ElementName NOFRAMES = new ElementName("noframes", "noframes", TreeBuilder.NOFRAMES | SPECIAL);
719 public static final ElementName NOSCRIPT = new ElementName("noscript", "noscript", TreeBuilder.NOSCRIPT | SPECIAL);
720 public static final ElementName OPTGROUP = new ElementName("optgroup", "optgroup", TreeBuilder.OPTGROUP | OPTIONAL_END_TAG);
721 public static final ElementName POLYLINE = new ElementName("polyline", "polyline", TreeBuilder.OTHER);
722 public static final ElementName PREFETCH = new ElementName("prefetch", "prefetch", TreeBuilder.OTHER);
723 public static final ElementName PROGRESS = new ElementName("progress", "progress", TreeBuilder.OTHER);
724 public static final ElementName PRSUBSET = new ElementName("prsubset", "prsubset", TreeBuilder.OTHER);
725 public static final ElementName QUOTIENT = new ElementName("quotient", "quotient", TreeBuilder.OTHER);
726 public static final ElementName SELECTOR = new ElementName("selector", "selector", TreeBuilder.OTHER);
727 public static final ElementName TEXTAREA = new ElementName("textarea", "textarea", TreeBuilder.TEXTAREA | SPECIAL);
728 public static final ElementName TEMPLATE = new ElementName("template", "template", TreeBuilder.TEMPLATE | SPECIAL | SCOPING);
729 public static final ElementName TEXTPATH = new ElementName("textpath", "textPath", TreeBuilder.OTHER);
730 public static final ElementName VARIANCE = new ElementName("variance", "variance", TreeBuilder.OTHER);
731 public static final ElementName ANIMATION = new ElementName("animation", "animation", TreeBuilder.OTHER);
732 public static final ElementName CONJUGATE = new ElementName("conjugate", "conjugate", TreeBuilder.OTHER);
733 public static final ElementName CONDITION = new ElementName("condition", "condition", TreeBuilder.OTHER);
734 public static final ElementName COMPLEXES = new ElementName("complexes", "complexes", TreeBuilder.OTHER);
735 public static final ElementName FONT_FACE = new ElementName("font-face", "font-face", TreeBuilder.OTHER);
736 public static final ElementName FACTORIAL = new ElementName("factorial", "factorial", TreeBuilder.OTHER);
737 public static final ElementName INTERSECT = new ElementName("intersect", "intersect", TreeBuilder.OTHER);
738 public static final ElementName IMAGINARY = new ElementName("imaginary", "imaginary", TreeBuilder.OTHER);
739 public static final ElementName LAPLACIAN = new ElementName("laplacian", "laplacian", TreeBuilder.OTHER);
740 public static final ElementName MATRIXROW = new ElementName("matrixrow", "matrixrow", TreeBuilder.OTHER);
741 public static final ElementName NOTSUBSET = new ElementName("notsubset", "notsubset", TreeBuilder.OTHER);
742 public static final ElementName OTHERWISE = new ElementName("otherwise", "otherwise", TreeBuilder.OTHER);
743 public static final ElementName PIECEWISE = new ElementName("piecewise", "piecewise", TreeBuilder.OTHER);
744 public static final ElementName PLAINTEXT = new ElementName("plaintext", "plaintext", TreeBuilder.PLAINTEXT | SPECIAL);
745 public static final ElementName RATIONALS = new ElementName("rationals", "rationals", TreeBuilder.OTHER);
746 public static final ElementName SEMANTICS = new ElementName("semantics", "semantics", TreeBuilder.OTHER);
747 public static final ElementName TRANSPOSE = new ElementName("transpose", "transpose", TreeBuilder.OTHER);
748 public static final ElementName ANNOTATION = new ElementName("annotation", "annotation", TreeBuilder.OTHER);
749 public static final ElementName BLOCKQUOTE = new ElementName("blockquote", "blockquote", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
750 public static final ElementName DIVERGENCE = new ElementName("divergence", "divergence", TreeBuilder.OTHER);
751 public static final ElementName EULERGAMMA = new ElementName("eulergamma", "eulergamma", TreeBuilder.OTHER);
752 public static final ElementName EQUIVALENT = new ElementName("equivalent", "equivalent", TreeBuilder.OTHER);
753 public static final ElementName FIGCAPTION = new ElementName("figcaption", "figcaption", TreeBuilder.ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | SPECIAL);
754 public static final ElementName IMAGINARYI = new ElementName("imaginaryi", "imaginaryi", TreeBuilder.OTHER);
755 public static final ElementName MALIGNMARK = new ElementName("malignmark", "malignmark", TreeBuilder.MGLYPH_OR_MALIGNMARK);
756 public static final ElementName MUNDEROVER = new ElementName("munderover", "munderover", TreeBuilder.OTHER);
757 public static final ElementName MLABELEDTR = new ElementName("mlabeledtr", "mlabeledtr", TreeBuilder.OTHER);
758 public static final ElementName NOTANUMBER = new ElementName("notanumber", "notanumber", TreeBuilder.OTHER);
759 public static final ElementName SOLIDCOLOR = new ElementName("solidcolor", "solidcolor", TreeBuilder.OTHER);
760 public static final ElementName ALTGLYPHDEF = new ElementName("altglyphdef", "altGlyphDef", TreeBuilder.OTHER);
761 public static final ElementName DETERMINANT = new ElementName("determinant", "determinant", TreeBuilder.OTHER);
762 public static final ElementName FEMERGENODE = new ElementName("femergenode", "feMergeNode", TreeBuilder.OTHER);
763 public static final ElementName FECOMPOSITE = new ElementName("fecomposite", "feComposite", TreeBuilder.OTHER);
764 public static final ElementName FESPOTLIGHT = new ElementName("fespotlight", "feSpotLight", TreeBuilder.OTHER);
765 public static final ElementName MALIGNGROUP = new ElementName("maligngroup", "maligngroup", TreeBuilder.OTHER);
766 public static final ElementName MPRESCRIPTS = new ElementName("mprescripts", "mprescripts", TreeBuilder.OTHER);
767 public static final ElementName MOMENTABOUT = new ElementName("momentabout", "momentabout", TreeBuilder.OTHER);
768 public static final ElementName NOTPRSUBSET = new ElementName("notprsubset", "notprsubset", TreeBuilder.OTHER);
769 public static final ElementName PARTIALDIFF = new ElementName("partialdiff", "partialdiff", TreeBuilder.OTHER);
770 public static final ElementName ALTGLYPHITEM = new ElementName("altglyphitem", "altGlyphItem", TreeBuilder.OTHER);
771 public static final ElementName ANIMATECOLOR = new ElementName("animatecolor", "animateColor", TreeBuilder.OTHER);
772 public static final ElementName DATATEMPLATE = new ElementName("datatemplate", "datatemplate", TreeBuilder.OTHER);
773 public static final ElementName EXPONENTIALE = new ElementName("exponentiale", "exponentiale", TreeBuilder.OTHER);
774 public static final ElementName FETURBULENCE = new ElementName("feturbulence", "feTurbulence", TreeBuilder.OTHER);
775 public static final ElementName FEPOINTLIGHT = new ElementName("fepointlight", "fePointLight", TreeBuilder.OTHER);
776 public static final ElementName FEDROPSHADOW = new ElementName("fedropshadow", "feDropShadow", TreeBuilder.OTHER);
777 public static final ElementName FEMORPHOLOGY = new ElementName("femorphology", "feMorphology", TreeBuilder.OTHER);
778 public static final ElementName OUTERPRODUCT = new ElementName("outerproduct", "outerproduct", TreeBuilder.OTHER);
779 public static final ElementName ANIMATEMOTION = new ElementName("animatemotion", "animateMotion", TreeBuilder.OTHER);
780 public static final ElementName COLOR_PROFILE = new ElementName("color-profile", "color-profile", TreeBuilder.OTHER);
781 public static final ElementName FONT_FACE_SRC = new ElementName("font-face-src", "font-face-src", TreeBuilder.OTHER);
782 public static final ElementName FONT_FACE_URI = new ElementName("font-face-uri", "font-face-uri", TreeBuilder.OTHER);
783 public static final ElementName FOREIGNOBJECT = new ElementName("foreignobject", "foreignObject", TreeBuilder.FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
784 public static final ElementName FECOLORMATRIX = new ElementName("fecolormatrix", "feColorMatrix", TreeBuilder.OTHER);
785 public static final ElementName MISSING_GLYPH = new ElementName("missing-glyph", "missing-glyph", TreeBuilder.OTHER);
786 public static final ElementName MMULTISCRIPTS = new ElementName("mmultiscripts", "mmultiscripts", TreeBuilder.OTHER);
787 public static final ElementName SCALARPRODUCT = new ElementName("scalarproduct", "scalarproduct", TreeBuilder.OTHER);
788 public static final ElementName VECTORPRODUCT = new ElementName("vectorproduct", "vectorproduct", TreeBuilder.OTHER);
789 public static final ElementName ANNOTATION_XML = new ElementName("annotation-xml", "annotation-xml", TreeBuilder.ANNOTATION_XML | SCOPING_AS_MATHML);
790 public static final ElementName DEFINITION_SRC = new ElementName("definition-src", "definition-src", TreeBuilder.OTHER);
791 public static final ElementName FONT_FACE_NAME = new ElementName("font-face-name", "font-face-name", TreeBuilder.OTHER);
792 public static final ElementName FEGAUSSIANBLUR = new ElementName("fegaussianblur", "feGaussianBlur", TreeBuilder.OTHER);
793 public static final ElementName FEDISTANTLIGHT = new ElementName("fedistantlight", "feDistantLight", TreeBuilder.OTHER);
794 public static final ElementName LINEARGRADIENT = new ElementName("lineargradient", "linearGradient", TreeBuilder.OTHER);
795 public static final ElementName NATURALNUMBERS = new ElementName("naturalnumbers", "naturalnumbers", TreeBuilder.OTHER);
796 public static final ElementName RADIALGRADIENT = new ElementName("radialgradient", "radialGradient", TreeBuilder.OTHER);
797 public static final ElementName ANIMATETRANSFORM = new ElementName("animatetransform", "animateTransform", TreeBuilder.OTHER);
798 public static final ElementName CARTESIANPRODUCT = new ElementName("cartesianproduct", "cartesianproduct", TreeBuilder.OTHER);
799 public static final ElementName FONT_FACE_FORMAT = new ElementName("font-face-format", "font-face-format", TreeBuilder.OTHER);
800 public static final ElementName FECONVOLVEMATRIX = new ElementName("feconvolvematrix", "feConvolveMatrix", TreeBuilder.OTHER);
801 public static final ElementName FEDIFFUSELIGHTING = new ElementName("fediffuselighting", "feDiffuseLighting", TreeBuilder.OTHER);
802 public static final ElementName FEDISPLACEMENTMAP = new ElementName("fedisplacementmap", "feDisplacementMap", TreeBuilder.OTHER);
803 public static final ElementName FESPECULARLIGHTING = new ElementName("fespecularlighting", "feSpecularLighting", TreeBuilder.OTHER);
804 public static final ElementName DOMAINOFAPPLICATION = new ElementName("domainofapplication", "domainofapplication", TreeBuilder.OTHER);
805 public static final ElementName FECOMPONENTTRANSFER = new ElementName("fecomponenttransfer", "feComponentTransfer", TreeBuilder.OTHER);
806 private final static @NoLength ElementName[] ELEMENT_NAMES = {
807 A,
808 B,
809 G,
810 I,
811 P,
812 Q,
813 S,
814 U,
815 BR,
816 CI,
817 CN,
818 DD,
819 DL,
820 DT,
821 EM,
822 EQ,
823 FN,
824 H1,
825 H2,
826 H3,
827 H4,
828 H5,
829 H6,
830 GT,
831 HR,
832 IN,
833 LI,
834 LN,
835 LT,
836 MI,
837 MN,
838 MO,
839 MS,
840 OL,
841 OR,
842 PI,
843 RP,
844 RT,
845 TD,
846 TH,
847 TR,
848 TT,
849 UL,
850 AND,
851 ARG,
852 ABS,
853 BIG,
854 BDO,
855 CSC,
856 COL,
857 COS,
858 COT,
859 DEL,
860 DFN,
861 DIR,
862 DIV,
863 EXP,
864 GCD,
865 GEQ,
866 IMG,
867 INS,
868 INT,
869 KBD,
870 LOG,
871 LCM,
872 LEQ,
873 MTD,
874 MIN,
875 MAP,
876 MTR,
877 MAX,
878 NEQ,
879 NOT,
880 NAV,
881 PRE,
882 REM,
883 SUB,
884 SEC,
885 SVG,
886 SUM,
887 SIN,
888 SEP,
889 SUP,
890 SET,
891 TAN,
892 USE,
893 VAR,
894 WBR,
895 XMP,
896 XOR,
897 AREA,
898 ABBR,
899 BASE,
900 BVAR,
901 BODY,
902 CARD,
903 CODE,
904 CITE,
905 CSCH,
906 COSH,
907 COTH,
908 CURL,
909 DESC,
910 DIFF,
911 DEFS,
912 FORM,
913 FONT,
914 GRAD,
915 HEAD,
916 HTML,
917 LINE,
918 LINK,
919 LIST,
920 META,
921 MSUB,
922 MODE,
923 MATH,
924 MARK,
925 MASK,
926 MEAN,
927 MAIN,
928 MSUP,
929 MENU,
930 MROW,
931 NONE,
932 NOBR,
933 NEST,
934 PATH,
935 PLUS,
936 RULE,
937 REAL,
938 RELN,
939 RECT,
940 ROOT,
941 RUBY,
942 SECH,
943 SINH,
944 SPAN,
945 SAMP,
946 STOP,
947 SDEV,
948 TIME,
949 TRUE,
950 TREF,
951 TANH,
952 TEXT,
953 VIEW,
954 ASIDE,
955 AUDIO,
956 APPLY,
957 EMBED,
958 FRAME,
959 FALSE,
960 FLOOR,
961 GLYPH,
962 HKERN,
963 IMAGE,
964 IDENT,
965 INPUT,
966 LABEL,
967 LIMIT,
968 MFRAC,
969 MPATH,
970 METER,
971 MOVER,
972 MINUS,
973 MROOT,
974 MSQRT,
975 MTEXT,
976 NOTIN,
977 PIECE,
978 PARAM,
979 POWER,
980 REALS,
981 STYLE,
982 SMALL,
983 THEAD,
984 TABLE,
985 TITLE,
986 TRACK,
987 TSPAN,
988 TIMES,
989 TFOOT,
990 TBODY,
991 UNION,
992 VKERN,
993 VIDEO,
994 ARCSEC,
995 ARCCSC,
996 ARCTAN,
997 ARCSIN,
998 ARCCOS,
999 APPLET,
1000 ARCCOT,
1001 APPROX,
1002 BUTTON,
1003 CIRCLE,
1004 CENTER,
1005 CURSOR,
1006 CANVAS,
1007 DIVIDE,
1008 DEGREE,
1009 DOMAIN,
1010 EXISTS,
1011 FETILE,
1012 FIGURE,
1013 FORALL,
1014 FILTER,
1015 FOOTER,
1016 HGROUP,
1017 HEADER,
1018 IFRAME,
1019 KEYGEN,
1020 LAMBDA,
1021 LEGEND,
1022 MSPACE,
1023 MTABLE,
1024 MSTYLE,
1025 MGLYPH,
1026 MEDIAN,
1027 MUNDER,
1028 MARKER,
1029 MERROR,
1030 MOMENT,
1031 MATRIX,
1032 OPTION,
1033 OBJECT,
1034 OUTPUT,
1035 PRIMES,
1036 SOURCE,
1037 STRIKE,
1038 STRONG,
1039 SWITCH,
1040 SYMBOL,
1041 SELECT,
1042 SUBSET,
1043 SCRIPT,
1044 TBREAK,
1045 VECTOR,
1046 ARTICLE,
1047 ANIMATE,
1048 ARCSECH,
1049 ARCCSCH,
1050 ARCTANH,
1051 ARCSINH,
1052 ARCCOSH,
1053 ARCCOTH,
1054 ACRONYM,
1055 ADDRESS,
1056 BGSOUND,
1057 COMPOSE,
1058 CEILING,
1059 CSYMBOL,
1060 CAPTION,
1061 DISCARD,
1062 DECLARE,
1063 DETAILS,
1064 ELLIPSE,
1065 FEFUNCA,
1066 FEFUNCB,
1067 FEBLEND,
1068 FEFLOOD,
1069 FEIMAGE,
1070 FEMERGE,
1071 FEFUNCG,
1072 FEFUNCR,
1073 HANDLER,
1074 INVERSE,
1075 IMPLIES,
1076 ISINDEX,
1077 LOGBASE,
1078 LISTING,
1079 MFENCED,
1080 MPADDED,
1081 MARQUEE,
1082 MACTION,
1083 MSUBSUP,
1084 NOEMBED,
1085 POLYGON,
1086 PATTERN,
1087 PRODUCT,
1088 SETDIFF,
1089 SECTION,
1090 SUMMARY,
1091 TENDSTO,
1092 UPLIMIT,
1093 ALTGLYPH,
1094 BASEFONT,
1095 CLIPPATH,
1096 CODOMAIN,
1097 COLGROUP,
1098 EMPTYSET,
1099 FACTOROF,
1100 FIELDSET,
1101 FRAMESET,
1102 FEOFFSET,
1103 GLYPHREF,
1104 INTERVAL,
1105 INTEGERS,
1106 INFINITY,
1107 LISTENER,
1108 LOWLIMIT,
1109 METADATA,
1110 MENCLOSE,
1111 MENUITEM,
1112 MPHANTOM,
1113 NOFRAMES,
1114 NOSCRIPT,
1115 OPTGROUP,
1116 POLYLINE,
1117 PREFETCH,
1118 PROGRESS,
1119 PRSUBSET,
1120 QUOTIENT,
1121 SELECTOR,
1122 TEXTAREA,
1123 TEMPLATE,
1124 TEXTPATH,
1125 VARIANCE,
1126 ANIMATION,
1127 CONJUGATE,
1128 CONDITION,
1129 COMPLEXES,
1130 FONT_FACE,
1131 FACTORIAL,
1132 INTERSECT,
1133 IMAGINARY,
1134 LAPLACIAN,
1135 MATRIXROW,
1136 NOTSUBSET,
1137 OTHERWISE,
1138 PIECEWISE,
1139 PLAINTEXT,
1140 RATIONALS,
1141 SEMANTICS,
1142 TRANSPOSE,
1143 ANNOTATION,
1144 BLOCKQUOTE,
1145 DIVERGENCE,
1146 EULERGAMMA,
1147 EQUIVALENT,
1148 FIGCAPTION,
1149 IMAGINARYI,
1150 MALIGNMARK,
1151 MUNDEROVER,
1152 MLABELEDTR,
1153 NOTANUMBER,
1154 SOLIDCOLOR,
1155 ALTGLYPHDEF,
1156 DETERMINANT,
1157 FEMERGENODE,
1158 FECOMPOSITE,
1159 FESPOTLIGHT,
1160 MALIGNGROUP,
1161 MPRESCRIPTS,
1162 MOMENTABOUT,
1163 NOTPRSUBSET,
1164 PARTIALDIFF,
1165 ALTGLYPHITEM,
1166 ANIMATECOLOR,
1167 DATATEMPLATE,
1168 EXPONENTIALE,
1169 FETURBULENCE,
1170 FEPOINTLIGHT,
1171 FEDROPSHADOW,
1172 FEMORPHOLOGY,
1173 OUTERPRODUCT,
1174 ANIMATEMOTION,
1175 COLOR_PROFILE,
1176 FONT_FACE_SRC,
1177 FONT_FACE_URI,
1178 FOREIGNOBJECT,
1179 FECOLORMATRIX,
1180 MISSING_GLYPH,
1181 MMULTISCRIPTS,
1182 SCALARPRODUCT,
1183 VECTORPRODUCT,
1184 ANNOTATION_XML,
1185 DEFINITION_SRC,
1186 FONT_FACE_NAME,
1187 FEGAUSSIANBLUR,
1188 FEDISTANTLIGHT,
1189 LINEARGRADIENT,
1190 NATURALNUMBERS,
1191 RADIALGRADIENT,
1192 ANIMATETRANSFORM,
1193 CARTESIANPRODUCT,
1194 FONT_FACE_FORMAT,
1195 FECONVOLVEMATRIX,
1196 FEDIFFUSELIGHTING,
1197 FEDISPLACEMENTMAP,
1198 FESPECULARLIGHTING,
1199 DOMAINOFAPPLICATION,
1200 FECOMPONENTTRANSFER,
1201 };
1202 private final static int[] ELEMENT_HASHES = {
1203 1057,
1204 1090,
1205 1255,
1206 1321,
1207 1552,
1208 1585,
1209 1651,
1210 1717,
1211 68162,
1212 68899,
1213 69059,
1214 69764,
1215 70020,
1216 70276,
1217 71077,
1218 71205,
1219 72134,
1220 72232,
1221 72264,
1222 72296,
1223 72328,
1224 72360,
1225 72392,
1226 73351,
1227 74312,
1228 75209,
1229 78124,
1230 78284,
1231 78476,
1232 79149,
1233 79309,
1234 79341,
1235 79469,
1236 81295,
1237 81487,
1238 82224,
1239 84498,
1240 84626,
1241 86164,
1242 86292,
1243 86612,
1244 86676,
1245 87445,
1246 3183041,
1247 3186241,
1248 3198017,
1249 3218722,
1250 3226754,
1251 3247715,
1252 3256803,
1253 3263971,
1254 3264995,
1255 3289252,
1256 3291332,
1257 3295524,
1258 3299620,
1259 3326725,
1260 3379303,
1261 3392679,
1262 3448233,
1263 3460553,
1264 3461577,
1265 3510347,
1266 3546604,
1267 3552364,
1268 3556524,
1269 3576461,
1270 3586349,
1271 3588141,
1272 3590797,
1273 3596333,
1274 3622062,
1275 3625454,
1276 3627054,
1277 3675728,
1278 3749042,
1279 3771059,
1280 3771571,
1281 3776211,
1282 3782323,
1283 3782963,
1284 3784883,
1285 3785395,
1286 3788979,
1287 3815476,
1288 3839605,
1289 3885110,
1290 3917911,
1291 3948984,
1292 3951096,
1293 135304769,
1294 135858241,
1295 136498210,
1296 136906434,
1297 137138658,
1298 137512995,
1299 137531875,
1300 137548067,
1301 137629283,
1302 137645539,
1303 137646563,
1304 137775779,
1305 138529956,
1306 138615076,
1307 139040932,
1308 140954086,
1309 141179366,
1310 141690439,
1311 142738600,
1312 143013512,
1313 146979116,
1314 147175724,
1315 147475756,
1316 147902637,
1317 147936877,
1318 148017645,
1319 148131885,
1320 148228141,
1321 148229165,
1322 148309165,
1323 148317229,
1324 148395629,
1325 148551853,
1326 148618829,
1327 149076462,
1328 149490158,
1329 149572782,
1330 151277616,
1331 151639440,
1332 153268914,
1333 153486514,
1334 153563314,
1335 153750706,
1336 153763314,
1337 153914034,
1338 154406067,
1339 154417459,
1340 154600979,
1341 154678323,
1342 154680979,
1343 154866835,
1344 155366708,
1345 155375188,
1346 155391572,
1347 155465780,
1348 155869364,
1349 158045494,
1350 168988979,
1351 169321621,
1352 169652752,
1353 173151309,
1354 174240818,
1355 174247297,
1356 174669292,
1357 175391532,
1358 176638123,
1359 177380397,
1360 177879204,
1361 177886734,
1362 180753473,
1363 181020073,
1364 181503558,
1365 181686320,
1366 181999237,
1367 181999311,
1368 182048201,
1369 182074866,
1370 182078003,
1371 182083764,
1372 182920847,
1373 184716457,
1374 184976961,
1375 185145071,
1376 187281445,
1377 187872052,
1378 188100653,
1379 188875944,
1380 188919873,
1381 188920457,
1382 189107250,
1383 189203987,
1384 189371817,
1385 189414886,
1386 189567458,
1387 190266670,
1388 191318187,
1389 191337609,
1390 202479203,
1391 202493027,
1392 202835587,
1393 202843747,
1394 203013219,
1395 203036048,
1396 203045987,
1397 203177552,
1398 203898516,
1399 204648562,
1400 205067918,
1401 205078130,
1402 205096654,
1403 205689142,
1404 205690439,
1405 205988909,
1406 207213161,
1407 207794484,
1408 207800999,
1409 208023602,
1410 208213644,
1411 208213647,
1412 210261490,
1413 210310273,
1414 210940978,
1415 213325049,
1416 213946445,
1417 214055079,
1418 215125040,
1419 215134273,
1420 215135028,
1421 215237420,
1422 215418148,
1423 215553166,
1424 215553394,
1425 215563858,
1426 215627949,
1427 215754324,
1428 217529652,
1429 217713834,
1430 217732628,
1431 218731945,
1432 221417045,
1433 221424946,
1434 221493746,
1435 221515401,
1436 221658189,
1437 221908140,
1438 221910626,
1439 221921586,
1440 222659762,
1441 225001091,
1442 236105833,
1443 236113965,
1444 236194995,
1445 236195427,
1446 236206132,
1447 236206387,
1448 236211683,
1449 236212707,
1450 236381647,
1451 236571826,
1452 237124271,
1453 238210544,
1454 238270764,
1455 238435405,
1456 238501172,
1457 239224867,
1458 239257644,
1459 239710497,
1460 240307721,
1461 241208789,
1462 241241557,
1463 241318060,
1464 241319404,
1465 241343533,
1466 241344069,
1467 241405397,
1468 241765845,
1469 243864964,
1470 244502085,
1471 244946220,
1472 245109902,
1473 247647266,
1474 247707956,
1475 248648814,
1476 248648836,
1477 248682161,
1478 248986932,
1479 249058914,
1480 249697357,
1481 252132601,
1482 252135604,
1483 252317348,
1484 255007012,
1485 255278388,
1486 255641645,
1487 256365156,
1488 257566121,
1489 269763372,
1490 271202790,
1491 271863856,
1492 272049197,
1493 272127474,
1494 274339449,
1495 274939471,
1496 275388004,
1497 275388005,
1498 275388006,
1499 275977800,
1500 278267602,
1501 278513831,
1502 278712622,
1503 281613765,
1504 281683369,
1505 282120228,
1506 282250732,
1507 282498697,
1508 282508942,
1509 283743649,
1510 283787570,
1511 284710386,
1512 285391148,
1513 285478533,
1514 285854898,
1515 285873762,
1516 286931113,
1517 288964227,
1518 289445441,
1519 289591340,
1520 289689648,
1521 291671489,
1522 303512884,
1523 305319975,
1524 305610036,
1525 305764101,
1526 308448294,
1527 308675890,
1528 312085683,
1529 312264750,
1530 315032867,
1531 316391000,
1532 317331042,
1533 317902135,
1534 318950711,
1535 319447220,
1536 321499182,
1537 322538804,
1538 323145200,
1539 337067316,
1540 337826293,
1541 339905989,
1542 340833697,
1543 341457068,
1544 342310196,
1545 345302593,
1546 349554733,
1547 349771471,
1548 349786245,
1549 350819405,
1550 356072847,
1551 370349192,
1552 373962798,
1553 375558638,
1554 375574835,
1555 376053993,
1556 383276530,
1557 383373833,
1558 383407586,
1559 384439906,
1560 386079012,
1561 404133513,
1562 404307343,
1563 407031852,
1564 408072233,
1565 409112005,
1566 409608425,
1567 409713793,
1568 409771500,
1569 419040932,
1570 437730612,
1571 439529766,
1572 442616365,
1573 442813037,
1574 443157674,
1575 443295316,
1576 450118444,
1577 450482697,
1578 456789668,
1579 459935396,
1580 471217869,
1581 474073645,
1582 476230702,
1583 476665218,
1584 476717289,
1585 483014825,
1586 485083298,
1587 489306281,
1588 538364390,
1589 540675748,
1590 543819186,
1591 543958612,
1592 576960820,
1593 577242548,
1594 610515252,
1595 642202932,
1596 644420819,
1597 };
1598 }