73c177c6f614f82ed44b38af0ad05d84a74843d2
[WebKit-https.git] / WebCore / khtml / css / cssproperties.c
1 /* ANSI-C code produced by gperf version 2.7.2 */
2 /* Command-line: gperf -a -L ANSI-C -E -C -c -o -t -k '*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 cssproperties.gperf  */
3 /* This file is automatically generated from cssproperties.in by makeprop, do not edit */
4 /* Copyright 1999 W. Bastian */
5 #include "cssproperties.h"
6 struct props {
7     const char *name;
8     int id;
9 };
10 /* maximum key range = 1488, duplicates = 0 */
11
12 #ifdef __GNUC__
13 __inline
14 #else
15 #ifdef __cplusplus
16 inline
17 #endif
18 #endif
19 static unsigned int
20 hash_prop (register const char *str, register unsigned int len)
21 {
22   static const unsigned short asso_values[] =
23     {
24       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
25       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
26       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
27       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
28       1493, 1493, 1493, 1493, 1493,    0, 1493, 1493, 1493, 1493,
29       1493,    0, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
30       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
31       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
32       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
33       1493, 1493, 1493, 1493, 1493, 1493, 1493,   35,   35,    0,
34          0,    0,  215,   10,    0,    0,    0,   15,    0,   35,
35        460,    0,   20,   55,    0,   95,    0,   60,   45,  310,
36        170,  190,    0, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
37       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
38       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
39       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
40       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
41       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
42       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
43       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
44       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
45       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
46       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
47       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
48       1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
49       1493, 1493, 1493, 1493, 1493, 1493
50     };
51   register int hval = len;
52
53   switch (hval)
54     {
55       default:
56       case 32:
57         hval += asso_values[(unsigned char)str[31]];
58       case 31:
59         hval += asso_values[(unsigned char)str[30]];
60       case 30:
61         hval += asso_values[(unsigned char)str[29]];
62       case 29:
63         hval += asso_values[(unsigned char)str[28]];
64       case 28:
65         hval += asso_values[(unsigned char)str[27]];
66       case 27:
67         hval += asso_values[(unsigned char)str[26]];
68       case 26:
69         hval += asso_values[(unsigned char)str[25]];
70       case 25:
71         hval += asso_values[(unsigned char)str[24]];
72       case 24:
73         hval += asso_values[(unsigned char)str[23]];
74       case 23:
75         hval += asso_values[(unsigned char)str[22]];
76       case 22:
77         hval += asso_values[(unsigned char)str[21]];
78       case 21:
79         hval += asso_values[(unsigned char)str[20]];
80       case 20:
81         hval += asso_values[(unsigned char)str[19]];
82       case 19:
83         hval += asso_values[(unsigned char)str[18]];
84       case 18:
85         hval += asso_values[(unsigned char)str[17]];
86       case 17:
87         hval += asso_values[(unsigned char)str[16]];
88       case 16:
89         hval += asso_values[(unsigned char)str[15]];
90       case 15:
91         hval += asso_values[(unsigned char)str[14]];
92       case 14:
93         hval += asso_values[(unsigned char)str[13]];
94       case 13:
95         hval += asso_values[(unsigned char)str[12]];
96       case 12:
97         hval += asso_values[(unsigned char)str[11]];
98       case 11:
99         hval += asso_values[(unsigned char)str[10]];
100       case 10:
101         hval += asso_values[(unsigned char)str[9]];
102       case 9:
103         hval += asso_values[(unsigned char)str[8]];
104       case 8:
105         hval += asso_values[(unsigned char)str[7]];
106       case 7:
107         hval += asso_values[(unsigned char)str[6]];
108       case 6:
109         hval += asso_values[(unsigned char)str[5]];
110       case 5:
111         hval += asso_values[(unsigned char)str[4]];
112       case 4:
113         hval += asso_values[(unsigned char)str[3]];
114       case 3:
115         hval += asso_values[(unsigned char)str[2]];
116       case 2:
117         hval += asso_values[(unsigned char)str[1]];
118       case 1:
119         hval += asso_values[(unsigned char)str[0]];
120         break;
121     }
122   return hval;
123 }
124
125 #ifdef __GNUC__
126 __inline
127 #endif
128 const struct props *
129 findProp (register const char *str, register unsigned int len)
130 {
131   enum
132     {
133       TOTAL_KEYWORDS = 157,
134       MIN_WORD_LENGTH = 3,
135       MAX_WORD_LENGTH = 32,
136       MIN_HASH_VALUE = 5,
137       MAX_HASH_VALUE = 1492
138     };
139
140   static const struct props wordlist_prop[] =
141     {
142       {"color", CSS_PROP_COLOR},
143       {"right", CSS_PROP_RIGHT},
144       {"height", CSS_PROP_HEIGHT},
145       {"top", CSS_PROP_TOP},
146       {"clip", CSS_PROP_CLIP},
147       {"clear", CSS_PROP_CLEAR},
148       {"border", CSS_PROP_BORDER},
149       {"border-color", CSS_PROP_BORDER_COLOR},
150       {"border-right", CSS_PROP_BORDER_RIGHT},
151       {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
152       {"border-top", CSS_PROP_BORDER_TOP},
153       {"page", CSS_PROP_PAGE},
154       {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
155       {"bottom", CSS_PROP_BOTTOM},
156       {"size", CSS_PROP_SIZE},
157       {"border-bottom", CSS_PROP_BORDER_BOTTOM},
158       {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
159       {"cursor", CSS_PROP_CURSOR},
160       {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
161       {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
162       {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
163       {"quotes", CSS_PROP_QUOTES},
164       {"left", CSS_PROP_LEFT},
165       {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
166       {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
167       {"opacity", CSS_PROP_OPACITY},
168       {"float", CSS_PROP_FLOAT},
169       {"max-height", CSS_PROP_MAX_HEIGHT},
170       {"border-left", CSS_PROP_BORDER_LEFT},
171       {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
172       {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
173       {"width", CSS_PROP_WIDTH},
174       {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
175       {"border-style", CSS_PROP_BORDER_STYLE},
176       {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
177       {"display", CSS_PROP_DISPLAY},
178       {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
179       {"empty-cells", CSS_PROP_EMPTY_CELLS},
180       {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
181       {"border-width", CSS_PROP_BORDER_WIDTH},
182       {"table-layout", CSS_PROP_TABLE_LAYOUT},
183       {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
184       {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
185       {"visibility", CSS_PROP_VISIBILITY},
186       {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
187       {"list-style", CSS_PROP_LIST_STYLE},
188       {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
189       {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
190       {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
191       {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
192       {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
193       {"direction", CSS_PROP_DIRECTION},
194       {"white-space", CSS_PROP_WHITE_SPACE},
195       {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
196       {"line-height", CSS_PROP_LINE_HEIGHT},
197       {"min-height", CSS_PROP_MIN_HEIGHT},
198       {"outline", CSS_PROP_OUTLINE},
199       {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
200       {"padding", CSS_PROP_PADDING},
201       {"outline-color", CSS_PROP_OUTLINE_COLOR},
202       {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
203       {"margin", CSS_PROP_MARGIN},
204       {"padding-right", CSS_PROP_PADDING_RIGHT},
205       {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
206       {"-apple-text-size-adjust", CSS_PROP__APPLE_TEXT_SIZE_ADJUST},
207       {"padding-top", CSS_PROP_PADDING_TOP},
208       {"max-width", CSS_PROP_MAX_WIDTH},
209       {"margin-right", CSS_PROP_MARGIN_RIGHT},
210       {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
211       {"margin-top", CSS_PROP_MARGIN_TOP},
212       {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
213       {"overflow", CSS_PROP_OVERFLOW},
214       {"position", CSS_PROP_POSITION},
215       {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
216       {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
217       {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
218       {"orphans", CSS_PROP_ORPHANS},
219       {"text-shadow", CSS_PROP_TEXT_SHADOW},
220       {"caption-side", CSS_PROP_CAPTION_SIDE},
221       {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
222       {"background", CSS_PROP_BACKGROUND},
223       {"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
224       {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
225       {"counter-reset", CSS_PROP_COUNTER_RESET},
226       {"background-color", CSS_PROP_BACKGROUND_COLOR},
227       {"letter-spacing", CSS_PROP_LETTER_SPACING},
228       {"z-index", CSS_PROP_Z_INDEX},
229       {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
230       {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
231       {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
232       {"border-spacing", CSS_PROP_BORDER_SPACING},
233       {"font", CSS_PROP_FONT},
234       {"text-decoration", CSS_PROP_TEXT_DECORATION},
235       {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
236       {"word-wrap", CSS_PROP_WORD_WRAP},
237       {"text-align", CSS_PROP_TEXT_ALIGN},
238       {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
239       {"text-overline", CSS_PROP_TEXT_OVERLINE},
240       {"text-overline-color", CSS_PROP_TEXT_OVERLINE_COLOR},
241       {"background-image", CSS_PROP_BACKGROUND_IMAGE},
242       {"text-line-through", CSS_PROP_TEXT_LINE_THROUGH},
243       {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
244       {"widows", CSS_PROP_WIDOWS},
245       {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
246       {"text-line-through-color", CSS_PROP_TEXT_LINE_THROUGH_COLOR},
247       {"-khtml-padding-start", CSS_PROP__KHTML_PADDING_START},
248       {"text-overline-mode", CSS_PROP_TEXT_OVERLINE_MODE},
249       {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
250       {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
251       {"-khtml-margin-start", CSS_PROP__KHTML_MARGIN_START},
252       {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
253       {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
254       {"padding-left", CSS_PROP_PADDING_LEFT},
255       {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
256       {"text-line-through-mode", CSS_PROP_TEXT_LINE_THROUGH_MODE},
257       {"-khtml-margin-collapse", CSS_PROP__KHTML_MARGIN_COLLAPSE},
258       {"margin-left", CSS_PROP_MARGIN_LEFT},
259       {"-apple-dashboard-region", CSS_PROP__APPLE_DASHBOARD_REGION},
260       {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
261       {"font-size", CSS_PROP_FONT_SIZE},
262       {"font-stretch", CSS_PROP_FONT_STRETCH},
263       {"-khtml-margin-top-collapse", CSS_PROP__KHTML_MARGIN_TOP_COLLAPSE},
264       {"min-width", CSS_PROP_MIN_WIDTH},
265       {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
266       {"outline-style", CSS_PROP_OUTLINE_STYLE},
267       {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
268       {"-khtml-margin-bottom-collapse", CSS_PROP__KHTML_MARGIN_BOTTOM_COLLAPSE},
269       {"outline-width", CSS_PROP_OUTLINE_WIDTH},
270       {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
271       {"content", CSS_PROP_CONTENT},
272       {"word-spacing", CSS_PROP_WORD_SPACING},
273       {"font-style", CSS_PROP_FONT_STYLE},
274       {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
275       {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
276       {"text-overline-style", CSS_PROP_TEXT_OVERLINE_STYLE},
277       {"text-overline-width", CSS_PROP_TEXT_OVERLINE_WIDTH},
278       {"font-weight", CSS_PROP_FONT_WEIGHT},
279       {"text-line-through-style", CSS_PROP_TEXT_LINE_THROUGH_STYLE},
280       {"text-transform", CSS_PROP_TEXT_TRANSFORM},
281       {"-khtml-binding", CSS_PROP__KHTML_BINDING},
282       {"text-line-through-width", CSS_PROP_TEXT_LINE_THROUGH_WIDTH},
283       {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
284       {"text-indent", CSS_PROP_TEXT_INDENT},
285       {"font-family", CSS_PROP_FONT_FAMILY},
286       {"text-underline", CSS_PROP_TEXT_UNDERLINE},
287       {"text-underline-color", CSS_PROP_TEXT_UNDERLINE_COLOR},
288       {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
289       {"text-underline-mode", CSS_PROP_TEXT_UNDERLINE_MODE},
290       {"background-position", CSS_PROP_BACKGROUND_POSITION},
291       {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
292       {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
293       {"font-variant", CSS_PROP_FONT_VARIANT},
294       {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
295       {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
296       {"text-underline-style", CSS_PROP_TEXT_UNDERLINE_STYLE},
297       {"text-underline-width", CSS_PROP_TEXT_UNDERLINE_WIDTH},
298       {"counter-increment", CSS_PROP_COUNTER_INCREMENT}
299     };
300
301   static const short lookup[] =
302     {
303        -1,  -1,  -1,  -1,  -1,   0,  -1,  -1,  -1,  -1,
304        -1,  -1,  -1,  -1,  -1,   1,   2,  -1,  -1,  -1,
305        -1,  -1,  -1,   3,   4,  -1,  -1,  -1,  -1,  -1,
306        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
307         5,   6,  -1,  -1,  -1,  -1,  -1,   7,  -1,  -1,
308        -1,  -1,  -1,  -1,  -1,  -1,  -1,   8,  -1,  -1,
309        -1,  -1,  -1,   9,  -1,  10,  -1,  -1,  -1,  11,
310        -1,  12,  -1,  -1,  -1,  -1,  13,  -1,  -1,  -1,
311        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
312        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  14,
313        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
314        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  15,  -1,
315        -1,  -1,  -1,  -1,  16,  -1,  -1,  -1,  -1,  -1,
316        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
317        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
318        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
319        -1,  17,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
320        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
321        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
322        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  18,  -1,
323        19,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
324        20,  -1,  -1,  -1,  -1,  -1,  21,  -1,  -1,  22,
325        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
326        -1,  -1,  -1,  -1,  -1,  -1,  23,  -1,  -1,  -1,
327        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  24,
328        -1,  -1,  25,  -1,  -1,  26,  -1,  -1,  -1,  -1,
329        27,  28,  -1,  -1,  -1,  -1,  29,  30,  -1,  -1,
330        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
331        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
332        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
333        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
334        -1,  -1,  -1,  -1,  -1,  31,  -1,  -1,  32,  -1,
335        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
336        -1,  -1,  33,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
337        34,  -1,  -1,  -1,  -1,  -1,  -1,  35,  36,  -1,
338        -1,  37,  -1,  -1,  -1,  -1,  38,  39,  -1,  -1,
339        -1,  -1,  -1,  -1,  -1,  -1,  -1,  40,  -1,  -1,
340        41,  -1,  -1,  42,  -1,  43,  -1,  -1,  -1,  -1,
341        -1,  44,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
342        45,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
343        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  46,
344        -1,  -1,  -1,  -1,  -1,  -1,  47,  48,  -1,  -1,
345        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
346        -1,  -1,  -1,  -1,  49,  50,  -1,  -1,  -1,  -1,
347        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
348        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
349        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  51,
350        -1,  52,  -1,  -1,  -1,  -1,  53,  -1,  -1,  -1,
351        -1,  54,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
352        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
353        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
354        -1,  -1,  -1,  -1,  -1,  55,  -1,  -1,  -1,  -1,
355        -1,  -1,  -1,  -1,  -1,  -1,  -1,  56,  -1,  -1,
356        -1,  57,  58,  59,  -1,  -1,  -1,  -1,  -1,  -1,
357        60,  -1,  -1,  -1,  -1,  -1,  61,  -1,  62,  -1,
358        -1,  -1,  63,  64,  -1,  -1,  65,  -1,  -1,  66,
359        -1,  -1,  67,  -1,  -1,  -1,  -1,  68,  -1,  -1,
360        69,  -1,  -1,  -1,  -1,  -1,  -1,  70,  71,  -1,
361        -1,  -1,  -1,  72,  -1,  -1,  -1,  -1,  -1,  -1,
362        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  73,
363        -1,  -1,  -1,  -1,  -1,  74,  -1,  -1,  -1,  75,
364        -1,  -1,  -1,  -1,  -1,  -1,  -1,  76,  -1,  -1,
365        -1,  77,  78,  79,  -1,  80,  81,  82,  83,  -1,
366        -1,  84,  -1,  -1,  85,  -1,  -1,  86,  -1,  -1,
367        -1,  -1,  87,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
368        -1,  -1,  -1,  -1,  -1,  88,  -1,  -1,  -1,  -1,
369        -1,  -1,  -1,  89,  -1,  -1,  -1,  -1,  -1,  90,
370        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  91,
371        92,  93,  -1,  -1,  94,  95,  -1,  96,  97,  -1,
372        -1,  -1,  -1,  -1,  98,  -1,  -1,  -1,  -1,  -1,
373        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
374        -1,  99,  -1,  -1,  -1,  -1,  -1, 100,  -1, 101,
375        -1, 102, 103, 104,  -1, 105,  -1,  -1, 106,  -1,
376        -1,  -1, 107,  -1,  -1, 108,  -1,  -1,  -1, 109,
377       110,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
378        -1, 111, 112, 113,  -1,  -1,  -1, 114,  -1,  -1,
379        -1,  -1, 115,  -1,  -1,  -1, 116,  -1, 117,  -1,
380        -1,  -1,  -1,  -1,  -1,  -1, 118,  -1,  -1, 119,
381        -1,  -1, 120,  -1,  -1,  -1, 121,  -1,  -1,  -1,
382        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
383        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
384        -1,  -1,  -1,  -1, 122, 123,  -1,  -1, 124,  -1,
385        -1,  -1,  -1,  -1,  -1,  -1, 125,  -1,  -1,  -1,
386        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 126,
387        -1,  -1,  -1, 127,  -1,  -1,  -1,  -1,  -1,  -1,
388        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
389        -1,  -1,  -1,  -1, 128,  -1,  -1,  -1,  -1,  -1,
390        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
391        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
392        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
393        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
394        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
395        -1,  -1,  -1,  -1,  -1,  -1,  -1, 129,  -1,  -1,
396        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
397        -1,  -1, 130,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
398        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
399        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
400       131,  -1,  -1,  -1, 132,  -1, 133,  -1,  -1, 134,
401        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
402        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
403        -1,  -1,  -1,  -1, 135,  -1, 136,  -1, 137,  -1,
404        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
405        -1,  -1,  -1,  -1, 138,  -1,  -1,  -1,  -1, 139,
406        -1,  -1,  -1, 140,  -1,  -1,  -1,  -1,  -1,  -1,
407        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
408        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 141,
409        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
410        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
411        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
412        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
413        -1, 142,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
414        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
415        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
416        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
417        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
418        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
419        -1, 143,  -1,  -1, 144,  -1,  -1,  -1,  -1,  -1,
420       145,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
421        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
422        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
423        -1, 146,  -1,  -1, 147,  -1,  -1,  -1,  -1, 148,
424        -1,  -1,  -1,  -1, 149,  -1,  -1,  -1,  -1,  -1,
425        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
426        -1,  -1, 150,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
427        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
428        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
429        -1,  -1, 151,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
430        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
431        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
432        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
433        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
434        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
435        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
436        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
437        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
438        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
439        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
440        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
441        -1, 152,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
442        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
443        -1, 153,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
444        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
445        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
446        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
447        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
448        -1,  -1,  -1,  -1,  -1, 154,  -1,  -1,  -1,  -1,
449        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
450        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
451       155,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
452        -1,  -1, 156
453     };
454
455   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
456     {
457       register int key = hash_prop (str, len);
458
459       if (key <= MAX_HASH_VALUE && key >= 0)
460         {
461           register int index = lookup[key];
462
463           if (index >= 0)
464             {
465               register const char *s = wordlist_prop[index].name;
466
467               if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
468                 return &wordlist_prop[index];
469             }
470         }
471     }
472   return 0;
473 }
474 static const char * const propertyList[] = {
475 "",
476 "background-color", 
477 "background-image", 
478 "background-repeat", 
479 "background-attachment", 
480 "background-position", 
481 "background-position-x", 
482 "background-position-y", 
483 "-khtml-binding", 
484 "border-collapse", 
485 "border-spacing", 
486 "-khtml-border-horizontal-spacing", 
487 "-khtml-border-vertical-spacing", 
488 "border-top-color", 
489 "border-right-color", 
490 "border-bottom-color", 
491 "border-left-color", 
492 "border-top-style", 
493 "border-right-style", 
494 "border-bottom-style", 
495 "border-left-style", 
496 "border-top-width", 
497 "border-right-width", 
498 "border-bottom-width", 
499 "border-left-width", 
500 "bottom", 
501 "-khtml-box-align", 
502 "-khtml-box-direction", 
503 "-khtml-box-flex", 
504 "-khtml-box-flex-group", 
505 "-khtml-box-lines", 
506 "-khtml-box-ordinal-group", 
507 "-khtml-box-orient", 
508 "-khtml-box-pack", 
509 "caption-side", 
510 "clear", 
511 "clip", 
512 "color", 
513 "content", 
514 "counter-increment", 
515 "counter-reset", 
516 "cursor", 
517 "direction", 
518 "display", 
519 "empty-cells", 
520 "float", 
521 "font-family", 
522 "font-size", 
523 "font-size-adjust", 
524 "font-stretch", 
525 "font-style", 
526 "font-variant", 
527 "font-weight", 
528 "height", 
529 "left", 
530 "letter-spacing", 
531 "-apple-line-clamp", 
532 "line-height", 
533 "list-style-image", 
534 "list-style-position", 
535 "list-style-type", 
536 "margin-top", 
537 "margin-right", 
538 "margin-bottom", 
539 "margin-left", 
540 "-khtml-margin-collapse", 
541 "-khtml-margin-top-collapse", 
542 "-khtml-margin-bottom-collapse", 
543 "-khtml-margin-start", 
544 "-khtml-marquee", 
545 "-khtml-marquee-direction", 
546 "-khtml-marquee-increment", 
547 "-khtml-marquee-repetition", 
548 "-khtml-marquee-speed", 
549 "-khtml-marquee-style", 
550 "max-height", 
551 "max-width", 
552 "min-height", 
553 "min-width", 
554 "opacity", 
555 "orphans", 
556 "outline-color", 
557 "outline-offset", 
558 "outline-style", 
559 "outline-width", 
560 "overflow", 
561 "padding-top", 
562 "padding-right", 
563 "padding-bottom", 
564 "padding-left", 
565 "-khtml-padding-start", 
566 "page", 
567 "page-break-after", 
568 "page-break-before", 
569 "page-break-inside", 
570 "position", 
571 "quotes", 
572 "right", 
573 "size", 
574 "table-layout", 
575 "text-align", 
576 "text-decoration", 
577 "text-indent", 
578 "text-line-through", 
579 "text-line-through-color", 
580 "text-line-through-mode", 
581 "text-line-through-style", 
582 "text-line-through-width", 
583 "text-overflow", 
584 "text-overline", 
585 "text-overline-color", 
586 "text-overline-mode", 
587 "text-overline-style", 
588 "text-overline-width", 
589 "text-shadow", 
590 "text-transform", 
591 "text-underline", 
592 "text-underline-color", 
593 "text-underline-mode", 
594 "text-underline-style", 
595 "text-underline-width", 
596 "-apple-text-size-adjust", 
597 "-apple-dashboard-region", 
598 "top", 
599 "unicode-bidi", 
600 "-khtml-user-drag", 
601 "-khtml-user-modify", 
602 "-khtml-user-select", 
603 "vertical-align", 
604 "visibility", 
605 "white-space", 
606 "widows", 
607 "width", 
608 "word-wrap", 
609 "word-spacing", 
610 "z-index", 
611 "background", 
612 "border", 
613 "border-color", 
614 "border-style", 
615 "border-top", 
616 "border-right", 
617 "border-bottom", 
618 "border-left", 
619 "border-width", 
620 "font", 
621 "list-style", 
622 "margin", 
623 "outline", 
624 "padding", 
625 "scrollbar-face-color", 
626 "scrollbar-shadow-color", 
627 "scrollbar-highlight-color", 
628 "scrollbar-3dlight-color", 
629 "scrollbar-darkshadow-color", 
630 "scrollbar-track-color", 
631 "scrollbar-arrow-color", 
632 "-khtml-flow-mode", 
633     0
634 };
635 DOMString getPropertyName(unsigned short id)
636 {
637     if(id >= CSS_PROP_TOTAL || id == 0)
638       return DOMString();
639     else
640       return DOMString(propertyList[id]);
641 };
642