[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:06:51 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit de8e53129aa33881dad635f900adeff8e0251c6f
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 22 21:28:28 2002 +0000

    	- started checking in all our generated source files for the benefit of B&I
    
            * .cvsignore:
            * WebCore-combined.exp: Added.
            * khtml/css/.cvsignore:
            * khtml/css/cssproperties.c: Added.
            * khtml/css/cssproperties.h: Added.
            * khtml/css/cssvalues.c: Added.
            * khtml/css/cssvalues.h: Added.
            * khtml/ecma/.cvsignore:
            * khtml/ecma/kjs_css.lut.h: Added.
            * khtml/ecma/kjs_dom.lut.h: Added.
            * khtml/ecma/kjs_events.lut.h: Added.
            * khtml/ecma/kjs_html.lut.h: Added.
            * khtml/ecma/kjs_navigator.lut.h: Added.
            * khtml/ecma/kjs_range.lut.h: Added.
            * khtml/ecma/kjs_traversal.lut.h: Added.
            * khtml/ecma/kjs_views.lut.h: Added.
            * khtml/ecma/kjs_window.lut.h: Added.
            * khtml/html/.cvsignore:
            * khtml/html/kentities.c: Added.
            * khtml/misc/.cvsignore:
            * khtml/misc/htmlattrs.c: Added.
            * khtml/misc/htmlattrs.h: Added.
            * khtml/misc/htmltags.c: Added.
            * khtml/misc/htmltags.h: Added.
            * kwq/.cvsignore:
            * kwq/KWQCharsetData.c: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/.cvsignore b/WebCore/.cvsignore
index ecc07d2..221fc8c 100644
--- a/WebCore/.cvsignore
+++ b/WebCore/.cvsignore
@@ -1,5 +1,4 @@
 Makefile
 Makefile.in
-WebCore-combined.exp
 previous-clean-timestamp
 previous-js-clean-timestamp
diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 7a3d62f..539f71d 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,34 @@
+2002-11-22  Darin Adler  <darin at apple.com>
+
+	- started checking in all our generated source files for the benefit of B&I
+
+        * .cvsignore:
+        * WebCore-combined.exp: Added.
+        * khtml/css/.cvsignore:
+        * khtml/css/cssproperties.c: Added.
+        * khtml/css/cssproperties.h: Added.
+        * khtml/css/cssvalues.c: Added.
+        * khtml/css/cssvalues.h: Added.
+        * khtml/ecma/.cvsignore:
+        * khtml/ecma/kjs_css.lut.h: Added.
+        * khtml/ecma/kjs_dom.lut.h: Added.
+        * khtml/ecma/kjs_events.lut.h: Added.
+        * khtml/ecma/kjs_html.lut.h: Added.
+        * khtml/ecma/kjs_navigator.lut.h: Added.
+        * khtml/ecma/kjs_range.lut.h: Added.
+        * khtml/ecma/kjs_traversal.lut.h: Added.
+        * khtml/ecma/kjs_views.lut.h: Added.
+        * khtml/ecma/kjs_window.lut.h: Added.
+        * khtml/html/.cvsignore:
+        * khtml/html/kentities.c: Added.
+        * khtml/misc/.cvsignore:
+        * khtml/misc/htmlattrs.c: Added.
+        * khtml/misc/htmlattrs.h: Added.
+        * khtml/misc/htmltags.c: Added.
+        * khtml/misc/htmltags.h: Added.
+        * kwq/.cvsignore:
+        * kwq/KWQCharsetData.c: Added.
+
 2002-11-22  David Hyatt  <hyatt at apple.com>
 
 	Fix for the table/form regressions.  Also landing beginnings
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 7a3d62f..539f71d 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,34 @@
+2002-11-22  Darin Adler  <darin at apple.com>
+
+	- started checking in all our generated source files for the benefit of B&I
+
+        * .cvsignore:
+        * WebCore-combined.exp: Added.
+        * khtml/css/.cvsignore:
+        * khtml/css/cssproperties.c: Added.
+        * khtml/css/cssproperties.h: Added.
+        * khtml/css/cssvalues.c: Added.
+        * khtml/css/cssvalues.h: Added.
+        * khtml/ecma/.cvsignore:
+        * khtml/ecma/kjs_css.lut.h: Added.
+        * khtml/ecma/kjs_dom.lut.h: Added.
+        * khtml/ecma/kjs_events.lut.h: Added.
+        * khtml/ecma/kjs_html.lut.h: Added.
+        * khtml/ecma/kjs_navigator.lut.h: Added.
+        * khtml/ecma/kjs_range.lut.h: Added.
+        * khtml/ecma/kjs_traversal.lut.h: Added.
+        * khtml/ecma/kjs_views.lut.h: Added.
+        * khtml/ecma/kjs_window.lut.h: Added.
+        * khtml/html/.cvsignore:
+        * khtml/html/kentities.c: Added.
+        * khtml/misc/.cvsignore:
+        * khtml/misc/htmlattrs.c: Added.
+        * khtml/misc/htmlattrs.h: Added.
+        * khtml/misc/htmltags.c: Added.
+        * khtml/misc/htmltags.h: Added.
+        * kwq/.cvsignore:
+        * kwq/KWQCharsetData.c: Added.
+
 2002-11-22  David Hyatt  <hyatt at apple.com>
 
 	Fix for the table/form regressions.  Also landing beginnings
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 7a3d62f..539f71d 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,34 @@
+2002-11-22  Darin Adler  <darin at apple.com>
+
+	- started checking in all our generated source files for the benefit of B&I
+
+        * .cvsignore:
+        * WebCore-combined.exp: Added.
+        * khtml/css/.cvsignore:
+        * khtml/css/cssproperties.c: Added.
+        * khtml/css/cssproperties.h: Added.
+        * khtml/css/cssvalues.c: Added.
+        * khtml/css/cssvalues.h: Added.
+        * khtml/ecma/.cvsignore:
+        * khtml/ecma/kjs_css.lut.h: Added.
+        * khtml/ecma/kjs_dom.lut.h: Added.
+        * khtml/ecma/kjs_events.lut.h: Added.
+        * khtml/ecma/kjs_html.lut.h: Added.
+        * khtml/ecma/kjs_navigator.lut.h: Added.
+        * khtml/ecma/kjs_range.lut.h: Added.
+        * khtml/ecma/kjs_traversal.lut.h: Added.
+        * khtml/ecma/kjs_views.lut.h: Added.
+        * khtml/ecma/kjs_window.lut.h: Added.
+        * khtml/html/.cvsignore:
+        * khtml/html/kentities.c: Added.
+        * khtml/misc/.cvsignore:
+        * khtml/misc/htmlattrs.c: Added.
+        * khtml/misc/htmlattrs.h: Added.
+        * khtml/misc/htmltags.c: Added.
+        * khtml/misc/htmltags.h: Added.
+        * kwq/.cvsignore:
+        * kwq/KWQCharsetData.c: Added.
+
 2002-11-22  David Hyatt  <hyatt at apple.com>
 
 	Fix for the table/form regressions.  Also landing beginnings
diff --git a/WebCore/WebCore-tests.exp b/WebCore/WebCore-combined.exp
similarity index 91%
copy from WebCore/WebCore-tests.exp
copy to WebCore/WebCore-combined.exp
index 1a364a6..789c2a7 100644
--- a/WebCore/WebCore-tests.exp
+++ b/WebCore/WebCore-combined.exp
@@ -1,3 +1,25 @@
+.objc_class_name_WebCoreBridge
+.objc_class_name_WebCoreCache
+.objc_class_name_WebCoreCookieAdapter
+.objc_class_name_WebCoreEncodings
+.objc_class_name_WebCoreHistory
+.objc_class_name_WebCoreImageRendererFactory
+.objc_class_name_WebCoreJavaScript
+.objc_class_name_WebCoreSettings
+.objc_class_name_WebCoreTestController
+.objc_class_name_WebCoreTextRendererFactory
+.objc_class_name_WebCoreViewFactory
+_WebCoreFileButtonFilenameChanged
+_WebCoreUnicodeCategoryFunction
+_WebCoreUnicodeCombiningClassFunction
+_WebCoreUnicodeDecompositionTagFunction
+_WebCoreUnicodeDigitValueFunction
+_WebCoreUnicodeDirectionFunction
+_WebCoreUnicodeJoiningFunction
+_WebCoreUnicodeLowerFunction
+_WebCoreUnicodeMirroredCharFunction
+_WebCoreUnicodeMirroredFunction
+_WebCoreUnicodeUpperFunction
 __ZN10KWQMapImpl11endInternalEv
 __ZN10KWQMapImpl13beginInternalEv
 __ZN10KWQMapImpl13clearInternalEv
diff --git a/WebCore/khtml/css/.cvsignore b/WebCore/khtml/css/.cvsignore
index 3c0f24c..e972bb7 100644
--- a/WebCore/khtml/css/.cvsignore
+++ b/WebCore/khtml/css/.cvsignore
@@ -1,11 +1,7 @@
 Makefile.in
 Makefile
 *.gperf
-cssvalues.c
 cssvalues.strip
-cssvalues.h
-cssproperties.c
 cssproperties.strip
-cssproperties.h
 .deps
 *-stamp
diff --git a/WebCore/khtml/css/cssproperties.c b/WebCore/khtml/css/cssproperties.c
new file mode 100644
index 0000000..cecd10a
--- /dev/null
+++ b/WebCore/khtml/css/cssproperties.c
@@ -0,0 +1,467 @@
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -a -L ANSI-C -E -C -c -o -t -k '*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 cssproperties.gperf  */
+/* This file is automatically generated from cssproperties.in by makeprop, do not edit */
+/* Copyright 1999 W. Bastian */
+#include "cssproperties.h"
+struct props {
+    const char *name;
+    int id;
+};
+/* maximum key range = 742, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+hash_prop (register const char *str, register unsigned int len)
+{
+  static const unsigned short asso_values[] =
+    {
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747,   0, 747, 747, 747, 747,
+      747,   0, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747,  10,  40,   0,
+        0,   0,  30,   0,  15,   0,   5, 150,   0,  55,
+       45,   0,  80,   5,   0, 145,   0,   5,  10, 135,
+      205,  75,   0, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+      747, 747, 747, 747, 747, 747
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+      case 26:
+        hval += asso_values[(unsigned char)str[25]];
+      case 25:
+        hval += asso_values[(unsigned char)str[24]];
+      case 24:
+        hval += asso_values[(unsigned char)str[23]];
+      case 23:
+        hval += asso_values[(unsigned char)str[22]];
+      case 22:
+        hval += asso_values[(unsigned char)str[21]];
+      case 21:
+        hval += asso_values[(unsigned char)str[20]];
+      case 20:
+        hval += asso_values[(unsigned char)str[19]];
+      case 19:
+        hval += asso_values[(unsigned char)str[18]];
+      case 18:
+        hval += asso_values[(unsigned char)str[17]];
+      case 17:
+        hval += asso_values[(unsigned char)str[16]];
+      case 16:
+        hval += asso_values[(unsigned char)str[15]];
+      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 props *
+findProp (register const char *str, register unsigned int len)
+{
+  enum
+    {
+      TOTAL_KEYWORDS = 113,
+      MIN_WORD_LENGTH = 3,
+      MAX_WORD_LENGTH = 26,
+      MIN_HASH_VALUE = 5,
+      MAX_HASH_VALUE = 746
+    };
+
+  static const struct props wordlist_prop[] =
+    {
+      {"color", CSS_PROP_COLOR},
+      {"clear", CSS_PROP_CLEAR},
+      {"right", CSS_PROP_RIGHT},
+      {"left", CSS_PROP_LEFT},
+      {"height", CSS_PROP_HEIGHT},
+      {"float", CSS_PROP_FLOAT},
+      {"border", CSS_PROP_BORDER},
+      {"border-color", CSS_PROP_BORDER_COLOR},
+      {"direction", CSS_PROP_DIRECTION},
+      {"outline", CSS_PROP_OUTLINE},
+      {"outline-color", CSS_PROP_OUTLINE_COLOR},
+      {"border-right", CSS_PROP_BORDER_RIGHT},
+      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
+      {"font", CSS_PROP_FONT},
+      {"border-left", CSS_PROP_BORDER_LEFT},
+      {"top", CSS_PROP_TOP},
+      {"clip", CSS_PROP_CLIP},
+      {"line-height", CSS_PROP_LINE_HEIGHT},
+      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
+      {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
+      {"page", CSS_PROP_PAGE},
+      {"content", CSS_PROP_CONTENT},
+      {"bottom", CSS_PROP_BOTTOM},
+      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
+      {"margin", CSS_PROP_MARGIN},
+      {"border-top", CSS_PROP_BORDER_TOP},
+      {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
+      {"margin-right", CSS_PROP_MARGIN_RIGHT},
+      {"min-height", CSS_PROP_MIN_HEIGHT},
+      {"padding", CSS_PROP_PADDING},
+      {"border-bottom", CSS_PROP_BORDER_BOTTOM},
+      {"size", CSS_PROP_SIZE},
+      {"margin-left", CSS_PROP_MARGIN_LEFT},
+      {"table-layout", CSS_PROP_TABLE_LAYOUT},
+      {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
+      {"width", CSS_PROP_WIDTH},
+      {"cursor", CSS_PROP_CURSOR},
+      {"quotes", CSS_PROP_QUOTES},
+      {"font-variant", CSS_PROP_FONT_VARIANT},
+      {"padding-right", CSS_PROP_PADDING_RIGHT},
+      {"padding-left", CSS_PROP_PADDING_LEFT},
+      {"overflow", CSS_PROP_OVERFLOW},
+      {"margin-top", CSS_PROP_MARGIN_TOP},
+      {"border-width", CSS_PROP_BORDER_WIDTH},
+      {"counter-reset", CSS_PROP_COUNTER_RESET},
+      {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
+      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
+      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
+      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
+      {"padding-top", CSS_PROP_PADDING_TOP},
+      {"font-size", CSS_PROP_FONT_SIZE},
+      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
+      {"font-weight", CSS_PROP_FONT_WEIGHT},
+      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
+      {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
+      {"font-stretch", CSS_PROP_FONT_STRETCH},
+      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
+      {"font-family", CSS_PROP_FONT_FAMILY},
+      {"z-index", CSS_PROP_Z_INDEX},
+      {"min-width", CSS_PROP_MIN_WIDTH},
+      {"background", CSS_PROP_BACKGROUND},
+      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
+      {"background-color", CSS_PROP_BACKGROUND_COLOR},
+      {"text-align", CSS_PROP_TEXT_ALIGN},
+      {"border-style", CSS_PROP_BORDER_STYLE},
+      {"text-decoration", CSS_PROP_TEXT_DECORATION},
+      {"position", CSS_PROP_POSITION},
+      {"visibility", CSS_PROP_VISIBILITY},
+      {"text-decoration-color", CSS_PROP_TEXT_DECORATION_COLOR},
+      {"outline-style", CSS_PROP_OUTLINE_STYLE},
+      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
+      {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
+      {"caption-side", CSS_PROP_CAPTION_SIDE},
+      {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
+      {"letter-spacing", CSS_PROP_LETTER_SPACING},
+      {"orphans", CSS_PROP_ORPHANS},
+      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
+      {"font-style", CSS_PROP_FONT_STYLE},
+      {"text-indent", CSS_PROP_TEXT_INDENT},
+      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
+      {"max-height", CSS_PROP_MAX_HEIGHT},
+      {"display", CSS_PROP_DISPLAY},
+      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
+      {"border-spacing", CSS_PROP_BORDER_SPACING},
+      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
+      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
+      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
+      {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
+      {"empty-cells", CSS_PROP_EMPTY_CELLS},
+      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
+      {"list-style", CSS_PROP_LIST_STYLE},
+      {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
+      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
+      {"white-space", CSS_PROP_WHITE_SPACE},
+      {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
+      {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
+      {"widows", CSS_PROP_WIDOWS},
+      {"word-spacing", CSS_PROP_WORD_SPACING},
+      {"max-width", CSS_PROP_MAX_WIDTH},
+      {"marker-offset", CSS_PROP_MARKER_OFFSET},
+      {"-konq-flow-mode", CSS_PROP__KONQ_FLOW_MODE},
+      {"-konq-js-clip", CSS_PROP__KONQ_JS_CLIP},
+      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+      {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
+      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
+      {"text-shadow", CSS_PROP_TEXT_SHADOW},
+      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
+      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
+      {"background-position", CSS_PROP_BACKGROUND_POSITION},
+      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
+      {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
+      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
+      {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X}
+    };
+
+  static const signed char lookup[] =
+    {
+       -1,  -1,  -1,  -1,  -1,   0,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,   1,  -1,  -1,  -1,  -1,
+        2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,   3,  -1,   4,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,   5,   6,  -1,  -1,  -1,
+       -1,  -1,   7,  -1,   8,  -1,  -1,   9,  -1,  -1,
+       -1,  -1,  -1,  10,  -1,  -1,  -1,  11,  -1,  -1,
+       -1,  -1,  -1,  12,  -1,  -1,  -1,  -1,  -1,  13,
+       -1,  14,  -1,  15,  16,  -1,  17,  18,  -1,  19,
+       -1,  -1,  -1,  -1,  20,  -1,  -1,  21,  -1,  -1,
+       -1,  22,  23,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  24,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       25,  -1,  -1,  -1,  -1,  -1,  26,  27,  -1,  -1,
+       28,  -1,  29,  -1,  -1,  -1,  -1,  -1,  30,  31,
+       -1,  32,  33,  -1,  34,  35,  36,  -1,  -1,  -1,
+       -1,  37,  38,  39,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  40,  -1,  -1,
+       -1,  -1,  -1,  41,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       42,  -1,  43,  -1,  -1,  -1,  -1,  -1,  44,  -1,
+       -1,  -1,  45,  46,  -1,  -1,  -1,  -1,  47,  -1,
+       -1,  -1,  -1,  48,  -1,  -1,  49,  -1,  -1,  50,
+       -1,  -1,  -1,  51,  -1,  -1,  52,  53,  -1,  -1,
+       -1,  -1,  -1,  -1,  54,  -1,  -1,  55,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  56,  57,  58,  -1,  59,
+       60,  -1,  -1,  -1,  -1,  61,  62,  -1,  -1,  -1,
+       63,  -1,  64,  -1,  -1,  65,  -1,  -1,  66,  -1,
+       67,  68,  -1,  69,  -1,  -1,  70,  -1,  -1,  -1,
+       71,  -1,  72,  73,  74,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  75,  -1,  76,  77,  78,  79,  -1,  -1,
+       80,  -1,  -1,  -1,  -1,  -1,  -1,  81,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  82,  -1,  -1,  83,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  84,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  85,  86,  -1,  -1,
+       -1,  87,  -1,  -1,  -1,  -1,  88,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  89,  90,  91,  92,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  93,  -1,  -1,  -1,
+       -1,  94,  -1,  -1,  -1,  -1,  95,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  96,  -1,  -1,  -1,  -1,  -1,  97,  -1,  98,
+       -1,  -1,  -1,  99,  -1, 100,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 101,  -1,  -1, 102,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 103,  -1,  -1,
+       -1,  -1,  -1,  -1, 104,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 105, 106,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 107,  -1,  -1,  -1, 108,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 109,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 110,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 111,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 112
+    };
+
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = hash_prop (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int index = lookup[key];
+
+          if (index >= 0)
+            {
+              register const char *s = wordlist_prop[index].name;
+
+              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
+                return &wordlist_prop[index];
+            }
+        }
+    }
+  return 0;
+}
+static const char * const propertyList[] = {
+"",
+"background-color", 
+"background-image", 
+"background-repeat", 
+"background-attachment", 
+"background-position", 
+"background-position-x", 
+"background-position-y", 
+"border-collapse", 
+"border-spacing", 
+"border-top-color", 
+"border-right-color", 
+"border-bottom-color", 
+"border-left-color", 
+"border-top-style", 
+"border-right-style", 
+"border-bottom-style", 
+"border-left-style", 
+"border-top-width", 
+"border-right-width", 
+"border-bottom-width", 
+"border-left-width", 
+"bottom", 
+"caption-side", 
+"clear", 
+"clip", 
+"-konq-js-clip", 
+"color", 
+"content", 
+"counter-increment", 
+"counter-reset", 
+"cursor", 
+"direction", 
+"display", 
+"empty-cells", 
+"float", 
+"font-family", 
+"font-size", 
+"font-size-adjust", 
+"font-stretch", 
+"font-style", 
+"font-variant", 
+"font-weight", 
+"height", 
+"left", 
+"letter-spacing", 
+"line-height", 
+"list-style-image", 
+"list-style-position", 
+"list-style-type", 
+"margin-top", 
+"margin-right", 
+"margin-bottom", 
+"margin-left", 
+"marker-offset", 
+"max-height", 
+"max-width", 
+"min-height", 
+"min-width", 
+"orphans", 
+"outline-color", 
+"outline-style", 
+"outline-width", 
+"overflow", 
+"padding-top", 
+"padding-right", 
+"padding-bottom", 
+"padding-left", 
+"page", 
+"page-break-after", 
+"page-break-before", 
+"page-break-inside", 
+"position", 
+"quotes", 
+"right", 
+"size", 
+"table-layout", 
+"text-align", 
+"text-decoration", 
+"text-decoration-color", 
+"text-indent", 
+"text-shadow", 
+"text-transform", 
+"top", 
+"unicode-bidi", 
+"vertical-align", 
+"visibility", 
+"white-space", 
+"widows", 
+"width", 
+"word-spacing", 
+"z-index", 
+"background", 
+"border", 
+"border-color", 
+"border-style", 
+"border-top", 
+"border-right", 
+"border-bottom", 
+"border-left", 
+"border-width", 
+"font", 
+"list-style", 
+"margin", 
+"outline", 
+"padding", 
+"scrollbar-face-color", 
+"scrollbar-shadow-color", 
+"scrollbar-highlight-color", 
+"scrollbar-3dlight-color", 
+"scrollbar-darkshadow-color", 
+"scrollbar-track-color", 
+"scrollbar-arrow-color", 
+"-konq-flow-mode", 
+    0
+};
+DOMString getPropertyName(unsigned short id)
+{
+    if(id >= CSS_PROP_TOTAL || id == 0)
+      return DOMString();
+    else
+      return DOMString(propertyList[id]);
+};
+
diff --git a/WebCore/khtml/css/cssproperties.h b/WebCore/khtml/css/cssproperties.h
new file mode 100644
index 0000000..109dda2
--- /dev/null
+++ b/WebCore/khtml/css/cssproperties.h
@@ -0,0 +1,127 @@
+/* This file is automatically generated from cssproperties.in by makeprop, do not edit */
+/* Copyright 1998 W. Bastian */
+
+#ifndef CSSPROPERTIES_H
+#define CSSPROPERTIES_H
+
+
+#define CSS_PROP_INVALID 0
+#define CSS_PROP_MIN 1
+#define CSS_PROP_BACKGROUND_COLOR 1
+#define CSS_PROP_BACKGROUND_IMAGE 2
+#define CSS_PROP_BACKGROUND_REPEAT 3
+#define CSS_PROP_BACKGROUND_ATTACHMENT 4
+#define CSS_PROP_BACKGROUND_POSITION 5
+#define CSS_PROP_BACKGROUND_POSITION_X 6
+#define CSS_PROP_BACKGROUND_POSITION_Y 7
+#define CSS_PROP_BORDER_COLLAPSE 8
+#define CSS_PROP_BORDER_SPACING 9
+#define CSS_PROP_BORDER_TOP_COLOR 10
+#define CSS_PROP_BORDER_RIGHT_COLOR 11
+#define CSS_PROP_BORDER_BOTTOM_COLOR 12
+#define CSS_PROP_BORDER_LEFT_COLOR 13
+#define CSS_PROP_BORDER_TOP_STYLE 14
+#define CSS_PROP_BORDER_RIGHT_STYLE 15
+#define CSS_PROP_BORDER_BOTTOM_STYLE 16
+#define CSS_PROP_BORDER_LEFT_STYLE 17
+#define CSS_PROP_BORDER_TOP_WIDTH 18
+#define CSS_PROP_BORDER_RIGHT_WIDTH 19
+#define CSS_PROP_BORDER_BOTTOM_WIDTH 20
+#define CSS_PROP_BORDER_LEFT_WIDTH 21
+#define CSS_PROP_BOTTOM 22
+#define CSS_PROP_CAPTION_SIDE 23
+#define CSS_PROP_CLEAR 24
+#define CSS_PROP_CLIP 25
+#define CSS_PROP__KONQ_JS_CLIP 26
+#define CSS_PROP_COLOR 27
+#define CSS_PROP_CONTENT 28
+#define CSS_PROP_COUNTER_INCREMENT 29
+#define CSS_PROP_COUNTER_RESET 30
+#define CSS_PROP_CURSOR 31
+#define CSS_PROP_DIRECTION 32
+#define CSS_PROP_DISPLAY 33
+#define CSS_PROP_EMPTY_CELLS 34
+#define CSS_PROP_FLOAT 35
+#define CSS_PROP_FONT_FAMILY 36
+#define CSS_PROP_FONT_SIZE 37
+#define CSS_PROP_FONT_SIZE_ADJUST 38
+#define CSS_PROP_FONT_STRETCH 39
+#define CSS_PROP_FONT_STYLE 40
+#define CSS_PROP_FONT_VARIANT 41
+#define CSS_PROP_FONT_WEIGHT 42
+#define CSS_PROP_HEIGHT 43
+#define CSS_PROP_LEFT 44
+#define CSS_PROP_LETTER_SPACING 45
+#define CSS_PROP_LINE_HEIGHT 46
+#define CSS_PROP_LIST_STYLE_IMAGE 47
+#define CSS_PROP_LIST_STYLE_POSITION 48
+#define CSS_PROP_LIST_STYLE_TYPE 49
+#define CSS_PROP_MARGIN_TOP 50
+#define CSS_PROP_MARGIN_RIGHT 51
+#define CSS_PROP_MARGIN_BOTTOM 52
+#define CSS_PROP_MARGIN_LEFT 53
+#define CSS_PROP_MARKER_OFFSET 54
+#define CSS_PROP_MAX_HEIGHT 55
+#define CSS_PROP_MAX_WIDTH 56
+#define CSS_PROP_MIN_HEIGHT 57
+#define CSS_PROP_MIN_WIDTH 58
+#define CSS_PROP_ORPHANS 59
+#define CSS_PROP_OUTLINE_COLOR 60
+#define CSS_PROP_OUTLINE_STYLE 61
+#define CSS_PROP_OUTLINE_WIDTH 62
+#define CSS_PROP_OVERFLOW 63
+#define CSS_PROP_PADDING_TOP 64
+#define CSS_PROP_PADDING_RIGHT 65
+#define CSS_PROP_PADDING_BOTTOM 66
+#define CSS_PROP_PADDING_LEFT 67
+#define CSS_PROP_PAGE 68
+#define CSS_PROP_PAGE_BREAK_AFTER 69
+#define CSS_PROP_PAGE_BREAK_BEFORE 70
+#define CSS_PROP_PAGE_BREAK_INSIDE 71
+#define CSS_PROP_POSITION 72
+#define CSS_PROP_QUOTES 73
+#define CSS_PROP_RIGHT 74
+#define CSS_PROP_SIZE 75
+#define CSS_PROP_TABLE_LAYOUT 76
+#define CSS_PROP_TEXT_ALIGN 77
+#define CSS_PROP_TEXT_DECORATION 78
+#define CSS_PROP_TEXT_DECORATION_COLOR 79
+#define CSS_PROP_TEXT_INDENT 80
+#define CSS_PROP_TEXT_SHADOW 81
+#define CSS_PROP_TEXT_TRANSFORM 82
+#define CSS_PROP_TOP 83
+#define CSS_PROP_UNICODE_BIDI 84
+#define CSS_PROP_VERTICAL_ALIGN 85
+#define CSS_PROP_VISIBILITY 86
+#define CSS_PROP_WHITE_SPACE 87
+#define CSS_PROP_WIDOWS 88
+#define CSS_PROP_WIDTH 89
+#define CSS_PROP_WORD_SPACING 90
+#define CSS_PROP_Z_INDEX 91
+#define CSS_PROP_BACKGROUND 92
+#define CSS_PROP_BORDER 93
+#define CSS_PROP_BORDER_COLOR 94
+#define CSS_PROP_BORDER_STYLE 95
+#define CSS_PROP_BORDER_TOP 96
+#define CSS_PROP_BORDER_RIGHT 97
+#define CSS_PROP_BORDER_BOTTOM 98
+#define CSS_PROP_BORDER_LEFT 99
+#define CSS_PROP_BORDER_WIDTH 100
+#define CSS_PROP_FONT 101
+#define CSS_PROP_LIST_STYLE 102
+#define CSS_PROP_MARGIN 103
+#define CSS_PROP_OUTLINE 104
+#define CSS_PROP_PADDING 105
+#define CSS_PROP_SCROLLBAR_FACE_COLOR 106
+#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 107
+#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 108
+#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 109
+#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 110
+#define CSS_PROP_SCROLLBAR_TRACK_COLOR 111
+#define CSS_PROP_SCROLLBAR_ARROW_COLOR 112
+#define CSS_PROP__KONQ_FLOW_MODE 113
+
+#define CSS_PROP_MAX CSS_PROP_Z_INDEX
+#define CSS_PROP_TOTAL 114
+#endif
+
diff --git a/WebCore/khtml/css/cssvalues.c b/WebCore/khtml/css/cssvalues.c
new file mode 100644
index 0000000..f329941
--- /dev/null
+++ b/WebCore/khtml/css/cssvalues.c
@@ -0,0 +1,704 @@
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -L ANSI-C -E -C -n -o -t -k '*' -NfindValue -Hhash_val -Wwordlist_value -D cssvalues.gperf  */
+/* This file is automatically generated from cssvalues.in by makevalues, do not edit */
+/* Copyright 1999 W. Bastian */
+#include "cssvalues.h"
+struct css_value {
+    const char *name;
+    int id;
+};
+/* maximum key range = 1382, duplicates = 1 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+hash_val (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,   40, 1382, 1382,    0,   25,
+        35,   40,   45,   50,    5,   10,   20,    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,    0,  163,    4,
+        64,   15,    0,  235,  160,   15,    5,  145,    0,  175,
+        70,    0,    9,  120,  120,   40,    0,  255,  179,  115,
+        15,   40,  195, 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 = 0;
+
+  switch (len)
+    {
+      default:
+      case 21:
+        hval += asso_values[(unsigned char)str[20]];
+      case 20:
+        hval += asso_values[(unsigned char)str[19]];
+      case 19:
+        hval += asso_values[(unsigned char)str[18]];
+      case 18:
+        hval += asso_values[(unsigned char)str[17]];
+      case 17:
+        hval += asso_values[(unsigned char)str[16]];
+      case 16:
+        hval += asso_values[(unsigned char)str[15]];
+      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 css_value *
+findValue (register const char *str, register unsigned int len)
+{
+  enum
+    {
+      TOTAL_KEYWORDS = 180,
+      MIN_WORD_LENGTH = 3,
+      MAX_WORD_LENGTH = 21,
+      MIN_HASH_VALUE = 0,
+      MAX_HASH_VALUE = 1381
+    };
+
+  static const struct css_value wordlist_value[] =
+    {
+      {"900", CSS_VAL_900},
+      {"600", CSS_VAL_600},
+      {"top", CSS_VAL_TOP},
+      {"700", CSS_VAL_700},
+      {"left", CSS_VAL_LEFT},
+      {"800", CSS_VAL_800},
+      {"100", CSS_VAL_100},
+      {"text", CSS_VAL_TEXT},
+      {"italic", CSS_VAL_ITALIC},
+      {"200", CSS_VAL_200},
+      {"300", CSS_VAL_300},
+      {"400", CSS_VAL_400},
+      {"500", CSS_VAL_500},
+      {"static", CSS_VAL_STATIC},
+      {"collapse", CSS_VAL_COLLAPSE},
+      {"text-top", CSS_VAL_TEXT_TOP},
+      {"icon", CSS_VAL_ICON},
+      {"caption", CSS_VAL_CAPTION},
+      {"fixed", CSS_VAL_FIXED},
+      {"solid", CSS_VAL_SOLID},
+      {"ltr", CSS_VAL_LTR},
+      {"rtl", CSS_VAL_RTL},
+      {"disc", CSS_VAL_DISC},
+      {"wait", CSS_VAL_WAIT},
+      {"crop", CSS_VAL_CROP},
+      {"inset", CSS_VAL_INSET},
+      {"dotted", CSS_VAL_DOTTED},
+      {"pre", CSS_VAL_PRE},
+      {"fantasy", CSS_VAL_FANTASY},
+      {"none", CSS_VAL_NONE},
+      {"circle", CSS_VAL_CIRCLE},
+      {"repeat", CSS_VAL_REPEAT},
+      {"scroll", CSS_VAL_SCROLL},
+      {"table", CSS_VAL_TABLE},
+      {"help", CSS_VAL_HELP},
+      {"inline", CSS_VAL_INLINE},
+      {"serif", CSS_VAL_SERIF},
+      {"compact", CSS_VAL_COMPACT},
+      {"always", CSS_VAL_ALWAYS},
+      {"separate", CSS_VAL_SEPARATE},
+      {"landscape", CSS_VAL_LANDSCAPE},
+      {"cross", CSS_VAL_CROSS},
+      {"mix", CSS_VAL_MIX},
+      {"level", CSS_VAL_LEVEL},
+      {"repeat-x", CSS_VAL_REPEAT_X},
+      {"small", CSS_VAL_SMALL},
+      {"inside", CSS_VAL_INSIDE},
+      {"center", CSS_VAL_CENTER},
+      {"bold", CSS_VAL_BOLD},
+      {"pointer", CSS_VAL_POINTER},
+      {"table-cell", CSS_VAL_TABLE_CELL},
+      {"repeat-y", CSS_VAL_REPEAT_Y},
+      {"thin", CSS_VAL_THIN},
+      {"static-position", CSS_VAL_STATIC_POSITION},
+      {"lower", CSS_VAL_LOWER},
+      {"expanded", CSS_VAL_EXPANDED},
+      {"capitalize", CSS_VAL_CAPITALIZE},
+      {"hide", CSS_VAL_HIDE},
+      {"auto", CSS_VAL_AUTO},
+      {"avoid", CSS_VAL_AVOID},
+      {"portrait", CSS_VAL_PORTRAIT},
+      {"no-repeat", CSS_VAL_NO_REPEAT},
+      {"x-small", CSS_VAL_X_SMALL},
+      {"decimal", CSS_VAL_DECIMAL},
+      {"xx-small", CSS_VAL_XX_SMALL},
+      {"below", CSS_VAL_BELOW},
+      {"hand", CSS_VAL_HAND},
+      {"list-item", CSS_VAL_LIST_ITEM},
+      {"small-caps", CSS_VAL_SMALL_CAPS},
+      {"lowercase", CSS_VAL_LOWERCASE},
+      {"outset", CSS_VAL_OUTSET},
+      {"block", CSS_VAL_BLOCK},
+      {"monospace", CSS_VAL_MONOSPACE},
+      {"nowrap", CSS_VAL_NOWRAP},
+      {"show", CSS_VAL_SHOW},
+      {"table-caption", CSS_VAL_TABLE_CAPTION},
+      {"baseline", CSS_VAL_BASELINE},
+      {"loud", CSS_VAL_LOUD},
+      {"both", CSS_VAL_BOTH},
+      {"thick", CSS_VAL_THICK},
+      {"wider", CSS_VAL_WIDER},
+      {"middle", CSS_VAL_MIDDLE},
+      {"default", CSS_VAL_DEFAULT},
+      {"bottom", CSS_VAL_BOTTOM},
+      {"condensed", CSS_VAL_CONDENSED},
+      {"dashed", CSS_VAL_DASHED},
+      {"relative", CSS_VAL_RELATIVE},
+      {"smaller", CSS_VAL_SMALLER},
+      {"small-caption", CSS_VAL_SMALL_CAPTION},
+      {"justify", CSS_VAL_JUSTIFY},
+      {"above", CSS_VAL_ABOVE},
+      {"katakana", CSS_VAL_KATAKANA},
+      {"bolder", CSS_VAL_BOLDER},
+      {"normal", CSS_VAL_NORMAL},
+      {"move", CSS_VAL_MOVE},
+      {"large", CSS_VAL_LARGE},
+      {"lower-latin", CSS_VAL_LOWER_LATIN},
+      {"sans-serif", CSS_VAL_SANS_SERIF},
+      {"hidden", CSS_VAL_HIDDEN},
+      {"outside", CSS_VAL_OUTSIDE},
+      {"blink", CSS_VAL_BLINK},
+      {"inherit", CSS_VAL_INHERIT},
+      {"invert", CSS_VAL_INVERT},
+      {"inline-table", CSS_VAL_INLINE_TABLE},
+      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
+      {"overline", CSS_VAL_OVERLINE},
+      {"x-large", CSS_VAL_X_LARGE},
+      {"visible", CSS_VAL_VISIBLE},
+      {"embed", CSS_VAL_EMBED},
+      {"super", CSS_VAL_SUPER},
+      {"xx-large", CSS_VAL_XX_LARGE},
+      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
+      {"transparent", CSS_VAL_TRANSPARENT},
+      {"ridge", CSS_VAL_RIDGE},
+      {"table-row", CSS_VAL_TABLE_ROW},
+      {"e-resize", CSS_VAL_E_RESIZE},
+      {"sub", CSS_VAL_SUB},
+      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
+      {"armenian", CSS_VAL_ARMENIAN},
+      {"uppercase", CSS_VAL_UPPERCASE},
+      {"absolute", CSS_VAL_ABSOLUTE},
+      {"s-resize", CSS_VAL_S_RESIZE},
+      {"close-quote", CSS_VAL_CLOSE_QUOTE},
+      {"larger", CSS_VAL_LARGER},
+      {"se-resize", CSS_VAL_SE_RESIZE},
+      {"double", CSS_VAL_DOUBLE},
+      {"crosshair", CSS_VAL_CROSSHAIR},
+      {"n-resize", CSS_VAL_N_RESIZE},
+      {"menu", CSS_VAL_MENU},
+      {"open-quote", CSS_VAL_OPEN_QUOTE},
+      {"ne-resize", CSS_VAL_NE_RESIZE},
+      {"right", CSS_VAL_RIGHT},
+      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
+      {"upper-latin", CSS_VAL_UPPER_LATIN},
+      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
+      {"lighter", CSS_VAL_LIGHTER},
+      {"groove", CSS_VAL_GROOVE},
+      {"square", CSS_VAL_SQUARE},
+      {"w-resize", CSS_VAL_W_RESIZE},
+      {"narrower", CSS_VAL_NARROWER},
+      {"oblique", CSS_VAL_OBLIQUE},
+      {"run-in", CSS_VAL_RUN_IN},
+      {"marker", CSS_VAL_MARKER},
+      {"hebrew", CSS_VAL_HEBREW},
+      {"sw-resize", CSS_VAL_SW_RESIZE},
+      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
+      {"hiragana", CSS_VAL_HIRAGANA},
+      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
+      {"underline", CSS_VAL_UNDERLINE},
+      {"nw-resize", CSS_VAL_NW_RESIZE},
+      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
+      {"cursive", CSS_VAL_CURSIVE},
+      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
+      {"-konq-center", CSS_VAL__KONQ_CENTER},
+      {"lower-roman", CSS_VAL_LOWER_ROMAN},
+      {"status-bar", CSS_VAL_STATUS_BAR},
+      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
+      {"-konq-auto", CSS_VAL__KONQ_AUTO},
+      {"georgian", CSS_VAL_GEORGIAN},
+      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
+      {"medium", CSS_VAL_MEDIUM},
+      {"higher", CSS_VAL_HIGHER},
+      {"table-column", CSS_VAL_TABLE_COLUMN},
+      {"message-box", CSS_VAL_MESSAGE_BOX},
+      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
+      {"-konq-normal", CSS_VAL__KONQ_NORMAL},
+      {"upper-roman", CSS_VAL_UPPER_ROMAN},
+      {"lower-greek", CSS_VAL_LOWER_GREEK},
+      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
+      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
+      {"-konq-xxx-large", CSS_VAL__KONQ_XXX_LARGE},
+      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
+      {"-konq-around-floats", CSS_VAL__KONQ_AROUND_FLOATS},
+      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
+      {"line-through", CSS_VAL_LINE_THROUGH},
+      {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
+      {"-konq-baseline-middle", CSS_VAL__KONQ_BASELINE_MIDDLE},
+      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
+      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
+      {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP}
+    };
+
+  static const short lookup[] =
+    {
+         0,   -1,   -1,   -1,   -1,    1,   -1,   -1,
+        -1,    2,    3,   -1,   -1,   -1,   -1,    4,
+        -1,   -1,   -1,   -1,    5,   -1,   -1,   -1,
+        -1,    6,   -1,   -1,   -1,   -1,    7,   -1,
+        -1,   -1,    8,    9,   -1,   -1,   -1,   -1,
+        10,   -1,   -1,   -1,   -1,   11,   -1,   -1,
+        -1,   -1,   12,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   13,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   14,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   15,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   16,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   17,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   18,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   19,
+      -302, -160,   -2,   22,   -1,   -1,   -1,   -1,
+        -1,   -1,   23,   -1,   -1,   24,   -1,   -1,
+        -1,   -1,   -1,   -1,   25,   -1,   -1,   26,
+        27,   -1,   -1,   -1,   -1,   -1,   28,   -1,
+        -1,   -1,   -1,   29,   -1,   -1,   30,   31,
+        -1,   -1,   -1,   -1,   32,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
+        34,   35,   -1,   -1,   -1,   -1,   36,   -1,
+        37,   -1,   -1,   38,   -1,   -1,   -1,   39,
+        -1,   -1,   40,   -1,   41,   42,   -1,   -1,
+        -1,   43,   -1,   -1,   -1,   -1,   44,   45,
+        -1,   -1,   -1,   46,   -1,   -1,   -1,   -1,
+        47,   -1,   -1,   48,   -1,   49,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   50,   -1,   51,
+        -1,   -1,   -1,   -1,   -1,   52,   -1,   -1,
+        53,   -1,   54,   -1,   55,   56,   57,   58,
+        -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
+        60,   -1,   -1,   -1,   -1,   61,   62,   -1,
+        -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   64,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   65,   66,   -1,
+        -1,   -1,   -1,   -1,   67,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   68,   69,   70,   -1,
+        71,   72,   73,   74,   75,   -1,   76,   77,
+        -1,   -1,   -1,   78,   79,   -1,   -1,   -1,
+        -1,   80,   -1,   -1,   -1,   81,   82,   -1,
+        -1,   -1,   83,   -1,   -1,   -1,   84,   85,
+        86,   -1,   -1,   -1,   -1,   -1,   87,   -1,
+        -1,   88,   -1,   89,   -1,   90,   -1,   -1,
+        91,   -1,   92,   -1,   -1,   93,   -1,   -1,
+        -1,   94,   95,   -1,   -1,   -1,   -1,   96,
+        -1,   -1,   -1,   -1,   97,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   98,   99,   -1,   -1,
+        -1,  100,   -1,  101,   -1,   -1,   -1,  102,
+        -1,   -1,   -1,  103,   -1,   -1,   -1,   -1,
+       104,   -1,   -1,   -1,   -1,   -1,  105,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  106,   -1,  107,   -1,   -1,   -1,   -1,
+       108,   -1,   -1,   -1,   -1,   -1,   -1,  109,
+       110,   -1,  111,   -1,  112,   -1,   -1,   -1,
+        -1,  113,   -1,   -1,   -1,  114,   -1,  115,
+        -1,   -1,  116,  117,   -1,   -1,   -1,   -1,
+        -1,  118,   -1,  119,   -1,   -1,   -1,   -1,
+        -1,  120,   -1,   -1,   -1,   -1,   -1,   -1,
+       121,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  122,  123,   -1,   -1,   -1,   -1,  124,
+        -1,  125,   -1,  126,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  127,   -1,
+        -1,   -1,   -1,  128,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  129,  130,   -1,   -1,
+        -1,   -1,  131,   -1,  132,  133,   -1,   -1,
+        -1,  134,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  135,   -1,   -1,   -1,  136,  137,   -1,
+        -1,   -1,   -1,  138,   -1,   -1,   -1,   -1,
+       139,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       140,   -1,  141,   -1,   -1,   -1,   -1,  142,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  143,   -1,   -1,   -1,
+        -1,   -1,   -1,  144,   -1,   -1,   -1,  145,
+       146,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  147,   -1,   -1,   -1,   -1,   -1,   -1,
+       148,  149,   -1,  150,  151,   -1,   -1,   -1,
+        -1,   -1,  152,   -1,   -1,   -1,   -1,  153,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  154,
+        -1,   -1,  155,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  156,   -1,   -1,  157,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  158,   -1,   -1,   -1,   -1,  159,
+        -1,   -1,   -1,  160,   -1,   -1,   -1,   -1,
+        -1,  161,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  162,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  163,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  164,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  165,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  166,   -1,   -1,
+        -1,   -1,   -1,   -1,  167,   -1,   -1,   -1,
+        -1,  168,   -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,   -1,   -1,   -1,   -1,  170,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -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,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -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,  173,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  174,   -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,  176,   -1,   -1,   -1,   -1,   -1,
+       177,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -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
+    };
+
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = hash_val (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int index = lookup[key];
+
+          if (index >= 0)
+            {
+              register const char *s = wordlist_value[index].name;
+
+              if (*str == *s && !strcmp (str + 1, s + 1))
+                return &wordlist_value[index];
+            }
+          else if (index < -TOTAL_KEYWORDS)
+            {
+              register int offset = - 1 - TOTAL_KEYWORDS - index;
+              register const struct css_value *wordptr = &wordlist_value[TOTAL_KEYWORDS + lookup[offset]];
+              register const struct css_value *wordendptr = wordptr + -lookup[offset + 1];
+
+              while (wordptr < wordendptr)
+                {
+                  register const char *s = wordptr->name;
+
+                  if (*str == *s && !strcmp (str + 1, s + 1))
+                    return wordptr;
+                  wordptr++;
+                }
+            }
+        }
+    }
+  return 0;
+}
+static const char * const valueList[] = {
+"",
+"inherit", 
+"none", 
+"hidden", 
+"dotted", 
+"dashed", 
+"double", 
+"solid", 
+"outset", 
+"inset", 
+"groove", 
+"ridge", 
+"caption", 
+"icon", 
+"menu", 
+"message-box", 
+"small-caption", 
+"status-bar", 
+"italic", 
+"oblique", 
+"small-caps", 
+"normal", 
+"bold", 
+"bolder", 
+"lighter", 
+"100", 
+"200", 
+"300", 
+"400", 
+"500", 
+"600", 
+"700", 
+"800", 
+"900", 
+"xx-small", 
+"x-small", 
+"small", 
+"medium", 
+"large", 
+"x-large", 
+"xx-large", 
+"-konq-xxx-large", 
+"smaller", 
+"larger", 
+"wider", 
+"narrower", 
+"ultra-condensed", 
+"extra-condensed", 
+"condensed", 
+"semi-condensed", 
+"semi-expanded", 
+"expanded", 
+"extra-expanded", 
+"ultra-expanded", 
+"serif", 
+"sans-serif", 
+"cursive", 
+"fantasy", 
+"monospace", 
+"transparent", 
+"repeat", 
+"repeat-x", 
+"repeat-y", 
+"no-repeat", 
+"baseline", 
+"middle", 
+"sub", 
+"super", 
+"text-top", 
+"text-bottom", 
+"top", 
+"bottom", 
+"-konq-baseline-middle", 
+"-konq-auto", 
+"left", 
+"right", 
+"center", 
+"justify", 
+"-konq-center", 
+"outside", 
+"inside", 
+"disc", 
+"circle", 
+"square", 
+"decimal", 
+"decimal-leading-zero", 
+"lower-roman", 
+"upper-roman", 
+"lower-greek", 
+"lower-alpha", 
+"lower-latin", 
+"upper-alpha", 
+"upper-latin", 
+"hebrew", 
+"armenian", 
+"georgian", 
+"cjk-ideographic", 
+"hiragana", 
+"katakana", 
+"hiragana-iroha", 
+"katakana-iroha", 
+"inline", 
+"block", 
+"list-item", 
+"run-in", 
+"compact", 
+"marker", 
+"table", 
+"inline-table", 
+"table-row-group", 
+"table-header-group", 
+"table-footer-group", 
+"table-row", 
+"table-column-group", 
+"table-column", 
+"table-cell", 
+"table-caption", 
+"auto", 
+"crosshair", 
+"default", 
+"pointer", 
+"move", 
+"e-resize", 
+"ne-resize", 
+"nw-resize", 
+"n-resize", 
+"se-resize", 
+"sw-resize", 
+"s-resize", 
+"w-resize", 
+"text", 
+"wait", 
+"help", 
+"ltr", 
+"rtl", 
+"capitalize", 
+"uppercase", 
+"lowercase", 
+"visible", 
+"collapse", 
+"above", 
+"absolute", 
+"always", 
+"avoid", 
+"below", 
+"bidi-override", 
+"blink", 
+"both", 
+"close-quote", 
+"crop", 
+"cross", 
+"embed", 
+"fixed", 
+"hand", 
+"hide", 
+"higher", 
+"invert", 
+"landscape", 
+"level", 
+"line-through", 
+"loud", 
+"lower", 
+"mix", 
+"no-close-quote", 
+"no-open-quote", 
+"nowrap", 
+"open-quote", 
+"overline", 
+"portrait", 
+"pre", 
+"relative", 
+"scroll", 
+"separate", 
+"show", 
+"static", 
+"static-position", 
+"thick", 
+"thin", 
+"underline", 
+"-konq-normal", 
+"-konq-around-floats", 
+    0
+};
+DOMString getValueName(unsigned short id)
+{
+    if(id >= CSS_VAL_TOTAL || id == 0)
+      return DOMString();
+    else
+      return DOMString(valueList[id]);
+};
+
diff --git a/WebCore/khtml/css/cssvalues.h b/WebCore/khtml/css/cssvalues.h
new file mode 100644
index 0000000..8084801
--- /dev/null
+++ b/WebCore/khtml/css/cssvalues.h
@@ -0,0 +1,195 @@
+/* This file is automatically generated from cssvalues.in by
+#makevalues, do not edit */
+/* Copyright 1998 W. Bastian */
+
+#ifndef CSSVALUES_H
+#define CSSVALUES_H
+
+DOM::DOMString getValueName(unsigned short id);
+
+#define CSS_VAL_INVALID 0
+#define CSS_VAL_MIN 1
+#define CSS_VAL_INHERIT 1
+#define CSS_VAL_NONE 2
+#define CSS_VAL_HIDDEN 3
+#define CSS_VAL_DOTTED 4
+#define CSS_VAL_DASHED 5
+#define CSS_VAL_DOUBLE 6
+#define CSS_VAL_SOLID 7
+#define CSS_VAL_OUTSET 8
+#define CSS_VAL_INSET 9
+#define CSS_VAL_GROOVE 10
+#define CSS_VAL_RIDGE 11
+#define CSS_VAL_CAPTION 12
+#define CSS_VAL_ICON 13
+#define CSS_VAL_MENU 14
+#define CSS_VAL_MESSAGE_BOX 15
+#define CSS_VAL_SMALL_CAPTION 16
+#define CSS_VAL_STATUS_BAR 17
+#define CSS_VAL_ITALIC 18
+#define CSS_VAL_OBLIQUE 19
+#define CSS_VAL_SMALL_CAPS 20
+#define CSS_VAL_NORMAL 21
+#define CSS_VAL_BOLD 22
+#define CSS_VAL_BOLDER 23
+#define CSS_VAL_LIGHTER 24
+#define CSS_VAL_100 25
+#define CSS_VAL_200 26
+#define CSS_VAL_300 27
+#define CSS_VAL_400 28
+#define CSS_VAL_500 29
+#define CSS_VAL_600 30
+#define CSS_VAL_700 31
+#define CSS_VAL_800 32
+#define CSS_VAL_900 33
+#define CSS_VAL_XX_SMALL 34
+#define CSS_VAL_X_SMALL 35
+#define CSS_VAL_SMALL 36
+#define CSS_VAL_MEDIUM 37
+#define CSS_VAL_LARGE 38
+#define CSS_VAL_X_LARGE 39
+#define CSS_VAL_XX_LARGE 40
+#define CSS_VAL__KONQ_XXX_LARGE 41
+#define CSS_VAL_SMALLER 42
+#define CSS_VAL_LARGER 43
+#define CSS_VAL_WIDER 44
+#define CSS_VAL_NARROWER 45
+#define CSS_VAL_ULTRA_CONDENSED 46
+#define CSS_VAL_EXTRA_CONDENSED 47
+#define CSS_VAL_CONDENSED 48
+#define CSS_VAL_SEMI_CONDENSED 49
+#define CSS_VAL_SEMI_EXPANDED 50
+#define CSS_VAL_EXPANDED 51
+#define CSS_VAL_EXTRA_EXPANDED 52
+#define CSS_VAL_ULTRA_EXPANDED 53
+#define CSS_VAL_SERIF 54
+#define CSS_VAL_SANS_SERIF 55
+#define CSS_VAL_CURSIVE 56
+#define CSS_VAL_FANTASY 57
+#define CSS_VAL_MONOSPACE 58
+#define CSS_VAL_TRANSPARENT 59
+#define CSS_VAL_REPEAT 60
+#define CSS_VAL_REPEAT_X 61
+#define CSS_VAL_REPEAT_Y 62
+#define CSS_VAL_NO_REPEAT 63
+#define CSS_VAL_BASELINE 64
+#define CSS_VAL_MIDDLE 65
+#define CSS_VAL_SUB 66
+#define CSS_VAL_SUPER 67
+#define CSS_VAL_TEXT_TOP 68
+#define CSS_VAL_TEXT_BOTTOM 69
+#define CSS_VAL_TOP 70
+#define CSS_VAL_BOTTOM 71
+#define CSS_VAL__KONQ_BASELINE_MIDDLE 72
+#define CSS_VAL__KONQ_AUTO 73
+#define CSS_VAL_LEFT 74
+#define CSS_VAL_RIGHT 75
+#define CSS_VAL_CENTER 76
+#define CSS_VAL_JUSTIFY 77
+#define CSS_VAL__KONQ_CENTER 78
+#define CSS_VAL_OUTSIDE 79
+#define CSS_VAL_INSIDE 80
+#define CSS_VAL_DISC 81
+#define CSS_VAL_CIRCLE 82
+#define CSS_VAL_SQUARE 83
+#define CSS_VAL_DECIMAL 84
+#define CSS_VAL_DECIMAL_LEADING_ZERO 85
+#define CSS_VAL_LOWER_ROMAN 86
+#define CSS_VAL_UPPER_ROMAN 87
+#define CSS_VAL_LOWER_GREEK 88
+#define CSS_VAL_LOWER_ALPHA 89
+#define CSS_VAL_LOWER_LATIN 90
+#define CSS_VAL_UPPER_ALPHA 91
+#define CSS_VAL_UPPER_LATIN 92
+#define CSS_VAL_HEBREW 93
+#define CSS_VAL_ARMENIAN 94
+#define CSS_VAL_GEORGIAN 95
+#define CSS_VAL_CJK_IDEOGRAPHIC 96
+#define CSS_VAL_HIRAGANA 97
+#define CSS_VAL_KATAKANA 98
+#define CSS_VAL_HIRAGANA_IROHA 99
+#define CSS_VAL_KATAKANA_IROHA 100
+#define CSS_VAL_INLINE 101
+#define CSS_VAL_BLOCK 102
+#define CSS_VAL_LIST_ITEM 103
+#define CSS_VAL_RUN_IN 104
+#define CSS_VAL_COMPACT 105
+#define CSS_VAL_MARKER 106
+#define CSS_VAL_TABLE 107
+#define CSS_VAL_INLINE_TABLE 108
+#define CSS_VAL_TABLE_ROW_GROUP 109
+#define CSS_VAL_TABLE_HEADER_GROUP 110
+#define CSS_VAL_TABLE_FOOTER_GROUP 111
+#define CSS_VAL_TABLE_ROW 112
+#define CSS_VAL_TABLE_COLUMN_GROUP 113
+#define CSS_VAL_TABLE_COLUMN 114
+#define CSS_VAL_TABLE_CELL 115
+#define CSS_VAL_TABLE_CAPTION 116
+#define CSS_VAL_AUTO 117
+#define CSS_VAL_CROSSHAIR 118
+#define CSS_VAL_DEFAULT 119
+#define CSS_VAL_POINTER 120
+#define CSS_VAL_MOVE 121
+#define CSS_VAL_E_RESIZE 122
+#define CSS_VAL_NE_RESIZE 123
+#define CSS_VAL_NW_RESIZE 124
+#define CSS_VAL_N_RESIZE 125
+#define CSS_VAL_SE_RESIZE 126
+#define CSS_VAL_SW_RESIZE 127
+#define CSS_VAL_S_RESIZE 128
+#define CSS_VAL_W_RESIZE 129
+#define CSS_VAL_TEXT 130
+#define CSS_VAL_WAIT 131
+#define CSS_VAL_HELP 132
+#define CSS_VAL_LTR 133
+#define CSS_VAL_RTL 134
+#define CSS_VAL_CAPITALIZE 135
+#define CSS_VAL_UPPERCASE 136
+#define CSS_VAL_LOWERCASE 137
+#define CSS_VAL_VISIBLE 138
+#define CSS_VAL_COLLAPSE 139
+#define CSS_VAL_ABOVE 140
+#define CSS_VAL_ABSOLUTE 141
+#define CSS_VAL_ALWAYS 142
+#define CSS_VAL_AVOID 143
+#define CSS_VAL_BELOW 144
+#define CSS_VAL_BIDI_OVERRIDE 145
+#define CSS_VAL_BLINK 146
+#define CSS_VAL_BOTH 147
+#define CSS_VAL_CLOSE_QUOTE 148
+#define CSS_VAL_CROP 149
+#define CSS_VAL_CROSS 150
+#define CSS_VAL_EMBED 151
+#define CSS_VAL_FIXED 152
+#define CSS_VAL_HAND 153
+#define CSS_VAL_HIDE 154
+#define CSS_VAL_HIGHER 155
+#define CSS_VAL_INVERT 156
+#define CSS_VAL_LANDSCAPE 157
+#define CSS_VAL_LEVEL 158
+#define CSS_VAL_LINE_THROUGH 159
+#define CSS_VAL_LOUD 160
+#define CSS_VAL_LOWER 161
+#define CSS_VAL_MIX 162
+#define CSS_VAL_NO_CLOSE_QUOTE 163
+#define CSS_VAL_NO_OPEN_QUOTE 164
+#define CSS_VAL_NOWRAP 165
+#define CSS_VAL_OPEN_QUOTE 166
+#define CSS_VAL_OVERLINE 167
+#define CSS_VAL_PORTRAIT 168
+#define CSS_VAL_PRE 169
+#define CSS_VAL_RELATIVE 170
+#define CSS_VAL_SCROLL 171
+#define CSS_VAL_SEPARATE 172
+#define CSS_VAL_SHOW 173
+#define CSS_VAL_STATIC 174
+#define CSS_VAL_STATIC_POSITION 175
+#define CSS_VAL_THICK 176
+#define CSS_VAL_THIN 177
+#define CSS_VAL_UNDERLINE 178
+#define CSS_VAL__KONQ_NORMAL 179
+#define CSS_VAL__KONQ_AROUND_FLOATS 180
+
+#define CSS_VAL_TOTAL 181
+#endif
+
diff --git a/WebCore/khtml/ecma/.cvsignore b/WebCore/khtml/ecma/.cvsignore
index 680bee0..e440faf 100644
--- a/WebCore/khtml/ecma/.cvsignore
+++ b/WebCore/khtml/ecma/.cvsignore
@@ -1,4 +1,3 @@
 Makefile.in
 Makefile
 .deps
-*.lut.h
diff --git a/WebCore/khtml/ecma/kjs_css.lut.h b/WebCore/khtml/ecma/kjs_css.lut.h
new file mode 100644
index 0000000..5586eb1
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_css.lut.h
@@ -0,0 +1,373 @@
+/* Automatically generated from kjs_css.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry DOMCSSStyleDeclarationProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getPropertyValue", DOMCSSStyleDeclaration::GetPropertyValue, DontDelete|Function, 1, &DOMCSSStyleDeclarationProtoTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { "getPropertyCSSValue", DOMCSSStyleDeclaration::GetPropertyCSSValue, DontDelete|Function, 1, 0 },
+   { "removeProperty", DOMCSSStyleDeclaration::RemoveProperty, DontDelete|Function, 1, &DOMCSSStyleDeclarationProtoTableEntries[8] },
+   { "getPropertyPriority", DOMCSSStyleDeclaration::GetPropertyPriority, DontDelete|Function, 1, &DOMCSSStyleDeclarationProtoTableEntries[9] },
+   { "setProperty", DOMCSSStyleDeclaration::SetProperty, DontDelete|Function, 3, &DOMCSSStyleDeclarationProtoTableEntries[10] },
+   { "item", DOMCSSStyleDeclaration::Item, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMCSSStyleDeclarationProtoTable = { 2, 11, DOMCSSStyleDeclarationProtoTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSStyleDeclarationTableEntries[] = {
+   { "cssText", DOMCSSStyleDeclaration::CssText, DontDelete, 0, &DOMCSSStyleDeclarationTableEntries[3] },
+   { 0, 0, 0, 0, 0 },
+   { "parentRule", DOMCSSStyleDeclaration::ParentRule, DontDelete|ReadOnly, 0, 0 },
+   { "length", DOMCSSStyleDeclaration::Length, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSStyleDeclarationTable = { 2, 4, DOMCSSStyleDeclarationTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMStyleSheetTableEntries[] = {
+   { "ownerNode", DOMStyleSheet::OwnerNode, DontDelete|ReadOnly, 0, &DOMStyleSheetTableEntries[7] },
+   { "href", DOMStyleSheet::Href, DontDelete|ReadOnly, 0, &DOMStyleSheetTableEntries[8] },
+   { "type", DOMStyleSheet::Type, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "parentStyleSheet", DOMStyleSheet::ParentStyleSheet, DontDelete|ReadOnly, 0, 0 },
+   { "disabled", DOMStyleSheet::Disabled, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "title", DOMStyleSheet::Title, DontDelete|ReadOnly, 0, 0 },
+   { "media", DOMStyleSheet::Media, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMStyleSheetTable = { 2, 9, DOMStyleSheetTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMStyleSheetListTableEntries[] = {
+   { "length", DOMStyleSheetList::Length, DontDelete|ReadOnly, 0, 0 },
+   { "item", DOMStyleSheetList::Item, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMStyleSheetListTable = { 2, 2, DOMStyleSheetListTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMMediaListTableEntries[] = {
+   { "length", DOMMediaList::Length, DontDelete|ReadOnly, 0, 0 },
+   { "mediaText", DOMMediaList::MediaText, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMMediaListTable = { 2, 2, DOMMediaListTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMMediaListProtoTableEntries[] = {
+   { "deleteMedium", DOMMediaList::DeleteMedium, DontDelete|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "item", DOMMediaList::Item, DontDelete|Function, 1, &DOMMediaListProtoTableEntries[3] },
+   { "appendMedium", DOMMediaList::AppendMedium, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMMediaListProtoTable = { 2, 4, DOMMediaListProtoTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSStyleSheetTableEntries[] = {
+   { "cssRules", DOMCSSStyleSheet::CssRules, DontDelete|ReadOnly, 0, 0 },
+   { "ownerRule", DOMCSSStyleSheet::OwnerRule, DontDelete|ReadOnly, 0, &DOMCSSStyleSheetTableEntries[2] },
+   { "rules", DOMCSSStyleSheet::Rules, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSStyleSheetTable = { 2, 3, DOMCSSStyleSheetTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSStyleSheetProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "insertRule", DOMCSSStyleSheet::InsertRule, DontDelete|Function, 2, &DOMCSSStyleSheetProtoTableEntries[2] },
+   { "deleteRule", DOMCSSStyleSheet::DeleteRule, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMCSSStyleSheetProtoTable = { 2, 3, DOMCSSStyleSheetProtoTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSRuleListTableEntries[] = {
+   { "length", DOMCSSRuleList::Length, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "item", DOMCSSRuleList::Item, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMCSSRuleListTable = { 2, 3, DOMCSSRuleListTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSRuleTableEntries[] = {
+   { "parentStyleSheet", DOMCSSRule::ParentStyleSheet, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "type", DOMCSSRule::Type, DontDelete|ReadOnly, 0, &DOMCSSRuleTableEntries[4] },
+   { 0, 0, 0, 0, 0 },
+   { "cssText", DOMCSSRule::CssText, DontDelete|ReadOnly, 0, &DOMCSSRuleTableEntries[5] },
+   { "parentRule", DOMCSSRule::ParentRule, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSRuleTable = { 2, 6, DOMCSSRuleTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSStyleRuleTableEntries[] = {
+   { "selectorText", DOMCSSRule::Style_SelectorText, DontDelete, 0, 0 },
+   { "style", DOMCSSRule::Style_Style, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSStyleRuleTable = { 2, 2, DOMCSSStyleRuleTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSMediaRuleTableEntries[] = {
+   { "media", DOMCSSRule::Media_Media, DontDelete|ReadOnly, 0, &DOMCSSMediaRuleTableEntries[4] },
+   { "insertRule", DOMCSSRule::Media_InsertRule, DontDelete|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "deleteRule", DOMCSSRule::Media_DeleteRule, DontDelete|Function, 1, 0 },
+   { "cssRules", DOMCSSRule::Media_CssRules, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSMediaRuleTable = { 2, 5, DOMCSSMediaRuleTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSFontFaceRuleTableEntries[] = {
+   { "style", DOMCSSRule::FontFace_Style, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSFontFaceRuleTable = { 2, 1, DOMCSSFontFaceRuleTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSPageRuleTableEntries[] = {
+   { "selectorText", DOMCSSRule::Page_SelectorText, DontDelete, 0, 0 },
+   { "style", DOMCSSRule::Page_Style, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSPageRuleTable = { 2, 2, DOMCSSPageRuleTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSImportRuleTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "href", DOMCSSRule::Import_Href, DontDelete|ReadOnly, 0, &DOMCSSImportRuleTableEntries[3] },
+   { "media", DOMCSSRule::Import_Media, DontDelete|ReadOnly, 0, 0 },
+   { "styleSheet", DOMCSSRule::Import_StyleSheet, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSImportRuleTable = { 2, 4, DOMCSSImportRuleTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSCharsetRuleTableEntries[] = {
+   { "encoding", DOMCSSRule::Charset_Encoding, DontDelete, 0, 0 }
+};
+
+const struct HashTable DOMCSSCharsetRuleTable = { 2, 1, DOMCSSCharsetRuleTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry CSSRuleConstructorTableEntries[] = {
+   { "IMPORT_RULE", CSSRuleConstructor::IMPORT_RULE, DontDelete|ReadOnly, 0, 0 },
+   { "UNKNOWN_RULE", CSSRuleConstructor::UNKNOWN_RULE, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "STYLE_RULE", CSSRuleConstructor::STYLE_RULE, DontDelete|ReadOnly, 0, &CSSRuleConstructorTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { "CHARSET_RULE", CSSRuleConstructor::CHARSET_RULE, DontDelete|ReadOnly, 0, 0 },
+   { "FONT_FACE_RULE", CSSRuleConstructor::FONT_FACE_RULE, DontDelete|ReadOnly, 0, &CSSRuleConstructorTableEntries[8] },
+   { "MEDIA_RULE", CSSRuleConstructor::MEDIA_RULE, DontDelete|ReadOnly, 0, 0 },
+   { "PAGE_RULE", CSSRuleConstructor::PAGE_RULE, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable CSSRuleConstructorTable = { 2, 9, CSSRuleConstructorTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSValueTableEntries[] = {
+   { "cssText", DOMCSSValue::CssText, DontDelete|ReadOnly, 0, &DOMCSSValueTableEntries[2] },
+   { 0, 0, 0, 0, 0 },
+   { "cssValueType", DOMCSSValue::CssValueType, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSValueTable = { 2, 3, DOMCSSValueTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry CSSValueConstructorTableEntries[] = {
+   { "CSS_VALUE_LIST", CSSValueConstructor::CSS_VALUE_LIST, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_PRIMITIVE_VALUE", CSSValueConstructor::CSS_PRIMITIVE_VALUE, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_CUSTOM", CSSValueConstructor::CSS_CUSTOM, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_INHERIT", CSSValueConstructor::CSS_INHERIT, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable CSSValueConstructorTable = { 2, 5, CSSValueConstructorTableEntries, 5 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSPrimitiveValueTableEntries[] = {
+   { "primitiveType", DOMCSSPrimitiveValue::PrimitiveType, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCSSPrimitiveValueTable = { 2, 1, DOMCSSPrimitiveValueTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSPrimitiveValueProtoTableEntries[] = {
+   { "getRectValue", DOMCSSPrimitiveValue::GetRectValue, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setFloatValue", DOMCSSPrimitiveValue::SetFloatValue, DontDelete|Function, 2, &DOMCSSPrimitiveValueProtoTableEntries[3] },
+   { "getFloatValue", DOMCSSPrimitiveValue::GetFloatValue, DontDelete|Function, 1, &DOMCSSPrimitiveValueProtoTableEntries[4] },
+   { "setStringValue", DOMCSSPrimitiveValue::SetStringValue, DontDelete|Function, 2, &DOMCSSPrimitiveValueProtoTableEntries[5] },
+   { "getStringValue", DOMCSSPrimitiveValue::GetStringValue, DontDelete|Function, 0, &DOMCSSPrimitiveValueProtoTableEntries[6] },
+   { "getCounterValue", DOMCSSPrimitiveValue::GetCounterValue, DontDelete|Function, 0, &DOMCSSPrimitiveValueProtoTableEntries[7] },
+   { "getRGBColorValue", DOMCSSPrimitiveValue::GetRGBColorValue, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable DOMCSSPrimitiveValueProtoTable = { 2, 8, DOMCSSPrimitiveValueProtoTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry CSSPrimitiveValueConstructorTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "CSS_EXS", DOM::CSSPrimitiveValue::CSS_EXS, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[32] },
+   { "CSS_NUMBER", DOM::CSSPrimitiveValue::CSS_NUMBER, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[29] },
+   { "CSS_RAD", DOM::CSSPrimitiveValue::CSS_RAD, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_HZ", DOM::CSSPrimitiveValue::CSS_HZ, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_PT", DOM::CSSPrimitiveValue::CSS_PT, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[30] },
+   { "CSS_DIMENSION", DOM::CSSPrimitiveValue::CSS_DIMENSION, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_COUNTER", DOM::CSSPrimitiveValue::CSS_COUNTER, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_PERCENTAGE", DOM::CSSPrimitiveValue::CSS_PERCENTAGE, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[34] },
+   { "CSS_PX", DOM::CSSPrimitiveValue::CSS_PX, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_RGBCOLOR", DOM::CSSPrimitiveValue::CSS_RGBCOLOR, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_CM", DOM::CSSPrimitiveValue::CSS_CM, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_PC", DOM::CSSPrimitiveValue::CSS_PC, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[31] },
+   { "CSS_EMS", DOM::CSSPrimitiveValue::CSS_EMS, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_IN", DOM::CSSPrimitiveValue::CSS_IN, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[28] },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_ATTR", DOM::CSSPrimitiveValue::CSS_ATTR, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_MM", DOM::CSSPrimitiveValue::CSS_MM, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[27] },
+   { "CSS_UNKNOWN", DOM::CSSPrimitiveValue::CSS_UNKNOWN, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_KHZ", DOM::CSSPrimitiveValue::CSS_KHZ, DontDelete|ReadOnly, 0, &CSSPrimitiveValueConstructorTableEntries[33] },
+   { 0, 0, 0, 0, 0 },
+   { "CSS_DEG", DOM::CSSPrimitiveValue::CSS_DEG, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_GRAD", DOM::CSSPrimitiveValue::CSS_GRAD, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_MS", DOM::CSSPrimitiveValue::CSS_MS, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_S", DOM::CSSPrimitiveValue::CSS_S, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_STRING", DOM::CSSPrimitiveValue::CSS_STRING, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_URI", DOM::CSSPrimitiveValue::CSS_URI, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_IDENT", DOM::CSSPrimitiveValue::CSS_IDENT, DontDelete|ReadOnly, 0, 0 },
+   { "CSS_RECT", DOM::CSSPrimitiveValue::CSS_RECT, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable CSSPrimitiveValueConstructorTable = { 2, 35, CSSPrimitiveValueConstructorTableEntries, 27 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCSSValueListTableEntries[] = {
+   { "length", DOMCSSValueList::Length, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "item", DOMCSSValueList::Item, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMCSSValueListTable = { 2, 3, DOMCSSValueListTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMRGBColorTableEntries[] = {
+   { "red", DOMRGBColor::Red, DontDelete|ReadOnly, 0, 0 },
+   { "green", DOMRGBColor::Green, DontDelete|ReadOnly, 0, &DOMRGBColorTableEntries[3] },
+   { 0, 0, 0, 0, 0 },
+   { "blue", DOMRGBColor::Blue, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMRGBColorTable = { 2, 4, DOMRGBColorTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMRectTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "bottom", DOMRect::Bottom, DontDelete|ReadOnly, 0, 0 },
+   { "right", DOMRect::Right, DontDelete|ReadOnly, 0, 0 },
+   { "top", DOMRect::Top, DontDelete|ReadOnly, 0, &DOMRectTableEntries[4] },
+   { "left", DOMRect::Left, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMRectTable = { 2, 5, DOMRectTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCounterTableEntries[] = {
+   { "identifier", DOMCounter::identifier, DontDelete|ReadOnly, 0, 0 },
+   { "listStyle", DOMCounter::listStyle, DontDelete|ReadOnly, 0, 0 },
+   { "separator", DOMCounter::separator, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCounterTable = { 2, 3, DOMCounterTableEntries, 3 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_dom.lut.h b/WebCore/khtml/ecma/kjs_dom.lut.h
new file mode 100644
index 0000000..3d2d580
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_dom.lut.h
@@ -0,0 +1,388 @@
+/* Automatically generated from kjs_dom.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry DOMNodeProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "hasAttributes", DOMNode::HasAttributes, DontDelete|Function, 0, 0 },
+   { "normalize", DOMNode::Normalize, DontDelete|Function, 0, 0 },
+   { "isSupported", DOMNode::IsSupported, DontDelete|Function, 2, 0 },
+   { "removeEventListener", DOMNode::RemoveEventListener, DontDelete|Function, 3, 0 },
+   { "hasChildNodes", DOMNode::HasChildNodes, DontDelete|Function, 0, &DOMNodeProtoTableEntries[15] },
+   { 0, 0, 0, 0, 0 },
+   { "replaceChild", DOMNode::ReplaceChild, DontDelete|Function, 2, &DOMNodeProtoTableEntries[13] },
+   { "insertBefore", DOMNode::InsertBefore, DontDelete|Function, 2, 0 },
+   { "cloneNode", DOMNode::CloneNode, DontDelete|Function, 1, 0 },
+   { "dispatchEvent", DOMNode::DispatchEvent, DontDelete|Function, 1, 0 },
+   { "appendChild", DOMNode::AppendChild, DontDelete|Function, 1, &DOMNodeProtoTableEntries[14] },
+   { 0, 0, 0, 0, 0 },
+   { "removeChild", DOMNode::RemoveChild, DontDelete|Function, 1, 0 },
+   { "addEventListener", DOMNode::AddEventListener, DontDelete|Function, 3, 0 },
+   { "contains", DOMNode::Contains, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMNodeProtoTable = { 2, 16, DOMNodeProtoTableEntries, 13 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMNodeTableEntries[] = {
+   { "offsetTop", DOMNode::OffsetTop, DontDelete|ReadOnly, 0, 0 },
+   { "onload", DOMNode::OnLoad, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "onmouseout", DOMNode::OnMouseOut, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "localName", DOMNode::LocalName, DontDelete|ReadOnly, 0, 0 },
+   { "ownerDocument", DOMNode::OwnerDocument, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[64] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "nodeName", DOMNode::NodeName, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[55] },
+   { "onselect", DOMNode::OnSelect, DontDelete, 0, 0 },
+   { "childNodes", DOMNode::ChildNodes, DontDelete|ReadOnly, 0, 0 },
+   { "previousSibling", DOMNode::PreviousSibling, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[53] },
+   { "onunload", DOMNode::OnUnload, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "prefix", DOMNode::Prefix, DontDelete, 0, 0 },
+   { "lastChild", DOMNode::LastChild, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "clientHeight", DOMNode::ClientHeight, DontDelete|ReadOnly, 0, 0 },
+   { "onblur", DOMNode::OnBlur, DontDelete, 0, 0 },
+   { "onfocus", DOMNode::OnFocus, DontDelete, 0, 0 },
+   { "onmove", DOMNode::OnMove, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "onreset", DOMNode::OnReset, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "firstChild", DOMNode::FirstChild, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[61] },
+   { "nodeValue", DOMNode::NodeValue, DontDelete, 0, 0 },
+   { "onresize", DOMNode::OnResize, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "parentNode", DOMNode::ParentNode, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[56] },
+   { 0, 0, 0, 0, 0 },
+   { "attributes", DOMNode::Attributes, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[59] },
+   { "onkeydown", DOMNode::OnKeyDown, DontDelete, 0, 0 },
+   { "onkeyup", DOMNode::OnKeyUp, DontDelete, 0, 0 },
+   { "ondblclick", DOMNode::OnDblClick, DontDelete, 0, &DOMNodeTableEntries[63] },
+   { "parentElement", DOMNode::ParentElement, DontDelete|ReadOnly, 0, 0 },
+   { "onchange", DOMNode::OnChange, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "scrollLeft", DOMNode::ScrollLeft, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "nodeType", DOMNode::NodeType, DontDelete|ReadOnly, 0, 0 },
+   { "nextSibling", DOMNode::NextSibling, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[60] },
+   { "onkeypress", DOMNode::OnKeyPress, DontDelete, 0, &DOMNodeTableEntries[57] },
+   { "onmousedown", DOMNode::OnMouseDown, DontDelete, 0, 0 },
+   { "onmouseup", DOMNode::OnMouseUp, DontDelete, 0, 0 },
+   { "onclick", DOMNode::OnClick, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "onmouseover", DOMNode::OnMouseOver, DontDelete, 0, 0 },
+   { "namespaceURI", DOMNode::NamespaceURI, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[54] },
+   { "onabort", DOMNode::OnAbort, DontDelete, 0, 0 },
+   { "ondragdrop", DOMNode::OnDragDrop, DontDelete, 0, 0 },
+   { "onerror", DOMNode::OnError, DontDelete, 0, &DOMNodeTableEntries[58] },
+   { "onmousemove", DOMNode::OnMouseMove, DontDelete, 0, 0 },
+   { "onsubmit", DOMNode::OnSubmit, DontDelete, 0, 0 },
+   { "offsetLeft", DOMNode::OffsetLeft, DontDelete|ReadOnly, 0, 0 },
+   { "offsetWidth", DOMNode::OffsetWidth, DontDelete|ReadOnly, 0, &DOMNodeTableEntries[62] },
+   { "offsetHeight", DOMNode::OffsetHeight, DontDelete|ReadOnly, 0, 0 },
+   { "offsetParent", DOMNode::OffsetParent, DontDelete|ReadOnly, 0, 0 },
+   { "clientWidth", DOMNode::ClientWidth, DontDelete|ReadOnly, 0, 0 },
+   { "scrollTop", DOMNode::ScrollTop, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMNodeTable = { 2, 65, DOMNodeTableEntries, 53 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMAttrTableEntries[] = {
+   { "specified", DOMAttr::Specified, DontDelete|ReadOnly, 0, 0 },
+   { "value", DOMAttr::ValueProperty, DontDelete|ReadOnly, 0, 0 },
+   { "name", DOMAttr::Name, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "ownerElement", DOMAttr::OwnerElement, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMAttrTable = { 2, 5, DOMAttrTableEntries, 5 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMDocumentProtoTableEntries[] = {
+   { "createCDATASection", DOMDocument::CreateCDATASection, DontDelete|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "createDocumentFragment", DOMDocument::CreateDocumentFragment, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[28] },
+   { 0, 0, 0, 0, 0 },
+   { "getElementsByTagName", DOMDocument::GetElementsByTagName, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[25] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "createElement", DOMDocument::CreateElement, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[23] },
+   { "createTreeWalker", DOMDocument::CreateTreeWalker, DontDelete|Function, 4, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "createAttribute", DOMDocument::CreateAttribute, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[24] },
+   { "createTextNode", DOMDocument::CreateTextNode, DontDelete|Function, 1, 0 },
+   { "createEntityReference", DOMDocument::CreateEntityReference, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[26] },
+   { "createProcessingInstruction", DOMDocument::CreateProcessingInstruction, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[29] },
+   { 0, 0, 0, 0, 0 },
+   { "createComment", DOMDocument::CreateComment, DontDelete|Function, 1, &DOMDocumentProtoTableEntries[27] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "createNodeIterator", DOMDocument::CreateNodeIterator, DontDelete|Function, 3, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "importNode", DOMDocument::ImportNode, DontDelete|Function, 2, 0 },
+   { "createElementNS", DOMDocument::CreateElementNS, DontDelete|Function, 2, 0 },
+   { "createAttributeNS", DOMDocument::CreateAttributeNS, DontDelete|Function, 2, 0 },
+   { "getElementsByTagNameNS", DOMDocument::GetElementsByTagNameNS, DontDelete|Function, 2, 0 },
+   { "getElementById", DOMDocument::GetElementById, DontDelete|Function, 1, 0 },
+   { "createRange", DOMDocument::CreateRange, DontDelete|Function, 0, 0 },
+   { "defaultView", DOMDocument::DefaultView, DontDelete|Function, 0, &DOMDocumentProtoTableEntries[30] },
+   { "createEvent", DOMDocument::CreateEvent, DontDelete|Function, 1, 0 },
+   { "getOverrideStyle", DOMDocument::GetOverrideStyle, DontDelete|Function, 2, 0 }
+};
+
+const struct HashTable DOMDocumentProtoTable = { 2, 31, DOMDocumentProtoTableEntries, 23 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMDocumentTableEntries[] = {
+   { "doctype", DOMDocument::DocType, DontDelete|ReadOnly, 0, 0 },
+   { "documentElement", DOMDocument::DocumentElement, DontDelete|ReadOnly, 0, &DOMDocumentTableEntries[4] },
+   { "implementation", DOMDocument::Implementation, DontDelete|ReadOnly, 0, &DOMDocumentTableEntries[6] },
+   { "selectedStylesheetSet", DOMDocument::SelectedStylesheetSet, DontDelete, 0, 0 },
+   { "styleSheets", DOMDocument::StyleSheets, DontDelete|ReadOnly, 0, &DOMDocumentTableEntries[5] },
+   { "preferredStylesheetSet", DOMDocument::PreferredStylesheetSet, DontDelete|ReadOnly, 0, 0 },
+   { "readyState", DOMDocument::ReadyState, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMDocumentTable = { 2, 7, DOMDocumentTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMElementProtoTableEntries[] = {
+   { "getAttributeNodeNS", DOMElement::GetAttributeNodeNS, DontDelete|Function, 2, 0 },
+   { "getAttributeNS", DOMElement::GetAttributeNS, DontDelete|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "removeAttributeNode", DOMElement::RemoveAttributeNode, DontDelete|Function, 1, 0 },
+   { "removeAttribute", DOMElement::RemoveAttribute, DontDelete|Function, 1, &DOMElementProtoTableEntries[17] },
+   { "setAttribute", DOMElement::SetAttribute, DontDelete|Function, 2, 0 },
+   { "hasAttribute", DOMElement::HasAttribute, DontDelete|Function, 1, 0 },
+   { "getElementsByTagNameNS", DOMElement::GetElementsByTagNameNS, DontDelete|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getAttributeNode", DOMElement::GetAttributeNode, DontDelete|Function, 1, 0 },
+   { "getAttribute", DOMElement::GetAttribute, DontDelete|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "removeAttributeNS", DOMElement::RemoveAttributeNS, DontDelete|Function, 2, &DOMElementProtoTableEntries[18] },
+   { "setAttributeNS", DOMElement::SetAttributeNS, DontDelete|Function, 3, 0 },
+   { "hasAttributeNS", DOMElement::HasAttributeNS, DontDelete|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getElementsByTagName", DOMElement::GetElementsByTagName, DontDelete|Function, 1, 0 },
+   { "setAttributeNode", DOMElement::SetAttributeNode, DontDelete|Function, 2, 0 },
+   { "setAttributeNodeNS", DOMElement::SetAttributeNodeNS, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMElementProtoTable = { 2, 19, DOMElementProtoTableEntries, 17 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMElementTableEntries[] = {
+   { "style", DOMElement::Style, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "tagName", DOMElement::TagName, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMElementTable = { 2, 3, DOMElementTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMDOMImplementationProtoTableEntries[] = {
+   { "createCSSStyleSheet", DOMDOMImplementation::CreateCSSStyleSheet, DontDelete|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "hasFeature", DOMDOMImplementation::HasFeature, DontDelete|Function, 2, &DOMDOMImplementationProtoTableEntries[5] },
+   { "createHTMLDocument", DOMDOMImplementation::CreateHTMLDocument, DontDelete|Function, 1, 0 },
+   { "createDocument", DOMDOMImplementation::CreateDocument, DontDelete|Function, 3, 0 },
+   { "createDocumentType", DOMDOMImplementation::CreateDocumentType, DontDelete|Function, 3, 0 }
+};
+
+const struct HashTable DOMDOMImplementationProtoTable = { 2, 6, DOMDOMImplementationProtoTableEntries, 5 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMDocumentTypeTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "notations", DOMDocumentType::Notations, DontDelete|ReadOnly, 0, 0 },
+   { "publicId", DOMDocumentType::PublicId, DontDelete|ReadOnly, 0, 0 },
+   { "name", DOMDocumentType::Name, DontDelete|ReadOnly, 0, &DOMDocumentTypeTableEntries[6] },
+   { "systemId", DOMDocumentType::SystemId, DontDelete|ReadOnly, 0, 0 },
+   { "entities", DOMDocumentType::Entities, DontDelete|ReadOnly, 0, 0 },
+   { "internalSubset", DOMDocumentType::InternalSubset, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMDocumentTypeTable = { 2, 7, DOMDocumentTypeTableEntries, 6 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMNamedNodeMapProtoTableEntries[] = {
+   { "getNamedItem", DOMNamedNodeMap::GetNamedItem, DontDelete|Function, 1, &DOMNamedNodeMapProtoTableEntries[8] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "item", DOMNamedNodeMap::Item, DontDelete|Function, 1, 0 },
+   { "setNamedItem", DOMNamedNodeMap::SetNamedItem, DontDelete|Function, 1, &DOMNamedNodeMapProtoTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { "removeNamedItem", DOMNamedNodeMap::RemoveNamedItem, DontDelete|Function, 1, &DOMNamedNodeMapProtoTableEntries[9] },
+   { "getNamedItemNS", DOMNamedNodeMap::GetNamedItemNS, DontDelete|Function, 2, 0 },
+   { "setNamedItemNS", DOMNamedNodeMap::SetNamedItemNS, DontDelete|Function, 1, &DOMNamedNodeMapProtoTableEntries[10] },
+   { "removeNamedItemNS", DOMNamedNodeMap::RemoveNamedItemNS, DontDelete|Function, 2, 0 }
+};
+
+const struct HashTable DOMNamedNodeMapProtoTable = { 2, 11, DOMNamedNodeMapProtoTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMProcessingInstructionTableEntries[] = {
+   { "sheet", DOMProcessingInstruction::Sheet, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "target", DOMProcessingInstruction::Target, DontDelete|ReadOnly, 0, &DOMProcessingInstructionTableEntries[3] },
+   { "data", DOMProcessingInstruction::Data, DontDelete, 0, 0 }
+};
+
+const struct HashTable DOMProcessingInstructionTable = { 2, 4, DOMProcessingInstructionTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMNotationTableEntries[] = {
+   { "publicId", DOMNotation::PublicId, DontDelete|ReadOnly, 0, &DOMNotationTableEntries[2] },
+   { 0, 0, 0, 0, 0 },
+   { "systemId", DOMNotation::SystemId, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMNotationTable = { 2, 3, DOMNotationTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMEntityTableEntries[] = {
+   { "publicId", DOMEntity::PublicId, DontDelete|ReadOnly, 0, &DOMEntityTableEntries[2] },
+   { "notationName", DOMEntity::NotationName, DontDelete|ReadOnly, 0, 0 },
+   { "systemId", DOMEntity::SystemId, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMEntityTable = { 2, 3, DOMEntityTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry NodeConstructorTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "CDATA_SECTION_NODE", DOM::Node::CDATA_SECTION_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "ATTRIBUTE_NODE", DOM::Node::ATTRIBUTE_NODE, DontDelete|ReadOnly, 0, &NodeConstructorTableEntries[12] },
+   { "DOCUMENT_FRAGMENT_NODE", DOM::Node::DOCUMENT_FRAGMENT_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "DOCUMENT_TYPE_NODE", DOM::Node::DOCUMENT_TYPE_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "DOCUMENT_NODE", DOM::Node::DOCUMENT_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "COMMENT_NODE", DOM::Node::COMMENT_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "ENTITY_NODE", DOM::Node::ENTITY_NODE, DontDelete|ReadOnly, 0, &NodeConstructorTableEntries[13] },
+   { "ELEMENT_NODE", DOM::Node::ELEMENT_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "TEXT_NODE", DOM::Node::TEXT_NODE, DontDelete|ReadOnly, 0, &NodeConstructorTableEntries[11] },
+   { "ENTITY_REFERENCE_NODE", DOM::Node::ENTITY_REFERENCE_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "PROCESSING_INSTRUCTION_NODE", DOM::Node::PROCESSING_INSTRUCTION_NODE, DontDelete|ReadOnly, 0, 0 },
+   { "NOTATION_NODE", DOM::Node::NOTATION_NODE, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable NodeConstructorTable = { 2, 14, NodeConstructorTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMExceptionConstructorTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "WRONG_DOCUMENT_ERR", DOM::DOMException::WRONG_DOCUMENT_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "INUSE_ATTRIBUTE_ERR", DOM::DOMException::INUSE_ATTRIBUTE_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "INDEX_SIZE_ERR", DOM::DOMException::INDEX_SIZE_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "INVALID_CHARACTER_ERR", DOM::DOMException::INVALID_CHARACTER_ERR, DontDelete|ReadOnly, 0, &DOMExceptionConstructorTableEntries[17] },
+   { "NAMESPACE_ERR", DOM::DOMException::NAMESPACE_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "NO_DATA_ALLOWED_ERR", DOM::DOMException::NO_DATA_ALLOWED_ERR, DontDelete|ReadOnly, 0, &DOMExceptionConstructorTableEntries[16] },
+   { "DOMSTRING_SIZE_ERR", DOM::DOMException::DOMSTRING_SIZE_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "NOT_FOUND_ERR", DOM::DOMException::NOT_FOUND_ERR, DontDelete|ReadOnly, 0, &DOMExceptionConstructorTableEntries[15] },
+   { 0, 0, 0, 0, 0 },
+   { "NO_MODIFICATION_ALLOWED_ERR", DOM::DOMException::NO_MODIFICATION_ALLOWED_ERR, DontDelete|ReadOnly, 0, &DOMExceptionConstructorTableEntries[18] },
+   { "HIERARCHY_REQUEST_ERR", DOM::DOMException::HIERARCHY_REQUEST_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "INVALID_MODIFICATION_ERR", DOM::DOMException::INVALID_MODIFICATION_ERR, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "NOT_SUPPORTED_ERR", DOM::DOMException::NOT_SUPPORTED_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "INVALID_STATE_ERR", DOM::DOMException::INVALID_STATE_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "SYNTAX_ERR", DOM::DOMException::SYNTAX_ERR, DontDelete|ReadOnly, 0, 0 },
+   { "INVALID_ACCESS_ERR", DOM::DOMException::INVALID_ACCESS_ERR, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMExceptionConstructorTable = { 2, 19, DOMExceptionConstructorTableEntries, 15 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCharacterDataTableEntries[] = {
+   { "data", DOMCharacterData::Data, DontDelete, 0, &DOMCharacterDataTableEntries[2] },
+   { 0, 0, 0, 0, 0 },
+   { "length", DOMCharacterData::Length, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMCharacterDataTable = { 2, 3, DOMCharacterDataTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMCharacterDataProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "appendData", DOMCharacterData::AppendData, DontDelete|Function, 1, 0 },
+   { "insertData", DOMCharacterData::InsertData, DontDelete|Function, 2, 0 },
+   { "deleteData", DOMCharacterData::DeleteData, DontDelete|Function, 2, &DOMCharacterDataProtoTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { "substringData", DOMCharacterData::SubstringData, DontDelete|Function, 2, 0 },
+   { "replaceData", DOMCharacterData::ReplaceData, DontDelete|Function, 2, 0 }
+};
+
+const struct HashTable DOMCharacterDataProtoTable = { 2, 8, DOMCharacterDataProtoTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMTextProtoTableEntries[] = {
+   { "splitText", DOMText::SplitText, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable DOMTextProtoTable = { 2, 1, DOMTextProtoTableEntries, 1 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_events.lut.h b/WebCore/khtml/ecma/kjs_events.lut.h
new file mode 100644
index 0000000..0038fff
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_events.lut.h
@@ -0,0 +1,169 @@
+/* Automatically generated from kjs_events.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry EventConstructorTableEntries[] = {
+   { "CAPTURING_PHASE", DOM::Event::CAPTURING_PHASE, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[3] },
+   { "BUBBLING_PHASE", DOM::Event::BUBBLING_PHASE, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[6] },
+   { "MOUSEOUT", 8, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[7] },
+   { "AT_TARGET", DOM::Event::AT_TARGET, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[4] },
+   { "MOUSEDOWN", 1, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[5] },
+   { "MOUSEUP", 2, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[13] },
+   { "MOUSEOVER", 4, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[8] },
+   { "MOUSEMOVE", 16, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[11] },
+   { "MOUSEDRAG", 32, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[9] },
+   { "CLICK", 64, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[10] },
+   { "DBLCLICK", 128, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[14] },
+   { "KEYDOWN", 256, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[12] },
+   { "KEYUP", 512, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[18] },
+   { "KEYPRESS", 1024, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[15] },
+   { "DRAGDROP", 2048, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[17] },
+   { "FOCUS", 4096, DontDelete|ReadOnly, 0, &EventConstructorTableEntries[16] },
+   { "BLUR", 8192, DontDelete|ReadOnly, 0, 0 },
+   { "SELECT", 16384, DontDelete|ReadOnly, 0, 0 },
+   { "CHANGE", 32768, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable EventConstructorTable = { 2, 19, EventConstructorTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMEventTableEntries[] = {
+   { "currentTarget", DOMEvent::CurrentTarget, DontDelete|ReadOnly, 0, &DOMEventTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { "type", DOMEvent::Type, DontDelete|ReadOnly, 0, 0 },
+   { "target", DOMEvent::Target, DontDelete|ReadOnly, 0, &DOMEventTableEntries[9] },
+   { 0, 0, 0, 0, 0 },
+   { "returnValue", DOMEvent::ReturnValue, DontDelete, 0, &DOMEventTableEntries[11] },
+   { "srcElement", DOMEvent::SrcElement, DontDelete|ReadOnly, 0, 0 },
+   { "eventPhase", DOMEvent::EventPhase, DontDelete|ReadOnly, 0, &DOMEventTableEntries[8] },
+   { "bubbles", DOMEvent::Bubbles, DontDelete|ReadOnly, 0, 0 },
+   { "cancelable", DOMEvent::Cancelable, DontDelete|ReadOnly, 0, &DOMEventTableEntries[10] },
+   { "timeStamp", DOMEvent::TimeStamp, DontDelete|ReadOnly, 0, 0 },
+   { "cancelBubble", DOMEvent::CancelBubble, DontDelete, 0, 0 }
+};
+
+const struct HashTable DOMEventTable = { 2, 12, DOMEventTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMEventProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "stopPropagation", DOMEvent::StopPropagation, DontDelete|Function, 0, &DOMEventProtoTableEntries[3] },
+   { "preventDefault", DOMEvent::PreventDefault, DontDelete|Function, 0, &DOMEventProtoTableEntries[4] },
+   { "initEvent", DOMEvent::InitEvent, DontDelete|Function, 3, 0 }
+};
+
+const struct HashTable DOMEventProtoTable = { 2, 5, DOMEventProtoTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry EventExceptionConstructorTableEntries[] = {
+   { "UNSPECIFIED_EVENT_TYPE_ERR", DOM::EventException::UNSPECIFIED_EVENT_TYPE_ERR, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable EventExceptionConstructorTable = { 2, 1, EventExceptionConstructorTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMUIEventTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "view", DOMUIEvent::View, DontDelete|ReadOnly, 0, &DOMUIEventTableEntries[2] },
+   { "detail", DOMUIEvent::Detail, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMUIEventTable = { 2, 3, DOMUIEventTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMUIEventProtoTableEntries[] = {
+   { "initUIEvent", DOMUIEvent::InitUIEvent, DontDelete|Function, 5, 0 }
+};
+
+const struct HashTable DOMUIEventProtoTable = { 2, 1, DOMUIEventProtoTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMMouseEventTableEntries[] = {
+   { "screenX", DOMMouseEvent::ScreenX, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[3] },
+   { "screenY", DOMMouseEvent::ScreenY, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[2] },
+   { "clientX", DOMMouseEvent::ClientX, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[5] },
+   { "x", DOMMouseEvent::X, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[4] },
+   { "clientY", DOMMouseEvent::ClientY, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[7] },
+   { "y", DOMMouseEvent::Y, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[6] },
+   { "offsetX", DOMMouseEvent::OffsetX, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[9] },
+   { "offsetY", DOMMouseEvent::OffsetY, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[8] },
+   { "ctrlKey", DOMMouseEvent::CtrlKey, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[10] },
+   { "shiftKey", DOMMouseEvent::ShiftKey, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[15] },
+   { "altKey", DOMMouseEvent::AltKey, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[11] },
+   { "metaKey", DOMMouseEvent::MetaKey, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[12] },
+   { "button", DOMMouseEvent::Button, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[13] },
+   { "relatedTarget", DOMMouseEvent::RelatedTarget, DontDelete|ReadOnly, 0, &DOMMouseEventTableEntries[14] },
+   { "fromElement", DOMMouseEvent::FromElement, DontDelete|ReadOnly, 0, 0 },
+   { "toElement", DOMMouseEvent::ToElement, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMMouseEventTable = { 2, 16, DOMMouseEventTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMMouseEventProtoTableEntries[] = {
+   { "initMouseEvent", DOMMouseEvent::InitMouseEvent, DontDelete|Function, 15, 0 }
+};
+
+const struct HashTable DOMMouseEventProtoTable = { 2, 1, DOMMouseEventProtoTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry MutationEventConstructorTableEntries[] = {
+   { "ADDITION", DOM::MutationEvent::ADDITION, DontDelete|ReadOnly, 0, &MutationEventConstructorTableEntries[3] },
+   { "MODIFICATION", DOM::MutationEvent::MODIFICATION, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "REMOVAL", DOM::MutationEvent::REMOVAL, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable MutationEventConstructorTable = { 2, 4, MutationEventConstructorTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMMutationEventTableEntries[] = {
+   { "attrChange", DOMMutationEvent::AttrChange, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "relatedNode", DOMMutationEvent::RelatedNode, DontDelete|ReadOnly, 0, 0 },
+   { "attrName", DOMMutationEvent::AttrName, DontDelete|ReadOnly, 0, 0 },
+   { "prevValue", DOMMutationEvent::PrevValue, DontDelete|ReadOnly, 0, &DOMMutationEventTableEntries[5] },
+   { "newValue", DOMMutationEvent::NewValue, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMMutationEventTable = { 2, 6, DOMMutationEventTableEntries, 5 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMMutationEventProtoTableEntries[] = {
+   { "initMutationEvent", DOMMutationEvent::InitMutationEvent, DontDelete|Function, 8, 0 }
+};
+
+const struct HashTable DOMMutationEventProtoTable = { 2, 1, DOMMutationEventProtoTableEntries, 1 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_html.lut.h b/WebCore/khtml/ecma/kjs_html.lut.h
new file mode 100644
index 0000000..6fe6f2c
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_html.lut.h
@@ -0,0 +1,993 @@
+/* Automatically generated from kjs_html.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry HTMLDocumentTableEntries[] = {
+   { "open", HTMLDocument::Open, DontDelete|Function, 0, 0 },
+   { "scripts", HTMLDocument::Scripts, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "all", HTMLDocument::All, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[32] },
+   { 0, 0, 0, 0, 0 },
+   { "vlinkColor", HTMLDocument::VlinkColor, DontDelete, 0, 0 },
+   { "anchors", HTMLDocument::Anchors, DontDelete|ReadOnly, 0, 0 },
+   { "close", HTMLDocument::Close, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "dir", HTMLDocument::Dir, DontDelete, 0, 0 },
+   { "images", HTMLDocument::Images, DontDelete|ReadOnly, 0, 0 },
+   { "linkColor", HTMLDocument::LinkColor, DontDelete, 0, 0 },
+   { "domain", HTMLDocument::Domain, DontDelete, 0, 0 },
+   { "height", HTMLDocument::Height, DontDelete|ReadOnly, 0, 0 },
+   { "cookie", HTMLDocument::Cookie, DontDelete, 0, 0 },
+   { "alinkColor", HTMLDocument::AlinkColor, DontDelete, 0, 0 },
+   { "getElementsByName", HTMLDocument::GetElementsByName, DontDelete|Function, 1, 0 },
+   { "applets", HTMLDocument::Applets, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[34] },
+   { "links", HTMLDocument::Links, DontDelete|ReadOnly, 0, 0 },
+   { "title", HTMLDocument::Title, DontDelete, 0, 0 },
+   { "location", HTMLDocument::Location, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "clear", HTMLDocument::Clear, DontDelete|Function, 0, 0 },
+   { "referrer", HTMLDocument::Referrer, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[31] },
+   { 0, 0, 0, 0, 0 },
+   { "URL", HTMLDocument::URL, DontDelete|ReadOnly, 0, 0 },
+   { "body", HTMLDocument::Body, DontDelete, 0, 0 },
+   { "write", HTMLDocument::Write, DontDelete|Function, 1, &HTMLDocumentTableEntries[33] },
+   { "writeln", HTMLDocument::WriteLn, DontDelete|Function, 1, 0 },
+   { "bgColor", HTMLDocument::BgColor, DontDelete, 0, 0 },
+   { "forms", HTMLDocument::Forms, DontDelete|ReadOnly, 0, 0 },
+   { "fgColor", HTMLDocument::FgColor, DontDelete, 0, 0 },
+   { "lastModified", HTMLDocument::LastModified, DontDelete|ReadOnly, 0, 0 },
+   { "width", HTMLDocument::Width, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable HTMLDocumentTable = { 2, 35, HTMLDocumentTableEntries, 31 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "innerHTML", KJS::HTMLElement::ElementInnerHTML, DontDelete, 0, &HTMLElementTableEntries[10] },
+   { "title", KJS::HTMLElement::ElementTitle, DontDelete, 0, &HTMLElementTableEntries[8] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "id", KJS::HTMLElement::ElementId, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "dir", KJS::HTMLElement::ElementDir, DontDelete, 0, &HTMLElementTableEntries[9] },
+   { "lang", KJS::HTMLElement::ElementLang, DontDelete, 0, 0 },
+   { "className", KJS::HTMLElement::ElementClassName, DontDelete, 0, &HTMLElementTableEntries[11] },
+   { "innerText", KJS::HTMLElement::ElementInnerText, DontDelete, 0, &HTMLElementTableEntries[12] },
+   { "document", KJS::HTMLElement::ElementDocument, DontDelete|ReadOnly, 0, 0 },
+   { "children", KJS::HTMLElement::ElementChildren, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable HTMLElementTable = { 2, 13, HTMLElementTableEntries, 8 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLHtmlElementTableEntries[] = {
+   { "version", KJS::HTMLElement::HtmlVersion, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLHtmlElementTable = { 2, 1, HTMLHtmlElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLHeadElementTableEntries[] = {
+   { "profile", KJS::HTMLElement::HeadProfile, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLHeadElementTable = { 2, 1, HTMLHeadElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLLinkElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "href", KJS::HTMLElement::LinkHref, DontDelete, 0, &HTMLLinkElementTableEntries[11] },
+   { "rel", KJS::HTMLElement::LinkRel, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "media", KJS::HTMLElement::LinkMedia, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "charset", KJS::HTMLElement::LinkCharset, DontDelete, 0, &HTMLLinkElementTableEntries[13] },
+   { "disabled", KJS::HTMLElement::LinkDisabled, DontDelete, 0, &HTMLLinkElementTableEntries[14] },
+   { "hreflang", KJS::HTMLElement::LinkHrefLang, DontDelete, 0, &HTMLLinkElementTableEntries[12] },
+   { "rev", KJS::HTMLElement::LinkRev, DontDelete, 0, 0 },
+   { "target", KJS::HTMLElement::LinkTarget, DontDelete, 0, &HTMLLinkElementTableEntries[15] },
+   { "type", KJS::HTMLElement::LinkType, DontDelete, 0, 0 },
+   { "sheet", KJS::HTMLElement::LinkSheet, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable HTMLLinkElementTable = { 2, 16, HTMLLinkElementTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTitleElementTableEntries[] = {
+   { "text", KJS::HTMLElement::TitleText, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLTitleElementTable = { 2, 1, HTMLTitleElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLMetaElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "name", KJS::HTMLElement::MetaName, DontDelete, 0, &HTMLMetaElementTableEntries[4] },
+   { "httpEquiv", KJS::HTMLElement::MetaHttpEquiv, DontDelete, 0, 0 },
+   { "content", KJS::HTMLElement::MetaContent, DontDelete, 0, 0 },
+   { "scheme", KJS::HTMLElement::MetaScheme, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLMetaElementTable = { 2, 5, HTMLMetaElementTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLBaseElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "href", KJS::HTMLElement::BaseHref, DontDelete, 0, &HTMLBaseElementTableEntries[2] },
+   { "target", KJS::HTMLElement::BaseTarget, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLBaseElementTable = { 2, 3, HTMLBaseElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLIsIndexElementTableEntries[] = {
+   { "form", KJS::HTMLElement::IsIndexForm, DontDelete|ReadOnly, 0, &HTMLIsIndexElementTableEntries[2] },
+   { 0, 0, 0, 0, 0 },
+   { "prompt", KJS::HTMLElement::IsIndexPrompt, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLIsIndexElementTable = { 2, 3, HTMLIsIndexElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLStyleElementTableEntries[] = {
+   { "disabled", KJS::HTMLElement::StyleDisabled, DontDelete, 0, &HTMLStyleElementTableEntries[4] },
+   { "sheet", KJS::HTMLElement::StyleSheet, DontDelete|ReadOnly, 0, 0 },
+   { "type", KJS::HTMLElement::StyleType, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "media", KJS::HTMLElement::StyleMedia, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLStyleElementTable = { 2, 5, HTMLStyleElementTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLBodyElementTableEntries[] = {
+   { "background", KJS::HTMLElement::BodyBackground, DontDelete, 0, &HTMLBodyElementTableEntries[8] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "vLink", KJS::HTMLElement::BodyVLink, DontDelete, 0, 0 },
+   { "text", KJS::HTMLElement::BodyText, DontDelete, 0, 0 },
+   { "link", KJS::HTMLElement::BodyLink, DontDelete, 0, 0 },
+   { "aLink", KJS::HTMLElement::BodyALink, DontDelete, 0, &HTMLBodyElementTableEntries[10] },
+   { "bgColor", KJS::HTMLElement::BodyBgColor, DontDelete, 0, &HTMLBodyElementTableEntries[9] },
+   { "scrollHeight", KJS::HTMLElement::BodyScrollHeight, DontDelete|ReadOnly, 0, 0 },
+   { "scrollWidth", KJS::HTMLElement::BodyScrollWidth, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable HTMLBodyElementTable = { 2, 11, HTMLBodyElementTableEntries, 8 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLFormElementTableEntries[] = {
+   { "action", KJS::HTMLElement::FormAction, DontDelete, 0, &HTMLFormElementTableEntries[12] },
+   { "enctype", KJS::HTMLElement::FormEncType, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "elements", KJS::HTMLElement::FormElements, DontDelete|ReadOnly, 0, &HTMLFormElementTableEntries[11] },
+   { "length", KJS::HTMLElement::FormLength, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "acceptCharset", KJS::HTMLElement::FormAcceptCharset, DontDelete, 0, 0 },
+   { "reset", KJS::HTMLElement::FormReset, DontDelete|Function, 0, 0 },
+   { "target", KJS::HTMLElement::FormTarget, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::FormName, DontDelete, 0, 0 },
+   { "method", KJS::HTMLElement::FormMethod, DontDelete, 0, 0 },
+   { "submit", KJS::HTMLElement::FormSubmit, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable HTMLFormElementTable = { 2, 13, HTMLFormElementTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLSelectElementTableEntries[] = {
+   { "add", KJS::HTMLElement::SelectAdd, DontDelete|Function, 2, 0 },
+   { "tabIndex", KJS::HTMLElement::SelectTabIndex, DontDelete, 0, 0 },
+   { "value", KJS::HTMLElement::SelectValue, DontDelete, 0, 0 },
+   { "selectedIndex", KJS::HTMLElement::SelectSelectedIndex, DontDelete, 0, &HTMLSelectElementTableEntries[15] },
+   { "length", KJS::HTMLElement::SelectLength, DontDelete, 0, 0 },
+   { "remove", KJS::HTMLElement::SelectRemove, DontDelete|Function, 1, &HTMLSelectElementTableEntries[16] },
+   { 0, 0, 0, 0, 0 },
+   { "form", KJS::HTMLElement::SelectForm, DontDelete|ReadOnly, 0, &HTMLSelectElementTableEntries[13] },
+   { "blur", KJS::HTMLElement::SelectBlur, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "type", KJS::HTMLElement::SelectType, DontDelete|ReadOnly, 0, &HTMLSelectElementTableEntries[11] },
+   { "options", KJS::HTMLElement::SelectOptions, DontDelete|ReadOnly, 0, &HTMLSelectElementTableEntries[12] },
+   { "disabled", KJS::HTMLElement::SelectDisabled, DontDelete, 0, &HTMLSelectElementTableEntries[14] },
+   { "multiple", KJS::HTMLElement::SelectMultiple, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::SelectName, DontDelete, 0, 0 },
+   { "size", KJS::HTMLElement::SelectSize, DontDelete, 0, 0 },
+   { "focus", KJS::HTMLElement::SelectFocus, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable HTMLSelectElementTable = { 2, 17, HTMLSelectElementTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLOptGroupElementTableEntries[] = {
+   { "disabled", KJS::HTMLElement::OptGroupDisabled, DontDelete, 0, &HTMLOptGroupElementTableEntries[2] },
+   { 0, 0, 0, 0, 0 },
+   { "label", KJS::HTMLElement::OptGroupLabel, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLOptGroupElementTable = { 2, 3, HTMLOptGroupElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLOptionElementTableEntries[] = {
+   { "index", KJS::HTMLElement::OptionIndex, DontDelete|ReadOnly, 0, &HTMLOptionElementTableEntries[8] },
+   { "selected", KJS::HTMLElement::OptionSelected, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "form", KJS::HTMLElement::OptionForm, DontDelete|ReadOnly, 0, 0 },
+   { "text", KJS::HTMLElement::OptionText, DontDelete, 0, &HTMLOptionElementTableEntries[10] },
+   { "defaultSelected", KJS::HTMLElement::OptionDefaultSelected, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "disabled", KJS::HTMLElement::OptionDisabled, DontDelete, 0, &HTMLOptionElementTableEntries[9] },
+   { "label", KJS::HTMLElement::OptionLabel, DontDelete, 0, 0 },
+   { "value", KJS::HTMLElement::OptionValue, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLOptionElementTable = { 2, 11, HTMLOptionElementTableEntries, 8 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLInputElementTableEntries[] = {
+   { "blur", KJS::HTMLElement::InputBlur, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "readOnly", KJS::HTMLElement::InputReadOnly, DontDelete, 0, 0 },
+   { "accept", KJS::HTMLElement::InputAccept, DontDelete, 0, &HTMLInputElementTableEntries[23] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "size", KJS::HTMLElement::InputSize, DontDelete, 0, &HTMLInputElementTableEntries[27] },
+   { 0, 0, 0, 0, 0 },
+   { "defaultValue", KJS::HTMLElement::InputDefaultValue, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "tabIndex", KJS::HTMLElement::InputTabIndex, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "value", KJS::HTMLElement::InputValue, DontDelete, 0, &HTMLInputElementTableEntries[30] },
+   { "type", KJS::HTMLElement::InputType, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "focus", KJS::HTMLElement::InputFocus, DontDelete|Function, 0, 0 },
+   { "maxLength", KJS::HTMLElement::InputMaxLength, DontDelete, 0, 0 },
+   { "defaultChecked", KJS::HTMLElement::InputDefaultChecked, DontDelete, 0, &HTMLInputElementTableEntries[24] },
+   { 0, 0, 0, 0, 0 },
+   { "disabled", KJS::HTMLElement::InputDisabled, DontDelete, 0, &HTMLInputElementTableEntries[29] },
+   { 0, 0, 0, 0, 0 },
+   { "checked", KJS::HTMLElement::InputChecked, DontDelete, 0, &HTMLInputElementTableEntries[28] },
+   { "form", KJS::HTMLElement::InputForm, DontDelete|ReadOnly, 0, &HTMLInputElementTableEntries[25] },
+   { "accessKey", KJS::HTMLElement::InputAccessKey, DontDelete, 0, &HTMLInputElementTableEntries[26] },
+   { "align", KJS::HTMLElement::InputAlign, DontDelete, 0, 0 },
+   { "alt", KJS::HTMLElement::InputAlt, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::InputName, DontDelete, 0, 0 },
+   { "src", KJS::HTMLElement::InputSrc, DontDelete, 0, 0 },
+   { "useMap", KJS::HTMLElement::InputUseMap, DontDelete, 0, 0 },
+   { "select", KJS::HTMLElement::InputSelect, DontDelete|Function, 0, 0 },
+   { "click", KJS::HTMLElement::InputClick, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable HTMLInputElementTable = { 2, 31, HTMLInputElementTableEntries, 23 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTextAreaElementTableEntries[] = {
+   { "accessKey", KJS::HTMLElement::TextAreaAccessKey, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::TextAreaName, DontDelete, 0, 0 },
+   { "defaultValue", KJS::HTMLElement::TextAreaDefaultValue, DontDelete, 0, 0 },
+   { "select", KJS::HTMLElement::TextAreaSelect, DontDelete|Function, 0, 0 },
+   { "cols", KJS::HTMLElement::TextAreaCols, DontDelete, 0, &HTMLTextAreaElementTableEntries[13] },
+   { "disabled", KJS::HTMLElement::TextAreaDisabled, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "form", KJS::HTMLElement::TextAreaForm, DontDelete|ReadOnly, 0, 0 },
+   { "type", KJS::HTMLElement::TextAreaType, DontDelete|ReadOnly, 0, &HTMLTextAreaElementTableEntries[14] },
+   { "tabIndex", KJS::HTMLElement::TextAreaTabIndex, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "readOnly", KJS::HTMLElement::TextAreaReadOnly, DontDelete, 0, &HTMLTextAreaElementTableEntries[16] },
+   { 0, 0, 0, 0, 0 },
+   { "rows", KJS::HTMLElement::TextAreaRows, DontDelete, 0, 0 },
+   { "value", KJS::HTMLElement::TextAreaValue, DontDelete, 0, &HTMLTextAreaElementTableEntries[15] },
+   { "blur", KJS::HTMLElement::TextAreaBlur, DontDelete|Function, 0, 0 },
+   { "focus", KJS::HTMLElement::TextAreaFocus, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable HTMLTextAreaElementTable = { 2, 17, HTMLTextAreaElementTableEntries, 13 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLButtonElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "form", KJS::HTMLElement::ButtonForm, DontDelete|ReadOnly, 0, &HTMLButtonElementTableEntries[7] },
+   { "tabIndex", KJS::HTMLElement::ButtonTabIndex, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::ButtonName, DontDelete, 0, 0 },
+   { "disabled", KJS::HTMLElement::ButtonDisabled, DontDelete, 0, 0 },
+   { "accessKey", KJS::HTMLElement::ButtonAccessKey, DontDelete, 0, 0 },
+   { "type", KJS::HTMLElement::ButtonType, DontDelete|ReadOnly, 0, &HTMLButtonElementTableEntries[8] },
+   { "value", KJS::HTMLElement::ButtonValue, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLButtonElementTable = { 2, 9, HTMLButtonElementTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLLabelElementTableEntries[] = {
+   { "htmlFor", KJS::HTMLElement::LabelHtmlFor, DontDelete, 0, 0 },
+   { "form", KJS::HTMLElement::LabelForm, DontDelete|ReadOnly, 0, 0 },
+   { "accessKey", KJS::HTMLElement::LabelAccessKey, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLLabelElementTable = { 2, 3, HTMLLabelElementTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLFieldSetElementTableEntries[] = {
+   { "form", KJS::HTMLElement::FieldSetForm, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable HTMLFieldSetElementTable = { 2, 1, HTMLFieldSetElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLLegendElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "form", KJS::HTMLElement::LegendForm, DontDelete|ReadOnly, 0, &HTMLLegendElementTableEntries[3] },
+   { "accessKey", KJS::HTMLElement::LegendAccessKey, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::LegendAlign, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLLegendElementTable = { 2, 4, HTMLLegendElementTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLUListElementTableEntries[] = {
+   { "type", KJS::HTMLElement::UListType, DontDelete, 0, 0 },
+   { "compact", KJS::HTMLElement::UListCompact, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLUListElementTable = { 2, 2, HTMLUListElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLOListElementTableEntries[] = {
+   { "start", KJS::HTMLElement::OListStart, DontDelete, 0, &HTMLOListElementTableEntries[3] },
+   { 0, 0, 0, 0, 0 },
+   { "compact", KJS::HTMLElement::OListCompact, DontDelete, 0, 0 },
+   { "type", KJS::HTMLElement::OListType, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLOListElementTable = { 2, 4, HTMLOListElementTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLDListElementTableEntries[] = {
+   { "compact", KJS::HTMLElement::DListCompact, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLDListElementTable = { 2, 1, HTMLDListElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLDirectoryElementTableEntries[] = {
+   { "compact", KJS::HTMLElement::DirectoryCompact, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLDirectoryElementTable = { 2, 1, HTMLDirectoryElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLMenuElementTableEntries[] = {
+   { "compact", KJS::HTMLElement::MenuCompact, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLMenuElementTable = { 2, 1, HTMLMenuElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLLIElementTableEntries[] = {
+   { "type", KJS::HTMLElement::LIType, DontDelete, 0, 0 },
+   { "value", KJS::HTMLElement::LIValue, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLLIElementTable = { 2, 2, HTMLLIElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLDivElementTableEntries[] = {
+   { "align", KJS::HTMLElement::DivAlign, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLDivElementTable = { 2, 1, HTMLDivElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLParagraphElementTableEntries[] = {
+   { "align", KJS::HTMLElement::ParagraphAlign, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLParagraphElementTable = { 2, 1, HTMLParagraphElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLHeadingElementTableEntries[] = {
+   { "align", KJS::HTMLElement::HeadingAlign, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLHeadingElementTable = { 2, 1, HTMLHeadingElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLBlockQuoteElementTableEntries[] = {
+   { "cite", KJS::HTMLElement::BlockQuoteCite, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLBlockQuoteElementTable = { 2, 1, HTMLBlockQuoteElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLQuoteElementTableEntries[] = {
+   { "cite", KJS::HTMLElement::QuoteCite, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLQuoteElementTable = { 2, 1, HTMLQuoteElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLPreElementTableEntries[] = {
+   { "width", KJS::HTMLElement::PreWidth, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLPreElementTable = { 2, 1, HTMLPreElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLBRElementTableEntries[] = {
+   { "clear", KJS::HTMLElement::BRClear, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLBRElementTable = { 2, 1, HTMLBRElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLBaseFontElementTableEntries[] = {
+   { "color", KJS::HTMLElement::BaseFontColor, DontDelete, 0, &HTMLBaseFontElementTableEntries[3] },
+   { 0, 0, 0, 0, 0 },
+   { "size", KJS::HTMLElement::BaseFontSize, DontDelete, 0, 0 },
+   { "face", KJS::HTMLElement::BaseFontFace, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLBaseFontElementTable = { 2, 4, HTMLBaseFontElementTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLFontElementTableEntries[] = {
+   { "color", KJS::HTMLElement::FontColor, DontDelete, 0, &HTMLFontElementTableEntries[3] },
+   { 0, 0, 0, 0, 0 },
+   { "size", KJS::HTMLElement::FontSize, DontDelete, 0, 0 },
+   { "face", KJS::HTMLElement::FontFace, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLFontElementTable = { 2, 4, HTMLFontElementTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLHRElementTableEntries[] = {
+   { "width", KJS::HTMLElement::HRWidth, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "noShade", KJS::HTMLElement::HRNoShade, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::HRAlign, DontDelete, 0, &HTMLHRElementTableEntries[4] },
+   { "size", KJS::HTMLElement::HRSize, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLHRElementTable = { 2, 5, HTMLHRElementTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLModElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "cite", KJS::HTMLElement::ModCite, DontDelete, 0, &HTMLModElementTableEntries[2] },
+   { "dateTime", KJS::HTMLElement::ModDateTime, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLModElementTable = { 2, 3, HTMLModElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLAnchorElementTableEntries[] = {
+   { "shape", KJS::HTMLElement::AnchorShape, DontDelete, 0, &HTMLAnchorElementTableEntries[30] },
+   { "rel", KJS::HTMLElement::AnchorRel, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "accessKey", KJS::HTMLElement::AnchorAccessKey, DontDelete, 0, &HTMLAnchorElementTableEntries[24] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "coords", KJS::HTMLElement::AnchorCoords, DontDelete, 0, &HTMLAnchorElementTableEntries[23] },
+   { "href", KJS::HTMLElement::AnchorHref, DontDelete, 0, 0 },
+   { "protocol", KJS::HTMLElement::AnchorProtocol, DontDelete|ReadOnly, 0, 0 },
+   { "host", KJS::HTMLElement::AnchorHost, DontDelete|ReadOnly, 0, &HTMLAnchorElementTableEntries[26] },
+   { "charset", KJS::HTMLElement::AnchorCharset, DontDelete, 0, &HTMLAnchorElementTableEntries[27] },
+   { "hreflang", KJS::HTMLElement::AnchorHrefLang, DontDelete, 0, &HTMLAnchorElementTableEntries[25] },
+   { "hostname", KJS::HTMLElement::AnchorHostname, DontDelete|ReadOnly, 0, 0 },
+   { "type", KJS::HTMLElement::AnchorType, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "focus", KJS::HTMLElement::AnchorFocus, DontDelete|Function, 0, 0 },
+   { "port", KJS::HTMLElement::AnchorPort, DontDelete|ReadOnly, 0, &HTMLAnchorElementTableEntries[29] },
+   { 0, 0, 0, 0, 0 },
+   { "pathname", KJS::HTMLElement::AnchorPathName, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "hash", KJS::HTMLElement::AnchorHash, DontDelete|ReadOnly, 0, 0 },
+   { "name", KJS::HTMLElement::AnchorName, DontDelete, 0, &HTMLAnchorElementTableEntries[28] },
+   { "rev", KJS::HTMLElement::AnchorRev, DontDelete, 0, 0 },
+   { "search", KJS::HTMLElement::AnchorSearch, DontDelete|ReadOnly, 0, 0 },
+   { "tabIndex", KJS::HTMLElement::AnchorTabIndex, DontDelete, 0, 0 },
+   { "target", KJS::HTMLElement::AnchorTarget, DontDelete, 0, 0 },
+   { "text", KJS::HTMLElement::AnchorText, DontDelete|ReadOnly, 0, 0 },
+   { "blur", KJS::HTMLElement::AnchorBlur, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable HTMLAnchorElementTable = { 2, 31, HTMLAnchorElementTableEntries, 23 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLImageElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "border", KJS::HTMLElement::ImageBorder, DontDelete, 0, &HTMLImageElementTableEntries[14] },
+   { 0, 0, 0, 0, 0 },
+   { "hspace", KJS::HTMLElement::ImageHspace, DontDelete, 0, &HTMLImageElementTableEntries[15] },
+   { 0, 0, 0, 0, 0 },
+   { "vspace", KJS::HTMLElement::ImageVspace, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::ImageAlign, DontDelete, 0, &HTMLImageElementTableEntries[16] },
+   { 0, 0, 0, 0, 0 },
+   { "name", KJS::HTMLElement::ImageName, DontDelete, 0, &HTMLImageElementTableEntries[12] },
+   { 0, 0, 0, 0, 0 },
+   { "longDesc", KJS::HTMLElement::ImageLongDesc, DontDelete, 0, 0 },
+   { "alt", KJS::HTMLElement::ImageAlt, DontDelete, 0, &HTMLImageElementTableEntries[13] },
+   { "height", KJS::HTMLElement::ImageHeight, DontDelete, 0, 0 },
+   { "isMap", KJS::HTMLElement::ImageIsMap, DontDelete, 0, 0 },
+   { "src", KJS::HTMLElement::ImageSrc, DontDelete, 0, &HTMLImageElementTableEntries[17] },
+   { "useMap", KJS::HTMLElement::ImageUseMap, DontDelete, 0, 0 },
+   { "width", KJS::HTMLElement::ImageWidth, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLImageElementTable = { 2, 18, HTMLImageElementTableEntries, 12 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLObjectElementTableEntries[] = {
+   { "declare", KJS::HTMLElement::ObjectDeclare, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "vspace", KJS::HTMLElement::ObjectVspace, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::ObjectAlign, DontDelete, 0, 0 },
+   { "width", KJS::HTMLElement::ObjectWidth, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "hspace", KJS::HTMLElement::ObjectHspace, DontDelete, 0, 0 },
+   { "codeType", KJS::HTMLElement::ObjectCodeType, DontDelete, 0, 0 },
+   { "codeBase", KJS::HTMLElement::ObjectCodeBase, DontDelete, 0, &HTMLObjectElementTableEntries[21] },
+   { "code", KJS::HTMLElement::ObjectCode, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "height", KJS::HTMLElement::ObjectHeight, DontDelete, 0, 0 },
+   { "contentDocument", KJS::HTMLElement::ObjectContentDocument, DontDelete|ReadOnly, 0, 0 },
+   { "tabIndex", KJS::HTMLElement::ObjectTabIndex, DontDelete, 0, 0 },
+   { "form", KJS::HTMLElement::ObjectForm, DontDelete|ReadOnly, 0, 0 },
+   { "name", KJS::HTMLElement::ObjectName, DontDelete, 0, &HTMLObjectElementTableEntries[22] },
+   { "archive", KJS::HTMLElement::ObjectArchive, DontDelete, 0, &HTMLObjectElementTableEntries[20] },
+   { "useMap", KJS::HTMLElement::ObjectUseMap, DontDelete, 0, 0 },
+   { "border", KJS::HTMLElement::ObjectBorder, DontDelete, 0, 0 },
+   { "data", KJS::HTMLElement::ObjectData, DontDelete, 0, &HTMLObjectElementTableEntries[23] },
+   { "standby", KJS::HTMLElement::ObjectStandby, DontDelete, 0, 0 },
+   { "type", KJS::HTMLElement::ObjectType, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLObjectElementTable = { 2, 24, HTMLObjectElementTableEntries, 20 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLParamElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "name", KJS::HTMLElement::ParamName, DontDelete, 0, &HTMLParamElementTableEntries[4] },
+   { "type", KJS::HTMLElement::ParamType, DontDelete, 0, 0 },
+   { "valueType", KJS::HTMLElement::ParamValueType, DontDelete, 0, 0 },
+   { "value", KJS::HTMLElement::ParamValue, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLParamElementTable = { 2, 5, HTMLParamElementTableEntries, 4 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLAppletElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "archive", KJS::HTMLElement::AppletArchive, DontDelete, 0, &HTMLAppletElementTableEntries[12] },
+   { "alt", KJS::HTMLElement::AppletAlt, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "code", KJS::HTMLElement::AppletCode, DontDelete, 0, &HTMLAppletElementTableEntries[13] },
+   { "width", KJS::HTMLElement::AppletWidth, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::AppletAlign, DontDelete, 0, &HTMLAppletElementTableEntries[11] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "codeBase", KJS::HTMLElement::AppletCodeBase, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::AppletName, DontDelete, 0, 0 },
+   { "height", KJS::HTMLElement::AppletHeight, DontDelete, 0, 0 },
+   { "hspace", KJS::HTMLElement::AppletHspace, DontDelete, 0, 0 },
+   { "object", KJS::HTMLElement::AppletObject, DontDelete, 0, &HTMLAppletElementTableEntries[14] },
+   { "vspace", KJS::HTMLElement::AppletVspace, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLAppletElementTable = { 2, 15, HTMLAppletElementTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLMapElementTableEntries[] = {
+   { "areas", KJS::HTMLElement::MapAreas, DontDelete|ReadOnly, 0, 0 },
+   { "name", KJS::HTMLElement::MapName, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLMapElementTable = { 2, 2, HTMLMapElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLAreaElementTableEntries[] = {
+   { "hash", KJS::HTMLElement::AreaHash, DontDelete|ReadOnly, 0, &HTMLAreaElementTableEntries[17] },
+   { "href", KJS::HTMLElement::AreaHref, DontDelete, 0, 0 },
+   { "target", KJS::HTMLElement::AreaTarget, DontDelete, 0, 0 },
+   { "port", KJS::HTMLElement::AreaPort, DontDelete|ReadOnly, 0, 0 },
+   { "shape", KJS::HTMLElement::AreaShape, DontDelete, 0, 0 },
+   { "coords", KJS::HTMLElement::AreaCoords, DontDelete, 0, &HTMLAreaElementTableEntries[18] },
+   { "alt", KJS::HTMLElement::AreaAlt, DontDelete, 0, &HTMLAreaElementTableEntries[16] },
+   { 0, 0, 0, 0, 0 },
+   { "accessKey", KJS::HTMLElement::AreaAccessKey, DontDelete, 0, &HTMLAreaElementTableEntries[15] },
+   { 0, 0, 0, 0, 0 },
+   { "noHref", KJS::HTMLElement::AreaNoHref, DontDelete, 0, 0 },
+   { "host", KJS::HTMLElement::AreaHost, DontDelete|ReadOnly, 0, 0 },
+   { "protocol", KJS::HTMLElement::AreaProtocol, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "hostname", KJS::HTMLElement::AreaHostName, DontDelete|ReadOnly, 0, 0 },
+   { "pathname", KJS::HTMLElement::AreaPathName, DontDelete|ReadOnly, 0, 0 },
+   { "search", KJS::HTMLElement::AreaSearch, DontDelete|ReadOnly, 0, 0 },
+   { "tabIndex", KJS::HTMLElement::AreaTabIndex, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLAreaElementTable = { 2, 19, HTMLAreaElementTableEntries, 15 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLScriptElementTableEntries[] = {
+   { "event", KJS::HTMLElement::ScriptEvent, DontDelete, 0, &HTMLScriptElementTableEntries[8] },
+   { 0, 0, 0, 0, 0 },
+   { "type", KJS::HTMLElement::ScriptType, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "htmlFor", KJS::HTMLElement::ScriptHtmlFor, DontDelete, 0, &HTMLScriptElementTableEntries[7] },
+   { "text", KJS::HTMLElement::ScriptText, DontDelete, 0, 0 },
+   { "src", KJS::HTMLElement::ScriptSrc, DontDelete, 0, 0 },
+   { "charset", KJS::HTMLElement::ScriptCharset, DontDelete, 0, 0 },
+   { "defer", KJS::HTMLElement::ScriptDefer, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLScriptElementTable = { 2, 9, HTMLScriptElementTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTableElementTableEntries[] = {
+   { "summary", KJS::HTMLElement::TableSummary, DontDelete, 0, &HTMLTableElementTableEntries[28] },
+   { "tBodies", KJS::HTMLElement::TableTBodies, DontDelete|ReadOnly, 0, &HTMLTableElementTableEntries[27] },
+   { 0, 0, 0, 0, 0 },
+   { "tHead", KJS::HTMLElement::TableTHead, DontDelete, 0, &HTMLTableElementTableEntries[26] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "cellPadding", KJS::HTMLElement::TableCellPadding, DontDelete, 0, &HTMLTableElementTableEntries[30] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "deleteCaption", KJS::HTMLElement::TableDeleteCaption, DontDelete|Function, 0, 0 },
+   { "createCaption", KJS::HTMLElement::TableCreateCaption, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "caption", KJS::HTMLElement::TableCaption, DontDelete, 0, 0 },
+   { "width", KJS::HTMLElement::TableWidth, DontDelete, 0, &HTMLTableElementTableEntries[29] },
+   { "createTFoot", KJS::HTMLElement::TableCreateTFoot, DontDelete|Function, 0, 0 },
+   { "align", KJS::HTMLElement::TableAlign, DontDelete, 0, &HTMLTableElementTableEntries[24] },
+   { "tFoot", KJS::HTMLElement::TableTFoot, DontDelete, 0, 0 },
+   { "deleteRow", KJS::HTMLElement::TableDeleteRow, DontDelete|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "cellSpacing", KJS::HTMLElement::TableCellSpacing, DontDelete, 0, 0 },
+   { "rows", KJS::HTMLElement::TableRows, DontDelete|ReadOnly, 0, &HTMLTableElementTableEntries[23] },
+   { "bgColor", KJS::HTMLElement::TableBgColor, DontDelete, 0, 0 },
+   { "border", KJS::HTMLElement::TableBorder, DontDelete, 0, &HTMLTableElementTableEntries[25] },
+   { "frame", KJS::HTMLElement::TableFrame, DontDelete, 0, 0 },
+   { "rules", KJS::HTMLElement::TableRules, DontDelete, 0, 0 },
+   { "createTHead", KJS::HTMLElement::TableCreateTHead, DontDelete|Function, 0, 0 },
+   { "deleteTHead", KJS::HTMLElement::TableDeleteTHead, DontDelete|Function, 0, 0 },
+   { "deleteTFoot", KJS::HTMLElement::TableDeleteTFoot, DontDelete|Function, 0, 0 },
+   { "insertRow", KJS::HTMLElement::TableInsertRow, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable HTMLTableElementTable = { 2, 31, HTMLTableElementTableEntries, 23 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTableCaptionElementTableEntries[] = {
+   { "align", KJS::HTMLElement::TableCaptionAlign, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLTableCaptionElementTable = { 2, 1, HTMLTableCaptionElementTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTableColElementTableEntries[] = {
+   { "ch", KJS::HTMLElement::TableColCh, DontDelete, 0, &HTMLTableColElementTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "chOff", KJS::HTMLElement::TableColChOff, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "align", KJS::HTMLElement::TableColAlign, DontDelete, 0, &HTMLTableColElementTableEntries[9] },
+   { 0, 0, 0, 0, 0 },
+   { "span", KJS::HTMLElement::TableColSpan, DontDelete, 0, &HTMLTableColElementTableEntries[8] },
+   { "vAlign", KJS::HTMLElement::TableColVAlign, DontDelete, 0, 0 },
+   { "width", KJS::HTMLElement::TableColWidth, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLTableColElementTable = { 2, 10, HTMLTableColElementTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTableSectionElementTableEntries[] = {
+   { "ch", KJS::HTMLElement::TableSectionCh, DontDelete, 0, &HTMLTableSectionElementTableEntries[7] },
+   { "deleteRow", KJS::HTMLElement::TableSectionDeleteRow, DontDelete|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "chOff", KJS::HTMLElement::TableSectionChOff, DontDelete, 0, 0 },
+   { "rows", KJS::HTMLElement::TableSectionRows, DontDelete|ReadOnly, 0, 0 },
+   { "align", KJS::HTMLElement::TableSectionAlign, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "vAlign", KJS::HTMLElement::TableSectionVAlign, DontDelete, 0, &HTMLTableSectionElementTableEntries[8] },
+   { "insertRow", KJS::HTMLElement::TableSectionInsertRow, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable HTMLTableSectionElementTable = { 2, 9, HTMLTableSectionElementTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTableRowElementTableEntries[] = {
+   { "sectionRowIndex", KJS::HTMLElement::TableRowSectionRowIndex, DontDelete|ReadOnly, 0, &HTMLTableRowElementTableEntries[11] },
+   { "rowIndex", KJS::HTMLElement::TableRowRowIndex, DontDelete|ReadOnly, 0, 0 },
+   { "chOff", KJS::HTMLElement::TableRowChOff, DontDelete, 0, 0 },
+   { "cells", KJS::HTMLElement::TableRowCells, DontDelete|ReadOnly, 0, 0 },
+   { "vAlign", KJS::HTMLElement::TableRowVAlign, DontDelete, 0, 0 },
+   { "ch", KJS::HTMLElement::TableRowCh, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::TableRowAlign, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "bgColor", KJS::HTMLElement::TableRowBgColor, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "deleteCell", KJS::HTMLElement::TableRowDeleteCell, DontDelete|Function, 1, 0 },
+   { "insertCell", KJS::HTMLElement::TableRowInsertCell, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable HTMLTableRowElementTable = { 2, 12, HTMLTableRowElementTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLTableCellElementTableEntries[] = {
+   { "colSpan", KJS::HTMLElement::TableCellColSpan, DontDelete, 0, 0 },
+   { "noWrap", KJS::HTMLElement::TableCellNoWrap, DontDelete, 0, 0 },
+   { "abbr", KJS::HTMLElement::TableCellAbbr, DontDelete, 0, &HTMLTableCellElementTableEntries[15] },
+   { "height", KJS::HTMLElement::TableCellHeight, DontDelete, 0, 0 },
+   { "width", KJS::HTMLElement::TableCellWidth, DontDelete, 0, 0 },
+   { "cellIndex", KJS::HTMLElement::TableCellCellIndex, DontDelete|ReadOnly, 0, 0 },
+   { "chOff", KJS::HTMLElement::TableCellChOff, DontDelete, 0, 0 },
+   { "bgColor", KJS::HTMLElement::TableCellBgColor, DontDelete, 0, 0 },
+   { "ch", KJS::HTMLElement::TableCellCh, DontDelete, 0, 0 },
+   { "vAlign", KJS::HTMLElement::TableCellVAlign, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "rowSpan", KJS::HTMLElement::TableCellRowSpan, DontDelete, 0, 0 },
+   { "headers", KJS::HTMLElement::TableCellHeaders, DontDelete, 0, 0 },
+   { "align", KJS::HTMLElement::TableCellAlign, DontDelete, 0, &HTMLTableCellElementTableEntries[16] },
+   { 0, 0, 0, 0, 0 },
+   { "axis", KJS::HTMLElement::TableCellAxis, DontDelete, 0, 0 },
+   { "scope", KJS::HTMLElement::TableCellScope, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLTableCellElementTable = { 2, 17, HTMLTableCellElementTableEntries, 15 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLFrameSetElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "cols", KJS::HTMLElement::FrameSetCols, DontDelete, 0, &HTMLFrameSetElementTableEntries[2] },
+   { "rows", KJS::HTMLElement::FrameSetRows, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLFrameSetElementTable = { 2, 3, HTMLFrameSetElementTableEntries, 2 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLFrameElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "contentDocument", KJS::HTMLElement::FrameContentDocument, DontDelete|ReadOnly, 0, &HTMLFrameElementTableEntries[9] },
+   { "location", KJS::HTMLElement::FrameLocation, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::FrameName, DontDelete, 0, 0 },
+   { "frameBorder", KJS::HTMLElement::FrameFrameBorder, DontDelete, 0, &HTMLFrameElementTableEntries[11] },
+   { "longDesc", KJS::HTMLElement::FrameLongDesc, DontDelete, 0, 0 },
+   { "marginHeight", KJS::HTMLElement::FrameMarginHeight, DontDelete, 0, 0 },
+   { "marginWidth", KJS::HTMLElement::FrameMarginWidth, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "noResize", KJS::HTMLElement::FrameNoResize, DontDelete, 0, &HTMLFrameElementTableEntries[10] },
+   { "scrolling", KJS::HTMLElement::FrameScrolling, DontDelete, 0, 0 },
+   { "src", KJS::HTMLElement::FrameSrc, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLFrameElementTable = { 2, 12, HTMLFrameElementTableEntries, 9 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLIFrameElementTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "frameBorder", KJS::HTMLElement::IFrameFrameBorder, DontDelete, 0, &HTMLIFrameElementTableEntries[15] },
+   { 0, 0, 0, 0, 0 },
+   { "marginHeight", KJS::HTMLElement::IFrameMarginHeight, DontDelete, 0, 0 },
+   { "src", KJS::HTMLElement::IFrameSrc, DontDelete, 0, &HTMLIFrameElementTableEntries[16] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "align", KJS::HTMLElement::IFrameAlign, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "height", KJS::HTMLElement::IFrameHeight, DontDelete, 0, &HTMLIFrameElementTableEntries[14] },
+   { "contentDocument", KJS::HTMLElement::IFrameContentDocument, DontDelete|ReadOnly, 0, &HTMLIFrameElementTableEntries[13] },
+   { "document", KJS::HTMLElement::IFrameDocument, DontDelete|ReadOnly, 0, &HTMLIFrameElementTableEntries[12] },
+   { "longDesc", KJS::HTMLElement::IFrameLongDesc, DontDelete, 0, 0 },
+   { "marginWidth", KJS::HTMLElement::IFrameMarginWidth, DontDelete, 0, 0 },
+   { "name", KJS::HTMLElement::IFrameName, DontDelete, 0, 0 },
+   { "scrolling", KJS::HTMLElement::IFrameScrolling, DontDelete, 0, 0 },
+   { "width", KJS::HTMLElement::IFrameWidth, DontDelete, 0, 0 }
+};
+
+const struct HashTable HTMLIFrameElementTable = { 2, 17, HTMLIFrameElementTableEntries, 12 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HTMLCollectionProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "namedItem", HTMLCollection::NamedItem, DontDelete|Function, 1, 0 },
+   { "item", HTMLCollection::Item, DontDelete|Function, 1, &HTMLCollectionProtoTableEntries[3] },
+   { "tags", HTMLCollection::Tags, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable HTMLCollectionProtoTable = { 2, 4, HTMLCollectionProtoTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry ImageTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "src", Image::Src, DontDelete, 0, 0 },
+   { "complete", Image::Complete, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable ImageTable = { 2, 3, ImageTableEntries, 3 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_navigator.lut.h b/WebCore/khtml/ecma/kjs_navigator.lut.h
new file mode 100644
index 0000000..e18ee0b
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_navigator.lut.h
@@ -0,0 +1,26 @@
+/* Automatically generated from kjs_navigator.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry NavigatorTableEntries[] = {
+   { "language", Navigator::Language, DontDelete|ReadOnly, 0, &NavigatorTableEntries[13] },
+   { "javaEnabled", Navigator::JavaEnabled, DontDelete|Function, 0, 0 },
+   { "appName", Navigator::AppName, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "vendor", Navigator::Vendor, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "appCodeName", Navigator::AppCodeName, DontDelete|ReadOnly, 0, &NavigatorTableEntries[11] },
+   { "cookieEnabled", Navigator::CookieEnabled, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "product", Navigator::Product, DontDelete|ReadOnly, 0, 0 },
+   { "appVersion", Navigator::AppVersion, DontDelete|ReadOnly, 0, &NavigatorTableEntries[12] },
+   { "userAgent", Navigator::UserAgent, DontDelete|ReadOnly, 0, 0 },
+   { "platform", Navigator::Platform, DontDelete|ReadOnly, 0, &NavigatorTableEntries[14] },
+   { "plugins", Navigator::_Plugins, DontDelete|ReadOnly, 0, &NavigatorTableEntries[15] },
+   { "mimeTypes", Navigator::_MimeTypes, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable NavigatorTable = { 2, 16, NavigatorTableEntries, 11 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_range.lut.h b/WebCore/khtml/ecma/kjs_range.lut.h
new file mode 100644
index 0000000..b56b437
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_range.lut.h
@@ -0,0 +1,65 @@
+/* Automatically generated from kjs_range.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry DOMRangeTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "endOffset", DOMRange::EndOffset, DontDelete|ReadOnly, 0, 0 },
+   { "endContainer", DOMRange::EndContainer, DontDelete|ReadOnly, 0, &DOMRangeTableEntries[7] },
+   { "startOffset", DOMRange::StartOffset, DontDelete|ReadOnly, 0, 0 },
+   { "startContainer", DOMRange::StartContainer, DontDelete|ReadOnly, 0, 0 },
+   { "collapsed", DOMRange::Collapsed, DontDelete|ReadOnly, 0, 0 },
+   { "commonAncestorContainer", DOMRange::CommonAncestorContainer, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMRangeTable = { 2, 8, DOMRangeTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMRangeProtoTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "collapse", DOMRange::Collapse, DontDelete|Function, 1, 0 },
+   { "cloneRange", DOMRange::CloneRange, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setEndAfter", DOMRange::SetEndAfter, DontDelete|Function, 1, 0 },
+   { "detach", DOMRange::Detach, DontDelete|Function, 0, 0 },
+   { "selectNodeContents", DOMRange::SelectNodeContents, DontDelete|Function, 1, &DOMRangeProtoTableEntries[19] },
+   { 0, 0, 0, 0, 0 },
+   { "setStart", DOMRange::SetStart, DontDelete|Function, 2, &DOMRangeProtoTableEntries[17] },
+   { 0, 0, 0, 0, 0 },
+   { "selectNode", DOMRange::SelectNode, DontDelete|Function, 1, &DOMRangeProtoTableEntries[21] },
+   { "deleteContents", DOMRange::DeleteContents, DontDelete|Function, 0, &DOMRangeProtoTableEntries[20] },
+   { 0, 0, 0, 0, 0 },
+   { "setStartAfter", DOMRange::SetStartAfter, DontDelete|Function, 1, 0 },
+   { "insertNode", DOMRange::InsertNode, DontDelete|Function, 1, 0 },
+   { "cloneContents", DOMRange::CloneContents, DontDelete|Function, 0, 0 },
+   { "setEnd", DOMRange::SetEnd, DontDelete|Function, 2, &DOMRangeProtoTableEntries[18] },
+   { "setStartBefore", DOMRange::SetStartBefore, DontDelete|Function, 1, &DOMRangeProtoTableEntries[22] },
+   { "setEndBefore", DOMRange::SetEndBefore, DontDelete|Function, 1, 0 },
+   { "compareBoundaryPoints", DOMRange::CompareBoundaryPoints, DontDelete|Function, 2, 0 },
+   { "extractContents", DOMRange::ExtractContents, DontDelete|Function, 0, 0 },
+   { "surroundContents", DOMRange::SurroundContents, DontDelete|Function, 1, 0 },
+   { "toString", DOMRange::ToString, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable DOMRangeProtoTable = { 2, 23, DOMRangeProtoTableEntries, 17 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry RangeConstructorTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "START_TO_END", DOM::Range::START_TO_END, DontDelete|ReadOnly, 0, &RangeConstructorTableEntries[5] },
+   { 0, 0, 0, 0, 0 },
+   { "END_TO_END", DOM::Range::END_TO_END, DontDelete|ReadOnly, 0, 0 },
+   { "START_TO_START", DOM::Range::START_TO_START, DontDelete|ReadOnly, 0, 0 },
+   { "END_TO_START", DOM::Range::END_TO_START, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable RangeConstructorTable = { 2, 6, RangeConstructorTableEntries, 5 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_traversal.lut.h b/WebCore/khtml/ecma/kjs_traversal.lut.h
new file mode 100644
index 0000000..b63b8f4
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_traversal.lut.h
@@ -0,0 +1,106 @@
+/* Automatically generated from kjs_traversal.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry DOMNodeIteratorTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "filter", DOMNodeIterator::Filter, DontDelete|ReadOnly, 0, 0 },
+   { "root", DOMNodeIterator::Root, DontDelete|ReadOnly, 0, 0 },
+   { "whatToShow", DOMNodeIterator::WhatToShow, DontDelete|ReadOnly, 0, &DOMNodeIteratorTableEntries[5] },
+   { 0, 0, 0, 0, 0 },
+   { "expandEntityReferences", DOMNodeIterator::ExpandEntityReferences, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMNodeIteratorTable = { 2, 6, DOMNodeIteratorTableEntries, 5 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMNodeIteratorProtoTableEntries[] = {
+   { "nextNode", DOMNodeIterator::NextNode, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "previousNode", DOMNodeIterator::PreviousNode, DontDelete|Function, 0, &DOMNodeIteratorProtoTableEntries[3] },
+   { "detach", DOMNodeIterator::Detach, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable DOMNodeIteratorProtoTable = { 2, 4, DOMNodeIteratorProtoTableEntries, 3 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry NodeFilterConstructorTableEntries[] = {
+   { "SHOW_PROCESSING_INSTRUCTION", DOM::NodeFilter::SHOW_PROCESSING_INSTRUCTION, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "SHOW_ELEMENT", DOM::NodeFilter::SHOW_ELEMENT, DontDelete|ReadOnly, 0, &NodeFilterConstructorTableEntries[17] },
+   { "SHOW_ALL", DOM::NodeFilter::SHOW_ALL, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "FILTER_REJECT", DOM::NodeFilter::FILTER_REJECT, DontDelete|ReadOnly, 0, 0 },
+   { "SHOW_ENTITY", DOM::NodeFilter::SHOW_ENTITY, DontDelete|ReadOnly, 0, 0 },
+   { "FILTER_SKIP", DOM::NodeFilter::FILTER_SKIP, DontDelete|ReadOnly, 0, &NodeFilterConstructorTableEntries[18] },
+   { "SHOW_ENTITY_REFERENCE", DOM::NodeFilter::SHOW_ENTITY_REFERENCE, DontDelete|ReadOnly, 0, 0 },
+   { "FILTER_ACCEPT", DOM::NodeFilter::FILTER_ACCEPT, DontDelete|ReadOnly, 0, &NodeFilterConstructorTableEntries[19] },
+   { 0, 0, 0, 0, 0 },
+   { "SHOW_DOCUMENT_FRAGMENT", DOM::NodeFilter::SHOW_DOCUMENT_FRAGMENT, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "SHOW_CDATA_SECTION", DOM::NodeFilter::SHOW_CDATA_SECTION, DontDelete|ReadOnly, 0, &NodeFilterConstructorTableEntries[22] },
+   { "SHOW_ATTRIBUTE", DOM::NodeFilter::SHOW_ATTRIBUTE, DontDelete|ReadOnly, 0, &NodeFilterConstructorTableEntries[20] },
+   { "SHOW_TEXT", DOM::NodeFilter::SHOW_TEXT, DontDelete|ReadOnly, 0, 0 },
+   { "SHOW_COMMENT", DOM::NodeFilter::SHOW_COMMENT, DontDelete|ReadOnly, 0, &NodeFilterConstructorTableEntries[21] },
+   { "SHOW_DOCUMENT", DOM::NodeFilter::SHOW_DOCUMENT, DontDelete|ReadOnly, 0, 0 },
+   { "SHOW_DOCUMENT_TYPE", DOM::NodeFilter::SHOW_DOCUMENT_TYPE, DontDelete|ReadOnly, 0, 0 },
+   { "SHOW_NOTATION", DOM::NodeFilter::SHOW_NOTATION, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable NodeFilterConstructorTable = { 2, 23, NodeFilterConstructorTableEntries, 17 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMNodeFilterProtoTableEntries[] = {
+   { "acceptNode", DOMNodeFilter::AcceptNode, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable DOMNodeFilterProtoTable = { 2, 1, DOMNodeFilterProtoTableEntries, 1 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMTreeWalkerTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "filter", DOMTreeWalker::Filter, DontDelete|ReadOnly, 0, &DOMTreeWalkerTableEntries[6] },
+   { "root", DOMTreeWalker::Root, DontDelete|ReadOnly, 0, 0 },
+   { "whatToShow", DOMTreeWalker::WhatToShow, DontDelete|ReadOnly, 0, &DOMTreeWalkerTableEntries[5] },
+   { 0, 0, 0, 0, 0 },
+   { "expandEntityReferences", DOMTreeWalker::ExpandEntityReferences, DontDelete|ReadOnly, 0, 0 },
+   { "currentNode", DOMTreeWalker::CurrentNode, DontDelete, 0, 0 }
+};
+
+const struct HashTable DOMTreeWalkerTable = { 2, 7, DOMTreeWalkerTableEntries, 5 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry DOMTreeWalkerProtoTableEntries[] = {
+   { "firstChild", DOMTreeWalker::FirstChild, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "previousSibling", DOMTreeWalker::PreviousSibling, DontDelete|Function, 0, &DOMTreeWalkerProtoTableEntries[8] },
+   { "lastChild", DOMTreeWalker::LastChild, DontDelete|Function, 0, 0 },
+   { "parentNode", DOMTreeWalker::ParentNode, DontDelete|Function, 0, &DOMTreeWalkerProtoTableEntries[7] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "nextSibling", DOMTreeWalker::NextSibling, DontDelete|Function, 0, &DOMTreeWalkerProtoTableEntries[9] },
+   { "previousNode", DOMTreeWalker::PreviousNode, DontDelete|Function, 0, 0 },
+   { "nextNode", DOMTreeWalker::NextNode, DontDelete|Function, 0, 0 }
+};
+
+const struct HashTable DOMTreeWalkerProtoTable = { 2, 10, DOMTreeWalkerProtoTableEntries, 7 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_views.lut.h b/WebCore/khtml/ecma/kjs_views.lut.h
new file mode 100644
index 0000000..0c9f579
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_views.lut.h
@@ -0,0 +1,12 @@
+/* Automatically generated from kjs_views.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry DOMAbstractViewTableEntries[] = {
+   { "getComputedStyle", DOMAbstractView::GetComputedStyle, DontDelete|Function, 2, 0 },
+   { "document", DOMAbstractView::Document, DontDelete|ReadOnly, 0, 0 }
+};
+
+const struct HashTable DOMAbstractViewTable = { 2, 2, DOMAbstractViewTableEntries, 2 };
+
+}; // namespace
diff --git a/WebCore/khtml/ecma/kjs_window.lut.h b/WebCore/khtml/ecma/kjs_window.lut.h
new file mode 100644
index 0000000..932f695
--- /dev/null
+++ b/WebCore/khtml/ecma/kjs_window.lut.h
@@ -0,0 +1,177 @@
+/* Automatically generated from kjs_window.cpp using ../../../JavaScriptCore/kjs/create_hash_table. DO NOT EDIT ! */
+
+namespace KJS {
+
+const struct HashEntry ScreenTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "colorDepth", Screen::ColorDepth, DontEnum|ReadOnly, 0, &ScreenTableEntries[9] },
+   { 0, 0, 0, 0, 0 },
+   { "height", Screen::Height, DontEnum|ReadOnly, 0, &ScreenTableEntries[7] },
+   { "pixelDepth", Screen::PixelDepth, DontEnum|ReadOnly, 0, 0 },
+   { "width", Screen::Width, DontEnum|ReadOnly, 0, 0 },
+   { "availTop", Screen::AvailTop, DontEnum|ReadOnly, 0, &ScreenTableEntries[8] },
+   { "availLeft", Screen::AvailLeft, DontEnum|ReadOnly, 0, 0 },
+   { "availHeight", Screen::AvailHeight, DontEnum|ReadOnly, 0, 0 },
+   { "availWidth", Screen::AvailWidth, DontEnum|ReadOnly, 0, 0 }
+};
+
+const struct HashTable ScreenTable = { 2, 10, ScreenTableEntries, 7 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry WindowTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "scrollbars", Window::Scrollbars, DontDelete|ReadOnly, 0, 0 },
+   { "onmouseup", Window::Onmouseup, DontDelete, 0, 0 },
+   { "NodeFilter", Window::NodeFilter, DontDelete, 0, &WindowTableEntries[84] },
+   { 0, 0, 0, 0, 0 },
+   { "Node", Window::Node, DontDelete, 0, &WindowTableEntries[80] },
+   { "resizeTo", Window::ResizeTo, DontDelete|Function, 2, 0 },
+   { "event", Window::Event, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "onkeyup", Window::Onkeyup, DontDelete, 0, 0 },
+   { "location", Window::_Location, DontDelete, 0, &WindowTableEntries[86] },
+   { 0, 0, 0, 0, 0 },
+   { "DOMException", Window::DOMException, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setInterval", Window::SetInterval, DontDelete|Function, 2, &WindowTableEntries[105] },
+   { 0, 0, 0, 0, 0 },
+   { "document", Window::Document, DontDelete|ReadOnly, 0, &WindowTableEntries[78] },
+   { "Option", Window::Option, DontDelete|ReadOnly, 0, &WindowTableEntries[107] },
+   { "closed", Window::Closed, DontDelete|ReadOnly, 0, &WindowTableEntries[87] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "Image", Window::Image, DontDelete|ReadOnly, 0, &WindowTableEntries[99] },
+   { "frames", Window::Frames, DontDelete|ReadOnly, 0, &WindowTableEntries[81] },
+   { "screenTop", Window::ScreenTop, DontDelete|ReadOnly, 0, 0 },
+   { "screen", Window::_Screen, DontDelete|ReadOnly, 0, 0 },
+   { "CSSRule", Window::CSSRule, DontDelete, 0, 0 },
+   { "length", Window::Length, DontDelete|ReadOnly, 0, &WindowTableEntries[79] },
+   { "offscreenBuffering", Window::OffscreenBuffering, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "onkeypress", Window::Onkeypress, DontDelete, 0, 0 },
+   { "clearTimeout", Window::ClearTimeout, DontDelete|Function, 1, 0 },
+   { "defaultstatus", Window::DefaultStatus, DontDelete, 0, &WindowTableEntries[77] },
+   { "name", Window::Name, DontDelete, 0, &WindowTableEntries[104] },
+   { "opener", Window::Opener, DontDelete|ReadOnly, 0, 0 },
+   { "parent", Window::Parent, DontDelete|ReadOnly, 0, &WindowTableEntries[82] },
+   { "screenX", Window::ScreenX, DontDelete|ReadOnly, 0, 0 },
+   { "screenY", Window::ScreenY, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "pageXOffset", Window::PageXOffset, DontDelete|ReadOnly, 0, 0 },
+   { "pageYOffset", Window::PageYOffset, DontDelete|ReadOnly, 0, &WindowTableEntries[83] },
+   { "onmouseout", Window::Onmouseout, DontDelete, 0, 0 },
+   { "self", Window::Self, DontDelete|ReadOnly, 0, 0 },
+   { "onblur", Window::Onblur, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "ondblclick", Window::Ondblclick, DontDelete, 0, &WindowTableEntries[102] },
+   { 0, 0, 0, 0, 0 },
+   { "onclick", Window::Onclick, DontDelete, 0, 0 },
+   { "navigator", Window::_Navigator, DontDelete|ReadOnly, 0, &WindowTableEntries[95] },
+   { "window", Window::_Window, DontDelete|ReadOnly, 0, 0 },
+   { "open", Window::Open, DontDelete|Function, 3, 0 },
+   { "scrollX", Window::ScrollX, DontDelete|ReadOnly, 0, 0 },
+   { "innerWidth", Window::InnerWidth, DontDelete|ReadOnly, 0, &WindowTableEntries[85] },
+   { "Event", Window::EventCtor, DontDelete, 0, &WindowTableEntries[93] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "crypto", Window::Crypto, DontDelete|ReadOnly, 0, &WindowTableEntries[90] },
+   { "prompt", Window::Prompt, DontDelete|Function, 2, &WindowTableEntries[100] },
+   { "onmousedown", Window::Onmousedown, DontDelete, 0, 0 },
+   { "status", Window::Status, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "innerHeight", Window::InnerHeight, DontDelete|ReadOnly, 0, &WindowTableEntries[101] },
+   { "onabort", Window::Onabort, DontDelete, 0, 0 },
+   { "onchange", Window::Onchange, DontDelete, 0, 0 },
+   { "onkeydown", Window::Onkeydown, DontDelete, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "outerWidth", Window::OuterWidth, DontDelete|ReadOnly, 0, 0 },
+   { "ondragdrop", Window::Ondragdrop, DontDelete, 0, 0 },
+   { "scrollBy", Window::ScrollBy, DontDelete|Function, 2, &WindowTableEntries[94] },
+   { 0, 0, 0, 0, 0 },
+   { "konqueror", Window::_Konqueror, DontDelete|ReadOnly, 0, &WindowTableEntries[89] },
+   { "resizeBy", Window::ResizeBy, DontDelete|Function, 2, &WindowTableEntries[103] },
+   { "defaultStatus", Window::DefaultStatus, DontDelete, 0, &WindowTableEntries[96] },
+   { "Range", Window::Range, DontDelete, 0, &WindowTableEntries[88] },
+   { "history", Window::_History, DontDelete|ReadOnly, 0, 0 },
+   { "clientInformation", Window::ClientInformation, DontDelete|ReadOnly, 0, 0 },
+   { "outerHeight", Window::OuterHeight, DontDelete|ReadOnly, 0, &WindowTableEntries[92] },
+   { "personalbar", Window::Personalbar, DontDelete|ReadOnly, 0, 0 },
+   { "screenLeft", Window::ScreenLeft, DontDelete|ReadOnly, 0, &WindowTableEntries[106] },
+   { "scroll", Window::Scroll, DontDelete|Function, 2, 0 },
+   { "scrollTo", Window::ScrollTo, DontDelete|Function, 2, 0 },
+   { "scrollY", Window::ScrollY, DontDelete|ReadOnly, 0, 0 },
+   { "moveBy", Window::MoveBy, DontDelete|Function, 2, 0 },
+   { "moveTo", Window::MoveTo, DontDelete|Function, 2, 0 },
+   { "top", Window::Top, DontDelete|ReadOnly, 0, 0 },
+   { "alert", Window::Alert, DontDelete|Function, 1, &WindowTableEntries[91] },
+   { "confirm", Window::Confirm, DontDelete|Function, 1, 0 },
+   { "setTimeout", Window::SetTimeout, DontDelete|Function, 2, 0 },
+   { "focus", Window::Focus, DontDelete|Function, 0, &WindowTableEntries[97] },
+   { "blur", Window::Blur, DontDelete|Function, 0, 0 },
+   { "close", Window::Close, DontDelete|Function, 0, &WindowTableEntries[98] },
+   { "clearInterval", Window::ClearInterval, DontDelete|Function, 1, 0 },
+   { "captureEvents", Window::CaptureEvents, DontDelete|Function, 0, 0 },
+   { "onerror", Window::Onerror, DontDelete, 0, 0 },
+   { "onfocus", Window::Onfocus, DontDelete, 0, 0 },
+   { "onload", Window::Onload, DontDelete, 0, 0 },
+   { "onmousemove", Window::Onmousemove, DontDelete, 0, 0 },
+   { "onmouseover", Window::Onmouseover, DontDelete, 0, 0 },
+   { "onmove", Window::Onmove, DontDelete, 0, 0 },
+   { "onreset", Window::Onreset, DontDelete, 0, 0 },
+   { "onresize", Window::Onresize, DontDelete, 0, 0 },
+   { "onselect", Window::Onselect, DontDelete, 0, 0 },
+   { "onsubmit", Window::Onsubmit, DontDelete, 0, 0 },
+   { "onunload", Window::Onunload, DontDelete, 0, 0 }
+};
+
+const struct HashTable WindowTable = { 2, 108, WindowTableEntries, 77 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry LocationTableEntries[] = {
+   { "toString", Location::ToString, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "hash", Location::Hash, DontDelete, 0, &LocationTableEntries[11] },
+   { "href", Location::Href, DontDelete, 0, &LocationTableEntries[13] },
+   { "reload", Location::Reload, DontDelete|Function, 0, 0 },
+   { "hostname", Location::Hostname, DontDelete, 0, 0 },
+   { "host", Location::Host, DontDelete, 0, &LocationTableEntries[14] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "pathname", Location::Pathname, DontDelete, 0, 0 },
+   { "port", Location::Port, DontDelete, 0, &LocationTableEntries[12] },
+   { "protocol", Location::Protocol, DontDelete, 0, 0 },
+   { "search", Location::Search, DontDelete, 0, 0 },
+   { "[[==]]", Location::EqualEqual, DontDelete|ReadOnly, 0, &LocationTableEntries[15] },
+   { "replace", Location::Replace, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable LocationTable = { 2, 16, LocationTableEntries, 11 };
+
+}; // namespace
+
+namespace KJS {
+
+const struct HashEntry HistoryTableEntries[] = {
+   { 0, 0, 0, 0, 0 },
+   { "back", History::Back, DontDelete|Function, 0, &HistoryTableEntries[4] },
+   { "length", History::Length, DontDelete|ReadOnly, 0, &HistoryTableEntries[5] },
+   { 0, 0, 0, 0, 0 },
+   { "forward", History::Forward, DontDelete|Function, 0, 0 },
+   { "go", History::Go, DontDelete|Function, 1, 0 }
+};
+
+const struct HashTable HistoryTable = { 2, 6, HistoryTableEntries, 4 };
+
+}; // namespace
diff --git a/WebCore/khtml/html/.cvsignore b/WebCore/khtml/html/.cvsignore
index 3582895..282522d 100644
--- a/WebCore/khtml/html/.cvsignore
+++ b/WebCore/khtml/html/.cvsignore
@@ -1,3 +1,2 @@
 Makefile
 Makefile.in
-kentities.c
diff --git a/WebCore/khtml/html/kentities.c b/WebCore/khtml/html/kentities.c
new file mode 100644
index 0000000..07ffb54
--- /dev/null
+++ b/WebCore/khtml/html/kentities.c
@@ -0,0 +1,631 @@
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -a -L ANSI-C -C -G -c -o -t -k '*' -NfindEntity -D -s 2 kentities.gperf  */
+/*   This file is part of the KDE libraries
+  
+     Copyright (C) 1999 Lars Knoll (knoll at mpi-hd.mpg.de)
+  
+     This library is free software; you can redistribute it and/or
+     modify it under the terms of the GNU Library General Public
+     License as published by the Free Software Foundation; either
+     version 2 of the License, or (at your option) any later version.
+  
+     This library is distributed in the hope that it will be useful,
+     but WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     Library General Public License for more details.
+  
+     You should have received a copy of the GNU Library General Public License
+     along with this library; see the file COPYING.LIB.  If not, write to
+     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+  
+  ----------------------------------------------------------------------------
+  
+    kentities.gperf: input file to generate a hash table for entities
+    kentities.c: DO NOT EDIT! generated by the command
+    "gperf -a -L "ANSI-C" -C -G -c -o -t -k '*' -NfindEntity -D -s 2 khtmlentities.gperf > entities.c"   
+    from kentities.gperf 
+
+*/  
+struct entity {
+    const char *name;
+    int code;
+};
+
+#define TOTAL_KEYWORDS 258
+#define MIN_WORD_LENGTH 2
+#define MAX_WORD_LENGTH 8
+#define MIN_HASH_VALUE 2
+#define MAX_HASH_VALUE 1736
+/* maximum key range = 1735, duplicates = 1 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+hash (register const char *str, register unsigned int len)
+{
+  static const unsigned short asso_values[] =
+    {
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,    0,
+        15,   10,    0, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737,  165,    5,    0,    5,   35,
+      1737,    5,    0,   75, 1737,    5,    0,    0,    5,   45,
+         5,    0,    5,    0,    0,   25, 1737, 1737,   20,   40,
+         0, 1737, 1737, 1737, 1737, 1737, 1737,    0,  305,  115,
+       460,    5,    0,  410,  315,   15,    5,    0,   20,  380,
+       150,  380,  105,   75,    0,  205,   35,   10,   15,   20,
+        15,  105,   25, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
+      1737, 1737, 1737, 1737, 1737, 1737
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+      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;
+}
+
+static const struct entity wordlist[] =
+  {
+    {"LT", 60},
+    {"rarr", 0x2192},
+    {"GT", 62},
+    {"Mu", 0x039c},
+    {"Tau", 0x03a4},
+    {"uarr", 0x2191},
+    {"Nu", 0x039d},
+    {"Pi", 0x03a0},
+    {"larr", 0x2190},
+    {"le", 0x2264},
+    {"real", 0x211c},
+    {"xi", 0x03be},
+    {"Xi", 0x039e},
+    {"ETH", 0x00d0},
+    {"eta", 0x03b7},
+    {"Zeta", 0x0396},
+    {"tau", 0x03c4},
+    {"Beta", 0x0392},
+    {"zwj", 0x200d},
+    {"lt", 60},
+    {"THORN", 0x00de},
+    {"zeta", 0x03b6},
+    {"Delta", 0x0394},
+    {"Eta", 0x0397},
+    {"QUOT", 34},
+    {"para", 0x00b6},
+    {"crarr", 0x21b5},
+    {"frac14", 0x00bc},
+    {"pi", 0x03c0},
+    {"equiv", 0x2261},
+    {"frac34", 0x00be},
+    {"frac12", 0x00bd},
+    {"piv", 0x03d6},
+    {"part", 0x2202},
+    {"weierp", 0x2118},
+    {"ne", 0x2260},
+    {"rceil", 0x2309},
+    {"nu", 0x03bd},
+    {"ni", 0x220b},
+    {"rArr", 0x21d2},
+    {"acute", 0x00b4},
+    {"aacute", 0x00e1},
+    {"AMP", 38},
+    {"iexcl", 0x00a1},
+    {"eacute", 0x00e9},
+    {"uArr", 0x21d1},
+    {"lceil", 0x2308},
+    {"uacute", 0x00fa},
+    {"iacute", 0x00ed},
+    {"lArr", 0x21d0},
+    {"Uacute", 0x00da},
+    {"int", 0x222b},
+    {"zwnj", 0x200c},
+    {"Eacute", 0x00c9},
+    {"Yacute", 0x00dd},
+    {"kappa", 0x03ba},
+    {"Oacute", 0x00d3},
+    {"perp", 0x22a5},
+    {"Kappa", 0x039a},
+    {"cap", 0x2229},
+    {"Psi", 0x03a8},
+    {"frasl", 0x2044},
+    {"cup", 0x222a},
+    {"Iacute", 0x00cd},
+    {"circ", 0x02c6},
+    {"acirc", 0x00e2},
+    {"ecirc", 0x00ea},
+    {"ucirc", 0x00fb},
+    {"yen", 0x00a5},
+    {"icirc", 0x00ee},
+    {"Ucirc", 0x00db},
+    {"yacute", 0x00fd},
+    {"exist", 0x2203},
+    {"Ecirc", 0x00ca},
+    {"curren", 0x00a4},
+    {"Ocirc", 0x00d4},
+    {"cent", 0x00a2},
+    {"harr", 0x2194},
+    {"sup", 0x2283},
+    {"sup1", 0x00b9},
+    {"Icirc", 0x00ce},
+    {"psi", 0x03c8},
+    {"supe", 0x2287},
+    {"Chi", 0x03a7},
+    {"sup3", 0x00b3},
+    {"infin", 0x221e},
+    {"Aacute", 0x00c1},
+    {"Phi", 0x03a6},
+    {"sup2", 0x00b2},
+    {"beta", 0x03b2},
+    {"iquest", 0x00bf},
+    {"eth", 0x00f0},
+    {"bull", 0x2022},
+    {"Theta", 0x0398},
+    {"sect", 0x00a7},
+    {"there4", 0x2234},
+    {"or", 0x22a6},
+    {"isin", 0x2208},
+    {"mu", 0x03bc},
+    {"theta", 0x03b8},
+    {"euro", 0x20ac},
+    {"lrm", 0x200e},
+    {"rlm", 0x200f},
+    {"Prime", 0x2033},
+    {"uml", 0x00a8},
+    {"auml", 0x00e4},
+    {"Acirc", 0x00c2},
+    {"percnt", 0x0025},
+    {"ge", 0x2265},
+    {"reg", 0x00ae},
+    {"euml", 0x00eb},
+    {"uuml", 0x00fc},
+    {"forall", 0x2200},
+    {"loz", 0x25ca},
+    {"iuml", 0x00ef},
+    {"iota", 0x03b9},
+    {"agrave", 0x00e0},
+    {"phi", 0x03c6},
+    {"Uuml", 0x00dc},
+    {"egrave", 0x00e8},
+    {"alpha", 0x03b1},
+    {"ugrave", 0x00f9},
+    {"gt", 62},
+    {"chi", 0x03c7},
+    {"Euml", 0x00cb},
+    {"igrave", 0x00ec},
+    {"Yuml", 0x0178},
+    {"aelig", 0x00e6},
+    {"Ouml", 0x00d6},
+    {"Ugrave", 0x00d9},
+    {"darr", 0x2193},
+    {"ensp", 0x2002},
+    {"raquo", 0x00bb},
+    {"Egrave", 0x00c8},
+    {"nabla", 0x2207},
+    {"Ograve", 0x00d2},
+    {"hArr", 0x21d4},
+    {"hellip", 0x2026},
+    {"amp", 38},
+    {"Iuml", 0x00cf},
+    {"laquo", 0x00ab},
+    {"Iota", 0x0399},
+    {"macr", 0x00af},
+    {"quot", 34},
+    {"trade", 0x2122},
+    {"prime", 0x2032},
+    {"Igrave", 0x00cc},
+    {"yuml", 0x00ff},
+    {"sub", 0x2282},
+    {"delta", 0x03b4},
+    {"sube", 0x2286},
+    {"OElig", 0x0152},
+    {"permil", 0x2030},
+    {"fnof", 0x0192},
+    {"tilde", 0x02dc},
+    {"atilde", 0x00e3},
+    {"Ntilde", 0x00d1},
+    {"oacute", 0x00f3},
+    {"ang", 0x2220},
+    {"rang", 0x232a},
+    {"hearts", 0x2665},
+    {"not", 0x00ac},
+    {"oline", 0x203e},
+    {"Auml", 0x00c4},
+    {"aring", 0x00e5},
+    {"lang", 0x2329},
+    {"Otilde", 0x00d5},
+    {"prop", 0x221d},
+    {"radic", 0x221a},
+    {"sum", 0x2211},
+    {"Agrave", 0x00c0},
+    {"sim", 0x223c},
+    {"Alpha", 0x0391},
+    {"and", 0x22a5},
+    {"cedil", 0x00b8},
+    {"Ccedil", 0x00c7},
+    {"shy", 0x00ad},
+    {"dArr", 0x21d3},
+    {"ocirc", 0x00f4},
+    {"brvbar", 0x00a6},
+    {"empty", 0x2205},
+    {"times", 0x00d7},
+    {"AElig", 0x00c6},
+    {"Scaron", 0x0160},
+    {"upsih", 0x03d2},
+    {"clubs", 0x2663},
+    {"lowast", 0x2217},
+    {"nsub", 0x2284},
+    {"rsquo", 0x2019},
+    {"rsaquo", 0x203a},
+    {"szlig", 0x00df},
+    {"ntilde", 0x00f1},
+    {"apos", 0x0027},
+    {"lsquo", 0x2018},
+    {"lsaquo", 0x2039},
+    {"rho", 0x03c1},
+    {"emsp", 0x2003},
+    {"Rho", 0x03a1},
+    {"Atilde", 0x00c3},
+    {"copy", 0x00a9},
+    {"alefsym", 0x2135},
+    {"oplus", 0x2295},
+    {"notin", 0x2209},
+    {"ccedil", 0x00e7},
+    {"Aring", 0x00c5},
+    {"minus", 0x2212},
+    {"nbsp", 0x00a0},
+    {"Gamma", 0x0393},
+    {"rfloor", 0x230b},
+    {"ouml", 0x00f6},
+    {"Oslash", 0x00d8},
+    {"asymp", 0x2248},
+    {"lfloor", 0x230a},
+    {"Sigma", 0x03a3},
+    {"image", 0x2111},
+    {"ograve", 0x00f2},
+    {"thinsp", 0x2009},
+    {"oelig", 0x0153},
+    {"Dagger", 0x2021},
+    {"ordf", 0x00aa},
+    {"Omega", 0x03a9},
+    {"scaron", 0x0161},
+    {"plusmn", 0x00b1},
+    {"deg", 0x00b0},
+    {"thorn", 0x00fe},
+    {"epsilon", 0x03b5},
+    {"upsilon", 0x03c5},
+    {"micro", 0x00b5},
+    {"Upsilon", 0x03a5},
+    {"Epsilon", 0x0395},
+    {"otilde", 0x00f5},
+    {"rdquo", 0x201d},
+    {"prod", 0x220f},
+    {"ldquo", 0x201c},
+    {"divide", 0x00f7},
+    {"sbquo", 0x201a},
+    {"spades", 0x2660},
+    {"sigma", 0x03c3},
+    {"sigmaf", 0x03c2},
+    {"otimes", 0x2297},
+    {"cong", 0x2245},
+    {"diams", 0x2666},
+    {"sdot", 0x22c5},
+    {"thetasym", 0x03d1},
+    {"Omicron", 0x039f},
+    {"pound", 0x00a3},
+    {"oslash", 0x00f8},
+    {"ndash", 0x2013},
+    {"Lambda", 0x039b},
+    {"lambda", 0x03bb},
+    {"gamma", 0x03b3},
+    {"omega", 0x03c9},
+    {"ordm", 0x00ba},
+    {"bdquo", 0x201e},
+    {"dagger", 0x2020},
+    {"mdash", 0x2014},
+    {"omicron", 0x03bf},
+    {"middot", 0x00b7}
+  };
+
+static const short lookup[] =
+  {
+      -1,   -1,    0,   -1,    1,   -1,   -1,    2,
+      -1,   -1,   -1,   -1,    3,    4,    5,   -1,
+      -1,    6,   -1,   -1,   -1,   -1,    7,   -1,
+       8,   -1,   -1,    9,   -1,   10,   -1,   -1,
+      11,   -1,   -1,   -1,   -1,   12,   13,   -1,
+      -1,   -1,   -1,   14,   15,   -1,   -1,   -1,
+      16,   17,   -1,   -1,   -1,   18,   -1,   -1,
+      -1,   19,   -1,   -1,   20,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   21,   22,   -1,
+      -1,   23,   24,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   25,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      26,   27,   28,   -1,   -1,   29,   -1,   -1,
+      -1,   -1,   -1,   30,   -1,   -1,   -1,   -1,
+      31,   -1,   32,   -1,   -1,   -1,   -1,   -1,
+      33,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   34,   35,   -1,   -1,
+      36,   -1,   37,   -1,   -1,   -1,   -1,   38,
+      -1,   39,   40,   41,   -1,   42,   -1,   43,
+      44,   -1,   -1,   45,   46,   47,   -1,   -1,
+      -1,   -1,   48,   -1,   -1,   49,   -1,   -1,
+      -1,   -1,   -1,   -1,   50,   -1,   -1,   -1,
+      -1,   -1,   -1,   51,   52,   -1,   53,   -1,
+      -1,   -1,   -1,   54,   -1,   -1,   -1,   55,
+      56,   -1,   -1,   57,   58,   -1,   -1,   59,
+      -1,   -1,   -1,   -1,   60,   -1,   61,   -1,
+      -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   63,   -1,
+      -1,   64,   65,   -1,   -1,   -1,   -1,   66,
+      -1,   -1,   -1,   -1,   67,   -1,   -1,   68,
+      -1,   69,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   70,   71,   -1,   -1,   -1,
+      72,   -1,   -1,   -1,   -1,   73,   74,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   75,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   76,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   77,
+      -1,   -1,   -1,   78,   79,   80,   -1,   -1,
+      81,   82,   -1,   -1,   -1,   83,   84,   85,
+      86,   -1,   87,   88,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   89,   -1,   90,
+      -1,   -1,   -1,   -1,   -1,   -1,   91,   92,
+      93,   -1,   -1,   -1,   94,   -1,   95,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   96,   -1,
+      -1,   -1,   -1,   -1,   -1,   97,   -1,   -1,
+      98,   -1,   -1,   99,   -1,   -1,   -1,  100,
+      -1,   -1,   -1, -663, -157,   -2,   -1,   -1,
+      -1,   -1,  103,   -1,   -1,  104,  105,  106,
+     107,  108,  109,  110,   -1,   -1,   -1,   -1,
+     111,   -1,  112,   -1,  113,  114,   -1,   -1,
+      -1,   -1,  115,   -1,  116,   -1,  117,  118,
+      -1,  119,   -1,   -1,   -1,  120,  121,  122,
+     123,  124,   -1,  125,   -1,   -1,  126,  127,
+      -1,   -1,   -1,  128,   -1,  129,   -1,   -1,
+     130,   -1,   -1,   -1,   -1,  131,  132,  133,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+     134,  135,   -1,   -1,  136,   -1,  137,   -1,
+     138,  139,  140,   -1,   -1,   -1,  141,   -1,
+      -1,   -1,   -1,  142,   -1,   -1,   -1,   -1,
+     143,  144,   -1,   -1,   -1,   -1,  145,  146,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,  147,
+      -1,   -1,   -1,  148,   -1,  149,   -1,   -1,
+      -1,  150,  151,  152,   -1,   -1,  153,   -1,
+      -1,   -1,   -1,   -1,  154,  155,   -1,   -1,
+      -1,   -1,  156,   -1,   -1,   -1,   -1,  157,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  158,  159,   -1,  160,   -1,
+     161,   -1,   -1,   -1,   -1,   -1,   -1,  162,
+      -1,   -1,   -1,  163,  164,   -1,   -1,   -1,
+     165,   -1,  166,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  167,  168,   -1,   -1,  169,   -1,
+      -1,  170,   -1,  171,   -1,   -1,   -1,   -1,
+      -1,   -1,  172,   -1,   -1,  173,   -1,   -1,
+      -1,   -1,   -1,   -1,  174,  175,   -1,   -1,
+      -1,   -1,   -1,   -1,  176,  177,  178,  179,
+      -1,   -1,   -1,  180,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,  181,   -1,   -1,
+      -1,   -1,  182,  183,   -1,   -1,   -1,  184,
+      -1,   -1,   -1,   -1,  185,   -1,   -1,   -1,
+      -1,   -1,  186,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  187,  188,  189,   -1,   -1,   -1,
+     190,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  191,   -1,   -1,  192,  193,
+     194,   -1,  195,  196,   -1,   -1,   -1,  197,
+      -1,   -1,  198,   -1,   -1,  199,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  200,   -1,   -1,  201,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,  202,
+     203,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,  204,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,  205,   -1,   -1,
+      -1,  206,  207,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  208,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  209,   -1,  210,   -1,   -1,   -1,
+     211,   -1,   -1,   -1,   -1,   -1,  212,   -1,
+      -1,   -1,  213,   -1,   -1,   -1,   -1,  214,
+     215,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,  216,
+      -1,   -1,   -1,  217,  218,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,  219,  220,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+     221,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,  222,   -1,  223,   -1,
+      -1,   -1,   -1,   -1,   -1,  224,   -1,  225,
+      -1,   -1,   -1,   -1,  226,   -1,   -1,  227,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  228,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,  229,   -1,   -1,
+      -1,  230,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  231,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,  232,  233,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+     234,   -1,   -1,   -1,  235,   -1,   -1,   -1,
+      -1,   -1,  236,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,  237,
+     238,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,  239,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  240,   -1,   -1,   -1,   -1,
+      -1,  241,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,  242,   -1,   -1,   -1,
+     243,   -1,   -1,   -1,  244,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,  245,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  246,   -1,   -1,   -1,  247,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,  248,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  249,   -1,   -1,   -1,  250,
+      -1,   -1,   -1,   -1,  251,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+     252,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  253,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  254,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,  255,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,  256,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+     257
+  };
+
+#ifdef __GNUC__
+__inline
+#endif
+const struct entity *
+findEntity (register const char *str, register unsigned int len)
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int index = lookup[key];
+
+          if (index >= 0)
+            {
+              register const char *s = wordlist[index].name;
+
+              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
+                return &wordlist[index];
+            }
+          else if (index < -TOTAL_KEYWORDS)
+            {
+              register int offset = - 1 - TOTAL_KEYWORDS - index;
+              register const struct entity *wordptr = &wordlist[TOTAL_KEYWORDS + lookup[offset]];
+              register const struct entity *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;
+}
+
diff --git a/WebCore/khtml/misc/.cvsignore b/WebCore/khtml/misc/.cvsignore
index c125695..63ccc69 100644
--- a/WebCore/khtml/misc/.cvsignore
+++ b/WebCore/khtml/misc/.cvsignore
@@ -1,10 +1,6 @@
 Makefile
 Makefile.in
-htmltags.c
-htmltags.h
 htmltags.gperf
-htmlattrs.c
-htmlattrs.h
 htmlattrs.gperf
 .deps
 *-stamp
diff --git a/WebCore/khtml/misc/htmlattrs.c b/WebCore/khtml/misc/htmlattrs.c
new file mode 100644
index 0000000..c01a115
--- /dev/null
+++ b/WebCore/khtml/misc/htmlattrs.c
@@ -0,0 +1,559 @@
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -c -a -L ANSI-C -D -E -C -o -t -k '*' -NfindAttr -Hhash_attr -Wwordlist_attr -s 2 htmlattrs.gperf  */
+/* This file is automatically generated from
+#htmlattrs.in by makeattrs, do not edit */
+/* Copyright 1999 Lars Knoll */
+#include "htmlattrs.h"
+struct attrs {
+    const char *name;
+    int id;
+};
+/* maximum key range = 898, duplicates = 1 */
+
+#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[] =
+    {
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922,   0, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922,  20,  35,   0,
+      195,   0,  35,  40,  95,  15,   5,  55,   0,  70,
+        0,   0,  45,   0, 185,  20,  15,  65,  80,  40,
+       10, 140,  45, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
+      922, 922, 922, 922, 922, 922
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+      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 = 144,
+      MIN_WORD_LENGTH = 2,
+      MAX_WORD_LENGTH = 14,
+      MIN_HASH_VALUE = 24,
+      MAX_HASH_VALUE = 921
+    };
+
+  static const struct attrs wordlist_attr[] =
+    {
+      {"cols", ATTR_COLS},
+      {"cite", ATTR_CITE},
+      {"content", ATTR_CONTENT},
+      {"alt", ATTR_ALT},
+      {"onselect", ATTR_ONSELECT},
+      {"text", ATTR_TEXT},
+      {"title", ATTR_TITLE},
+      {"left", ATTR_LEFT},
+      {"action", ATTR_ACTION},
+      {"face", ATTR_FACE},
+      {"label", ATTR_LABEL},
+      {"object", ATTR_OBJECT},
+      {"top", ATTR_TOP},
+      {"lang", ATTR_LANG},
+      {"class", ATTR_CLASS},
+      {"axis", ATTR_AXIS},
+      {"scope", ATTR_SCOPE},
+      {"link", ATTR_LINK},
+      {"onclick", ATTR_ONCLICK},
+      {"align", ATTR_ALIGN},
+      {"size", ATTR_SIZE},
+      {"plain", ATTR_PLAIN},
+      {"accept", ATTR_ACCEPT},
+      {"span", ATTR_SPAN},
+      {"colspan", ATTR_COLSPAN},
+      {"name", ATTR_NAME},
+      {"alink", ATTR_ALINK},
+      {"pagex", ATTR_PAGEX},
+      {"nosave", ATTR_NOSAVE},
+      {"onfocus", ATTR_ONFOCUS},
+      {"cellspacing", ATTR_CELLSPACING},
+      {"vlink", ATTR_VLINK},
+      {"compact", ATTR_COMPACT},
+      {"valign", ATTR_VALIGN},
+      {"onchange", ATTR_ONCHANGE},
+      {"challenge", ATTR_CHALLENGE},
+      {"unknown", ATTR_UNKNOWN},
+      {"value", ATTR_VALUE},
+      {"vspace", ATTR_VSPACE},
+      {"ismap", ATTR_ISMAP},
+      {"style", ATTR_STYLE},
+      {"html", ATTR_HTML},
+      {"shape", ATTR_SHAPE},
+      {"hspace", ATTR_HSPACE},
+      {"rel", ATTR_REL},
+      {"color", ATTR_COLOR},
+      {"scheme", ATTR_SCHEME},
+      {"language", ATTR_LANGUAGE},
+      {"code", ATTR_CODE},
+      {"type", ATTR_TYPE},
+      {"enctype", ATTR_ENCTYPE},
+      {"src", ATTR_SRC},
+      {"clear", ATTR_CLEAR},
+      {"id", ATTR_ID},
+      {"multiple", ATTR_MULTIPLE},
+      {"onload", ATTR_ONLOAD},
+      {"for", ATTR_FOR},
+      {"usemap", ATTR_USEMAP},
+      {"onreset", ATTR_ONRESET},
+      {"onsubmit", ATTR_ONSUBMIT},
+      {"selected", ATTR_SELECTED},
+      {"autocomplete", ATTR_AUTOCOMPLETE},
+      {"onmouseout", ATTR_ONMOUSEOUT},
+      {"rows", ATTR_ROWS},
+      {"pagey", ATTR_PAGEY},
+      {"data", ATTR_DATA},
+      {"maxlength", ATTR_MAXLENGTH},
+      {"start", ATTR_START},
+      {"onabort", ATTR_ONABORT},
+      {"longdesc", ATTR_LONGDESC},
+      {"accesskey", ATTR_ACCESSKEY},
+      {"height", ATTR_HEIGHT},
+      {"bgcolor", ATTR_BGCOLOR},
+      {"rev", ATTR_REV},
+      {"scrolling", ATTR_SCROLLING},
+      {"z-index", ATTR_Z_INDEX},
+      {"noresize", ATTR_NORESIZE},
+      {"onresize", ATTR_ONRESIZE},
+      {"onmouseup", ATTR_ONMOUSEUP},
+      {"rules", ATTR_RULES},
+      {"classid", ATTR_CLASSID},
+      {"codebase", ATTR_CODEBASE},
+      {"abbr", ATTR_ABBR},
+      {"pluginpage", ATTR_PLUGINPAGE},
+      {"target", ATTR_TARGET},
+      {"profile", ATTR_PROFILE},
+      {"onunload", ATTR_ONUNLOAD},
+      {"onblur", ATTR_ONBLUR},
+      {"wrap", ATTR_WRAP},
+      {"nowrap", ATTR_NOWRAP},
+      {"tabindex", ATTR_TABINDEX},
+      {"pluginspage", ATTR_PLUGINSPAGE},
+      {"char", ATTR_CHAR},
+      {"media", ATTR_MEDIA},
+      {"version", ATTR_VERSION},
+      {"ondblclick", ATTR_ONDBLCLICK},
+      {"onkeyup", ATTR_ONKEYUP},
+      {"frame", ATTR_FRAME},
+      {"onmousemove", ATTR_ONMOUSEMOVE},
+      {"rowspan", ATTR_ROWSPAN},
+      {"href", ATTR_HREF},
+      {"nohref", ATTR_NOHREF},
+      {"noshade", ATTR_NOSHADE},
+      {"datetime", ATTR_DATETIME},
+      {"http-equiv", ATTR_HTTP_EQUIV},
+      {"charset", ATTR_CHARSET},
+      {"checked", ATTR_CHECKED},
+      {"visibility", ATTR_VISIBILITY},
+      {"width", ATTR_WIDTH},
+      {"prompt", ATTR_PROMPT},
+      {"valuetype", ATTR_VALUETYPE},
+      {"charoff", ATTR_CHAROFF},
+      {"method", ATTR_METHOD},
+      {"hreflang", ATTR_HREFLANG},
+      {"leftmargin", ATTR_LEFTMARGIN},
+      {"dir", ATTR_DIR},
+      {"topmargin", ATTR_TOPMARGIN},
+      {"onmousedown", ATTR_ONMOUSEDOWN},
+      {"archive", ATTR_ARCHIVE},
+      {"codetype", ATTR_CODETYPE},
+      {"coords", ATTR_COORDS},
+      {"declare", ATTR_DECLARE},
+      {"defer", ATTR_DEFER},
+      {"pluginurl", ATTR_PLUGINURL},
+      {"accept-charset", ATTR_ACCEPT_CHARSET},
+      {"onmouseover", ATTR_ONMOUSEOVER},
+      {"standby", ATTR_STANDBY},
+      {"onkeydown", ATTR_ONKEYDOWN},
+      {"onkeypress", ATTR_ONKEYPRESS},
+      {"oversrc", ATTR_OVERSRC},
+      {"disabled", ATTR_DISABLED},
+      {"hidden", ATTR_HIDDEN},
+      {"cellpadding", ATTR_CELLPADDING},
+      {"headers", ATTR_HEADERS},
+      {"readonly", ATTR_READONLY},
+      {"onerror", ATTR_ONERROR},
+      {"summary", ATTR_SUMMARY},
+      {"bgproperties", ATTR_BGPROPERTIES},
+      {"marginheight", ATTR_MARGINHEIGHT},
+      {"background", ATTR_BACKGROUND},
+      {"border", ATTR_BORDER},
+      {"marginwidth", ATTR_MARGINWIDTH},
+      {"bordercolor", ATTR_BORDERCOLOR},
+      {"frameborder", ATTR_FRAMEBORDER}
+    };
+
+  static const short lookup[] =
+    {
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+         0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,    1,   -1,   -1,    2,    3,   -1,
+        -1,   -1,   -1,    4,    5,   -1,   -1,   -1,
+        -1,   -1,    6,   -1,   -1,   -1,    7,   -1,
+         8,   -1,   -1,    9,   10,   11,   -1,   12,
+        13,   14,   -1,   -1,   -1,   15,   16,   -1,
+        -1,   -1,   17,   -1,   -1,   18,   -1,   -1,
+        19,   -1,   -1,   -1,   20,   21,   22,   -1,
+        -1,   23,   -1,   -1,   24,   -1,   25,   26,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        27,   -1,   -1,   -1,   -1,   -1,   28,   29,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   30,
+        -1,   -1,   -1,   31,   -1,   32,   -1,   -1,
+        -1,   33,   -1,   34,   35,   -1,   -1,   36,
+        -1,   -1,   37,   38,   -1,   -1,   -1,   39,
+        -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,
+        41,   42,   43,   -1,   44,   -1,   45,   46,
+        -1,   47,   -1,   -1,   -1,   -1,   -1,   48,
+        -1,   -1,   -1,   -1,   49,   -1,   -1,   50,
+        51,   -1,   52,   -1,   53,   -1,   -1,   -1,
+        -1,   -1,   54,   -1,   -1,   55,   -1,   56,
+        -1,   -1,   57,   58,   59,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,
+        -1,   -1,   61,   -1,   -1,   62,   -1,   -1,
+        -1,   63,   64,   -1,   -1,   -1,   65,   -1,
+        -1,   -1,   -1,   66,   67,   -1,   68,   69,
+        70,   -1,   71,   72,   73,   74,   -1,   -1,
+        75, -427,   78,   79,   -1,   80,   81,   82,
+        83,   84,  -68,   -2,   -1,   -1,   -1,   85,
+        86,   -1,   -1,   87,   -1,   -1,   88,   -1,
+        89,   -1,   90,   -1,   -1,   91,   -1,   -1,
+        92,   93,   -1,   94,   -1,   -1,   95,   -1,
+        96,   -1,   -1,   97,   98,   99,   -1,  100,
+        -1,  101,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  102,  103,   -1,  104,   -1,  105,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       106,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       107,   -1,   -1,   -1,   -1,  108,  109,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  110,   -1,
+        -1,  111,   -1,   -1,   -1,  112,   -1,  113,
+        -1,   -1,   -1,   -1,   -1,   -1,  114,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  115,  116,
+        -1,  117,  118,  119,   -1,   -1,  120,  121,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  122,   -1,   -1,   -1,
+       123,   -1,   -1,   -1,   -1,  124,   -1,  125,
+       126,   -1,   -1,   -1,   -1,   -1,   -1,  127,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  128,   -1,  129,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       130,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  131,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  132,  133,   -1,   -1,   -1,   -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,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  135,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  136,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  137,   -1,   -1,
+        -1,   -1,  138,   -1,   -1,  139,  140,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  141,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  142,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  143
+    };
+
+  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",
+    "AXIS",
+    "BACKGROUND",
+    "BGCOLOR",
+    "BGPROPERTIES",
+    "BORDER",
+    "BORDERCOLOR",
+    "CELLPADDING",
+    "CELLSPACING",
+    "CHAR",
+    "CHALLENGE",
+    "CHAROFF",
+    "CHARSET",
+    "CHECKED",
+    "CITE",
+    "CLASS",
+    "CLASSID",
+    "CLEAR",
+    "CODE",
+    "CODEBASE",
+    "CODETYPE",
+    "COLOR",
+    "COLS",
+    "COLSPAN",
+    "COMPACT",
+    "CONTENT",
+    "COORDS",
+    "DATA",
+    "DATETIME",
+    "DECLARE",
+    "DEFER",
+    "DIR",
+    "DISABLED",
+    "ENCTYPE",
+    "FACE",
+    "FOR",
+    "FRAME",
+    "FRAMEBORDER",
+    "HEADERS",
+    "HEIGHT",
+    "HIDDEN",
+    "HREF",
+    "HREFLANG",
+    "HSPACE",
+    "HTML",
+    "HTTP-EQUIV",
+    "ID",
+    "ISMAP",
+    "LABEL",
+    "LANG",
+    "LANGUAGE",
+    "LEFT",
+    "LEFTMARGIN",
+    "LINK",
+    "LONGDESC",
+    "MARGINHEIGHT",
+    "MARGINWIDTH",
+    "MAXLENGTH",
+    "MEDIA",
+    "METHOD",
+    "MULTIPLE",
+    "NAME",
+    "NOHREF",
+    "NORESIZE",
+    "NOSAVE",
+    "NOSHADE",
+    "NOWRAP",
+    "OBJECT",
+    "ONABORT",
+    "ONBLUR",
+    "ONCHANGE",
+    "ONCLICK",
+    "ONDBLCLICK",
+    "ONERROR",
+    "ONFOCUS",
+    "ONKEYDOWN",
+    "ONKEYPRESS",
+    "ONKEYUP",
+    "ONLOAD",
+    "ONMOUSEDOWN",
+    "ONMOUSEMOVE",
+    "ONMOUSEOUT",
+    "ONMOUSEOVER",
+    "ONMOUSEUP",
+    "ONRESET",
+    "ONRESIZE",
+    "ONSELECT",
+    "ONSUBMIT",
+    "ONUNLOAD",
+    "OVERSRC",
+    "PAGEX",
+    "PAGEY",
+    "PLAIN",
+    "PLUGINPAGE",
+    "PLUGINSPAGE",
+    "PLUGINURL",
+    "PROFILE",
+    "PROMPT",
+    "READONLY",
+    "REL",
+    "REV",
+    "ROWS",
+    "ROWSPAN",
+    "RULES",
+    "SCHEME",
+    "SCOPE",
+    "SCROLLING",
+    "SELECTED",
+    "SHAPE",
+    "SIZE",
+    "SPAN",
+    "SRC",
+    "STANDBY",
+    "START",
+    "STYLE",
+    "SUMMARY",
+    "TABINDEX",
+    "TARGET",
+    "TEXT",
+    "TITLE",
+    "TOP",
+    "TOPMARGIN",
+    "TYPE",
+    "UNKNOWN",
+    "USEMAP",
+    "VALIGN",
+    "VALUE",
+    "VALUETYPE",
+    "VERSION",
+    "VISIBILITY",
+    "VLINK",
+    "VSPACE",
+    "WIDTH",
+    "WRAP",
+    "Z-INDEX",
+    0
+};
+DOMString getAttrName(unsigned short id)
+{
+    return attrList[id-1];
+};
diff --git a/WebCore/khtml/misc/htmlattrs.h b/WebCore/khtml/misc/htmlattrs.h
new file mode 100644
index 0000000..fa31dae
--- /dev/null
+++ b/WebCore/khtml/misc/htmlattrs.h
@@ -0,0 +1,158 @@
+/* This file is automatically generated from
+htmlattrs.in by makeattrs, do not edit */
+/* Copyright 1999 Lars Knoll */
+
+#ifndef HTML_ATTRS_H
+#define HTML_ATTRS_H
+
+#include "dom/dom_string.h"
+using namespace DOM;
+
+#define ATTR_ABBR 1
+#define ATTR_ACCEPT_CHARSET 2
+#define ATTR_ACCEPT 3
+#define ATTR_ACCESSKEY 4
+#define ATTR_ACTION 5
+#define ATTR_ALIGN 6
+#define ATTR_ALINK 7
+#define ATTR_ALT 8
+#define ATTR_ARCHIVE 9
+#define ATTR_AUTOCOMPLETE 10
+#define ATTR_AXIS 11
+#define ATTR_BACKGROUND 12
+#define ATTR_BGCOLOR 13
+#define ATTR_BGPROPERTIES 14
+#define ATTR_BORDER 15
+#define ATTR_BORDERCOLOR 16
+#define ATTR_CELLPADDING 17
+#define ATTR_CELLSPACING 18
+#define ATTR_CHAR 19
+#define ATTR_CHALLENGE 20
+#define ATTR_CHAROFF 21
+#define ATTR_CHARSET 22
+#define ATTR_CHECKED 23
+#define ATTR_CITE 24
+#define ATTR_CLASS 25
+#define ATTR_CLASSID 26
+#define ATTR_CLEAR 27
+#define ATTR_CODE 28
+#define ATTR_CODEBASE 29
+#define ATTR_CODETYPE 30
+#define ATTR_COLOR 31
+#define ATTR_COLS 32
+#define ATTR_COLSPAN 33
+#define ATTR_COMPACT 34
+#define ATTR_CONTENT 35
+#define ATTR_COORDS 36
+#define ATTR_DATA 37
+#define ATTR_DATETIME 38
+#define ATTR_DECLARE 39
+#define ATTR_DEFER 40
+#define ATTR_DIR 41
+#define ATTR_DISABLED 42
+#define ATTR_ENCTYPE 43
+#define ATTR_FACE 44
+#define ATTR_FOR 45
+#define ATTR_FRAME 46
+#define ATTR_FRAMEBORDER 47
+#define ATTR_HEADERS 48
+#define ATTR_HEIGHT 49
+#define ATTR_HIDDEN 50
+#define ATTR_HREF 51
+#define ATTR_HREFLANG 52
+#define ATTR_HSPACE 53
+#define ATTR_HTML 54
+#define ATTR_HTTP_EQUIV 55
+#define ATTR_ID 56
+#define ATTR_ISMAP 57
+#define ATTR_LABEL 58
+#define ATTR_LANG 59
+#define ATTR_LANGUAGE 60
+#define ATTR_LEFT 61
+#define ATTR_LEFTMARGIN 62
+#define ATTR_LINK 63
+#define ATTR_LONGDESC 64
+#define ATTR_MARGINHEIGHT 65
+#define ATTR_MARGINWIDTH 66
+#define ATTR_MAXLENGTH 67
+#define ATTR_MEDIA 68
+#define ATTR_METHOD 69
+#define ATTR_MULTIPLE 70
+#define ATTR_NAME 71
+#define ATTR_NOHREF 72
+#define ATTR_NORESIZE 73
+#define ATTR_NOSAVE 74
+#define ATTR_NOSHADE 75
+#define ATTR_NOWRAP 76
+#define ATTR_OBJECT 77
+#define ATTR_ONABORT 78
+#define ATTR_ONBLUR 79
+#define ATTR_ONCHANGE 80
+#define ATTR_ONCLICK 81
+#define ATTR_ONDBLCLICK 82
+#define ATTR_ONERROR 83
+#define ATTR_ONFOCUS 84
+#define ATTR_ONKEYDOWN 85
+#define ATTR_ONKEYPRESS 86
+#define ATTR_ONKEYUP 87
+#define ATTR_ONLOAD 88
+#define ATTR_ONMOUSEDOWN 89
+#define ATTR_ONMOUSEMOVE 90
+#define ATTR_ONMOUSEOUT 91
+#define ATTR_ONMOUSEOVER 92
+#define ATTR_ONMOUSEUP 93
+#define ATTR_ONRESET 94
+#define ATTR_ONRESIZE 95
+#define ATTR_ONSELECT 96
+#define ATTR_ONSUBMIT 97
+#define ATTR_ONUNLOAD 98
+#define ATTR_OVERSRC 99
+#define ATTR_PAGEX 100
+#define ATTR_PAGEY 101
+#define ATTR_PLAIN 102
+#define ATTR_PLUGINPAGE 103
+#define ATTR_PLUGINSPAGE 104
+#define ATTR_PLUGINURL 105
+#define ATTR_PROFILE 106
+#define ATTR_PROMPT 107
+#define ATTR_READONLY 108
+#define ATTR_REL 109
+#define ATTR_REV 110
+#define ATTR_ROWS 111
+#define ATTR_ROWSPAN 112
+#define ATTR_RULES 113
+#define ATTR_SCHEME 114
+#define ATTR_SCOPE 115
+#define ATTR_SCROLLING 116
+#define ATTR_SELECTED 117
+#define ATTR_SHAPE 118
+#define ATTR_SIZE 119
+#define ATTR_SPAN 120
+#define ATTR_SRC 121
+#define ATTR_STANDBY 122
+#define ATTR_START 123
+#define ATTR_STYLE 124
+#define ATTR_SUMMARY 125
+#define ATTR_TABINDEX 126
+#define ATTR_TARGET 127
+#define ATTR_TEXT 128
+#define ATTR_TITLE 129
+#define ATTR_TOP 130
+#define ATTR_TOPMARGIN 131
+#define ATTR_TYPE 132
+#define ATTR_UNKNOWN 133
+#define ATTR_USEMAP 134
+#define ATTR_VALIGN 135
+#define ATTR_VALUE 136
+#define ATTR_VALUETYPE 137
+#define ATTR_VERSION 138
+#define ATTR_VISIBILITY 139
+#define ATTR_VLINK 140
+#define ATTR_VSPACE 141
+#define ATTR_WIDTH 142
+#define ATTR_WRAP 143
+#define ATTR_Z_INDEX 144
+#define ATTR_LAST_ATTR 144
+DOMString getAttrName(unsigned short id);
+
+#endif
diff --git a/WebCore/khtml/misc/htmltags.c b/WebCore/khtml/misc/htmltags.c
new file mode 100644
index 0000000..b9b20d9
--- /dev/null
+++ b/WebCore/khtml/misc/htmltags.c
@@ -0,0 +1,528 @@
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -a -L ANSI-C -D -E -C -l -o -t -k '*' -NfindTag -Hhash_tag -Wwordlist_tag htmltags.gperf  */
+/* This file is automatically generated from htmltags.in by maketags, do not edit */
+/* Copyright 1999 Lars Knoll */
+#include "htmltags.h"
+struct tags {
+    const char *name;
+    int id;
+};
+/* maximum key range = 395, duplicates = 1 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+hash_tag (register const char *str, register unsigned int len)
+{
+  static const unsigned short asso_values[] =
+    {
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396,   0, 396, 396, 396,  30,
+       40,  50,  55,  10,  20, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396,   0, 105, 115,
+       35,   0,  65, 100,  10,  10,   0,  35,  45,  25,
+       20,   0,  20,  25,   5,  30,   0,  60,  10,   5,
+       20,  40, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+      396, 396, 396, 396, 396, 396
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+      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 tags *
+findTag (register const char *str, register unsigned int len)
+{
+  enum
+    {
+      TOTAL_KEYWORDS = 105,
+      MIN_WORD_LENGTH = 1,
+      MAX_WORD_LENGTH = 10,
+      MIN_HASH_VALUE = 1,
+      MAX_HASH_VALUE = 395
+    };
+
+  static const unsigned char lengthtable[] =
+    {
+       1,  2,  2,  4,  1,  2,  2,  3,  1,  2,  1,  2,  3,  4,
+       1,  2,  8,  2,  2,  2,  2,  3,  4,  5,  2,  3,  5,  6,
+       2,  3,  5,  1,  2,  3,  2,  3,  5,  2,  4,  4,  2,  3,
+       4,  6,  4,  6,  5,  4,  5,  1,  2,  4,  6,  2,  3,  4,
+       5,  7,  3,  5,  7,  3,  9,  4,  7,  8,  4,  3,  4,  5,
+       7,  3,  6,  5,  8,  4,  5,  6,  6,  3,  5,  7,  3,  4,
+       5,  6,  6,  7,  8,  6,  3,  5,  6,  6,  8,  7,  8,  3,
+       4,  7,  6,  8,  8, 10, 10
+    };
+  static const struct tags wordlist_tag[] =
+    {
+      {"a", ID_A},
+      {"tt", ID_TT},
+      {"tr", ID_TR},
+      {"area", ID_AREA},
+      {"i", ID_I},
+      {"th", ID_TH},
+      {"hr", ID_HR},
+      {"var", ID_VAR},
+      {"p", ID_P},
+      {"h5", ID_H5},
+      {"q", ID_Q},
+      {"em", ID_EM},
+      {"pre", ID_PRE},
+      {"meta", ID_META},
+      {"s", ID_S},
+      {"h6", ID_H6},
+      {"textarea", ID_TEXTAREA},
+      {"dt", ID_DT},
+      {"td", ID_TD},
+      {"h1", ID_H1},
+      {"ol", ID_OL},
+      {"map", ID_MAP},
+      {"head", ID_HEAD},
+      {"thead", ID_THEAD},
+      {"h2", ID_H2},
+      {"dir", ID_DIR},
+      {"param", ID_PARAM},
+      {"option", ID_OPTION},
+      {"li", ID_LI},
+      {"div", ID_DIV},
+      {"title", ID_TITLE},
+      {"u", ID_U},
+      {"h3", ID_H3},
+      {"ins", ID_INS},
+      {"h4", ID_H4},
+      {"xmp", ID_XMP},
+      {"tfoot", ID_TFOOT},
+      {"dd", ID_DD},
+      {"span", ID_SPAN},
+      {"samp", ID_SAMP},
+      {"dl", ID_DL},
+      {"del", ID_DEL},
+      {"html", ID_HTML},
+      {"strike", ID_STRIKE},
+      {"font", ID_FONT},
+      {"applet", ID_APPLET},
+      {"layer", ID_LAYER},
+      {"form", ID_FORM},
+      {"frame", ID_FRAME},
+      {"b", ID_B},
+      {"ul", ID_UL},
+      {"menu", ID_MENU},
+      {"iframe", ID_IFRAME},
+      {"br", ID_BR},
+      {"sup", ID_SUP},
+      {"link", ID_LINK},
+      {"input", ID_INPUT},
+      {"nolayer", ID_NOLAYER},
+      {"wbr", ID_WBR},
+      {"style", ID_STYLE},
+      {"marquee", ID_MARQUEE},
+      {"dfn", ID_DFN},
+      {"plaintext", ID_PLAINTEXT},
+      {"cite", ID_CITE},
+      {"isindex", ID_ISINDEX},
+      {"frameset", ID_FRAMESET},
+      {"nobr", ID_NOBR},
+      {"img", ID_IMG},
+      {"base", ID_BASE},
+      {"image", ID_IMG},
+      {"address", ID_ADDRESS},
+      {"bdo", ID_BDO},
+      {"center", ID_CENTER},
+      {"small", ID_SMALL},
+      {"noframes", ID_NOFRAMES},
+      {"code", ID_CODE},
+      {"table", ID_TABLE},
+      {"anchor", ID_A},
+      {"strong", ID_STRONG},
+      {"col", ID_COL},
+      {"embed", ID_EMBED},
+      {"caption", ID_CAPTION},
+      {"kbd", ID_KBD},
+      {"body", ID_BODY},
+      {"tbody", ID_TBODY},
+      {"script", ID_SCRIPT},
+      {"button", ID_BUTTON},
+      {"noembed", ID_NOEMBED},
+      {"fieldset", ID_FIELDSET},
+      {"select", ID_SELECT},
+      {"sub", ID_SUB},
+      {"label", ID_LABEL},
+      {"keygen", ID_KEYGEN},
+      {"legend", ID_LEGEND},
+      {"noscript", ID_NOSCRIPT},
+      {"acronym", ID_ACRONYM},
+      {"optgroup", ID_OPTGROUP},
+      {"big", ID_BIG},
+      {"abbr", ID_ABBR},
+      {"listing", ID_PRE},
+      {"object", ID_OBJECT},
+      {"basefont", ID_BASEFONT},
+      {"colgroup", ID_COLGROUP},
+      {"-konqblock", ID__KONQBLOCK},
+      {"blockquote", ID_BLOCKQUOTE}
+    };
+
+  static const short lookup[] =
+    {
+        -1,    0,    1,   -1,   -1,   -1,   -1,    2,
+        -1,    3,   -1,    4,    5,   -1,   -1,   -1,
+        -1,    6,    7,   -1,   -1,    8,    9,   -1,
+        -1,   -1,   10,   11,   12,   13,   -1,   14,
+        15,   16,   -1,   -1,   -1, -144,  -88,   -2,
+        -1,   -1,   19,   -1,   -1,   -1,   -1,   20,
+        21,   22,   23,   -1,   24,   25,   -1,   26,
+        27,   28,   29,   -1,   30,   31,   32,   33,
+        -1,   -1,   -1,   34,   35,   -1,   36,   -1,
+        37,   -1,   38,   -1,   -1,   -1,   -1,   39,
+        -1,   -1,   40,   41,   42,   -1,   43,   -1,
+        -1,   44,   -1,   45,   -1,   -1,   -1,   46,
+        -1,   -1,   -1,   47,   48,   -1,   -1,   -1,
+        -1,   -1,   49,   50,   -1,   51,   -1,   52,
+        53,   54,   55,   56,   -1,   57,   58,   -1,
+        59,   -1,   60,   61,   62,   -1,   -1,   -1,
+        -1,   63,   -1,   -1,   64,   65,   66,   -1,
+        -1,   -1,   67,   68,   69,   -1,   70,   71,
+        -1,   -1,   72,   -1,   -1,   -1,   73,   -1,
+        -1,   74,   75,   76,   77,   -1,   -1,   -1,
+        -1,   78,   -1,   79,   -1,   -1,   -1,   -1,
+        -1,   -1,   80,   -1,   81,   -1,   -1,   -1,
+        -1,   -1,   82,   -1,   -1,   -1,   -1,   -1,
+        83,   84,   85,   -1,   -1,   -1,   -1,   86,
+        87,   88,   -1,   -1,   89,   -1,   90,   -1,
+        91,   92,   -1,   -1,   -1,   -1,   93,   -1,
+        94,   -1,   -1,   -1,   95,   96,   -1,   -1,
+        -1,   -1,   97,   98,   -1,   -1,   99,   -1,
+        -1,   -1,  100,   -1,  101,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  102,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  103,   -1,
+        -1,   -1,   -1,  104
+    };
+
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = hash_tag (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int index = lookup[key];
+
+          if (index >= 0)
+            {
+              if (len == lengthtable[index])
+                {
+                  register const char *s = wordlist_tag[index].name;
+
+                  if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
+                    return &wordlist_tag[index];
+                }
+            }
+          else if (index < -TOTAL_KEYWORDS)
+            {
+              register int offset = - 1 - TOTAL_KEYWORDS - index;
+              register const unsigned char *lengthptr = &lengthtable[TOTAL_KEYWORDS + lookup[offset]];
+              register const struct tags *wordptr = &wordlist_tag[TOTAL_KEYWORDS + lookup[offset]];
+              register const struct tags *wordendptr = wordptr + -lookup[offset + 1];
+
+              while (wordptr < wordendptr)
+                {
+                  if (len == *lengthptr)
+                    {
+                      register const char *s = wordptr->name;
+
+                      if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
+                        return wordptr;
+                    }
+                  lengthptr++;
+                  wordptr++;
+                }
+            }
+        }
+    }
+  return 0;
+}
+
+
+static const char * const tagList[] = {
+"",
+    "A",
+    "ABBR",
+    "ACRONYM",
+    "ADDRESS",
+    "APPLET",
+    "AREA",
+    "B",
+    "BASE",
+    "BASEFONT",
+    "BDO",
+    "BIG",
+    "BLOCKQUOTE",
+    "BODY",
+    "BR",
+    "BUTTON",
+    "CAPTION",
+    "CENTER",
+    "CITE",
+    "CODE",
+    "COL",
+    "COLGROUP",
+    "DD",
+    "DEL",
+    "DFN",
+    "DIR",
+    "DIV",
+    "DL",
+    "DT",
+    "EM",
+    "EMBED",
+    "FIELDSET",
+    "FONT",
+    "FORM",
+    "FRAME",
+    "FRAMESET",
+    "H1",
+    "H2",
+    "H3",
+    "H4",
+    "H5",
+    "H6",
+    "HEAD",
+    "HR",
+    "HTML",
+    "I",
+    "IFRAME",
+    "IMG",
+    "INPUT",
+    "INS",
+    "ISINDEX",
+    "KBD",
+    "KEYGEN",
+    "-KONQBLOCK",
+    "LABEL",
+    "LAYER",
+    "LEGEND",
+    "LI",
+    "LINK",
+    "MAP",
+    "MARQUEE",
+    "MENU",
+    "META",
+    "NOBR",
+    "NOEMBED",
+    "NOFRAMES",
+    "NOSCRIPT",
+    "NOLAYER",
+    "OBJECT",
+    "OL",
+    "OPTGROUP",
+    "OPTION",
+    "P",
+    "PARAM",
+    "PLAINTEXT",
+    "PRE",
+    "Q",
+    "S",
+    "SAMP",
+    "SCRIPT",
+    "SELECT",
+    "SMALL",
+    "SPAN",
+    "STRIKE",
+    "STRONG",
+    "STYLE",
+    "SUB",
+    "SUP",
+    "TABLE",
+    "TBODY",
+    "TD",
+    "TEXTAREA",
+    "TFOOT",
+    "TH",
+    "THEAD",
+    "TITLE",
+    "TR",
+    "TT",
+    "U",
+    "UL",
+    "VAR",
+    "WBR",
+    "XMP",
+"TEXT",
+"COMMENT",
+    "/A",
+    "/ABBR",
+    "/ACRONYM",
+    "/ADDRESS",
+    "/APPLET",
+    "/AREA",
+    "/B",
+    "/BASE",
+    "/BASEFONT",
+    "/BDO",
+    "/BIG",
+    "/BLOCKQUOTE",
+    "/BODY",
+    "/BR",
+    "/BUTTON",
+    "/CAPTION",
+    "/CENTER",
+    "/CITE",
+    "/CODE",
+    "/COL",
+    "/COLGROUP",
+    "/DD",
+    "/DEL",
+    "/DFN",
+    "/DIR",
+    "/DIV",
+    "/DL",
+    "/DT",
+    "/EM",
+    "/EMBED",
+    "/FIELDSET",
+    "/FONT",
+    "/FORM",
+    "/FRAME",
+    "/FRAMESET",
+    "/H1",
+    "/H2",
+    "/H3",
+    "/H4",
+    "/H5",
+    "/H6",
+    "/HEAD",
+    "/HR",
+    "/HTML",
+    "/I",
+    "/IFRAME",
+    "/IMG",
+    "/INPUT",
+    "/INS",
+    "/ISINDEX",
+    "/KBD",
+    "/KEYGEN",
+    "/-KONQBLOCK",
+    "/LABEL",
+    "/LAYER",
+    "/LEGEND",
+    "/LI",
+    "/LINK",
+    "/MAP",
+    "/MARQUEE",
+    "/MENU",
+    "/META",
+    "/NOBR",
+    "/NOEMBED",
+    "/NOFRAMES",
+    "/NOSCRIPT",
+    "/NOLAYER",
+    "/OBJECT",
+    "/OL",
+    "/OPTGROUP",
+    "/OPTION",
+    "/P",
+    "/PARAM",
+    "/PLAINTEXT",
+    "/PRE",
+    "/Q",
+    "/S",
+    "/SAMP",
+    "/SCRIPT",
+    "/SELECT",
+    "/SMALL",
+    "/SPAN",
+    "/STRIKE",
+    "/STRONG",
+    "/STYLE",
+    "/SUB",
+    "/SUP",
+    "/TABLE",
+    "/TBODY",
+    "/TD",
+    "/TEXTAREA",
+    "/TFOOT",
+    "/TH",
+    "/THEAD",
+    "/TITLE",
+    "/TR",
+    "/TT",
+    "/U",
+    "/UL",
+    "/VAR",
+    "/WBR",
+    "/XMP",
+    0
+};
+DOMString getTagName(unsigned short id)
+{
+    if(id > ID_CLOSE_TAG*2) id = ID_CLOSE_TAG+1;
+    return DOMString(tagList[id]);
+};
diff --git a/WebCore/khtml/misc/htmltags.h b/WebCore/khtml/misc/htmltags.h
new file mode 100644
index 0000000..750832b
--- /dev/null
+++ b/WebCore/khtml/misc/htmltags.h
@@ -0,0 +1,118 @@
+/* This file is automatically generated from
+htmltags.in by maketags, do not edit */
+/* Copyright 1999 Lars Knoll */
+
+#ifndef KHTML_TAGS_H
+#define KHTML_TAGS_H
+
+#include "dom/dom_string.h"
+
+DOM::DOMString getTagName(unsigned short id);
+#define ID_A 1
+#define ID_ABBR 2
+#define ID_ACRONYM 3
+#define ID_ADDRESS 4
+#define ID_APPLET 5
+#define ID_AREA 6
+#define ID_B 7
+#define ID_BASE 8
+#define ID_BASEFONT 9
+#define ID_BDO 10
+#define ID_BIG 11
+#define ID_BLOCKQUOTE 12
+#define ID_BODY 13
+#define ID_BR 14
+#define ID_BUTTON 15
+#define ID_CAPTION 16
+#define ID_CENTER 17
+#define ID_CITE 18
+#define ID_CODE 19
+#define ID_COL 20
+#define ID_COLGROUP 21
+#define ID_DD 22
+#define ID_DEL 23
+#define ID_DFN 24
+#define ID_DIR 25
+#define ID_DIV 26
+#define ID_DL 27
+#define ID_DT 28
+#define ID_EM 29
+#define ID_EMBED 30
+#define ID_FIELDSET 31
+#define ID_FONT 32
+#define ID_FORM 33
+#define ID_FRAME 34
+#define ID_FRAMESET 35
+#define ID_H1 36
+#define ID_H2 37
+#define ID_H3 38
+#define ID_H4 39
+#define ID_H5 40
+#define ID_H6 41
+#define ID_HEAD 42
+#define ID_HR 43
+#define ID_HTML 44
+#define ID_I 45
+#define ID_IFRAME 46
+#define ID_IMG 47
+#define ID_INPUT 48
+#define ID_INS 49
+#define ID_ISINDEX 50
+#define ID_KBD 51
+#define ID_KEYGEN 52
+#define ID__KONQBLOCK 53
+#define ID_LABEL 54
+#define ID_LAYER 55
+#define ID_LEGEND 56
+#define ID_LI 57
+#define ID_LINK 58
+#define ID_MAP 59
+#define ID_MARQUEE 60
+#define ID_MENU 61
+#define ID_META 62
+#define ID_NOBR 63
+#define ID_NOEMBED 64
+#define ID_NOFRAMES 65
+#define ID_NOSCRIPT 66
+#define ID_NOLAYER 67
+#define ID_OBJECT 68
+#define ID_OL 69
+#define ID_OPTGROUP 70
+#define ID_OPTION 71
+#define ID_P 72
+#define ID_PARAM 73
+#define ID_PLAINTEXT 74
+#define ID_PRE 75
+#define ID_Q 76
+#define ID_S 77
+#define ID_SAMP 78
+#define ID_SCRIPT 79
+#define ID_SELECT 80
+#define ID_SMALL 81
+#define ID_SPAN 82
+#define ID_STRIKE 83
+#define ID_STRONG 84
+#define ID_STYLE 85
+#define ID_SUB 86
+#define ID_SUP 87
+#define ID_TABLE 88
+#define ID_TBODY 89
+#define ID_TD 90
+#define ID_TEXTAREA 91
+#define ID_TFOOT 92
+#define ID_TH 93
+#define ID_THEAD 94
+#define ID_TITLE 95
+#define ID_TR 96
+#define ID_TT 97
+#define ID_U 98
+#define ID_UL 99
+#define ID_VAR 100
+#define ID_WBR 101
+#define ID_XMP 102
+#define ID_TEXT 103
+#define ID_COMMENT 104
+#define ID_CLOSE_TAG 104
+#define ID_LAST_TAG 104
+
+#endif
diff --git a/WebCore/kwq/.cvsignore b/WebCore/kwq/.cvsignore
index 5297efc..e440faf 100644
--- a/WebCore/kwq/.cvsignore
+++ b/WebCore/kwq/.cvsignore
@@ -1,4 +1,3 @@
 Makefile.in
 Makefile
-KWQCharsetData.c
 .deps
diff --git a/WebCore/kwq/KWQCharsetData.c b/WebCore/kwq/KWQCharsetData.c
new file mode 100644
index 0000000..4a44954
--- /dev/null
+++ b/WebCore/kwq/KWQCharsetData.c
@@ -0,0 +1,312 @@
+static const CharsetEntry table[] = {
+    { "csmacintosh", 2027, kCFStringEncodingMacRoman },
+    { "mac", 2027, kCFStringEncodingMacRoman },
+    { "macintosh", 2027, kCFStringEncodingMacRoman },
+    { "x-mac-roman", 2027, kCFStringEncodingMacRoman },
+    { "windows-1252", 2252, kCFStringEncodingWindowsLatin1 },
+    { "winlatin1", 2252, kCFStringEncodingWindowsLatin1 },
+    { "x-ansi", 2252, kCFStringEncodingWindowsLatin1 },
+    { "cp819", 4, kCFStringEncodingISOLatin1 },
+    { "csisolatin1", 4, kCFStringEncodingISOLatin1 },
+    { "ibm819", 4, kCFStringEncodingISOLatin1 },
+    { "iso-8859-1", 4, kCFStringEncodingISOLatin1 },
+    { "iso-ir-100", 4, kCFStringEncodingISOLatin1 },
+    { "iso8859-1", 4, kCFStringEncodingISOLatin1 },
+    { "iso_8859-1", 4, kCFStringEncodingISOLatin1 },
+    { "iso_8859-1:1987", 4, kCFStringEncodingISOLatin1 },
+    { "l1", 4, kCFStringEncodingISOLatin1 },
+    { "latin1", 4, kCFStringEncodingISOLatin1 },
+    { "x-nextstep", -1, kCFStringEncodingNextStepLatin },
+    { "ansi_x3.4-1968", 3, kCFStringEncodingASCII },
+    { "ansi_x3.4-1986", 3, kCFStringEncodingASCII },
+    { "ascii", 3, kCFStringEncodingASCII },
+    { "cp367", 3, kCFStringEncodingASCII },
+    { "csascii", 3, kCFStringEncodingASCII },
+    { "ibm367", 3, kCFStringEncodingASCII },
+    { "iso-ir-6", 3, kCFStringEncodingASCII },
+    { "iso-ir-6us", 3, kCFStringEncodingASCII },
+    { "iso646-us", 3, kCFStringEncodingASCII },
+    { "iso_646.irv:1991", 3, kCFStringEncodingASCII },
+    { "us", 3, kCFStringEncodingASCII },
+    { "us-ascii", 3, kCFStringEncodingASCII },
+    { "csunicode", 1000, kCFStringEncodingUnicode },
+    { "iso-10646-ucs-2", 1000, kCFStringEncodingUnicode },
+    { "unicode-1-1-utf-8", 106, kCFStringEncodingUTF8 },
+    { "unicode-2-0-utf-8", 106, kCFStringEncodingUTF8 },
+    { "utf-16", 106, kCFStringEncodingUTF8 },
+    { "utf-8", 106, kCFStringEncodingUTF8 },
+    { "x-unicode-2-0-utf-8", 106, kCFStringEncodingUTF8 },
+    { "x-mac-japanese", -1, kCFStringEncodingMacJapanese },
+    { "x-mac-chinesetrad", -1, kCFStringEncodingMacChineseTrad },
+    { "x-mac-trad-chinese", -1, kCFStringEncodingMacChineseTrad },
+    { "csksc56011987", 36, kCFStringEncodingMacKorean },
+    { "iso-ir-149", 36, kCFStringEncodingMacKorean },
+    { "korean", 36, kCFStringEncodingMacKorean },
+    { "ks_c_5601", 36, kCFStringEncodingMacKorean },
+    { "ks_c_5601-1987", 36, kCFStringEncodingMacKorean },
+    { "ks_c_5601-1989", 36, kCFStringEncodingMacKorean },
+    { "ks_c_5601_1987", 36, kCFStringEncodingMacKorean },
+    { "ksc5601", 36, kCFStringEncodingMacKorean },
+    { "ksc_5601", 36, kCFStringEncodingMacKorean },
+    { "x-mac-korean", 36, kCFStringEncodingMacKorean },
+    { "x-mac-arabic", -1, kCFStringEncodingMacArabic },
+    { "x-mac-hebrew", -1, kCFStringEncodingMacHebrew },
+    { "x-mac-greek", -1, kCFStringEncodingMacGreek },
+    { "x-mac-cyrillic", -1, kCFStringEncodingMacCyrillic },
+    { "x-mac-devanagari", -1, kCFStringEncodingMacDevanagari },
+    { "x-mac-gurmukhi", -1, kCFStringEncodingMacGurmukhi },
+    { "x-mac-gujarati", -1, kCFStringEncodingMacGujarati },
+    { "x-mac-thai", -1, kCFStringEncodingMacThai },
+    { "x-mac-chinesesimp", -1, kCFStringEncodingMacChineseSimp },
+    { "x-mac-simp-chinese", -1, kCFStringEncodingMacChineseSimp },
+    { "x-mac-tibetan", -1, kCFStringEncodingMacTibetan },
+    { "x-mac-ce", -1, kCFStringEncodingMacCentralEurRoman },
+    { "x-mac-centraleurroman", -1, kCFStringEncodingMacCentralEurRoman },
+    { "x-mac-symbol", -1, kCFStringEncodingMacSymbol },
+    { "x-mac-dingbats", -1, kCFStringEncodingMacDingbats },
+    { "x-mac-turkish", -1, kCFStringEncodingMacTurkish },
+    { "x-mac-croatian", -1, kCFStringEncodingMacCroatian },
+    { "x-mac-icelandic", -1, kCFStringEncodingMacIcelandic },
+    { "x-mac-romanian", -1, kCFStringEncodingMacRomanian },
+    { "x-mac-farsi", -1, kCFStringEncodingMacFarsi },
+    { "x-mac-ukrainian", -1, kCFStringEncodingMacUkrainian },
+    { "x-mac-vt100", -1, kCFStringEncodingMacVT100 },
+    { "csisolatin2", 5, kCFStringEncodingISOLatin2 },
+    { "iso-8859-2", 5, kCFStringEncodingISOLatin2 },
+    { "iso-ir-101", 5, kCFStringEncodingISOLatin2 },
+    { "iso8859-2", 5, kCFStringEncodingISOLatin2 },
+    { "iso_8859-2", 5, kCFStringEncodingISOLatin2 },
+    { "iso_8859-2:1987", 5, kCFStringEncodingISOLatin2 },
+    { "l2", 5, kCFStringEncodingISOLatin2 },
+    { "latin2", 5, kCFStringEncodingISOLatin2 },
+    { "csisolatin3", 6, kCFStringEncodingISOLatin3 },
+    { "iso-8859-3", 6, kCFStringEncodingISOLatin3 },
+    { "iso-ir-109", 6, kCFStringEncodingISOLatin3 },
+    { "iso_8859-3", 6, kCFStringEncodingISOLatin3 },
+    { "iso_8859-3:1988", 6, kCFStringEncodingISOLatin3 },
+    { "l3", 6, kCFStringEncodingISOLatin3 },
+    { "latin3", 6, kCFStringEncodingISOLatin3 },
+    { "csisolatin4", 7, kCFStringEncodingISOLatin4 },
+    { "iso-8859-4", 7, kCFStringEncodingISOLatin4 },
+    { "iso-ir-110", 7, kCFStringEncodingISOLatin4 },
+    { "iso_8859-4", 7, kCFStringEncodingISOLatin4 },
+    { "iso_8859-4:1988", 7, kCFStringEncodingISOLatin4 },
+    { "l4", 7, kCFStringEncodingISOLatin4 },
+    { "latin4", 7, kCFStringEncodingISOLatin4 },
+    { "csisolatincyrillic", 8, kCFStringEncodingISOLatinCyrillic },
+    { "cyrillic", 8, kCFStringEncodingISOLatinCyrillic },
+    { "iso-8859-5", 8, kCFStringEncodingISOLatinCyrillic },
+    { "iso-ir-144", 8, kCFStringEncodingISOLatinCyrillic },
+    { "iso_8859-5", 8, kCFStringEncodingISOLatinCyrillic },
+    { "iso_8859-5:1988", 8, kCFStringEncodingISOLatinCyrillic },
+    { "arabic", 9, kCFStringEncodingISOLatinArabic },
+    { "asmo-708", 9, kCFStringEncodingISOLatinArabic },
+    { "csisolatinarabic", 9, kCFStringEncodingISOLatinArabic },
+    { "ecma-114", 9, kCFStringEncodingISOLatinArabic },
+    { "iso-8859-6", 9, kCFStringEncodingISOLatinArabic },
+    { "iso-ir-127", 9, kCFStringEncodingISOLatinArabic },
+    { "iso_8859-6", 9, kCFStringEncodingISOLatinArabic },
+    { "iso_8859-6:1987", 9, kCFStringEncodingISOLatinArabic },
+    { "csisolatingreek", 10, kCFStringEncodingISOLatinGreek },
+    { "ecma-118", 10, kCFStringEncodingISOLatinGreek },
+    { "elot_928", 10, kCFStringEncodingISOLatinGreek },
+    { "greek", 10, kCFStringEncodingISOLatinGreek },
+    { "greek8", 10, kCFStringEncodingISOLatinGreek },
+    { "iso-8859-7", 10, kCFStringEncodingISOLatinGreek },
+    { "iso-ir-126", 10, kCFStringEncodingISOLatinGreek },
+    { "iso_8859-7", 10, kCFStringEncodingISOLatinGreek },
+    { "iso_8859-7:1987", 10, kCFStringEncodingISOLatinGreek },
+    { "csiso88598e", 11, kCFStringEncodingISOLatinHebrew },
+    { "csiso88598i", 11, kCFStringEncodingISOLatinHebrew },
+    { "csisolatinhebrew", 11, kCFStringEncodingISOLatinHebrew },
+    { "dos-862", 11, kCFStringEncodingISOLatinHebrew },
+    { "hebrew", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso-8859-8", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso-8859-8-e", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso-8859-8-i", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso-ir-138", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso_8859-8", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso_8859-8-e", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso_8859-8-i", 11, kCFStringEncodingISOLatinHebrew },
+    { "iso_8859-8:1988", 11, kCFStringEncodingISOLatinHebrew },
+    { "logical", 11, kCFStringEncodingISOLatinHebrew },
+    { "visual", 11, kCFStringEncodingISOLatinHebrew },
+    { "csisolatin5", 12, kCFStringEncodingISOLatin5 },
+    { "iso-8859-9", 12, kCFStringEncodingISOLatin5 },
+    { "iso-ir-148", 12, kCFStringEncodingISOLatin5 },
+    { "iso_8859-9", 12, kCFStringEncodingISOLatin5 },
+    { "iso_8859-9:1989", 12, kCFStringEncodingISOLatin5 },
+    { "l5", 12, kCFStringEncodingISOLatin5 },
+    { "latin5", 12, kCFStringEncodingISOLatin5 },
+    { "csisolatin6", 13, kCFStringEncodingISOLatin6 },
+    { "iso-8859-10", 13, kCFStringEncodingISOLatin6 },
+    { "iso-ir-157", 13, kCFStringEncodingISOLatin6 },
+    { "iso_8859-10:1992", 13, kCFStringEncodingISOLatin6 },
+    { "l6", 13, kCFStringEncodingISOLatin6 },
+    { "latin6", 13, kCFStringEncodingISOLatin6 },
+    { "iso-8859-11", -1, kCFStringEncodingISOLatinThai },
+    { "iso-8859-13", 109, kCFStringEncodingISOLatin7 },
+    { "iso-8859-14", 110, kCFStringEncodingISOLatin8 },
+    { "iso-celtic", 110, kCFStringEncodingISOLatin8 },
+    { "iso-ir-199", 110, kCFStringEncodingISOLatin8 },
+    { "iso_8859-14", 110, kCFStringEncodingISOLatin8 },
+    { "iso_8859-14:1998", 110, kCFStringEncodingISOLatin8 },
+    { "l8", 110, kCFStringEncodingISOLatin8 },
+    { "latin8", 110, kCFStringEncodingISOLatin8 },
+    { "csisolatin9", 111, kCFStringEncodingISOLatin9 },
+    { "iso-8859-15", 111, kCFStringEncodingISOLatin9 },
+    { "iso_8859-15", 111, kCFStringEncodingISOLatin9 },
+    { "l9", 111, kCFStringEncodingISOLatin9 },
+    { "latin9", 111, kCFStringEncodingISOLatin9 },
+    { "437", 2011, kCFStringEncodingDOSLatinUS },
+    { "cp437", 2011, kCFStringEncodingDOSLatinUS },
+    { "cspc8codepage437", 2011, kCFStringEncodingDOSLatinUS },
+    { "ibm437", 2011, kCFStringEncodingDOSLatinUS },
+    { "cp737", -1, kCFStringEncodingDOSGreek },
+    { "ibm737", -1, kCFStringEncodingDOSGreek },
+    { "cp500", 2087, kCFStringEncodingDOSBalticRim },
+    { "cp775", 2087, kCFStringEncodingDOSBalticRim },
+    { "csibm500", 2087, kCFStringEncodingDOSBalticRim },
+    { "cspc775baltic", 2087, kCFStringEncodingDOSBalticRim },
+    { "ebcdic-cp-be", 2087, kCFStringEncodingDOSBalticRim },
+    { "ebcdic-cp-ch", 2087, kCFStringEncodingDOSBalticRim },
+    { "ibm500", 2087, kCFStringEncodingDOSBalticRim },
+    { "ibm775", 2087, kCFStringEncodingDOSBalticRim },
+    { "850", 2009, kCFStringEncodingDOSLatin1 },
+    { "cp850", 2009, kCFStringEncodingDOSLatin1 },
+    { "cspc850multilingual", 2009, kCFStringEncodingDOSLatin1 },
+    { "ibm850", 2009, kCFStringEncodingDOSLatin1 },
+    { "852", 2010, kCFStringEncodingDOSLatin2 },
+    { "cp852", 2010, kCFStringEncodingDOSLatin2 },
+    { "cspcp852", 2010, kCFStringEncodingDOSLatin2 },
+    { "ibm852", 2010, kCFStringEncodingDOSLatin2 },
+    { "857", 2047, kCFStringEncodingDOSTurkish },
+    { "cp857", 2047, kCFStringEncodingDOSTurkish },
+    { "csibm857", 2047, kCFStringEncodingDOSTurkish },
+    { "ibm857", 2047, kCFStringEncodingDOSTurkish },
+    { "861", 2049, kCFStringEncodingDOSIcelandic },
+    { "cp-is", 2049, kCFStringEncodingDOSIcelandic },
+    { "cp861", 2049, kCFStringEncodingDOSIcelandic },
+    { "csibm861", 2049, kCFStringEncodingDOSIcelandic },
+    { "ibm861", 2049, kCFStringEncodingDOSIcelandic },
+    { "cp864", 2051, kCFStringEncodingDOSArabic },
+    { "csibm864", 2051, kCFStringEncodingDOSArabic },
+    { "dos-720", 2051, kCFStringEncodingDOSArabic },
+    { "ibm864", 2051, kCFStringEncodingDOSArabic },
+    { "866", 2086, kCFStringEncodingDOSRussian },
+    { "cp866", 2086, kCFStringEncodingDOSRussian },
+    { "csibm866", 2086, kCFStringEncodingDOSRussian },
+    { "ibm866", 2086, kCFStringEncodingDOSRussian },
+    { "869", 2054, kCFStringEncodingDOSGreek2 },
+    { "cp-gr", 2054, kCFStringEncodingDOSGreek2 },
+    { "cp869", 2054, kCFStringEncodingDOSGreek2 },
+    { "csibm869", 2054, kCFStringEncodingDOSGreek2 },
+    { "ibm869", 2054, kCFStringEncodingDOSGreek2 },
+    { "cp874", 2259, kCFStringEncodingDOSThai },
+    { "dos-874", 2259, kCFStringEncodingDOSThai },
+    { "tis-620", 2259, kCFStringEncodingDOSThai },
+    { "windows-874", 2259, kCFStringEncodingDOSThai },
+    { "cp932", 2024, kCFStringEncodingDOSJapanese },
+    { "csshiftjis", 2024, kCFStringEncodingDOSJapanese },
+    { "cswindows31j", 2024, kCFStringEncodingDOSJapanese },
+    { "ms_kanji", 2024, kCFStringEncodingDOSJapanese },
+    { "shift-jis", 2024, kCFStringEncodingDOSJapanese },
+    { "shift_jis", 2024, kCFStringEncodingDOSJapanese },
+    { "windows-31j", 2024, kCFStringEncodingDOSJapanese },
+    { "x-ms-cp932", 2024, kCFStringEncodingDOSJapanese },
+    { "x-sjis", 2024, kCFStringEncodingDOSJapanese },
+    { "cp949", -1, kCFStringEncodingDOSKorean },
+    { "cp950", -1, kCFStringEncodingDOSChineseTrad },
+    { "windows-1250", 2250, kCFStringEncodingWindowsLatin2 },
+    { "winlatin2", 2250, kCFStringEncodingWindowsLatin2 },
+    { "x-cp1250", 2250, kCFStringEncodingWindowsLatin2 },
+    { "wincyrillic", 2251, kCFStringEncodingWindowsCyrillic },
+    { "windows-1251", 2251, kCFStringEncodingWindowsCyrillic },
+    { "x-cp1251", 2251, kCFStringEncodingWindowsCyrillic },
+    { "windows-1253", 2253, kCFStringEncodingWindowsGreek },
+    { "wingreek", 2253, kCFStringEncodingWindowsGreek },
+    { "windows-1254", 2254, kCFStringEncodingWindowsLatin5 },
+    { "winturkish", 2254, kCFStringEncodingWindowsLatin5 },
+    { "windows-1255", 2255, kCFStringEncodingWindowsHebrew },
+    { "winhebrew", 2255, kCFStringEncodingWindowsHebrew },
+    { "cp1256", 2256, kCFStringEncodingWindowsArabic },
+    { "winarabic", 2256, kCFStringEncodingWindowsArabic },
+    { "windows-1256", 2256, kCFStringEncodingWindowsArabic },
+    { "winbaltic", 2257, kCFStringEncodingWindowsBalticRim },
+    { "windows-1257", 2257, kCFStringEncodingWindowsBalticRim },
+    { "johab", -1, kCFStringEncodingWindowsKoreanJohab },
+    { "windows-1258", 2258, kCFStringEncodingWindowsVietnamese },
+    { "winvietnamese", 2258, kCFStringEncodingWindowsVietnamese },
+    { "cshalfwidthkatakana", 15, kCFStringEncodingJIS_X0201_76 },
+    { "jis_x0201", 15, kCFStringEncodingJIS_X0201_76 },
+    { "x0201", 15, kCFStringEncodingJIS_X0201_76 },
+    { "csiso87jisx0208", 63, kCFStringEncodingJIS_X0208_83 },
+    { "iso-ir-87", 63, kCFStringEncodingJIS_X0208_83 },
+    { "jis_c6226-1983", 63, kCFStringEncodingJIS_X0208_83 },
+    { "jis_x0208-1983", 63, kCFStringEncodingJIS_X0208_83 },
+    { "x0208", 63, kCFStringEncodingJIS_X0208_83 },
+    { "jis_x0208-1990", -1, kCFStringEncodingJIS_X0208_90 },
+    { "csiso159jisx02121990", 98, kCFStringEncodingJIS_X0212_90 },
+    { "iso-ir-159", 98, kCFStringEncodingJIS_X0212_90 },
+    { "jis_x0212-1990", 98, kCFStringEncodingJIS_X0212_90 },
+    { "x0212", 98, kCFStringEncodingJIS_X0212_90 },
+    { "csiso42jisc62261978", 49, kCFStringEncodingJIS_C6226_78 },
+    { "iso-ir-42", 49, kCFStringEncodingJIS_C6226_78 },
+    { "jis_c6226-1978", 49, kCFStringEncodingJIS_C6226_78 },
+    { "chinese", 57, kCFStringEncodingGB_2312_80 },
+    { "csgb231280", 57, kCFStringEncodingGB_2312_80 },
+    { "csiso58gb231280", 57, kCFStringEncodingGB_2312_80 },
+    { "gb2312-80", 57, kCFStringEncodingGB_2312_80 },
+    { "gb231280", 57, kCFStringEncodingGB_2312_80 },
+    { "gb_2312-80", 57, kCFStringEncodingGB_2312_80 },
+    { "iso-ir-58", 57, kCFStringEncodingGB_2312_80 },
+    { "x-gbk", -1, kCFStringEncodingGBK_95 },
+    { "gb18030", 114, kCFStringEncodingGB_18030_2000 },
+    { "csiso2022jp", 39, kCFStringEncodingISO_2022_JP },
+    { "iso-2022-jp", 39, kCFStringEncodingISO_2022_JP },
+    { "csiso2022jp2", 40, kCFStringEncodingISO_2022_JP_2 },
+    { "iso-2022-jp-2", 40, kCFStringEncodingISO_2022_JP_2 },
+    { "iso-2022-jp-1", -1, kCFStringEncodingISO_2022_JP_1 },
+    { "iso-2022-jp-3", -1, kCFStringEncodingISO_2022_JP_3 },
+    { "iso-2022-cn", 104, kCFStringEncodingISO_2022_CN },
+    { "iso-2022-cn-ext", 105, kCFStringEncodingISO_2022_CN_EXT },
+    { "csiso2022kr", 37, kCFStringEncodingISO_2022_KR },
+    { "iso-2022-kr", 37, kCFStringEncodingISO_2022_KR },
+    { "cseucpkdfmtjapanese", 18, kCFStringEncodingEUC_JP },
+    { "euc-jp", 18, kCFStringEncodingEUC_JP },
+    { "extended_unix_code_packed_format_for_japanese", 18, kCFStringEncodingEUC_JP },
+    { "x-euc", 18, kCFStringEncodingEUC_JP },
+    { "x-euc-jp", 18, kCFStringEncodingEUC_JP },
+    { "cn-gb", 113, kCFStringEncodingEUC_CN },
+    { "cp936", 113, kCFStringEncodingEUC_CN },
+    { "csgb2312", 113, kCFStringEncodingEUC_CN },
+    { "euc-cn", 113, kCFStringEncodingEUC_CN },
+    { "gb2312", 113, kCFStringEncodingEUC_CN },
+    { "gbk", 113, kCFStringEncodingEUC_CN },
+    { "ms936", 113, kCFStringEncodingEUC_CN },
+    { "windows-936", 113, kCFStringEncodingEUC_CN },
+    { "x-euc-cn", 113, kCFStringEncodingEUC_CN },
+    { "euc-tw", -1, kCFStringEncodingEUC_TW },
+    { "cseuckr", 38, kCFStringEncodingEUC_KR },
+    { "euc-kr", 38, kCFStringEncodingEUC_KR },
+    { "cskoi8r", 2084, kCFStringEncodingKOI8_R },
+    { "koi", 2084, kCFStringEncodingKOI8_R },
+    { "koi8", 2084, kCFStringEncodingKOI8_R },
+    { "koi8-r", 2084, kCFStringEncodingKOI8_R },
+    { "koi8r", 2084, kCFStringEncodingKOI8_R },
+    { "big5", 2026, kCFStringEncodingBig5 },
+    { "cn-big5", 2026, kCFStringEncodingBig5 },
+    { "csbig5", 2026, kCFStringEncodingBig5 },
+    { "x-x-big5", 2026, kCFStringEncodingBig5 },
+    { "x-mac-roman-latin1", -1, kCFStringEncodingMacRomanLatin1 },
+    { "hz-gb-2312", 2085, kCFStringEncodingHZ_GB_2312 },
+    { "big5-hkscs", 2101, kCFStringEncodingBig5_HKSCS_1999 },
+    { "cp037", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { "csibm037", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { "ebcdic-cp-ca", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { "ebcdic-cp-nl", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { "ebcdic-cp-us", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { "ebcdic-cp-wt", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { "ibm037", 2028, kCFStringEncodingEBCDIC_CP037 },
+    { NULL, -1, kCFStringEncodingInvalidId }
+};

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list