#include "htmlattrs.h"
struct attrs {
const char *name;
int id;
};
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static unsigned int
hash_attr (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 10, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 30, 170, 10,
45, 0, 120, 55, 100, 0, 0, 90, 30, 360,
0, 0, 0, 0, 215, 5, 0, 65, 20, 35,
25, 15, 0, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382
};
register int hval = len;
switch (hval)
{
default:
case 15:
hval += asso_values[(unsigned char)str[14]];
case 14:
hval += asso_values[(unsigned char)str[13]];
case 13:
hval += asso_values[(unsigned char)str[12]];
case 12:
hval += asso_values[(unsigned char)str[11]];
case 11:
hval += asso_values[(unsigned char)str[10]];
case 10:
hval += asso_values[(unsigned char)str[9]];
case 9:
hval += asso_values[(unsigned char)str[8]];
case 8:
hval += asso_values[(unsigned char)str[7]];
case 7:
hval += asso_values[(unsigned char)str[6]];
case 6:
hval += asso_values[(unsigned char)str[5]];
case 5:
hval += asso_values[(unsigned char)str[4]];
case 4:
hval += asso_values[(unsigned char)str[3]];
case 3:
hval += asso_values[(unsigned char)str[2]];
case 2:
hval += asso_values[(unsigned char)str[1]];
case 1:
hval += asso_values[(unsigned char)str[0]];
break;
}
return hval;
}
#ifdef __GNUC__
__inline
#endif
const struct attrs *
findAttr (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 181,
MIN_WORD_LENGTH = 2,
MAX_WORD_LENGTH = 15,
MIN_HASH_VALUE = 3,
MAX_HASH_VALUE = 1381
};
static const struct attrs wordlist_attr[] =
{
{"top", ATTR_TOP},
{"size", ATTR_SIZE},
{"cite", ATTR_CITE},
{"content", ATTR_CONTENT},
{"type", ATTR_TYPE},
{"scope", ATTR_SCOPE},
{"text", ATTR_TEXT},
{"oncopy", ATTR_ONCOPY},
{"enctype", ATTR_ENCTYPE},
{"loop", ATTR_LOOP},
{"title", ATTR_TITLE},
{"span", ATTR_SPAN},
{"onpaste", ATTR_ONPASTE},
{"action", ATTR_ACTION},
{"id", ATTR_ID},
{"cols", ATTR_COLS},
{"onselect", ATTR_ONSELECT},
{"style", ATTR_STYLE},
{"accept", ATTR_ACCEPT},
{"code", ATTR_CODE},
{"nosave", ATTR_NOSAVE},
{"alt", ATTR_ALT},
{"axis", ATTR_AXIS},
{"plain", ATTR_PLAIN},
{"vspace", ATTR_VSPACE},
{"oninput", ATTR_ONINPUT},
{"codetype", ATTR_CODETYPE},
{"oncut", ATTR_ONCUT},
{"colspan", ATTR_COLSPAN},
{"class", ATTR_CLASS},
{"z-index", ATTR_Z_INDEX},
{"selected", ATTR_SELECTED},
{"pagey", ATTR_PAGEY},
{"data", ATTR_DATA},
{"onload", ATTR_ONLOAD},
{"pagex", ATTR_PAGEX},
{"lang", ATTR_LANG},
{"align", ATTR_ALIGN},
{"link", ATTR_LINK},
{"keytype", ATTR_KEYTYPE},
{"classid", ATTR_CLASSID},
{"shape", ATTR_SHAPE},
{"valign", ATTR_VALIGN},
{"vlink", ATTR_VLINK},
{"onclick", ATTR_ONCLICK},
{"value", ATTR_VALUE},
{"hspace", ATTR_HSPACE},
{"longdesc", ATTR_LONGDESC},
{"left", ATTR_LEFT},
{"alink", ATTR_ALINK},
{"autosave", ATTR_AUTOSAVE},
{"face", ATTR_FACE},
{"valuetype", ATTR_VALUETYPE},
{"accesskey", ATTR_ACCESSKEY},
{"onkeyup", ATTR_ONKEYUP},
{"onunload", ATTR_ONUNLOAD},
{"cellspacing", ATTR_CELLSPACING},
{"width", ATTR_WIDTH},
{"object", ATTR_OBJECT},
{"noshade", ATTR_NOSHADE},
{"onkeydown", ATTR_ONKEYDOWN},
{"hidden", ATTR_HIDDEN},
{"unknown", ATTR_UNKNOWN},
{"onchange", ATTR_ONCHANGE},
{"http-equiv", ATTR_HTTP_EQUIV},
{"onfocus", ATTR_ONFOCUS},
{"onreset", ATTR_ONRESET},
{"noresize", ATTR_NORESIZE},
{"onresize", ATTR_ONRESIZE},
{"src", ATTR_SRC},
{"rev", ATTR_REV},
{"precision", ATTR_PRECISION},
{"pluginpage", ATTR_PLUGINPAGE},
{"version", ATTR_VERSION},
{"rel", ATTR_REL},
{"visibility", ATTR_VISIBILITY},
{"pluginspage", ATTR_PLUGINSPAGE},
{"start", ATTR_START},
{"cellpadding", ATTR_CELLPADDING},
{"rows", ATTR_ROWS},
{"color", ATTR_COLOR},
{"height", ATTR_HEIGHT},
{"checked", ATTR_CHECKED},
{"dir", ATTR_DIR},
{"challenge", ATTR_CHALLENGE},
{"label", ATTR_LABEL},
{"ondrop", ATTR_ONDROP},
{"codebase", ATTR_CODEBASE},
{"standby", ATTR_STANDBY},
{"language", ATTR_LANGUAGE},
{"tabindex", ATTR_TABINDEX},
{"direction", ATTR_DIRECTION},
{"coords", ATTR_COORDS},
{"wrap", ATTR_WRAP},
{"nowrap", ATTR_NOWRAP},
{"clear", ATTR_CLEAR},
{"rowspan", ATTR_ROWSPAN},
{"onscroll", ATTR_ONSCROLL},
{"contenteditable", ATTR_CONTENTEDITABLE},
{"target", ATTR_TARGET},
{"onselectstart", ATTR_ONSELECTSTART},
{"rules", ATTR_RULES},
{"results", ATTR_RESULTS},
{"disabled", ATTR_DISABLED},
{"declare", ATTR_DECLARE},
{"for", ATTR_FOR},
{"truespeed", ATTR_TRUESPEED},
{"onkeypress", ATTR_ONKEYPRESS},
{"readonly", ATTR_READONLY},
{"ondrag", ATTR_ONDRAG},
{"scrolling", ATTR_SCROLLING},
{"char", ATTR_CHAR},
{"min", ATTR_MIN},
{"charset", ATTR_CHARSET},
{"onsearch", ATTR_ONSEARCH},
{"profile", ATTR_PROFILE},
{"archive", ATTR_ARCHIVE},
{"composite", ATTR_COMPOSITE},
{"defer", ATTR_DEFER},
{"name", ATTR_NAME},
{"ondblclick", ATTR_ONDBLCLICK},
{"ondragend", ATTR_ONDRAGEND},
{"ismap", ATTR_ISMAP},
{"headers", ATTR_HEADERS},
{"compact", ATTR_COMPACT},
{"max", ATTR_MAX},
{"scrolldelay", ATTR_SCROLLDELAY},
{"onabort", ATTR_ONABORT},
{"accept-charset", ATTR_ACCEPT_CHARSET},
{"ondragleave", ATTR_ONDRAGLEAVE},
{"href", ATTR_HREF},
{"media", ATTR_MEDIA},
{"nohref", ATTR_NOHREF},
{"datetime", ATTR_DATETIME},
{"usemap", ATTR_USEMAP},
{"pluginurl", ATTR_PLUGINURL},
{"placeholder", ATTR_PLACEHOLDER},
{"oversrc", ATTR_OVERSRC},
{"oncontextmenu", ATTR_ONCONTEXTMENU},
{"scheme", ATTR_SCHEME},
{"onblur", ATTR_ONBLUR},
{"bgcolor", ATTR_BGCOLOR},
{"multiple", ATTR_MULTIPLE},
{"html", ATTR_HTML},
{"onmouseup", ATTR_ONMOUSEUP},
{"onmouseout", ATTR_ONMOUSEOUT},
{"autocomplete", ATTR_AUTOCOMPLETE},
{"method", ATTR_METHOD},
{"onmousedown", ATTR_ONMOUSEDOWN},
{"onbeforecopy", ATTR_ONBEFORECOPY},
{"behavior", ATTR_BEHAVIOR},
{"onbeforepaste", ATTR_ONBEFOREPASTE},
{"hreflang", ATTR_HREFLANG},
{"ondragenter", ATTR_ONDRAGENTER},
{"prompt", ATTR_PROMPT},
{"abbr", ATTR_ABBR},
{"ondragover", ATTR_ONDRAGOVER},
{"onbeforecut", ATTR_ONBEFORECUT},
{"charoff", ATTR_CHAROFF},
{"ondragstart", ATTR_ONDRAGSTART},
{"onsubmit", ATTR_ONSUBMIT},
{"maxlength", ATTR_MAXLENGTH},
{"mayscript", ATTR_MAYSCRIPT},
{"border", ATTR_BORDER},
{"onerror", ATTR_ONERROR},
{"incremental", ATTR_INCREMENTAL},
{"topmargin", ATTR_TOPMARGIN},
{"bgproperties", ATTR_BGPROPERTIES},
{"onmouseover", ATTR_ONMOUSEOVER},
{"background", ATTR_BACKGROUND},
{"cellborder", ATTR_CELLBORDER},
{"frame", ATTR_FRAME},
{"scrollamount", ATTR_SCROLLAMOUNT},
{"leftmargin", ATTR_LEFTMARGIN},
{"onmousemove", ATTR_ONMOUSEMOVE},
{"marginwidth", ATTR_MARGINWIDTH},
{"tableborder", ATTR_TABLEBORDER},
{"bordercolor", ATTR_BORDERCOLOR},
{"marginheight", ATTR_MARGINHEIGHT},
{"summary", ATTR_SUMMARY},
{"frameborder", ATTR_FRAMEBORDER}
};
static const short lookup[] =
{
-1, -1, -1, 0, -1, -1, -1, -1,
-1, 1, -1, -1, -1, -1, 2, -1,
-1, 3, -1, 4, 5, -1, -1, -1,
-1, -1, -1, -1, -1, 6, -1, 7,
8, -1, 9, 10, -1, -1, -1, 11,
-1, -1, 12, -1, -1, -1, 13, 14,
-1, 15, -1, -1, -1, 16, -1, 17,
18, -1, -1, 19, -1, 20, -1, 21,
22, 23, -1, -1, -1, -1, -1, 24,
25, -1, -1, -1, -1, -1, 26, -1,
27, -1, 28, -1, -1, 29, -1, 30,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 31, -1, -1, -1, -1, -1,
-1, 32, -1, -1, -1, 33, -1, 34,
-1, -1, -1, 35, -1, -1, -1, 36,
37, -1, -1, -1, 38, -1, -1, 39,
-1, -1, -1, -1, 40, -1, -1, -1,
-1, -1, -1, -1, 41, 42, -1, -1,
-1, 43, -1, 44, -1, -1, 45, 46,
-1, 47, 48, 49, -1, -1, 50, -1,
-1, -1, -1, -1, 51, -1, -1, -1,
-1, 52, -1, -1, -1, -1, 53, -1,
-1, 54, 55, -1, -1, 56, -1, -1,
-1, 57, 58, 59, -1, -1, -1, -1,
-1, -1, 60, -1, 61, 62, -1, -1,
-1, -1, -1, 63, -1, 64, -1, 65,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 66, -411, -114, -2, -1,
-1, 69, -1, -1, -1, -1, 70, 71,
-1, -1, -1, -1, -1, 72, -1, 73,
74, -1, 75, 76, -1, -1, -1, 77,
78, -1, -1, 79, 80, 81, 82, 83,
84, 85, 86, -1, 87, -1, -1, -1,
88, 89, -1, -1, -1, -1, 90, 91,
-1, 92, -1, -1, 93, -1, 94, -1,
-1, -1, 95, -1, 96, -1, -1, -1,
-1, -1, 97, -1, 98, -1, -1, -1,
-1, -1, 99, -1, 100, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
101, -1, -1, -1, -1, -1, -1, 102,
-1, -1, -1, -1, -1, 103, -1, -1,
-1, 104, 105, 106, 107, -1, -1, 108,
-1, -1, -1, -1, -1, -1, -1, 109,
-1, -1, 110, -1, -1, -1, -1, 111,
-1, -1, -1, 112, -1, -1, -1, 113,
114, -1, -1, -1, 115, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 116, -1,
117, 118, -1, -1, -1, -1, -1, -1,
-1, -1, 119, 120, -1, -1, -1, 121,
122, -1, 123, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, 124, 125, -1, -1, 126, 127, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 128, -1, 129, -1, -1, 130,
131, 132, -1, 133, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 134, -1, -1, 135, -1, 136,
137, 138, -1, -1, -1, -1, -1, -1,
-1, 139, -1, -1, -1, -1, 140, 141,
-1, -1, -1, -1, -1, 142, 143, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
144, 145, -1, 146, -1, -1, -1, 147,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, 148, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 149, 150,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, 151, -1, -1, -1, -1, 152, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 153, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 154, -1, -1,
-1, -1, -1, -1, -1, 155, 156, 157,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 158, -1, -1, -1, 159, -1,
160, 161, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 162, -1, -1, -1,
-1, -1, -1, 163, 164, -1, -1, -1,
165, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 166, -1, -1,
167, -1, -1, -1, 168, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 169, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 170, -1, -1,
-1, -1, 171, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 172, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 173, 174, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 175, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 176, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 177,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 178,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, 179, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 180
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash_attr (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register int index = lookup[key];
if (index >= 0)
{
register const char *s = wordlist_attr[index].name;
if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return &wordlist_attr[index];
}
else if (index < -TOTAL_KEYWORDS)
{
register int offset = - 1 - TOTAL_KEYWORDS - index;
register const struct attrs *wordptr = &wordlist_attr[TOTAL_KEYWORDS + lookup[offset]];
register const struct attrs *wordendptr = wordptr + -lookup[offset + 1];
while (wordptr < wordendptr)
{
register const char *s = wordptr->name;
if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return wordptr;
wordptr++;
}
}
}
}
return 0;
}
static const char * const attrList[] = {
"ABBR",
"ACCEPT-CHARSET",
"ACCEPT",
"ACCESSKEY",
"ACTION",
"ALIGN",
"ALINK",
"ALT",
"ARCHIVE",
"AUTOCOMPLETE",
"AUTOSAVE",
"AXIS",
"BACKGROUND",
"BEHAVIOR",
"BGCOLOR",
"BGPROPERTIES",
"BORDER",
"BORDERCOLOR",
"CELLPADDING",
"CELLSPACING",
"CHAR",
"CHALLENGE",
"CHAROFF",
"CHARSET",
"CHECKED",
"CELLBORDER",
"CITE",
"CLASS",
"CLASSID",
"CLEAR",
"CODE",
"CODEBASE",
"CODETYPE",
"COLOR",
"COLS",
"COLSPAN",
"COMPACT",
"COMPOSITE",
"CONTENT",
"CONTENTEDITABLE",
"COORDS",
"DATA",
"DATETIME",
"DECLARE",
"DEFER",
"DIR",
"DIRECTION",
"DISABLED",
"ENCTYPE",
"FACE",
"FOR",
"FRAME",
"FRAMEBORDER",
"HEADERS",
"HEIGHT",
"HIDDEN",
"HREF",
"HREFLANG",
"HSPACE",
"HTML",
"HTTP-EQUIV",
"ID",
"INCREMENTAL",
"ISMAP",
"KEYTYPE",
"LABEL",
"LANG",
"LANGUAGE",
"LEFT",
"LEFTMARGIN",
"LINK",
"LONGDESC",
"LOOP",
"MARGINHEIGHT",
"MARGINWIDTH",
"MAX",
"MAXLENGTH",
"MAYSCRIPT",
"MEDIA",
"METHOD",
"MIN",
"MULTIPLE",
"NAME",
"NOHREF",
"NORESIZE",
"NOSAVE",
"NOSHADE",
"NOWRAP",
"OBJECT",
"ONABORT",
"ONBEFORECOPY",
"ONBEFORECUT",
"ONBEFOREPASTE",
"ONBLUR",
"ONCHANGE",
"ONCLICK",
"ONCONTEXTMENU",
"ONCOPY",
"ONCUT",
"ONDBLCLICK",
"ONDRAG",
"ONDRAGEND",
"ONDRAGENTER",
"ONDRAGLEAVE",
"ONDRAGOVER",
"ONDRAGSTART",
"ONDROP",
"ONERROR",
"ONFOCUS",
"ONINPUT",
"ONKEYDOWN",
"ONKEYPRESS",
"ONKEYUP",
"ONLOAD",
"ONMOUSEDOWN",
"ONMOUSEMOVE",
"ONMOUSEOUT",
"ONMOUSEOVER",
"ONMOUSEUP",
"ONPASTE",
"ONRESET",
"ONRESIZE",
"ONSCROLL",
"ONSEARCH",
"ONSELECT",
"ONSELECTSTART",
"ONSUBMIT",
"ONUNLOAD",
"OVERSRC",
"PAGEX",
"PAGEY",
"PLACEHOLDER",
"PLAIN",
"PLUGINPAGE",
"PLUGINSPAGE",
"PLUGINURL",
"PRECISION",
"PROFILE",
"PROMPT",
"READONLY",
"REL",
"RESULTS",
"REV",
"ROWS",
"ROWSPAN",
"RULES",
"SCHEME",
"SCOPE",
"SCROLLAMOUNT",
"SCROLLDELAY",
"SCROLLING",
"SELECTED",
"SHAPE",
"SIZE",
"SPAN",
"SRC",
"STANDBY",
"START",
"STYLE",
"SUMMARY",
"TABINDEX",
"TABLEBORDER",
"TARGET",
"TEXT",
"TITLE",
"TOP",
"TOPMARGIN",
"TRUESPEED",
"TYPE",
"UNKNOWN",
"USEMAP",
"VALIGN",
"VALUE",
"VALUETYPE",
"VERSION",
"VISIBILITY",
"VLINK",
"VSPACE",
"WIDTH",
"WRAP",
"Z-INDEX",
0
};
DOM::DOMString getAttrName(unsigned short id)
{
return attrList[id-1];
}