-
Notifications
You must be signed in to change notification settings - Fork 0
/
SDPG.html
292 lines (259 loc) · 88.1 KB
/
SDPG.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
<!DOCTYPE html>
<html>
<head>
<title>Secure Diceware & BIP39 Passphrase Generator</title>
<meta name="description" content="Secure Diceware & BIP39 Passphrase Generator">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style>
body { background-color: #888888; font-family: "Courier New", Courier, monospace; font-size: 10pt; }
td { border: 1px solid #666666; background-color: #EEEEEE; }
input { width: 32px; }
p { font-size: 8pt; }
.ra { background-color: #CCCCCC; text-align: right; font-weight: bold; }
.dr { color: #FF0000; }
.bi { color: #0000FF; }
#passphrase { font-weight: bold; }
#mouseBox {
width: 512px;
height: 512px;
background-color: #AAAAAA;
border-radius: 3px;
border-color: #FFFFFF;
border: 2px solid;
text-align: center;
display: table-cell;
vertical-align: middle;
}
</style>
</head>
<body>
<div align="center">
<h1>Secure Diceware & BIP39 Passphrase Generator</h1>
<div id="mouseBox">
<h4>Move cursor inside square to generate 32 random bytes</h4>
<h2><span id="mouseCount">0</span> / 32</h2>
<form name="generatedData">
<label for="initTs">init ts:</label><input type="text" name="initTs" value="0">
<label for="mouseX">x:</label><input type="text" name="mouseX" value="0">
<label for="mouseY">y:</label><input type="text" name="mouseY" value="0">
<label for="ts">ts:</label><input type="text" name="ts" value="0">
<label for="bv">random byte:</label><input type="text" name="bv" value="0">
</form>
<p>[<span id="userBytes"></span>]</p>
<form name="controls">
<label for="numWords">words:</label>
<select name="numWords">
<option value="4">4</option>
<option value="8">8</option>
<option value="12" selected="selected">12</option>
<option value="24">24</option>
</select>
<label for="separatorChar">separator:</label>
<select name="separatorChar">
<option value="">none</option>
<option value=" " selected="selected">  space</option>
<option value="_">_ underscore</option>
<option value="-">- hyphen</option>
<option value="+">+ plus</option>
<option value="=">= equals</option>
<option value=".">. period</option>
<option value=",">, comma</option>
<option value="~">~ tilde</option>
<option value="!">! bang</option>
<option value="*">* asterisk</option>
</select>
<br>
<br>
<button name="start" type="button"><strong>Start</strong></button>
</form>
</div>
<br>
<div id="result"></div>
<br>
<p>SDPG v1.1 | <a href="http://world.std.com/~reinhold/diceware.wordlist.asc" target="_blank">Diceware word list</a> | <a href="https://raw.githubusercontent.com/bitcoin/bips/refs/heads/master/bip-0039/english.txt" target="_blank">BIP39 word list</a></p>
</div>
<script type="text/javascript">
/**
* [js-sha256]{@link https://github.com/emn178/js-sha256}
*
* @version 0.5.0
* @author Chen, Yi-Cyuan [[email protected]]
* @copyright Chen, Yi-Cyuan 2014-2017
* @license MIT
*/
!function(){"use strict";function t(t,h){h?(c[0]=c[16]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=c[11]=c[12]=c[13]=c[14]=c[15]=0,this.blocks=c):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=t}var h="object"==typeof window?window:{},i=!h.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;i&&(h=global);var s=!h.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,e="function"==typeof define&&define.amd,r="undefined"!=typeof ArrayBuffer,n="0123456789abcdef".split(""),o=[-2147483648,8388608,32768,128],a=[24,16,8,0],f=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],u=["hex","array","digest","arrayBuffer"],c=[],p=function(h,i){return function(s){return new t(i,!0).update(s)[h]()}},d=function(h){var s=p("hex",h);i&&(s=y(s,h)),s.create=function(){return new t(h)},s.update=function(t){return s.create().update(t)};for(var e=0;e<u.length;++e){var r=u[e];s[r]=p(r,h)}return s},y=function(t,h){var i=require("crypto"),s=require("buffer").Buffer,e=h?"sha224":"sha256",n=function(h){if("string"==typeof h)return i.createHash(e).update(h,"utf8").digest("hex");if(r&&h instanceof ArrayBuffer)h=new Uint8Array(h);else if(void 0===h.length)return t(h);return i.createHash(e).update(new s(h)).digest("hex")};return n};t.prototype.update=function(t){if(!this.finalized){var i="string"!=typeof t;i&&r&&t instanceof h.ArrayBuffer&&(t=new Uint8Array(t));for(var s,e,n=0,o=t.length||0,f=this.blocks;o>n;){if(this.hashed&&(this.hashed=!1,f[0]=this.block,f[16]=f[1]=f[2]=f[3]=f[4]=f[5]=f[6]=f[7]=f[8]=f[9]=f[10]=f[11]=f[12]=f[13]=f[14]=f[15]=0),i)for(e=this.start;o>n&&64>e;++n)f[e>>2]|=t[n]<<a[3&e++];else for(e=this.start;o>n&&64>e;++n)s=t.charCodeAt(n),128>s?f[e>>2]|=s<<a[3&e++]:2048>s?(f[e>>2]|=(192|s>>6)<<a[3&e++],f[e>>2]|=(128|63&s)<<a[3&e++]):55296>s||s>=57344?(f[e>>2]|=(224|s>>12)<<a[3&e++],f[e>>2]|=(128|s>>6&63)<<a[3&e++],f[e>>2]|=(128|63&s)<<a[3&e++]):(s=65536+((1023&s)<<10|1023&t.charCodeAt(++n)),f[e>>2]|=(240|s>>18)<<a[3&e++],f[e>>2]|=(128|s>>12&63)<<a[3&e++],f[e>>2]|=(128|s>>6&63)<<a[3&e++],f[e>>2]|=(128|63&s)<<a[3&e++]);this.lastByteIndex=e,this.bytes+=e-this.start,e>=64?(this.block=f[16],this.start=e-64,this.hash(),this.hashed=!0):this.start=e}return this}},t.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,h=this.lastByteIndex;t[16]=this.block,t[h>>2]|=o[3&h],this.block=t[16],h>=56&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[15]=this.bytes<<3,this.hash()}},t.prototype.hash=function(){var t,h,i,s,e,r,n,o,a,u,c,p=this.h0,d=this.h1,y=this.h2,l=this.h3,b=this.h4,v=this.h5,g=this.h6,w=this.h7,k=this.blocks;for(t=16;64>t;++t)e=k[t-15],h=(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3,e=k[t-2],i=(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10,k[t]=k[t-16]+h+k[t-7]+i<<0;for(c=d&y,t=0;64>t;t+=4)this.first?(this.is224?(o=300032,e=k[0]-1413257819,w=e-150054599<<0,l=e+24177077<<0):(o=704751109,e=k[0]-210244248,w=e-1521486534<<0,l=e+143694565<<0),this.first=!1):(h=(p>>>2|p<<30)^(p>>>13|p<<19)^(p>>>22|p<<10),i=(b>>>6|b<<26)^(b>>>11|b<<21)^(b>>>25|b<<7),o=p&d,s=o^p&y^c,n=b&v^~b&g,e=w+i+n+f[t]+k[t],r=h+s,w=l+e<<0,l=e+r<<0),h=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),i=(w>>>6|w<<26)^(w>>>11|w<<21)^(w>>>25|w<<7),a=l&p,s=a^l&d^o,n=w&b^~w&v,e=g+i+n+f[t+1]+k[t+1],r=h+s,g=y+e<<0,y=e+r<<0,h=(y>>>2|y<<30)^(y>>>13|y<<19)^(y>>>22|y<<10),i=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),u=y&l,s=u^y&p^a,n=g&w^~g&b,e=v+i+n+f[t+2]+k[t+2],r=h+s,v=d+e<<0,d=e+r<<0,h=(d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),i=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7),c=d&y,s=c^d&l^u,n=v&g^~v&w,e=b+i+n+f[t+3]+k[t+3],r=h+s,b=p+e<<0,p=e+r<<0;this.h0=this.h0+p<<0,this.h1=this.h1+d<<0,this.h2=this.h2+y<<0,this.h3=this.h3+l<<0,this.h4=this.h4+b<<0,this.h5=this.h5+v<<0,this.h6=this.h6+g<<0,this.h7=this.h7+w<<0},t.prototype.hex=function(){this.finalize();var t=this.h0,h=this.h1,i=this.h2,s=this.h3,e=this.h4,r=this.h5,o=this.h6,a=this.h7,f=n[t>>28&15]+n[t>>24&15]+n[t>>20&15]+n[t>>16&15]+n[t>>12&15]+n[t>>8&15]+n[t>>4&15]+n[15&t]+n[h>>28&15]+n[h>>24&15]+n[h>>20&15]+n[h>>16&15]+n[h>>12&15]+n[h>>8&15]+n[h>>4&15]+n[15&h]+n[i>>28&15]+n[i>>24&15]+n[i>>20&15]+n[i>>16&15]+n[i>>12&15]+n[i>>8&15]+n[i>>4&15]+n[15&i]+n[s>>28&15]+n[s>>24&15]+n[s>>20&15]+n[s>>16&15]+n[s>>12&15]+n[s>>8&15]+n[s>>4&15]+n[15&s]+n[e>>28&15]+n[e>>24&15]+n[e>>20&15]+n[e>>16&15]+n[e>>12&15]+n[e>>8&15]+n[e>>4&15]+n[15&e]+n[r>>28&15]+n[r>>24&15]+n[r>>20&15]+n[r>>16&15]+n[r>>12&15]+n[r>>8&15]+n[r>>4&15]+n[15&r]+n[o>>28&15]+n[o>>24&15]+n[o>>20&15]+n[o>>16&15]+n[o>>12&15]+n[o>>8&15]+n[o>>4&15]+n[15&o];return this.is224||(f+=n[a>>28&15]+n[a>>24&15]+n[a>>20&15]+n[a>>16&15]+n[a>>12&15]+n[a>>8&15]+n[a>>4&15]+n[15&a]),f},t.prototype.toString=t.prototype.hex,t.prototype.digest=function(){this.finalize();var t=this.h0,h=this.h1,i=this.h2,s=this.h3,e=this.h4,r=this.h5,n=this.h6,o=this.h7,a=[t>>24&255,t>>16&255,t>>8&255,255&t,h>>24&255,h>>16&255,h>>8&255,255&h,i>>24&255,i>>16&255,i>>8&255,255&i,s>>24&255,s>>16&255,s>>8&255,255&s,e>>24&255,e>>16&255,e>>8&255,255&e,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n];return this.is224||a.push(o>>24&255,o>>16&255,o>>8&255,255&o),a},t.prototype.array=t.prototype.digest,t.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),h=new DataView(t);return h.setUint32(0,this.h0),h.setUint32(4,this.h1),h.setUint32(8,this.h2),h.setUint32(12,this.h3),h.setUint32(16,this.h4),h.setUint32(20,this.h5),h.setUint32(24,this.h6),this.is224||h.setUint32(28,this.h7),t};var l=d();l.sha256=l,l.sha224=d(!0),s?module.exports=l:(h.sha256=l.sha256,h.sha224=l.sha224,e&&define(function(){return l}))}();
let dicewords = ["a","a&p","a's","aa","aaa","aaaa","aaron","ab","aba","ababa","aback","abase","abash","abate","abbas","abbe","abbey","abbot","abbott","abc","abe","abed","abel","abet","abide","abject","ablaze","able","abner","abo","abode","abort","about","above","abrade","abram","absorb","abuse","abut","abyss","ac","acadia","accra","accrue","ace","acetic","ache","acid","acidic","acm","acme","acorn","acre","acrid","act","acton","actor","acts","acuity","acute","ad","ada","adage","adagio","adair","adam","adams","adapt","add","added","addict","addis","addle","adele","aden","adept","adieu","adjust","adler","admit","admix","ado","adobe","adonis","adopt","adore","adorn","adult","advent","advert","advise","ae","aegis","aeneid","af","afar","affair","affine","affix","afire","afoot","afraid","africa","afro","aft","ag","again","agate","agave","age","agee","agenda","agent","agile","aging","agnes","agnew","ago","agone","agony","agree","ague","agway","ah","ahead","ahem","ahoy","ai","aid","aida","aide","aides","aiken","ail","aile","aim","ain't","ainu","air","aires","airman","airway","airy","aisle","aj","ajar","ajax","ak","akers","akin","akron","al","ala","alai","alamo","alan","alarm","alaska","alb","alba","album","alcoa","alden","alder","ale","alec","aleck","aleph","alert","alex","alexei","alga","algae","algal","alger","algol","ali","alia","alias","alibi","alice","alien","alight","align","alike","alive","all","allah","allan","allay","allen","alley","allied","allis","allot","allow","alloy","allure","ally","allyl","allyn","alma","almost","aloe","aloft","aloha","alone","along","aloof","aloud","alp","alpha","alps","also","alsop","altair","altar","alter","alto","alton","alum","alumni","alva","alvin","alway","am","ama","amass","amaze","amber","amble","ambush","amen","amend","ames","ami","amid","amide","amigo","amino","amiss","amity","amman","ammo","amoco","amok","among","amort","amos","amp","ampere","ampex","ample","amply","amra","amulet","amuse","amy","an","ana","and","andes","andre","andrew","andy","anent","anew","angel","angelo","anger","angie","angle","anglo","angola","angry","angst","angus","ani","anion","anise","anita","ankle","ann","anna","annal","anne","annex","annie","annoy","annul","annuli","annum","anode","ansi","answer","ant","ante","anti","antic","anton","anus","anvil","any","anyhow","anyway","ao","aok","aorta","ap","apart","apathy","ape","apex","aphid","aplomb","appeal","append","apple","apply","april","apron","apse","apt","aq","aqua","ar","arab","araby","arc","arcana","arch","archer","arden","ardent","are","area","arena","ares","argive","argo","argon","argot","argue","argus","arhat","arid","aries","arise","ark","arlen","arlene","arm","armco","army","arnold","aroma","arose","arpa","array","arrear","arrow","arson","art","artery","arthur","artie","arty","aruba","arum","aryl","as","ascend","ash","ashen","asher","ashley","ashy","asia","aside","ask","askew","asleep","aspen","aspire","ass","assai","assam","assay","asset","assort","assure","aster","astm","astor","astral","at","at&t","ate","athens","atlas","atom","atomic","atone","atop","attic","attire","au","aubrey","audio","audit","aug","auger","augur","august","auk","aunt","aura","aural","auric","austin","auto","autumn","av","avail","ave","aver","avert","avery","aviate","avid","avis","aviv","avoid","avon","avow","aw","await","awake","award","aware","awash","away","awe","awful","awl","awn","awoke","awry","ax","axe","axes","axial","axiom","axis","axle","axon","ay","aye","ayers","az","aztec","azure","b","b's","ba","babe","babel","baby","bach","back","backup","bacon","bad","bade","baden","badge","baffle","bag","baggy","bah","bahama","bail","baird","bait","bake","baku","bald","baldy","bale","bali","balk","balkan","balky","ball","balled","ballot","balm","balmy","balsa","bam","bambi","ban","banal","band","bandit","bandy","bane","bang","banish","banjo","bank","banks","bantu","bar","barb","bard","bare","barfly","barge","bark","barley","barn","barnes","baron","barony","barr","barre","barry","barter","barth","barton","basal","base","basel","bash","basic","basil","basin","basis","bask","bass","bassi","basso","baste","bat","batch","bate","bater","bates","bath","bathe","batik","baton","bator","batt","bauble","baud","bauer","bawd","bawdy","bawl","baxter","bay","bayda","bayed","bayou","bazaar","bb","bbb","bbbb","bc","bcd","bd","be","beach","bead","beady","beak","beam","bean","bear","beard","beast","beat","beau","beauty","beaux","bebop","becalm","beck","becker","becky","bed","bedim","bee","beebe","beech","beef","beefy","been","beep","beer","beet","befall","befit","befog","beg","began","beget","beggar","begin","begun","behind","beige","being","beirut","bel","bela","belch","belfry","belie","bell","bella","belle","belly","below","belt","bema","beman","bemoan","ben","bench","bend","bender","benny","bent","benz","berea","bereft","beret","berg","berlin","bern","berne","bernet","berra","berry","bert","berth","beryl","beset","bess","bessel","best","bestir","bet","beta","betel","beth","bethel","betsy","bette","betty","bevel","bevy","beware","bey","bezel","bf","bg","bh","bhoy","bi","bias","bib","bibb","bible","bicep","biceps","bid","biddy","bide","bien","big","biggs","bigot","bile","bilge","bilk","bill","billow","billy","bin","binary","bind","bing","binge","bingle","bini","biota","birch","bird","birdie","birth","bison","bisque","bit","bitch","bite","bitt","bitten","biz","bizet","bj","bk","bl","blab","black","blade","blair","blake","blame","blanc","bland","blank","blare","blast","blat","blatz","blaze","bleak","bleat","bled","bleed","blend","bless","blest","blew","blimp","blind","blink","blinn","blip","bliss","blithe","blitz","bloat","blob","bloc","bloch","block","bloke","blond","blonde","blood","bloom","bloop","blot","blotch","blow","blown","blue","bluet","bluff","blum","blunt","blur","blurt","blush","blvd","blythe","bm","bmw","bn","bo","boa","boar","board","boast","boat","bob","bobbin","bobby","bobcat","boca","bock","bode","body","bog","bogey","boggy","bogus","bogy","bohr","boil","bois","boise","bold","bole","bolo","bolt","bomb","bombay","bon","bona","bond","bone","bong","bongo","bonn","bonus","bony","bonze","boo","booby","boogie","book","booky","boom","boon","boone","boor","boost","boot","booth","booty","booze","bop","borax","border","bore","borg","boric","boris","born","borne","borneo","boron","bosch","bose","bosom","boson","boss","boston","botch","both","bottle","bough","bouncy","bound","bourn","bout","bovine","bow","bowel","bowen","bowie","bowl","box","boxy","boy","boyar","boyce","boyd","boyle","bp","bq","br","brace","bract","brad","brady","brae","brag","bragg","braid","brain","brainy","brake","bran","brand","brandt","brant","brash","brass","brassy","braun","brave","bravo","brawl","bray","bread","break","bream","breath","bred","breed","breeze","bremen","brent","brest","brett","breve","brew","brian","briar","bribe","brice","brick","bride","brief","brig","briggs","brim","brine","bring","brink","briny","brisk","broad","brock","broil","broke","broken","bronx","brood","brook","brooke","broom","broth","brow","brown","browse","bruce","bruit","brunch","bruno","brunt","brush","brute","bryan","bryant","bryce","bryn","bs","bstj","bt","btl","bu","bub","buck","bud","budd","buddy","budge","buena","buenos","buff","bug","buggy","bugle","buick","build","built","bulb","bulge","bulk","bulky","bull","bully","bum","bump","bun","bunch","bundy","bunk","bunny","bunt","bunyan","buoy","burch","bureau","buret","burg","buried","burke","burl","burly","burma","burn","burnt","burp","burr","burro","burst","burt","burton","burtt","bury","bus","busch","bush","bushel","bushy","buss","bust","busy","but","butane","butch","buteo","butt","butte","butyl","buxom","buy","buyer","buzz","buzzy","bv","bw","bx","by","bye","byers","bylaw","byline","byrd","byrne","byron","byte","byway","byword","bz","c","c's","ca","cab","cabal","cabin","cable","cabot","cacao","cache","cacm","cacti","caddy","cadent","cadet","cadre","cady","cafe","cage","cagey","cahill","caiman","cain","caine","cairn","cairo","cake","cal","calder","caleb","calf","call","calla","callus","calm","calve","cam","camber","came","camel","cameo","camp","can","can't","canal","canary","cancer","candle","candy","cane","canis","canna","cannot","canny","canoe","canon","canopy","cant","canto","canton","cap","cape","caper","capo","car","carbon","card","care","caress","caret","carey","cargo","carib","carl","carla","carlo","carne","carob","carol","carp","carpet","carr","carrie","carry","carson","cart","carte","caruso","carve","case","casey","cash","cashew","cask","casket","cast","caste","cat","catch","cater","cathy","catkin","catsup","cauchy","caulk","cause","cave","cavern","cavil","cavort","caw","cayuga","cb","cbs","cc","ccc","cccc","cd","cdc","ce","cease","cecil","cedar","cede","ceil","celia","cell","census","cent","ceres","cern","cetera","cetus","cf","cg","ch","chad","chafe","chaff","chai","chain","chair","chalk","champ","chance","chang","chant","chao","chaos","chap","chapel","char","chard","charm","chart","chase","chasm","chaste","chat","chaw","cheap","cheat","check","cheek","cheeky","cheer","chef","chen","chert","cherub","chess","chest","chevy","chew","chi","chic","chick","chide","chief","child","chile","chili","chill","chilly","chime","chin","china","chine","chink","chip","chirp","chisel","chit","chive","chock","choir","choke","chomp","chop","chopin","choral","chord","chore","chose","chosen","chou","chow","chris","chub","chuck","chuff","chug","chum","chump","chunk","churn","chute","ci","cia","cicada","cider","cigar","cilia","cinch","cindy","cipher","circa","circe","cite","citrus","city","civet","civic","civil","cj","ck","cl","clad","claim","clam","clammy","clamp","clan","clang","clank","clap","clara","clare","clark","clarke","clash","clasp","class","claus","clause","claw","clay","clean","clear","cleat","cleft","clerk","cliche","click","cliff","climb","clime","cling","clink","clint","clio","clip","clive","cloak","clock","clod","clog","clomp","clone","close","closet","clot","cloth","cloud","clout","clove","clown","cloy","club","cluck","clue","cluj","clump","clumsy","clung","clyde","cm","cn","co","coach","coal","coast","coat","coax","cobb","cobble","cobol","cobra","coca","cock","cockle","cocky","coco","cocoa","cod","coda","coddle","code","codon","cody","coed","cog","cogent","cohen","cohn","coil","coin","coke","col","cola","colby","cold","cole","colon","colony","colt","colza","coma","comb","combat","come","comet","cometh","comic","comma","con","conch","cone","coney","congo","conic","conn","conner","conway","cony","coo","cook","cooke","cooky","cool","cooley","coon","coop","coors","coot","cop","cope","copra","copy","coral","corbel","cord","core","corey","cork","corn","corny","corp","corps","corvus","cos","cosec","coset","cosh","cost","costa","cosy","cot","cotta","cotty","couch","cough","could","count","coup","coupe","court","cousin","cove","coven","cover","covet","cow","cowan","cowl","cowman","cowry","cox","coy","coyote","coypu","cozen","cozy","cp","cpa","cq","cr","crab","crack","craft","crag","craig","cram","cramp","crane","crank","crap","crash","crass","crate","crater","crave","craw","crawl","craze","crazy","creak","cream","credit","credo","creed","creek","creep","creole","creon","crepe","crept","cress","crest","crete","crew","crib","cried","crime","crimp","crisp","criss","croak","crock","crocus","croft","croix","crone","crony","crook","croon","crop","cross","crow","crowd","crown","crt","crud","crude","cruel","crumb","crump","crush","crust","crux","cruz","cry","crypt","cs","ct","cu","cub","cuba","cube","cubic","cud","cuddle","cue","cuff","cull","culpa","cult","cumin","cuny","cup","cupful","cupid","cur","curb","curd","cure","curfew","curia","curie","curio","curl","curry","curse","curt","curve","cusp","cut","cute","cutlet","cv","cw","cx","cy","cycad","cycle","cynic","cyril","cyrus","cyst","cz","czar","czech","d","d'art","d's","da","dab","dacca","dactyl","dad","dada","daddy","dade","daffy","dahl","dahlia","dairy","dais","daisy","dakar","dale","daley","dally","daly","dam","dame","damn","damon","damp","damsel","dan","dana","dance","dandy","dane","dang","dank","danny","dante","dar","dare","dark","darken","darn","darry","dart","dash","data","date","dater","datum","daub","daunt","dave","david","davis","davit","davy","dawn","dawson","day","daze","db","dc","dd","ddd","dddd","de","deacon","dead","deaf","deal","dealt","dean","deane","dear","death","debar","debby","debit","debra","debris","debt","debug","debut","dec","decal","decay","decca","deck","decker","decor","decree","decry","dee","deed","deem","deep","deer","deere","def","defer","deform","deft","defy","degas","degum","deify","deign","deity","deja","del","delay","delft","delhi","delia","dell","della","delta","delve","demark","demit","demon","demur","den","deneb","denial","denny","dense","dent","denton","deny","depot","depth","depute","derby","derek","des","desist","desk","detach","deter","deuce","deus","devil","devoid","devon","dew","dewar","dewey","dewy","dey","df","dg","dh","dhabi","di","dial","diana","diane","diary","dibble","dice","dick","dicta","did","dido","die","died","diego","diem","diesel","diet","diety","dietz","dig","digit","dilate","dill","dim","dime","din","dinah","dine","ding","dingo","dingy","dint","diode","dip","dirac","dire","dirge","dirt","dirty","dis","disc","dish","disk","disney","ditch","ditto","ditty","diva","divan","dive","dixie","dixon","dizzy","dj","dk","dl","dm","dn","dna","do","dobbs","dobson","dock","docket","dod","dodd","dodge","dodo","doe","doff","dog","doge","dogma","dolan","dolce","dole","doll","dolly","dolt","dome","don","don't","done","doneck","donna","donor","doom","door","dope","dora","doria","doric","doris","dose","dot","dote","double","doubt","douce","doug","dough","dour","douse","dove","dow","dowel","down","downs","dowry","doyle","doze","dozen","dp","dq","dr","drab","draco","draft","drag","drain","drake","dram","drama","drank","drape","draw","drawl","drawn","dread","dream","dreamy","dreg","dress","dressy","drew","drib","dried","drier","drift","drill","drink","drip","drive","droll","drone","drool","droop","drop","dross","drove","drown","drub","drug","druid","drum","drunk","drury","dry","dryad","ds","dt","du","dual","duane","dub","dubhe","dublin","ducat","duck","duct","dud","due","duel","duet","duff","duffy","dug","dugan","duke","dull","dully","dulse","duly","duma","dumb","dummy","dump","dumpy","dun","dunce","dune","dung","dunham","dunk","dunlop","dunn","dupe","durer","dusk","dusky","dust","dusty","dutch","duty","dv","dw","dwarf","dwell","dwelt","dwight","dwyer","dx","dy","dyad","dye","dyer","dying","dyke","dylan","dyne","dz","e","e'er","e's","ea","each","eagan","eager","eagle","ear","earl","earn","earth","ease","easel","east","easy","eat","eaten","eater","eaton","eave","eb","ebb","eben","ebony","ec","echo","eclat","ecole","ed","eddie","eddy","eden","edgar","edge","edgy","edict","edify","edit","edith","editor","edna","edt","edwin","ee","eee","eeee","eel","eeoc","eerie","ef","efface","effie","efg","eft","eg","egan","egg","ego","egress","egret","egypt","eh","ei","eider","eight","eire","ej","eject","ek","eke","el","elan","elate","elba","elbow","elder","eldon","elect","elegy","elena","eleven","elfin","elgin","eli","elide","eliot","elite","elk","ell","ella","ellen","ellis","elm","elmer","elope","else","elsie","elton","elude","elute","elves","ely","em","embalm","embark","embed","ember","emcee","emery","emil","emile","emily","emit","emma","emory","empty","en","enact","enamel","end","endow","enemy","eng","engel","engle","engulf","enid","enjoy","enmity","enoch","enol","enos","enrico","ensue","enter","entrap","entry","envoy","envy","eo","ep","epa","epic","epoch","epoxy","epsom","eq","equal","equip","er","era","erase","erato","erda","ere","erect","erg","eric","erich","erie","erik","ernest","ernie","ernst","erode","eros","err","errand","errol","error","erupt","ervin","erwin","es","essay","essen","essex","est","ester","estes","estop","et","eta","etc","etch","ethan","ethel","ether","ethic","ethos","ethyl","etude","eu","eucre","euler","eureka","ev","eva","evade","evans","eve","even","event","every","evict","evil","evoke","evolve","ew","ewe","ewing","ex","exact","exalt","exam","excel","excess","exert","exile","exist","exit","exodus","expel","extant","extent","extol","extra","exude","exult","exxon","ey","eye","eyed","ez","ezra","f","f's","fa","faa","faber","fable","face","facet","facile","fact","facto","fad","fade","faery","fag","fahey","fail","fain","faint","fair","fairy","faith","fake","fall","false","fame","fan","fancy","fang","fanny","fanout","far","farad","farce","fare","fargo","farley","farm","faro","fast","fat","fatal","fate","fatty","fault","faun","fauna","faust","fawn","fay","faze","fb","fbi","fc","fcc","fd","fda","fe","fear","feast","feat","feb","fed","fee","feed","feel","feet","feign","feint","felice","felix","fell","felon","felt","femur","fence","fend","fermi","fern","ferric","ferry","fest","fetal","fetch","fete","fetid","fetus","feud","fever","few","ff","fff","ffff","fg","fgh","fh","fi","fiat","fib","fibrin","fiche","fide","fief","field","fiend","fiery","fife","fifo","fifth","fifty","fig","fight","filch","file","filet","fill","filler","filly","film","filmy","filth","fin","final","finale","finch","find","fine","finite","fink","finn","finny","fir","fire","firm","first","fish","fishy","fisk","fiske","fist","fit","fitch","five","fix","fj","fjord","fk","fl","flack","flag","flail","flair","flak","flake","flaky","flam","flame","flank","flap","flare","flash","flask","flat","flatus","flaw","flax","flea","fleck","fled","flee","fleet","flesh","flew","flex","flick","flier","flinch","fling","flint","flip","flirt","flit","flo","float","floc","flock","floe","flog","flood","floor","flop","floppy","flora","flour","flout","flow","flown","floyd","flu","flub","flue","fluff","fluid","fluke","flung","flush","flute","flux","fly","flyer","flynn","fm","fmc","fn","fo","foal","foam","foamy","fob","focal","foci","focus","fodder","foe","fog","foggy","fogy","foil","foist","fold","foley","folio","folk","folly","fond","font","food","fool","foot","foote","fop","for","foray","force","ford","fore","forge","forgot","fork","form","fort","forte","forth","forty","forum","foss","fossil","foul","found","fount","four","fovea","fowl","fox","foxy","foyer","fp","fpc","fq","fr","frail","frame","fran","franc","franca","frank","franz","frau","fraud","fray","freak","fred","free","freed","freer","frenzy","freon","fresh","fret","freud","frey","freya","friar","frick","fried","frill","frilly","frisky","fritz","fro","frock","frog","from","front","frost","froth","frown","froze","fruit","fry","frye","fs","ft","ftc","fu","fuchs","fudge","fuel","fugal","fugue","fuji","full","fully","fum","fume","fun","fund","fungal","fungi","funk","funny","fur","furl","furry","fury","furze","fuse","fuss","fussy","fusty","fuzz","fuzzy","fv","fw","fx","fy","fz","g","g's","ga","gab","gable","gabon","gad","gadget","gaff","gaffe","gag","gage","gail","gain","gait","gal","gala","galaxy","gale","galen","gall","gallop","galt","gam","game","gamin","gamma","gamut","gander","gang","gao","gap","gape","gar","garb","garish","garner","garry","garth","gary","gas","gash","gasp","gassy","gate","gates","gator","gauche","gaudy","gauge","gaul","gaunt","gaur","gauss","gauze","gave","gavel","gavin","gawk","gawky","gay","gaze","gb","gc","gd","ge","gear","gecko","gee","geese","geigy","gel","geld","gem","gemma","gene","genie","genii","genoa","genre","gent","gentry","genus","gerbil","germ","gerry","get","getty","gf","gg","ggg","gggg","gh","ghana","ghent","ghetto","ghi","ghost","ghoul","gi","giant","gibbs","gibby","gibe","giddy","gift","gig","gil","gila","gild","giles","gill","gilt","gimbal","gimpy","gin","gina","ginn","gino","gird","girl","girth","gist","give","given","gj","gk","gl","glad","gladdy","glade","glamor","gland","glans","glare","glass","glaze","gleam","glean","glee","glen","glenn","glib","glide","glint","gloat","glob","globe","glom","gloom","glory","gloss","glove","glow","glue","glued","gluey","gluing","glum","glut","glyph","gm","gmt","gn","gnarl","gnash","gnat","gnaw","gnome","gnp","gnu","go","goa","goad","goal","goat","gob","goer","goes","goff","gog","goggle","gogh","gogo","gold","golf","golly","gone","gong","goo","good","goode","goody","goof","goofy","goose","gop","gordon","gore","goren","gorge","gorky","gorse","gory","gosh","gospel","got","gouda","gouge","gould","gourd","gout","gown","gp","gpo","gq","gr","grab","grace","grad","grade","grady","graff","graft","grail","grain","grand","grant","grape","graph","grasp","grass","grata","grate","grater","grave","gravy","gray","graze","great","grebe","greed","greedy","greek","green","greer","greet","greg","gregg","greta","grew","grey","grid","grief","grieve","grill","grim","grime","grimm","grin","grind","grip","gripe","grist","grit","groan","groat","groin","groom","grope","gross","groton","group","grout","grove","grow","growl","grown","grub","gruff","grunt","gs","gsa","gt","gu","guam","guano","guard","guess","guest","guide","guild","guile","guilt","guise","guitar","gules","gulf","gull","gully","gulp","gum","gumbo","gummy","gun","gunk","gunky","gunny","gurgle","guru","gus","gush","gust","gusto","gusty","gut","gutsy","guy","guyana","gv","gw","gwen","gwyn","gx","gy","gym","gyp","gypsy","gyro","gz","h","h's","ha","haag","haas","habib","habit","hack","had","hades","hadron","hagen","hager","hague","hahn","haifa","haiku","hail","hair","hairy","haiti","hal","hale","haley","half","hall","halma","halo","halt","halvah","halve","ham","hamal","hamlin","han","hand","handy","haney","hang","hank","hanna","hanoi","hans","hansel","hap","happy","hard","hardy","hare","harem","hark","harley","harm","harp","harpy","harry","harsh","hart","harvey","hash","hasp","hast","haste","hasty","hat","hatch","hate","hater","hath","hatred","haul","haunt","have","haven","havoc","haw","hawk","hay","haydn","hayes","hays","hazard","haze","hazel","hazy","hb","hc","hd","he","he'd","he'll","head","heady","heal","healy","heap","hear","heard","heart","heat","heath","heave","heavy","hebe","hebrew","heck","heckle","hedge","heed","heel","heft","hefty","heigh","heine","heinz","heir","held","helen","helga","helix","hell","hello","helm","helmut","help","hem","hemp","hen","hence","henri","henry","her","hera","herb","herd","here","hero","heroic","heron","herr","hertz","hess","hesse","hettie","hetty","hew","hewitt","hewn","hex","hey","hf","hg","hh","hhh","hhhh","hi","hiatt","hick","hicks","hid","hide","high","hij","hike","hill","hilly","hilt","hilum","him","hind","hindu","hines","hinge","hint","hip","hippo","hippy","hiram","hire","hirsch","his","hiss","hit","hitch","hive","hj","hk","hl","hm","hn","ho","hoagy","hoar","hoard","hob","hobbs","hobby","hobo","hoc","hock","hodge","hodges","hoe","hoff","hog","hogan","hoi","hokan","hold","holdup","hole","holly","holm","holst","holt","home","homo","honda","hondo","hone","honey","hong","honk","hooch","hood","hoof","hook","hookup","hoop","hoot","hop","hope","horde","horn","horny","horse","horus","hose","host","hot","hotbox","hotel","hough","hound","hour","house","hove","hovel","hover","how","howdy","howe","howl","hoy","hoyt","hp","hq","hr","hs","ht","hu","hub","hubbub","hubby","huber","huck","hue","hued","huff","hug","huge","hugh","hughes","hugo","huh","hulk","hull","hum","human","humid","hump","humus","hun","hunch","hung","hunk","hunt","hurd","hurl","huron","hurrah","hurry","hurst","hurt","hurty","hush","husky","hut","hutch","hv","hw","hx","hy","hyde","hydra","hydro","hyena","hying","hyman","hymen","hymn","hymnal","hz","i","i'd","i'll","i'm","i's","i've","ia","iambic","ian","ib","ibex","ibid","ibis","ibm","ibn","ic","icc","ice","icing","icky","icon","icy","id","ida","idaho","idea","ideal","idiom","idiot","idle","idol","idyll","ie","ieee","if","iffy","ifni","ig","igloo","igor","ih","ii","iii","iiii","ij","ijk","ik","ike","il","ileum","iliac","iliad","ill","illume","ilona","im","image","imbue","imp","impel","import","impute","in","inane","inapt","inc","inca","incest","inch","incur","index","india","indies","indy","inept","inert","infect","infer","infima","infix","infra","ingot","inhere","injun","ink","inlay","inlet","inman","inn","inner","input","insect","inset","insult","intend","inter","into","inure","invoke","io","ion","ionic","iota","iowa","ip","ipso","iq","ir","ira","iran","iraq","irate","ire","irene","iris","irish","irk","irma","iron","irony","irs","irvin","irwin","is","isaac","isabel","ising","isis","islam","island","isle","isn't","israel","issue","it","it&t","it'd","it'll","italy","itch","item","ito","itt","iu","iv","ivan","ive","ivory","ivy","iw","ix","iy","iz","j","j's","ja","jab","jack","jacky","jacm","jacob","jacobi","jade","jag","jail","jaime","jake","jam","james","jan","jane","janet","janos","janus","japan","jar","jason","java","jaw","jay","jazz","jazzy","jb","jc","jd","je","jean","jed","jeep","jeff","jejune","jelly","jenny","jeres","jerk","jerky","jerry","jersey","jess","jesse","jest","jesus","jet","jew","jewel","jewett","jewish","jf","jg","jh","ji","jibe","jiffy","jig","jill","jilt","jim","jimmy","jinx","jive","jj","jjj","jjjj","jk","jkl","jl","jm","jn","jo","joan","job","jock","jockey","joe","joel","joey","jog","john","johns","join","joint","joke","jolla","jolly","jolt","jon","jonas","jones","jorge","jose","josef","joshua","joss","jostle","jot","joule","joust","jove","jowl","jowly","joy","joyce","jp","jq","jr","js","jt","ju","juan","judas","judd","jude","judge","judo","judy","jug","juggle","juice","juicy","juju","juke","jukes","julep","jules","julia","julie","julio","july","jumbo","jump","jumpy","junco","june","junk","junky","juno","junta","jura","jure","juror","jury","just","jut","jute","jv","jw","jx","jy","jz","k","k's","ka","kabul","kafka","kahn","kajar","kale","kalmia","kane","kant","kapok","kappa","karate","karen","karl","karma","karol","karp","kate","kathy","katie","katz","kava","kay","kayo","kazoo","kb","kc","kd","ke","keats","keel","keen","keep","keg","keith","keller","kelly","kelp","kemp","ken","keno","kent","kenya","kepler","kept","kern","kerr","kerry","ketch","kevin","key","keyed","keyes","keys","kf","kg","kh","khaki","khan","khmer","ki","kick","kid","kidde","kidney","kiev","kigali","kill","kim","kin","kind","king","kink","kinky","kiosk","kiowa","kirby","kirk","kirov","kiss","kit","kite","kitty","kiva","kivu","kiwi","kj","kk","kkk","kkkk","kl","klan","klaus","klein","kline","klm","klux","km","kn","knack","knapp","knauer","knead","knee","kneel","knelt","knew","knick","knife","knit","knob","knock","knoll","knot","knott","know","known","knox","knurl","ko","koala","koch","kodak","kola","kombu","kong","koran","korea","kp","kq","kr","kraft","krause","kraut","krebs","kruse","ks","kt","ku","kudo","kudzu","kuhn","kulak","kurd","kurt","kv","kw","kx","ky","kyle","kyoto","kz","l","l's","la","lab","laban","label","labia","labile","lac","lace","lack","lacy","lad","laden","ladle","lady","lag","lager","lagoon","lagos","laid","lain","lair","laity","lake","lam","lamar","lamb","lame","lamp","lana","lance","land","lane","lang","lange","lanka","lanky","lao","laos","lap","lapel","lapse","larch","lard","lares","large","lark","larkin","larry","lars","larva","lase","lash","lass","lasso","last","latch","late","later","latest","latex","lath","lathe","latin","latus","laud","laue","laugh","launch","laura","lava","law","lawn","lawson","lax","lay","layup","laze","lazy","lb","lc","ld","le","lea","leach","lead","leaf","leafy","leak","leaky","lean","leap","leapt","lear","learn","lease","leash","least","leave","led","ledge","lee","leech","leeds","leek","leer","leery","leeway","left","lefty","leg","legal","leggy","legion","leigh","leila","leland","lemma","lemon","len","lena","lend","lenin","lenny","lens","lent","leo","leon","leona","leone","leper","leroy","less","lessee","lest","let","lethe","lev","levee","level","lever","levi","levin","levis","levy","lew","lewd","lewis","leyden","lf","lg","lh","li","liar","libel","libido","libya","lice","lick","lid","lie","lied","lien","lieu","life","lifo","lift","light","like","liken","lila","lilac","lilly","lilt","lily","lima","limb","limbo","lime","limit","limp","lin","lind","linda","linden","line","linen","lingo","link","lint","linus","lion","lip","lipid","lisa","lise","lisle","lisp","list","listen","lit","lithe","litton","live","liven","livid","livre","liz","lizzie","lj","lk","ll","lll","llll","lloyd","lm","lmn","ln","lo","load","loaf","loam","loamy","loan","loath","lob","lobar","lobby","lobe","lobo","local","loci","lock","locke","locus","lodge","loeb","loess","loft","lofty","log","logan","loge","logic","loin","loire","lois","loiter","loki","lola","loll","lolly","lomb","lome","lone","long","look","loom","loon","loop","loose","loot","lop","lope","lopez","lord","lore","loren","los","lose","loss","lossy","lost","lot","lotte","lotus","lou","loud","louis","louise","louse","lousy","louver","love","low","lowe","lower","lowry","loy","loyal","lp","lq","lr","ls","lsi","lt","ltv","lu","lucas","lucia","lucid","luck","lucky","lucre","lucy","lug","luge","luger","luis","luke","lull","lulu","lumbar","lumen","lump","lumpy","lunar","lunch","lund","lung","lunge","lura","lurch","lure","lurid","lurk","lush","lust","lusty","lute","lutz","lux","luxe","luzon","lv","lw","lx","ly","lydia","lye","lying","lykes","lyle","lyman","lymph","lynch","lynn","lynx","lyon","lyons","lyra","lyric","lz","m","m&m","m's","ma","mabel","mac","mace","mach","macho","mack","mackey","macon","macro","mad","madam","made","madman","madsen","mae","magi","magic","magma","magna","magog","maid","maier","mail","maim","main","maine","major","make","malady","malay","male","mali","mall","malt","malta","mambo","mamma","mammal","man","mana","manama","mane","mange","mania","manic","mann","manna","manor","mans","manse","mantle","many","mao","maori","map","maple","mar","marc","march","marco","marcy","mardi","mare","margo","maria","marie","marin","marine","mario","mark","marks","marlin","marrow","marry","mars","marsh","mart","marty","marx","mary","maser","mash","mask","mason","masque","mass","mast","mat","match","mate","mateo","mater","math","matte","maul","mauve","mavis","maw","mawr","max","maxim","maxima","may","maya","maybe","mayer","mayhem","mayo","mayor","mayst","mazda","maze","mb","mba","mc","mccoy","mcgee","mckay","mckee","mcleod","md","me","mead","meal","mealy","mean","meant","meat","meaty","mecca","mecum","medal","medea","media","medic","medley","meek","meet","meg","mega","meier","meir","mel","meld","melee","mellow","melon","melt","memo","memoir","men","mend","menlo","menu","merck","mercy","mere","merge","merit","merle","merry","mesa","mescal","mesh","meson","mess","messy","met","metal","mete","meter","metro","mew","meyer","meyers","mezzo","mf","mg","mh","mi","miami","mica","mice","mickey","micky","micro","mid","midas","midge","midst","mien","miff","mig","might","mike","mila","milan","milch","mild","mildew","mile","miles","milk","milky","mill","mills","milt","mimi","mimic","mince","mind","mine","mini","minim","mink","minnow","minor","minos","minot","minsk","mint","minus","mira","mirage","mire","mirth","miser","misery","miss","missy","mist","misty","mit","mite","mitre","mitt","mix","mixup","mizar","mj","mk","ml","mm","mmm","mmmm","mn","mno","mo","moan","moat","mob","mobil","mock","modal","mode","model","modem","modish","moe","moen","mohr","moire","moist","molal","molar","mold","mole","moll","mollie","molly","molt","molten","mommy","mona","monad","mondo","monel","money","monic","monk","mont","monte","month","monty","moo","mood","moody","moon","moor","moore","moose","moot","mop","moral","morale","moran","more","morel","morn","moron","morse","morsel","mort","mosaic","moser","moses","moss","mossy","most","mot","motel","motet","moth","mother","motif","motor","motto","mould","mound","mount","mourn","mouse","mousy","mouth","move","movie","mow","moyer","mp","mph","mq","mr","mrs","ms","mt","mu","much","muck","mucus","mud","mudd","muddy","muff","muffin","mug","muggy","mugho","muir","mulch","mulct","mule","mull","multi","mum","mummy","munch","mung","munson","muon","muong","mural","muriel","murk","murky","murre","muse","mush","mushy","music","musk","muslim","must","musty","mute","mutt","muzak","muzo","mv","mw","mx","my","myel","myers","mylar","mynah","myopia","myra","myron","myrrh","myself","myth","mz","n","n's","na","naacp","nab","nadir","nag","nagoya","nagy","naiad","nail","nair","naive","naked","name","nan","nancy","naomi","nap","nary","nasa","nasal","nash","nasty","nat","natal","nate","nato","natty","nature","naval","nave","navel","navy","nay","nazi","nb","nbc","nbs","nc","ncaa","ncr","nd","ne","neal","near","neat","neath","neck","ned","nee","need","needy","neff","negate","negro","nehru","neil","nell","nelsen","neon","nepal","nero","nerve","ness","nest","net","neuron","neva","neve","new","newel","newt","next","nf","ng","nh","ni","nib","nibs","nice","nicety","niche","nick","niece","niger","nigh","night","nih","nikko","nil","nile","nimbus","nimh","nina","nine","ninth","niobe","nip","nit","nitric","nitty","nixon","nj","nk","nl","nm","nn","nnn","nnnn","no","noaa","noah","nob","nobel","noble","nod","nodal","node","noel","noise","noisy","nolan","noll","nolo","nomad","non","nonce","none","nook","noon","noose","nop","nor","nora","norm","norma","north","norway","nose","not","notch","note","notre","noun","nov","nova","novak","novel","novo","now","np","nq","nr","nrc","ns","nsf","nt","ntis","nu","nuance","nubia","nuclei","nude","nudge","null","numb","nun","nurse","nut","nv","nw","nx","ny","nyc","nylon","nymph","nyu","nz","o","o'er","o's","oa","oaf","oak","oaken","oakley","oar","oases","oasis","oat","oath","ob","obese","obey","objet","oboe","oc","occur","ocean","oct","octal","octave","octet","od","odd","ode","odin","odium","oe","of","off","offal","offend","offer","oft","often","og","ogden","ogle","ogre","oh","ohio","ohm","ohmic","oi","oil","oily","oint","oj","ok","okay","ol","olaf","olav","old","olden","oldy","olga","olin","olive","olsen","olson","om","omaha","oman","omega","omen","omit","on","once","one","onion","only","onset","onto","onus","onward","onyx","oo","ooo","oooo","ooze","op","opal","opec","opel","open","opera","opium","opt","optic","opus","oq","or","oral","orate","orb","orbit","orchid","ordain","order","ore","organ","orgy","orin","orion","ornery","orono","orr","os","osaka","oscar","osier","oslo","ot","other","otis","ott","otter","otto","ou","ouch","ought","ounce","our","oust","out","ouvre","ouzel","ouzo","ov","ova","oval","ovary","ovate","oven","over","overt","ovid","ow","owe","owens","owing","owl","owly","own","ox","oxen","oxeye","oxide","oxnard","oy","oz","ozark","ozone","p","p's","pa","pablo","pabst","pace","pack","packet","pact","pad","paddy","padre","paean","pagan","page","paid","pail","pain","paine","paint","pair","pal","pale","pall","palm","palo","palsy","pam","pampa","pan","panama","panda","pane","panel","pang","panic","pansy","pant","panty","paoli","pap","papa","papal","papaw","paper","pappy","papua","par","parch","pardon","pare","pareto","paris","park","parke","parks","parr","parry","parse","part","party","pascal","pasha","paso","pass","passe","past","paste","pasty","pat","patch","pate","pater","path","patio","patsy","patti","patton","patty","paul","paula","pauli","paulo","pause","pave","paw","pawn","pax","pay","payday","payne","paz","pb","pbs","pc","pd","pe","pea","peace","peach","peak","peaky","peal","peale","pear","pearl","pease","peat","pebble","pecan","peck","pecos","pedal","pedro","pee","peed","peek","peel","peep","peepy","peer","peg","peggy","pelt","pen","penal","pence","pencil","pend","penh","penn","penna","penny","pent","peony","pep","peppy","pepsi","per","perch","percy","perez","peril","perk","perky","perle","perry","persia","pert","perth","peru","peruse","pest","peste","pet","petal","pete","peter","petit","petri","petty","pew","pewee","pf","pg","ph","ph.d","phage","phase","phd","phenol","phi","phil","phlox","phon","phone","phony","photo","phyla","physic","pi","piano","pica","pick","pickup","picky","pie","piece","pier","pierce","piety","pig","piggy","pike","pile","pill","pilot","pimp","pin","pinch","pine","ping","pinion","pink","pint","pinto","pion","piotr","pious","pip","pipe","piper","pique","pit","pitch","pith","pithy","pitney","pitt","pity","pius","pivot","pixel","pixy","pizza","pj","pk","pl","place","plague","plaid","plain","plan","plane","plank","plant","plasm","plat","plate","plato","play","playa","plaza","plea","plead","pleat","pledge","pliny","plod","plop","plot","plow","pluck","plug","plum","plumb","plume","plump","plunk","plus","plush","plushy","pluto","ply","pm","pn","po","poach","pobox","pod","podge","podia","poe","poem","poesy","poet","poetry","pogo","poi","point","poise","poke","pol","polar","pole","police","polio","polis","polk","polka","poll","polo","pomona","pomp","ponce","pond","pong","pont","pony","pooch","pooh","pool","poole","poop","poor","pop","pope","poppy","porch","pore","pork","porous","port","porte","portia","porto","pose","posey","posh","posit","posse","post","posy","pot","potts","pouch","pound","pour","pout","pow","powder","power","pp","ppm","ppp","pppp","pq","pqr","pr","prado","pram","prank","pratt","pray","preen","prefix","prep","press","prexy","prey","priam","price","prick","pride","prig","prim","prima","prime","primp","prince","print","prior","prism","prissy","privy","prize","pro","probe","prod","prof","prom","prone","prong","proof","prop","propyl","prose","proud","prove","prow","prowl","proxy","prune","pry","ps","psalm","psi","psych","pt","pta","pu","pub","puck","puddly","puerto","puff","puffy","pug","pugh","puke","pull","pulp","pulse","puma","pump","pun","punch","punic","punish","punk","punky","punt","puny","pup","pupal","pupil","puppy","pure","purge","purl","purr","purse","pus","pusan","pusey","push","pussy","put","putt","putty","pv","pvc","pw","px","py","pygmy","pyle","pyre","pyrex","pyrite","pz","q","q's","qa","qatar","qb","qc","qd","qe","qed","qf","qg","qh","qi","qj","qk","ql","qm","qn","qo","qp","qq","qqq","qqqq","qr","qrs","qs","qt","qu","qua","quack","quad","quaff","quail","quake","qualm","quark","quarry","quart","quash","quasi","quay","queasy","queen","queer","quell","query","quest","queue","quick","quid","quiet","quill","quilt","quinn","quint","quip","quirk","quirt","quit","quite","quito","quiz","quo","quod","quota","quote","qv","qw","qx","qy","qz","r","r&d","r's","ra","rabat","rabbi","rabbit","rabid","rabin","race","rack","racy","radar","radii","radio","radium","radix","radon","rae","rafael","raft","rag","rage","raid","rail","rain","rainy","raise","raj","rajah","rake","rally","ralph","ram","raman","ramo","ramp","ramsey","ran","ranch","rand","randy","rang","range","rangy","rank","rant","raoul","rap","rape","rapid","rapt","rare","rasa","rascal","rash","rasp","rat","rata","rate","rater","ratio","rattle","raul","rave","ravel","raven","raw","ray","raze","razor","rb","rc","rca","rd","re","reach","read","ready","reagan","real","realm","ream","reap","rear","reave","reb","rebel","rebut","recipe","reck","recur","red","redeem","reduce","reed","reedy","reef","reek","reel","reese","reeve","refer","regal","regina","regis","reich","reid","reign","rein","relax","relay","relic","reman","remedy","remit","remus","rena","renal","rend","rene","renown","rent","rep","repel","repent","resin","resort","rest","ret","retch","return","reub","rev","reveal","revel","rever","revet","revved","rex","rf","rg","rh","rhea","rheum","rhine","rhino","rho","rhoda","rhode","rhyme","ri","rib","rica","rice","rich","rick","rico","rid","ride","ridge","rifle","rift","rig","riga","rigel","riggs","right","rigid","riley","rill","rilly","rim","rime","rimy","ring","rink","rinse","rio","riot","rip","ripe","ripen","ripley","rise","risen","risk","risky","rite","ritz","rival","riven","river","rivet","riyadh","rj","rk","rl","rm","rn","ro","roach","road","roam","roar","roast","rob","robe","robin","robot","rock","rocket","rocky","rod","rode","rodeo","roe","roger","rogue","roil","role","roll","roman","rome","romeo","romp","ron","rondo","rood","roof","rook","rookie","rooky","room","roomy","roost","root","rope","rosa","rose","rosen","ross","rosy","rot","rotc","roth","rotor","rouge","rough","round","rouse","rout","route","rove","row","rowdy","rowe","roy","royal","royce","rp","rpm","rq","rr","rrr","rrrr","rs","rst","rsvp","rt","ru","ruanda","rub","rube","ruben","rubin","rubric","ruby","ruddy","rude","rudy","rue","rufus","rug","ruin","rule","rum","rumen","rummy","rump","rumpus","run","rune","rung","runge","runic","runt","runty","rupee","rural","ruse","rush","rusk","russ","russo","rust","rusty","rut","ruth","rutty","rv","rw","rx","ry","ryan","ryder","rye","rz","s","s's","sa","sabine","sable","sabra","sac","sachs","sack","sad","saddle","sadie","safari","safe","sag","saga","sage","sago","said","sail","saint","sake","sal","salad","sale","salem","saline","salk","salle","sally","salon","salt","salty","salve","salvo","sam","samba","same","sammy","samoa","samuel","san","sana","sand","sandal","sandy","sane","sang","sank","sans","santa","santo","sao","sap","sappy","sara","sarah","saran","sari","sash","sat","satan","satin","satyr","sauce","saucy","saud","saudi","saul","sault","saute","save","savoy","savvy","saw","sawyer","sax","saxon","say","sb","sc","scab","scala","scald","scale","scalp","scam","scamp","scan","scant","scar","scare","scarf","scary","scat","scaup","scene","scent","school","scion","scm","scoff","scold","scoop","scoot","scope","scops","score","scoria","scorn","scot","scott","scour","scout","scowl","scram","scrap","scrape","screw","scrim","scrub","scuba","scud","scuff","scull","scum","scurry","sd","se","sea","seal","seam","seamy","sean","sear","sears","season","seat","sec","secant","sect","sedan","seder","sedge","see","seed","seedy","seek","seem","seen","seep","seethe","seize","self","sell","selma","semi","sen","send","seneca","senor","sense","sent","sentry","seoul","sepal","sepia","sepoy","sept","septa","sequin","sera","serf","serge","serif","serum","serve","servo","set","seth","seton","setup","seven","sever","severe","sew","sewn","sex","sexy","sf","sg","sh","shack","shad","shade","shady","shafer","shaft","shag","shah","shake","shaken","shako","shaky","shale","shall","sham","shame","shank","shape","shard","share","shari","shark","sharp","shave","shaw","shawl","shay","she","she'd","shea","sheaf","shear","sheath","shed","sheen","sheep","sheer","sheet","sheik","shelf","shell","shied","shift","shill","shim","shin","shine","shinto","shiny","ship","shire","shirk","shirt","shish","shiv","shoal","shock","shod","shoe","shoji","shone","shoo","shook","shoot","shop","shore","short","shot","shout","shove","show","shown","showy","shrank","shred","shrew","shrike","shrub","shrug","shu","shuck","shun","shunt","shut","shy","si","sial","siam","sian","sib","sibley","sibyl","sic","sick","side","sidle","siege","siena","sieve","sift","sigh","sight","sigma","sign","signal","signor","silas","silk","silky","sill","silly","silo","silt","silty","sima","simon","simons","sims","sin","sinai","since","sine","sinew","sing","singe","sinh","sink","sinus","sioux","sip","sir","sire","siren","sis","sisal","sit","site","situ","situs","siva","six","sixgun","sixth","sixty","size","sj","sk","skat","skate","skeet","skew","ski","skid","skied","skiff","skill","skim","skimp","skimpy","skin","skip","skirt","skit","skulk","skull","skunk","sky","skye","sl","slab","slack","slag","slain","slake","slam","slang","slant","slap","slash","slat","slate","slater","slav","slave","slay","sled","sleek","sleep","sleet","slept","slew","slice","slick","slid","slide","slim","slime","slimy","sling","slip","slit","sliver","sloan","slob","sloe","slog","sloop","slop","slope","slosh","slot","sloth","slow","slug","sluice","slum","slump","slung","slur","slurp","sly","sm","smack","small","smart","smash","smear","smell","smelt","smile","smirk","smith","smithy","smog","smoke","smoky","smug","smut","sn","snack","snafu","snag","snail","snake","snap","snare","snark","snarl","snatch","sneak","sneer","snell","snick","sniff","snip","snipe","snob","snook","snoop","snore","snort","snout","snow","snowy","snub","snuff","snug","so","soak","soap","soapy","soar","sob","sober","social","sock","sod","soda","sofa","sofia","soft","soften","soggy","soil","sol","solar","sold","sole","solemn","solid","solo","solon","solve","soma","somal","some","son","sonar","song","sonic","sonny","sonora","sony","soon","soot","sooth","sop","sora","sorb","sore","sorry","sort","sos","sou","sough","soul","sound","soup","sour","source","sousa","south","sow","sown","soy","soya","sp","spa","space","spade","spain","span","spar","spare","sparge","spark","spasm","spat","spate","spawn","spay","speak","spear","spec","speck","sped","speed","spell","spend","spent","sperm","sperry","spew","spica","spice","spicy","spike","spiky","spill","spilt","spin","spine","spiny","spire","spiro","spit","spite","spitz","splat","splay","spline","split","spoil","spoke","spoof","spook","spooky","spool","spoon","spore","sport","spot","spout","sprain","spray","spree","sprig","spruce","sprue","spud","spume","spun","spunk","spur","spurn","spurt","spy","sq","squad","squat","squaw","squibb","squid","squint","sr","sri","ss","sss","ssss","sst","st","st.","stab","stack","stacy","staff","stag","stage","stagy","stahl","staid","stain","stair","stake","stale","stalk","stall","stamp","stan","stance","stand","stank","staph","star","stare","stark","starr","start","stash","state","statue","stave","stay","stead","steak","steal","steam","steed","steel","steele","steen","steep","steer","stein","stella","stem","step","stern","steve","stew","stick","stiff","stile","still","stilt","sting","stingy","stink","stint","stir","stock","stoic","stoke","stole","stomp","stone","stony","stood","stool","stoop","stop","store","storey","stork","storm","story","stout","stove","stow","strafe","strap","straw","stray","strewn","strip","stroll","strom","strop","strum","strut","stu","stuart","stub","stuck","stud","study","stuff","stuffy","stump","stun","stung","stunk","stunt","sturm","style","styli","styx","su","suave","sub","subtly","such","suck","sud","sudan","suds","sue","suey","suez","sugar","suit","suite","sulfa","sulk","sulky","sully","sultry","sum","sumac","summon","sun","sung","sunk","sunny","sunset","suny","sup","super","supra","sure","surf","surge","sus","susan","sushi","susie","sutton","sv","sw","swab","swag","swain","swam","swami","swamp","swampy","swan","swank","swap","swarm","swart","swat","swath","sway","swear","sweat","sweaty","swede","sweep","sweet","swell","swelt","swept","swift","swig","swim","swine","swing","swipe","swirl","swish","swiss","swoop","sword","swore","sworn","swum","swung","sx","sy","sybil","sykes","sylow","sylvan","synge","synod","syria","syrup","sz","t","t's","ta","tab","table","taboo","tabu","tabula","tacit","tack","tacky","tacoma","tact","tad","taffy","taft","tag","tahoe","tail","taint","take","taken","talc","tale","talk","talky","tall","tallow","tally","talon","talus","tam","tame","tamp","tampa","tan","tang","tango","tangy","tanh","tank","tansy","tanya","tao","taos","tap","tapa","tape","taper","tapir","tapis","tappa","tar","tara","tardy","tariff","tarry","tart","task","tass","taste","tasty","tat","tate","tater","tattle","tatty","tau","taunt","taut","tavern","tawny","tax","taxi","tb","tc","td","te","tea","teach","teal","team","tear","tease","teat","tech","tecum","ted","teddy","tee","teem","teen","teensy","teet","teeth","telex","tell","tempo","tempt","ten","tend","tenet","tenney","tenon","tenor","tense","tensor","tent","tenth","tepee","tepid","term","tern","terra","terre","terry","terse","tess","test","testy","tete","texan","texas","text","tf","tg","th","thai","than","thank","that","thaw","the","thea","thee","theft","their","them","theme","then","there","these","theta","they","thick","thief","thigh","thin","thine","thing","think","third","this","thong","thor","thorn","thorny","those","thou","thread","three","threw","throb","throes","throw","thrum","thud","thug","thule","thumb","thump","thus","thy","thyme","ti","tiber","tibet","tibia","tic","tick","ticket","tid","tidal","tidbit","tide","tidy","tie","tied","tier","tift","tiger","tight","til","tilde","tile","till","tilt","tilth","tim","time","timex","timid","timon","tin","tina","tine","tinge","tint","tiny","tioga","tip","tipoff","tippy","tipsy","tire","tit","titan","tithe","title","titus","tj","tk","tl","tm","tn","tnt","to","toad","toady","toast","toby","today","todd","toe","tofu","tog","togo","togs","toil","toilet","token","tokyo","told","toll","tom","tomb","tome","tommy","ton","tonal","tone","tong","toni","tonic","tonk","tonsil","tony","too","took","tool","toot","tooth","top","topaz","topic","topple","topsy","tor","torah","torch","tore","tori","torn","torr","torso","tort","torus","tory","toss","tot","total","tote","totem","touch","tough","tour","tout","tow","towel","tower","town","toxic","toxin","toy","tp","tq","tr","trace","track","tract","tracy","trade","trag","trail","train","trait","tram","tramp","trap","trash","trawl","tray","tread","treat","treble","tree","trek","trench","trend","tress","triad","trial","tribe","trick","tried","trig","trill","trim","trio","trip","tripe","trite","triton","trod","troll","troop","trot","trout","troy","truce","truck","trudge","trudy","true","truly","trump","trunk","truss","trust","truth","trw","try","ts","tsar","tt","ttl","ttt","tttt","tty","tu","tub","tuba","tube","tuck","tudor","tuff","tuft","tug","tulane","tulip","tulle","tulsa","tum","tun","tuna","tune","tung","tunic","tunis","tunnel","tuple","turf","turin","turk","turn","turvy","tusk","tussle","tutor","tutu","tuv","tv","tva","tw","twa","twain","tweak","tweed","twice","twig","twill","twin","twine","twirl","twist","twisty","twit","two","twx","tx","ty","tyburn","tying","tyler","type","typic","typo","tyson","tz","u","u's","ua","ub","uc","ucla","ud","ue","uf","ug","ugh","ugly","uh","ui","uj","uk","ul","ulan","ulcer","ultra","um","umber","umbra","umpire","un","unary","uncle","under","unify","union","unit","unite","unity","unix","until","uo","up","upend","uphold","upon","upper","uproar","upset","uptake","upton","uq","ur","urban","urbane","urea","urge","uri","urine","uris","urn","ursa","us","usa","usaf","usage","usc","usda","use","useful","usgs","usher","usia","usn","usps","ussr","usual","usurp","usury","ut","utah","utica","utile","utmost","utter","uu","uuu","uuuu","uv","uvw","uw","ux","uy","uz","v","v's","va","vacua","vacuo","vade","vaduz","vague","vail","vain","vale","valet","valeur","valid","value","valve","vamp","van","vance","vane","vary","vase","vast","vat","vault","vb","vc","vd","ve","veal","veda","vee","veer","veery","vega","veil","vein","velar","veldt","vella","vellum","venal","vend","venial","venom","vent","venus","vera","verb","verde","verdi","verge","verity","verna","verne","versa","verse","verve","very","vessel","vest","vet","vetch","veto","vex","vf","vg","vh","vi","via","vial","vicar","vice","vichy","vicky","vida","video","vie","viet","view","vigil","vii","viii","vile","villa","vine","vinyl","viola","violet","virgil","virgo","virus","vis","visa","vise","visit","visor","vista","vita","vitae","vital","vito","vitro","viva","vivian","vivid","vivo","vixen","viz","vj","vk","vl","vm","vn","vo","vocal","vogel","vogue","voice","void","volt","volta","volvo","vomit","von","voss","vote","vouch","vow","vowel","vp","vq","vr","vs","vt","vu","vulcan","vv","vvv","vvvv","vw","vx","vy","vying","vz","w","w's","wa","waals","wac","wack","wacke","wacky","waco","wad","wade","wadi","wafer","wag","wage","waggle","wah","wahl","wail","waist","wait","waite","waive","wake","waken","waldo","wale","walk","walkie","wall","walls","wally","walsh","walt","walton","waltz","wan","wand","wane","wang","want","war","ward","ware","warm","warmth","warn","warp","warren","wart","warty","wary","was","wash","washy","wasp","wast","waste","watch","water","watt","watts","wave","wavy","wax","waxen","waxy","way","wayne","wb","wc","wd","we","we'd","we'll","we're","we've","weak","weal","wealth","wean","wear","weary","weave","web","webb","weber","weco","wed","wedge","wee","weed","weedy","week","weeks","weep","wehr","wei","weigh","weir","weird","weiss","welch","weld","well","wells","welsh","welt","wendy","went","wept","were","wert","west","wet","wf","wg","wh","whack","whale","wham","wharf","what","wheat","whee","wheel","whelk","whelm","whelp","when","where","whet","which","whiff","whig","while","whim","whine","whinny","whip","whir","whirl","whisk","whit","white","whiz","who","who'd","whoa","whole","whom","whoop","whoosh","whop","whose","whup","why","wi","wick","wide","widen","widow","width","wield","wier","wife","wig","wild","wile","wiley","wilkes","will","willa","wills","wilma","wilt","wily","win","wince","winch","wind","windy","wine","wing","wink","winnie","wino","winter","winy","wipe","wire","wiry","wise","wish","wishy","wisp","wispy","wit","witch","with","withe","withy","witt","witty","wive","wj","wk","wl","wm","wn","wo","woe","wok","woke","wold","wolf","wolfe","wolff","wolve","woman","womb","women","won","won't","wonder","wong","wont","woo","wood","woods","woody","wool","woozy","word","wordy","wore","work","world","worm","wormy","worn","worry","worse","worst","worth","wotan","would","wound","wove","woven","wow","wp","wq","wr","wrack","wrap","wrath","wreak","wreck","wrest","wring","wrist","writ","write","writhe","wrong","wrote","wry","ws","wt","wu","wuhan","wv","ww","www","wwww","wx","wxy","wy","wyatt","wyeth","wylie","wyman","wyner","wynn","wz","x","x's","xa","xb","xc","xd","xe","xenon","xerox","xf","xg","xh","xi","xj","xk","xl","xm","xn","xo","xp","xq","xr","xs","xt","xu","xv","xw","xx","xxx","xxxx","xy","xylem","xyz","xz","y","y's","ya","yacht","yah","yak","yale","yalta","yam","yamaha","yang","yank","yap","yaqui","yard","yarn","yates","yaw","yawl","yawn","yb","yc","yd","ye","yea","yeah","year","yearn","yeast","yeasty","yeats","yell","yelp","yemen","yen","yet","yf","yg","yh","yi","yield","yin","yip","yj","yk","yl","ym","ymca","yn","yo","yodel","yoder","yoga","yogi","yoke","yokel","yolk","yon","yond","yore","york","yost","you","you'd","young","your","youth","yow","yp","yq","yr","ys","yt","yu","yucca","yuck","yuh","yuki","yukon","yule","yv","yves","yw","ywca","yx","yy","yyy","yyyy","yz","z","z's","za","zag","zaire","zan","zap","zazen","zb","zc","zd","ze","zeal","zealot","zebra","zeiss","zen","zero","zest","zesty","zeta","zeus","zf","zg","zh","zi","zig","zilch","zinc","zing","zion","zip","zj","zk","zl","zloty","zm","zn","zo","zoe","zomba","zone","zoo","zoom","zorn","zp","zq","zr","zs","zt","zu","zurich","zv","zw","zx","zy","zz","zzz","zzzz","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","111","123","200","222","234","300","333","345","400","444","456","500","555","567","600","666","678","700","777","789","800","888","900","999","1000","1111","1234","1492","1500","1600","1700","1776","1800","1812","1900","1910","1920","1925","1930","1935","1940","1945","1950","1955","1960","1965","1970","1975","1980","1985","1990","1991","1992","1993","1994","1995","1996","1997","2000","2001","2020","2222","2345","2468","3000","3333","3456","4000","4321","4444","4567","5000","5555","5678","6000","6666","6789","7000","7777","8000","8888","9000","9876","9999","100th","101st","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","1st","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","2nd","30th","31st","32nd","33rd","34th","35th","36th","37th","38th","39th","3rd","40th","41st","42nd","43rd","44th","45th","46th","47th","48th","49th","4th","50th","51st","52nd","53rd","54th","55th","56th","57th","58th","59th","5th","60th","61st","62nd","63rd","65th","66th","67th","68th","69th","6th","70th","71st","72nd","73rd","74th","75th","76th","77th","78th","79th","7th","80th","81st","82nd","83rd","84th","85th","86th","87th","88th","89th","8th","90th","91st","92nd","93rd","94th","95th","96th","97th","98th","99th","9th","!","!!","\"","#","##","$","$$","%","%%","&","(","()",")","*","**","+","-",":",";","=","?","??","@"];
let bip39words = ["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]
/* SDPG v1.0 https://github.com/coretechs/SDPG public domain */
function byteToHex (byte) {
return (byte < 16) ? "0" + byte.toString(16) : byte.toString(16);
}
function byteArrToHex (byteArr) {
let hex = "", len = byteArr.length;
for(let i = 0; i < len; i++) {
hex += byteToHex(byteArr[i]);
}
return hex;
}
function generatePassphrase (numWords, separatorChar, userRandomBytes) {
let sysRandomBytes = new Uint8Array(32),
randomIterations = new Uint8Array(2),
crypto = window.crypto || window.msCrypto;
try {
crypto.getRandomValues(sysRandomBytes);
crypto.getRandomValues(randomIterations);
let h1 = sha256(userRandomBytes),
h2 = sha256(sysRandomBytes),
it = parseInt((randomIterations[1] * 256) + randomIterations[0] + 4096),
hinit = sha256(h1 + h2 + it),
hstart = hinit;
//stretch
for(let x = 0; x < it; x++) {
hstart = sha256(h1 + h2 + hstart);
}
let hresults = [], dicerolls = [], passphraseArr = [], indexes = [[],[]],
count = 0, n = 0,
hdata = hstart,
passphrase = "";
while(passphraseArr.length < numWords) {
n = parseInt(hdata.substr(count, 1), 16);
if(n && (n <= 6)) {
dicerolls.push(n);
hresults.push("<span class=\"dr\">" + n.toString(16) + "</span>");
if(dicerolls.length === 5) {
let num = dicerolls.map(function (n) { return n - 1; });
let idx = parseInt((num[0] * 1296) + (num[1] * 216) + (num[2] * 36) + (num[3] * 6) + num[4]);
indexes[0].push(dicerolls.join(""));
indexes[1].push(idx);
passphraseArr.push(dicewords[idx]);
dicerolls = [];
}
}
else {
hresults.push(n.toString(16));
}
count++;
//next iteration
if(count % 64 === 0) {
hdata = sha256(h1 + h2 + hdata);
hresults.push("<br>");
count = 0;
}
}
passphrase = passphraseArr.join(separatorChar);
let hr = [], bits = [], bip39phraseArr = [], idxs = [[],[]],
ct = 0, c = 0,
hd = hstart,
bip39phrase = "";
while(bip39phraseArr.length < numWords) {
c = parseInt(hd.substr(ct, 1), 16);
if(c === 0 || c === 1) {
bits.push(c);
hr.push("<span class=\"bi\">" + c.toString(16) + "</span>");
if(bits.length === 11) {
let bitstring = bits.join(""),
idx = parseInt(bitstring,2);
idxs[0].push(bitstring);
idxs[1].push(idx);
bip39phraseArr.push(bip39words[idx]);
bits = [];
}
}
else {
hr.push(c.toString(16));
}
ct++;
//next iteration
if(ct % 64 === 0) {
hd = sha256(h1 + h2 + hd);
hr.push("<br>");
ct = 0;
}
}
bip39phrase = bip39phraseArr.join(" ");
let result = "<table><tbody>";
result += "<tr><td class=\"ra\">ref sha256(\"\")</td><td>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</td></tr>";
result += "<tr><td class=\"ra\">check sha256(\"\")</td><td>" + sha256("") + "</td></tr>";
result += "<tr><td class=\"ra\">dice words array length</td><td>" + dicewords.length + "</td></tr>";
result += "<tr><td class=\"ra\">bip39 words array length</td><td>" + bip39words.length + "</td></tr>";
result += "<tr><td class=\"ra\">userRandomBytes Uint8Array</td><td>" + byteArrToHex(userRandomBytes) + "</td></tr>";
result += "<tr><td class=\"ra\">sysRandomBytes Uint8Array</td><td>" + byteArrToHex(sysRandomBytes) + "</td></tr>";
result += "<tr><td class=\"ra\">userRandomBytes hash h1</td><td>" + h1 + "</td></tr>";
result += "<tr><td class=\"ra\">sysRandomBytes hash h2</td><td>" + h2 + "</td></tr>";
result += "<tr><td class=\"ra\">iterations</td><td>" + it + "</td></tr>";
result += "<tr><td class=\"ra\">sha256(h1+h2+iterations)</td><td>" + hinit + "</td></tr>";
result += "<tr><td class=\"ra\">final iteration hash</td><td>" + hstart + "</td></tr>";
result += "<tr><td class=\"ra\">hash data</td><td>" + hresults.join("") + "</td></tr>";
result += "<tr><td class=\"ra\">dice roll sets</td><td>" + indexes[0].join(" ") + "</td></tr>";
result += "<tr><td class=\"ra\">dice words indexes</td><td>" + indexes[1].join(" ") + "</td></tr>";
result += "<tr><td class=\"ra\">dice words passphrase</td><td><span id=\"passphrase\">" + passphrase + "</span></td></tr>";
result += "<tr><td class=\"ra\">bip39 hash data</td><td>" + hr.join("") + "</td></tr>";
result += "<tr><td class=\"ra\">bip39 bit sets</td><td>" + idxs[0].join(" ") + "</td></tr>";
result += "<tr><td class=\"ra\">bip39 indexes</td><td>" + idxs[1].join(" ") + "</td></tr>";
result += "<tr><td class=\"ra\">bip39 passphrase</td><td><span id=\"passphrase\">" + bip39phrase + "</span></td></tr>";
result += "</tbody></table>"
return result;
}
catch(ex) {
console.log(ex);
return("<P>Error generating passphrase.");
}
}
function init () {
document.controls.start.disabled = false;
document.controls.numWords.disabled = false;
document.controls.separatorChar.disabled = false;
}
function start () {
APP.numWords = document.controls.numWords.value;
APP.separatorChar = document.controls.separatorChar.value;
APP.userRandomBytes = new Uint8Array(32);
APP.initTs = Date.now() % 256;
APP.numBytes = 32;
APP.mouseCount = 0;
document.controls.start.disabled = true;
document.controls.numWords.disabled = true;
document.controls.separatorChar.disabled = true;
document.generatedData.initTs.value = APP.initTs;
document.generatedData.mouseX.value = 0;
document.generatedData.mouseY.value = 0;
document.generatedData.ts.value = 0;
document.generatedData.bv.value = 0;
document.getElementById("userBytes").innerHTML = "";
document.getElementById("mouseCount").innerHTML = APP.mouseCount;
document.getElementById("result").innerHTML = "";
APP.wait = false;
}
let APP = { wait: true };
document.controls.start.onclick = start;
document.getElementById("mouseBox").onmousemove = function (e) {
if(APP.wait || APP.mouseCount >= APP.numBytes) return;
APP.wait = true;
let x = parseInt(e.pageX) % 256,
y = parseInt(e.pageY) % 256,
ts = Date.now() % 256,
inputs = parseInt(x + y + ts + APP.initTs),
userRandomByte = inputs % 256,
userRandomByteHex = byteToHex(userRandomByte);
APP.userRandomBytes[APP.mouseCount] = userRandomByte;
APP.mouseCount++;
let color = (userRandomByte > 160) ? "#000000" : "#FFFFFF",
bgcolor = "#" + userRandomByteHex + userRandomByteHex + userRandomByteHex;
document.generatedData.mouseX.value = x;
document.generatedData.mouseY.value = y;
document.generatedData.ts.value = ts;
document.generatedData.bv.value = userRandomByteHex;
document.getElementById("mouseCount").innerHTML = APP.mouseCount;
document.getElementById("userBytes").innerHTML += "<span style='color: " + color + "; background-color: " + bgcolor + ";'>" + userRandomByteHex + "</span>";
if(APP.mouseCount == APP.numBytes) {
document.getElementById("result").innerHTML = generatePassphrase(APP.numWords, APP.separatorChar, APP.userRandomBytes);
init();
}
else {
setTimeout(function () { APP.wait = false; }, inputs);
}
};
init();
</script>
</body>
</html>