source: heimdal/trunk/lib/otp/otp_parse.c

Last change on this file was 1, checked in by Paul Smedley, 10 years ago

Initial commit of Heimdal 1.5.3

File size: 52.9 KB
Line 
1/*
2 * Copyright (c) 1995-2000, 2005-2007 Kungliga Tekniska Högskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * 3. Neither the name of the Institute nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifdef HAVE_CONFIG_H
35#include "config.h"
36RCSID("$Id$");
37#endif
38
39#include "otp_locl.h"
40
41struct e {
42 const char *s;
43 unsigned n;
44};
45
46extern const struct e inv_std_dict[2048];
47
48static int
49cmp(const void *a, const void *b)
50{
51 const struct e *e1, *e2;
52
53 e1 = (const struct e *)a;
54 e2 = (const struct e *)b;
55 return strcasecmp (e1->s, e2->s);
56}
57
58static int
59get_stdword (const char *s, void *v)
60{
61 struct e e, *r;
62
63 e.s = s;
64 e.n = -1;
65 r = (struct e *) bsearch (&e, inv_std_dict,
66 sizeof(inv_std_dict)/sizeof(*inv_std_dict),
67 sizeof(*inv_std_dict), cmp);
68 if (r)
69 return r->n;
70 else
71 return -1;
72}
73
74static void
75compress (OtpKey key, unsigned wn[])
76{
77 key[0] = wn[0] >> 3;
78 key[1] = ((wn[0] & 0x07) << 5) | (wn[1] >> 6);
79 key[2] = ((wn[1] & 0x3F) << 2) | (wn[2] >> 9);
80 key[3] = ((wn[2] >> 1) & 0xFF);
81 key[4] = ((wn[2] & 0x01) << 7) | (wn[3] >> 4);
82 key[5] = ((wn[3] & 0x0F) << 4) | (wn[4] >> 7);
83 key[6] = ((wn[4] & 0x7F) << 1) | (wn[5] >> 10);
84 key[7] = ((wn[5] >> 2) & 0xFF);
85}
86
87static int
88get_altword (const char *s, void *a)
89{
90 OtpAlgorithm *alg = (OtpAlgorithm *)a;
91 int ret;
92 unsigned char *res = malloc(alg->hashsize);
93
94 if (res == NULL)
95 return -1;
96 alg->hash (s, strlen(s), res);
97 ret = (unsigned)(res[alg->hashsize - 1]) |
98 ((res[alg->hashsize - 2] & 0x03) << 8);
99 free (res);
100 return ret;
101}
102
103static int
104parse_words(unsigned wn[],
105 const char *str,
106 int (*convert)(const char *, void *),
107 void *arg)
108{
109 const unsigned char *w, *wend;
110 char *wcopy;
111 int i;
112 int tmp;
113
114 w = (const unsigned char *)str;
115 for (i = 0; i < 6; ++i) {
116 while (isspace(*w))
117 ++w;
118 wend = w;
119 while (isalpha (*wend))
120 ++wend;
121
122 tmp = wend - w;
123 wcopy = malloc(tmp + 1);
124 if (wcopy == NULL)
125 return -1;
126 memcpy(wcopy, w, tmp);
127 wcopy[tmp] = '\0';
128
129 tmp = (*convert)(wcopy, arg);
130 free(wcopy);
131 w = wend;
132 if (tmp < 0)
133 return -1;
134 wn[i] = tmp;
135 }
136 return 0;
137}
138
139static int
140otp_parse_internal (OtpKey key, const char *str,
141 OtpAlgorithm *alg,
142 int (*convert)(const char *, void *))
143{
144 unsigned wn[6];
145
146 if (parse_words (wn, str, convert, alg))
147 return -1;
148 compress (key, wn);
149 if (otp_checksum (key) != (wn[5] & 0x03))
150 return -1;
151 return 0;
152}
153
154int
155otp_parse_stddict (OtpKey key, const char *str)
156{
157 return otp_parse_internal (key, str, NULL, get_stdword);
158}
159
160int
161otp_parse_altdict (OtpKey key, const char *str, OtpAlgorithm *alg)
162{
163 return otp_parse_internal (key, str, alg, get_altword);
164}
165
166int
167otp_parse_hex (OtpKey key, const char *s)
168{
169 char buf[17], *b;
170 int is[8];
171 int i;
172
173 b = buf;
174 while (*s) {
175 if (strchr ("0123456789ABCDEFabcdef", *s)) {
176 if (b - buf >= 16)
177 return -1;
178 else
179 *b++ = tolower((unsigned char)*s);
180 }
181 s++;
182 }
183 *b = '\0';
184 if (sscanf (buf, "%2x%2x%2x%2x%2x%2x%2x%2x",
185 &is[0], &is[1], &is[2], &is[3], &is[4],
186 &is[5], &is[6], &is[7]) != 8)
187 return -1;
188 for (i = 0; i < OTPKEYSIZE; ++i)
189 key[i] = is[i];
190 return 0;
191}
192
193int
194otp_parse (OtpKey key, const char *s, OtpAlgorithm *alg)
195{
196 int ret;
197 int dohex = 1;
198
199 if (strncmp (s, OTP_HEXPREFIX, strlen(OTP_HEXPREFIX)) == 0)
200 return otp_parse_hex (key, s + strlen(OTP_HEXPREFIX));
201 if (strncmp (s, OTP_WORDPREFIX, strlen(OTP_WORDPREFIX)) == 0) {
202 s += strlen(OTP_WORDPREFIX);
203 dohex = 0;
204 }
205
206 ret = otp_parse_stddict (key, s);
207 if (ret)
208 ret = otp_parse_altdict (key, s, alg);
209 if (ret && dohex)
210 ret = otp_parse_hex (key, s);
211 return ret;
212}
213
214const char *const std_dict[2048] =
215{ "A", "ABE", "ACE", "ACT", "AD", "ADA", "ADD",
216"AGO", "AID", "AIM", "AIR", "ALL", "ALP", "AM", "AMY",
217"AN", "ANA", "AND", "ANN", "ANT", "ANY", "APE", "APS",
218"APT", "ARC", "ARE", "ARK", "ARM", "ART", "AS", "ASH",
219"ASK", "AT", "ATE", "AUG", "AUK", "AVE", "AWE", "AWK",
220"AWL", "AWN", "AX", "AYE", "BAD", "BAG", "BAH", "BAM",
221"BAN", "BAR", "BAT", "BAY", "BE", "BED", "BEE", "BEG",
222"BEN", "BET", "BEY", "BIB", "BID", "BIG", "BIN", "BIT",
223"BOB", "BOG", "BON", "BOO", "BOP", "BOW", "BOY", "BUB",
224"BUD", "BUG", "BUM", "BUN", "BUS", "BUT", "BUY", "BY",
225"BYE", "CAB", "CAL", "CAM", "CAN", "CAP", "CAR", "CAT",
226"CAW", "COD", "COG", "COL", "CON", "COO", "COP", "COT",
227"COW", "COY", "CRY", "CUB", "CUE", "CUP", "CUR", "CUT",
228"DAB", "DAD", "DAM", "DAN", "DAR", "DAY", "DEE", "DEL",
229"DEN", "DES", "DEW", "DID", "DIE", "DIG", "DIN", "DIP",
230"DO", "DOE", "DOG", "DON", "DOT", "DOW", "DRY", "DUB",
231"DUD", "DUE", "DUG", "DUN", "EAR", "EAT", "ED", "EEL",
232"EGG", "EGO", "ELI", "ELK", "ELM", "ELY", "EM", "END",
233"EST", "ETC", "EVA", "EVE", "EWE", "EYE", "FAD", "FAN",
234"FAR", "FAT", "FAY", "FED", "FEE", "FEW", "FIB", "FIG",
235"FIN", "FIR", "FIT", "FLO", "FLY", "FOE", "FOG", "FOR",
236"FRY", "FUM", "FUN", "FUR", "GAB", "GAD", "GAG", "GAL",
237"GAM", "GAP", "GAS", "GAY", "GEE", "GEL", "GEM", "GET",
238"GIG", "GIL", "GIN", "GO", "GOT", "GUM", "GUN", "GUS",
239"GUT", "GUY", "GYM", "GYP", "HA", "HAD", "HAL", "HAM",
240"HAN", "HAP", "HAS", "HAT", "HAW", "HAY", "HE", "HEM",
241"HEN", "HER", "HEW", "HEY", "HI", "HID", "HIM", "HIP",
242"HIS", "HIT", "HO", "HOB", "HOC", "HOE", "HOG", "HOP",
243"HOT", "HOW", "HUB", "HUE", "HUG", "HUH", "HUM", "HUT",
244"I", "ICY", "IDA", "IF", "IKE", "ILL", "INK", "INN",
245"IO", "ION", "IQ", "IRA", "IRE", "IRK", "IS", "IT",
246"ITS", "IVY", "JAB", "JAG", "JAM", "JAN", "JAR", "JAW",
247"JAY", "JET", "JIG", "JIM", "JO", "JOB", "JOE", "JOG",
248"JOT", "JOY", "JUG", "JUT", "KAY", "KEG", "KEN", "KEY",
249"KID", "KIM", "KIN", "KIT", "LA", "LAB", "LAC", "LAD",
250"LAG", "LAM", "LAP", "LAW", "LAY", "LEA", "LED", "LEE",
251"LEG", "LEN", "LEO", "LET", "LEW", "LID", "LIE", "LIN",
252"LIP", "LIT", "LO", "LOB", "LOG", "LOP", "LOS", "LOT",
253"LOU", "LOW", "LOY", "LUG", "LYE", "MA", "MAC", "MAD",
254"MAE", "MAN", "MAO", "MAP", "MAT", "MAW", "MAY", "ME",
255"MEG", "MEL", "MEN", "MET", "MEW", "MID", "MIN", "MIT",
256"MOB", "MOD", "MOE", "MOO", "MOP", "MOS", "MOT", "MOW",
257"MUD", "MUG", "MUM", "MY", "NAB", "NAG", "NAN", "NAP",
258"NAT", "NAY", "NE", "NED", "NEE", "NET", "NEW", "NIB",
259"NIL", "NIP", "NIT", "NO", "NOB", "NOD", "NON", "NOR",
260"NOT", "NOV", "NOW", "NU", "NUN", "NUT", "O", "OAF",
261"OAK", "OAR", "OAT", "ODD", "ODE", "OF", "OFF", "OFT",
262"OH", "OIL", "OK", "OLD", "ON", "ONE", "OR", "ORB",
263"ORE", "ORR", "OS", "OTT", "OUR", "OUT", "OVA", "OW",
264"OWE", "OWL", "OWN", "OX", "PA", "PAD", "PAL", "PAM",
265"PAN", "PAP", "PAR", "PAT", "PAW", "PAY", "PEA", "PEG",
266"PEN", "PEP", "PER", "PET", "PEW", "PHI", "PI", "PIE",
267"PIN", "PIT", "PLY", "PO", "POD", "POE", "POP", "POT",
268"POW", "PRO", "PRY", "PUB", "PUG", "PUN", "PUP", "PUT",
269"QUO", "RAG", "RAM", "RAN", "RAP", "RAT", "RAW", "RAY",
270"REB", "RED", "REP", "RET", "RIB", "RID", "RIG", "RIM",
271"RIO", "RIP", "ROB", "ROD", "ROE", "RON", "ROT", "ROW",
272"ROY", "RUB", "RUE", "RUG", "RUM", "RUN", "RYE", "SAC",
273"SAD", "SAG", "SAL", "SAM", "SAN", "SAP", "SAT", "SAW",
274"SAY", "SEA", "SEC", "SEE", "SEN", "SET", "SEW", "SHE",
275"SHY", "SIN", "SIP", "SIR", "SIS", "SIT", "SKI", "SKY",
276"SLY", "SO", "SOB", "SOD", "SON", "SOP", "SOW", "SOY",
277"SPA", "SPY", "SUB", "SUD", "SUE", "SUM", "SUN", "SUP",
278"TAB", "TAD", "TAG", "TAN", "TAP", "TAR", "TEA", "TED",
279"TEE", "TEN", "THE", "THY", "TIC", "TIE", "TIM", "TIN",
280"TIP", "TO", "TOE", "TOG", "TOM", "TON", "TOO", "TOP",
281"TOW", "TOY", "TRY", "TUB", "TUG", "TUM", "TUN", "TWO",
282"UN", "UP", "US", "USE", "VAN", "VAT", "VET", "VIE",
283"WAD", "WAG", "WAR", "WAS", "WAY", "WE", "WEB", "WED",
284"WEE", "WET", "WHO", "WHY", "WIN", "WIT", "WOK", "WON",
285"WOO", "WOW", "WRY", "WU", "YAM", "YAP", "YAW", "YE",
286"YEA", "YES", "YET", "YOU", "ABED", "ABEL", "ABET", "ABLE",
287"ABUT", "ACHE", "ACID", "ACME", "ACRE", "ACTA", "ACTS", "ADAM",
288"ADDS", "ADEN", "AFAR", "AFRO", "AGEE", "AHEM", "AHOY", "AIDA",
289"AIDE", "AIDS", "AIRY", "AJAR", "AKIN", "ALAN", "ALEC", "ALGA",
290"ALIA", "ALLY", "ALMA", "ALOE", "ALSO", "ALTO", "ALUM", "ALVA",
291"AMEN", "AMES", "AMID", "AMMO", "AMOK", "AMOS", "AMRA", "ANDY",
292"ANEW", "ANNA", "ANNE", "ANTE", "ANTI", "AQUA", "ARAB", "ARCH",
293"AREA", "ARGO", "ARID", "ARMY", "ARTS", "ARTY", "ASIA", "ASKS",
294"ATOM", "AUNT", "AURA", "AUTO", "AVER", "AVID", "AVIS", "AVON",
295"AVOW", "AWAY", "AWRY", "BABE", "BABY", "BACH", "BACK", "BADE",
296"BAIL", "BAIT", "BAKE", "BALD", "BALE", "BALI", "BALK", "BALL",
297"BALM", "BAND", "BANE", "BANG", "BANK", "BARB", "BARD", "BARE",
298"BARK", "BARN", "BARR", "BASE", "BASH", "BASK", "BASS", "BATE",
299"BATH", "BAWD", "BAWL", "BEAD", "BEAK", "BEAM", "BEAN", "BEAR",
300"BEAT", "BEAU", "BECK", "BEEF", "BEEN", "BEER", "BEET", "BELA",
301"BELL", "BELT", "BEND", "BENT", "BERG", "BERN", "BERT", "BESS",
302"BEST", "BETA", "BETH", "BHOY", "BIAS", "BIDE", "BIEN", "BILE",
303"BILK", "BILL", "BIND", "BING", "BIRD", "BITE", "BITS", "BLAB",
304"BLAT", "BLED", "BLEW", "BLOB", "BLOC", "BLOT", "BLOW", "BLUE",
305"BLUM", "BLUR", "BOAR", "BOAT", "BOCA", "BOCK", "BODE", "BODY",
306"BOGY", "BOHR", "BOIL", "BOLD", "BOLO", "BOLT", "BOMB", "BONA",
307"BOND", "BONE", "BONG", "BONN", "BONY", "BOOK", "BOOM", "BOON",
308"BOOT", "BORE", "BORG", "BORN", "BOSE", "BOSS", "BOTH", "BOUT",
309"BOWL", "BOYD", "BRAD", "BRAE", "BRAG", "BRAN", "BRAY", "BRED",
310"BREW", "BRIG", "BRIM", "BROW", "BUCK", "BUDD", "BUFF", "BULB",
311"BULK", "BULL", "BUNK", "BUNT", "BUOY", "BURG", "BURL", "BURN",
312"BURR", "BURT", "BURY", "BUSH", "BUSS", "BUST", "BUSY", "BYTE",
313"CADY", "CAFE", "CAGE", "CAIN", "CAKE", "CALF", "CALL", "CALM",
314"CAME", "CANE", "CANT", "CARD", "CARE", "CARL", "CARR", "CART",
315"CASE", "CASH", "CASK", "CAST", "CAVE", "CEIL", "CELL", "CENT",
316"CERN", "CHAD", "CHAR", "CHAT", "CHAW", "CHEF", "CHEN", "CHEW",
317"CHIC", "CHIN", "CHOU", "CHOW", "CHUB", "CHUG", "CHUM", "CITE",
318"CITY", "CLAD", "CLAM", "CLAN", "CLAW", "CLAY", "CLOD", "CLOG",
319"CLOT", "CLUB", "CLUE", "COAL", "COAT", "COCA", "COCK", "COCO",
320"CODA", "CODE", "CODY", "COED", "COIL", "COIN", "COKE", "COLA",
321"COLD", "COLT", "COMA", "COMB", "COME", "COOK", "COOL", "COON",
322"COOT", "CORD", "CORE", "CORK", "CORN", "COST", "COVE", "COWL",
323"CRAB", "CRAG", "CRAM", "CRAY", "CREW", "CRIB", "CROW", "CRUD",
324"CUBA", "CUBE", "CUFF", "CULL", "CULT", "CUNY", "CURB", "CURD",
325"CURE", "CURL", "CURT", "CUTS", "DADE", "DALE", "DAME", "DANA",
326"DANE", "DANG", "DANK", "DARE", "DARK", "DARN", "DART", "DASH",
327"DATA", "DATE", "DAVE", "DAVY", "DAWN", "DAYS", "DEAD", "DEAF",
328"DEAL", "DEAN", "DEAR", "DEBT", "DECK", "DEED", "DEEM", "DEER",
329"DEFT", "DEFY", "DELL", "DENT", "DENY", "DESK", "DIAL", "DICE",
330"DIED", "DIET", "DIME", "DINE", "DING", "DINT", "DIRE", "DIRT",
331"DISC", "DISH", "DISK", "DIVE", "DOCK", "DOES", "DOLE", "DOLL",
332"DOLT", "DOME", "DONE", "DOOM", "DOOR", "DORA", "DOSE", "DOTE",
333"DOUG", "DOUR", "DOVE", "DOWN", "DRAB", "DRAG", "DRAM", "DRAW",
334"DREW", "DRUB", "DRUG", "DRUM", "DUAL", "DUCK", "DUCT", "DUEL",
335"DUET", "DUKE", "DULL", "DUMB", "DUNE", "DUNK", "DUSK", "DUST",
336"DUTY", "EACH", "EARL", "EARN", "EASE", "EAST", "EASY", "EBEN",
337"ECHO", "EDDY", "EDEN", "EDGE", "EDGY", "EDIT", "EDNA", "EGAN",
338"ELAN", "ELBA", "ELLA", "ELSE", "EMIL", "EMIT", "EMMA", "ENDS",
339"ERIC", "EROS", "EVEN", "EVER", "EVIL", "EYED", "FACE", "FACT",
340"FADE", "FAIL", "FAIN", "FAIR", "FAKE", "FALL", "FAME", "FANG",
341"FARM", "FAST", "FATE", "FAWN", "FEAR", "FEAT", "FEED", "FEEL",
342"FEET", "FELL", "FELT", "FEND", "FERN", "FEST", "FEUD", "FIEF",
343"FIGS", "FILE", "FILL", "FILM", "FIND", "FINE", "FINK", "FIRE",
344"FIRM", "FISH", "FISK", "FIST", "FITS", "FIVE", "FLAG", "FLAK",
345"FLAM", "FLAT", "FLAW", "FLEA", "FLED", "FLEW", "FLIT", "FLOC",
346"FLOG", "FLOW", "FLUB", "FLUE", "FOAL", "FOAM", "FOGY", "FOIL",
347"FOLD", "FOLK", "FOND", "FONT", "FOOD", "FOOL", "FOOT", "FORD",
348"FORE", "FORK", "FORM", "FORT", "FOSS", "FOUL", "FOUR", "FOWL",
349"FRAU", "FRAY", "FRED", "FREE", "FRET", "FREY", "FROG", "FROM",
350"FUEL", "FULL", "FUME", "FUND", "FUNK", "FURY", "FUSE", "FUSS",
351"GAFF", "GAGE", "GAIL", "GAIN", "GAIT", "GALA", "GALE", "GALL",
352"GALT", "GAME", "GANG", "GARB", "GARY", "GASH", "GATE", "GAUL",
353"GAUR", "GAVE", "GAWK", "GEAR", "GELD", "GENE", "GENT", "GERM",
354"GETS", "GIBE", "GIFT", "GILD", "GILL", "GILT", "GINA", "GIRD",
355"GIRL", "GIST", "GIVE", "GLAD", "GLEE", "GLEN", "GLIB", "GLOB",
356"GLOM", "GLOW", "GLUE", "GLUM", "GLUT", "GOAD", "GOAL", "GOAT",
357"GOER", "GOES", "GOLD", "GOLF", "GONE", "GONG", "GOOD", "GOOF",
358"GORE", "GORY", "GOSH", "GOUT", "GOWN", "GRAB", "GRAD", "GRAY",
359"GREG", "GREW", "GREY", "GRID", "GRIM", "GRIN", "GRIT", "GROW",
360"GRUB", "GULF", "GULL", "GUNK", "GURU", "GUSH", "GUST", "GWEN",
361"GWYN", "HAAG", "HAAS", "HACK", "HAIL", "HAIR", "HALE", "HALF",
362"HALL", "HALO", "HALT", "HAND", "HANG", "HANK", "HANS", "HARD",
363"HARK", "HARM", "HART", "HASH", "HAST", "HATE", "HATH", "HAUL",
364"HAVE", "HAWK", "HAYS", "HEAD", "HEAL", "HEAR", "HEAT", "HEBE",
365"HECK", "HEED", "HEEL", "HEFT", "HELD", "HELL", "HELM", "HERB",
366"HERD", "HERE", "HERO", "HERS", "HESS", "HEWN", "HICK", "HIDE",
367"HIGH", "HIKE", "HILL", "HILT", "HIND", "HINT", "HIRE", "HISS",
368"HIVE", "HOBO", "HOCK", "HOFF", "HOLD", "HOLE", "HOLM", "HOLT",
369"HOME", "HONE", "HONK", "HOOD", "HOOF", "HOOK", "HOOT", "HORN",
370"HOSE", "HOST", "HOUR", "HOVE", "HOWE", "HOWL", "HOYT", "HUCK",
371"HUED", "HUFF", "HUGE", "HUGH", "HUGO", "HULK", "HULL", "HUNK",
372"HUNT", "HURD", "HURL", "HURT", "HUSH", "HYDE", "HYMN", "IBIS",
373"ICON", "IDEA", "IDLE", "IFFY", "INCA", "INCH", "INTO", "IONS",
374"IOTA", "IOWA", "IRIS", "IRMA", "IRON", "ISLE", "ITCH", "ITEM",
375"IVAN", "JACK", "JADE", "JAIL", "JAKE", "JANE", "JAVA", "JEAN",
376"JEFF", "JERK", "JESS", "JEST", "JIBE", "JILL", "JILT", "JIVE",
377"JOAN", "JOBS", "JOCK", "JOEL", "JOEY", "JOHN", "JOIN", "JOKE",
378"JOLT", "JOVE", "JUDD", "JUDE", "JUDO", "JUDY", "JUJU", "JUKE",
379"JULY", "JUNE", "JUNK", "JUNO", "JURY", "JUST", "JUTE", "KAHN",
380"KALE", "KANE", "KANT", "KARL", "KATE", "KEEL", "KEEN", "KENO",
381"KENT", "KERN", "KERR", "KEYS", "KICK", "KILL", "KIND", "KING",
382"KIRK", "KISS", "KITE", "KLAN", "KNEE", "KNEW", "KNIT", "KNOB",
383"KNOT", "KNOW", "KOCH", "KONG", "KUDO", "KURD", "KURT", "KYLE",
384"LACE", "LACK", "LACY", "LADY", "LAID", "LAIN", "LAIR", "LAKE",
385"LAMB", "LAME", "LAND", "LANE", "LANG", "LARD", "LARK", "LASS",
386"LAST", "LATE", "LAUD", "LAVA", "LAWN", "LAWS", "LAYS", "LEAD",
387"LEAF", "LEAK", "LEAN", "LEAR", "LEEK", "LEER", "LEFT", "LEND",
388"LENS", "LENT", "LEON", "LESK", "LESS", "LEST", "LETS", "LIAR",
389"LICE", "LICK", "LIED", "LIEN", "LIES", "LIEU", "LIFE", "LIFT",
390"LIKE", "LILA", "LILT", "LILY", "LIMA", "LIMB", "LIME", "LIND",
391"LINE", "LINK", "LINT", "LION", "LISA", "LIST", "LIVE", "LOAD",
392"LOAF", "LOAM", "LOAN", "LOCK", "LOFT", "LOGE", "LOIS", "LOLA",
393"LONE", "LONG", "LOOK", "LOON", "LOOT", "LORD", "LORE", "LOSE",
394"LOSS", "LOST", "LOUD", "LOVE", "LOWE", "LUCK", "LUCY", "LUGE",
395"LUKE", "LULU", "LUND", "LUNG", "LURA", "LURE", "LURK", "LUSH",
396"LUST", "LYLE", "LYNN", "LYON", "LYRA", "MACE", "MADE", "MAGI",
397"MAID", "MAIL", "MAIN", "MAKE", "MALE", "MALI", "MALL", "MALT",
398"MANA", "MANN", "MANY", "MARC", "MARE", "MARK", "MARS", "MART",
399"MARY", "MASH", "MASK", "MASS", "MAST", "MATE", "MATH", "MAUL",
400"MAYO", "MEAD", "MEAL", "MEAN", "MEAT", "MEEK", "MEET", "MELD",
401"MELT", "MEMO", "MEND", "MENU", "MERT", "MESH", "MESS", "MICE",
402"MIKE", "MILD", "MILE", "MILK", "MILL", "MILT", "MIMI", "MIND",
403"MINE", "MINI", "MINK", "MINT", "MIRE", "MISS", "MIST", "MITE",
404"MITT", "MOAN", "MOAT", "MOCK", "MODE", "MOLD", "MOLE", "MOLL",
405"MOLT", "MONA", "MONK", "MONT", "MOOD", "MOON", "MOOR", "MOOT",
406"MORE", "MORN", "MORT", "MOSS", "MOST", "MOTH", "MOVE", "MUCH",
407"MUCK", "MUDD", "MUFF", "MULE", "MULL", "MURK", "MUSH", "MUST",
408"MUTE", "MUTT", "MYRA", "MYTH", "NAGY", "NAIL", "NAIR", "NAME",
409"NARY", "NASH", "NAVE", "NAVY", "NEAL", "NEAR", "NEAT", "NECK",
410"NEED", "NEIL", "NELL", "NEON", "NERO", "NESS", "NEST", "NEWS",
411"NEWT", "NIBS", "NICE", "NICK", "NILE", "NINA", "NINE", "NOAH",
412"NODE", "NOEL", "NOLL", "NONE", "NOOK", "NOON", "NORM", "NOSE",
413"NOTE", "NOUN", "NOVA", "NUDE", "NULL", "NUMB", "OATH", "OBEY",
414"OBOE", "ODIN", "OHIO", "OILY", "OINT", "OKAY", "OLAF", "OLDY",
415"OLGA", "OLIN", "OMAN", "OMEN", "OMIT", "ONCE", "ONES", "ONLY",
416"ONTO", "ONUS", "ORAL", "ORGY", "OSLO", "OTIS", "OTTO", "OUCH",
417"OUST", "OUTS", "OVAL", "OVEN", "OVER", "OWLY", "OWNS", "QUAD",
418"QUIT", "QUOD", "RACE", "RACK", "RACY", "RAFT", "RAGE", "RAID",
419"RAIL", "RAIN", "RAKE", "RANK", "RANT", "RARE", "RASH", "RATE",
420"RAVE", "RAYS", "READ", "REAL", "REAM", "REAR", "RECK", "REED",
421"REEF", "REEK", "REEL", "REID", "REIN", "RENA", "REND", "RENT",
422"REST", "RICE", "RICH", "RICK", "RIDE", "RIFT", "RILL", "RIME",
423"RING", "RINK", "RISE", "RISK", "RITE", "ROAD", "ROAM", "ROAR",
424"ROBE", "ROCK", "RODE", "ROIL", "ROLL", "ROME", "ROOD", "ROOF",
425"ROOK", "ROOM", "ROOT", "ROSA", "ROSE", "ROSS", "ROSY", "ROTH",
426"ROUT", "ROVE", "ROWE", "ROWS", "RUBE", "RUBY", "RUDE", "RUDY",
427"RUIN", "RULE", "RUNG", "RUNS", "RUNT", "RUSE", "RUSH", "RUSK",
428"RUSS", "RUST", "RUTH", "SACK", "SAFE", "SAGE", "SAID", "SAIL",
429"SALE", "SALK", "SALT", "SAME", "SAND", "SANE", "SANG", "SANK",
430"SARA", "SAUL", "SAVE", "SAYS", "SCAN", "SCAR", "SCAT", "SCOT",
431"SEAL", "SEAM", "SEAR", "SEAT", "SEED", "SEEK", "SEEM", "SEEN",
432"SEES", "SELF", "SELL", "SEND", "SENT", "SETS", "SEWN", "SHAG",
433"SHAM", "SHAW", "SHAY", "SHED", "SHIM", "SHIN", "SHOD", "SHOE",
434"SHOT", "SHOW", "SHUN", "SHUT", "SICK", "SIDE", "SIFT", "SIGH",
435"SIGN", "SILK", "SILL", "SILO", "SILT", "SINE", "SING", "SINK",
436"SIRE", "SITE", "SITS", "SITU", "SKAT", "SKEW", "SKID", "SKIM",
437"SKIN", "SKIT", "SLAB", "SLAM", "SLAT", "SLAY", "SLED", "SLEW",
438"SLID", "SLIM", "SLIT", "SLOB", "SLOG", "SLOT", "SLOW", "SLUG",
439"SLUM", "SLUR", "SMOG", "SMUG", "SNAG", "SNOB", "SNOW", "SNUB",
440"SNUG", "SOAK", "SOAR", "SOCK", "SODA", "SOFA", "SOFT", "SOIL",
441"SOLD", "SOME", "SONG", "SOON", "SOOT", "SORE", "SORT", "SOUL",
442"SOUR", "SOWN", "STAB", "STAG", "STAN", "STAR", "STAY", "STEM",
443"STEW", "STIR", "STOW", "STUB", "STUN", "SUCH", "SUDS", "SUIT",
444"SULK", "SUMS", "SUNG", "SUNK", "SURE", "SURF", "SWAB", "SWAG",
445"SWAM", "SWAN", "SWAT", "SWAY", "SWIM", "SWUM", "TACK", "TACT",
446"TAIL", "TAKE", "TALE", "TALK", "TALL", "TANK", "TASK", "TATE",
447"TAUT", "TEAL", "TEAM", "TEAR", "TECH", "TEEM", "TEEN", "TEET",
448"TELL", "TEND", "TENT", "TERM", "TERN", "TESS", "TEST", "THAN",
449"THAT", "THEE", "THEM", "THEN", "THEY", "THIN", "THIS", "THUD",
450"THUG", "TICK", "TIDE", "TIDY", "TIED", "TIER", "TILE", "TILL",
451"TILT", "TIME", "TINA", "TINE", "TINT", "TINY", "TIRE", "TOAD",
452"TOGO", "TOIL", "TOLD", "TOLL", "TONE", "TONG", "TONY", "TOOK",
453"TOOL", "TOOT", "TORE", "TORN", "TOTE", "TOUR", "TOUT", "TOWN",
454"TRAG", "TRAM", "TRAY", "TREE", "TREK", "TRIG", "TRIM", "TRIO",
455"TROD", "TROT", "TROY", "TRUE", "TUBA", "TUBE", "TUCK", "TUFT",
456"TUNA", "TUNE", "TUNG", "TURF", "TURN", "TUSK", "TWIG", "TWIN",
457"TWIT", "ULAN", "UNIT", "URGE", "USED", "USER", "USES", "UTAH",
458"VAIL", "VAIN", "VALE", "VARY", "VASE", "VAST", "VEAL", "VEDA",
459"VEIL", "VEIN", "VEND", "VENT", "VERB", "VERY", "VETO", "VICE",
460"VIEW", "VINE", "VISE", "VOID", "VOLT", "VOTE", "WACK", "WADE",
461"WAGE", "WAIL", "WAIT", "WAKE", "WALE", "WALK", "WALL", "WALT",
462"WAND", "WANE", "WANG", "WANT", "WARD", "WARM", "WARN", "WART",
463"WASH", "WAST", "WATS", "WATT", "WAVE", "WAVY", "WAYS", "WEAK",
464"WEAL", "WEAN", "WEAR", "WEED", "WEEK", "WEIR", "WELD", "WELL",
465"WELT", "WENT", "WERE", "WERT", "WEST", "WHAM", "WHAT", "WHEE",
466"WHEN", "WHET", "WHOA", "WHOM", "WICK", "WIFE", "WILD", "WILL",
467"WIND", "WINE", "WING", "WINK", "WINO", "WIRE", "WISE", "WISH",
468"WITH", "WOLF", "WONT", "WOOD", "WOOL", "WORD", "WORE", "WORK",
469"WORM", "WORN", "WOVE", "WRIT", "WYNN", "YALE", "YANG", "YANK",
470"YARD", "YARN", "YAWL", "YAWN", "YEAH", "YEAR", "YELL", "YOGA",
471"YOKE" };
472
473const struct e inv_std_dict[2048] = {
474{"A", 0},
475{"ABE", 1},
476{"ABED", 571},
477{"ABEL", 572},
478{"ABET", 573},
479{"ABLE", 574},
480{"ABUT", 575},
481{"ACE", 2},
482{"ACHE", 576},
483{"ACID", 577},
484{"ACME", 578},
485{"ACRE", 579},
486{"ACT", 3},
487{"ACTA", 580},
488{"ACTS", 581},
489{"AD", 4},
490{"ADA", 5},
491{"ADAM", 582},
492{"ADD", 6},
493{"ADDS", 583},
494{"ADEN", 584},
495{"AFAR", 585},
496{"AFRO", 586},
497{"AGEE", 587},
498{"AGO", 7},
499{"AHEM", 588},
500{"AHOY", 589},
501{"AID", 8},
502{"AIDA", 590},
503{"AIDE", 591},
504{"AIDS", 592},
505{"AIM", 9},
506{"AIR", 10},
507{"AIRY", 593},
508{"AJAR", 594},
509{"AKIN", 595},
510{"ALAN", 596},
511{"ALEC", 597},
512{"ALGA", 598},
513{"ALIA", 599},
514{"ALL", 11},
515{"ALLY", 600},
516{"ALMA", 601},
517{"ALOE", 602},
518{"ALP", 12},
519{"ALSO", 603},
520{"ALTO", 604},
521{"ALUM", 605},
522{"ALVA", 606},
523{"AM", 13},
524{"AMEN", 607},
525{"AMES", 608},
526{"AMID", 609},
527{"AMMO", 610},
528{"AMOK", 611},
529{"AMOS", 612},
530{"AMRA", 613},
531{"AMY", 14},
532{"AN", 15},
533{"ANA", 16},
534{"AND", 17},
535{"ANDY", 614},
536{"ANEW", 615},
537{"ANN", 18},
538{"ANNA", 616},
539{"ANNE", 617},
540{"ANT", 19},
541{"ANTE", 618},
542{"ANTI", 619},
543{"ANY", 20},
544{"APE", 21},
545{"APS", 22},
546{"APT", 23},
547{"AQUA", 620},
548{"ARAB", 621},
549{"ARC", 24},
550{"ARCH", 622},
551{"ARE", 25},
552{"AREA", 623},
553{"ARGO", 624},
554{"ARID", 625},
555{"ARK", 26},
556{"ARM", 27},
557{"ARMY", 626},
558{"ART", 28},
559{"ARTS", 627},
560{"ARTY", 628},
561{"AS", 29},
562{"ASH", 30},
563{"ASIA", 629},
564{"ASK", 31},
565{"ASKS", 630},
566{"AT", 32},
567{"ATE", 33},
568{"ATOM", 631},
569{"AUG", 34},
570{"AUK", 35},
571{"AUNT", 632},
572{"AURA", 633},
573{"AUTO", 634},
574{"AVE", 36},
575{"AVER", 635},
576{"AVID", 636},
577{"AVIS", 637},
578{"AVON", 638},
579{"AVOW", 639},
580{"AWAY", 640},
581{"AWE", 37},
582{"AWK", 38},
583{"AWL", 39},
584{"AWN", 40},
585{"AWRY", 641},
586{"AX", 41},
587{"AYE", 42},
588{"BABE", 642},
589{"BABY", 643},
590{"BACH", 644},
591{"BACK", 645},
592{"BAD", 43},
593{"BADE", 646},
594{"BAG", 44},
595{"BAH", 45},
596{"BAIL", 647},
597{"BAIT", 648},
598{"BAKE", 649},
599{"BALD", 650},
600{"BALE", 651},
601{"BALI", 652},
602{"BALK", 653},
603{"BALL", 654},
604{"BALM", 655},
605{"BAM", 46},
606{"BAN", 47},
607{"BAND", 656},
608{"BANE", 657},
609{"BANG", 658},
610{"BANK", 659},
611{"BAR", 48},
612{"BARB", 660},
613{"BARD", 661},
614{"BARE", 662},
615{"BARK", 663},
616{"BARN", 664},
617{"BARR", 665},
618{"BASE", 666},
619{"BASH", 667},
620{"BASK", 668},
621{"BASS", 669},
622{"BAT", 49},
623{"BATE", 670},
624{"BATH", 671},
625{"BAWD", 672},
626{"BAWL", 673},
627{"BAY", 50},
628{"BE", 51},
629{"BEAD", 674},
630{"BEAK", 675},
631{"BEAM", 676},
632{"BEAN", 677},
633{"BEAR", 678},
634{"BEAT", 679},
635{"BEAU", 680},
636{"BECK", 681},
637{"BED", 52},
638{"BEE", 53},
639{"BEEF", 682},
640{"BEEN", 683},
641{"BEER", 684},
642{"BEET", 685},
643{"BEG", 54},
644{"BELA", 686},
645{"BELL", 687},
646{"BELT", 688},
647{"BEN", 55},
648{"BEND", 689},
649{"BENT", 690},
650{"BERG", 691},
651{"BERN", 692},
652{"BERT", 693},
653{"BESS", 694},
654{"BEST", 695},
655{"BET", 56},
656{"BETA", 696},
657{"BETH", 697},
658{"BEY", 57},
659{"BHOY", 698},
660{"BIAS", 699},
661{"BIB", 58},
662{"BID", 59},
663{"BIDE", 700},
664{"BIEN", 701},
665{"BIG", 60},
666{"BILE", 702},
667{"BILK", 703},
668{"BILL", 704},
669{"BIN", 61},
670{"BIND", 705},
671{"BING", 706},
672{"BIRD", 707},
673{"BIT", 62},
674{"BITE", 708},
675{"BITS", 709},
676{"BLAB", 710},
677{"BLAT", 711},
678{"BLED", 712},
679{"BLEW", 713},
680{"BLOB", 714},
681{"BLOC", 715},
682{"BLOT", 716},
683{"BLOW", 717},
684{"BLUE", 718},
685{"BLUM", 719},
686{"BLUR", 720},
687{"BOAR", 721},
688{"BOAT", 722},
689{"BOB", 63},
690{"BOCA", 723},
691{"BOCK", 724},
692{"BODE", 725},
693{"BODY", 726},
694{"BOG", 64},
695{"BOGY", 727},
696{"BOHR", 728},
697{"BOIL", 729},
698{"BOLD", 730},
699{"BOLO", 731},
700{"BOLT", 732},
701{"BOMB", 733},
702{"BON", 65},
703{"BONA", 734},
704{"BOND", 735},
705{"BONE", 736},
706{"BONG", 737},
707{"BONN", 738},
708{"BONY", 739},
709{"BOO", 66},
710{"BOOK", 740},
711{"BOOM", 741},
712{"BOON", 742},
713{"BOOT", 743},
714{"BOP", 67},
715{"BORE", 744},
716{"BORG", 745},
717{"BORN", 746},
718{"BOSE", 747},
719{"BOSS", 748},
720{"BOTH", 749},
721{"BOUT", 750},
722{"BOW", 68},
723{"BOWL", 751},
724{"BOY", 69},
725{"BOYD", 752},
726{"BRAD", 753},
727{"BRAE", 754},
728{"BRAG", 755},
729{"BRAN", 756},
730{"BRAY", 757},
731{"BRED", 758},
732{"BREW", 759},
733{"BRIG", 760},
734{"BRIM", 761},
735{"BROW", 762},
736{"BUB", 70},
737{"BUCK", 763},
738{"BUD", 71},
739{"BUDD", 764},
740{"BUFF", 765},
741{"BUG", 72},
742{"BULB", 766},
743{"BULK", 767},
744{"BULL", 768},
745{"BUM", 73},
746{"BUN", 74},
747{"BUNK", 769},
748{"BUNT", 770},
749{"BUOY", 771},
750{"BURG", 772},
751{"BURL", 773},
752{"BURN", 774},
753{"BURR", 775},
754{"BURT", 776},
755{"BURY", 777},
756{"BUS", 75},
757{"BUSH", 778},
758{"BUSS", 779},
759{"BUST", 780},
760{"BUSY", 781},
761{"BUT", 76},
762{"BUY", 77},
763{"BY", 78},
764{"BYE", 79},
765{"BYTE", 782},
766{"CAB", 80},
767{"CADY", 783},
768{"CAFE", 784},
769{"CAGE", 785},
770{"CAIN", 786},
771{"CAKE", 787},
772{"CAL", 81},
773{"CALF", 788},
774{"CALL", 789},
775{"CALM", 790},
776{"CAM", 82},
777{"CAME", 791},
778{"CAN", 83},
779{"CANE", 792},
780{"CANT", 793},
781{"CAP", 84},
782{"CAR", 85},
783{"CARD", 794},
784{"CARE", 795},
785{"CARL", 796},
786{"CARR", 797},
787{"CART", 798},
788{"CASE", 799},
789{"CASH", 800},
790{"CASK", 801},
791{"CAST", 802},
792{"CAT", 86},
793{"CAVE", 803},
794{"CAW", 87},
795{"CEIL", 804},
796{"CELL", 805},
797{"CENT", 806},
798{"CERN", 807},
799{"CHAD", 808},
800{"CHAR", 809},
801{"CHAT", 810},
802{"CHAW", 811},
803{"CHEF", 812},
804{"CHEN", 813},
805{"CHEW", 814},
806{"CHIC", 815},
807{"CHIN", 816},
808{"CHOU", 817},
809{"CHOW", 818},
810{"CHUB", 819},
811{"CHUG", 820},
812{"CHUM", 821},
813{"CITE", 822},
814{"CITY", 823},
815{"CLAD", 824},
816{"CLAM", 825},
817{"CLAN", 826},
818{"CLAW", 827},
819{"CLAY", 828},
820{"CLOD", 829},
821{"CLOG", 830},
822{"CLOT", 831},
823{"CLUB", 832},
824{"CLUE", 833},
825{"COAL", 834},
826{"COAT", 835},
827{"COCA", 836},
828{"COCK", 837},
829{"COCO", 838},
830{"COD", 88},
831{"CODA", 839},
832{"CODE", 840},
833{"CODY", 841},
834{"COED", 842},
835{"COG", 89},
836{"COIL", 843},
837{"COIN", 844},
838{"COKE", 845},
839{"COL", 90},
840{"COLA", 846},
841{"COLD", 847},
842{"COLT", 848},
843{"COMA", 849},
844{"COMB", 850},
845{"COME", 851},
846{"CON", 91},
847{"COO", 92},
848{"COOK", 852},
849{"COOL", 853},
850{"COON", 854},
851{"COOT", 855},
852{"COP", 93},
853{"CORD", 856},
854{"CORE", 857},
855{"CORK", 858},
856{"CORN", 859},
857{"COST", 860},
858{"COT", 94},
859{"COVE", 861},
860{"COW", 95},
861{"COWL", 862},
862{"COY", 96},
863{"CRAB", 863},
864{"CRAG", 864},
865{"CRAM", 865},
866{"CRAY", 866},
867{"CREW", 867},
868{"CRIB", 868},
869{"CROW", 869},
870{"CRUD", 870},
871{"CRY", 97},
872{"CUB", 98},
873{"CUBA", 871},
874{"CUBE", 872},
875{"CUE", 99},
876{"CUFF", 873},
877{"CULL", 874},
878{"CULT", 875},
879{"CUNY", 876},
880{"CUP", 100},
881{"CUR", 101},
882{"CURB", 877},
883{"CURD", 878},
884{"CURE", 879},
885{"CURL", 880},
886{"CURT", 881},
887{"CUT", 102},
888{"CUTS", 882},
889{"DAB", 103},
890{"DAD", 104},
891{"DADE", 883},
892{"DALE", 884},
893{"DAM", 105},
894{"DAME", 885},
895{"DAN", 106},
896{"DANA", 886},
897{"DANE", 887},
898{"DANG", 888},
899{"DANK", 889},
900{"DAR", 107},
901{"DARE", 890},
902{"DARK", 891},
903{"DARN", 892},
904{"DART", 893},
905{"DASH", 894},
906{"DATA", 895},
907{"DATE", 896},
908{"DAVE", 897},
909{"DAVY", 898},
910{"DAWN", 899},
911{"DAY", 108},
912{"DAYS", 900},
913{"DEAD", 901},
914{"DEAF", 902},
915{"DEAL", 903},
916{"DEAN", 904},
917{"DEAR", 905},
918{"DEBT", 906},
919{"DECK", 907},
920{"DEE", 109},
921{"DEED", 908},
922{"DEEM", 909},
923{"DEER", 910},
924{"DEFT", 911},
925{"DEFY", 912},
926{"DEL", 110},
927{"DELL", 913},
928{"DEN", 111},
929{"DENT", 914},
930{"DENY", 915},
931{"DES", 112},
932{"DESK", 916},
933{"DEW", 113},
934{"DIAL", 917},
935{"DICE", 918},
936{"DID", 114},
937{"DIE", 115},
938{"DIED", 919},
939{"DIET", 920},
940{"DIG", 116},
941{"DIME", 921},
942{"DIN", 117},
943{"DINE", 922},
944{"DING", 923},
945{"DINT", 924},
946{"DIP", 118},
947{"DIRE", 925},
948{"DIRT", 926},
949{"DISC", 927},
950{"DISH", 928},
951{"DISK", 929},
952{"DIVE", 930},
953{"DO", 119},
954{"DOCK", 931},
955{"DOE", 120},
956{"DOES", 932},
957{"DOG", 121},
958{"DOLE", 933},
959{"DOLL", 934},
960{"DOLT", 935},
961{"DOME", 936},
962{"DON", 122},
963{"DONE", 937},
964{"DOOM", 938},
965{"DOOR", 939},
966{"DORA", 940},
967{"DOSE", 941},
968{"DOT", 123},
969{"DOTE", 942},
970{"DOUG", 943},
971{"DOUR", 944},
972{"DOVE", 945},
973{"DOW", 124},
974{"DOWN", 946},
975{"DRAB", 947},
976{"DRAG", 948},
977{"DRAM", 949},
978{"DRAW", 950},
979{"DREW", 951},
980{"DRUB", 952},
981{"DRUG", 953},
982{"DRUM", 954},
983{"DRY", 125},
984{"DUAL", 955},
985{"DUB", 126},
986{"DUCK", 956},
987{"DUCT", 957},
988{"DUD", 127},
989{"DUE", 128},
990{"DUEL", 958},
991{"DUET", 959},
992{"DUG", 129},
993{"DUKE", 960},
994{"DULL", 961},
995{"DUMB", 962},
996{"DUN", 130},
997{"DUNE", 963},
998{"DUNK", 964},
999{"DUSK", 965},
1000{"DUST", 966},
1001{"DUTY", 967},
1002{"EACH", 968},
1003{"EAR", 131},
1004{"EARL", 969},
1005{"EARN", 970},
1006{"EASE", 971},
1007{"EAST", 972},
1008{"EASY", 973},
1009{"EAT", 132},
1010{"EBEN", 974},
1011{"ECHO", 975},
1012{"ED", 133},
1013{"EDDY", 976},
1014{"EDEN", 977},
1015{"EDGE", 978},
1016{"EDGY", 979},
1017{"EDIT", 980},
1018{"EDNA", 981},
1019{"EEL", 134},
1020{"EGAN", 982},
1021{"EGG", 135},
1022{"EGO", 136},
1023{"ELAN", 983},
1024{"ELBA", 984},
1025{"ELI", 137},
1026{"ELK", 138},
1027{"ELLA", 985},
1028{"ELM", 139},
1029{"ELSE", 986},
1030{"ELY", 140},
1031{"EM", 141},
1032{"EMIL", 987},
1033{"EMIT", 988},
1034{"EMMA", 989},
1035{"END", 142},
1036{"ENDS", 990},
1037{"ERIC", 991},
1038{"EROS", 992},
1039{"EST", 143},
1040{"ETC", 144},
1041{"EVA", 145},
1042{"EVE", 146},
1043{"EVEN", 993},
1044{"EVER", 994},
1045{"EVIL", 995},
1046{"EWE", 147},
1047{"EYE", 148},
1048{"EYED", 996},
1049{"FACE", 997},
1050{"FACT", 998},
1051{"FAD", 149},
1052{"FADE", 999},
1053{"FAIL", 1000},
1054{"FAIN", 1001},
1055{"FAIR", 1002},
1056{"FAKE", 1003},
1057{"FALL", 1004},
1058{"FAME", 1005},
1059{"FAN", 150},
1060{"FANG", 1006},
1061{"FAR", 151},
1062{"FARM", 1007},
1063{"FAST", 1008},
1064{"FAT", 152},
1065{"FATE", 1009},
1066{"FAWN", 1010},
1067{"FAY", 153},
1068{"FEAR", 1011},
1069{"FEAT", 1012},
1070{"FED", 154},
1071{"FEE", 155},
1072{"FEED", 1013},
1073{"FEEL", 1014},
1074{"FEET", 1015},
1075{"FELL", 1016},
1076{"FELT", 1017},
1077{"FEND", 1018},
1078{"FERN", 1019},
1079{"FEST", 1020},
1080{"FEUD", 1021},
1081{"FEW", 156},
1082{"FIB", 157},
1083{"FIEF", 1022},
1084{"FIG", 158},
1085{"FIGS", 1023},
1086{"FILE", 1024},
1087{"FILL", 1025},
1088{"FILM", 1026},
1089{"FIN", 159},
1090{"FIND", 1027},
1091{"FINE", 1028},
1092{"FINK", 1029},
1093{"FIR", 160},
1094{"FIRE", 1030},
1095{"FIRM", 1031},
1096{"FISH", 1032},
1097{"FISK", 1033},
1098{"FIST", 1034},
1099{"FIT", 161},
1100{"FITS", 1035},
1101{"FIVE", 1036},
1102{"FLAG", 1037},
1103{"FLAK", 1038},
1104{"FLAM", 1039},
1105{"FLAT", 1040},
1106{"FLAW", 1041},
1107{"FLEA", 1042},
1108{"FLED", 1043},
1109{"FLEW", 1044},
1110{"FLIT", 1045},
1111{"FLO", 162},
1112{"FLOC", 1046},
1113{"FLOG", 1047},
1114{"FLOW", 1048},
1115{"FLUB", 1049},
1116{"FLUE", 1050},
1117{"FLY", 163},
1118{"FOAL", 1051},
1119{"FOAM", 1052},
1120{"FOE", 164},
1121{"FOG", 165},
1122{"FOGY", 1053},
1123{"FOIL", 1054},
1124{"FOLD", 1055},
1125{"FOLK", 1056},
1126{"FOND", 1057},
1127{"FONT", 1058},
1128{"FOOD", 1059},
1129{"FOOL", 1060},
1130{"FOOT", 1061},
1131{"FOR", 166},
1132{"FORD", 1062},
1133{"FORE", 1063},
1134{"FORK", 1064},
1135{"FORM", 1065},
1136{"FORT", 1066},
1137{"FOSS", 1067},
1138{"FOUL", 1068},
1139{"FOUR", 1069},
1140{"FOWL", 1070},
1141{"FRAU", 1071},
1142{"FRAY", 1072},
1143{"FRED", 1073},
1144{"FREE", 1074},
1145{"FRET", 1075},
1146{"FREY", 1076},
1147{"FROG", 1077},
1148{"FROM", 1078},
1149{"FRY", 167},
1150{"FUEL", 1079},
1151{"FULL", 1080},
1152{"FUM", 168},
1153{"FUME", 1081},
1154{"FUN", 169},
1155{"FUND", 1082},
1156{"FUNK", 1083},
1157{"FUR", 170},
1158{"FURY", 1084},
1159{"FUSE", 1085},
1160{"FUSS", 1086},
1161{"GAB", 171},
1162{"GAD", 172},
1163{"GAFF", 1087},
1164{"GAG", 173},
1165{"GAGE", 1088},
1166{"GAIL", 1089},
1167{"GAIN", 1090},
1168{"GAIT", 1091},
1169{"GAL", 174},
1170{"GALA", 1092},
1171{"GALE", 1093},
1172{"GALL", 1094},
1173{"GALT", 1095},
1174{"GAM", 175},
1175{"GAME", 1096},
1176{"GANG", 1097},
1177{"GAP", 176},
1178{"GARB", 1098},
1179{"GARY", 1099},
1180{"GAS", 177},
1181{"GASH", 1100},
1182{"GATE", 1101},
1183{"GAUL", 1102},
1184{"GAUR", 1103},
1185{"GAVE", 1104},
1186{"GAWK", 1105},
1187{"GAY", 178},
1188{"GEAR", 1106},
1189{"GEE", 179},
1190{"GEL", 180},
1191{"GELD", 1107},
1192{"GEM", 181},
1193{"GENE", 1108},
1194{"GENT", 1109},
1195{"GERM", 1110},
1196{"GET", 182},
1197{"GETS", 1111},
1198{"GIBE", 1112},
1199{"GIFT", 1113},
1200{"GIG", 183},
1201{"GIL", 184},
1202{"GILD", 1114},
1203{"GILL", 1115},
1204{"GILT", 1116},
1205{"GIN", 185},
1206{"GINA", 1117},
1207{"GIRD", 1118},
1208{"GIRL", 1119},
1209{"GIST", 1120},
1210{"GIVE", 1121},
1211{"GLAD", 1122},
1212{"GLEE", 1123},
1213{"GLEN", 1124},
1214{"GLIB", 1125},
1215{"GLOB", 1126},
1216{"GLOM", 1127},
1217{"GLOW", 1128},
1218{"GLUE", 1129},
1219{"GLUM", 1130},
1220{"GLUT", 1131},
1221{"GO", 186},
1222{"GOAD", 1132},
1223{"GOAL", 1133},
1224{"GOAT", 1134},
1225{"GOER", 1135},
1226{"GOES", 1136},
1227{"GOLD", 1137},
1228{"GOLF", 1138},
1229{"GONE", 1139},
1230{"GONG", 1140},
1231{"GOOD", 1141},
1232{"GOOF", 1142},
1233{"GORE", 1143},
1234{"GORY", 1144},
1235{"GOSH", 1145},
1236{"GOT", 187},
1237{"GOUT", 1146},
1238{"GOWN", 1147},
1239{"GRAB", 1148},
1240{"GRAD", 1149},
1241{"GRAY", 1150},
1242{"GREG", 1151},
1243{"GREW", 1152},
1244{"GREY", 1153},
1245{"GRID", 1154},
1246{"GRIM", 1155},
1247{"GRIN", 1156},
1248{"GRIT", 1157},
1249{"GROW", 1158},
1250{"GRUB", 1159},
1251{"GULF", 1160},
1252{"GULL", 1161},
1253{"GUM", 188},
1254{"GUN", 189},
1255{"GUNK", 1162},
1256{"GURU", 1163},
1257{"GUS", 190},
1258{"GUSH", 1164},
1259{"GUST", 1165},
1260{"GUT", 191},
1261{"GUY", 192},
1262{"GWEN", 1166},
1263{"GWYN", 1167},
1264{"GYM", 193},
1265{"GYP", 194},
1266{"HA", 195},
1267{"HAAG", 1168},
1268{"HAAS", 1169},
1269{"HACK", 1170},
1270{"HAD", 196},
1271{"HAIL", 1171},
1272{"HAIR", 1172},
1273{"HAL", 197},
1274{"HALE", 1173},
1275{"HALF", 1174},
1276{"HALL", 1175},
1277{"HALO", 1176},
1278{"HALT", 1177},
1279{"HAM", 198},
1280{"HAN", 199},
1281{"HAND", 1178},
1282{"HANG", 1179},
1283{"HANK", 1180},
1284{"HANS", 1181},
1285{"HAP", 200},
1286{"HARD", 1182},
1287{"HARK", 1183},
1288{"HARM", 1184},
1289{"HART", 1185},
1290{"HAS", 201},
1291{"HASH", 1186},
1292{"HAST", 1187},
1293{"HAT", 202},
1294{"HATE", 1188},
1295{"HATH", 1189},
1296{"HAUL", 1190},
1297{"HAVE", 1191},
1298{"HAW", 203},
1299{"HAWK", 1192},
1300{"HAY", 204},
1301{"HAYS", 1193},
1302{"HE", 205},
1303{"HEAD", 1194},
1304{"HEAL", 1195},
1305{"HEAR", 1196},
1306{"HEAT", 1197},
1307{"HEBE", 1198},
1308{"HECK", 1199},
1309{"HEED", 1200},
1310{"HEEL", 1201},
1311{"HEFT", 1202},
1312{"HELD", 1203},
1313{"HELL", 1204},
1314{"HELM", 1205},
1315{"HEM", 206},
1316{"HEN", 207},
1317{"HER", 208},
1318{"HERB", 1206},
1319{"HERD", 1207},
1320{"HERE", 1208},
1321{"HERO", 1209},
1322{"HERS", 1210},
1323{"HESS", 1211},
1324{"HEW", 209},
1325{"HEWN", 1212},
1326{"HEY", 210},
1327{"HI", 211},
1328{"HICK", 1213},
1329{"HID", 212},
1330{"HIDE", 1214},
1331{"HIGH", 1215},
1332{"HIKE", 1216},
1333{"HILL", 1217},
1334{"HILT", 1218},
1335{"HIM", 213},
1336{"HIND", 1219},
1337{"HINT", 1220},
1338{"HIP", 214},
1339{"HIRE", 1221},
1340{"HIS", 215},
1341{"HISS", 1222},
1342{"HIT", 216},
1343{"HIVE", 1223},
1344{"HO", 217},
1345{"HOB", 218},
1346{"HOBO", 1224},
1347{"HOC", 219},
1348{"HOCK", 1225},
1349{"HOE", 220},
1350{"HOFF", 1226},
1351{"HOG", 221},
1352{"HOLD", 1227},
1353{"HOLE", 1228},
1354{"HOLM", 1229},
1355{"HOLT", 1230},
1356{"HOME", 1231},
1357{"HONE", 1232},
1358{"HONK", 1233},
1359{"HOOD", 1234},
1360{"HOOF", 1235},
1361{"HOOK", 1236},
1362{"HOOT", 1237},
1363{"HOP", 222},
1364{"HORN", 1238},
1365{"HOSE", 1239},
1366{"HOST", 1240},
1367{"HOT", 223},
1368{"HOUR", 1241},
1369{"HOVE", 1242},
1370{"HOW", 224},
1371{"HOWE", 1243},
1372{"HOWL", 1244},
1373{"HOYT", 1245},
1374{"HUB", 225},
1375{"HUCK", 1246},
1376{"HUE", 226},
1377{"HUED", 1247},
1378{"HUFF", 1248},
1379{"HUG", 227},
1380{"HUGE", 1249},
1381{"HUGH", 1250},
1382{"HUGO", 1251},
1383{"HUH", 228},
1384{"HULK", 1252},
1385{"HULL", 1253},
1386{"HUM", 229},
1387{"HUNK", 1254},
1388{"HUNT", 1255},
1389{"HURD", 1256},
1390{"HURL", 1257},
1391{"HURT", 1258},
1392{"HUSH", 1259},
1393{"HUT", 230},
1394{"HYDE", 1260},
1395{"HYMN", 1261},
1396{"I", 231},
1397{"IBIS", 1262},
1398{"ICON", 1263},
1399{"ICY", 232},
1400{"IDA", 233},
1401{"IDEA", 1264},
1402{"IDLE", 1265},
1403{"IF", 234},
1404{"IFFY", 1266},
1405{"IKE", 235},
1406{"ILL", 236},
1407{"INCA", 1267},
1408{"INCH", 1268},
1409{"INK", 237},
1410{"INN", 238},
1411{"INTO", 1269},
1412{"IO", 239},
1413{"ION", 240},
1414{"IONS", 1270},
1415{"IOTA", 1271},
1416{"IOWA", 1272},
1417{"IQ", 241},
1418{"IRA", 242},
1419{"IRE", 243},
1420{"IRIS", 1273},
1421{"IRK", 244},
1422{"IRMA", 1274},
1423{"IRON", 1275},
1424{"IS", 245},
1425{"ISLE", 1276},
1426{"IT", 246},
1427{"ITCH", 1277},
1428{"ITEM", 1278},
1429{"ITS", 247},
1430{"IVAN", 1279},
1431{"IVY", 248},
1432{"JAB", 249},
1433{"JACK", 1280},
1434{"JADE", 1281},
1435{"JAG", 250},
1436{"JAIL", 1282},
1437{"JAKE", 1283},
1438{"JAM", 251},
1439{"JAN", 252},
1440{"JANE", 1284},
1441{"JAR", 253},
1442{"JAVA", 1285},
1443{"JAW", 254},
1444{"JAY", 255},
1445{"JEAN", 1286},
1446{"JEFF", 1287},
1447{"JERK", 1288},
1448{"JESS", 1289},
1449{"JEST", 1290},
1450{"JET", 256},
1451{"JIBE", 1291},
1452{"JIG", 257},
1453{"JILL", 1292},
1454{"JILT", 1293},
1455{"JIM", 258},
1456{"JIVE", 1294},
1457{"JO", 259},
1458{"JOAN", 1295},
1459{"JOB", 260},
1460{"JOBS", 1296},
1461{"JOCK", 1297},
1462{"JOE", 261},
1463{"JOEL", 1298},
1464{"JOEY", 1299},
1465{"JOG", 262},
1466{"JOHN", 1300},
1467{"JOIN", 1301},
1468{"JOKE", 1302},
1469{"JOLT", 1303},
1470{"JOT", 263},
1471{"JOVE", 1304},
1472{"JOY", 264},
1473{"JUDD", 1305},
1474{"JUDE", 1306},
1475{"JUDO", 1307},
1476{"JUDY", 1308},
1477{"JUG", 265},
1478{"JUJU", 1309},
1479{"JUKE", 1310},
1480{"JULY", 1311},
1481{"JUNE", 1312},
1482{"JUNK", 1313},
1483{"JUNO", 1314},
1484{"JURY", 1315},
1485{"JUST", 1316},
1486{"JUT", 266},
1487{"JUTE", 1317},
1488{"KAHN", 1318},
1489{"KALE", 1319},
1490{"KANE", 1320},
1491{"KANT", 1321},
1492{"KARL", 1322},
1493{"KATE", 1323},
1494{"KAY", 267},
1495{"KEEL", 1324},
1496{"KEEN", 1325},
1497{"KEG", 268},
1498{"KEN", 269},
1499{"KENO", 1326},
1500{"KENT", 1327},
1501{"KERN", 1328},
1502{"KERR", 1329},
1503{"KEY", 270},
1504{"KEYS", 1330},
1505{"KICK", 1331},
1506{"KID", 271},
1507{"KILL", 1332},
1508{"KIM", 272},
1509{"KIN", 273},
1510{"KIND", 1333},
1511{"KING", 1334},
1512{"KIRK", 1335},
1513{"KISS", 1336},
1514{"KIT", 274},
1515{"KITE", 1337},
1516{"KLAN", 1338},
1517{"KNEE", 1339},
1518{"KNEW", 1340},
1519{"KNIT", 1341},
1520{"KNOB", 1342},
1521{"KNOT", 1343},
1522{"KNOW", 1344},
1523{"KOCH", 1345},
1524{"KONG", 1346},
1525{"KUDO", 1347},
1526{"KURD", 1348},
1527{"KURT", 1349},
1528{"KYLE", 1350},
1529{"LA", 275},
1530{"LAB", 276},
1531{"LAC", 277},
1532{"LACE", 1351},
1533{"LACK", 1352},
1534{"LACY", 1353},
1535{"LAD", 278},
1536{"LADY", 1354},
1537{"LAG", 279},
1538{"LAID", 1355},
1539{"LAIN", 1356},
1540{"LAIR", 1357},
1541{"LAKE", 1358},
1542{"LAM", 280},
1543{"LAMB", 1359},
1544{"LAME", 1360},
1545{"LAND", 1361},
1546{"LANE", 1362},
1547{"LANG", 1363},
1548{"LAP", 281},
1549{"LARD", 1364},
1550{"LARK", 1365},
1551{"LASS", 1366},
1552{"LAST", 1367},
1553{"LATE", 1368},
1554{"LAUD", 1369},
1555{"LAVA", 1370},
1556{"LAW", 282},
1557{"LAWN", 1371},
1558{"LAWS", 1372},
1559{"LAY", 283},
1560{"LAYS", 1373},
1561{"LEA", 284},
1562{"LEAD", 1374},
1563{"LEAF", 1375},
1564{"LEAK", 1376},
1565{"LEAN", 1377},
1566{"LEAR", 1378},
1567{"LED", 285},
1568{"LEE", 286},
1569{"LEEK", 1379},
1570{"LEER", 1380},
1571{"LEFT", 1381},
1572{"LEG", 287},
1573{"LEN", 288},
1574{"LEND", 1382},
1575{"LENS", 1383},
1576{"LENT", 1384},
1577{"LEO", 289},
1578{"LEON", 1385},
1579{"LESK", 1386},
1580{"LESS", 1387},
1581{"LEST", 1388},
1582{"LET", 290},
1583{"LETS", 1389},
1584{"LEW", 291},
1585{"LIAR", 1390},
1586{"LICE", 1391},
1587{"LICK", 1392},
1588{"LID", 292},
1589{"LIE", 293},
1590{"LIED", 1393},
1591{"LIEN", 1394},
1592{"LIES", 1395},
1593{"LIEU", 1396},
1594{"LIFE", 1397},
1595{"LIFT", 1398},
1596{"LIKE", 1399},
1597{"LILA", 1400},
1598{"LILT", 1401},
1599{"LILY", 1402},
1600{"LIMA", 1403},
1601{"LIMB", 1404},
1602{"LIME", 1405},
1603{"LIN", 294},
1604{"LIND", 1406},
1605{"LINE", 1407},
1606{"LINK", 1408},
1607{"LINT", 1409},
1608{"LION", 1410},
1609{"LIP", 295},
1610{"LISA", 1411},
1611{"LIST", 1412},
1612{"LIT", 296},
1613{"LIVE", 1413},
1614{"LO", 297},
1615{"LOAD", 1414},
1616{"LOAF", 1415},
1617{"LOAM", 1416},
1618{"LOAN", 1417},
1619{"LOB", 298},
1620{"LOCK", 1418},
1621{"LOFT", 1419},
1622{"LOG", 299},
1623{"LOGE", 1420},
1624{"LOIS", 1421},
1625{"LOLA", 1422},
1626{"LONE", 1423},
1627{"LONG", 1424},
1628{"LOOK", 1425},
1629{"LOON", 1426},
1630{"LOOT", 1427},
1631{"LOP", 300},
1632{"LORD", 1428},
1633{"LORE", 1429},
1634{"LOS", 301},
1635{"LOSE", 1430},
1636{"LOSS", 1431},
1637{"LOST", 1432},
1638{"LOT", 302},
1639{"LOU", 303},
1640{"LOUD", 1433},
1641{"LOVE", 1434},
1642{"LOW", 304},
1643{"LOWE", 1435},
1644{"LOY", 305},
1645{"LUCK", 1436},
1646{"LUCY", 1437},
1647{"LUG", 306},
1648{"LUGE", 1438},
1649{"LUKE", 1439},
1650{"LULU", 1440},
1651{"LUND", 1441},
1652{"LUNG", 1442},
1653{"LURA", 1443},
1654{"LURE", 1444},
1655{"LURK", 1445},
1656{"LUSH", 1446},
1657{"LUST", 1447},
1658{"LYE", 307},
1659{"LYLE", 1448},
1660{"LYNN", 1449},
1661{"LYON", 1450},
1662{"LYRA", 1451},
1663{"MA", 308},
1664{"MAC", 309},
1665{"MACE", 1452},
1666{"MAD", 310},
1667{"MADE", 1453},
1668{"MAE", 311},
1669{"MAGI", 1454},
1670{"MAID", 1455},
1671{"MAIL", 1456},
1672{"MAIN", 1457},
1673{"MAKE", 1458},
1674{"MALE", 1459},
1675{"MALI", 1460},
1676{"MALL", 1461},
1677{"MALT", 1462},
1678{"MAN", 312},
1679{"MANA", 1463},
1680{"MANN", 1464},
1681{"MANY", 1465},
1682{"MAO", 313},
1683{"MAP", 314},
1684{"MARC", 1466},
1685{"MARE", 1467},
1686{"MARK", 1468},
1687{"MARS", 1469},
1688{"MART", 1470},
1689{"MARY", 1471},
1690{"MASH", 1472},
1691{"MASK", 1473},
1692{"MASS", 1474},
1693{"MAST", 1475},
1694{"MAT", 315},
1695{"MATE", 1476},
1696{"MATH", 1477},
1697{"MAUL", 1478},
1698{"MAW", 316},
1699{"MAY", 317},
1700{"MAYO", 1479},
1701{"ME", 318},
1702{"MEAD", 1480},
1703{"MEAL", 1481},
1704{"MEAN", 1482},
1705{"MEAT", 1483},
1706{"MEEK", 1484},
1707{"MEET", 1485},
1708{"MEG", 319},
1709{"MEL", 320},
1710{"MELD", 1486},
1711{"MELT", 1487},
1712{"MEMO", 1488},
1713{"MEN", 321},
1714{"MEND", 1489},
1715{"MENU", 1490},
1716{"MERT", 1491},
1717{"MESH", 1492},
1718{"MESS", 1493},
1719{"MET", 322},
1720{"MEW", 323},
1721{"MICE", 1494},
1722{"MID", 324},
1723{"MIKE", 1495},
1724{"MILD", 1496},
1725{"MILE", 1497},
1726{"MILK", 1498},
1727{"MILL", 1499},
1728{"MILT", 1500},
1729{"MIMI", 1501},
1730{"MIN", 325},
1731{"MIND", 1502},
1732{"MINE", 1503},
1733{"MINI", 1504},
1734{"MINK", 1505},
1735{"MINT", 1506},
1736{"MIRE", 1507},
1737{"MISS", 1508},
1738{"MIST", 1509},
1739{"MIT", 326},
1740{"MITE", 1510},
1741{"MITT", 1511},
1742{"MOAN", 1512},
1743{"MOAT", 1513},
1744{"MOB", 327},
1745{"MOCK", 1514},
1746{"MOD", 328},
1747{"MODE", 1515},
1748{"MOE", 329},
1749{"MOLD", 1516},
1750{"MOLE", 1517},
1751{"MOLL", 1518},
1752{"MOLT", 1519},
1753{"MONA", 1520},
1754{"MONK", 1521},
1755{"MONT", 1522},
1756{"MOO", 330},
1757{"MOOD", 1523},
1758{"MOON", 1524},
1759{"MOOR", 1525},
1760{"MOOT", 1526},
1761{"MOP", 331},
1762{"MORE", 1527},
1763{"MORN", 1528},
1764{"MORT", 1529},
1765{"MOS", 332},
1766{"MOSS", 1530},
1767{"MOST", 1531},
1768{"MOT", 333},
1769{"MOTH", 1532},
1770{"MOVE", 1533},
1771{"MOW", 334},
1772{"MUCH", 1534},
1773{"MUCK", 1535},
1774{"MUD", 335},
1775{"MUDD", 1536},
1776{"MUFF", 1537},
1777{"MUG", 336},
1778{"MULE", 1538},
1779{"MULL", 1539},
1780{"MUM", 337},
1781{"MURK", 1540},
1782{"MUSH", 1541},
1783{"MUST", 1542},
1784{"MUTE", 1543},
1785{"MUTT", 1544},
1786{"MY", 338},
1787{"MYRA", 1545},
1788{"MYTH", 1546},
1789{"NAB", 339},
1790{"NAG", 340},
1791{"NAGY", 1547},
1792{"NAIL", 1548},
1793{"NAIR", 1549},
1794{"NAME", 1550},
1795{"NAN", 341},
1796{"NAP", 342},
1797{"NARY", 1551},
1798{"NASH", 1552},
1799{"NAT", 343},
1800{"NAVE", 1553},
1801{"NAVY", 1554},
1802{"NAY", 344},
1803{"NE", 345},
1804{"NEAL", 1555},
1805{"NEAR", 1556},
1806{"NEAT", 1557},
1807{"NECK", 1558},
1808{"NED", 346},
1809{"NEE", 347},
1810{"NEED", 1559},
1811{"NEIL", 1560},
1812{"NELL", 1561},
1813{"NEON", 1562},
1814{"NERO", 1563},
1815{"NESS", 1564},
1816{"NEST", 1565},
1817{"NET", 348},
1818{"NEW", 349},
1819{"NEWS", 1566},
1820{"NEWT", 1567},
1821{"NIB", 350},
1822{"NIBS", 1568},
1823{"NICE", 1569},
1824{"NICK", 1570},
1825{"NIL", 351},
1826{"NILE", 1571},
1827{"NINA", 1572},
1828{"NINE", 1573},
1829{"NIP", 352},
1830{"NIT", 353},
1831{"NO", 354},
1832{"NOAH", 1574},
1833{"NOB", 355},
1834{"NOD", 356},
1835{"NODE", 1575},
1836{"NOEL", 1576},
1837{"NOLL", 1577},
1838{"NON", 357},
1839{"NONE", 1578},
1840{"NOOK", 1579},
1841{"NOON", 1580},
1842{"NOR", 358},
1843{"NORM", 1581},
1844{"NOSE", 1582},
1845{"NOT", 359},
1846{"NOTE", 1583},
1847{"NOUN", 1584},
1848{"NOV", 360},
1849{"NOVA", 1585},
1850{"NOW", 361},
1851{"NU", 362},
1852{"NUDE", 1586},
1853{"NULL", 1587},
1854{"NUMB", 1588},
1855{"NUN", 363},
1856{"NUT", 364},
1857{"O", 365},
1858{"OAF", 366},
1859{"OAK", 367},
1860{"OAR", 368},
1861{"OAT", 369},
1862{"OATH", 1589},
1863{"OBEY", 1590},
1864{"OBOE", 1591},
1865{"ODD", 370},
1866{"ODE", 371},
1867{"ODIN", 1592},
1868{"OF", 372},
1869{"OFF", 373},
1870{"OFT", 374},
1871{"OH", 375},
1872{"OHIO", 1593},
1873{"OIL", 376},
1874{"OILY", 1594},
1875{"OINT", 1595},
1876{"OK", 377},
1877{"OKAY", 1596},
1878{"OLAF", 1597},
1879{"OLD", 378},
1880{"OLDY", 1598},
1881{"OLGA", 1599},
1882{"OLIN", 1600},
1883{"OMAN", 1601},
1884{"OMEN", 1602},
1885{"OMIT", 1603},
1886{"ON", 379},
1887{"ONCE", 1604},
1888{"ONE", 380},
1889{"ONES", 1605},
1890{"ONLY", 1606},
1891{"ONTO", 1607},
1892{"ONUS", 1608},
1893{"OR", 381},
1894{"ORAL", 1609},
1895{"ORB", 382},
1896{"ORE", 383},
1897{"ORGY", 1610},
1898{"ORR", 384},
1899{"OS", 385},
1900{"OSLO", 1611},
1901{"OTIS", 1612},
1902{"OTT", 386},
1903{"OTTO", 1613},
1904{"OUCH", 1614},
1905{"OUR", 387},
1906{"OUST", 1615},
1907{"OUT", 388},
1908{"OUTS", 1616},
1909{"OVA", 389},
1910{"OVAL", 1617},
1911{"OVEN", 1618},
1912{"OVER", 1619},
1913{"OW", 390},
1914{"OWE", 391},
1915{"OWL", 392},
1916{"OWLY", 1620},
1917{"OWN", 393},
1918{"OWNS", 1621},
1919{"OX", 394},
1920{"PA", 395},
1921{"PAD", 396},
1922{"PAL", 397},
1923{"PAM", 398},
1924{"PAN", 399},
1925{"PAP", 400},
1926{"PAR", 401},
1927{"PAT", 402},
1928{"PAW", 403},
1929{"PAY", 404},
1930{"PEA", 405},
1931{"PEG", 406},
1932{"PEN", 407},
1933{"PEP", 408},
1934{"PER", 409},
1935{"PET", 410},
1936{"PEW", 411},
1937{"PHI", 412},
1938{"PI", 413},
1939{"PIE", 414},
1940{"PIN", 415},
1941{"PIT", 416},
1942{"PLY", 417},
1943{"PO", 418},
1944{"POD", 419},
1945{"POE", 420},
1946{"POP", 421},
1947{"POT", 422},
1948{"POW", 423},
1949{"PRO", 424},
1950{"PRY", 425},
1951{"PUB", 426},
1952{"PUG", 427},
1953{"PUN", 428},
1954{"PUP", 429},
1955{"PUT", 430},
1956{"QUAD", 1622},
1957{"QUIT", 1623},
1958{"QUO", 431},
1959{"QUOD", 1624},
1960{"RACE", 1625},
1961{"RACK", 1626},
1962{"RACY", 1627},
1963{"RAFT", 1628},
1964{"RAG", 432},
1965{"RAGE", 1629},
1966{"RAID", 1630},
1967{"RAIL", 1631},
1968{"RAIN", 1632},
1969{"RAKE", 1633},
1970{"RAM", 433},
1971{"RAN", 434},
1972{"RANK", 1634},
1973{"RANT", 1635},
1974{"RAP", 435},
1975{"RARE", 1636},
1976{"RASH", 1637},
1977{"RAT", 436},
1978{"RATE", 1638},
1979{"RAVE", 1639},
1980{"RAW", 437},
1981{"RAY", 438},
1982{"RAYS", 1640},
1983{"READ", 1641},
1984{"REAL", 1642},
1985{"REAM", 1643},
1986{"REAR", 1644},
1987{"REB", 439},
1988{"RECK", 1645},
1989{"RED", 440},
1990{"REED", 1646},
1991{"REEF", 1647},
1992{"REEK", 1648},
1993{"REEL", 1649},
1994{"REID", 1650},
1995{"REIN", 1651},
1996{"RENA", 1652},
1997{"REND", 1653},
1998{"RENT", 1654},
1999{"REP", 441},
2000{"REST", 1655},
2001{"RET", 442},
2002{"RIB", 443},
2003{"RICE", 1656},
2004{"RICH", 1657},
2005{"RICK", 1658},
2006{"RID", 444},
2007{"RIDE", 1659},
2008{"RIFT", 1660},
2009{"RIG", 445},
2010{"RILL", 1661},
2011{"RIM", 446},
2012{"RIME", 1662},
2013{"RING", 1663},
2014{"RINK", 1664},
2015{"RIO", 447},
2016{"RIP", 448},
2017{"RISE", 1665},
2018{"RISK", 1666},
2019{"RITE", 1667},
2020{"ROAD", 1668},
2021{"ROAM", 1669},
2022{"ROAR", 1670},
2023{"ROB", 449},
2024{"ROBE", 1671},
2025{"ROCK", 1672},
2026{"ROD", 450},
2027{"RODE", 1673},
2028{"ROE", 451},
2029{"ROIL", 1674},
2030{"ROLL", 1675},
2031{"ROME", 1676},
2032{"RON", 452},
2033{"ROOD", 1677},
2034{"ROOF", 1678},
2035{"ROOK", 1679},
2036{"ROOM", 1680},
2037{"ROOT", 1681},
2038{"ROSA", 1682},
2039{"ROSE", 1683},
2040{"ROSS", 1684},
2041{"ROSY", 1685},
2042{"ROT", 453},
2043{"ROTH", 1686},
2044{"ROUT", 1687},
2045{"ROVE", 1688},
2046{"ROW", 454},
2047{"ROWE", 1689},
2048{"ROWS", 1690},
2049{"ROY", 455},
2050{"RUB", 456},
2051{"RUBE", 1691},
2052{"RUBY", 1692},
2053{"RUDE", 1693},
2054{"RUDY", 1694},
2055{"RUE", 457},
2056{"RUG", 458},
2057{"RUIN", 1695},
2058{"RULE", 1696},
2059{"RUM", 459},
2060{"RUN", 460},
2061{"RUNG", 1697},
2062{"RUNS", 1698},
2063{"RUNT", 1699},
2064{"RUSE", 1700},
2065{"RUSH", 1701},
2066{"RUSK", 1702},
2067{"RUSS", 1703},
2068{"RUST", 1704},
2069{"RUTH", 1705},
2070{"RYE", 461},
2071{"SAC", 462},
2072{"SACK", 1706},
2073{"SAD", 463},
2074{"SAFE", 1707},
2075{"SAG", 464},
2076{"SAGE", 1708},
2077{"SAID", 1709},
2078{"SAIL", 1710},
2079{"SAL", 465},
2080{"SALE", 1711},
2081{"SALK", 1712},
2082{"SALT", 1713},
2083{"SAM", 466},
2084{"SAME", 1714},
2085{"SAN", 467},
2086{"SAND", 1715},
2087{"SANE", 1716},
2088{"SANG", 1717},
2089{"SANK", 1718},
2090{"SAP", 468},
2091{"SARA", 1719},
2092{"SAT", 469},
2093{"SAUL", 1720},
2094{"SAVE", 1721},
2095{"SAW", 470},
2096{"SAY", 471},
2097{"SAYS", 1722},
2098{"SCAN", 1723},
2099{"SCAR", 1724},
2100{"SCAT", 1725},
2101{"SCOT", 1726},
2102{"SEA", 472},
2103{"SEAL", 1727},
2104{"SEAM", 1728},
2105{"SEAR", 1729},
2106{"SEAT", 1730},
2107{"SEC", 473},
2108{"SEE", 474},
2109{"SEED", 1731},
2110{"SEEK", 1732},
2111{"SEEM", 1733},
2112{"SEEN", 1734},
2113{"SEES", 1735},
2114{"SELF", 1736},
2115{"SELL", 1737},
2116{"SEN", 475},
2117{"SEND", 1738},
2118{"SENT", 1739},
2119{"SET", 476},
2120{"SETS", 1740},
2121{"SEW", 477},
2122{"SEWN", 1741},
2123{"SHAG", 1742},
2124{"SHAM", 1743},
2125{"SHAW", 1744},
2126{"SHAY", 1745},
2127{"SHE", 478},
2128{"SHED", 1746},
2129{"SHIM", 1747},
2130{"SHIN", 1748},
2131{"SHOD", 1749},
2132{"SHOE", 1750},
2133{"SHOT", 1751},
2134{"SHOW", 1752},
2135{"SHUN", 1753},
2136{"SHUT", 1754},
2137{"SHY", 479},
2138{"SICK", 1755},
2139{"SIDE", 1756},
2140{"SIFT", 1757},
2141{"SIGH", 1758},
2142{"SIGN", 1759},
2143{"SILK", 1760},
2144{"SILL", 1761},
2145{"SILO", 1762},
2146{"SILT", 1763},
2147{"SIN", 480},
2148{"SINE", 1764},
2149{"SING", 1765},
2150{"SINK", 1766},
2151{"SIP", 481},
2152{"SIR", 482},
2153{"SIRE", 1767},
2154{"SIS", 483},
2155{"SIT", 484},
2156{"SITE", 1768},
2157{"SITS", 1769},
2158{"SITU", 1770},
2159{"SKAT", 1771},
2160{"SKEW", 1772},
2161{"SKI", 485},
2162{"SKID", 1773},
2163{"SKIM", 1774},
2164{"SKIN", 1775},
2165{"SKIT", 1776},
2166{"SKY", 486},
2167{"SLAB", 1777},
2168{"SLAM", 1778},
2169{"SLAT", 1779},
2170{"SLAY", 1780},
2171{"SLED", 1781},
2172{"SLEW", 1782},
2173{"SLID", 1783},
2174{"SLIM", 1784},
2175{"SLIT", 1785},
2176{"SLOB", 1786},
2177{"SLOG", 1787},
2178{"SLOT", 1788},
2179{"SLOW", 1789},
2180{"SLUG", 1790},
2181{"SLUM", 1791},
2182{"SLUR", 1792},
2183{"SLY", 487},
2184{"SMOG", 1793},
2185{"SMUG", 1794},
2186{"SNAG", 1795},
2187{"SNOB", 1796},
2188{"SNOW", 1797},
2189{"SNUB", 1798},
2190{"SNUG", 1799},
2191{"SO", 488},
2192{"SOAK", 1800},
2193{"SOAR", 1801},
2194{"SOB", 489},
2195{"SOCK", 1802},
2196{"SOD", 490},
2197{"SODA", 1803},
2198{"SOFA", 1804},
2199{"SOFT", 1805},
2200{"SOIL", 1806},
2201{"SOLD", 1807},
2202{"SOME", 1808},
2203{"SON", 491},
2204{"SONG", 1809},
2205{"SOON", 1810},
2206{"SOOT", 1811},
2207{"SOP", 492},
2208{"SORE", 1812},
2209{"SORT", 1813},
2210{"SOUL", 1814},
2211{"SOUR", 1815},
2212{"SOW", 493},
2213{"SOWN", 1816},
2214{"SOY", 494},
2215{"SPA", 495},
2216{"SPY", 496},
2217{"STAB", 1817},
2218{"STAG", 1818},
2219{"STAN", 1819},
2220{"STAR", 1820},
2221{"STAY", 1821},
2222{"STEM", 1822},
2223{"STEW", 1823},
2224{"STIR", 1824},
2225{"STOW", 1825},
2226{"STUB", 1826},
2227{"STUN", 1827},
2228{"SUB", 497},
2229{"SUCH", 1828},
2230{"SUD", 498},
2231{"SUDS", 1829},
2232{"SUE", 499},
2233{"SUIT", 1830},
2234{"SULK", 1831},
2235{"SUM", 500},
2236{"SUMS", 1832},
2237{"SUN", 501},
2238{"SUNG", 1833},
2239{"SUNK", 1834},
2240{"SUP", 502},
2241{"SURE", 1835},
2242{"SURF", 1836},
2243{"SWAB", 1837},
2244{"SWAG", 1838},
2245{"SWAM", 1839},
2246{"SWAN", 1840},
2247{"SWAT", 1841},
2248{"SWAY", 1842},
2249{"SWIM", 1843},
2250{"SWUM", 1844},
2251{"TAB", 503},
2252{"TACK", 1845},
2253{"TACT", 1846},
2254{"TAD", 504},
2255{"TAG", 505},
2256{"TAIL", 1847},
2257{"TAKE", 1848},
2258{"TALE", 1849},
2259{"TALK", 1850},
2260{"TALL", 1851},
2261{"TAN", 506},
2262{"TANK", 1852},
2263{"TAP", 507},
2264{"TAR", 508},
2265{"TASK", 1853},
2266{"TATE", 1854},
2267{"TAUT", 1855},
2268{"TEA", 509},
2269{"TEAL", 1856},
2270{"TEAM", 1857},
2271{"TEAR", 1858},
2272{"TECH", 1859},
2273{"TED", 510},
2274{"TEE", 511},
2275{"TEEM", 1860},
2276{"TEEN", 1861},
2277{"TEET", 1862},
2278{"TELL", 1863},
2279{"TEN", 512},
2280{"TEND", 1864},
2281{"TENT", 1865},
2282{"TERM", 1866},
2283{"TERN", 1867},
2284{"TESS", 1868},
2285{"TEST", 1869},
2286{"THAN", 1870},
2287{"THAT", 1871},
2288{"THE", 513},
2289{"THEE", 1872},
2290{"THEM", 1873},
2291{"THEN", 1874},
2292{"THEY", 1875},
2293{"THIN", 1876},
2294{"THIS", 1877},
2295{"THUD", 1878},
2296{"THUG", 1879},
2297{"THY", 514},
2298{"TIC", 515},
2299{"TICK", 1880},
2300{"TIDE", 1881},
2301{"TIDY", 1882},
2302{"TIE", 516},
2303{"TIED", 1883},
2304{"TIER", 1884},
2305{"TILE", 1885},
2306{"TILL", 1886},
2307{"TILT", 1887},
2308{"TIM", 517},
2309{"TIME", 1888},
2310{"TIN", 518},
2311{"TINA", 1889},
2312{"TINE", 1890},
2313{"TINT", 1891},
2314{"TINY", 1892},
2315{"TIP", 519},
2316{"TIRE", 1893},
2317{"TO", 520},
2318{"TOAD", 1894},
2319{"TOE", 521},
2320{"TOG", 522},
2321{"TOGO", 1895},
2322{"TOIL", 1896},
2323{"TOLD", 1897},
2324{"TOLL", 1898},
2325{"TOM", 523},
2326{"TON", 524},
2327{"TONE", 1899},
2328{"TONG", 1900},
2329{"TONY", 1901},
2330{"TOO", 525},
2331{"TOOK", 1902},
2332{"TOOL", 1903},
2333{"TOOT", 1904},
2334{"TOP", 526},
2335{"TORE", 1905},
2336{"TORN", 1906},
2337{"TOTE", 1907},
2338{"TOUR", 1908},
2339{"TOUT", 1909},
2340{"TOW", 527},
2341{"TOWN", 1910},
2342{"TOY", 528},
2343{"TRAG", 1911},
2344{"TRAM", 1912},
2345{"TRAY", 1913},
2346{"TREE", 1914},
2347{"TREK", 1915},
2348{"TRIG", 1916},
2349{"TRIM", 1917},
2350{"TRIO", 1918},
2351{"TROD", 1919},
2352{"TROT", 1920},
2353{"TROY", 1921},
2354{"TRUE", 1922},
2355{"TRY", 529},
2356{"TUB", 530},
2357{"TUBA", 1923},
2358{"TUBE", 1924},
2359{"TUCK", 1925},
2360{"TUFT", 1926},
2361{"TUG", 531},
2362{"TUM", 532},
2363{"TUN", 533},
2364{"TUNA", 1927},
2365{"TUNE", 1928},
2366{"TUNG", 1929},
2367{"TURF", 1930},
2368{"TURN", 1931},
2369{"TUSK", 1932},
2370{"TWIG", 1933},
2371{"TWIN", 1934},
2372{"TWIT", 1935},
2373{"TWO", 534},
2374{"ULAN", 1936},
2375{"UN", 535},
2376{"UNIT", 1937},
2377{"UP", 536},
2378{"URGE", 1938},
2379{"US", 537},
2380{"USE", 538},
2381{"USED", 1939},
2382{"USER", 1940},
2383{"USES", 1941},
2384{"UTAH", 1942},
2385{"VAIL", 1943},
2386{"VAIN", 1944},
2387{"VALE", 1945},
2388{"VAN", 539},
2389{"VARY", 1946},
2390{"VASE", 1947},
2391{"VAST", 1948},
2392{"VAT", 540},
2393{"VEAL", 1949},
2394{"VEDA", 1950},
2395{"VEIL", 1951},
2396{"VEIN", 1952},
2397{"VEND", 1953},
2398{"VENT", 1954},
2399{"VERB", 1955},
2400{"VERY", 1956},
2401{"VET", 541},
2402{"VETO", 1957},
2403{"VICE", 1958},
2404{"VIE", 542},
2405{"VIEW", 1959},
2406{"VINE", 1960},
2407{"VISE", 1961},
2408{"VOID", 1962},
2409{"VOLT", 1963},
2410{"VOTE", 1964},
2411{"WACK", 1965},
2412{"WAD", 543},
2413{"WADE", 1966},
2414{"WAG", 544},
2415{"WAGE", 1967},
2416{"WAIL", 1968},
2417{"WAIT", 1969},
2418{"WAKE", 1970},
2419{"WALE", 1971},
2420{"WALK", 1972},
2421{"WALL", 1973},
2422{"WALT", 1974},
2423{"WAND", 1975},
2424{"WANE", 1976},
2425{"WANG", 1977},
2426{"WANT", 1978},
2427{"WAR", 545},
2428{"WARD", 1979},
2429{"WARM", 1980},
2430{"WARN", 1981},
2431{"WART", 1982},
2432{"WAS", 546},
2433{"WASH", 1983},
2434{"WAST", 1984},
2435{"WATS", 1985},
2436{"WATT", 1986},
2437{"WAVE", 1987},
2438{"WAVY", 1988},
2439{"WAY", 547},
2440{"WAYS", 1989},
2441{"WE", 548},
2442{"WEAK", 1990},
2443{"WEAL", 1991},
2444{"WEAN", 1992},
2445{"WEAR", 1993},
2446{"WEB", 549},
2447{"WED", 550},
2448{"WEE", 551},
2449{"WEED", 1994},
2450{"WEEK", 1995},
2451{"WEIR", 1996},
2452{"WELD", 1997},
2453{"WELL", 1998},
2454{"WELT", 1999},
2455{"WENT", 2000},
2456{"WERE", 2001},
2457{"WERT", 2002},
2458{"WEST", 2003},
2459{"WET", 552},
2460{"WHAM", 2004},
2461{"WHAT", 2005},
2462{"WHEE", 2006},
2463{"WHEN", 2007},
2464{"WHET", 2008},
2465{"WHO", 553},
2466{"WHOA", 2009},
2467{"WHOM", 2010},
2468{"WHY", 554},
2469{"WICK", 2011},
2470{"WIFE", 2012},
2471{"WILD", 2013},
2472{"WILL", 2014},
2473{"WIN", 555},
2474{"WIND", 2015},
2475{"WINE", 2016},
2476{"WING", 2017},
2477{"WINK", 2018},
2478{"WINO", 2019},
2479{"WIRE", 2020},
2480{"WISE", 2021},
2481{"WISH", 2022},
2482{"WIT", 556},
2483{"WITH", 2023},
2484{"WOK", 557},
2485{"WOLF", 2024},
2486{"WON", 558},
2487{"WONT", 2025},
2488{"WOO", 559},
2489{"WOOD", 2026},
2490{"WOOL", 2027},
2491{"WORD", 2028},
2492{"WORE", 2029},
2493{"WORK", 2030},
2494{"WORM", 2031},
2495{"WORN", 2032},
2496{"WOVE", 2033},
2497{"WOW", 560},
2498{"WRIT", 2034},
2499{"WRY", 561},
2500{"WU", 562},
2501{"WYNN", 2035},
2502{"YALE", 2036},
2503{"YAM", 563},
2504{"YANG", 2037},
2505{"YANK", 2038},
2506{"YAP", 564},
2507{"YARD", 2039},
2508{"YARN", 2040},
2509{"YAW", 565},
2510{"YAWL", 2041},
2511{"YAWN", 2042},
2512{"YE", 566},
2513{"YEA", 567},
2514{"YEAH", 2043},
2515{"YEAR", 2044},
2516{"YELL", 2045},
2517{"YES", 568},
2518{"YET", 569},
2519{"YOGA", 2046},
2520{"YOKE", 2047},
2521{"YOU", 570}
2522};
Note: See TracBrowser for help on using the repository browser.