Tools for Deno-Powered Web Extensions
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: add passgen example

+9643 -30
+2 -1
deno.json
··· 1 1 { 2 2 "workspace": [ 3 + "examples/barebones", 4 + "examples/passgen", 3 5 "examples/preact", 4 - "examples/barebones", 5 6 "source" 6 7 ], 7 8 "fmt": {
+89 -29
deno.lock
··· 1 1 { 2 - "version": "4", 2 + "version": "5", 3 3 "specifiers": { 4 4 "jsr:@b-fuze/deno-dom@~0.1.47": "0.1.49", 5 5 "jsr:@bpev/bext@*": "1.4.1", ··· 166 166 ] 167 167 }, 168 168 "@esbuild/aix-ppc64@0.24.2": { 169 - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==" 169 + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", 170 + "os": ["aix"], 171 + "cpu": ["ppc64"] 170 172 }, 171 173 "@esbuild/android-arm64@0.24.2": { 172 - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==" 174 + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", 175 + "os": ["android"], 176 + "cpu": ["arm64"] 173 177 }, 174 178 "@esbuild/android-arm@0.24.2": { 175 - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==" 179 + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", 180 + "os": ["android"], 181 + "cpu": ["arm"] 176 182 }, 177 183 "@esbuild/android-x64@0.24.2": { 178 - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==" 184 + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", 185 + "os": ["android"], 186 + "cpu": ["x64"] 179 187 }, 180 188 "@esbuild/darwin-arm64@0.24.2": { 181 - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==" 189 + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", 190 + "os": ["darwin"], 191 + "cpu": ["arm64"] 182 192 }, 183 193 "@esbuild/darwin-x64@0.24.2": { 184 - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==" 194 + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", 195 + "os": ["darwin"], 196 + "cpu": ["x64"] 185 197 }, 186 198 "@esbuild/freebsd-arm64@0.24.2": { 187 - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==" 199 + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", 200 + "os": ["freebsd"], 201 + "cpu": ["arm64"] 188 202 }, 189 203 "@esbuild/freebsd-x64@0.24.2": { 190 - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==" 204 + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", 205 + "os": ["freebsd"], 206 + "cpu": ["x64"] 191 207 }, 192 208 "@esbuild/linux-arm64@0.24.2": { 193 - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==" 209 + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", 210 + "os": ["linux"], 211 + "cpu": ["arm64"] 194 212 }, 195 213 "@esbuild/linux-arm@0.24.2": { 196 - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==" 214 + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", 215 + "os": ["linux"], 216 + "cpu": ["arm"] 197 217 }, 198 218 "@esbuild/linux-ia32@0.24.2": { 199 - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==" 219 + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", 220 + "os": ["linux"], 221 + "cpu": ["ia32"] 200 222 }, 201 223 "@esbuild/linux-loong64@0.24.2": { 202 - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==" 224 + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", 225 + "os": ["linux"], 226 + "cpu": ["loong64"] 203 227 }, 204 228 "@esbuild/linux-mips64el@0.24.2": { 205 - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==" 229 + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", 230 + "os": ["linux"], 231 + "cpu": ["mips64el"] 206 232 }, 207 233 "@esbuild/linux-ppc64@0.24.2": { 208 - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==" 234 + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", 235 + "os": ["linux"], 236 + "cpu": ["ppc64"] 209 237 }, 210 238 "@esbuild/linux-riscv64@0.24.2": { 211 - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==" 239 + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", 240 + "os": ["linux"], 241 + "cpu": ["riscv64"] 212 242 }, 213 243 "@esbuild/linux-s390x@0.24.2": { 214 - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==" 244 + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", 245 + "os": ["linux"], 246 + "cpu": ["s390x"] 215 247 }, 216 248 "@esbuild/linux-x64@0.24.2": { 217 - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==" 249 + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", 250 + "os": ["linux"], 251 + "cpu": ["x64"] 218 252 }, 219 253 "@esbuild/netbsd-arm64@0.24.2": { 220 - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==" 254 + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", 255 + "os": ["netbsd"], 256 + "cpu": ["arm64"] 221 257 }, 222 258 "@esbuild/netbsd-x64@0.24.2": { 223 - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==" 259 + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", 260 + "os": ["netbsd"], 261 + "cpu": ["x64"] 224 262 }, 225 263 "@esbuild/openbsd-arm64@0.24.2": { 226 - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==" 264 + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", 265 + "os": ["openbsd"], 266 + "cpu": ["arm64"] 227 267 }, 228 268 "@esbuild/openbsd-x64@0.24.2": { 229 - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==" 269 + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", 270 + "os": ["openbsd"], 271 + "cpu": ["x64"] 230 272 }, 231 273 "@esbuild/sunos-x64@0.24.2": { 232 - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==" 274 + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", 275 + "os": ["sunos"], 276 + "cpu": ["x64"] 233 277 }, 234 278 "@esbuild/win32-arm64@0.24.2": { 235 - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==" 279 + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", 280 + "os": ["win32"], 281 + "cpu": ["arm64"] 236 282 }, 237 283 "@esbuild/win32-ia32@0.24.2": { 238 - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==" 284 + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", 285 + "os": ["win32"], 286 + "cpu": ["ia32"] 239 287 }, 240 288 "@esbuild/win32-x64@0.24.2": { 241 - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==" 289 + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", 290 + "os": ["win32"], 291 + "cpu": ["x64"] 242 292 }, 243 293 "@testing-library/dom@8.20.1": { 244 294 "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", ··· 430 480 }, 431 481 "esbuild@0.24.2": { 432 482 "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", 433 - "dependencies": [ 483 + "optionalDependencies": [ 434 484 "@esbuild/aix-ppc64", 435 485 "@esbuild/android-arm", 436 486 "@esbuild/android-arm64", ··· 456 506 "@esbuild/win32-arm64", 457 507 "@esbuild/win32-ia32", 458 508 "@esbuild/win32-x64" 459 - ] 509 + ], 510 + "scripts": true, 511 + "bin": true 460 512 }, 461 513 "for-each@0.3.5": { 462 514 "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", ··· 628 680 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 629 681 }, 630 682 "lz-string@1.5.0": { 631 - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" 683 + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", 684 + "bin": true 632 685 }, 633 686 "math-intrinsics@1.1.0": { 634 687 "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" ··· 826 879 }, 827 880 "workspace": { 828 881 "members": { 882 + "examples/passgen": { 883 + "dependencies": [ 884 + "jsr:@std/assert@1", 885 + "jsr:@std/random@~0.1.2", 886 + "jsr:@std/text@^1.0.15" 887 + ] 888 + }, 829 889 "examples/preact": { 830 890 "dependencies": [ 831 891 "jsr:@b-fuze/deno-dom@~0.1.47",
+674
examples/passgen/LICENSE
··· 1 + GNU GENERAL PUBLIC LICENSE 2 + Version 3, 29 June 2007 3 + 4 + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> 5 + Everyone is permitted to copy and distribute verbatim copies 6 + of this license document, but changing it is not allowed. 7 + 8 + Preamble 9 + 10 + The GNU General Public License is a free, copyleft license for 11 + software and other kinds of works. 12 + 13 + The licenses for most software and other practical works are designed 14 + to take away your freedom to share and change the works. By contrast, 15 + the GNU General Public License is intended to guarantee your freedom to 16 + share and change all versions of a program--to make sure it remains free 17 + software for all its users. We, the Free Software Foundation, use the 18 + GNU General Public License for most of our software; it applies also to 19 + any other work released this way by its authors. You can apply it to 20 + your programs, too. 21 + 22 + When we speak of free software, we are referring to freedom, not 23 + price. Our General Public Licenses are designed to make sure that you 24 + have the freedom to distribute copies of free software (and charge for 25 + them if you wish), that you receive source code or can get it if you 26 + want it, that you can change the software or use pieces of it in new 27 + free programs, and that you know you can do these things. 28 + 29 + To protect your rights, we need to prevent others from denying you 30 + these rights or asking you to surrender the rights. Therefore, you have 31 + certain responsibilities if you distribute copies of the software, or if 32 + you modify it: responsibilities to respect the freedom of others. 33 + 34 + For example, if you distribute copies of such a program, whether 35 + gratis or for a fee, you must pass on to the recipients the same 36 + freedoms that you received. You must make sure that they, too, receive 37 + or can get the source code. And you must show them these terms so they 38 + know their rights. 39 + 40 + Developers that use the GNU GPL protect your rights with two steps: 41 + (1) assert copyright on the software, and (2) offer you this License 42 + giving you legal permission to copy, distribute and/or modify it. 43 + 44 + For the developers' and authors' protection, the GPL clearly explains 45 + that there is no warranty for this free software. For both users' and 46 + authors' sake, the GPL requires that modified versions be marked as 47 + changed, so that their problems will not be attributed erroneously to 48 + authors of previous versions. 49 + 50 + Some devices are designed to deny users access to install or run 51 + modified versions of the software inside them, although the manufacturer 52 + can do so. This is fundamentally incompatible with the aim of 53 + protecting users' freedom to change the software. The systematic 54 + pattern of such abuse occurs in the area of products for individuals to 55 + use, which is precisely where it is most unacceptable. Therefore, we 56 + have designed this version of the GPL to prohibit the practice for those 57 + products. If such problems arise substantially in other domains, we 58 + stand ready to extend this provision to those domains in future versions 59 + of the GPL, as needed to protect the freedom of users. 60 + 61 + Finally, every program is threatened constantly by software patents. 62 + States should not allow patents to restrict development and use of 63 + software on general-purpose computers, but in those that do, we wish to 64 + avoid the special danger that patents applied to a free program could 65 + make it effectively proprietary. To prevent this, the GPL assures that 66 + patents cannot be used to render the program non-free. 67 + 68 + The precise terms and conditions for copying, distribution and 69 + modification follow. 70 + 71 + TERMS AND CONDITIONS 72 + 73 + 0. Definitions. 74 + 75 + "This License" refers to version 3 of the GNU General Public License. 76 + 77 + "Copyright" also means copyright-like laws that apply to other kinds of 78 + works, such as semiconductor masks. 79 + 80 + "The Program" refers to any copyrightable work licensed under this 81 + License. Each licensee is addressed as "you". "Licensees" and 82 + "recipients" may be individuals or organizations. 83 + 84 + To "modify" a work means to copy from or adapt all or part of the work 85 + in a fashion requiring copyright permission, other than the making of an 86 + exact copy. The resulting work is called a "modified version" of the 87 + earlier work or a work "based on" the earlier work. 88 + 89 + A "covered work" means either the unmodified Program or a work based 90 + on the Program. 91 + 92 + To "propagate" a work means to do anything with it that, without 93 + permission, would make you directly or secondarily liable for 94 + infringement under applicable copyright law, except executing it on a 95 + computer or modifying a private copy. Propagation includes copying, 96 + distribution (with or without modification), making available to the 97 + public, and in some countries other activities as well. 98 + 99 + To "convey" a work means any kind of propagation that enables other 100 + parties to make or receive copies. Mere interaction with a user through 101 + a computer network, with no transfer of a copy, is not conveying. 102 + 103 + An interactive user interface displays "Appropriate Legal Notices" 104 + to the extent that it includes a convenient and prominently visible 105 + feature that (1) displays an appropriate copyright notice, and (2) 106 + tells the user that there is no warranty for the work (except to the 107 + extent that warranties are provided), that licensees may convey the 108 + work under this License, and how to view a copy of this License. If 109 + the interface presents a list of user commands or options, such as a 110 + menu, a prominent item in the list meets this criterion. 111 + 112 + 1. Source Code. 113 + 114 + The "source code" for a work means the preferred form of the work 115 + for making modifications to it. "Object code" means any non-source 116 + form of a work. 117 + 118 + A "Standard Interface" means an interface that either is an official 119 + standard defined by a recognized standards body, or, in the case of 120 + interfaces specified for a particular programming language, one that 121 + is widely used among developers working in that language. 122 + 123 + The "System Libraries" of an executable work include anything, other 124 + than the work as a whole, that (a) is included in the normal form of 125 + packaging a Major Component, but which is not part of that Major 126 + Component, and (b) serves only to enable use of the work with that 127 + Major Component, or to implement a Standard Interface for which an 128 + implementation is available to the public in source code form. A 129 + "Major Component", in this context, means a major essential component 130 + (kernel, window system, and so on) of the specific operating system 131 + (if any) on which the executable work runs, or a compiler used to 132 + produce the work, or an object code interpreter used to run it. 133 + 134 + The "Corresponding Source" for a work in object code form means all 135 + the source code needed to generate, install, and (for an executable 136 + work) run the object code and to modify the work, including scripts to 137 + control those activities. However, it does not include the work's 138 + System Libraries, or general-purpose tools or generally available free 139 + programs which are used unmodified in performing those activities but 140 + which are not part of the work. For example, Corresponding Source 141 + includes interface definition files associated with source files for 142 + the work, and the source code for shared libraries and dynamically 143 + linked subprograms that the work is specifically designed to require, 144 + such as by intimate data communication or control flow between those 145 + subprograms and other parts of the work. 146 + 147 + The Corresponding Source need not include anything that users 148 + can regenerate automatically from other parts of the Corresponding 149 + Source. 150 + 151 + The Corresponding Source for a work in source code form is that 152 + same work. 153 + 154 + 2. Basic Permissions. 155 + 156 + All rights granted under this License are granted for the term of 157 + copyright on the Program, and are irrevocable provided the stated 158 + conditions are met. This License explicitly affirms your unlimited 159 + permission to run the unmodified Program. The output from running a 160 + covered work is covered by this License only if the output, given its 161 + content, constitutes a covered work. This License acknowledges your 162 + rights of fair use or other equivalent, as provided by copyright law. 163 + 164 + You may make, run and propagate covered works that you do not 165 + convey, without conditions so long as your license otherwise remains 166 + in force. You may convey covered works to others for the sole purpose 167 + of having them make modifications exclusively for you, or provide you 168 + with facilities for running those works, provided that you comply with 169 + the terms of this License in conveying all material for which you do 170 + not control copyright. Those thus making or running the covered works 171 + for you must do so exclusively on your behalf, under your direction 172 + and control, on terms that prohibit them from making any copies of 173 + your copyrighted material outside their relationship with you. 174 + 175 + Conveying under any other circumstances is permitted solely under 176 + the conditions stated below. Sublicensing is not allowed; section 10 177 + makes it unnecessary. 178 + 179 + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 + 181 + No covered work shall be deemed part of an effective technological 182 + measure under any applicable law fulfilling obligations under article 183 + 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 + similar laws prohibiting or restricting circumvention of such 185 + measures. 186 + 187 + When you convey a covered work, you waive any legal power to forbid 188 + circumvention of technological measures to the extent such circumvention 189 + is effected by exercising rights under this License with respect to 190 + the covered work, and you disclaim any intention to limit operation or 191 + modification of the work as a means of enforcing, against the work's 192 + users, your or third parties' legal rights to forbid circumvention of 193 + technological measures. 194 + 195 + 4. Conveying Verbatim Copies. 196 + 197 + You may convey verbatim copies of the Program's source code as you 198 + receive it, in any medium, provided that you conspicuously and 199 + appropriately publish on each copy an appropriate copyright notice; 200 + keep intact all notices stating that this License and any 201 + non-permissive terms added in accord with section 7 apply to the code; 202 + keep intact all notices of the absence of any warranty; and give all 203 + recipients a copy of this License along with the Program. 204 + 205 + You may charge any price or no price for each copy that you convey, 206 + and you may offer support or warranty protection for a fee. 207 + 208 + 5. Conveying Modified Source Versions. 209 + 210 + You may convey a work based on the Program, or the modifications to 211 + produce it from the Program, in the form of source code under the 212 + terms of section 4, provided that you also meet all of these conditions: 213 + 214 + a) The work must carry prominent notices stating that you modified 215 + it, and giving a relevant date. 216 + 217 + b) The work must carry prominent notices stating that it is 218 + released under this License and any conditions added under section 219 + 7. This requirement modifies the requirement in section 4 to 220 + "keep intact all notices". 221 + 222 + c) You must license the entire work, as a whole, under this 223 + License to anyone who comes into possession of a copy. This 224 + License will therefore apply, along with any applicable section 7 225 + additional terms, to the whole of the work, and all its parts, 226 + regardless of how they are packaged. This License gives no 227 + permission to license the work in any other way, but it does not 228 + invalidate such permission if you have separately received it. 229 + 230 + d) If the work has interactive user interfaces, each must display 231 + Appropriate Legal Notices; however, if the Program has interactive 232 + interfaces that do not display Appropriate Legal Notices, your 233 + work need not make them do so. 234 + 235 + A compilation of a covered work with other separate and independent 236 + works, which are not by their nature extensions of the covered work, 237 + and which are not combined with it such as to form a larger program, 238 + in or on a volume of a storage or distribution medium, is called an 239 + "aggregate" if the compilation and its resulting copyright are not 240 + used to limit the access or legal rights of the compilation's users 241 + beyond what the individual works permit. Inclusion of a covered work 242 + in an aggregate does not cause this License to apply to the other 243 + parts of the aggregate. 244 + 245 + 6. Conveying Non-Source Forms. 246 + 247 + You may convey a covered work in object code form under the terms 248 + of sections 4 and 5, provided that you also convey the 249 + machine-readable Corresponding Source under the terms of this License, 250 + in one of these ways: 251 + 252 + a) Convey the object code in, or embodied in, a physical product 253 + (including a physical distribution medium), accompanied by the 254 + Corresponding Source fixed on a durable physical medium 255 + customarily used for software interchange. 256 + 257 + b) Convey the object code in, or embodied in, a physical product 258 + (including a physical distribution medium), accompanied by a 259 + written offer, valid for at least three years and valid for as 260 + long as you offer spare parts or customer support for that product 261 + model, to give anyone who possesses the object code either (1) a 262 + copy of the Corresponding Source for all the software in the 263 + product that is covered by this License, on a durable physical 264 + medium customarily used for software interchange, for a price no 265 + more than your reasonable cost of physically performing this 266 + conveying of source, or (2) access to copy the 267 + Corresponding Source from a network server at no charge. 268 + 269 + c) Convey individual copies of the object code with a copy of the 270 + written offer to provide the Corresponding Source. This 271 + alternative is allowed only occasionally and noncommercially, and 272 + only if you received the object code with such an offer, in accord 273 + with subsection 6b. 274 + 275 + d) Convey the object code by offering access from a designated 276 + place (gratis or for a charge), and offer equivalent access to the 277 + Corresponding Source in the same way through the same place at no 278 + further charge. You need not require recipients to copy the 279 + Corresponding Source along with the object code. If the place to 280 + copy the object code is a network server, the Corresponding Source 281 + may be on a different server (operated by you or a third party) 282 + that supports equivalent copying facilities, provided you maintain 283 + clear directions next to the object code saying where to find the 284 + Corresponding Source. Regardless of what server hosts the 285 + Corresponding Source, you remain obligated to ensure that it is 286 + available for as long as needed to satisfy these requirements. 287 + 288 + e) Convey the object code using peer-to-peer transmission, provided 289 + you inform other peers where the object code and Corresponding 290 + Source of the work are being offered to the general public at no 291 + charge under subsection 6d. 292 + 293 + A separable portion of the object code, whose source code is excluded 294 + from the Corresponding Source as a System Library, need not be 295 + included in conveying the object code work. 296 + 297 + A "User Product" is either (1) a "consumer product", which means any 298 + tangible personal property which is normally used for personal, family, 299 + or household purposes, or (2) anything designed or sold for incorporation 300 + into a dwelling. In determining whether a product is a consumer product, 301 + doubtful cases shall be resolved in favor of coverage. For a particular 302 + product received by a particular user, "normally used" refers to a 303 + typical or common use of that class of product, regardless of the status 304 + of the particular user or of the way in which the particular user 305 + actually uses, or expects or is expected to use, the product. A product 306 + is a consumer product regardless of whether the product has substantial 307 + commercial, industrial or non-consumer uses, unless such uses represent 308 + the only significant mode of use of the product. 309 + 310 + "Installation Information" for a User Product means any methods, 311 + procedures, authorization keys, or other information required to install 312 + and execute modified versions of a covered work in that User Product from 313 + a modified version of its Corresponding Source. The information must 314 + suffice to ensure that the continued functioning of the modified object 315 + code is in no case prevented or interfered with solely because 316 + modification has been made. 317 + 318 + If you convey an object code work under this section in, or with, or 319 + specifically for use in, a User Product, and the conveying occurs as 320 + part of a transaction in which the right of possession and use of the 321 + User Product is transferred to the recipient in perpetuity or for a 322 + fixed term (regardless of how the transaction is characterized), the 323 + Corresponding Source conveyed under this section must be accompanied 324 + by the Installation Information. But this requirement does not apply 325 + if neither you nor any third party retains the ability to install 326 + modified object code on the User Product (for example, the work has 327 + been installed in ROM). 328 + 329 + The requirement to provide Installation Information does not include a 330 + requirement to continue to provide support service, warranty, or updates 331 + for a work that has been modified or installed by the recipient, or for 332 + the User Product in which it has been modified or installed. Access to a 333 + network may be denied when the modification itself materially and 334 + adversely affects the operation of the network or violates the rules and 335 + protocols for communication across the network. 336 + 337 + Corresponding Source conveyed, and Installation Information provided, 338 + in accord with this section must be in a format that is publicly 339 + documented (and with an implementation available to the public in 340 + source code form), and must require no special password or key for 341 + unpacking, reading or copying. 342 + 343 + 7. Additional Terms. 344 + 345 + "Additional permissions" are terms that supplement the terms of this 346 + License by making exceptions from one or more of its conditions. 347 + Additional permissions that are applicable to the entire Program shall 348 + be treated as though they were included in this License, to the extent 349 + that they are valid under applicable law. If additional permissions 350 + apply only to part of the Program, that part may be used separately 351 + under those permissions, but the entire Program remains governed by 352 + this License without regard to the additional permissions. 353 + 354 + When you convey a copy of a covered work, you may at your option 355 + remove any additional permissions from that copy, or from any part of 356 + it. (Additional permissions may be written to require their own 357 + removal in certain cases when you modify the work.) You may place 358 + additional permissions on material, added by you to a covered work, 359 + for which you have or can give appropriate copyright permission. 360 + 361 + Notwithstanding any other provision of this License, for material you 362 + add to a covered work, you may (if authorized by the copyright holders of 363 + that material) supplement the terms of this License with terms: 364 + 365 + a) Disclaiming warranty or limiting liability differently from the 366 + terms of sections 15 and 16 of this License; or 367 + 368 + b) Requiring preservation of specified reasonable legal notices or 369 + author attributions in that material or in the Appropriate Legal 370 + Notices displayed by works containing it; or 371 + 372 + c) Prohibiting misrepresentation of the origin of that material, or 373 + requiring that modified versions of such material be marked in 374 + reasonable ways as different from the original version; or 375 + 376 + d) Limiting the use for publicity purposes of names of licensors or 377 + authors of the material; or 378 + 379 + e) Declining to grant rights under trademark law for use of some 380 + trade names, trademarks, or service marks; or 381 + 382 + f) Requiring indemnification of licensors and authors of that 383 + material by anyone who conveys the material (or modified versions of 384 + it) with contractual assumptions of liability to the recipient, for 385 + any liability that these contractual assumptions directly impose on 386 + those licensors and authors. 387 + 388 + All other non-permissive additional terms are considered "further 389 + restrictions" within the meaning of section 10. If the Program as you 390 + received it, or any part of it, contains a notice stating that it is 391 + governed by this License along with a term that is a further 392 + restriction, you may remove that term. If a license document contains 393 + a further restriction but permits relicensing or conveying under this 394 + License, you may add to a covered work material governed by the terms 395 + of that license document, provided that the further restriction does 396 + not survive such relicensing or conveying. 397 + 398 + If you add terms to a covered work in accord with this section, you 399 + must place, in the relevant source files, a statement of the 400 + additional terms that apply to those files, or a notice indicating 401 + where to find the applicable terms. 402 + 403 + Additional terms, permissive or non-permissive, may be stated in the 404 + form of a separately written license, or stated as exceptions; 405 + the above requirements apply either way. 406 + 407 + 8. Termination. 408 + 409 + You may not propagate or modify a covered work except as expressly 410 + provided under this License. Any attempt otherwise to propagate or 411 + modify it is void, and will automatically terminate your rights under 412 + this License (including any patent licenses granted under the third 413 + paragraph of section 11). 414 + 415 + However, if you cease all violation of this License, then your 416 + license from a particular copyright holder is reinstated (a) 417 + provisionally, unless and until the copyright holder explicitly and 418 + finally terminates your license, and (b) permanently, if the copyright 419 + holder fails to notify you of the violation by some reasonable means 420 + prior to 60 days after the cessation. 421 + 422 + Moreover, your license from a particular copyright holder is 423 + reinstated permanently if the copyright holder notifies you of the 424 + violation by some reasonable means, this is the first time you have 425 + received notice of violation of this License (for any work) from that 426 + copyright holder, and you cure the violation prior to 30 days after 427 + your receipt of the notice. 428 + 429 + Termination of your rights under this section does not terminate the 430 + licenses of parties who have received copies or rights from you under 431 + this License. If your rights have been terminated and not permanently 432 + reinstated, you do not qualify to receive new licenses for the same 433 + material under section 10. 434 + 435 + 9. Acceptance Not Required for Having Copies. 436 + 437 + You are not required to accept this License in order to receive or 438 + run a copy of the Program. Ancillary propagation of a covered work 439 + occurring solely as a consequence of using peer-to-peer transmission 440 + to receive a copy likewise does not require acceptance. However, 441 + nothing other than this License grants you permission to propagate or 442 + modify any covered work. These actions infringe copyright if you do 443 + not accept this License. Therefore, by modifying or propagating a 444 + covered work, you indicate your acceptance of this License to do so. 445 + 446 + 10. Automatic Licensing of Downstream Recipients. 447 + 448 + Each time you convey a covered work, the recipient automatically 449 + receives a license from the original licensors, to run, modify and 450 + propagate that work, subject to this License. You are not responsible 451 + for enforcing compliance by third parties with this License. 452 + 453 + An "entity transaction" is a transaction transferring control of an 454 + organization, or substantially all assets of one, or subdividing an 455 + organization, or merging organizations. If propagation of a covered 456 + work results from an entity transaction, each party to that 457 + transaction who receives a copy of the work also receives whatever 458 + licenses to the work the party's predecessor in interest had or could 459 + give under the previous paragraph, plus a right to possession of the 460 + Corresponding Source of the work from the predecessor in interest, if 461 + the predecessor has it or can get it with reasonable efforts. 462 + 463 + You may not impose any further restrictions on the exercise of the 464 + rights granted or affirmed under this License. For example, you may 465 + not impose a license fee, royalty, or other charge for exercise of 466 + rights granted under this License, and you may not initiate litigation 467 + (including a cross-claim or counterclaim in a lawsuit) alleging that 468 + any patent claim is infringed by making, using, selling, offering for 469 + sale, or importing the Program or any portion of it. 470 + 471 + 11. Patents. 472 + 473 + A "contributor" is a copyright holder who authorizes use under this 474 + License of the Program or a work on which the Program is based. The 475 + work thus licensed is called the contributor's "contributor version". 476 + 477 + A contributor's "essential patent claims" are all patent claims 478 + owned or controlled by the contributor, whether already acquired or 479 + hereafter acquired, that would be infringed by some manner, permitted 480 + by this License, of making, using, or selling its contributor version, 481 + but do not include claims that would be infringed only as a 482 + consequence of further modification of the contributor version. For 483 + purposes of this definition, "control" includes the right to grant 484 + patent sublicenses in a manner consistent with the requirements of 485 + this License. 486 + 487 + Each contributor grants you a non-exclusive, worldwide, royalty-free 488 + patent license under the contributor's essential patent claims, to 489 + make, use, sell, offer for sale, import and otherwise run, modify and 490 + propagate the contents of its contributor version. 491 + 492 + In the following three paragraphs, a "patent license" is any express 493 + agreement or commitment, however denominated, not to enforce a patent 494 + (such as an express permission to practice a patent or covenant not to 495 + sue for patent infringement). To "grant" such a patent license to a 496 + party means to make such an agreement or commitment not to enforce a 497 + patent against the party. 498 + 499 + If you convey a covered work, knowingly relying on a patent license, 500 + and the Corresponding Source of the work is not available for anyone 501 + to copy, free of charge and under the terms of this License, through a 502 + publicly available network server or other readily accessible means, 503 + then you must either (1) cause the Corresponding Source to be so 504 + available, or (2) arrange to deprive yourself of the benefit of the 505 + patent license for this particular work, or (3) arrange, in a manner 506 + consistent with the requirements of this License, to extend the patent 507 + license to downstream recipients. "Knowingly relying" means you have 508 + actual knowledge that, but for the patent license, your conveying the 509 + covered work in a country, or your recipient's use of the covered work 510 + in a country, would infringe one or more identifiable patents in that 511 + country that you have reason to believe are valid. 512 + 513 + If, pursuant to or in connection with a single transaction or 514 + arrangement, you convey, or propagate by procuring conveyance of, a 515 + covered work, and grant a patent license to some of the parties 516 + receiving the covered work authorizing them to use, propagate, modify 517 + or convey a specific copy of the covered work, then the patent license 518 + you grant is automatically extended to all recipients of the covered 519 + work and works based on it. 520 + 521 + A patent license is "discriminatory" if it does not include within 522 + the scope of its coverage, prohibits the exercise of, or is 523 + conditioned on the non-exercise of one or more of the rights that are 524 + specifically granted under this License. You may not convey a covered 525 + work if you are a party to an arrangement with a third party that is 526 + in the business of distributing software, under which you make payment 527 + to the third party based on the extent of your activity of conveying 528 + the work, and under which the third party grants, to any of the 529 + parties who would receive the covered work from you, a discriminatory 530 + patent license (a) in connection with copies of the covered work 531 + conveyed by you (or copies made from those copies), or (b) primarily 532 + for and in connection with specific products or compilations that 533 + contain the covered work, unless you entered into that arrangement, 534 + or that patent license was granted, prior to 28 March 2007. 535 + 536 + Nothing in this License shall be construed as excluding or limiting 537 + any implied license or other defenses to infringement that may 538 + otherwise be available to you under applicable patent law. 539 + 540 + 12. No Surrender of Others' Freedom. 541 + 542 + If conditions are imposed on you (whether by court order, agreement or 543 + otherwise) that contradict the conditions of this License, they do not 544 + excuse you from the conditions of this License. If you cannot convey a 545 + covered work so as to satisfy simultaneously your obligations under this 546 + License and any other pertinent obligations, then as a consequence you may 547 + not convey it at all. For example, if you agree to terms that obligate you 548 + to collect a royalty for further conveying from those to whom you convey 549 + the Program, the only way you could satisfy both those terms and this 550 + License would be to refrain entirely from conveying the Program. 551 + 552 + 13. Use with the GNU Affero General Public License. 553 + 554 + Notwithstanding any other provision of this License, you have 555 + permission to link or combine any covered work with a work licensed 556 + under version 3 of the GNU Affero General Public License into a single 557 + combined work, and to convey the resulting work. The terms of this 558 + License will continue to apply to the part which is the covered work, 559 + but the special requirements of the GNU Affero General Public License, 560 + section 13, concerning interaction through a network will apply to the 561 + combination as such. 562 + 563 + 14. Revised Versions of this License. 564 + 565 + The Free Software Foundation may publish revised and/or new versions of 566 + the GNU General Public License from time to time. Such new versions will 567 + be similar in spirit to the present version, but may differ in detail to 568 + address new problems or concerns. 569 + 570 + Each version is given a distinguishing version number. If the 571 + Program specifies that a certain numbered version of the GNU General 572 + Public License "or any later version" applies to it, you have the 573 + option of following the terms and conditions either of that numbered 574 + version or of any later version published by the Free Software 575 + Foundation. If the Program does not specify a version number of the 576 + GNU General Public License, you may choose any version ever published 577 + by the Free Software Foundation. 578 + 579 + If the Program specifies that a proxy can decide which future 580 + versions of the GNU General Public License can be used, that proxy's 581 + public statement of acceptance of a version permanently authorizes you 582 + to choose that version for the Program. 583 + 584 + Later license versions may give you additional or different 585 + permissions. However, no additional obligations are imposed on any 586 + author or copyright holder as a result of your choosing to follow a 587 + later version. 588 + 589 + 15. Disclaimer of Warranty. 590 + 591 + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 + 600 + 16. Limitation of Liability. 601 + 602 + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 + SUCH DAMAGES. 611 + 612 + 17. Interpretation of Sections 15 and 16. 613 + 614 + If the disclaimer of warranty and limitation of liability provided 615 + above cannot be given local legal effect according to their terms, 616 + reviewing courts shall apply local law that most closely approximates 617 + an absolute waiver of all civil liability in connection with the 618 + Program, unless a warranty or assumption of liability accompanies a 619 + copy of the Program in return for a fee. 620 + 621 + END OF TERMS AND CONDITIONS 622 + 623 + How to Apply These Terms to Your New Programs 624 + 625 + If you develop a new program, and you want it to be of the greatest 626 + possible use to the public, the best way to achieve this is to make it 627 + free software which everyone can redistribute and change under these terms. 628 + 629 + To do so, attach the following notices to the program. It is safest 630 + to attach them to the start of each source file to most effectively 631 + state the exclusion of warranty; and each file should have at least 632 + the "copyright" line and a pointer to where the full notice is found. 633 + 634 + {one line to give the program's name and a brief idea of what it does.} 635 + Copyright (C) {year} {name of author} 636 + 637 + This program is free software: you can redistribute it and/or modify 638 + it under the terms of the GNU General Public License as published by 639 + the Free Software Foundation, either version 3 of the License, or 640 + (at your option) any later version. 641 + 642 + This program is distributed in the hope that it will be useful, 643 + but WITHOUT ANY WARRANTY; without even the implied warranty of 644 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 + GNU General Public License for more details. 646 + 647 + You should have received a copy of the GNU General Public License 648 + along with this program. If not, see <http://www.gnu.org/licenses/>. 649 + 650 + Also add information on how to contact you by electronic and paper mail. 651 + 652 + If the program does terminal interaction, make it output a short 653 + notice like this when it starts in an interactive mode: 654 + 655 + {project} Copyright (C) {year} {fullname} 656 + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 + This is free software, and you are welcome to redistribute it 658 + under certain conditions; type `show c' for details. 659 + 660 + The hypothetical commands `show w' and `show c' should show the appropriate 661 + parts of the General Public License. Of course, your program's commands 662 + might be different; for a GUI interface, you would use an "about box". 663 + 664 + You should also get your employer (if you work as a programmer) or school, 665 + if any, to sign a "copyright disclaimer" for the program, if necessary. 666 + For more information on this, and how to apply and follow the GNU GPL, see 667 + <http://www.gnu.org/licenses/>. 668 + 669 + The GNU General Public License does not permit incorporating your program 670 + into proprietary programs. If your program is a subroutine library, you 671 + may consider it more useful to permit linking proprietary applications with 672 + the library. If this is what you want to do, use the GNU Lesser General 673 + Public License instead of this License. But first, please read 674 + <http://www.gnu.org/philosophy/why-not-lgpl.html>.
+9
examples/passgen/README.md
··· 1 + # Passgen 2 + 3 + Basically, this is [Bitwarden's](https://github.com/bitwarden/clients/tree/main) Password Generator, without the rest of the app. Some logic is slightly different, just for simplicity, but the core is that app. 4 + 5 + ## How to Build Extension 6 + 7 + 1. Install [Deno](https://deno.com) 8 + 2. Install [Bext](https://jsr.io/@bpev/bext): `deno install -gA --name=bext jsr:@bpev/bext/bin` 9 + 3. `deno task build` builds the extension into `/dist/{browser}`
+31
examples/passgen/deno.json
··· 1 + { 2 + "compilerOptions": { 3 + "lib": ["dom", "dom.iterable", "es2022"] 4 + }, 5 + 6 + "fmt": { 7 + "proseWrap": "preserve", 8 + "semiColons": false, 9 + "singleQuote": true 10 + }, 11 + 12 + "imports": { 13 + "@std/assert": "jsr:@std/assert@1", 14 + "@std/random": "jsr:@std/random@^0.1.2", 15 + "@std/text": "jsr:@std/text@^1.0.15" 16 + }, 17 + 18 + "lint": { 19 + "exclude": ["dist"] 20 + }, 21 + 22 + "tasks": { 23 + "dev": "bext --watch", 24 + "build": "bext", 25 + "build:chrome": "bext chrome", 26 + "build:firefox": "bext firefox", 27 + "test": "deno task check && deno task test:unit && deno lint", 28 + "test:unit": "deno test -A source", 29 + "check": "deno check source/popup.ts" 30 + } 31 + }
+21
examples/passgen/source/manifest.json
··· 1 + { 2 + "manifest_version": 3, 3 + "name": "Gen Password", 4 + "description": "A chrome extension for generating passwords", 5 + "version": "0.0.1", 6 + "action": { 7 + "default_popup": "popup.html", 8 + "default_icon": { 9 + "32": "icons/32.png", 10 + "48": "icons/48.png", 11 + "64": "icons/64.png", 12 + "128": "icons/128.png", 13 + "256": "icons/256.png" 14 + } 15 + }, 16 + "applications": { 17 + "gecko": { 18 + "id": "gen-password@bpev.me" 19 + } 20 + } 21 + }
+324
examples/passgen/source/popup.ts
··· 1 + import generatePassword, { parseOptions } from './utils/generate_password.ts' 2 + import generatePassphrase from './utils/generate_passphrase.ts' 3 + 4 + interface UIElements { 5 + // Tab elements 6 + tabButtons: NodeListOf<HTMLElement> 7 + tabContents: NodeListOf<HTMLElement> 8 + 9 + // Password tab elements 10 + passwordOutput: HTMLElement 11 + regeneratePassword: HTMLElement 12 + copyPassword: HTMLElement 13 + passwordLength: HTMLInputElement 14 + uppercase: HTMLInputElement 15 + lowercase: HTMLInputElement 16 + numbers: HTMLInputElement 17 + special: HTMLInputElement 18 + minNumbers: HTMLInputElement 19 + minSpecial: HTMLInputElement 20 + avoidAmbiguous: HTMLInputElement 21 + 22 + // Passphrase tab elements 23 + passphraseOutput: HTMLElement 24 + regeneratePassphrase: HTMLElement 25 + copyPassphrase: HTMLElement 26 + wordCount: HTMLInputElement 27 + wordSeparator: HTMLInputElement 28 + capitalize: HTMLInputElement 29 + includeNumber: HTMLInputElement 30 + 31 + // Generate button 32 + generateBtn: HTMLElement 33 + } 34 + 35 + class PasswordGeneratorUI { 36 + private elements: UIElements 37 + private currentTab: 'password' | 'passphrase' = 'password' 38 + private currentPassword: string = '' 39 + private currentPassphrase: string = '' 40 + 41 + constructor() { 42 + this.elements = this.getUIElements() 43 + this.setupEventListeners() 44 + this.generatePassword() // Generate initial password 45 + } 46 + 47 + private getUIElements(): UIElements { 48 + return { 49 + tabButtons: document.querySelectorAll('.tab-button'), 50 + tabContents: document.querySelectorAll('.tab-content'), 51 + 52 + passwordOutput: document.getElementById('password-output')!, 53 + regeneratePassword: document.getElementById('regenerate-password')!, 54 + copyPassword: document.getElementById('copy-password')!, 55 + passwordLength: document.getElementById( 56 + 'password-length', 57 + ) as HTMLInputElement, 58 + uppercase: document.getElementById('uppercase') as HTMLInputElement, 59 + lowercase: document.getElementById('lowercase') as HTMLInputElement, 60 + numbers: document.getElementById('numbers') as HTMLInputElement, 61 + special: document.getElementById('special') as HTMLInputElement, 62 + minNumbers: document.getElementById('min-numbers') as HTMLInputElement, 63 + minSpecial: document.getElementById('min-special') as HTMLInputElement, 64 + avoidAmbiguous: document.getElementById( 65 + 'avoid-ambiguous', 66 + ) as HTMLInputElement, 67 + 68 + passphraseOutput: document.getElementById('passphrase-output')!, 69 + regeneratePassphrase: document.getElementById('regenerate-passphrase')!, 70 + copyPassphrase: document.getElementById('copy-passphrase')!, 71 + wordCount: document.getElementById('word-count') as HTMLInputElement, 72 + wordSeparator: document.getElementById( 73 + 'word-separator', 74 + ) as HTMLInputElement, 75 + capitalize: document.getElementById('capitalize') as HTMLInputElement, 76 + includeNumber: document.getElementById( 77 + 'include-number', 78 + ) as HTMLInputElement, 79 + 80 + generateBtn: document.getElementById('generate-btn')!, 81 + } 82 + } 83 + 84 + private setupEventListeners(): void { 85 + // Tab switching 86 + this.elements.tabButtons.forEach((button) => { 87 + button.addEventListener('click', () => { 88 + const tabName = button.getAttribute('data-tab') as 89 + | 'password' 90 + | 'passphrase' 91 + this.switchTab(tabName) 92 + }) 93 + }) 94 + 95 + // Regenerate buttons 96 + this.elements.regeneratePassword.addEventListener('click', () => { 97 + this.generatePassword() 98 + }) 99 + 100 + this.elements.regeneratePassphrase.addEventListener('click', () => { 101 + this.generatePassphrase() 102 + }) 103 + 104 + // Copy buttons 105 + this.elements.copyPassword.addEventListener('click', () => { 106 + this.copyToClipboard(this.currentPassword) 107 + }) 108 + 109 + this.elements.copyPassphrase.addEventListener('click', () => { 110 + this.copyToClipboard(this.currentPassphrase) 111 + }) 112 + 113 + // Auto-generate on option change 114 + const autoGenerateElements = [ 115 + this.elements.passwordLength, 116 + this.elements.uppercase, 117 + this.elements.lowercase, 118 + this.elements.numbers, 119 + this.elements.special, 120 + this.elements.minNumbers, 121 + this.elements.minSpecial, 122 + this.elements.avoidAmbiguous, 123 + this.elements.wordCount, 124 + this.elements.wordSeparator, 125 + this.elements.capitalize, 126 + this.elements.includeNumber, 127 + ] 128 + 129 + autoGenerateElements.forEach((element) => { 130 + element.addEventListener('change', () => { 131 + if (this.currentTab === 'password') { 132 + this.generatePassword() 133 + } else { 134 + this.generatePassphrase() 135 + } 136 + }) 137 + }) 138 + 139 + // Input validation 140 + this.elements.passwordLength.addEventListener('input', () => { 141 + this.validateNumberInput(this.elements.passwordLength, 5, 128) 142 + }) 143 + 144 + this.elements.wordCount.addEventListener('input', () => { 145 + this.validateNumberInput(this.elements.wordCount, 3, 20) 146 + }) 147 + 148 + this.elements.minNumbers.addEventListener('input', () => { 149 + this.validateNumberInput(this.elements.minNumbers, 0, 9) 150 + }) 151 + 152 + this.elements.minSpecial.addEventListener('input', () => { 153 + this.validateNumberInput(this.elements.minSpecial, 0, 9) 154 + }) 155 + } 156 + 157 + private switchTab(tabName: 'password' | 'passphrase'): void { 158 + this.currentTab = tabName 159 + 160 + // Update tab buttons 161 + this.elements.tabButtons.forEach((button) => { 162 + button.classList.remove('active') 163 + if (button.getAttribute('data-tab') === tabName) { 164 + button.classList.add('active') 165 + } 166 + }) 167 + 168 + // Update tab contents 169 + this.elements.tabContents.forEach((content) => { 170 + content.classList.remove('active') 171 + if (content.id === `${tabName}-tab`) { 172 + content.classList.add('active') 173 + } 174 + }) 175 + 176 + // Generate appropriate content for the new tab 177 + if (tabName === 'password') { 178 + if (!this.currentPassword) { 179 + this.generatePassword() 180 + } 181 + } else { 182 + if (!this.currentPassphrase) { 183 + this.generatePassphrase() 184 + } 185 + } 186 + } 187 + 188 + private generatePassword(): void { 189 + try { 190 + // Get checkbox values with explicit boolean conversion 191 + const upperChecked = this.elements.uppercase?.checked === true 192 + const lowerChecked = this.elements.lowercase?.checked === true 193 + const numbersChecked = this.elements.numbers?.checked === true 194 + const specialChecked = this.elements.special?.checked === true 195 + const ambiguousChecked = this.elements.avoidAmbiguous?.checked === true 196 + 197 + const rawOptions = { 198 + length: parseInt(this.elements.passwordLength.value) || 14, 199 + uppercase: upperChecked, 200 + lowercase: lowerChecked, 201 + number: numbersChecked, 202 + special: specialChecked, 203 + ambiguous: !ambiguousChecked, 204 + minNum: parseInt(this.elements.minNumbers.value) || 0, 205 + minSpecial: parseInt(this.elements.minSpecial.value) || 0, 206 + } 207 + 208 + const options = parseOptions(rawOptions) 209 + this.currentPassword = generatePassword(options) 210 + this.displayPassword(this.currentPassword, this.elements.passwordOutput) 211 + } catch (error) { 212 + console.error('Error generating password:', error) 213 + this.elements.passwordOutput.textContent = 'Error generating password' 214 + } 215 + } 216 + 217 + private generatePassphrase(): void { 218 + try { 219 + const options = { 220 + words: parseInt(this.elements.wordCount.value), 221 + separator: this.elements.wordSeparator.value, 222 + capitalize: this.elements.capitalize.checked, 223 + numbers: this.elements.includeNumber.checked, 224 + } 225 + 226 + this.currentPassphrase = generatePassphrase(options) 227 + this.displayPassword( 228 + this.currentPassphrase, 229 + this.elements.passphraseOutput, 230 + ) 231 + } catch (error) { 232 + console.error('Error generating passphrase:', error) 233 + this.elements.passphraseOutput.textContent = 'Error generating passphrase' 234 + } 235 + } 236 + 237 + private displayPassword(password: string, outputElement: HTMLElement): void { 238 + outputElement.classList.remove('placeholder') 239 + 240 + // Color code the password 241 + const coloredPassword = this.colorizePassword(password) 242 + outputElement.innerHTML = coloredPassword 243 + } 244 + 245 + private colorizePassword(password: string): string { 246 + return password 247 + .split('') 248 + .map((char) => { 249 + if (/[0-9]/.test(char)) { 250 + return `<span class="number">${char}</span>` 251 + } else if (/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~`]/.test(char)) { 252 + return `<span class="special">${char}</span>` 253 + } else { 254 + return char 255 + } 256 + }) 257 + .join('') 258 + } 259 + 260 + private validateNumberInput( 261 + input: HTMLInputElement, 262 + min: number, 263 + max: number, 264 + ): void { 265 + const value = parseInt(input.value) 266 + if (isNaN(value) || value < min) { 267 + input.value = min.toString() 268 + } else if (value > max) { 269 + input.value = max.toString() 270 + } 271 + } 272 + 273 + private async copyToClipboard(text: string): Promise<void> { 274 + try { 275 + await navigator.clipboard.writeText(text) 276 + this.showCopyFeedback() 277 + } catch (error) { 278 + console.error('Failed to copy to clipboard:', error) 279 + // Fallback for older browsers 280 + this.fallbackCopyToClipboard(text) 281 + } 282 + } 283 + 284 + private fallbackCopyToClipboard(text: string): void { 285 + const textArea = document.createElement('textarea') 286 + textArea.value = text 287 + textArea.style.position = 'fixed' 288 + textArea.style.left = '-999999px' 289 + textArea.style.top = '-999999px' 290 + document.body.appendChild(textArea) 291 + textArea.focus() 292 + textArea.select() 293 + 294 + try { 295 + document.execCommand('copy') 296 + this.showCopyFeedback() 297 + } catch (error) { 298 + console.error('Fallback copy failed:', error) 299 + } 300 + 301 + document.body.removeChild(textArea) 302 + } 303 + 304 + private showCopyFeedback(): void { 305 + const feedback = document.createElement('div') 306 + feedback.className = 'copy-feedback' 307 + feedback.textContent = 'Copied!' 308 + document.body.appendChild(feedback) 309 + 310 + // Trigger animation 311 + setTimeout(() => feedback.classList.add('show'), 10) 312 + 313 + // Remove feedback after animation 314 + setTimeout(() => { 315 + feedback.classList.remove('show') 316 + setTimeout(() => document.body.removeChild(feedback), 200) 317 + }, 1500) 318 + } 319 + } 320 + 321 + // Initialize the UI when the DOM is loaded 322 + document.addEventListener('DOMContentLoaded', () => { 323 + new PasswordGeneratorUI() 324 + })
+7837
examples/passgen/source/utils/data.ts
··· 1 + export type CharacterSet = string[] 2 + 3 + export type CharacterSets = { 4 + Uppercase: CharacterSet 5 + Lowercase: CharacterSet 6 + Digit: CharacterSet 7 + Special: CharacterSet 8 + } 9 + 10 + /** Request random words drawn from the EFF "5 dice" word list */ 11 + export type EffWordListRequest = { 12 + /** Number of words drawn from the word list */ 13 + numberOfWords: number 14 + /** Separator rendered in between each word */ 15 + separator: string 16 + /** Whether or not a word should include a random digit */ 17 + number: boolean 18 + /** Whether or not the words should be capitalized */ 19 + capitalize: boolean 20 + } 21 + 22 + /** request random username drawn from a word list */ 23 + export type WordsRequest = { 24 + /** the number of words to select. This defaults to 1. */ 25 + numberOfWords?: number 26 + /** Draw the words from a custom word list; defaults to the EFF "5 dice" word list. */ 27 + words?: Array<string> 28 + /** The number of digits to append to the random word(s). Defaults to 0. */ 29 + digits?: number 30 + /** Expected casing of the returned words. Defaults to lowercase. */ 31 + casing?: 'lowercase' | 'TitleCase' | 'camelCase' 32 + } 33 + 34 + function toCharacterSet(characters: string) { 35 + return Object.freeze(characters.split('') as CharacterSet) 36 + } 37 + 38 + const SpecialCharacters = toCharacterSet('!@#$%^&*') 39 + 40 + /** Sets of Ascii characters used for password generation */ 41 + export const Ascii = Object.freeze({ 42 + /** The full set of characters available to the generator */ 43 + Full: Object.freeze({ 44 + Uppercase: toCharacterSet('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 45 + Lowercase: toCharacterSet('abcdefghijklmnopqrstuvwxyz'), 46 + Digit: toCharacterSet('0123456789'), 47 + Special: SpecialCharacters, 48 + } as CharacterSets), 49 + 50 + /** All characters available to the generator that are not ambiguous. */ 51 + Unmistakable: Object.freeze({ 52 + Uppercase: toCharacterSet('ABCDEFGHJKLMNPQRSTUVWXYZ'), 53 + Lowercase: toCharacterSet('abcdefghijkmnopqrstuvwxyz'), 54 + Digit: toCharacterSet('23456789'), 55 + Special: SpecialCharacters, 56 + } as CharacterSets), 57 + }) 58 + 59 + // EFF's Long Wordlist from https://www.eff.org/dice 60 + export const EFFLongWordList = [ 61 + 'abacus', 62 + 'abdomen', 63 + 'abdominal', 64 + 'abide', 65 + 'abiding', 66 + 'ability', 67 + 'ablaze', 68 + 'able', 69 + 'abnormal', 70 + 'abrasion', 71 + 'abrasive', 72 + 'abreast', 73 + 'abridge', 74 + 'abroad', 75 + 'abruptly', 76 + 'absence', 77 + 'absentee', 78 + 'absently', 79 + 'absinthe', 80 + 'absolute', 81 + 'absolve', 82 + 'abstain', 83 + 'abstract', 84 + 'absurd', 85 + 'accent', 86 + 'acclaim', 87 + 'acclimate', 88 + 'accompany', 89 + 'account', 90 + 'accuracy', 91 + 'accurate', 92 + 'accustom', 93 + 'acetone', 94 + 'achiness', 95 + 'aching', 96 + 'acid', 97 + 'acorn', 98 + 'acquaint', 99 + 'acquire', 100 + 'acre', 101 + 'acrobat', 102 + 'acronym', 103 + 'acting', 104 + 'action', 105 + 'activate', 106 + 'activator', 107 + 'active', 108 + 'activism', 109 + 'activist', 110 + 'activity', 111 + 'actress', 112 + 'acts', 113 + 'acutely', 114 + 'acuteness', 115 + 'aeration', 116 + 'aerobics', 117 + 'aerosol', 118 + 'aerospace', 119 + 'afar', 120 + 'affair', 121 + 'affected', 122 + 'affecting', 123 + 'affection', 124 + 'affidavit', 125 + 'affiliate', 126 + 'affirm', 127 + 'affix', 128 + 'afflicted', 129 + 'affluent', 130 + 'afford', 131 + 'affront', 132 + 'aflame', 133 + 'afloat', 134 + 'aflutter', 135 + 'afoot', 136 + 'afraid', 137 + 'afterglow', 138 + 'afterlife', 139 + 'aftermath', 140 + 'aftermost', 141 + 'afternoon', 142 + 'aged', 143 + 'ageless', 144 + 'agency', 145 + 'agenda', 146 + 'agent', 147 + 'aggregate', 148 + 'aghast', 149 + 'agile', 150 + 'agility', 151 + 'aging', 152 + 'agnostic', 153 + 'agonize', 154 + 'agonizing', 155 + 'agony', 156 + 'agreeable', 157 + 'agreeably', 158 + 'agreed', 159 + 'agreeing', 160 + 'agreement', 161 + 'aground', 162 + 'ahead', 163 + 'ahoy', 164 + 'aide', 165 + 'aids', 166 + 'aim', 167 + 'ajar', 168 + 'alabaster', 169 + 'alarm', 170 + 'albatross', 171 + 'album', 172 + 'alfalfa', 173 + 'algebra', 174 + 'algorithm', 175 + 'alias', 176 + 'alibi', 177 + 'alienable', 178 + 'alienate', 179 + 'aliens', 180 + 'alike', 181 + 'alive', 182 + 'alkaline', 183 + 'alkalize', 184 + 'almanac', 185 + 'almighty', 186 + 'almost', 187 + 'aloe', 188 + 'aloft', 189 + 'aloha', 190 + 'alone', 191 + 'alongside', 192 + 'aloof', 193 + 'alphabet', 194 + 'alright', 195 + 'although', 196 + 'altitude', 197 + 'alto', 198 + 'aluminum', 199 + 'alumni', 200 + 'always', 201 + 'amaretto', 202 + 'amaze', 203 + 'amazingly', 204 + 'amber', 205 + 'ambiance', 206 + 'ambiguity', 207 + 'ambiguous', 208 + 'ambition', 209 + 'ambitious', 210 + 'ambulance', 211 + 'ambush', 212 + 'amendable', 213 + 'amendment', 214 + 'amends', 215 + 'amenity', 216 + 'amiable', 217 + 'amicably', 218 + 'amid', 219 + 'amigo', 220 + 'amino', 221 + 'amiss', 222 + 'ammonia', 223 + 'ammonium', 224 + 'amnesty', 225 + 'amniotic', 226 + 'among', 227 + 'amount', 228 + 'amperage', 229 + 'ample', 230 + 'amplifier', 231 + 'amplify', 232 + 'amply', 233 + 'amuck', 234 + 'amulet', 235 + 'amusable', 236 + 'amused', 237 + 'amusement', 238 + 'amuser', 239 + 'amusing', 240 + 'anaconda', 241 + 'anaerobic', 242 + 'anagram', 243 + 'anatomist', 244 + 'anatomy', 245 + 'anchor', 246 + 'anchovy', 247 + 'ancient', 248 + 'android', 249 + 'anemia', 250 + 'anemic', 251 + 'aneurism', 252 + 'anew', 253 + 'angelfish', 254 + 'angelic', 255 + 'anger', 256 + 'angled', 257 + 'angler', 258 + 'angles', 259 + 'angling', 260 + 'angrily', 261 + 'angriness', 262 + 'anguished', 263 + 'angular', 264 + 'animal', 265 + 'animate', 266 + 'animating', 267 + 'animation', 268 + 'animator', 269 + 'anime', 270 + 'animosity', 271 + 'ankle', 272 + 'annex', 273 + 'annotate', 274 + 'announcer', 275 + 'annoying', 276 + 'annually', 277 + 'annuity', 278 + 'anointer', 279 + 'another', 280 + 'answering', 281 + 'antacid', 282 + 'antarctic', 283 + 'anteater', 284 + 'antelope', 285 + 'antennae', 286 + 'anthem', 287 + 'anthill', 288 + 'anthology', 289 + 'antibody', 290 + 'antics', 291 + 'antidote', 292 + 'antihero', 293 + 'antiquely', 294 + 'antiques', 295 + 'antiquity', 296 + 'antirust', 297 + 'antitoxic', 298 + 'antitrust', 299 + 'antiviral', 300 + 'antivirus', 301 + 'antler', 302 + 'antonym', 303 + 'antsy', 304 + 'anvil', 305 + 'anybody', 306 + 'anyhow', 307 + 'anymore', 308 + 'anyone', 309 + 'anyplace', 310 + 'anything', 311 + 'anytime', 312 + 'anyway', 313 + 'anywhere', 314 + 'aorta', 315 + 'apache', 316 + 'apostle', 317 + 'appealing', 318 + 'appear', 319 + 'appease', 320 + 'appeasing', 321 + 'appendage', 322 + 'appendix', 323 + 'appetite', 324 + 'appetizer', 325 + 'applaud', 326 + 'applause', 327 + 'apple', 328 + 'appliance', 329 + 'applicant', 330 + 'applied', 331 + 'apply', 332 + 'appointee', 333 + 'appraisal', 334 + 'appraiser', 335 + 'apprehend', 336 + 'approach', 337 + 'approval', 338 + 'approve', 339 + 'apricot', 340 + 'april', 341 + 'apron', 342 + 'aptitude', 343 + 'aptly', 344 + 'aqua', 345 + 'aqueduct', 346 + 'arbitrary', 347 + 'arbitrate', 348 + 'ardently', 349 + 'area', 350 + 'arena', 351 + 'arguable', 352 + 'arguably', 353 + 'argue', 354 + 'arise', 355 + 'armadillo', 356 + 'armband', 357 + 'armchair', 358 + 'armed', 359 + 'armful', 360 + 'armhole', 361 + 'arming', 362 + 'armless', 363 + 'armoire', 364 + 'armored', 365 + 'armory', 366 + 'armrest', 367 + 'army', 368 + 'aroma', 369 + 'arose', 370 + 'around', 371 + 'arousal', 372 + 'arrange', 373 + 'array', 374 + 'arrest', 375 + 'arrival', 376 + 'arrive', 377 + 'arrogance', 378 + 'arrogant', 379 + 'arson', 380 + 'art', 381 + 'ascend', 382 + 'ascension', 383 + 'ascent', 384 + 'ascertain', 385 + 'ashamed', 386 + 'ashen', 387 + 'ashes', 388 + 'ashy', 389 + 'aside', 390 + 'askew', 391 + 'asleep', 392 + 'asparagus', 393 + 'aspect', 394 + 'aspirate', 395 + 'aspire', 396 + 'aspirin', 397 + 'astonish', 398 + 'astound', 399 + 'astride', 400 + 'astrology', 401 + 'astronaut', 402 + 'astronomy', 403 + 'astute', 404 + 'atlantic', 405 + 'atlas', 406 + 'atom', 407 + 'atonable', 408 + 'atop', 409 + 'atrium', 410 + 'atrocious', 411 + 'atrophy', 412 + 'attach', 413 + 'attain', 414 + 'attempt', 415 + 'attendant', 416 + 'attendee', 417 + 'attention', 418 + 'attentive', 419 + 'attest', 420 + 'attic', 421 + 'attire', 422 + 'attitude', 423 + 'attractor', 424 + 'attribute', 425 + 'atypical', 426 + 'auction', 427 + 'audacious', 428 + 'audacity', 429 + 'audible', 430 + 'audibly', 431 + 'audience', 432 + 'audio', 433 + 'audition', 434 + 'augmented', 435 + 'august', 436 + 'authentic', 437 + 'author', 438 + 'autism', 439 + 'autistic', 440 + 'autograph', 441 + 'automaker', 442 + 'automated', 443 + 'automatic', 444 + 'autopilot', 445 + 'available', 446 + 'avalanche', 447 + 'avatar', 448 + 'avenge', 449 + 'avenging', 450 + 'avenue', 451 + 'average', 452 + 'aversion', 453 + 'avert', 454 + 'aviation', 455 + 'aviator', 456 + 'avid', 457 + 'avoid', 458 + 'await', 459 + 'awaken', 460 + 'award', 461 + 'aware', 462 + 'awhile', 463 + 'awkward', 464 + 'awning', 465 + 'awoke', 466 + 'awry', 467 + 'axis', 468 + 'babble', 469 + 'babbling', 470 + 'babied', 471 + 'baboon', 472 + 'backache', 473 + 'backboard', 474 + 'backboned', 475 + 'backdrop', 476 + 'backed', 477 + 'backer', 478 + 'backfield', 479 + 'backfire', 480 + 'backhand', 481 + 'backing', 482 + 'backlands', 483 + 'backlash', 484 + 'backless', 485 + 'backlight', 486 + 'backlit', 487 + 'backlog', 488 + 'backpack', 489 + 'backpedal', 490 + 'backrest', 491 + 'backroom', 492 + 'backshift', 493 + 'backside', 494 + 'backslid', 495 + 'backspace', 496 + 'backspin', 497 + 'backstab', 498 + 'backstage', 499 + 'backtalk', 500 + 'backtrack', 501 + 'backup', 502 + 'backward', 503 + 'backwash', 504 + 'backwater', 505 + 'backyard', 506 + 'bacon', 507 + 'bacteria', 508 + 'bacterium', 509 + 'badass', 510 + 'badge', 511 + 'badland', 512 + 'badly', 513 + 'badness', 514 + 'baffle', 515 + 'baffling', 516 + 'bagel', 517 + 'bagful', 518 + 'baggage', 519 + 'bagged', 520 + 'baggie', 521 + 'bagginess', 522 + 'bagging', 523 + 'baggy', 524 + 'bagpipe', 525 + 'baguette', 526 + 'baked', 527 + 'bakery', 528 + 'bakeshop', 529 + 'baking', 530 + 'balance', 531 + 'balancing', 532 + 'balcony', 533 + 'balmy', 534 + 'balsamic', 535 + 'bamboo', 536 + 'banana', 537 + 'banish', 538 + 'banister', 539 + 'banjo', 540 + 'bankable', 541 + 'bankbook', 542 + 'banked', 543 + 'banker', 544 + 'banking', 545 + 'banknote', 546 + 'bankroll', 547 + 'banner', 548 + 'bannister', 549 + 'banshee', 550 + 'banter', 551 + 'barbecue', 552 + 'barbed', 553 + 'barbell', 554 + 'barber', 555 + 'barcode', 556 + 'barge', 557 + 'bargraph', 558 + 'barista', 559 + 'baritone', 560 + 'barley', 561 + 'barmaid', 562 + 'barman', 563 + 'barn', 564 + 'barometer', 565 + 'barrack', 566 + 'barracuda', 567 + 'barrel', 568 + 'barrette', 569 + 'barricade', 570 + 'barrier', 571 + 'barstool', 572 + 'bartender', 573 + 'barterer', 574 + 'bash', 575 + 'basically', 576 + 'basics', 577 + 'basil', 578 + 'basin', 579 + 'basis', 580 + 'basket', 581 + 'batboy', 582 + 'batch', 583 + 'bath', 584 + 'baton', 585 + 'bats', 586 + 'battalion', 587 + 'battered', 588 + 'battering', 589 + 'battery', 590 + 'batting', 591 + 'battle', 592 + 'bauble', 593 + 'bazooka', 594 + 'blabber', 595 + 'bladder', 596 + 'blade', 597 + 'blah', 598 + 'blame', 599 + 'blaming', 600 + 'blanching', 601 + 'blandness', 602 + 'blank', 603 + 'blaspheme', 604 + 'blasphemy', 605 + 'blast', 606 + 'blatancy', 607 + 'blatantly', 608 + 'blazer', 609 + 'blazing', 610 + 'bleach', 611 + 'bleak', 612 + 'bleep', 613 + 'blemish', 614 + 'blend', 615 + 'bless', 616 + 'blighted', 617 + 'blimp', 618 + 'bling', 619 + 'blinked', 620 + 'blinker', 621 + 'blinking', 622 + 'blinks', 623 + 'blip', 624 + 'blissful', 625 + 'blitz', 626 + 'blizzard', 627 + 'bloated', 628 + 'bloating', 629 + 'blob', 630 + 'blog', 631 + 'bloomers', 632 + 'blooming', 633 + 'blooper', 634 + 'blot', 635 + 'blouse', 636 + 'blubber', 637 + 'bluff', 638 + 'bluish', 639 + 'blunderer', 640 + 'blunt', 641 + 'blurb', 642 + 'blurred', 643 + 'blurry', 644 + 'blurt', 645 + 'blush', 646 + 'blustery', 647 + 'boaster', 648 + 'boastful', 649 + 'boasting', 650 + 'boat', 651 + 'bobbed', 652 + 'bobbing', 653 + 'bobble', 654 + 'bobcat', 655 + 'bobsled', 656 + 'bobtail', 657 + 'bodacious', 658 + 'body', 659 + 'bogged', 660 + 'boggle', 661 + 'bogus', 662 + 'boil', 663 + 'bok', 664 + 'bolster', 665 + 'bolt', 666 + 'bonanza', 667 + 'bonded', 668 + 'bonding', 669 + 'bondless', 670 + 'boned', 671 + 'bonehead', 672 + 'boneless', 673 + 'bonelike', 674 + 'boney', 675 + 'bonfire', 676 + 'bonnet', 677 + 'bonsai', 678 + 'bonus', 679 + 'bony', 680 + 'boogeyman', 681 + 'boogieman', 682 + 'book', 683 + 'boondocks', 684 + 'booted', 685 + 'booth', 686 + 'bootie', 687 + 'booting', 688 + 'bootlace', 689 + 'bootleg', 690 + 'boots', 691 + 'boozy', 692 + 'borax', 693 + 'boring', 694 + 'borough', 695 + 'borrower', 696 + 'borrowing', 697 + 'boss', 698 + 'botanical', 699 + 'botanist', 700 + 'botany', 701 + 'botch', 702 + 'both', 703 + 'bottle', 704 + 'bottling', 705 + 'bottom', 706 + 'bounce', 707 + 'bouncing', 708 + 'bouncy', 709 + 'bounding', 710 + 'boundless', 711 + 'bountiful', 712 + 'bovine', 713 + 'boxcar', 714 + 'boxer', 715 + 'boxing', 716 + 'boxlike', 717 + 'boxy', 718 + 'breach', 719 + 'breath', 720 + 'breeches', 721 + 'breeching', 722 + 'breeder', 723 + 'breeding', 724 + 'breeze', 725 + 'breezy', 726 + 'brethren', 727 + 'brewery', 728 + 'brewing', 729 + 'briar', 730 + 'bribe', 731 + 'brick', 732 + 'bride', 733 + 'bridged', 734 + 'brigade', 735 + 'bright', 736 + 'brilliant', 737 + 'brim', 738 + 'bring', 739 + 'brink', 740 + 'brisket', 741 + 'briskly', 742 + 'briskness', 743 + 'bristle', 744 + 'brittle', 745 + 'broadband', 746 + 'broadcast', 747 + 'broaden', 748 + 'broadly', 749 + 'broadness', 750 + 'broadside', 751 + 'broadways', 752 + 'broiler', 753 + 'broiling', 754 + 'broken', 755 + 'broker', 756 + 'bronchial', 757 + 'bronco', 758 + 'bronze', 759 + 'bronzing', 760 + 'brook', 761 + 'broom', 762 + 'brought', 763 + 'browbeat', 764 + 'brownnose', 765 + 'browse', 766 + 'browsing', 767 + 'bruising', 768 + 'brunch', 769 + 'brunette', 770 + 'brunt', 771 + 'brush', 772 + 'brussels', 773 + 'brute', 774 + 'brutishly', 775 + 'bubble', 776 + 'bubbling', 777 + 'bubbly', 778 + 'buccaneer', 779 + 'bucked', 780 + 'bucket', 781 + 'buckle', 782 + 'buckshot', 783 + 'buckskin', 784 + 'bucktooth', 785 + 'buckwheat', 786 + 'buddhism', 787 + 'buddhist', 788 + 'budding', 789 + 'buddy', 790 + 'budget', 791 + 'buffalo', 792 + 'buffed', 793 + 'buffer', 794 + 'buffing', 795 + 'buffoon', 796 + 'buggy', 797 + 'bulb', 798 + 'bulge', 799 + 'bulginess', 800 + 'bulgur', 801 + 'bulk', 802 + 'bulldog', 803 + 'bulldozer', 804 + 'bullfight', 805 + 'bullfrog', 806 + 'bullhorn', 807 + 'bullion', 808 + 'bullish', 809 + 'bullpen', 810 + 'bullring', 811 + 'bullseye', 812 + 'bullwhip', 813 + 'bully', 814 + 'bunch', 815 + 'bundle', 816 + 'bungee', 817 + 'bunion', 818 + 'bunkbed', 819 + 'bunkhouse', 820 + 'bunkmate', 821 + 'bunny', 822 + 'bunt', 823 + 'busboy', 824 + 'bush', 825 + 'busily', 826 + 'busload', 827 + 'bust', 828 + 'busybody', 829 + 'buzz', 830 + 'cabana', 831 + 'cabbage', 832 + 'cabbie', 833 + 'cabdriver', 834 + 'cable', 835 + 'caboose', 836 + 'cache', 837 + 'cackle', 838 + 'cacti', 839 + 'cactus', 840 + 'caddie', 841 + 'caddy', 842 + 'cadet', 843 + 'cadillac', 844 + 'cadmium', 845 + 'cage', 846 + 'cahoots', 847 + 'cake', 848 + 'calamari', 849 + 'calamity', 850 + 'calcium', 851 + 'calculate', 852 + 'calculus', 853 + 'caliber', 854 + 'calibrate', 855 + 'calm', 856 + 'caloric', 857 + 'calorie', 858 + 'calzone', 859 + 'camcorder', 860 + 'cameo', 861 + 'camera', 862 + 'camisole', 863 + 'camper', 864 + 'campfire', 865 + 'camping', 866 + 'campsite', 867 + 'campus', 868 + 'canal', 869 + 'canary', 870 + 'cancel', 871 + 'candied', 872 + 'candle', 873 + 'candy', 874 + 'cane', 875 + 'canine', 876 + 'canister', 877 + 'cannabis', 878 + 'canned', 879 + 'canning', 880 + 'cannon', 881 + 'cannot', 882 + 'canola', 883 + 'canon', 884 + 'canopener', 885 + 'canopy', 886 + 'canteen', 887 + 'canyon', 888 + 'capable', 889 + 'capably', 890 + 'capacity', 891 + 'cape', 892 + 'capillary', 893 + 'capital', 894 + 'capitol', 895 + 'capped', 896 + 'capricorn', 897 + 'capsize', 898 + 'capsule', 899 + 'caption', 900 + 'captivate', 901 + 'captive', 902 + 'captivity', 903 + 'capture', 904 + 'caramel', 905 + 'carat', 906 + 'caravan', 907 + 'carbon', 908 + 'cardboard', 909 + 'carded', 910 + 'cardiac', 911 + 'cardigan', 912 + 'cardinal', 913 + 'cardstock', 914 + 'carefully', 915 + 'caregiver', 916 + 'careless', 917 + 'caress', 918 + 'caretaker', 919 + 'cargo', 920 + 'caring', 921 + 'carless', 922 + 'carload', 923 + 'carmaker', 924 + 'carnage', 925 + 'carnation', 926 + 'carnival', 927 + 'carnivore', 928 + 'carol', 929 + 'carpenter', 930 + 'carpentry', 931 + 'carpool', 932 + 'carport', 933 + 'carried', 934 + 'carrot', 935 + 'carrousel', 936 + 'carry', 937 + 'cartel', 938 + 'cartload', 939 + 'carton', 940 + 'cartoon', 941 + 'cartridge', 942 + 'cartwheel', 943 + 'carve', 944 + 'carving', 945 + 'carwash', 946 + 'cascade', 947 + 'case', 948 + 'cash', 949 + 'casing', 950 + 'casino', 951 + 'casket', 952 + 'cassette', 953 + 'casually', 954 + 'casualty', 955 + 'catacomb', 956 + 'catalog', 957 + 'catalyst', 958 + 'catalyze', 959 + 'catapult', 960 + 'cataract', 961 + 'catatonic', 962 + 'catcall', 963 + 'catchable', 964 + 'catcher', 965 + 'catching', 966 + 'catchy', 967 + 'caterer', 968 + 'catering', 969 + 'catfight', 970 + 'catfish', 971 + 'cathedral', 972 + 'cathouse', 973 + 'catlike', 974 + 'catnap', 975 + 'catnip', 976 + 'catsup', 977 + 'cattail', 978 + 'cattishly', 979 + 'cattle', 980 + 'catty', 981 + 'catwalk', 982 + 'caucasian', 983 + 'caucus', 984 + 'causal', 985 + 'causation', 986 + 'cause', 987 + 'causing', 988 + 'cauterize', 989 + 'caution', 990 + 'cautious', 991 + 'cavalier', 992 + 'cavalry', 993 + 'caviar', 994 + 'cavity', 995 + 'cedar', 996 + 'celery', 997 + 'celestial', 998 + 'celibacy', 999 + 'celibate', 1000 + 'celtic', 1001 + 'cement', 1002 + 'census', 1003 + 'ceramics', 1004 + 'ceremony', 1005 + 'certainly', 1006 + 'certainty', 1007 + 'certified', 1008 + 'certify', 1009 + 'cesarean', 1010 + 'cesspool', 1011 + 'chafe', 1012 + 'chaffing', 1013 + 'chain', 1014 + 'chair', 1015 + 'chalice', 1016 + 'challenge', 1017 + 'chamber', 1018 + 'chamomile', 1019 + 'champion', 1020 + 'chance', 1021 + 'change', 1022 + 'channel', 1023 + 'chant', 1024 + 'chaos', 1025 + 'chaperone', 1026 + 'chaplain', 1027 + 'chapped', 1028 + 'chaps', 1029 + 'chapter', 1030 + 'character', 1031 + 'charbroil', 1032 + 'charcoal', 1033 + 'charger', 1034 + 'charging', 1035 + 'chariot', 1036 + 'charity', 1037 + 'charm', 1038 + 'charred', 1039 + 'charter', 1040 + 'charting', 1041 + 'chase', 1042 + 'chasing', 1043 + 'chaste', 1044 + 'chastise', 1045 + 'chastity', 1046 + 'chatroom', 1047 + 'chatter', 1048 + 'chatting', 1049 + 'chatty', 1050 + 'cheating', 1051 + 'cheddar', 1052 + 'cheek', 1053 + 'cheer', 1054 + 'cheese', 1055 + 'cheesy', 1056 + 'chef', 1057 + 'chemicals', 1058 + 'chemist', 1059 + 'chemo', 1060 + 'cherisher', 1061 + 'cherub', 1062 + 'chess', 1063 + 'chest', 1064 + 'chevron', 1065 + 'chevy', 1066 + 'chewable', 1067 + 'chewer', 1068 + 'chewing', 1069 + 'chewy', 1070 + 'chief', 1071 + 'chihuahua', 1072 + 'childcare', 1073 + 'childhood', 1074 + 'childish', 1075 + 'childless', 1076 + 'childlike', 1077 + 'chili', 1078 + 'chill', 1079 + 'chimp', 1080 + 'chip', 1081 + 'chirping', 1082 + 'chirpy', 1083 + 'chitchat', 1084 + 'chivalry', 1085 + 'chive', 1086 + 'chloride', 1087 + 'chlorine', 1088 + 'choice', 1089 + 'chokehold', 1090 + 'choking', 1091 + 'chomp', 1092 + 'chooser', 1093 + 'choosing', 1094 + 'choosy', 1095 + 'chop', 1096 + 'chosen', 1097 + 'chowder', 1098 + 'chowtime', 1099 + 'chrome', 1100 + 'chubby', 1101 + 'chuck', 1102 + 'chug', 1103 + 'chummy', 1104 + 'chump', 1105 + 'chunk', 1106 + 'churn', 1107 + 'chute', 1108 + 'cider', 1109 + 'cilantro', 1110 + 'cinch', 1111 + 'cinema', 1112 + 'cinnamon', 1113 + 'circle', 1114 + 'circling', 1115 + 'circular', 1116 + 'circulate', 1117 + 'circus', 1118 + 'citable', 1119 + 'citadel', 1120 + 'citation', 1121 + 'citizen', 1122 + 'citric', 1123 + 'citrus', 1124 + 'city', 1125 + 'civic', 1126 + 'civil', 1127 + 'clad', 1128 + 'claim', 1129 + 'clambake', 1130 + 'clammy', 1131 + 'clamor', 1132 + 'clamp', 1133 + 'clamshell', 1134 + 'clang', 1135 + 'clanking', 1136 + 'clapped', 1137 + 'clapper', 1138 + 'clapping', 1139 + 'clarify', 1140 + 'clarinet', 1141 + 'clarity', 1142 + 'clash', 1143 + 'clasp', 1144 + 'class', 1145 + 'clatter', 1146 + 'clause', 1147 + 'clavicle', 1148 + 'claw', 1149 + 'clay', 1150 + 'clean', 1151 + 'clear', 1152 + 'cleat', 1153 + 'cleaver', 1154 + 'cleft', 1155 + 'clench', 1156 + 'clergyman', 1157 + 'clerical', 1158 + 'clerk', 1159 + 'clever', 1160 + 'clicker', 1161 + 'client', 1162 + 'climate', 1163 + 'climatic', 1164 + 'cling', 1165 + 'clinic', 1166 + 'clinking', 1167 + 'clip', 1168 + 'clique', 1169 + 'cloak', 1170 + 'clobber', 1171 + 'clock', 1172 + 'clone', 1173 + 'cloning', 1174 + 'closable', 1175 + 'closure', 1176 + 'clothes', 1177 + 'clothing', 1178 + 'cloud', 1179 + 'clover', 1180 + 'clubbed', 1181 + 'clubbing', 1182 + 'clubhouse', 1183 + 'clump', 1184 + 'clumsily', 1185 + 'clumsy', 1186 + 'clunky', 1187 + 'clustered', 1188 + 'clutch', 1189 + 'clutter', 1190 + 'coach', 1191 + 'coagulant', 1192 + 'coastal', 1193 + 'coaster', 1194 + 'coasting', 1195 + 'coastland', 1196 + 'coastline', 1197 + 'coat', 1198 + 'coauthor', 1199 + 'cobalt', 1200 + 'cobbler', 1201 + 'cobweb', 1202 + 'cocoa', 1203 + 'coconut', 1204 + 'cod', 1205 + 'coeditor', 1206 + 'coerce', 1207 + 'coexist', 1208 + 'coffee', 1209 + 'cofounder', 1210 + 'cognition', 1211 + 'cognitive', 1212 + 'cogwheel', 1213 + 'coherence', 1214 + 'coherent', 1215 + 'cohesive', 1216 + 'coil', 1217 + 'coke', 1218 + 'cola', 1219 + 'cold', 1220 + 'coleslaw', 1221 + 'coliseum', 1222 + 'collage', 1223 + 'collapse', 1224 + 'collar', 1225 + 'collected', 1226 + 'collector', 1227 + 'collide', 1228 + 'collie', 1229 + 'collision', 1230 + 'colonial', 1231 + 'colonist', 1232 + 'colonize', 1233 + 'colony', 1234 + 'colossal', 1235 + 'colt', 1236 + 'coma', 1237 + 'come', 1238 + 'comfort', 1239 + 'comfy', 1240 + 'comic', 1241 + 'coming', 1242 + 'comma', 1243 + 'commence', 1244 + 'commend', 1245 + 'comment', 1246 + 'commerce', 1247 + 'commode', 1248 + 'commodity', 1249 + 'commodore', 1250 + 'common', 1251 + 'commotion', 1252 + 'commute', 1253 + 'commuting', 1254 + 'compacted', 1255 + 'compacter', 1256 + 'compactly', 1257 + 'compactor', 1258 + 'companion', 1259 + 'company', 1260 + 'compare', 1261 + 'compel', 1262 + 'compile', 1263 + 'comply', 1264 + 'component', 1265 + 'composed', 1266 + 'composer', 1267 + 'composite', 1268 + 'compost', 1269 + 'composure', 1270 + 'compound', 1271 + 'compress', 1272 + 'comprised', 1273 + 'computer', 1274 + 'computing', 1275 + 'comrade', 1276 + 'concave', 1277 + 'conceal', 1278 + 'conceded', 1279 + 'concept', 1280 + 'concerned', 1281 + 'concert', 1282 + 'conch', 1283 + 'concierge', 1284 + 'concise', 1285 + 'conclude', 1286 + 'concrete', 1287 + 'concur', 1288 + 'condense', 1289 + 'condiment', 1290 + 'condition', 1291 + 'condone', 1292 + 'conducive', 1293 + 'conductor', 1294 + 'conduit', 1295 + 'cone', 1296 + 'confess', 1297 + 'confetti', 1298 + 'confidant', 1299 + 'confident', 1300 + 'confider', 1301 + 'confiding', 1302 + 'configure', 1303 + 'confined', 1304 + 'confining', 1305 + 'confirm', 1306 + 'conflict', 1307 + 'conform', 1308 + 'confound', 1309 + 'confront', 1310 + 'confused', 1311 + 'confusing', 1312 + 'confusion', 1313 + 'congenial', 1314 + 'congested', 1315 + 'congrats', 1316 + 'congress', 1317 + 'conical', 1318 + 'conjoined', 1319 + 'conjure', 1320 + 'conjuror', 1321 + 'connected', 1322 + 'connector', 1323 + 'consensus', 1324 + 'consent', 1325 + 'console', 1326 + 'consoling', 1327 + 'consonant', 1328 + 'constable', 1329 + 'constant', 1330 + 'constrain', 1331 + 'constrict', 1332 + 'construct', 1333 + 'consult', 1334 + 'consumer', 1335 + 'consuming', 1336 + 'contact', 1337 + 'container', 1338 + 'contempt', 1339 + 'contend', 1340 + 'contented', 1341 + 'contently', 1342 + 'contents', 1343 + 'contest', 1344 + 'context', 1345 + 'contort', 1346 + 'contour', 1347 + 'contrite', 1348 + 'control', 1349 + 'contusion', 1350 + 'convene', 1351 + 'convent', 1352 + 'copartner', 1353 + 'cope', 1354 + 'copied', 1355 + 'copier', 1356 + 'copilot', 1357 + 'coping', 1358 + 'copious', 1359 + 'copper', 1360 + 'copy', 1361 + 'coral', 1362 + 'cork', 1363 + 'cornball', 1364 + 'cornbread', 1365 + 'corncob', 1366 + 'cornea', 1367 + 'corned', 1368 + 'corner', 1369 + 'cornfield', 1370 + 'cornflake', 1371 + 'cornhusk', 1372 + 'cornmeal', 1373 + 'cornstalk', 1374 + 'corny', 1375 + 'coronary', 1376 + 'coroner', 1377 + 'corporal', 1378 + 'corporate', 1379 + 'corral', 1380 + 'correct', 1381 + 'corridor', 1382 + 'corrode', 1383 + 'corroding', 1384 + 'corrosive', 1385 + 'corsage', 1386 + 'corset', 1387 + 'cortex', 1388 + 'cosigner', 1389 + 'cosmetics', 1390 + 'cosmic', 1391 + 'cosmos', 1392 + 'cosponsor', 1393 + 'cost', 1394 + 'cottage', 1395 + 'cotton', 1396 + 'couch', 1397 + 'cough', 1398 + 'could', 1399 + 'countable', 1400 + 'countdown', 1401 + 'counting', 1402 + 'countless', 1403 + 'country', 1404 + 'county', 1405 + 'courier', 1406 + 'covenant', 1407 + 'cover', 1408 + 'coveted', 1409 + 'coveting', 1410 + 'coyness', 1411 + 'cozily', 1412 + 'coziness', 1413 + 'cozy', 1414 + 'crabbing', 1415 + 'crabgrass', 1416 + 'crablike', 1417 + 'crabmeat', 1418 + 'cradle', 1419 + 'cradling', 1420 + 'crafter', 1421 + 'craftily', 1422 + 'craftsman', 1423 + 'craftwork', 1424 + 'crafty', 1425 + 'cramp', 1426 + 'cranberry', 1427 + 'crane', 1428 + 'cranial', 1429 + 'cranium', 1430 + 'crank', 1431 + 'crate', 1432 + 'crave', 1433 + 'craving', 1434 + 'crawfish', 1435 + 'crawlers', 1436 + 'crawling', 1437 + 'crayfish', 1438 + 'crayon', 1439 + 'crazed', 1440 + 'crazily', 1441 + 'craziness', 1442 + 'crazy', 1443 + 'creamed', 1444 + 'creamer', 1445 + 'creamlike', 1446 + 'crease', 1447 + 'creasing', 1448 + 'creatable', 1449 + 'create', 1450 + 'creation', 1451 + 'creative', 1452 + 'creature', 1453 + 'credible', 1454 + 'credibly', 1455 + 'credit', 1456 + 'creed', 1457 + 'creme', 1458 + 'creole', 1459 + 'crepe', 1460 + 'crept', 1461 + 'crescent', 1462 + 'crested', 1463 + 'cresting', 1464 + 'crestless', 1465 + 'crevice', 1466 + 'crewless', 1467 + 'crewman', 1468 + 'crewmate', 1469 + 'crib', 1470 + 'cricket', 1471 + 'cried', 1472 + 'crier', 1473 + 'crimp', 1474 + 'crimson', 1475 + 'cringe', 1476 + 'cringing', 1477 + 'crinkle', 1478 + 'crinkly', 1479 + 'crisped', 1480 + 'crisping', 1481 + 'crisply', 1482 + 'crispness', 1483 + 'crispy', 1484 + 'criteria', 1485 + 'critter', 1486 + 'croak', 1487 + 'crock', 1488 + 'crook', 1489 + 'croon', 1490 + 'crop', 1491 + 'cross', 1492 + 'crouch', 1493 + 'crouton', 1494 + 'crowbar', 1495 + 'crowd', 1496 + 'crown', 1497 + 'crucial', 1498 + 'crudely', 1499 + 'crudeness', 1500 + 'cruelly', 1501 + 'cruelness', 1502 + 'cruelty', 1503 + 'crumb', 1504 + 'crummiest', 1505 + 'crummy', 1506 + 'crumpet', 1507 + 'crumpled', 1508 + 'cruncher', 1509 + 'crunching', 1510 + 'crunchy', 1511 + 'crusader', 1512 + 'crushable', 1513 + 'crushed', 1514 + 'crusher', 1515 + 'crushing', 1516 + 'crust', 1517 + 'crux', 1518 + 'crying', 1519 + 'cryptic', 1520 + 'crystal', 1521 + 'cubbyhole', 1522 + 'cube', 1523 + 'cubical', 1524 + 'cubicle', 1525 + 'cucumber', 1526 + 'cuddle', 1527 + 'cuddly', 1528 + 'cufflink', 1529 + 'culinary', 1530 + 'culminate', 1531 + 'culpable', 1532 + 'culprit', 1533 + 'cultivate', 1534 + 'cultural', 1535 + 'culture', 1536 + 'cupbearer', 1537 + 'cupcake', 1538 + 'cupid', 1539 + 'cupped', 1540 + 'cupping', 1541 + 'curable', 1542 + 'curator', 1543 + 'curdle', 1544 + 'cure', 1545 + 'curfew', 1546 + 'curing', 1547 + 'curled', 1548 + 'curler', 1549 + 'curliness', 1550 + 'curling', 1551 + 'curly', 1552 + 'curry', 1553 + 'curse', 1554 + 'cursive', 1555 + 'cursor', 1556 + 'curtain', 1557 + 'curtly', 1558 + 'curtsy', 1559 + 'curvature', 1560 + 'curve', 1561 + 'curvy', 1562 + 'cushy', 1563 + 'cusp', 1564 + 'cussed', 1565 + 'custard', 1566 + 'custodian', 1567 + 'custody', 1568 + 'customary', 1569 + 'customer', 1570 + 'customize', 1571 + 'customs', 1572 + 'cut', 1573 + 'cycle', 1574 + 'cyclic', 1575 + 'cycling', 1576 + 'cyclist', 1577 + 'cylinder', 1578 + 'cymbal', 1579 + 'cytoplasm', 1580 + 'cytoplast', 1581 + 'dab', 1582 + 'dad', 1583 + 'daffodil', 1584 + 'dagger', 1585 + 'daily', 1586 + 'daintily', 1587 + 'dainty', 1588 + 'dairy', 1589 + 'daisy', 1590 + 'dallying', 1591 + 'dance', 1592 + 'dancing', 1593 + 'dandelion', 1594 + 'dander', 1595 + 'dandruff', 1596 + 'dandy', 1597 + 'danger', 1598 + 'dangle', 1599 + 'dangling', 1600 + 'daredevil', 1601 + 'dares', 1602 + 'daringly', 1603 + 'darkened', 1604 + 'darkening', 1605 + 'darkish', 1606 + 'darkness', 1607 + 'darkroom', 1608 + 'darling', 1609 + 'darn', 1610 + 'dart', 1611 + 'darwinism', 1612 + 'dash', 1613 + 'dastardly', 1614 + 'data', 1615 + 'datebook', 1616 + 'dating', 1617 + 'daughter', 1618 + 'daunting', 1619 + 'dawdler', 1620 + 'dawn', 1621 + 'daybed', 1622 + 'daybreak', 1623 + 'daycare', 1624 + 'daydream', 1625 + 'daylight', 1626 + 'daylong', 1627 + 'dayroom', 1628 + 'daytime', 1629 + 'dazzler', 1630 + 'dazzling', 1631 + 'deacon', 1632 + 'deafening', 1633 + 'deafness', 1634 + 'dealer', 1635 + 'dealing', 1636 + 'dealmaker', 1637 + 'dealt', 1638 + 'dean', 1639 + 'debatable', 1640 + 'debate', 1641 + 'debating', 1642 + 'debit', 1643 + 'debrief', 1644 + 'debtless', 1645 + 'debtor', 1646 + 'debug', 1647 + 'debunk', 1648 + 'decade', 1649 + 'decaf', 1650 + 'decal', 1651 + 'decathlon', 1652 + 'decay', 1653 + 'deceased', 1654 + 'deceit', 1655 + 'deceiver', 1656 + 'deceiving', 1657 + 'december', 1658 + 'decency', 1659 + 'decent', 1660 + 'deception', 1661 + 'deceptive', 1662 + 'decibel', 1663 + 'decidable', 1664 + 'decimal', 1665 + 'decimeter', 1666 + 'decipher', 1667 + 'deck', 1668 + 'declared', 1669 + 'decline', 1670 + 'decode', 1671 + 'decompose', 1672 + 'decorated', 1673 + 'decorator', 1674 + 'decoy', 1675 + 'decrease', 1676 + 'decree', 1677 + 'dedicate', 1678 + 'dedicator', 1679 + 'deduce', 1680 + 'deduct', 1681 + 'deed', 1682 + 'deem', 1683 + 'deepen', 1684 + 'deeply', 1685 + 'deepness', 1686 + 'deface', 1687 + 'defacing', 1688 + 'defame', 1689 + 'default', 1690 + 'defeat', 1691 + 'defection', 1692 + 'defective', 1693 + 'defendant', 1694 + 'defender', 1695 + 'defense', 1696 + 'defensive', 1697 + 'deferral', 1698 + 'deferred', 1699 + 'defiance', 1700 + 'defiant', 1701 + 'defile', 1702 + 'defiling', 1703 + 'define', 1704 + 'definite', 1705 + 'deflate', 1706 + 'deflation', 1707 + 'deflator', 1708 + 'deflected', 1709 + 'deflector', 1710 + 'defog', 1711 + 'deforest', 1712 + 'defraud', 1713 + 'defrost', 1714 + 'deftly', 1715 + 'defuse', 1716 + 'defy', 1717 + 'degraded', 1718 + 'degrading', 1719 + 'degrease', 1720 + 'degree', 1721 + 'dehydrate', 1722 + 'deity', 1723 + 'dejected', 1724 + 'delay', 1725 + 'delegate', 1726 + 'delegator', 1727 + 'delete', 1728 + 'deletion', 1729 + 'delicacy', 1730 + 'delicate', 1731 + 'delicious', 1732 + 'delighted', 1733 + 'delirious', 1734 + 'delirium', 1735 + 'deliverer', 1736 + 'delivery', 1737 + 'delouse', 1738 + 'delta', 1739 + 'deluge', 1740 + 'delusion', 1741 + 'deluxe', 1742 + 'demanding', 1743 + 'demeaning', 1744 + 'demeanor', 1745 + 'demise', 1746 + 'democracy', 1747 + 'democrat', 1748 + 'demote', 1749 + 'demotion', 1750 + 'demystify', 1751 + 'denatured', 1752 + 'deniable', 1753 + 'denial', 1754 + 'denim', 1755 + 'denote', 1756 + 'dense', 1757 + 'density', 1758 + 'dental', 1759 + 'dentist', 1760 + 'denture', 1761 + 'deny', 1762 + 'deodorant', 1763 + 'deodorize', 1764 + 'departed', 1765 + 'departure', 1766 + 'depict', 1767 + 'deplete', 1768 + 'depletion', 1769 + 'deplored', 1770 + 'deploy', 1771 + 'deport', 1772 + 'depose', 1773 + 'depraved', 1774 + 'depravity', 1775 + 'deprecate', 1776 + 'depress', 1777 + 'deprive', 1778 + 'depth', 1779 + 'deputize', 1780 + 'deputy', 1781 + 'derail', 1782 + 'deranged', 1783 + 'derby', 1784 + 'derived', 1785 + 'desecrate', 1786 + 'deserve', 1787 + 'deserving', 1788 + 'designate', 1789 + 'designed', 1790 + 'designer', 1791 + 'designing', 1792 + 'deskbound', 1793 + 'desktop', 1794 + 'deskwork', 1795 + 'desolate', 1796 + 'despair', 1797 + 'despise', 1798 + 'despite', 1799 + 'destiny', 1800 + 'destitute', 1801 + 'destruct', 1802 + 'detached', 1803 + 'detail', 1804 + 'detection', 1805 + 'detective', 1806 + 'detector', 1807 + 'detention', 1808 + 'detergent', 1809 + 'detest', 1810 + 'detonate', 1811 + 'detonator', 1812 + 'detoxify', 1813 + 'detract', 1814 + 'deuce', 1815 + 'devalue', 1816 + 'deviancy', 1817 + 'deviant', 1818 + 'deviate', 1819 + 'deviation', 1820 + 'deviator', 1821 + 'device', 1822 + 'devious', 1823 + 'devotedly', 1824 + 'devotee', 1825 + 'devotion', 1826 + 'devourer', 1827 + 'devouring', 1828 + 'devoutly', 1829 + 'dexterity', 1830 + 'dexterous', 1831 + 'diabetes', 1832 + 'diabetic', 1833 + 'diabolic', 1834 + 'diagnoses', 1835 + 'diagnosis', 1836 + 'diagram', 1837 + 'dial', 1838 + 'diameter', 1839 + 'diaper', 1840 + 'diaphragm', 1841 + 'diary', 1842 + 'dice', 1843 + 'dicing', 1844 + 'dictate', 1845 + 'dictation', 1846 + 'dictator', 1847 + 'difficult', 1848 + 'diffused', 1849 + 'diffuser', 1850 + 'diffusion', 1851 + 'diffusive', 1852 + 'dig', 1853 + 'dilation', 1854 + 'diligence', 1855 + 'diligent', 1856 + 'dill', 1857 + 'dilute', 1858 + 'dime', 1859 + 'diminish', 1860 + 'dimly', 1861 + 'dimmed', 1862 + 'dimmer', 1863 + 'dimness', 1864 + 'dimple', 1865 + 'diner', 1866 + 'dingbat', 1867 + 'dinghy', 1868 + 'dinginess', 1869 + 'dingo', 1870 + 'dingy', 1871 + 'dining', 1872 + 'dinner', 1873 + 'diocese', 1874 + 'dioxide', 1875 + 'diploma', 1876 + 'dipped', 1877 + 'dipper', 1878 + 'dipping', 1879 + 'directed', 1880 + 'direction', 1881 + 'directive', 1882 + 'directly', 1883 + 'directory', 1884 + 'direness', 1885 + 'dirtiness', 1886 + 'disabled', 1887 + 'disagree', 1888 + 'disallow', 1889 + 'disarm', 1890 + 'disarray', 1891 + 'disaster', 1892 + 'disband', 1893 + 'disbelief', 1894 + 'disburse', 1895 + 'discard', 1896 + 'discern', 1897 + 'discharge', 1898 + 'disclose', 1899 + 'discolor', 1900 + 'discount', 1901 + 'discourse', 1902 + 'discover', 1903 + 'discuss', 1904 + 'disdain', 1905 + 'disengage', 1906 + 'disfigure', 1907 + 'disgrace', 1908 + 'dish', 1909 + 'disinfect', 1910 + 'disjoin', 1911 + 'disk', 1912 + 'dislike', 1913 + 'disliking', 1914 + 'dislocate', 1915 + 'dislodge', 1916 + 'disloyal', 1917 + 'dismantle', 1918 + 'dismay', 1919 + 'dismiss', 1920 + 'dismount', 1921 + 'disobey', 1922 + 'disorder', 1923 + 'disown', 1924 + 'disparate', 1925 + 'disparity', 1926 + 'dispatch', 1927 + 'dispense', 1928 + 'dispersal', 1929 + 'dispersed', 1930 + 'disperser', 1931 + 'displace', 1932 + 'display', 1933 + 'displease', 1934 + 'disposal', 1935 + 'dispose', 1936 + 'disprove', 1937 + 'dispute', 1938 + 'disregard', 1939 + 'disrupt', 1940 + 'dissuade', 1941 + 'distance', 1942 + 'distant', 1943 + 'distaste', 1944 + 'distill', 1945 + 'distinct', 1946 + 'distort', 1947 + 'distract', 1948 + 'distress', 1949 + 'district', 1950 + 'distrust', 1951 + 'ditch', 1952 + 'ditto', 1953 + 'ditzy', 1954 + 'dividable', 1955 + 'divided', 1956 + 'dividend', 1957 + 'dividers', 1958 + 'dividing', 1959 + 'divinely', 1960 + 'diving', 1961 + 'divinity', 1962 + 'divisible', 1963 + 'divisibly', 1964 + 'division', 1965 + 'divisive', 1966 + 'divorcee', 1967 + 'dizziness', 1968 + 'dizzy', 1969 + 'doable', 1970 + 'docile', 1971 + 'dock', 1972 + 'doctrine', 1973 + 'document', 1974 + 'dodge', 1975 + 'dodgy', 1976 + 'doily', 1977 + 'doing', 1978 + 'dole', 1979 + 'dollar', 1980 + 'dollhouse', 1981 + 'dollop', 1982 + 'dolly', 1983 + 'dolphin', 1984 + 'domain', 1985 + 'domelike', 1986 + 'domestic', 1987 + 'dominion', 1988 + 'dominoes', 1989 + 'donated', 1990 + 'donation', 1991 + 'donator', 1992 + 'donor', 1993 + 'donut', 1994 + 'doodle', 1995 + 'doorbell', 1996 + 'doorframe', 1997 + 'doorknob', 1998 + 'doorman', 1999 + 'doormat', 2000 + 'doornail', 2001 + 'doorpost', 2002 + 'doorstep', 2003 + 'doorstop', 2004 + 'doorway', 2005 + 'doozy', 2006 + 'dork', 2007 + 'dormitory', 2008 + 'dorsal', 2009 + 'dosage', 2010 + 'dose', 2011 + 'dotted', 2012 + 'doubling', 2013 + 'douche', 2014 + 'dove', 2015 + 'down', 2016 + 'dowry', 2017 + 'doze', 2018 + 'drab', 2019 + 'dragging', 2020 + 'dragonfly', 2021 + 'dragonish', 2022 + 'dragster', 2023 + 'drainable', 2024 + 'drainage', 2025 + 'drained', 2026 + 'drainer', 2027 + 'drainpipe', 2028 + 'dramatic', 2029 + 'dramatize', 2030 + 'drank', 2031 + 'drapery', 2032 + 'drastic', 2033 + 'draw', 2034 + 'dreaded', 2035 + 'dreadful', 2036 + 'dreadlock', 2037 + 'dreamboat', 2038 + 'dreamily', 2039 + 'dreamland', 2040 + 'dreamless', 2041 + 'dreamlike', 2042 + 'dreamt', 2043 + 'dreamy', 2044 + 'drearily', 2045 + 'dreary', 2046 + 'drench', 2047 + 'dress', 2048 + 'drew', 2049 + 'dribble', 2050 + 'dried', 2051 + 'drier', 2052 + 'drift', 2053 + 'driller', 2054 + 'drilling', 2055 + 'drinkable', 2056 + 'drinking', 2057 + 'dripping', 2058 + 'drippy', 2059 + 'drivable', 2060 + 'driven', 2061 + 'driver', 2062 + 'driveway', 2063 + 'driving', 2064 + 'drizzle', 2065 + 'drizzly', 2066 + 'drone', 2067 + 'drool', 2068 + 'droop', 2069 + 'drop-down', 2070 + 'dropbox', 2071 + 'dropkick', 2072 + 'droplet', 2073 + 'dropout', 2074 + 'dropper', 2075 + 'drove', 2076 + 'drown', 2077 + 'drowsily', 2078 + 'drudge', 2079 + 'drum', 2080 + 'dry', 2081 + 'dubbed', 2082 + 'dubiously', 2083 + 'duchess', 2084 + 'duckbill', 2085 + 'ducking', 2086 + 'duckling', 2087 + 'ducktail', 2088 + 'ducky', 2089 + 'duct', 2090 + 'dude', 2091 + 'duffel', 2092 + 'dugout', 2093 + 'duh', 2094 + 'duke', 2095 + 'duller', 2096 + 'dullness', 2097 + 'duly', 2098 + 'dumping', 2099 + 'dumpling', 2100 + 'dumpster', 2101 + 'duo', 2102 + 'dupe', 2103 + 'duplex', 2104 + 'duplicate', 2105 + 'duplicity', 2106 + 'durable', 2107 + 'durably', 2108 + 'duration', 2109 + 'duress', 2110 + 'during', 2111 + 'dusk', 2112 + 'dust', 2113 + 'dutiful', 2114 + 'duty', 2115 + 'duvet', 2116 + 'dwarf', 2117 + 'dweeb', 2118 + 'dwelled', 2119 + 'dweller', 2120 + 'dwelling', 2121 + 'dwindle', 2122 + 'dwindling', 2123 + 'dynamic', 2124 + 'dynamite', 2125 + 'dynasty', 2126 + 'dyslexia', 2127 + 'dyslexic', 2128 + 'each', 2129 + 'eagle', 2130 + 'earache', 2131 + 'eardrum', 2132 + 'earflap', 2133 + 'earful', 2134 + 'earlobe', 2135 + 'early', 2136 + 'earmark', 2137 + 'earmuff', 2138 + 'earphone', 2139 + 'earpiece', 2140 + 'earplugs', 2141 + 'earring', 2142 + 'earshot', 2143 + 'earthen', 2144 + 'earthlike', 2145 + 'earthling', 2146 + 'earthly', 2147 + 'earthworm', 2148 + 'earthy', 2149 + 'earwig', 2150 + 'easeful', 2151 + 'easel', 2152 + 'easiest', 2153 + 'easily', 2154 + 'easiness', 2155 + 'easing', 2156 + 'eastbound', 2157 + 'eastcoast', 2158 + 'easter', 2159 + 'eastward', 2160 + 'eatable', 2161 + 'eaten', 2162 + 'eatery', 2163 + 'eating', 2164 + 'eats', 2165 + 'ebay', 2166 + 'ebony', 2167 + 'ebook', 2168 + 'ecard', 2169 + 'eccentric', 2170 + 'echo', 2171 + 'eclair', 2172 + 'eclipse', 2173 + 'ecologist', 2174 + 'ecology', 2175 + 'economic', 2176 + 'economist', 2177 + 'economy', 2178 + 'ecosphere', 2179 + 'ecosystem', 2180 + 'edge', 2181 + 'edginess', 2182 + 'edging', 2183 + 'edgy', 2184 + 'edition', 2185 + 'editor', 2186 + 'educated', 2187 + 'education', 2188 + 'educator', 2189 + 'eel', 2190 + 'effective', 2191 + 'effects', 2192 + 'efficient', 2193 + 'effort', 2194 + 'eggbeater', 2195 + 'egging', 2196 + 'eggnog', 2197 + 'eggplant', 2198 + 'eggshell', 2199 + 'egomaniac', 2200 + 'egotism', 2201 + 'egotistic', 2202 + 'either', 2203 + 'eject', 2204 + 'elaborate', 2205 + 'elastic', 2206 + 'elated', 2207 + 'elbow', 2208 + 'eldercare', 2209 + 'elderly', 2210 + 'eldest', 2211 + 'electable', 2212 + 'election', 2213 + 'elective', 2214 + 'elephant', 2215 + 'elevate', 2216 + 'elevating', 2217 + 'elevation', 2218 + 'elevator', 2219 + 'eleven', 2220 + 'elf', 2221 + 'eligible', 2222 + 'eligibly', 2223 + 'eliminate', 2224 + 'elite', 2225 + 'elitism', 2226 + 'elixir', 2227 + 'elk', 2228 + 'ellipse', 2229 + 'elliptic', 2230 + 'elm', 2231 + 'elongated', 2232 + 'elope', 2233 + 'eloquence', 2234 + 'eloquent', 2235 + 'elsewhere', 2236 + 'elude', 2237 + 'elusive', 2238 + 'elves', 2239 + 'email', 2240 + 'embargo', 2241 + 'embark', 2242 + 'embassy', 2243 + 'embattled', 2244 + 'embellish', 2245 + 'ember', 2246 + 'embezzle', 2247 + 'emblaze', 2248 + 'emblem', 2249 + 'embody', 2250 + 'embolism', 2251 + 'emboss', 2252 + 'embroider', 2253 + 'emcee', 2254 + 'emerald', 2255 + 'emergency', 2256 + 'emission', 2257 + 'emit', 2258 + 'emote', 2259 + 'emoticon', 2260 + 'emotion', 2261 + 'empathic', 2262 + 'empathy', 2263 + 'emperor', 2264 + 'emphases', 2265 + 'emphasis', 2266 + 'emphasize', 2267 + 'emphatic', 2268 + 'empirical', 2269 + 'employed', 2270 + 'employee', 2271 + 'employer', 2272 + 'emporium', 2273 + 'empower', 2274 + 'emptier', 2275 + 'emptiness', 2276 + 'empty', 2277 + 'emu', 2278 + 'enable', 2279 + 'enactment', 2280 + 'enamel', 2281 + 'enchanted', 2282 + 'enchilada', 2283 + 'encircle', 2284 + 'enclose', 2285 + 'enclosure', 2286 + 'encode', 2287 + 'encore', 2288 + 'encounter', 2289 + 'encourage', 2290 + 'encroach', 2291 + 'encrust', 2292 + 'encrypt', 2293 + 'endanger', 2294 + 'endeared', 2295 + 'endearing', 2296 + 'ended', 2297 + 'ending', 2298 + 'endless', 2299 + 'endnote', 2300 + 'endocrine', 2301 + 'endorphin', 2302 + 'endorse', 2303 + 'endowment', 2304 + 'endpoint', 2305 + 'endurable', 2306 + 'endurance', 2307 + 'enduring', 2308 + 'energetic', 2309 + 'energize', 2310 + 'energy', 2311 + 'enforced', 2312 + 'enforcer', 2313 + 'engaged', 2314 + 'engaging', 2315 + 'engine', 2316 + 'engorge', 2317 + 'engraved', 2318 + 'engraver', 2319 + 'engraving', 2320 + 'engross', 2321 + 'engulf', 2322 + 'enhance', 2323 + 'enigmatic', 2324 + 'enjoyable', 2325 + 'enjoyably', 2326 + 'enjoyer', 2327 + 'enjoying', 2328 + 'enjoyment', 2329 + 'enlarged', 2330 + 'enlarging', 2331 + 'enlighten', 2332 + 'enlisted', 2333 + 'enquirer', 2334 + 'enrage', 2335 + 'enrich', 2336 + 'enroll', 2337 + 'enslave', 2338 + 'ensnare', 2339 + 'ensure', 2340 + 'entail', 2341 + 'entangled', 2342 + 'entering', 2343 + 'entertain', 2344 + 'enticing', 2345 + 'entire', 2346 + 'entitle', 2347 + 'entity', 2348 + 'entomb', 2349 + 'entourage', 2350 + 'entrap', 2351 + 'entree', 2352 + 'entrench', 2353 + 'entrust', 2354 + 'entryway', 2355 + 'entwine', 2356 + 'enunciate', 2357 + 'envelope', 2358 + 'enviable', 2359 + 'enviably', 2360 + 'envious', 2361 + 'envision', 2362 + 'envoy', 2363 + 'envy', 2364 + 'enzyme', 2365 + 'epic', 2366 + 'epidemic', 2367 + 'epidermal', 2368 + 'epidermis', 2369 + 'epidural', 2370 + 'epilepsy', 2371 + 'epileptic', 2372 + 'epilogue', 2373 + 'epiphany', 2374 + 'episode', 2375 + 'equal', 2376 + 'equate', 2377 + 'equation', 2378 + 'equator', 2379 + 'equinox', 2380 + 'equipment', 2381 + 'equity', 2382 + 'equivocal', 2383 + 'eradicate', 2384 + 'erasable', 2385 + 'erased', 2386 + 'eraser', 2387 + 'erasure', 2388 + 'ergonomic', 2389 + 'errand', 2390 + 'errant', 2391 + 'erratic', 2392 + 'error', 2393 + 'erupt', 2394 + 'escalate', 2395 + 'escalator', 2396 + 'escapable', 2397 + 'escapade', 2398 + 'escapist', 2399 + 'escargot', 2400 + 'eskimo', 2401 + 'esophagus', 2402 + 'espionage', 2403 + 'espresso', 2404 + 'esquire', 2405 + 'essay', 2406 + 'essence', 2407 + 'essential', 2408 + 'establish', 2409 + 'estate', 2410 + 'esteemed', 2411 + 'estimate', 2412 + 'estimator', 2413 + 'estranged', 2414 + 'estrogen', 2415 + 'etching', 2416 + 'eternal', 2417 + 'eternity', 2418 + 'ethanol', 2419 + 'ether', 2420 + 'ethically', 2421 + 'ethics', 2422 + 'euphemism', 2423 + 'evacuate', 2424 + 'evacuee', 2425 + 'evade', 2426 + 'evaluate', 2427 + 'evaluator', 2428 + 'evaporate', 2429 + 'evasion', 2430 + 'evasive', 2431 + 'even', 2432 + 'everglade', 2433 + 'evergreen', 2434 + 'everybody', 2435 + 'everyday', 2436 + 'everyone', 2437 + 'evict', 2438 + 'evidence', 2439 + 'evident', 2440 + 'evil', 2441 + 'evoke', 2442 + 'evolution', 2443 + 'evolve', 2444 + 'exact', 2445 + 'exalted', 2446 + 'example', 2447 + 'excavate', 2448 + 'excavator', 2449 + 'exceeding', 2450 + 'exception', 2451 + 'excess', 2452 + 'exchange', 2453 + 'excitable', 2454 + 'exciting', 2455 + 'exclaim', 2456 + 'exclude', 2457 + 'excluding', 2458 + 'exclusion', 2459 + 'exclusive', 2460 + 'excretion', 2461 + 'excretory', 2462 + 'excursion', 2463 + 'excusable', 2464 + 'excusably', 2465 + 'excuse', 2466 + 'exemplary', 2467 + 'exemplify', 2468 + 'exemption', 2469 + 'exerciser', 2470 + 'exert', 2471 + 'exes', 2472 + 'exfoliate', 2473 + 'exhale', 2474 + 'exhaust', 2475 + 'exhume', 2476 + 'exile', 2477 + 'existing', 2478 + 'exit', 2479 + 'exodus', 2480 + 'exonerate', 2481 + 'exorcism', 2482 + 'exorcist', 2483 + 'expand', 2484 + 'expanse', 2485 + 'expansion', 2486 + 'expansive', 2487 + 'expectant', 2488 + 'expedited', 2489 + 'expediter', 2490 + 'expel', 2491 + 'expend', 2492 + 'expenses', 2493 + 'expensive', 2494 + 'expert', 2495 + 'expire', 2496 + 'expiring', 2497 + 'explain', 2498 + 'expletive', 2499 + 'explicit', 2500 + 'explode', 2501 + 'exploit', 2502 + 'explore', 2503 + 'exploring', 2504 + 'exponent', 2505 + 'exporter', 2506 + 'exposable', 2507 + 'expose', 2508 + 'exposure', 2509 + 'express', 2510 + 'expulsion', 2511 + 'exquisite', 2512 + 'extended', 2513 + 'extending', 2514 + 'extent', 2515 + 'extenuate', 2516 + 'exterior', 2517 + 'external', 2518 + 'extinct', 2519 + 'extortion', 2520 + 'extradite', 2521 + 'extras', 2522 + 'extrovert', 2523 + 'extrude', 2524 + 'extruding', 2525 + 'exuberant', 2526 + 'fable', 2527 + 'fabric', 2528 + 'fabulous', 2529 + 'facebook', 2530 + 'facecloth', 2531 + 'facedown', 2532 + 'faceless', 2533 + 'facelift', 2534 + 'faceplate', 2535 + 'faceted', 2536 + 'facial', 2537 + 'facility', 2538 + 'facing', 2539 + 'facsimile', 2540 + 'faction', 2541 + 'factoid', 2542 + 'factor', 2543 + 'factsheet', 2544 + 'factual', 2545 + 'faculty', 2546 + 'fade', 2547 + 'fading', 2548 + 'failing', 2549 + 'falcon', 2550 + 'fall', 2551 + 'false', 2552 + 'falsify', 2553 + 'fame', 2554 + 'familiar', 2555 + 'family', 2556 + 'famine', 2557 + 'famished', 2558 + 'fanatic', 2559 + 'fancied', 2560 + 'fanciness', 2561 + 'fancy', 2562 + 'fanfare', 2563 + 'fang', 2564 + 'fanning', 2565 + 'fantasize', 2566 + 'fantastic', 2567 + 'fantasy', 2568 + 'fascism', 2569 + 'fastball', 2570 + 'faster', 2571 + 'fasting', 2572 + 'fastness', 2573 + 'faucet', 2574 + 'favorable', 2575 + 'favorably', 2576 + 'favored', 2577 + 'favoring', 2578 + 'favorite', 2579 + 'fax', 2580 + 'feast', 2581 + 'federal', 2582 + 'fedora', 2583 + 'feeble', 2584 + 'feed', 2585 + 'feel', 2586 + 'feisty', 2587 + 'feline', 2588 + 'felt-tip', 2589 + 'feminine', 2590 + 'feminism', 2591 + 'feminist', 2592 + 'feminize', 2593 + 'femur', 2594 + 'fence', 2595 + 'fencing', 2596 + 'fender', 2597 + 'ferment', 2598 + 'fernlike', 2599 + 'ferocious', 2600 + 'ferocity', 2601 + 'ferret', 2602 + 'ferris', 2603 + 'ferry', 2604 + 'fervor', 2605 + 'fester', 2606 + 'festival', 2607 + 'festive', 2608 + 'festivity', 2609 + 'fetal', 2610 + 'fetch', 2611 + 'fever', 2612 + 'fiber', 2613 + 'fiction', 2614 + 'fiddle', 2615 + 'fiddling', 2616 + 'fidelity', 2617 + 'fidgeting', 2618 + 'fidgety', 2619 + 'fifteen', 2620 + 'fifth', 2621 + 'fiftieth', 2622 + 'fifty', 2623 + 'figment', 2624 + 'figure', 2625 + 'figurine', 2626 + 'filing', 2627 + 'filled', 2628 + 'filler', 2629 + 'filling', 2630 + 'film', 2631 + 'filter', 2632 + 'filth', 2633 + 'filtrate', 2634 + 'finale', 2635 + 'finalist', 2636 + 'finalize', 2637 + 'finally', 2638 + 'finance', 2639 + 'financial', 2640 + 'finch', 2641 + 'fineness', 2642 + 'finer', 2643 + 'finicky', 2644 + 'finished', 2645 + 'finisher', 2646 + 'finishing', 2647 + 'finite', 2648 + 'finless', 2649 + 'finlike', 2650 + 'fiscally', 2651 + 'fit', 2652 + 'five', 2653 + 'flaccid', 2654 + 'flagman', 2655 + 'flagpole', 2656 + 'flagship', 2657 + 'flagstick', 2658 + 'flagstone', 2659 + 'flail', 2660 + 'flakily', 2661 + 'flaky', 2662 + 'flame', 2663 + 'flammable', 2664 + 'flanked', 2665 + 'flanking', 2666 + 'flannels', 2667 + 'flap', 2668 + 'flaring', 2669 + 'flashback', 2670 + 'flashbulb', 2671 + 'flashcard', 2672 + 'flashily', 2673 + 'flashing', 2674 + 'flashy', 2675 + 'flask', 2676 + 'flatbed', 2677 + 'flatfoot', 2678 + 'flatly', 2679 + 'flatness', 2680 + 'flatten', 2681 + 'flattered', 2682 + 'flatterer', 2683 + 'flattery', 2684 + 'flattop', 2685 + 'flatware', 2686 + 'flatworm', 2687 + 'flavored', 2688 + 'flavorful', 2689 + 'flavoring', 2690 + 'flaxseed', 2691 + 'fled', 2692 + 'fleshed', 2693 + 'fleshy', 2694 + 'flick', 2695 + 'flier', 2696 + 'flight', 2697 + 'flinch', 2698 + 'fling', 2699 + 'flint', 2700 + 'flip', 2701 + 'flirt', 2702 + 'float', 2703 + 'flock', 2704 + 'flogging', 2705 + 'flop', 2706 + 'floral', 2707 + 'florist', 2708 + 'floss', 2709 + 'flounder', 2710 + 'flyable', 2711 + 'flyaway', 2712 + 'flyer', 2713 + 'flying', 2714 + 'flyover', 2715 + 'flypaper', 2716 + 'foam', 2717 + 'foe', 2718 + 'fog', 2719 + 'foil', 2720 + 'folic', 2721 + 'folk', 2722 + 'follicle', 2723 + 'follow', 2724 + 'fondling', 2725 + 'fondly', 2726 + 'fondness', 2727 + 'fondue', 2728 + 'font', 2729 + 'food', 2730 + 'fool', 2731 + 'footage', 2732 + 'football', 2733 + 'footbath', 2734 + 'footboard', 2735 + 'footer', 2736 + 'footgear', 2737 + 'foothill', 2738 + 'foothold', 2739 + 'footing', 2740 + 'footless', 2741 + 'footman', 2742 + 'footnote', 2743 + 'footpad', 2744 + 'footpath', 2745 + 'footprint', 2746 + 'footrest', 2747 + 'footsie', 2748 + 'footsore', 2749 + 'footwear', 2750 + 'footwork', 2751 + 'fossil', 2752 + 'foster', 2753 + 'founder', 2754 + 'founding', 2755 + 'fountain', 2756 + 'fox', 2757 + 'foyer', 2758 + 'fraction', 2759 + 'fracture', 2760 + 'fragile', 2761 + 'fragility', 2762 + 'fragment', 2763 + 'fragrance', 2764 + 'fragrant', 2765 + 'frail', 2766 + 'frame', 2767 + 'framing', 2768 + 'frantic', 2769 + 'fraternal', 2770 + 'frayed', 2771 + 'fraying', 2772 + 'frays', 2773 + 'freckled', 2774 + 'freckles', 2775 + 'freebase', 2776 + 'freebee', 2777 + 'freebie', 2778 + 'freedom', 2779 + 'freefall', 2780 + 'freehand', 2781 + 'freeing', 2782 + 'freeload', 2783 + 'freely', 2784 + 'freemason', 2785 + 'freeness', 2786 + 'freestyle', 2787 + 'freeware', 2788 + 'freeway', 2789 + 'freewill', 2790 + 'freezable', 2791 + 'freezing', 2792 + 'freight', 2793 + 'french', 2794 + 'frenzied', 2795 + 'frenzy', 2796 + 'frequency', 2797 + 'frequent', 2798 + 'fresh', 2799 + 'fretful', 2800 + 'fretted', 2801 + 'friction', 2802 + 'friday', 2803 + 'fridge', 2804 + 'fried', 2805 + 'friend', 2806 + 'frighten', 2807 + 'frightful', 2808 + 'frigidity', 2809 + 'frigidly', 2810 + 'frill', 2811 + 'fringe', 2812 + 'frisbee', 2813 + 'frisk', 2814 + 'fritter', 2815 + 'frivolous', 2816 + 'frolic', 2817 + 'from', 2818 + 'front', 2819 + 'frostbite', 2820 + 'frosted', 2821 + 'frostily', 2822 + 'frosting', 2823 + 'frostlike', 2824 + 'frosty', 2825 + 'froth', 2826 + 'frown', 2827 + 'frozen', 2828 + 'fructose', 2829 + 'frugality', 2830 + 'frugally', 2831 + 'fruit', 2832 + 'frustrate', 2833 + 'frying', 2834 + 'gab', 2835 + 'gaffe', 2836 + 'gag', 2837 + 'gainfully', 2838 + 'gaining', 2839 + 'gains', 2840 + 'gala', 2841 + 'gallantly', 2842 + 'galleria', 2843 + 'gallery', 2844 + 'galley', 2845 + 'gallon', 2846 + 'gallows', 2847 + 'gallstone', 2848 + 'galore', 2849 + 'galvanize', 2850 + 'gambling', 2851 + 'game', 2852 + 'gaming', 2853 + 'gamma', 2854 + 'gander', 2855 + 'gangly', 2856 + 'gangrene', 2857 + 'gangway', 2858 + 'gap', 2859 + 'garage', 2860 + 'garbage', 2861 + 'garden', 2862 + 'gargle', 2863 + 'garland', 2864 + 'garlic', 2865 + 'garment', 2866 + 'garnet', 2867 + 'garnish', 2868 + 'garter', 2869 + 'gas', 2870 + 'gatherer', 2871 + 'gathering', 2872 + 'gating', 2873 + 'gauging', 2874 + 'gauntlet', 2875 + 'gauze', 2876 + 'gave', 2877 + 'gawk', 2878 + 'gazing', 2879 + 'gear', 2880 + 'gecko', 2881 + 'geek', 2882 + 'geiger', 2883 + 'gem', 2884 + 'gender', 2885 + 'generic', 2886 + 'generous', 2887 + 'genetics', 2888 + 'genre', 2889 + 'gentile', 2890 + 'gentleman', 2891 + 'gently', 2892 + 'gents', 2893 + 'geography', 2894 + 'geologic', 2895 + 'geologist', 2896 + 'geology', 2897 + 'geometric', 2898 + 'geometry', 2899 + 'geranium', 2900 + 'gerbil', 2901 + 'geriatric', 2902 + 'germicide', 2903 + 'germinate', 2904 + 'germless', 2905 + 'germproof', 2906 + 'gestate', 2907 + 'gestation', 2908 + 'gesture', 2909 + 'getaway', 2910 + 'getting', 2911 + 'getup', 2912 + 'giant', 2913 + 'gibberish', 2914 + 'giblet', 2915 + 'giddily', 2916 + 'giddiness', 2917 + 'giddy', 2918 + 'gift', 2919 + 'gigabyte', 2920 + 'gigahertz', 2921 + 'gigantic', 2922 + 'giggle', 2923 + 'giggling', 2924 + 'giggly', 2925 + 'gigolo', 2926 + 'gilled', 2927 + 'gills', 2928 + 'gimmick', 2929 + 'girdle', 2930 + 'giveaway', 2931 + 'given', 2932 + 'giver', 2933 + 'giving', 2934 + 'gizmo', 2935 + 'gizzard', 2936 + 'glacial', 2937 + 'glacier', 2938 + 'glade', 2939 + 'gladiator', 2940 + 'gladly', 2941 + 'glamorous', 2942 + 'glamour', 2943 + 'glance', 2944 + 'glancing', 2945 + 'glandular', 2946 + 'glare', 2947 + 'glaring', 2948 + 'glass', 2949 + 'glaucoma', 2950 + 'glazing', 2951 + 'gleaming', 2952 + 'gleeful', 2953 + 'glider', 2954 + 'gliding', 2955 + 'glimmer', 2956 + 'glimpse', 2957 + 'glisten', 2958 + 'glitch', 2959 + 'glitter', 2960 + 'glitzy', 2961 + 'gloater', 2962 + 'gloating', 2963 + 'gloomily', 2964 + 'gloomy', 2965 + 'glorified', 2966 + 'glorifier', 2967 + 'glorify', 2968 + 'glorious', 2969 + 'glory', 2970 + 'gloss', 2971 + 'glove', 2972 + 'glowing', 2973 + 'glowworm', 2974 + 'glucose', 2975 + 'glue', 2976 + 'gluten', 2977 + 'glutinous', 2978 + 'glutton', 2979 + 'gnarly', 2980 + 'gnat', 2981 + 'goal', 2982 + 'goatskin', 2983 + 'goes', 2984 + 'goggles', 2985 + 'going', 2986 + 'goldfish', 2987 + 'goldmine', 2988 + 'goldsmith', 2989 + 'golf', 2990 + 'goliath', 2991 + 'gonad', 2992 + 'gondola', 2993 + 'gone', 2994 + 'gong', 2995 + 'good', 2996 + 'gooey', 2997 + 'goofball', 2998 + 'goofiness', 2999 + 'goofy', 3000 + 'google', 3001 + 'goon', 3002 + 'gopher', 3003 + 'gore', 3004 + 'gorged', 3005 + 'gorgeous', 3006 + 'gory', 3007 + 'gosling', 3008 + 'gossip', 3009 + 'gothic', 3010 + 'gotten', 3011 + 'gout', 3012 + 'gown', 3013 + 'grab', 3014 + 'graceful', 3015 + 'graceless', 3016 + 'gracious', 3017 + 'gradation', 3018 + 'graded', 3019 + 'grader', 3020 + 'gradient', 3021 + 'grading', 3022 + 'gradually', 3023 + 'graduate', 3024 + 'graffiti', 3025 + 'grafted', 3026 + 'grafting', 3027 + 'grain', 3028 + 'granddad', 3029 + 'grandkid', 3030 + 'grandly', 3031 + 'grandma', 3032 + 'grandpa', 3033 + 'grandson', 3034 + 'granite', 3035 + 'granny', 3036 + 'granola', 3037 + 'grant', 3038 + 'granular', 3039 + 'grape', 3040 + 'graph', 3041 + 'grapple', 3042 + 'grappling', 3043 + 'grasp', 3044 + 'grass', 3045 + 'gratified', 3046 + 'gratify', 3047 + 'grating', 3048 + 'gratitude', 3049 + 'gratuity', 3050 + 'gravel', 3051 + 'graveness', 3052 + 'graves', 3053 + 'graveyard', 3054 + 'gravitate', 3055 + 'gravity', 3056 + 'gravy', 3057 + 'gray', 3058 + 'grazing', 3059 + 'greasily', 3060 + 'greedily', 3061 + 'greedless', 3062 + 'greedy', 3063 + 'green', 3064 + 'greeter', 3065 + 'greeting', 3066 + 'grew', 3067 + 'greyhound', 3068 + 'grid', 3069 + 'grief', 3070 + 'grievance', 3071 + 'grieving', 3072 + 'grievous', 3073 + 'grill', 3074 + 'grimace', 3075 + 'grimacing', 3076 + 'grime', 3077 + 'griminess', 3078 + 'grimy', 3079 + 'grinch', 3080 + 'grinning', 3081 + 'grip', 3082 + 'gristle', 3083 + 'grit', 3084 + 'groggily', 3085 + 'groggy', 3086 + 'groin', 3087 + 'groom', 3088 + 'groove', 3089 + 'grooving', 3090 + 'groovy', 3091 + 'grope', 3092 + 'ground', 3093 + 'grouped', 3094 + 'grout', 3095 + 'grove', 3096 + 'grower', 3097 + 'growing', 3098 + 'growl', 3099 + 'grub', 3100 + 'grudge', 3101 + 'grudging', 3102 + 'grueling', 3103 + 'gruffly', 3104 + 'grumble', 3105 + 'grumbling', 3106 + 'grumbly', 3107 + 'grumpily', 3108 + 'grunge', 3109 + 'grunt', 3110 + 'guacamole', 3111 + 'guidable', 3112 + 'guidance', 3113 + 'guide', 3114 + 'guiding', 3115 + 'guileless', 3116 + 'guise', 3117 + 'gulf', 3118 + 'gullible', 3119 + 'gully', 3120 + 'gulp', 3121 + 'gumball', 3122 + 'gumdrop', 3123 + 'gumminess', 3124 + 'gumming', 3125 + 'gummy', 3126 + 'gurgle', 3127 + 'gurgling', 3128 + 'guru', 3129 + 'gush', 3130 + 'gusto', 3131 + 'gusty', 3132 + 'gutless', 3133 + 'guts', 3134 + 'gutter', 3135 + 'guy', 3136 + 'guzzler', 3137 + 'gyration', 3138 + 'habitable', 3139 + 'habitant', 3140 + 'habitat', 3141 + 'habitual', 3142 + 'hacked', 3143 + 'hacker', 3144 + 'hacking', 3145 + 'hacksaw', 3146 + 'had', 3147 + 'haggler', 3148 + 'haiku', 3149 + 'half', 3150 + 'halogen', 3151 + 'halt', 3152 + 'halved', 3153 + 'halves', 3154 + 'hamburger', 3155 + 'hamlet', 3156 + 'hammock', 3157 + 'hamper', 3158 + 'hamster', 3159 + 'hamstring', 3160 + 'handbag', 3161 + 'handball', 3162 + 'handbook', 3163 + 'handbrake', 3164 + 'handcart', 3165 + 'handclap', 3166 + 'handclasp', 3167 + 'handcraft', 3168 + 'handcuff', 3169 + 'handed', 3170 + 'handful', 3171 + 'handgrip', 3172 + 'handgun', 3173 + 'handheld', 3174 + 'handiness', 3175 + 'handiwork', 3176 + 'handlebar', 3177 + 'handled', 3178 + 'handler', 3179 + 'handling', 3180 + 'handmade', 3181 + 'handoff', 3182 + 'handpick', 3183 + 'handprint', 3184 + 'handrail', 3185 + 'handsaw', 3186 + 'handset', 3187 + 'handsfree', 3188 + 'handshake', 3189 + 'handstand', 3190 + 'handwash', 3191 + 'handwork', 3192 + 'handwoven', 3193 + 'handwrite', 3194 + 'handyman', 3195 + 'hangnail', 3196 + 'hangout', 3197 + 'hangover', 3198 + 'hangup', 3199 + 'hankering', 3200 + 'hankie', 3201 + 'hanky', 3202 + 'haphazard', 3203 + 'happening', 3204 + 'happier', 3205 + 'happiest', 3206 + 'happily', 3207 + 'happiness', 3208 + 'happy', 3209 + 'harbor', 3210 + 'hardcopy', 3211 + 'hardcore', 3212 + 'hardcover', 3213 + 'harddisk', 3214 + 'hardened', 3215 + 'hardener', 3216 + 'hardening', 3217 + 'hardhat', 3218 + 'hardhead', 3219 + 'hardiness', 3220 + 'hardly', 3221 + 'hardness', 3222 + 'hardship', 3223 + 'hardware', 3224 + 'hardwired', 3225 + 'hardwood', 3226 + 'hardy', 3227 + 'harmful', 3228 + 'harmless', 3229 + 'harmonica', 3230 + 'harmonics', 3231 + 'harmonize', 3232 + 'harmony', 3233 + 'harness', 3234 + 'harpist', 3235 + 'harsh', 3236 + 'harvest', 3237 + 'hash', 3238 + 'hassle', 3239 + 'haste', 3240 + 'hastily', 3241 + 'hastiness', 3242 + 'hasty', 3243 + 'hatbox', 3244 + 'hatchback', 3245 + 'hatchery', 3246 + 'hatchet', 3247 + 'hatching', 3248 + 'hatchling', 3249 + 'hate', 3250 + 'hatless', 3251 + 'hatred', 3252 + 'haunt', 3253 + 'haven', 3254 + 'hazard', 3255 + 'hazelnut', 3256 + 'hazily', 3257 + 'haziness', 3258 + 'hazing', 3259 + 'hazy', 3260 + 'headache', 3261 + 'headband', 3262 + 'headboard', 3263 + 'headcount', 3264 + 'headdress', 3265 + 'headed', 3266 + 'header', 3267 + 'headfirst', 3268 + 'headgear', 3269 + 'heading', 3270 + 'headlamp', 3271 + 'headless', 3272 + 'headlock', 3273 + 'headphone', 3274 + 'headpiece', 3275 + 'headrest', 3276 + 'headroom', 3277 + 'headscarf', 3278 + 'headset', 3279 + 'headsman', 3280 + 'headstand', 3281 + 'headstone', 3282 + 'headway', 3283 + 'headwear', 3284 + 'heap', 3285 + 'heat', 3286 + 'heave', 3287 + 'heavily', 3288 + 'heaviness', 3289 + 'heaving', 3290 + 'hedge', 3291 + 'hedging', 3292 + 'heftiness', 3293 + 'hefty', 3294 + 'helium', 3295 + 'helmet', 3296 + 'helper', 3297 + 'helpful', 3298 + 'helping', 3299 + 'helpless', 3300 + 'helpline', 3301 + 'hemlock', 3302 + 'hemstitch', 3303 + 'hence', 3304 + 'henchman', 3305 + 'henna', 3306 + 'herald', 3307 + 'herbal', 3308 + 'herbicide', 3309 + 'herbs', 3310 + 'heritage', 3311 + 'hermit', 3312 + 'heroics', 3313 + 'heroism', 3314 + 'herring', 3315 + 'herself', 3316 + 'hertz', 3317 + 'hesitancy', 3318 + 'hesitant', 3319 + 'hesitate', 3320 + 'hexagon', 3321 + 'hexagram', 3322 + 'hubcap', 3323 + 'huddle', 3324 + 'huddling', 3325 + 'huff', 3326 + 'hug', 3327 + 'hula', 3328 + 'hulk', 3329 + 'hull', 3330 + 'human', 3331 + 'humble', 3332 + 'humbling', 3333 + 'humbly', 3334 + 'humid', 3335 + 'humiliate', 3336 + 'humility', 3337 + 'humming', 3338 + 'hummus', 3339 + 'humongous', 3340 + 'humorist', 3341 + 'humorless', 3342 + 'humorous', 3343 + 'humpback', 3344 + 'humped', 3345 + 'humvee', 3346 + 'hunchback', 3347 + 'hundredth', 3348 + 'hunger', 3349 + 'hungrily', 3350 + 'hungry', 3351 + 'hunk', 3352 + 'hunter', 3353 + 'hunting', 3354 + 'huntress', 3355 + 'huntsman', 3356 + 'hurdle', 3357 + 'hurled', 3358 + 'hurler', 3359 + 'hurling', 3360 + 'hurray', 3361 + 'hurricane', 3362 + 'hurried', 3363 + 'hurry', 3364 + 'hurt', 3365 + 'husband', 3366 + 'hush', 3367 + 'husked', 3368 + 'huskiness', 3369 + 'hut', 3370 + 'hybrid', 3371 + 'hydrant', 3372 + 'hydrated', 3373 + 'hydration', 3374 + 'hydrogen', 3375 + 'hydroxide', 3376 + 'hyperlink', 3377 + 'hypertext', 3378 + 'hyphen', 3379 + 'hypnoses', 3380 + 'hypnosis', 3381 + 'hypnotic', 3382 + 'hypnotism', 3383 + 'hypnotist', 3384 + 'hypnotize', 3385 + 'hypocrisy', 3386 + 'hypocrite', 3387 + 'ibuprofen', 3388 + 'ice', 3389 + 'iciness', 3390 + 'icing', 3391 + 'icky', 3392 + 'icon', 3393 + 'icy', 3394 + 'idealism', 3395 + 'idealist', 3396 + 'idealize', 3397 + 'ideally', 3398 + 'idealness', 3399 + 'identical', 3400 + 'identify', 3401 + 'identity', 3402 + 'ideology', 3403 + 'idiocy', 3404 + 'idiom', 3405 + 'idly', 3406 + 'igloo', 3407 + 'ignition', 3408 + 'ignore', 3409 + 'iguana', 3410 + 'illicitly', 3411 + 'illusion', 3412 + 'illusive', 3413 + 'image', 3414 + 'imaginary', 3415 + 'imagines', 3416 + 'imaging', 3417 + 'imbecile', 3418 + 'imitate', 3419 + 'imitation', 3420 + 'immature', 3421 + 'immerse', 3422 + 'immersion', 3423 + 'imminent', 3424 + 'immobile', 3425 + 'immodest', 3426 + 'immorally', 3427 + 'immortal', 3428 + 'immovable', 3429 + 'immovably', 3430 + 'immunity', 3431 + 'immunize', 3432 + 'impaired', 3433 + 'impale', 3434 + 'impart', 3435 + 'impatient', 3436 + 'impeach', 3437 + 'impeding', 3438 + 'impending', 3439 + 'imperfect', 3440 + 'imperial', 3441 + 'impish', 3442 + 'implant', 3443 + 'implement', 3444 + 'implicate', 3445 + 'implicit', 3446 + 'implode', 3447 + 'implosion', 3448 + 'implosive', 3449 + 'imply', 3450 + 'impolite', 3451 + 'important', 3452 + 'importer', 3453 + 'impose', 3454 + 'imposing', 3455 + 'impotence', 3456 + 'impotency', 3457 + 'impotent', 3458 + 'impound', 3459 + 'imprecise', 3460 + 'imprint', 3461 + 'imprison', 3462 + 'impromptu', 3463 + 'improper', 3464 + 'improve', 3465 + 'improving', 3466 + 'improvise', 3467 + 'imprudent', 3468 + 'impulse', 3469 + 'impulsive', 3470 + 'impure', 3471 + 'impurity', 3472 + 'iodine', 3473 + 'iodize', 3474 + 'ion', 3475 + 'ipad', 3476 + 'iphone', 3477 + 'ipod', 3478 + 'irate', 3479 + 'irk', 3480 + 'iron', 3481 + 'irregular', 3482 + 'irrigate', 3483 + 'irritable', 3484 + 'irritably', 3485 + 'irritant', 3486 + 'irritate', 3487 + 'islamic', 3488 + 'islamist', 3489 + 'isolated', 3490 + 'isolating', 3491 + 'isolation', 3492 + 'isotope', 3493 + 'issue', 3494 + 'issuing', 3495 + 'italicize', 3496 + 'italics', 3497 + 'item', 3498 + 'itinerary', 3499 + 'itunes', 3500 + 'ivory', 3501 + 'ivy', 3502 + 'jab', 3503 + 'jackal', 3504 + 'jacket', 3505 + 'jackknife', 3506 + 'jackpot', 3507 + 'jailbird', 3508 + 'jailbreak', 3509 + 'jailer', 3510 + 'jailhouse', 3511 + 'jalapeno', 3512 + 'jam', 3513 + 'janitor', 3514 + 'january', 3515 + 'jargon', 3516 + 'jarring', 3517 + 'jasmine', 3518 + 'jaundice', 3519 + 'jaunt', 3520 + 'java', 3521 + 'jawed', 3522 + 'jawless', 3523 + 'jawline', 3524 + 'jaws', 3525 + 'jaybird', 3526 + 'jaywalker', 3527 + 'jazz', 3528 + 'jeep', 3529 + 'jeeringly', 3530 + 'jellied', 3531 + 'jelly', 3532 + 'jersey', 3533 + 'jester', 3534 + 'jet', 3535 + 'jiffy', 3536 + 'jigsaw', 3537 + 'jimmy', 3538 + 'jingle', 3539 + 'jingling', 3540 + 'jinx', 3541 + 'jitters', 3542 + 'jittery', 3543 + 'job', 3544 + 'jockey', 3545 + 'jockstrap', 3546 + 'jogger', 3547 + 'jogging', 3548 + 'john', 3549 + 'joining', 3550 + 'jokester', 3551 + 'jokingly', 3552 + 'jolliness', 3553 + 'jolly', 3554 + 'jolt', 3555 + 'jot', 3556 + 'jovial', 3557 + 'joyfully', 3558 + 'joylessly', 3559 + 'joyous', 3560 + 'joyride', 3561 + 'joystick', 3562 + 'jubilance', 3563 + 'jubilant', 3564 + 'judge', 3565 + 'judgingly', 3566 + 'judicial', 3567 + 'judiciary', 3568 + 'judo', 3569 + 'juggle', 3570 + 'juggling', 3571 + 'jugular', 3572 + 'juice', 3573 + 'juiciness', 3574 + 'juicy', 3575 + 'jujitsu', 3576 + 'jukebox', 3577 + 'july', 3578 + 'jumble', 3579 + 'jumbo', 3580 + 'jump', 3581 + 'junction', 3582 + 'juncture', 3583 + 'june', 3584 + 'junior', 3585 + 'juniper', 3586 + 'junkie', 3587 + 'junkman', 3588 + 'junkyard', 3589 + 'jurist', 3590 + 'juror', 3591 + 'jury', 3592 + 'justice', 3593 + 'justifier', 3594 + 'justify', 3595 + 'justly', 3596 + 'justness', 3597 + 'juvenile', 3598 + 'kabob', 3599 + 'kangaroo', 3600 + 'karaoke', 3601 + 'karate', 3602 + 'karma', 3603 + 'kebab', 3604 + 'keenly', 3605 + 'keenness', 3606 + 'keep', 3607 + 'keg', 3608 + 'kelp', 3609 + 'kennel', 3610 + 'kept', 3611 + 'kerchief', 3612 + 'kerosene', 3613 + 'kettle', 3614 + 'kick', 3615 + 'kiln', 3616 + 'kilobyte', 3617 + 'kilogram', 3618 + 'kilometer', 3619 + 'kilowatt', 3620 + 'kilt', 3621 + 'kimono', 3622 + 'kindle', 3623 + 'kindling', 3624 + 'kindly', 3625 + 'kindness', 3626 + 'kindred', 3627 + 'kinetic', 3628 + 'kinfolk', 3629 + 'king', 3630 + 'kinship', 3631 + 'kinsman', 3632 + 'kinswoman', 3633 + 'kissable', 3634 + 'kisser', 3635 + 'kissing', 3636 + 'kitchen', 3637 + 'kite', 3638 + 'kitten', 3639 + 'kitty', 3640 + 'kiwi', 3641 + 'kleenex', 3642 + 'knapsack', 3643 + 'knee', 3644 + 'knelt', 3645 + 'knickers', 3646 + 'knoll', 3647 + 'koala', 3648 + 'kooky', 3649 + 'kosher', 3650 + 'krypton', 3651 + 'kudos', 3652 + 'kung', 3653 + 'labored', 3654 + 'laborer', 3655 + 'laboring', 3656 + 'laborious', 3657 + 'labrador', 3658 + 'ladder', 3659 + 'ladies', 3660 + 'ladle', 3661 + 'ladybug', 3662 + 'ladylike', 3663 + 'lagged', 3664 + 'lagging', 3665 + 'lagoon', 3666 + 'lair', 3667 + 'lake', 3668 + 'lance', 3669 + 'landed', 3670 + 'landfall', 3671 + 'landfill', 3672 + 'landing', 3673 + 'landlady', 3674 + 'landless', 3675 + 'landline', 3676 + 'landlord', 3677 + 'landmark', 3678 + 'landmass', 3679 + 'landmine', 3680 + 'landowner', 3681 + 'landscape', 3682 + 'landside', 3683 + 'landslide', 3684 + 'language', 3685 + 'lankiness', 3686 + 'lanky', 3687 + 'lantern', 3688 + 'lapdog', 3689 + 'lapel', 3690 + 'lapped', 3691 + 'lapping', 3692 + 'laptop', 3693 + 'lard', 3694 + 'large', 3695 + 'lark', 3696 + 'lash', 3697 + 'lasso', 3698 + 'last', 3699 + 'latch', 3700 + 'late', 3701 + 'lather', 3702 + 'latitude', 3703 + 'latrine', 3704 + 'latter', 3705 + 'latticed', 3706 + 'launch', 3707 + 'launder', 3708 + 'laundry', 3709 + 'laurel', 3710 + 'lavender', 3711 + 'lavish', 3712 + 'laxative', 3713 + 'lazily', 3714 + 'laziness', 3715 + 'lazy', 3716 + 'lecturer', 3717 + 'left', 3718 + 'legacy', 3719 + 'legal', 3720 + 'legend', 3721 + 'legged', 3722 + 'leggings', 3723 + 'legible', 3724 + 'legibly', 3725 + 'legislate', 3726 + 'lego', 3727 + 'legroom', 3728 + 'legume', 3729 + 'legwarmer', 3730 + 'legwork', 3731 + 'lemon', 3732 + 'lend', 3733 + 'length', 3734 + 'lens', 3735 + 'lent', 3736 + 'leotard', 3737 + 'lesser', 3738 + 'letdown', 3739 + 'lethargic', 3740 + 'lethargy', 3741 + 'letter', 3742 + 'lettuce', 3743 + 'level', 3744 + 'leverage', 3745 + 'levers', 3746 + 'levitate', 3747 + 'levitator', 3748 + 'liability', 3749 + 'liable', 3750 + 'liberty', 3751 + 'librarian', 3752 + 'library', 3753 + 'licking', 3754 + 'licorice', 3755 + 'lid', 3756 + 'life', 3757 + 'lifter', 3758 + 'lifting', 3759 + 'liftoff', 3760 + 'ligament', 3761 + 'likely', 3762 + 'likeness', 3763 + 'likewise', 3764 + 'liking', 3765 + 'lilac', 3766 + 'lilly', 3767 + 'lily', 3768 + 'limb', 3769 + 'limeade', 3770 + 'limelight', 3771 + 'limes', 3772 + 'limit', 3773 + 'limping', 3774 + 'limpness', 3775 + 'line', 3776 + 'lingo', 3777 + 'linguini', 3778 + 'linguist', 3779 + 'lining', 3780 + 'linked', 3781 + 'linoleum', 3782 + 'linseed', 3783 + 'lint', 3784 + 'lion', 3785 + 'lip', 3786 + 'liquefy', 3787 + 'liqueur', 3788 + 'liquid', 3789 + 'lisp', 3790 + 'list', 3791 + 'litigate', 3792 + 'litigator', 3793 + 'litmus', 3794 + 'litter', 3795 + 'little', 3796 + 'livable', 3797 + 'lived', 3798 + 'lively', 3799 + 'liver', 3800 + 'livestock', 3801 + 'lividly', 3802 + 'living', 3803 + 'lizard', 3804 + 'lubricant', 3805 + 'lubricate', 3806 + 'lucid', 3807 + 'luckily', 3808 + 'luckiness', 3809 + 'luckless', 3810 + 'lucrative', 3811 + 'ludicrous', 3812 + 'lugged', 3813 + 'lukewarm', 3814 + 'lullaby', 3815 + 'lumber', 3816 + 'luminance', 3817 + 'luminous', 3818 + 'lumpiness', 3819 + 'lumping', 3820 + 'lumpish', 3821 + 'lunacy', 3822 + 'lunar', 3823 + 'lunchbox', 3824 + 'luncheon', 3825 + 'lunchroom', 3826 + 'lunchtime', 3827 + 'lung', 3828 + 'lurch', 3829 + 'lure', 3830 + 'luridness', 3831 + 'lurk', 3832 + 'lushly', 3833 + 'lushness', 3834 + 'luster', 3835 + 'lustfully', 3836 + 'lustily', 3837 + 'lustiness', 3838 + 'lustrous', 3839 + 'lusty', 3840 + 'luxurious', 3841 + 'luxury', 3842 + 'lying', 3843 + 'lyrically', 3844 + 'lyricism', 3845 + 'lyricist', 3846 + 'lyrics', 3847 + 'macarena', 3848 + 'macaroni', 3849 + 'macaw', 3850 + 'mace', 3851 + 'machine', 3852 + 'machinist', 3853 + 'magazine', 3854 + 'magenta', 3855 + 'maggot', 3856 + 'magical', 3857 + 'magician', 3858 + 'magma', 3859 + 'magnesium', 3860 + 'magnetic', 3861 + 'magnetism', 3862 + 'magnetize', 3863 + 'magnifier', 3864 + 'magnify', 3865 + 'magnitude', 3866 + 'magnolia', 3867 + 'mahogany', 3868 + 'maimed', 3869 + 'majestic', 3870 + 'majesty', 3871 + 'majorette', 3872 + 'majority', 3873 + 'makeover', 3874 + 'maker', 3875 + 'makeshift', 3876 + 'making', 3877 + 'malformed', 3878 + 'malt', 3879 + 'mama', 3880 + 'mammal', 3881 + 'mammary', 3882 + 'mammogram', 3883 + 'manager', 3884 + 'managing', 3885 + 'manatee', 3886 + 'mandarin', 3887 + 'mandate', 3888 + 'mandatory', 3889 + 'mandolin', 3890 + 'manger', 3891 + 'mangle', 3892 + 'mango', 3893 + 'mangy', 3894 + 'manhandle', 3895 + 'manhole', 3896 + 'manhood', 3897 + 'manhunt', 3898 + 'manicotti', 3899 + 'manicure', 3900 + 'manifesto', 3901 + 'manila', 3902 + 'mankind', 3903 + 'manlike', 3904 + 'manliness', 3905 + 'manly', 3906 + 'manmade', 3907 + 'manned', 3908 + 'mannish', 3909 + 'manor', 3910 + 'manpower', 3911 + 'mantis', 3912 + 'mantra', 3913 + 'manual', 3914 + 'many', 3915 + 'map', 3916 + 'marathon', 3917 + 'marauding', 3918 + 'marbled', 3919 + 'marbles', 3920 + 'marbling', 3921 + 'march', 3922 + 'mardi', 3923 + 'margarine', 3924 + 'margarita', 3925 + 'margin', 3926 + 'marigold', 3927 + 'marina', 3928 + 'marine', 3929 + 'marital', 3930 + 'maritime', 3931 + 'marlin', 3932 + 'marmalade', 3933 + 'maroon', 3934 + 'married', 3935 + 'marrow', 3936 + 'marry', 3937 + 'marshland', 3938 + 'marshy', 3939 + 'marsupial', 3940 + 'marvelous', 3941 + 'marxism', 3942 + 'mascot', 3943 + 'masculine', 3944 + 'mashed', 3945 + 'mashing', 3946 + 'massager', 3947 + 'masses', 3948 + 'massive', 3949 + 'mastiff', 3950 + 'matador', 3951 + 'matchbook', 3952 + 'matchbox', 3953 + 'matcher', 3954 + 'matching', 3955 + 'matchless', 3956 + 'material', 3957 + 'maternal', 3958 + 'maternity', 3959 + 'math', 3960 + 'mating', 3961 + 'matriarch', 3962 + 'matrimony', 3963 + 'matrix', 3964 + 'matron', 3965 + 'matted', 3966 + 'matter', 3967 + 'maturely', 3968 + 'maturing', 3969 + 'maturity', 3970 + 'mauve', 3971 + 'maverick', 3972 + 'maximize', 3973 + 'maximum', 3974 + 'maybe', 3975 + 'mayday', 3976 + 'mayflower', 3977 + 'moaner', 3978 + 'moaning', 3979 + 'mobile', 3980 + 'mobility', 3981 + 'mobilize', 3982 + 'mobster', 3983 + 'mocha', 3984 + 'mocker', 3985 + 'mockup', 3986 + 'modified', 3987 + 'modify', 3988 + 'modular', 3989 + 'modulator', 3990 + 'module', 3991 + 'moisten', 3992 + 'moistness', 3993 + 'moisture', 3994 + 'molar', 3995 + 'molasses', 3996 + 'mold', 3997 + 'molecular', 3998 + 'molecule', 3999 + 'molehill', 4000 + 'mollusk', 4001 + 'mom', 4002 + 'monastery', 4003 + 'monday', 4004 + 'monetary', 4005 + 'monetize', 4006 + 'moneybags', 4007 + 'moneyless', 4008 + 'moneywise', 4009 + 'mongoose', 4010 + 'mongrel', 4011 + 'monitor', 4012 + 'monkhood', 4013 + 'monogamy', 4014 + 'monogram', 4015 + 'monologue', 4016 + 'monopoly', 4017 + 'monorail', 4018 + 'monotone', 4019 + 'monotype', 4020 + 'monoxide', 4021 + 'monsieur', 4022 + 'monsoon', 4023 + 'monstrous', 4024 + 'monthly', 4025 + 'monument', 4026 + 'moocher', 4027 + 'moodiness', 4028 + 'moody', 4029 + 'mooing', 4030 + 'moonbeam', 4031 + 'mooned', 4032 + 'moonlight', 4033 + 'moonlike', 4034 + 'moonlit', 4035 + 'moonrise', 4036 + 'moonscape', 4037 + 'moonshine', 4038 + 'moonstone', 4039 + 'moonwalk', 4040 + 'mop', 4041 + 'morale', 4042 + 'morality', 4043 + 'morally', 4044 + 'morbidity', 4045 + 'morbidly', 4046 + 'morphine', 4047 + 'morphing', 4048 + 'morse', 4049 + 'mortality', 4050 + 'mortally', 4051 + 'mortician', 4052 + 'mortified', 4053 + 'mortify', 4054 + 'mortuary', 4055 + 'mosaic', 4056 + 'mossy', 4057 + 'most', 4058 + 'mothball', 4059 + 'mothproof', 4060 + 'motion', 4061 + 'motivate', 4062 + 'motivator', 4063 + 'motive', 4064 + 'motocross', 4065 + 'motor', 4066 + 'motto', 4067 + 'mountable', 4068 + 'mountain', 4069 + 'mounted', 4070 + 'mounting', 4071 + 'mourner', 4072 + 'mournful', 4073 + 'mouse', 4074 + 'mousiness', 4075 + 'moustache', 4076 + 'mousy', 4077 + 'mouth', 4078 + 'movable', 4079 + 'move', 4080 + 'movie', 4081 + 'moving', 4082 + 'mower', 4083 + 'mowing', 4084 + 'much', 4085 + 'muck', 4086 + 'mud', 4087 + 'mug', 4088 + 'mulberry', 4089 + 'mulch', 4090 + 'mule', 4091 + 'mulled', 4092 + 'mullets', 4093 + 'multiple', 4094 + 'multiply', 4095 + 'multitask', 4096 + 'multitude', 4097 + 'mumble', 4098 + 'mumbling', 4099 + 'mumbo', 4100 + 'mummified', 4101 + 'mummify', 4102 + 'mummy', 4103 + 'mumps', 4104 + 'munchkin', 4105 + 'mundane', 4106 + 'municipal', 4107 + 'muppet', 4108 + 'mural', 4109 + 'murkiness', 4110 + 'murky', 4111 + 'murmuring', 4112 + 'muscular', 4113 + 'museum', 4114 + 'mushily', 4115 + 'mushiness', 4116 + 'mushroom', 4117 + 'mushy', 4118 + 'music', 4119 + 'musket', 4120 + 'muskiness', 4121 + 'musky', 4122 + 'mustang', 4123 + 'mustard', 4124 + 'muster', 4125 + 'mustiness', 4126 + 'musty', 4127 + 'mutable', 4128 + 'mutate', 4129 + 'mutation', 4130 + 'mute', 4131 + 'mutilated', 4132 + 'mutilator', 4133 + 'mutiny', 4134 + 'mutt', 4135 + 'mutual', 4136 + 'muzzle', 4137 + 'myself', 4138 + 'myspace', 4139 + 'mystified', 4140 + 'mystify', 4141 + 'myth', 4142 + 'nacho', 4143 + 'nag', 4144 + 'nail', 4145 + 'name', 4146 + 'naming', 4147 + 'nanny', 4148 + 'nanometer', 4149 + 'nape', 4150 + 'napkin', 4151 + 'napped', 4152 + 'napping', 4153 + 'nappy', 4154 + 'narrow', 4155 + 'nastily', 4156 + 'nastiness', 4157 + 'national', 4158 + 'native', 4159 + 'nativity', 4160 + 'natural', 4161 + 'nature', 4162 + 'naturist', 4163 + 'nautical', 4164 + 'navigate', 4165 + 'navigator', 4166 + 'navy', 4167 + 'nearby', 4168 + 'nearest', 4169 + 'nearly', 4170 + 'nearness', 4171 + 'neatly', 4172 + 'neatness', 4173 + 'nebula', 4174 + 'nebulizer', 4175 + 'nectar', 4176 + 'negate', 4177 + 'negation', 4178 + 'negative', 4179 + 'neglector', 4180 + 'negligee', 4181 + 'negligent', 4182 + 'negotiate', 4183 + 'nemeses', 4184 + 'nemesis', 4185 + 'neon', 4186 + 'nephew', 4187 + 'nerd', 4188 + 'nervous', 4189 + 'nervy', 4190 + 'nest', 4191 + 'net', 4192 + 'neurology', 4193 + 'neuron', 4194 + 'neurosis', 4195 + 'neurotic', 4196 + 'neuter', 4197 + 'neutron', 4198 + 'never', 4199 + 'next', 4200 + 'nibble', 4201 + 'nickname', 4202 + 'nicotine', 4203 + 'niece', 4204 + 'nifty', 4205 + 'nimble', 4206 + 'nimbly', 4207 + 'nineteen', 4208 + 'ninetieth', 4209 + 'ninja', 4210 + 'nintendo', 4211 + 'ninth', 4212 + 'nuclear', 4213 + 'nuclei', 4214 + 'nucleus', 4215 + 'nugget', 4216 + 'nullify', 4217 + 'number', 4218 + 'numbing', 4219 + 'numbly', 4220 + 'numbness', 4221 + 'numeral', 4222 + 'numerate', 4223 + 'numerator', 4224 + 'numeric', 4225 + 'numerous', 4226 + 'nuptials', 4227 + 'nursery', 4228 + 'nursing', 4229 + 'nurture', 4230 + 'nutcase', 4231 + 'nutlike', 4232 + 'nutmeg', 4233 + 'nutrient', 4234 + 'nutshell', 4235 + 'nuttiness', 4236 + 'nutty', 4237 + 'nuzzle', 4238 + 'nylon', 4239 + 'oaf', 4240 + 'oak', 4241 + 'oasis', 4242 + 'oat', 4243 + 'obedience', 4244 + 'obedient', 4245 + 'obituary', 4246 + 'object', 4247 + 'obligate', 4248 + 'obliged', 4249 + 'oblivion', 4250 + 'oblivious', 4251 + 'oblong', 4252 + 'obnoxious', 4253 + 'oboe', 4254 + 'obscure', 4255 + 'obscurity', 4256 + 'observant', 4257 + 'observer', 4258 + 'observing', 4259 + 'obsessed', 4260 + 'obsession', 4261 + 'obsessive', 4262 + 'obsolete', 4263 + 'obstacle', 4264 + 'obstinate', 4265 + 'obstruct', 4266 + 'obtain', 4267 + 'obtrusive', 4268 + 'obtuse', 4269 + 'obvious', 4270 + 'occultist', 4271 + 'occupancy', 4272 + 'occupant', 4273 + 'occupier', 4274 + 'occupy', 4275 + 'ocean', 4276 + 'ocelot', 4277 + 'octagon', 4278 + 'octane', 4279 + 'october', 4280 + 'octopus', 4281 + 'ogle', 4282 + 'oil', 4283 + 'oink', 4284 + 'ointment', 4285 + 'okay', 4286 + 'old', 4287 + 'olive', 4288 + 'olympics', 4289 + 'omega', 4290 + 'omen', 4291 + 'ominous', 4292 + 'omission', 4293 + 'omit', 4294 + 'omnivore', 4295 + 'onboard', 4296 + 'oncoming', 4297 + 'ongoing', 4298 + 'onion', 4299 + 'online', 4300 + 'onlooker', 4301 + 'only', 4302 + 'onscreen', 4303 + 'onset', 4304 + 'onshore', 4305 + 'onslaught', 4306 + 'onstage', 4307 + 'onto', 4308 + 'onward', 4309 + 'onyx', 4310 + 'oops', 4311 + 'ooze', 4312 + 'oozy', 4313 + 'opacity', 4314 + 'opal', 4315 + 'open', 4316 + 'operable', 4317 + 'operate', 4318 + 'operating', 4319 + 'operation', 4320 + 'operative', 4321 + 'operator', 4322 + 'opium', 4323 + 'opossum', 4324 + 'opponent', 4325 + 'oppose', 4326 + 'opposing', 4327 + 'opposite', 4328 + 'oppressed', 4329 + 'oppressor', 4330 + 'opt', 4331 + 'opulently', 4332 + 'osmosis', 4333 + 'other', 4334 + 'otter', 4335 + 'ouch', 4336 + 'ought', 4337 + 'ounce', 4338 + 'outage', 4339 + 'outback', 4340 + 'outbid', 4341 + 'outboard', 4342 + 'outbound', 4343 + 'outbreak', 4344 + 'outburst', 4345 + 'outcast', 4346 + 'outclass', 4347 + 'outcome', 4348 + 'outdated', 4349 + 'outdoors', 4350 + 'outer', 4351 + 'outfield', 4352 + 'outfit', 4353 + 'outflank', 4354 + 'outgoing', 4355 + 'outgrow', 4356 + 'outhouse', 4357 + 'outing', 4358 + 'outlast', 4359 + 'outlet', 4360 + 'outline', 4361 + 'outlook', 4362 + 'outlying', 4363 + 'outmatch', 4364 + 'outmost', 4365 + 'outnumber', 4366 + 'outplayed', 4367 + 'outpost', 4368 + 'outpour', 4369 + 'output', 4370 + 'outrage', 4371 + 'outrank', 4372 + 'outreach', 4373 + 'outright', 4374 + 'outscore', 4375 + 'outsell', 4376 + 'outshine', 4377 + 'outshoot', 4378 + 'outsider', 4379 + 'outskirts', 4380 + 'outsmart', 4381 + 'outsource', 4382 + 'outspoken', 4383 + 'outtakes', 4384 + 'outthink', 4385 + 'outward', 4386 + 'outweigh', 4387 + 'outwit', 4388 + 'oval', 4389 + 'ovary', 4390 + 'oven', 4391 + 'overact', 4392 + 'overall', 4393 + 'overarch', 4394 + 'overbid', 4395 + 'overbill', 4396 + 'overbite', 4397 + 'overblown', 4398 + 'overboard', 4399 + 'overbook', 4400 + 'overbuilt', 4401 + 'overcast', 4402 + 'overcoat', 4403 + 'overcome', 4404 + 'overcook', 4405 + 'overcrowd', 4406 + 'overdraft', 4407 + 'overdrawn', 4408 + 'overdress', 4409 + 'overdrive', 4410 + 'overdue', 4411 + 'overeager', 4412 + 'overeater', 4413 + 'overexert', 4414 + 'overfed', 4415 + 'overfeed', 4416 + 'overfill', 4417 + 'overflow', 4418 + 'overfull', 4419 + 'overgrown', 4420 + 'overhand', 4421 + 'overhang', 4422 + 'overhaul', 4423 + 'overhead', 4424 + 'overhear', 4425 + 'overheat', 4426 + 'overhung', 4427 + 'overjoyed', 4428 + 'overkill', 4429 + 'overlabor', 4430 + 'overlaid', 4431 + 'overlap', 4432 + 'overlay', 4433 + 'overload', 4434 + 'overlook', 4435 + 'overlord', 4436 + 'overlying', 4437 + 'overnight', 4438 + 'overpass', 4439 + 'overpay', 4440 + 'overplant', 4441 + 'overplay', 4442 + 'overpower', 4443 + 'overprice', 4444 + 'overrate', 4445 + 'overreach', 4446 + 'overreact', 4447 + 'override', 4448 + 'overripe', 4449 + 'overrule', 4450 + 'overrun', 4451 + 'overshoot', 4452 + 'overshot', 4453 + 'oversight', 4454 + 'oversized', 4455 + 'oversleep', 4456 + 'oversold', 4457 + 'overspend', 4458 + 'overstate', 4459 + 'overstay', 4460 + 'overstep', 4461 + 'overstock', 4462 + 'overstuff', 4463 + 'oversweet', 4464 + 'overtake', 4465 + 'overthrow', 4466 + 'overtime', 4467 + 'overtly', 4468 + 'overtone', 4469 + 'overture', 4470 + 'overturn', 4471 + 'overuse', 4472 + 'overvalue', 4473 + 'overview', 4474 + 'overwrite', 4475 + 'owl', 4476 + 'oxford', 4477 + 'oxidant', 4478 + 'oxidation', 4479 + 'oxidize', 4480 + 'oxidizing', 4481 + 'oxygen', 4482 + 'oxymoron', 4483 + 'oyster', 4484 + 'ozone', 4485 + 'paced', 4486 + 'pacemaker', 4487 + 'pacific', 4488 + 'pacifier', 4489 + 'pacifism', 4490 + 'pacifist', 4491 + 'pacify', 4492 + 'padded', 4493 + 'padding', 4494 + 'paddle', 4495 + 'paddling', 4496 + 'padlock', 4497 + 'pagan', 4498 + 'pager', 4499 + 'paging', 4500 + 'pajamas', 4501 + 'palace', 4502 + 'palatable', 4503 + 'palm', 4504 + 'palpable', 4505 + 'palpitate', 4506 + 'paltry', 4507 + 'pampered', 4508 + 'pamperer', 4509 + 'pampers', 4510 + 'pamphlet', 4511 + 'panama', 4512 + 'pancake', 4513 + 'pancreas', 4514 + 'panda', 4515 + 'pandemic', 4516 + 'pang', 4517 + 'panhandle', 4518 + 'panic', 4519 + 'panning', 4520 + 'panorama', 4521 + 'panoramic', 4522 + 'panther', 4523 + 'pantomime', 4524 + 'pantry', 4525 + 'pants', 4526 + 'pantyhose', 4527 + 'paparazzi', 4528 + 'papaya', 4529 + 'paper', 4530 + 'paprika', 4531 + 'papyrus', 4532 + 'parabola', 4533 + 'parachute', 4534 + 'parade', 4535 + 'paradox', 4536 + 'paragraph', 4537 + 'parakeet', 4538 + 'paralegal', 4539 + 'paralyses', 4540 + 'paralysis', 4541 + 'paralyze', 4542 + 'paramedic', 4543 + 'parameter', 4544 + 'paramount', 4545 + 'parasail', 4546 + 'parasite', 4547 + 'parasitic', 4548 + 'parcel', 4549 + 'parched', 4550 + 'parchment', 4551 + 'pardon', 4552 + 'parish', 4553 + 'parka', 4554 + 'parking', 4555 + 'parkway', 4556 + 'parlor', 4557 + 'parmesan', 4558 + 'parole', 4559 + 'parrot', 4560 + 'parsley', 4561 + 'parsnip', 4562 + 'partake', 4563 + 'parted', 4564 + 'parting', 4565 + 'partition', 4566 + 'partly', 4567 + 'partner', 4568 + 'partridge', 4569 + 'party', 4570 + 'passable', 4571 + 'passably', 4572 + 'passage', 4573 + 'passcode', 4574 + 'passenger', 4575 + 'passerby', 4576 + 'passing', 4577 + 'passion', 4578 + 'passive', 4579 + 'passivism', 4580 + 'passover', 4581 + 'passport', 4582 + 'password', 4583 + 'pasta', 4584 + 'pasted', 4585 + 'pastel', 4586 + 'pastime', 4587 + 'pastor', 4588 + 'pastrami', 4589 + 'pasture', 4590 + 'pasty', 4591 + 'patchwork', 4592 + 'patchy', 4593 + 'paternal', 4594 + 'paternity', 4595 + 'path', 4596 + 'patience', 4597 + 'patient', 4598 + 'patio', 4599 + 'patriarch', 4600 + 'patriot', 4601 + 'patrol', 4602 + 'patronage', 4603 + 'patronize', 4604 + 'pauper', 4605 + 'pavement', 4606 + 'paver', 4607 + 'pavestone', 4608 + 'pavilion', 4609 + 'paving', 4610 + 'pawing', 4611 + 'payable', 4612 + 'payback', 4613 + 'paycheck', 4614 + 'payday', 4615 + 'payee', 4616 + 'payer', 4617 + 'paying', 4618 + 'payment', 4619 + 'payphone', 4620 + 'payroll', 4621 + 'pebble', 4622 + 'pebbly', 4623 + 'pecan', 4624 + 'pectin', 4625 + 'peculiar', 4626 + 'peddling', 4627 + 'pediatric', 4628 + 'pedicure', 4629 + 'pedigree', 4630 + 'pedometer', 4631 + 'pegboard', 4632 + 'pelican', 4633 + 'pellet', 4634 + 'pelt', 4635 + 'pelvis', 4636 + 'penalize', 4637 + 'penalty', 4638 + 'pencil', 4639 + 'pendant', 4640 + 'pending', 4641 + 'penholder', 4642 + 'penknife', 4643 + 'pennant', 4644 + 'penniless', 4645 + 'penny', 4646 + 'penpal', 4647 + 'pension', 4648 + 'pentagon', 4649 + 'pentagram', 4650 + 'pep', 4651 + 'perceive', 4652 + 'percent', 4653 + 'perch', 4654 + 'percolate', 4655 + 'perennial', 4656 + 'perfected', 4657 + 'perfectly', 4658 + 'perfume', 4659 + 'periscope', 4660 + 'perish', 4661 + 'perjurer', 4662 + 'perjury', 4663 + 'perkiness', 4664 + 'perky', 4665 + 'perm', 4666 + 'peroxide', 4667 + 'perpetual', 4668 + 'perplexed', 4669 + 'persecute', 4670 + 'persevere', 4671 + 'persuaded', 4672 + 'persuader', 4673 + 'pesky', 4674 + 'peso', 4675 + 'pessimism', 4676 + 'pessimist', 4677 + 'pester', 4678 + 'pesticide', 4679 + 'petal', 4680 + 'petite', 4681 + 'petition', 4682 + 'petri', 4683 + 'petroleum', 4684 + 'petted', 4685 + 'petticoat', 4686 + 'pettiness', 4687 + 'petty', 4688 + 'petunia', 4689 + 'phantom', 4690 + 'phobia', 4691 + 'phoenix', 4692 + 'phonebook', 4693 + 'phoney', 4694 + 'phonics', 4695 + 'phoniness', 4696 + 'phony', 4697 + 'phosphate', 4698 + 'photo', 4699 + 'phrase', 4700 + 'phrasing', 4701 + 'placard', 4702 + 'placate', 4703 + 'placidly', 4704 + 'plank', 4705 + 'planner', 4706 + 'plant', 4707 + 'plasma', 4708 + 'plaster', 4709 + 'plastic', 4710 + 'plated', 4711 + 'platform', 4712 + 'plating', 4713 + 'platinum', 4714 + 'platonic', 4715 + 'platter', 4716 + 'platypus', 4717 + 'plausible', 4718 + 'plausibly', 4719 + 'playable', 4720 + 'playback', 4721 + 'player', 4722 + 'playful', 4723 + 'playgroup', 4724 + 'playhouse', 4725 + 'playing', 4726 + 'playlist', 4727 + 'playmaker', 4728 + 'playmate', 4729 + 'playoff', 4730 + 'playpen', 4731 + 'playroom', 4732 + 'playset', 4733 + 'plaything', 4734 + 'playtime', 4735 + 'plaza', 4736 + 'pleading', 4737 + 'pleat', 4738 + 'pledge', 4739 + 'plentiful', 4740 + 'plenty', 4741 + 'plethora', 4742 + 'plexiglas', 4743 + 'pliable', 4744 + 'plod', 4745 + 'plop', 4746 + 'plot', 4747 + 'plow', 4748 + 'ploy', 4749 + 'pluck', 4750 + 'plug', 4751 + 'plunder', 4752 + 'plunging', 4753 + 'plural', 4754 + 'plus', 4755 + 'plutonium', 4756 + 'plywood', 4757 + 'poach', 4758 + 'pod', 4759 + 'poem', 4760 + 'poet', 4761 + 'pogo', 4762 + 'pointed', 4763 + 'pointer', 4764 + 'pointing', 4765 + 'pointless', 4766 + 'pointy', 4767 + 'poise', 4768 + 'poison', 4769 + 'poker', 4770 + 'poking', 4771 + 'polar', 4772 + 'police', 4773 + 'policy', 4774 + 'polio', 4775 + 'polish', 4776 + 'politely', 4777 + 'polka', 4778 + 'polo', 4779 + 'polyester', 4780 + 'polygon', 4781 + 'polygraph', 4782 + 'polymer', 4783 + 'poncho', 4784 + 'pond', 4785 + 'pony', 4786 + 'popcorn', 4787 + 'pope', 4788 + 'poplar', 4789 + 'popper', 4790 + 'poppy', 4791 + 'popsicle', 4792 + 'populace', 4793 + 'popular', 4794 + 'populate', 4795 + 'porcupine', 4796 + 'pork', 4797 + 'porous', 4798 + 'porridge', 4799 + 'portable', 4800 + 'portal', 4801 + 'portfolio', 4802 + 'porthole', 4803 + 'portion', 4804 + 'portly', 4805 + 'portside', 4806 + 'poser', 4807 + 'posh', 4808 + 'posing', 4809 + 'possible', 4810 + 'possibly', 4811 + 'possum', 4812 + 'postage', 4813 + 'postal', 4814 + 'postbox', 4815 + 'postcard', 4816 + 'posted', 4817 + 'poster', 4818 + 'posting', 4819 + 'postnasal', 4820 + 'posture', 4821 + 'postwar', 4822 + 'pouch', 4823 + 'pounce', 4824 + 'pouncing', 4825 + 'pound', 4826 + 'pouring', 4827 + 'pout', 4828 + 'powdered', 4829 + 'powdering', 4830 + 'powdery', 4831 + 'power', 4832 + 'powwow', 4833 + 'pox', 4834 + 'praising', 4835 + 'prance', 4836 + 'prancing', 4837 + 'pranker', 4838 + 'prankish', 4839 + 'prankster', 4840 + 'prayer', 4841 + 'praying', 4842 + 'preacher', 4843 + 'preaching', 4844 + 'preachy', 4845 + 'preamble', 4846 + 'precinct', 4847 + 'precise', 4848 + 'precision', 4849 + 'precook', 4850 + 'precut', 4851 + 'predator', 4852 + 'predefine', 4853 + 'predict', 4854 + 'preface', 4855 + 'prefix', 4856 + 'preflight', 4857 + 'preformed', 4858 + 'pregame', 4859 + 'pregnancy', 4860 + 'pregnant', 4861 + 'preheated', 4862 + 'prelaunch', 4863 + 'prelaw', 4864 + 'prelude', 4865 + 'premiere', 4866 + 'premises', 4867 + 'premium', 4868 + 'prenatal', 4869 + 'preoccupy', 4870 + 'preorder', 4871 + 'prepaid', 4872 + 'prepay', 4873 + 'preplan', 4874 + 'preppy', 4875 + 'preschool', 4876 + 'prescribe', 4877 + 'preseason', 4878 + 'preset', 4879 + 'preshow', 4880 + 'president', 4881 + 'presoak', 4882 + 'press', 4883 + 'presume', 4884 + 'presuming', 4885 + 'preteen', 4886 + 'pretended', 4887 + 'pretender', 4888 + 'pretense', 4889 + 'pretext', 4890 + 'pretty', 4891 + 'pretzel', 4892 + 'prevail', 4893 + 'prevalent', 4894 + 'prevent', 4895 + 'preview', 4896 + 'previous', 4897 + 'prewar', 4898 + 'prewashed', 4899 + 'prideful', 4900 + 'pried', 4901 + 'primal', 4902 + 'primarily', 4903 + 'primary', 4904 + 'primate', 4905 + 'primer', 4906 + 'primp', 4907 + 'princess', 4908 + 'print', 4909 + 'prior', 4910 + 'prism', 4911 + 'prison', 4912 + 'prissy', 4913 + 'pristine', 4914 + 'privacy', 4915 + 'private', 4916 + 'privatize', 4917 + 'prize', 4918 + 'proactive', 4919 + 'probable', 4920 + 'probably', 4921 + 'probation', 4922 + 'probe', 4923 + 'probing', 4924 + 'probiotic', 4925 + 'problem', 4926 + 'procedure', 4927 + 'process', 4928 + 'proclaim', 4929 + 'procreate', 4930 + 'procurer', 4931 + 'prodigal', 4932 + 'prodigy', 4933 + 'produce', 4934 + 'product', 4935 + 'profane', 4936 + 'profanity', 4937 + 'professed', 4938 + 'professor', 4939 + 'profile', 4940 + 'profound', 4941 + 'profusely', 4942 + 'progeny', 4943 + 'prognosis', 4944 + 'program', 4945 + 'progress', 4946 + 'projector', 4947 + 'prologue', 4948 + 'prolonged', 4949 + 'promenade', 4950 + 'prominent', 4951 + 'promoter', 4952 + 'promotion', 4953 + 'prompter', 4954 + 'promptly', 4955 + 'prone', 4956 + 'prong', 4957 + 'pronounce', 4958 + 'pronto', 4959 + 'proofing', 4960 + 'proofread', 4961 + 'proofs', 4962 + 'propeller', 4963 + 'properly', 4964 + 'property', 4965 + 'proponent', 4966 + 'proposal', 4967 + 'propose', 4968 + 'props', 4969 + 'prorate', 4970 + 'protector', 4971 + 'protegee', 4972 + 'proton', 4973 + 'prototype', 4974 + 'protozoan', 4975 + 'protract', 4976 + 'protrude', 4977 + 'proud', 4978 + 'provable', 4979 + 'proved', 4980 + 'proven', 4981 + 'provided', 4982 + 'provider', 4983 + 'providing', 4984 + 'province', 4985 + 'proving', 4986 + 'provoke', 4987 + 'provoking', 4988 + 'provolone', 4989 + 'prowess', 4990 + 'prowler', 4991 + 'prowling', 4992 + 'proximity', 4993 + 'proxy', 4994 + 'prozac', 4995 + 'prude', 4996 + 'prudishly', 4997 + 'prune', 4998 + 'pruning', 4999 + 'pry', 5000 + 'psychic', 5001 + 'public', 5002 + 'publisher', 5003 + 'pucker', 5004 + 'pueblo', 5005 + 'pug', 5006 + 'pull', 5007 + 'pulmonary', 5008 + 'pulp', 5009 + 'pulsate', 5010 + 'pulse', 5011 + 'pulverize', 5012 + 'puma', 5013 + 'pumice', 5014 + 'pummel', 5015 + 'punch', 5016 + 'punctual', 5017 + 'punctuate', 5018 + 'punctured', 5019 + 'pungent', 5020 + 'punisher', 5021 + 'punk', 5022 + 'pupil', 5023 + 'puppet', 5024 + 'puppy', 5025 + 'purchase', 5026 + 'pureblood', 5027 + 'purebred', 5028 + 'purely', 5029 + 'pureness', 5030 + 'purgatory', 5031 + 'purge', 5032 + 'purging', 5033 + 'purifier', 5034 + 'purify', 5035 + 'purist', 5036 + 'puritan', 5037 + 'purity', 5038 + 'purple', 5039 + 'purplish', 5040 + 'purposely', 5041 + 'purr', 5042 + 'purse', 5043 + 'pursuable', 5044 + 'pursuant', 5045 + 'pursuit', 5046 + 'purveyor', 5047 + 'pushcart', 5048 + 'pushchair', 5049 + 'pusher', 5050 + 'pushiness', 5051 + 'pushing', 5052 + 'pushover', 5053 + 'pushpin', 5054 + 'pushup', 5055 + 'pushy', 5056 + 'putdown', 5057 + 'putt', 5058 + 'puzzle', 5059 + 'puzzling', 5060 + 'pyramid', 5061 + 'pyromania', 5062 + 'python', 5063 + 'quack', 5064 + 'quadrant', 5065 + 'quail', 5066 + 'quaintly', 5067 + 'quake', 5068 + 'quaking', 5069 + 'qualified', 5070 + 'qualifier', 5071 + 'qualify', 5072 + 'quality', 5073 + 'qualm', 5074 + 'quantum', 5075 + 'quarrel', 5076 + 'quarry', 5077 + 'quartered', 5078 + 'quarterly', 5079 + 'quarters', 5080 + 'quartet', 5081 + 'quench', 5082 + 'query', 5083 + 'quicken', 5084 + 'quickly', 5085 + 'quickness', 5086 + 'quicksand', 5087 + 'quickstep', 5088 + 'quiet', 5089 + 'quill', 5090 + 'quilt', 5091 + 'quintet', 5092 + 'quintuple', 5093 + 'quirk', 5094 + 'quit', 5095 + 'quiver', 5096 + 'quizzical', 5097 + 'quotable', 5098 + 'quotation', 5099 + 'quote', 5100 + 'rabid', 5101 + 'race', 5102 + 'racing', 5103 + 'racism', 5104 + 'rack', 5105 + 'racoon', 5106 + 'radar', 5107 + 'radial', 5108 + 'radiance', 5109 + 'radiantly', 5110 + 'radiated', 5111 + 'radiation', 5112 + 'radiator', 5113 + 'radio', 5114 + 'radish', 5115 + 'raffle', 5116 + 'raft', 5117 + 'rage', 5118 + 'ragged', 5119 + 'raging', 5120 + 'ragweed', 5121 + 'raider', 5122 + 'railcar', 5123 + 'railing', 5124 + 'railroad', 5125 + 'railway', 5126 + 'raisin', 5127 + 'rake', 5128 + 'raking', 5129 + 'rally', 5130 + 'ramble', 5131 + 'rambling', 5132 + 'ramp', 5133 + 'ramrod', 5134 + 'ranch', 5135 + 'rancidity', 5136 + 'random', 5137 + 'ranged', 5138 + 'ranger', 5139 + 'ranging', 5140 + 'ranked', 5141 + 'ranking', 5142 + 'ransack', 5143 + 'ranting', 5144 + 'rants', 5145 + 'rare', 5146 + 'rarity', 5147 + 'rascal', 5148 + 'rash', 5149 + 'rasping', 5150 + 'ravage', 5151 + 'raven', 5152 + 'ravine', 5153 + 'raving', 5154 + 'ravioli', 5155 + 'ravishing', 5156 + 'reabsorb', 5157 + 'reach', 5158 + 'reacquire', 5159 + 'reaction', 5160 + 'reactive', 5161 + 'reactor', 5162 + 'reaffirm', 5163 + 'ream', 5164 + 'reanalyze', 5165 + 'reappear', 5166 + 'reapply', 5167 + 'reappoint', 5168 + 'reapprove', 5169 + 'rearrange', 5170 + 'rearview', 5171 + 'reason', 5172 + 'reassign', 5173 + 'reassure', 5174 + 'reattach', 5175 + 'reawake', 5176 + 'rebalance', 5177 + 'rebate', 5178 + 'rebel', 5179 + 'rebirth', 5180 + 'reboot', 5181 + 'reborn', 5182 + 'rebound', 5183 + 'rebuff', 5184 + 'rebuild', 5185 + 'rebuilt', 5186 + 'reburial', 5187 + 'rebuttal', 5188 + 'recall', 5189 + 'recant', 5190 + 'recapture', 5191 + 'recast', 5192 + 'recede', 5193 + 'recent', 5194 + 'recess', 5195 + 'recharger', 5196 + 'recipient', 5197 + 'recital', 5198 + 'recite', 5199 + 'reckless', 5200 + 'reclaim', 5201 + 'recliner', 5202 + 'reclining', 5203 + 'recluse', 5204 + 'reclusive', 5205 + 'recognize', 5206 + 'recoil', 5207 + 'recollect', 5208 + 'recolor', 5209 + 'reconcile', 5210 + 'reconfirm', 5211 + 'reconvene', 5212 + 'recopy', 5213 + 'record', 5214 + 'recount', 5215 + 'recoup', 5216 + 'recovery', 5217 + 'recreate', 5218 + 'rectal', 5219 + 'rectangle', 5220 + 'rectified', 5221 + 'rectify', 5222 + 'recycled', 5223 + 'recycler', 5224 + 'recycling', 5225 + 'reemerge', 5226 + 'reenact', 5227 + 'reenter', 5228 + 'reentry', 5229 + 'reexamine', 5230 + 'referable', 5231 + 'referee', 5232 + 'reference', 5233 + 'refill', 5234 + 'refinance', 5235 + 'refined', 5236 + 'refinery', 5237 + 'refining', 5238 + 'refinish', 5239 + 'reflected', 5240 + 'reflector', 5241 + 'reflex', 5242 + 'reflux', 5243 + 'refocus', 5244 + 'refold', 5245 + 'reforest', 5246 + 'reformat', 5247 + 'reformed', 5248 + 'reformer', 5249 + 'reformist', 5250 + 'refract', 5251 + 'refrain', 5252 + 'refreeze', 5253 + 'refresh', 5254 + 'refried', 5255 + 'refueling', 5256 + 'refund', 5257 + 'refurbish', 5258 + 'refurnish', 5259 + 'refusal', 5260 + 'refuse', 5261 + 'refusing', 5262 + 'refutable', 5263 + 'refute', 5264 + 'regain', 5265 + 'regalia', 5266 + 'regally', 5267 + 'reggae', 5268 + 'regime', 5269 + 'region', 5270 + 'register', 5271 + 'registrar', 5272 + 'registry', 5273 + 'regress', 5274 + 'regretful', 5275 + 'regroup', 5276 + 'regular', 5277 + 'regulate', 5278 + 'regulator', 5279 + 'rehab', 5280 + 'reheat', 5281 + 'rehire', 5282 + 'rehydrate', 5283 + 'reimburse', 5284 + 'reissue', 5285 + 'reiterate', 5286 + 'rejoice', 5287 + 'rejoicing', 5288 + 'rejoin', 5289 + 'rekindle', 5290 + 'relapse', 5291 + 'relapsing', 5292 + 'relatable', 5293 + 'related', 5294 + 'relation', 5295 + 'relative', 5296 + 'relax', 5297 + 'relay', 5298 + 'relearn', 5299 + 'release', 5300 + 'relenting', 5301 + 'reliable', 5302 + 'reliably', 5303 + 'reliance', 5304 + 'reliant', 5305 + 'relic', 5306 + 'relieve', 5307 + 'relieving', 5308 + 'relight', 5309 + 'relish', 5310 + 'relive', 5311 + 'reload', 5312 + 'relocate', 5313 + 'relock', 5314 + 'reluctant', 5315 + 'rely', 5316 + 'remake', 5317 + 'remark', 5318 + 'remarry', 5319 + 'rematch', 5320 + 'remedial', 5321 + 'remedy', 5322 + 'remember', 5323 + 'reminder', 5324 + 'remindful', 5325 + 'remission', 5326 + 'remix', 5327 + 'remnant', 5328 + 'remodeler', 5329 + 'remold', 5330 + 'remorse', 5331 + 'remote', 5332 + 'removable', 5333 + 'removal', 5334 + 'removed', 5335 + 'remover', 5336 + 'removing', 5337 + 'rename', 5338 + 'renderer', 5339 + 'rendering', 5340 + 'rendition', 5341 + 'renegade', 5342 + 'renewable', 5343 + 'renewably', 5344 + 'renewal', 5345 + 'renewed', 5346 + 'renounce', 5347 + 'renovate', 5348 + 'renovator', 5349 + 'rentable', 5350 + 'rental', 5351 + 'rented', 5352 + 'renter', 5353 + 'reoccupy', 5354 + 'reoccur', 5355 + 'reopen', 5356 + 'reorder', 5357 + 'repackage', 5358 + 'repacking', 5359 + 'repaint', 5360 + 'repair', 5361 + 'repave', 5362 + 'repaying', 5363 + 'repayment', 5364 + 'repeal', 5365 + 'repeated', 5366 + 'repeater', 5367 + 'repent', 5368 + 'rephrase', 5369 + 'replace', 5370 + 'replay', 5371 + 'replica', 5372 + 'reply', 5373 + 'reporter', 5374 + 'repose', 5375 + 'repossess', 5376 + 'repost', 5377 + 'repressed', 5378 + 'reprimand', 5379 + 'reprint', 5380 + 'reprise', 5381 + 'reproach', 5382 + 'reprocess', 5383 + 'reproduce', 5384 + 'reprogram', 5385 + 'reps', 5386 + 'reptile', 5387 + 'reptilian', 5388 + 'repugnant', 5389 + 'repulsion', 5390 + 'repulsive', 5391 + 'repurpose', 5392 + 'reputable', 5393 + 'reputably', 5394 + 'request', 5395 + 'require', 5396 + 'requisite', 5397 + 'reroute', 5398 + 'rerun', 5399 + 'resale', 5400 + 'resample', 5401 + 'rescuer', 5402 + 'reseal', 5403 + 'research', 5404 + 'reselect', 5405 + 'reseller', 5406 + 'resemble', 5407 + 'resend', 5408 + 'resent', 5409 + 'reset', 5410 + 'reshape', 5411 + 'reshoot', 5412 + 'reshuffle', 5413 + 'residence', 5414 + 'residency', 5415 + 'resident', 5416 + 'residual', 5417 + 'residue', 5418 + 'resigned', 5419 + 'resilient', 5420 + 'resistant', 5421 + 'resisting', 5422 + 'resize', 5423 + 'resolute', 5424 + 'resolved', 5425 + 'resonant', 5426 + 'resonate', 5427 + 'resort', 5428 + 'resource', 5429 + 'respect', 5430 + 'resubmit', 5431 + 'result', 5432 + 'resume', 5433 + 'resupply', 5434 + 'resurface', 5435 + 'resurrect', 5436 + 'retail', 5437 + 'retainer', 5438 + 'retaining', 5439 + 'retake', 5440 + 'retaliate', 5441 + 'retention', 5442 + 'rethink', 5443 + 'retinal', 5444 + 'retired', 5445 + 'retiree', 5446 + 'retiring', 5447 + 'retold', 5448 + 'retool', 5449 + 'retorted', 5450 + 'retouch', 5451 + 'retrace', 5452 + 'retract', 5453 + 'retrain', 5454 + 'retread', 5455 + 'retreat', 5456 + 'retrial', 5457 + 'retrieval', 5458 + 'retriever', 5459 + 'retry', 5460 + 'return', 5461 + 'retying', 5462 + 'retype', 5463 + 'reunion', 5464 + 'reunite', 5465 + 'reusable', 5466 + 'reuse', 5467 + 'reveal', 5468 + 'reveler', 5469 + 'revenge', 5470 + 'revenue', 5471 + 'reverb', 5472 + 'revered', 5473 + 'reverence', 5474 + 'reverend', 5475 + 'reversal', 5476 + 'reverse', 5477 + 'reversing', 5478 + 'reversion', 5479 + 'revert', 5480 + 'revisable', 5481 + 'revise', 5482 + 'revision', 5483 + 'revisit', 5484 + 'revivable', 5485 + 'revival', 5486 + 'reviver', 5487 + 'reviving', 5488 + 'revocable', 5489 + 'revoke', 5490 + 'revolt', 5491 + 'revolver', 5492 + 'revolving', 5493 + 'reward', 5494 + 'rewash', 5495 + 'rewind', 5496 + 'rewire', 5497 + 'reword', 5498 + 'rework', 5499 + 'rewrap', 5500 + 'rewrite', 5501 + 'rhyme', 5502 + 'ribbon', 5503 + 'ribcage', 5504 + 'rice', 5505 + 'riches', 5506 + 'richly', 5507 + 'richness', 5508 + 'rickety', 5509 + 'ricotta', 5510 + 'riddance', 5511 + 'ridden', 5512 + 'ride', 5513 + 'riding', 5514 + 'rifling', 5515 + 'rift', 5516 + 'rigging', 5517 + 'rigid', 5518 + 'rigor', 5519 + 'rimless', 5520 + 'rimmed', 5521 + 'rind', 5522 + 'rink', 5523 + 'rinse', 5524 + 'rinsing', 5525 + 'riot', 5526 + 'ripcord', 5527 + 'ripeness', 5528 + 'ripening', 5529 + 'ripping', 5530 + 'ripple', 5531 + 'rippling', 5532 + 'riptide', 5533 + 'rise', 5534 + 'rising', 5535 + 'risk', 5536 + 'risotto', 5537 + 'ritalin', 5538 + 'ritzy', 5539 + 'rival', 5540 + 'riverbank', 5541 + 'riverbed', 5542 + 'riverboat', 5543 + 'riverside', 5544 + 'riveter', 5545 + 'riveting', 5546 + 'roamer', 5547 + 'roaming', 5548 + 'roast', 5549 + 'robbing', 5550 + 'robe', 5551 + 'robin', 5552 + 'robotics', 5553 + 'robust', 5554 + 'rockband', 5555 + 'rocker', 5556 + 'rocket', 5557 + 'rockfish', 5558 + 'rockiness', 5559 + 'rocking', 5560 + 'rocklike', 5561 + 'rockslide', 5562 + 'rockstar', 5563 + 'rocky', 5564 + 'rogue', 5565 + 'roman', 5566 + 'romp', 5567 + 'rope', 5568 + 'roping', 5569 + 'roster', 5570 + 'rosy', 5571 + 'rotten', 5572 + 'rotting', 5573 + 'rotunda', 5574 + 'roulette', 5575 + 'rounding', 5576 + 'roundish', 5577 + 'roundness', 5578 + 'roundup', 5579 + 'roundworm', 5580 + 'routine', 5581 + 'routing', 5582 + 'rover', 5583 + 'roving', 5584 + 'royal', 5585 + 'rubbed', 5586 + 'rubber', 5587 + 'rubbing', 5588 + 'rubble', 5589 + 'rubdown', 5590 + 'ruby', 5591 + 'ruckus', 5592 + 'rudder', 5593 + 'rug', 5594 + 'ruined', 5595 + 'rule', 5596 + 'rumble', 5597 + 'rumbling', 5598 + 'rummage', 5599 + 'rumor', 5600 + 'runaround', 5601 + 'rundown', 5602 + 'runner', 5603 + 'running', 5604 + 'runny', 5605 + 'runt', 5606 + 'runway', 5607 + 'rupture', 5608 + 'rural', 5609 + 'ruse', 5610 + 'rush', 5611 + 'rust', 5612 + 'rut', 5613 + 'sabbath', 5614 + 'sabotage', 5615 + 'sacrament', 5616 + 'sacred', 5617 + 'sacrifice', 5618 + 'sadden', 5619 + 'saddlebag', 5620 + 'saddled', 5621 + 'saddling', 5622 + 'sadly', 5623 + 'sadness', 5624 + 'safari', 5625 + 'safeguard', 5626 + 'safehouse', 5627 + 'safely', 5628 + 'safeness', 5629 + 'saffron', 5630 + 'saga', 5631 + 'sage', 5632 + 'sagging', 5633 + 'saggy', 5634 + 'said', 5635 + 'saint', 5636 + 'sake', 5637 + 'salad', 5638 + 'salami', 5639 + 'salaried', 5640 + 'salary', 5641 + 'saline', 5642 + 'salon', 5643 + 'saloon', 5644 + 'salsa', 5645 + 'salt', 5646 + 'salutary', 5647 + 'salute', 5648 + 'salvage', 5649 + 'salvaging', 5650 + 'salvation', 5651 + 'same', 5652 + 'sample', 5653 + 'sampling', 5654 + 'sanction', 5655 + 'sanctity', 5656 + 'sanctuary', 5657 + 'sandal', 5658 + 'sandbag', 5659 + 'sandbank', 5660 + 'sandbar', 5661 + 'sandblast', 5662 + 'sandbox', 5663 + 'sanded', 5664 + 'sandfish', 5665 + 'sanding', 5666 + 'sandlot', 5667 + 'sandpaper', 5668 + 'sandpit', 5669 + 'sandstone', 5670 + 'sandstorm', 5671 + 'sandworm', 5672 + 'sandy', 5673 + 'sanitary', 5674 + 'sanitizer', 5675 + 'sank', 5676 + 'santa', 5677 + 'sapling', 5678 + 'sappiness', 5679 + 'sappy', 5680 + 'sarcasm', 5681 + 'sarcastic', 5682 + 'sardine', 5683 + 'sash', 5684 + 'sasquatch', 5685 + 'sassy', 5686 + 'satchel', 5687 + 'satiable', 5688 + 'satin', 5689 + 'satirical', 5690 + 'satisfied', 5691 + 'satisfy', 5692 + 'saturate', 5693 + 'saturday', 5694 + 'sauciness', 5695 + 'saucy', 5696 + 'sauna', 5697 + 'savage', 5698 + 'savanna', 5699 + 'saved', 5700 + 'savings', 5701 + 'savior', 5702 + 'savor', 5703 + 'saxophone', 5704 + 'say', 5705 + 'scabbed', 5706 + 'scabby', 5707 + 'scalded', 5708 + 'scalding', 5709 + 'scale', 5710 + 'scaling', 5711 + 'scallion', 5712 + 'scallop', 5713 + 'scalping', 5714 + 'scam', 5715 + 'scandal', 5716 + 'scanner', 5717 + 'scanning', 5718 + 'scant', 5719 + 'scapegoat', 5720 + 'scarce', 5721 + 'scarcity', 5722 + 'scarecrow', 5723 + 'scared', 5724 + 'scarf', 5725 + 'scarily', 5726 + 'scariness', 5727 + 'scarring', 5728 + 'scary', 5729 + 'scavenger', 5730 + 'scenic', 5731 + 'schedule', 5732 + 'schematic', 5733 + 'scheme', 5734 + 'scheming', 5735 + 'schilling', 5736 + 'schnapps', 5737 + 'scholar', 5738 + 'science', 5739 + 'scientist', 5740 + 'scion', 5741 + 'scoff', 5742 + 'scolding', 5743 + 'scone', 5744 + 'scoop', 5745 + 'scooter', 5746 + 'scope', 5747 + 'scorch', 5748 + 'scorebook', 5749 + 'scorecard', 5750 + 'scored', 5751 + 'scoreless', 5752 + 'scorer', 5753 + 'scoring', 5754 + 'scorn', 5755 + 'scorpion', 5756 + 'scotch', 5757 + 'scoundrel', 5758 + 'scoured', 5759 + 'scouring', 5760 + 'scouting', 5761 + 'scouts', 5762 + 'scowling', 5763 + 'scrabble', 5764 + 'scraggly', 5765 + 'scrambled', 5766 + 'scrambler', 5767 + 'scrap', 5768 + 'scratch', 5769 + 'scrawny', 5770 + 'screen', 5771 + 'scribble', 5772 + 'scribe', 5773 + 'scribing', 5774 + 'scrimmage', 5775 + 'script', 5776 + 'scroll', 5777 + 'scrooge', 5778 + 'scrounger', 5779 + 'scrubbed', 5780 + 'scrubber', 5781 + 'scruffy', 5782 + 'scrunch', 5783 + 'scrutiny', 5784 + 'scuba', 5785 + 'scuff', 5786 + 'sculptor', 5787 + 'sculpture', 5788 + 'scurvy', 5789 + 'scuttle', 5790 + 'secluded', 5791 + 'secluding', 5792 + 'seclusion', 5793 + 'second', 5794 + 'secrecy', 5795 + 'secret', 5796 + 'sectional', 5797 + 'sector', 5798 + 'secular', 5799 + 'securely', 5800 + 'security', 5801 + 'sedan', 5802 + 'sedate', 5803 + 'sedation', 5804 + 'sedative', 5805 + 'sediment', 5806 + 'seduce', 5807 + 'seducing', 5808 + 'segment', 5809 + 'seismic', 5810 + 'seizing', 5811 + 'seldom', 5812 + 'selected', 5813 + 'selection', 5814 + 'selective', 5815 + 'selector', 5816 + 'self', 5817 + 'seltzer', 5818 + 'semantic', 5819 + 'semester', 5820 + 'semicolon', 5821 + 'semifinal', 5822 + 'seminar', 5823 + 'semisoft', 5824 + 'semisweet', 5825 + 'senate', 5826 + 'senator', 5827 + 'send', 5828 + 'senior', 5829 + 'senorita', 5830 + 'sensation', 5831 + 'sensitive', 5832 + 'sensitize', 5833 + 'sensually', 5834 + 'sensuous', 5835 + 'sepia', 5836 + 'september', 5837 + 'septic', 5838 + 'septum', 5839 + 'sequel', 5840 + 'sequence', 5841 + 'sequester', 5842 + 'series', 5843 + 'sermon', 5844 + 'serotonin', 5845 + 'serpent', 5846 + 'serrated', 5847 + 'serve', 5848 + 'service', 5849 + 'serving', 5850 + 'sesame', 5851 + 'sessions', 5852 + 'setback', 5853 + 'setting', 5854 + 'settle', 5855 + 'settling', 5856 + 'setup', 5857 + 'sevenfold', 5858 + 'seventeen', 5859 + 'seventh', 5860 + 'seventy', 5861 + 'severity', 5862 + 'shabby', 5863 + 'shack', 5864 + 'shaded', 5865 + 'shadily', 5866 + 'shadiness', 5867 + 'shading', 5868 + 'shadow', 5869 + 'shady', 5870 + 'shaft', 5871 + 'shakable', 5872 + 'shakily', 5873 + 'shakiness', 5874 + 'shaking', 5875 + 'shaky', 5876 + 'shale', 5877 + 'shallot', 5878 + 'shallow', 5879 + 'shame', 5880 + 'shampoo', 5881 + 'shamrock', 5882 + 'shank', 5883 + 'shanty', 5884 + 'shape', 5885 + 'shaping', 5886 + 'share', 5887 + 'sharpener', 5888 + 'sharper', 5889 + 'sharpie', 5890 + 'sharply', 5891 + 'sharpness', 5892 + 'shawl', 5893 + 'sheath', 5894 + 'shed', 5895 + 'sheep', 5896 + 'sheet', 5897 + 'shelf', 5898 + 'shell', 5899 + 'shelter', 5900 + 'shelve', 5901 + 'shelving', 5902 + 'sherry', 5903 + 'shield', 5904 + 'shifter', 5905 + 'shifting', 5906 + 'shiftless', 5907 + 'shifty', 5908 + 'shimmer', 5909 + 'shimmy', 5910 + 'shindig', 5911 + 'shine', 5912 + 'shingle', 5913 + 'shininess', 5914 + 'shining', 5915 + 'shiny', 5916 + 'ship', 5917 + 'shirt', 5918 + 'shivering', 5919 + 'shock', 5920 + 'shone', 5921 + 'shoplift', 5922 + 'shopper', 5923 + 'shopping', 5924 + 'shoptalk', 5925 + 'shore', 5926 + 'shortage', 5927 + 'shortcake', 5928 + 'shortcut', 5929 + 'shorten', 5930 + 'shorter', 5931 + 'shorthand', 5932 + 'shortlist', 5933 + 'shortly', 5934 + 'shortness', 5935 + 'shorts', 5936 + 'shortwave', 5937 + 'shorty', 5938 + 'shout', 5939 + 'shove', 5940 + 'showbiz', 5941 + 'showcase', 5942 + 'showdown', 5943 + 'shower', 5944 + 'showgirl', 5945 + 'showing', 5946 + 'showman', 5947 + 'shown', 5948 + 'showoff', 5949 + 'showpiece', 5950 + 'showplace', 5951 + 'showroom', 5952 + 'showy', 5953 + 'shrank', 5954 + 'shrapnel', 5955 + 'shredder', 5956 + 'shredding', 5957 + 'shrewdly', 5958 + 'shriek', 5959 + 'shrill', 5960 + 'shrimp', 5961 + 'shrine', 5962 + 'shrink', 5963 + 'shrivel', 5964 + 'shrouded', 5965 + 'shrubbery', 5966 + 'shrubs', 5967 + 'shrug', 5968 + 'shrunk', 5969 + 'shucking', 5970 + 'shudder', 5971 + 'shuffle', 5972 + 'shuffling', 5973 + 'shun', 5974 + 'shush', 5975 + 'shut', 5976 + 'shy', 5977 + 'siamese', 5978 + 'siberian', 5979 + 'sibling', 5980 + 'siding', 5981 + 'sierra', 5982 + 'siesta', 5983 + 'sift', 5984 + 'sighing', 5985 + 'silenced', 5986 + 'silencer', 5987 + 'silent', 5988 + 'silica', 5989 + 'silicon', 5990 + 'silk', 5991 + 'silliness', 5992 + 'silly', 5993 + 'silo', 5994 + 'silt', 5995 + 'silver', 5996 + 'similarly', 5997 + 'simile', 5998 + 'simmering', 5999 + 'simple', 6000 + 'simplify', 6001 + 'simply', 6002 + 'sincere', 6003 + 'sincerity', 6004 + 'singer', 6005 + 'singing', 6006 + 'single', 6007 + 'singular', 6008 + 'sinister', 6009 + 'sinless', 6010 + 'sinner', 6011 + 'sinuous', 6012 + 'sip', 6013 + 'siren', 6014 + 'sister', 6015 + 'sitcom', 6016 + 'sitter', 6017 + 'sitting', 6018 + 'situated', 6019 + 'situation', 6020 + 'sixfold', 6021 + 'sixteen', 6022 + 'sixth', 6023 + 'sixties', 6024 + 'sixtieth', 6025 + 'sixtyfold', 6026 + 'sizable', 6027 + 'sizably', 6028 + 'size', 6029 + 'sizing', 6030 + 'sizzle', 6031 + 'sizzling', 6032 + 'skater', 6033 + 'skating', 6034 + 'skedaddle', 6035 + 'skeletal', 6036 + 'skeleton', 6037 + 'skeptic', 6038 + 'sketch', 6039 + 'skewed', 6040 + 'skewer', 6041 + 'skid', 6042 + 'skied', 6043 + 'skier', 6044 + 'skies', 6045 + 'skiing', 6046 + 'skilled', 6047 + 'skillet', 6048 + 'skillful', 6049 + 'skimmed', 6050 + 'skimmer', 6051 + 'skimming', 6052 + 'skimpily', 6053 + 'skincare', 6054 + 'skinhead', 6055 + 'skinless', 6056 + 'skinning', 6057 + 'skinny', 6058 + 'skintight', 6059 + 'skipper', 6060 + 'skipping', 6061 + 'skirmish', 6062 + 'skirt', 6063 + 'skittle', 6064 + 'skydiver', 6065 + 'skylight', 6066 + 'skyline', 6067 + 'skype', 6068 + 'skyrocket', 6069 + 'skyward', 6070 + 'slab', 6071 + 'slacked', 6072 + 'slacker', 6073 + 'slacking', 6074 + 'slackness', 6075 + 'slacks', 6076 + 'slain', 6077 + 'slam', 6078 + 'slander', 6079 + 'slang', 6080 + 'slapping', 6081 + 'slapstick', 6082 + 'slashed', 6083 + 'slashing', 6084 + 'slate', 6085 + 'slather', 6086 + 'slaw', 6087 + 'sled', 6088 + 'sleek', 6089 + 'sleep', 6090 + 'sleet', 6091 + 'sleeve', 6092 + 'slept', 6093 + 'sliceable', 6094 + 'sliced', 6095 + 'slicer', 6096 + 'slicing', 6097 + 'slick', 6098 + 'slider', 6099 + 'slideshow', 6100 + 'sliding', 6101 + 'slighted', 6102 + 'slighting', 6103 + 'slightly', 6104 + 'slimness', 6105 + 'slimy', 6106 + 'slinging', 6107 + 'slingshot', 6108 + 'slinky', 6109 + 'slip', 6110 + 'slit', 6111 + 'sliver', 6112 + 'slobbery', 6113 + 'slogan', 6114 + 'sloped', 6115 + 'sloping', 6116 + 'sloppily', 6117 + 'sloppy', 6118 + 'slot', 6119 + 'slouching', 6120 + 'slouchy', 6121 + 'sludge', 6122 + 'slug', 6123 + 'slum', 6124 + 'slurp', 6125 + 'slush', 6126 + 'sly', 6127 + 'small', 6128 + 'smartly', 6129 + 'smartness', 6130 + 'smasher', 6131 + 'smashing', 6132 + 'smashup', 6133 + 'smell', 6134 + 'smelting', 6135 + 'smile', 6136 + 'smilingly', 6137 + 'smirk', 6138 + 'smite', 6139 + 'smith', 6140 + 'smitten', 6141 + 'smock', 6142 + 'smog', 6143 + 'smoked', 6144 + 'smokeless', 6145 + 'smokiness', 6146 + 'smoking', 6147 + 'smoky', 6148 + 'smolder', 6149 + 'smooth', 6150 + 'smother', 6151 + 'smudge', 6152 + 'smudgy', 6153 + 'smuggler', 6154 + 'smuggling', 6155 + 'smugly', 6156 + 'smugness', 6157 + 'snack', 6158 + 'snagged', 6159 + 'snaking', 6160 + 'snap', 6161 + 'snare', 6162 + 'snarl', 6163 + 'snazzy', 6164 + 'sneak', 6165 + 'sneer', 6166 + 'sneeze', 6167 + 'sneezing', 6168 + 'snide', 6169 + 'sniff', 6170 + 'snippet', 6171 + 'snipping', 6172 + 'snitch', 6173 + 'snooper', 6174 + 'snooze', 6175 + 'snore', 6176 + 'snoring', 6177 + 'snorkel', 6178 + 'snort', 6179 + 'snout', 6180 + 'snowbird', 6181 + 'snowboard', 6182 + 'snowbound', 6183 + 'snowcap', 6184 + 'snowdrift', 6185 + 'snowdrop', 6186 + 'snowfall', 6187 + 'snowfield', 6188 + 'snowflake', 6189 + 'snowiness', 6190 + 'snowless', 6191 + 'snowman', 6192 + 'snowplow', 6193 + 'snowshoe', 6194 + 'snowstorm', 6195 + 'snowsuit', 6196 + 'snowy', 6197 + 'snub', 6198 + 'snuff', 6199 + 'snuggle', 6200 + 'snugly', 6201 + 'snugness', 6202 + 'speak', 6203 + 'spearfish', 6204 + 'spearhead', 6205 + 'spearman', 6206 + 'spearmint', 6207 + 'species', 6208 + 'specimen', 6209 + 'specked', 6210 + 'speckled', 6211 + 'specks', 6212 + 'spectacle', 6213 + 'spectator', 6214 + 'spectrum', 6215 + 'speculate', 6216 + 'speech', 6217 + 'speed', 6218 + 'spellbind', 6219 + 'speller', 6220 + 'spelling', 6221 + 'spendable', 6222 + 'spender', 6223 + 'spending', 6224 + 'spent', 6225 + 'spew', 6226 + 'sphere', 6227 + 'spherical', 6228 + 'sphinx', 6229 + 'spider', 6230 + 'spied', 6231 + 'spiffy', 6232 + 'spill', 6233 + 'spilt', 6234 + 'spinach', 6235 + 'spinal', 6236 + 'spindle', 6237 + 'spinner', 6238 + 'spinning', 6239 + 'spinout', 6240 + 'spinster', 6241 + 'spiny', 6242 + 'spiral', 6243 + 'spirited', 6244 + 'spiritism', 6245 + 'spirits', 6246 + 'spiritual', 6247 + 'splashed', 6248 + 'splashing', 6249 + 'splashy', 6250 + 'splatter', 6251 + 'spleen', 6252 + 'splendid', 6253 + 'splendor', 6254 + 'splice', 6255 + 'splicing', 6256 + 'splinter', 6257 + 'splotchy', 6258 + 'splurge', 6259 + 'spoilage', 6260 + 'spoiled', 6261 + 'spoiler', 6262 + 'spoiling', 6263 + 'spoils', 6264 + 'spoken', 6265 + 'spokesman', 6266 + 'sponge', 6267 + 'spongy', 6268 + 'sponsor', 6269 + 'spoof', 6270 + 'spookily', 6271 + 'spooky', 6272 + 'spool', 6273 + 'spoon', 6274 + 'spore', 6275 + 'sporting', 6276 + 'sports', 6277 + 'sporty', 6278 + 'spotless', 6279 + 'spotlight', 6280 + 'spotted', 6281 + 'spotter', 6282 + 'spotting', 6283 + 'spotty', 6284 + 'spousal', 6285 + 'spouse', 6286 + 'spout', 6287 + 'sprain', 6288 + 'sprang', 6289 + 'sprawl', 6290 + 'spray', 6291 + 'spree', 6292 + 'sprig', 6293 + 'spring', 6294 + 'sprinkled', 6295 + 'sprinkler', 6296 + 'sprint', 6297 + 'sprite', 6298 + 'sprout', 6299 + 'spruce', 6300 + 'sprung', 6301 + 'spry', 6302 + 'spud', 6303 + 'spur', 6304 + 'sputter', 6305 + 'spyglass', 6306 + 'squabble', 6307 + 'squad', 6308 + 'squall', 6309 + 'squander', 6310 + 'squash', 6311 + 'squatted', 6312 + 'squatter', 6313 + 'squatting', 6314 + 'squeak', 6315 + 'squealer', 6316 + 'squealing', 6317 + 'squeamish', 6318 + 'squeegee', 6319 + 'squeeze', 6320 + 'squeezing', 6321 + 'squid', 6322 + 'squiggle', 6323 + 'squiggly', 6324 + 'squint', 6325 + 'squire', 6326 + 'squirt', 6327 + 'squishier', 6328 + 'squishy', 6329 + 'stability', 6330 + 'stabilize', 6331 + 'stable', 6332 + 'stack', 6333 + 'stadium', 6334 + 'staff', 6335 + 'stage', 6336 + 'staging', 6337 + 'stagnant', 6338 + 'stagnate', 6339 + 'stainable', 6340 + 'stained', 6341 + 'staining', 6342 + 'stainless', 6343 + 'stalemate', 6344 + 'staleness', 6345 + 'stalling', 6346 + 'stallion', 6347 + 'stamina', 6348 + 'stammer', 6349 + 'stamp', 6350 + 'stand', 6351 + 'stank', 6352 + 'staple', 6353 + 'stapling', 6354 + 'starboard', 6355 + 'starch', 6356 + 'stardom', 6357 + 'stardust', 6358 + 'starfish', 6359 + 'stargazer', 6360 + 'staring', 6361 + 'stark', 6362 + 'starless', 6363 + 'starlet', 6364 + 'starlight', 6365 + 'starlit', 6366 + 'starring', 6367 + 'starry', 6368 + 'starship', 6369 + 'starter', 6370 + 'starting', 6371 + 'startle', 6372 + 'startling', 6373 + 'startup', 6374 + 'starved', 6375 + 'starving', 6376 + 'stash', 6377 + 'state', 6378 + 'static', 6379 + 'statistic', 6380 + 'statue', 6381 + 'stature', 6382 + 'status', 6383 + 'statute', 6384 + 'statutory', 6385 + 'staunch', 6386 + 'stays', 6387 + 'steadfast', 6388 + 'steadier', 6389 + 'steadily', 6390 + 'steadying', 6391 + 'steam', 6392 + 'steed', 6393 + 'steep', 6394 + 'steerable', 6395 + 'steering', 6396 + 'steersman', 6397 + 'stegosaur', 6398 + 'stellar', 6399 + 'stem', 6400 + 'stench', 6401 + 'stencil', 6402 + 'step', 6403 + 'stereo', 6404 + 'sterile', 6405 + 'sterility', 6406 + 'sterilize', 6407 + 'sterling', 6408 + 'sternness', 6409 + 'sternum', 6410 + 'stew', 6411 + 'stick', 6412 + 'stiffen', 6413 + 'stiffly', 6414 + 'stiffness', 6415 + 'stifle', 6416 + 'stifling', 6417 + 'stillness', 6418 + 'stilt', 6419 + 'stimulant', 6420 + 'stimulate', 6421 + 'stimuli', 6422 + 'stimulus', 6423 + 'stinger', 6424 + 'stingily', 6425 + 'stinging', 6426 + 'stingray', 6427 + 'stingy', 6428 + 'stinking', 6429 + 'stinky', 6430 + 'stipend', 6431 + 'stipulate', 6432 + 'stir', 6433 + 'stitch', 6434 + 'stock', 6435 + 'stoic', 6436 + 'stoke', 6437 + 'stole', 6438 + 'stomp', 6439 + 'stonewall', 6440 + 'stoneware', 6441 + 'stonework', 6442 + 'stoning', 6443 + 'stony', 6444 + 'stood', 6445 + 'stooge', 6446 + 'stool', 6447 + 'stoop', 6448 + 'stoplight', 6449 + 'stoppable', 6450 + 'stoppage', 6451 + 'stopped', 6452 + 'stopper', 6453 + 'stopping', 6454 + 'stopwatch', 6455 + 'storable', 6456 + 'storage', 6457 + 'storeroom', 6458 + 'storewide', 6459 + 'storm', 6460 + 'stout', 6461 + 'stove', 6462 + 'stowaway', 6463 + 'stowing', 6464 + 'straddle', 6465 + 'straggler', 6466 + 'strained', 6467 + 'strainer', 6468 + 'straining', 6469 + 'strangely', 6470 + 'stranger', 6471 + 'strangle', 6472 + 'strategic', 6473 + 'strategy', 6474 + 'stratus', 6475 + 'straw', 6476 + 'stray', 6477 + 'streak', 6478 + 'stream', 6479 + 'street', 6480 + 'strength', 6481 + 'strenuous', 6482 + 'strep', 6483 + 'stress', 6484 + 'stretch', 6485 + 'strewn', 6486 + 'stricken', 6487 + 'strict', 6488 + 'stride', 6489 + 'strife', 6490 + 'strike', 6491 + 'striking', 6492 + 'strive', 6493 + 'striving', 6494 + 'strobe', 6495 + 'strode', 6496 + 'stroller', 6497 + 'strongbox', 6498 + 'strongly', 6499 + 'strongman', 6500 + 'struck', 6501 + 'structure', 6502 + 'strudel', 6503 + 'struggle', 6504 + 'strum', 6505 + 'strung', 6506 + 'strut', 6507 + 'stubbed', 6508 + 'stubble', 6509 + 'stubbly', 6510 + 'stubborn', 6511 + 'stucco', 6512 + 'stuck', 6513 + 'student', 6514 + 'studied', 6515 + 'studio', 6516 + 'study', 6517 + 'stuffed', 6518 + 'stuffing', 6519 + 'stuffy', 6520 + 'stumble', 6521 + 'stumbling', 6522 + 'stump', 6523 + 'stung', 6524 + 'stunned', 6525 + 'stunner', 6526 + 'stunning', 6527 + 'stunt', 6528 + 'stupor', 6529 + 'sturdily', 6530 + 'sturdy', 6531 + 'styling', 6532 + 'stylishly', 6533 + 'stylist', 6534 + 'stylized', 6535 + 'stylus', 6536 + 'suave', 6537 + 'subarctic', 6538 + 'subatomic', 6539 + 'subdivide', 6540 + 'subdued', 6541 + 'subduing', 6542 + 'subfloor', 6543 + 'subgroup', 6544 + 'subheader', 6545 + 'subject', 6546 + 'sublease', 6547 + 'sublet', 6548 + 'sublevel', 6549 + 'sublime', 6550 + 'submarine', 6551 + 'submerge', 6552 + 'submersed', 6553 + 'submitter', 6554 + 'subpanel', 6555 + 'subpar', 6556 + 'subplot', 6557 + 'subprime', 6558 + 'subscribe', 6559 + 'subscript', 6560 + 'subsector', 6561 + 'subside', 6562 + 'subsiding', 6563 + 'subsidize', 6564 + 'subsidy', 6565 + 'subsoil', 6566 + 'subsonic', 6567 + 'substance', 6568 + 'subsystem', 6569 + 'subtext', 6570 + 'subtitle', 6571 + 'subtly', 6572 + 'subtotal', 6573 + 'subtract', 6574 + 'subtype', 6575 + 'suburb', 6576 + 'subway', 6577 + 'subwoofer', 6578 + 'subzero', 6579 + 'succulent', 6580 + 'such', 6581 + 'suction', 6582 + 'sudden', 6583 + 'sudoku', 6584 + 'suds', 6585 + 'sufferer', 6586 + 'suffering', 6587 + 'suffice', 6588 + 'suffix', 6589 + 'suffocate', 6590 + 'suffrage', 6591 + 'sugar', 6592 + 'suggest', 6593 + 'suing', 6594 + 'suitable', 6595 + 'suitably', 6596 + 'suitcase', 6597 + 'suitor', 6598 + 'sulfate', 6599 + 'sulfide', 6600 + 'sulfite', 6601 + 'sulfur', 6602 + 'sulk', 6603 + 'sullen', 6604 + 'sulphate', 6605 + 'sulphuric', 6606 + 'sultry', 6607 + 'superbowl', 6608 + 'superglue', 6609 + 'superhero', 6610 + 'superior', 6611 + 'superjet', 6612 + 'superman', 6613 + 'supermom', 6614 + 'supernova', 6615 + 'supervise', 6616 + 'supper', 6617 + 'supplier', 6618 + 'supply', 6619 + 'support', 6620 + 'supremacy', 6621 + 'supreme', 6622 + 'surcharge', 6623 + 'surely', 6624 + 'sureness', 6625 + 'surface', 6626 + 'surfacing', 6627 + 'surfboard', 6628 + 'surfer', 6629 + 'surgery', 6630 + 'surgical', 6631 + 'surging', 6632 + 'surname', 6633 + 'surpass', 6634 + 'surplus', 6635 + 'surprise', 6636 + 'surreal', 6637 + 'surrender', 6638 + 'surrogate', 6639 + 'surround', 6640 + 'survey', 6641 + 'survival', 6642 + 'survive', 6643 + 'surviving', 6644 + 'survivor', 6645 + 'sushi', 6646 + 'suspect', 6647 + 'suspend', 6648 + 'suspense', 6649 + 'sustained', 6650 + 'sustainer', 6651 + 'swab', 6652 + 'swaddling', 6653 + 'swagger', 6654 + 'swampland', 6655 + 'swan', 6656 + 'swapping', 6657 + 'swarm', 6658 + 'sway', 6659 + 'swear', 6660 + 'sweat', 6661 + 'sweep', 6662 + 'swell', 6663 + 'swept', 6664 + 'swerve', 6665 + 'swifter', 6666 + 'swiftly', 6667 + 'swiftness', 6668 + 'swimmable', 6669 + 'swimmer', 6670 + 'swimming', 6671 + 'swimsuit', 6672 + 'swimwear', 6673 + 'swinger', 6674 + 'swinging', 6675 + 'swipe', 6676 + 'swirl', 6677 + 'switch', 6678 + 'swivel', 6679 + 'swizzle', 6680 + 'swooned', 6681 + 'swoop', 6682 + 'swoosh', 6683 + 'swore', 6684 + 'sworn', 6685 + 'swung', 6686 + 'sycamore', 6687 + 'sympathy', 6688 + 'symphonic', 6689 + 'symphony', 6690 + 'symptom', 6691 + 'synapse', 6692 + 'syndrome', 6693 + 'synergy', 6694 + 'synopses', 6695 + 'synopsis', 6696 + 'synthesis', 6697 + 'synthetic', 6698 + 'syrup', 6699 + 'system', 6700 + 't-shirt', 6701 + 'tabasco', 6702 + 'tabby', 6703 + 'tableful', 6704 + 'tables', 6705 + 'tablet', 6706 + 'tableware', 6707 + 'tabloid', 6708 + 'tackiness', 6709 + 'tacking', 6710 + 'tackle', 6711 + 'tackling', 6712 + 'tacky', 6713 + 'taco', 6714 + 'tactful', 6715 + 'tactical', 6716 + 'tactics', 6717 + 'tactile', 6718 + 'tactless', 6719 + 'tadpole', 6720 + 'taekwondo', 6721 + 'tag', 6722 + 'tainted', 6723 + 'take', 6724 + 'taking', 6725 + 'talcum', 6726 + 'talisman', 6727 + 'tall', 6728 + 'talon', 6729 + 'tamale', 6730 + 'tameness', 6731 + 'tamer', 6732 + 'tamper', 6733 + 'tank', 6734 + 'tanned', 6735 + 'tannery', 6736 + 'tanning', 6737 + 'tantrum', 6738 + 'tapeless', 6739 + 'tapered', 6740 + 'tapering', 6741 + 'tapestry', 6742 + 'tapioca', 6743 + 'tapping', 6744 + 'taps', 6745 + 'tarantula', 6746 + 'target', 6747 + 'tarmac', 6748 + 'tarnish', 6749 + 'tarot', 6750 + 'tartar', 6751 + 'tartly', 6752 + 'tartness', 6753 + 'task', 6754 + 'tassel', 6755 + 'taste', 6756 + 'tastiness', 6757 + 'tasting', 6758 + 'tasty', 6759 + 'tattered', 6760 + 'tattle', 6761 + 'tattling', 6762 + 'tattoo', 6763 + 'taunt', 6764 + 'tavern', 6765 + 'thank', 6766 + 'that', 6767 + 'thaw', 6768 + 'theater', 6769 + 'theatrics', 6770 + 'thee', 6771 + 'theft', 6772 + 'theme', 6773 + 'theology', 6774 + 'theorize', 6775 + 'thermal', 6776 + 'thermos', 6777 + 'thesaurus', 6778 + 'these', 6779 + 'thesis', 6780 + 'thespian', 6781 + 'thicken', 6782 + 'thicket', 6783 + 'thickness', 6784 + 'thieving', 6785 + 'thievish', 6786 + 'thigh', 6787 + 'thimble', 6788 + 'thing', 6789 + 'think', 6790 + 'thinly', 6791 + 'thinner', 6792 + 'thinness', 6793 + 'thinning', 6794 + 'thirstily', 6795 + 'thirsting', 6796 + 'thirsty', 6797 + 'thirteen', 6798 + 'thirty', 6799 + 'thong', 6800 + 'thorn', 6801 + 'those', 6802 + 'thousand', 6803 + 'thrash', 6804 + 'thread', 6805 + 'threaten', 6806 + 'threefold', 6807 + 'thrift', 6808 + 'thrill', 6809 + 'thrive', 6810 + 'thriving', 6811 + 'throat', 6812 + 'throbbing', 6813 + 'throng', 6814 + 'throttle', 6815 + 'throwaway', 6816 + 'throwback', 6817 + 'thrower', 6818 + 'throwing', 6819 + 'thud', 6820 + 'thumb', 6821 + 'thumping', 6822 + 'thursday', 6823 + 'thus', 6824 + 'thwarting', 6825 + 'thyself', 6826 + 'tiara', 6827 + 'tibia', 6828 + 'tidal', 6829 + 'tidbit', 6830 + 'tidiness', 6831 + 'tidings', 6832 + 'tidy', 6833 + 'tiger', 6834 + 'tighten', 6835 + 'tightly', 6836 + 'tightness', 6837 + 'tightrope', 6838 + 'tightwad', 6839 + 'tigress', 6840 + 'tile', 6841 + 'tiling', 6842 + 'till', 6843 + 'tilt', 6844 + 'timid', 6845 + 'timing', 6846 + 'timothy', 6847 + 'tinderbox', 6848 + 'tinfoil', 6849 + 'tingle', 6850 + 'tingling', 6851 + 'tingly', 6852 + 'tinker', 6853 + 'tinkling', 6854 + 'tinsel', 6855 + 'tinsmith', 6856 + 'tint', 6857 + 'tinwork', 6858 + 'tiny', 6859 + 'tipoff', 6860 + 'tipped', 6861 + 'tipper', 6862 + 'tipping', 6863 + 'tiptoeing', 6864 + 'tiptop', 6865 + 'tiring', 6866 + 'tissue', 6867 + 'trace', 6868 + 'tracing', 6869 + 'track', 6870 + 'traction', 6871 + 'tractor', 6872 + 'trade', 6873 + 'trading', 6874 + 'tradition', 6875 + 'traffic', 6876 + 'tragedy', 6877 + 'trailing', 6878 + 'trailside', 6879 + 'train', 6880 + 'traitor', 6881 + 'trance', 6882 + 'tranquil', 6883 + 'transfer', 6884 + 'transform', 6885 + 'translate', 6886 + 'transpire', 6887 + 'transport', 6888 + 'transpose', 6889 + 'trapdoor', 6890 + 'trapeze', 6891 + 'trapezoid', 6892 + 'trapped', 6893 + 'trapper', 6894 + 'trapping', 6895 + 'traps', 6896 + 'trash', 6897 + 'travel', 6898 + 'traverse', 6899 + 'travesty', 6900 + 'tray', 6901 + 'treachery', 6902 + 'treading', 6903 + 'treadmill', 6904 + 'treason', 6905 + 'treat', 6906 + 'treble', 6907 + 'tree', 6908 + 'trekker', 6909 + 'tremble', 6910 + 'trembling', 6911 + 'tremor', 6912 + 'trench', 6913 + 'trend', 6914 + 'trespass', 6915 + 'triage', 6916 + 'trial', 6917 + 'triangle', 6918 + 'tribesman', 6919 + 'tribunal', 6920 + 'tribune', 6921 + 'tributary', 6922 + 'tribute', 6923 + 'triceps', 6924 + 'trickery', 6925 + 'trickily', 6926 + 'tricking', 6927 + 'trickle', 6928 + 'trickster', 6929 + 'tricky', 6930 + 'tricolor', 6931 + 'tricycle', 6932 + 'trident', 6933 + 'tried', 6934 + 'trifle', 6935 + 'trifocals', 6936 + 'trillion', 6937 + 'trilogy', 6938 + 'trimester', 6939 + 'trimmer', 6940 + 'trimming', 6941 + 'trimness', 6942 + 'trinity', 6943 + 'trio', 6944 + 'tripod', 6945 + 'tripping', 6946 + 'triumph', 6947 + 'trivial', 6948 + 'trodden', 6949 + 'trolling', 6950 + 'trombone', 6951 + 'trophy', 6952 + 'tropical', 6953 + 'tropics', 6954 + 'trouble', 6955 + 'troubling', 6956 + 'trough', 6957 + 'trousers', 6958 + 'trout', 6959 + 'trowel', 6960 + 'truce', 6961 + 'truck', 6962 + 'truffle', 6963 + 'trump', 6964 + 'trunks', 6965 + 'trustable', 6966 + 'trustee', 6967 + 'trustful', 6968 + 'trusting', 6969 + 'trustless', 6970 + 'truth', 6971 + 'try', 6972 + 'tubby', 6973 + 'tubeless', 6974 + 'tubular', 6975 + 'tucking', 6976 + 'tuesday', 6977 + 'tug', 6978 + 'tuition', 6979 + 'tulip', 6980 + 'tumble', 6981 + 'tumbling', 6982 + 'tummy', 6983 + 'turban', 6984 + 'turbine', 6985 + 'turbofan', 6986 + 'turbojet', 6987 + 'turbulent', 6988 + 'turf', 6989 + 'turkey', 6990 + 'turmoil', 6991 + 'turret', 6992 + 'turtle', 6993 + 'tusk', 6994 + 'tutor', 6995 + 'tutu', 6996 + 'tux', 6997 + 'tweak', 6998 + 'tweed', 6999 + 'tweet', 7000 + 'tweezers', 7001 + 'twelve', 7002 + 'twentieth', 7003 + 'twenty', 7004 + 'twerp', 7005 + 'twice', 7006 + 'twiddle', 7007 + 'twiddling', 7008 + 'twig', 7009 + 'twilight', 7010 + 'twine', 7011 + 'twins', 7012 + 'twirl', 7013 + 'twistable', 7014 + 'twisted', 7015 + 'twister', 7016 + 'twisting', 7017 + 'twisty', 7018 + 'twitch', 7019 + 'twitter', 7020 + 'tycoon', 7021 + 'tying', 7022 + 'tyke', 7023 + 'udder', 7024 + 'ultimate', 7025 + 'ultimatum', 7026 + 'ultra', 7027 + 'umbilical', 7028 + 'umbrella', 7029 + 'umpire', 7030 + 'unabashed', 7031 + 'unable', 7032 + 'unadorned', 7033 + 'unadvised', 7034 + 'unafraid', 7035 + 'unaired', 7036 + 'unaligned', 7037 + 'unaltered', 7038 + 'unarmored', 7039 + 'unashamed', 7040 + 'unaudited', 7041 + 'unawake', 7042 + 'unaware', 7043 + 'unbaked', 7044 + 'unbalance', 7045 + 'unbeaten', 7046 + 'unbend', 7047 + 'unbent', 7048 + 'unbiased', 7049 + 'unbitten', 7050 + 'unblended', 7051 + 'unblessed', 7052 + 'unblock', 7053 + 'unbolted', 7054 + 'unbounded', 7055 + 'unboxed', 7056 + 'unbraided', 7057 + 'unbridle', 7058 + 'unbroken', 7059 + 'unbuckled', 7060 + 'unbundle', 7061 + 'unburned', 7062 + 'unbutton', 7063 + 'uncanny', 7064 + 'uncapped', 7065 + 'uncaring', 7066 + 'uncertain', 7067 + 'unchain', 7068 + 'unchanged', 7069 + 'uncharted', 7070 + 'uncheck', 7071 + 'uncivil', 7072 + 'unclad', 7073 + 'unclaimed', 7074 + 'unclamped', 7075 + 'unclasp', 7076 + 'uncle', 7077 + 'unclip', 7078 + 'uncloak', 7079 + 'unclog', 7080 + 'unclothed', 7081 + 'uncoated', 7082 + 'uncoiled', 7083 + 'uncolored', 7084 + 'uncombed', 7085 + 'uncommon', 7086 + 'uncooked', 7087 + 'uncork', 7088 + 'uncorrupt', 7089 + 'uncounted', 7090 + 'uncouple', 7091 + 'uncouth', 7092 + 'uncover', 7093 + 'uncross', 7094 + 'uncrown', 7095 + 'uncrushed', 7096 + 'uncured', 7097 + 'uncurious', 7098 + 'uncurled', 7099 + 'uncut', 7100 + 'undamaged', 7101 + 'undated', 7102 + 'undaunted', 7103 + 'undead', 7104 + 'undecided', 7105 + 'undefined', 7106 + 'underage', 7107 + 'underarm', 7108 + 'undercoat', 7109 + 'undercook', 7110 + 'undercut', 7111 + 'underdog', 7112 + 'underdone', 7113 + 'underfed', 7114 + 'underfeed', 7115 + 'underfoot', 7116 + 'undergo', 7117 + 'undergrad', 7118 + 'underhand', 7119 + 'underline', 7120 + 'underling', 7121 + 'undermine', 7122 + 'undermost', 7123 + 'underpaid', 7124 + 'underpass', 7125 + 'underpay', 7126 + 'underrate', 7127 + 'undertake', 7128 + 'undertone', 7129 + 'undertook', 7130 + 'undertow', 7131 + 'underuse', 7132 + 'underwear', 7133 + 'underwent', 7134 + 'underwire', 7135 + 'undesired', 7136 + 'undiluted', 7137 + 'undivided', 7138 + 'undocked', 7139 + 'undoing', 7140 + 'undone', 7141 + 'undrafted', 7142 + 'undress', 7143 + 'undrilled', 7144 + 'undusted', 7145 + 'undying', 7146 + 'unearned', 7147 + 'unearth', 7148 + 'unease', 7149 + 'uneasily', 7150 + 'uneasy', 7151 + 'uneatable', 7152 + 'uneaten', 7153 + 'unedited', 7154 + 'unelected', 7155 + 'unending', 7156 + 'unengaged', 7157 + 'unenvied', 7158 + 'unequal', 7159 + 'unethical', 7160 + 'uneven', 7161 + 'unexpired', 7162 + 'unexposed', 7163 + 'unfailing', 7164 + 'unfair', 7165 + 'unfasten', 7166 + 'unfazed', 7167 + 'unfeeling', 7168 + 'unfiled', 7169 + 'unfilled', 7170 + 'unfitted', 7171 + 'unfitting', 7172 + 'unfixable', 7173 + 'unfixed', 7174 + 'unflawed', 7175 + 'unfocused', 7176 + 'unfold', 7177 + 'unfounded', 7178 + 'unframed', 7179 + 'unfreeze', 7180 + 'unfrosted', 7181 + 'unfrozen', 7182 + 'unfunded', 7183 + 'unglazed', 7184 + 'ungloved', 7185 + 'unglue', 7186 + 'ungodly', 7187 + 'ungraded', 7188 + 'ungreased', 7189 + 'unguarded', 7190 + 'unguided', 7191 + 'unhappily', 7192 + 'unhappy', 7193 + 'unharmed', 7194 + 'unhealthy', 7195 + 'unheard', 7196 + 'unhearing', 7197 + 'unheated', 7198 + 'unhelpful', 7199 + 'unhidden', 7200 + 'unhinge', 7201 + 'unhitched', 7202 + 'unholy', 7203 + 'unhook', 7204 + 'unicorn', 7205 + 'unicycle', 7206 + 'unified', 7207 + 'unifier', 7208 + 'uniformed', 7209 + 'uniformly', 7210 + 'unify', 7211 + 'unimpeded', 7212 + 'uninjured', 7213 + 'uninstall', 7214 + 'uninsured', 7215 + 'uninvited', 7216 + 'union', 7217 + 'uniquely', 7218 + 'unisexual', 7219 + 'unison', 7220 + 'unissued', 7221 + 'unit', 7222 + 'universal', 7223 + 'universe', 7224 + 'unjustly', 7225 + 'unkempt', 7226 + 'unkind', 7227 + 'unknotted', 7228 + 'unknowing', 7229 + 'unknown', 7230 + 'unlaced', 7231 + 'unlatch', 7232 + 'unlawful', 7233 + 'unleaded', 7234 + 'unlearned', 7235 + 'unleash', 7236 + 'unless', 7237 + 'unleveled', 7238 + 'unlighted', 7239 + 'unlikable', 7240 + 'unlimited', 7241 + 'unlined', 7242 + 'unlinked', 7243 + 'unlisted', 7244 + 'unlit', 7245 + 'unlivable', 7246 + 'unloaded', 7247 + 'unloader', 7248 + 'unlocked', 7249 + 'unlocking', 7250 + 'unlovable', 7251 + 'unloved', 7252 + 'unlovely', 7253 + 'unloving', 7254 + 'unluckily', 7255 + 'unlucky', 7256 + 'unmade', 7257 + 'unmanaged', 7258 + 'unmanned', 7259 + 'unmapped', 7260 + 'unmarked', 7261 + 'unmasked', 7262 + 'unmasking', 7263 + 'unmatched', 7264 + 'unmindful', 7265 + 'unmixable', 7266 + 'unmixed', 7267 + 'unmolded', 7268 + 'unmoral', 7269 + 'unmovable', 7270 + 'unmoved', 7271 + 'unmoving', 7272 + 'unnamable', 7273 + 'unnamed', 7274 + 'unnatural', 7275 + 'unneeded', 7276 + 'unnerve', 7277 + 'unnerving', 7278 + 'unnoticed', 7279 + 'unopened', 7280 + 'unopposed', 7281 + 'unpack', 7282 + 'unpadded', 7283 + 'unpaid', 7284 + 'unpainted', 7285 + 'unpaired', 7286 + 'unpaved', 7287 + 'unpeeled', 7288 + 'unpicked', 7289 + 'unpiloted', 7290 + 'unpinned', 7291 + 'unplanned', 7292 + 'unplanted', 7293 + 'unpleased', 7294 + 'unpledged', 7295 + 'unplowed', 7296 + 'unplug', 7297 + 'unpopular', 7298 + 'unproven', 7299 + 'unquote', 7300 + 'unranked', 7301 + 'unrated', 7302 + 'unraveled', 7303 + 'unreached', 7304 + 'unread', 7305 + 'unreal', 7306 + 'unreeling', 7307 + 'unrefined', 7308 + 'unrelated', 7309 + 'unrented', 7310 + 'unrest', 7311 + 'unretired', 7312 + 'unrevised', 7313 + 'unrigged', 7314 + 'unripe', 7315 + 'unrivaled', 7316 + 'unroasted', 7317 + 'unrobed', 7318 + 'unroll', 7319 + 'unruffled', 7320 + 'unruly', 7321 + 'unrushed', 7322 + 'unsaddle', 7323 + 'unsafe', 7324 + 'unsaid', 7325 + 'unsalted', 7326 + 'unsaved', 7327 + 'unsavory', 7328 + 'unscathed', 7329 + 'unscented', 7330 + 'unscrew', 7331 + 'unsealed', 7332 + 'unseated', 7333 + 'unsecured', 7334 + 'unseeing', 7335 + 'unseemly', 7336 + 'unseen', 7337 + 'unselect', 7338 + 'unselfish', 7339 + 'unsent', 7340 + 'unsettled', 7341 + 'unshackle', 7342 + 'unshaken', 7343 + 'unshaved', 7344 + 'unshaven', 7345 + 'unsheathe', 7346 + 'unshipped', 7347 + 'unsightly', 7348 + 'unsigned', 7349 + 'unskilled', 7350 + 'unsliced', 7351 + 'unsmooth', 7352 + 'unsnap', 7353 + 'unsocial', 7354 + 'unsoiled', 7355 + 'unsold', 7356 + 'unsolved', 7357 + 'unsorted', 7358 + 'unspoiled', 7359 + 'unspoken', 7360 + 'unstable', 7361 + 'unstaffed', 7362 + 'unstamped', 7363 + 'unsteady', 7364 + 'unsterile', 7365 + 'unstirred', 7366 + 'unstitch', 7367 + 'unstopped', 7368 + 'unstuck', 7369 + 'unstuffed', 7370 + 'unstylish', 7371 + 'unsubtle', 7372 + 'unsubtly', 7373 + 'unsuited', 7374 + 'unsure', 7375 + 'unsworn', 7376 + 'untagged', 7377 + 'untainted', 7378 + 'untaken', 7379 + 'untamed', 7380 + 'untangled', 7381 + 'untapped', 7382 + 'untaxed', 7383 + 'unthawed', 7384 + 'unthread', 7385 + 'untidy', 7386 + 'untie', 7387 + 'until', 7388 + 'untimed', 7389 + 'untimely', 7390 + 'untitled', 7391 + 'untoasted', 7392 + 'untold', 7393 + 'untouched', 7394 + 'untracked', 7395 + 'untrained', 7396 + 'untreated', 7397 + 'untried', 7398 + 'untrimmed', 7399 + 'untrue', 7400 + 'untruth', 7401 + 'unturned', 7402 + 'untwist', 7403 + 'untying', 7404 + 'unusable', 7405 + 'unused', 7406 + 'unusual', 7407 + 'unvalued', 7408 + 'unvaried', 7409 + 'unvarying', 7410 + 'unveiled', 7411 + 'unveiling', 7412 + 'unvented', 7413 + 'unviable', 7414 + 'unvisited', 7415 + 'unvocal', 7416 + 'unwanted', 7417 + 'unwarlike', 7418 + 'unwary', 7419 + 'unwashed', 7420 + 'unwatched', 7421 + 'unweave', 7422 + 'unwed', 7423 + 'unwelcome', 7424 + 'unwell', 7425 + 'unwieldy', 7426 + 'unwilling', 7427 + 'unwind', 7428 + 'unwired', 7429 + 'unwitting', 7430 + 'unwomanly', 7431 + 'unworldly', 7432 + 'unworn', 7433 + 'unworried', 7434 + 'unworthy', 7435 + 'unwound', 7436 + 'unwoven', 7437 + 'unwrapped', 7438 + 'unwritten', 7439 + 'unzip', 7440 + 'upbeat', 7441 + 'upchuck', 7442 + 'upcoming', 7443 + 'upcountry', 7444 + 'update', 7445 + 'upfront', 7446 + 'upgrade', 7447 + 'upheaval', 7448 + 'upheld', 7449 + 'uphill', 7450 + 'uphold', 7451 + 'uplifted', 7452 + 'uplifting', 7453 + 'upload', 7454 + 'upon', 7455 + 'upper', 7456 + 'upright', 7457 + 'uprising', 7458 + 'upriver', 7459 + 'uproar', 7460 + 'uproot', 7461 + 'upscale', 7462 + 'upside', 7463 + 'upstage', 7464 + 'upstairs', 7465 + 'upstart', 7466 + 'upstate', 7467 + 'upstream', 7468 + 'upstroke', 7469 + 'upswing', 7470 + 'uptake', 7471 + 'uptight', 7472 + 'uptown', 7473 + 'upturned', 7474 + 'upward', 7475 + 'upwind', 7476 + 'uranium', 7477 + 'urban', 7478 + 'urchin', 7479 + 'urethane', 7480 + 'urgency', 7481 + 'urgent', 7482 + 'urging', 7483 + 'urologist', 7484 + 'urology', 7485 + 'usable', 7486 + 'usage', 7487 + 'useable', 7488 + 'used', 7489 + 'uselessly', 7490 + 'user', 7491 + 'usher', 7492 + 'usual', 7493 + 'utensil', 7494 + 'utility', 7495 + 'utilize', 7496 + 'utmost', 7497 + 'utopia', 7498 + 'utter', 7499 + 'vacancy', 7500 + 'vacant', 7501 + 'vacate', 7502 + 'vacation', 7503 + 'vagabond', 7504 + 'vagrancy', 7505 + 'vagrantly', 7506 + 'vaguely', 7507 + 'vagueness', 7508 + 'valiant', 7509 + 'valid', 7510 + 'valium', 7511 + 'valley', 7512 + 'valuables', 7513 + 'value', 7514 + 'vanilla', 7515 + 'vanish', 7516 + 'vanity', 7517 + 'vanquish', 7518 + 'vantage', 7519 + 'vaporizer', 7520 + 'variable', 7521 + 'variably', 7522 + 'varied', 7523 + 'variety', 7524 + 'various', 7525 + 'varmint', 7526 + 'varnish', 7527 + 'varsity', 7528 + 'varying', 7529 + 'vascular', 7530 + 'vaseline', 7531 + 'vastly', 7532 + 'vastness', 7533 + 'veal', 7534 + 'vegan', 7535 + 'veggie', 7536 + 'vehicular', 7537 + 'velcro', 7538 + 'velocity', 7539 + 'velvet', 7540 + 'vendetta', 7541 + 'vending', 7542 + 'vendor', 7543 + 'veneering', 7544 + 'vengeful', 7545 + 'venomous', 7546 + 'ventricle', 7547 + 'venture', 7548 + 'venue', 7549 + 'venus', 7550 + 'verbalize', 7551 + 'verbally', 7552 + 'verbose', 7553 + 'verdict', 7554 + 'verify', 7555 + 'verse', 7556 + 'version', 7557 + 'versus', 7558 + 'vertebrae', 7559 + 'vertical', 7560 + 'vertigo', 7561 + 'very', 7562 + 'vessel', 7563 + 'vest', 7564 + 'veteran', 7565 + 'veto', 7566 + 'vexingly', 7567 + 'viability', 7568 + 'viable', 7569 + 'vibes', 7570 + 'vice', 7571 + 'vicinity', 7572 + 'victory', 7573 + 'video', 7574 + 'viewable', 7575 + 'viewer', 7576 + 'viewing', 7577 + 'viewless', 7578 + 'viewpoint', 7579 + 'vigorous', 7580 + 'village', 7581 + 'villain', 7582 + 'vindicate', 7583 + 'vineyard', 7584 + 'vintage', 7585 + 'violate', 7586 + 'violation', 7587 + 'violator', 7588 + 'violet', 7589 + 'violin', 7590 + 'viper', 7591 + 'viral', 7592 + 'virtual', 7593 + 'virtuous', 7594 + 'virus', 7595 + 'visa', 7596 + 'viscosity', 7597 + 'viscous', 7598 + 'viselike', 7599 + 'visible', 7600 + 'visibly', 7601 + 'vision', 7602 + 'visiting', 7603 + 'visitor', 7604 + 'visor', 7605 + 'vista', 7606 + 'vitality', 7607 + 'vitalize', 7608 + 'vitally', 7609 + 'vitamins', 7610 + 'vivacious', 7611 + 'vividly', 7612 + 'vividness', 7613 + 'vixen', 7614 + 'vocalist', 7615 + 'vocalize', 7616 + 'vocally', 7617 + 'vocation', 7618 + 'voice', 7619 + 'voicing', 7620 + 'void', 7621 + 'volatile', 7622 + 'volley', 7623 + 'voltage', 7624 + 'volumes', 7625 + 'voter', 7626 + 'voting', 7627 + 'voucher', 7628 + 'vowed', 7629 + 'vowel', 7630 + 'voyage', 7631 + 'wackiness', 7632 + 'wad', 7633 + 'wafer', 7634 + 'waffle', 7635 + 'waged', 7636 + 'wager', 7637 + 'wages', 7638 + 'waggle', 7639 + 'wagon', 7640 + 'wake', 7641 + 'waking', 7642 + 'walk', 7643 + 'walmart', 7644 + 'walnut', 7645 + 'walrus', 7646 + 'waltz', 7647 + 'wand', 7648 + 'wannabe', 7649 + 'wanted', 7650 + 'wanting', 7651 + 'wasabi', 7652 + 'washable', 7653 + 'washbasin', 7654 + 'washboard', 7655 + 'washbowl', 7656 + 'washcloth', 7657 + 'washday', 7658 + 'washed', 7659 + 'washer', 7660 + 'washhouse', 7661 + 'washing', 7662 + 'washout', 7663 + 'washroom', 7664 + 'washstand', 7665 + 'washtub', 7666 + 'wasp', 7667 + 'wasting', 7668 + 'watch', 7669 + 'water', 7670 + 'waviness', 7671 + 'waving', 7672 + 'wavy', 7673 + 'whacking', 7674 + 'whacky', 7675 + 'wham', 7676 + 'wharf', 7677 + 'wheat', 7678 + 'whenever', 7679 + 'whiff', 7680 + 'whimsical', 7681 + 'whinny', 7682 + 'whiny', 7683 + 'whisking', 7684 + 'whoever', 7685 + 'whole', 7686 + 'whomever', 7687 + 'whoopee', 7688 + 'whooping', 7689 + 'whoops', 7690 + 'why', 7691 + 'wick', 7692 + 'widely', 7693 + 'widen', 7694 + 'widget', 7695 + 'widow', 7696 + 'width', 7697 + 'wieldable', 7698 + 'wielder', 7699 + 'wife', 7700 + 'wifi', 7701 + 'wikipedia', 7702 + 'wildcard', 7703 + 'wildcat', 7704 + 'wilder', 7705 + 'wildfire', 7706 + 'wildfowl', 7707 + 'wildland', 7708 + 'wildlife', 7709 + 'wildly', 7710 + 'wildness', 7711 + 'willed', 7712 + 'willfully', 7713 + 'willing', 7714 + 'willow', 7715 + 'willpower', 7716 + 'wilt', 7717 + 'wimp', 7718 + 'wince', 7719 + 'wincing', 7720 + 'wind', 7721 + 'wing', 7722 + 'winking', 7723 + 'winner', 7724 + 'winnings', 7725 + 'winter', 7726 + 'wipe', 7727 + 'wired', 7728 + 'wireless', 7729 + 'wiring', 7730 + 'wiry', 7731 + 'wisdom', 7732 + 'wise', 7733 + 'wish', 7734 + 'wisplike', 7735 + 'wispy', 7736 + 'wistful', 7737 + 'wizard', 7738 + 'wobble', 7739 + 'wobbling', 7740 + 'wobbly', 7741 + 'wok', 7742 + 'wolf', 7743 + 'wolverine', 7744 + 'womanhood', 7745 + 'womankind', 7746 + 'womanless', 7747 + 'womanlike', 7748 + 'womanly', 7749 + 'womb', 7750 + 'woof', 7751 + 'wooing', 7752 + 'wool', 7753 + 'woozy', 7754 + 'word', 7755 + 'work', 7756 + 'worried', 7757 + 'worrier', 7758 + 'worrisome', 7759 + 'worry', 7760 + 'worsening', 7761 + 'worshiper', 7762 + 'worst', 7763 + 'wound', 7764 + 'woven', 7765 + 'wow', 7766 + 'wrangle', 7767 + 'wrath', 7768 + 'wreath', 7769 + 'wreckage', 7770 + 'wrecker', 7771 + 'wrecking', 7772 + 'wrench', 7773 + 'wriggle', 7774 + 'wriggly', 7775 + 'wrinkle', 7776 + 'wrinkly', 7777 + 'wrist', 7778 + 'writing', 7779 + 'written', 7780 + 'wrongdoer', 7781 + 'wronged', 7782 + 'wrongful', 7783 + 'wrongly', 7784 + 'wrongness', 7785 + 'wrought', 7786 + 'xbox', 7787 + 'xerox', 7788 + 'yahoo', 7789 + 'yam', 7790 + 'yanking', 7791 + 'yapping', 7792 + 'yard', 7793 + 'yarn', 7794 + 'yeah', 7795 + 'yearbook', 7796 + 'yearling', 7797 + 'yearly', 7798 + 'yearning', 7799 + 'yeast', 7800 + 'yelling', 7801 + 'yelp', 7802 + 'yen', 7803 + 'yesterday', 7804 + 'yiddish', 7805 + 'yield', 7806 + 'yin', 7807 + 'yippee', 7808 + 'yo-yo', 7809 + 'yodel', 7810 + 'yoga', 7811 + 'yogurt', 7812 + 'yonder', 7813 + 'yoyo', 7814 + 'yummy', 7815 + 'zap', 7816 + 'zealous', 7817 + 'zebra', 7818 + 'zen', 7819 + 'zeppelin', 7820 + 'zero', 7821 + 'zestfully', 7822 + 'zesty', 7823 + 'zigzagged', 7824 + 'zipfile', 7825 + 'zipping', 7826 + 'zippy', 7827 + 'zips', 7828 + 'zit', 7829 + 'zodiac', 7830 + 'zombie', 7831 + 'zone', 7832 + 'zoning', 7833 + 'zookeeper', 7834 + 'zoologist', 7835 + 'zoology', 7836 + 'zoom', 7837 + ]
+36
examples/passgen/source/utils/generate_passphrase.ts
··· 1 + import { randomIntegerBetween, sample } from '@std/random' 2 + import { toPascalCase } from '@std/text' 3 + import { EFFLongWordList } from './data.ts' 4 + 5 + export const boundaries = { numWords: Object.freeze({ min: 3, max: 20 }) } 6 + 7 + export const defaults = Object.freeze({ 8 + numWords: 6, 9 + wordSeparator: '-', 10 + capitalize: false, 11 + includeNumber: false, 12 + }) 13 + 14 + export interface PassphraseOptions { 15 + words: number 16 + separator: string 17 + capitalize: boolean 18 + numbers: boolean 19 + } 20 + 21 + export default function (options: PassphraseOptions) { 22 + let luckyNumber = -1 23 + if (options.numbers) luckyNumber = randomIntegerBetween(0, options.words - 1) 24 + 25 + // generate the passphrase 26 + const wordList = new Array(options.words) 27 + for (let i = 0; i < options.words; i++) { 28 + let word = sample(EFFLongWordList) 29 + if (!word) throw new Error('invalid word index') 30 + if (i === luckyNumber) word += randomIntegerBetween(0, 9) 31 + 32 + wordList[i] = options.capitalize ? toPascalCase(word) : word 33 + } 34 + 35 + return wordList.join(options.separator) 36 + }
+153
examples/passgen/source/utils/generate_password.ts
··· 1 + import { sample, shuffle } from '@std/random' 2 + import { Ascii, CharacterSet } from './data.ts' 3 + 4 + export interface PasswordOptions { 5 + length: number 6 + uppercase: boolean 7 + lowercase: boolean 8 + number: boolean 9 + special: boolean 10 + ambiguous: boolean 11 + minNum: number 12 + minSpecial: number 13 + } 14 + 15 + export const boundaries = { 16 + length: Object.freeze({ min: 5, max: 128 }), 17 + minNum: Object.freeze({ min: 0, max: 9 }), 18 + minSpecial: Object.freeze({ min: 0, max: 9 }), 19 + } 20 + 21 + export function parseOptions({ 22 + length = 14, 23 + uppercase = true, 24 + lowercase = true, 25 + number = true, 26 + special = false, 27 + ambiguous = false, 28 + minNum = 1, 29 + minSpecial = 1, 30 + }: Partial<PasswordOptions>): PasswordOptions { 31 + if (!uppercase && !lowercase && !special && !number) { 32 + lowercase = true 33 + uppercase = true 34 + number = true 35 + } 36 + return { 37 + ambiguous, 38 + length: Math.min( 39 + Math.max(length, boundaries.length.min), 40 + boundaries.length.max, 41 + ), 42 + uppercase, 43 + lowercase, 44 + number, 45 + special, 46 + minNum: Math.min( 47 + Math.max(minNum, boundaries.minNum.min), 48 + boundaries.minNum.max, 49 + ), 50 + minSpecial: Math.min( 51 + Math.max(minSpecial, boundaries.minSpecial.min), 52 + boundaries.minSpecial.max, 53 + ), 54 + } 55 + } 56 + 57 + export default function generate(opts: PasswordOptions): string { 58 + const sets = toAsciiSets(optionsToRandomAsciiRequest(opts)) 59 + const shuffled = shuffle(sets) 60 + const result = shuffled.flatMap((set) => sample(set)).join('') 61 + return result 62 + } 63 + 64 + interface AsciiReq { 65 + all: number 66 + uppercase: number 67 + lowercase: number 68 + digits: number 69 + special: number 70 + ambiguous: boolean 71 + } 72 + 73 + function toAsciiSets( 74 + { all, uppercase, lowercase, digits, special, ambiguous }: AsciiReq, 75 + ): Array<CharacterSet> { 76 + // allocate an array and initialize each cell with a fixed value 77 + function allocate<T>(size: number, value: T) { 78 + const data = new Array(size > 0 ? size : 0) 79 + data.fill(value, 0, size) 80 + return data 81 + } 82 + 83 + const allSet: CharacterSet = [] 84 + const active = ambiguous ? Ascii.Full : Ascii.Unmistakable 85 + const parts: Array<CharacterSet> = [] 86 + 87 + if (uppercase > 0) { 88 + parts.push(...allocate(uppercase, active.Uppercase)) 89 + allSet.push(...active.Uppercase) 90 + } 91 + 92 + if (lowercase > 0) { 93 + parts.push(...allocate(lowercase, active.Lowercase)) 94 + allSet.push(...active.Lowercase) 95 + } 96 + 97 + if (digits > 0) { 98 + parts.push(...allocate(digits, active.Digit)) 99 + allSet.push(...active.Digit) 100 + } 101 + 102 + if (special > 0) { 103 + parts.push(...allocate(special, active.Special)) 104 + allSet.push(...active.Special) 105 + } 106 + 107 + parts.push(...allocate(all, allSet)) 108 + 109 + return parts 110 + } 111 + 112 + function optionsToRandomAsciiRequest(options: PasswordOptions): AsciiReq { 113 + function process( 114 + // values read from the options 115 + enabled: boolean, 116 + quantity: number, 117 + // value used if an option is missing 118 + defaultEnabled: boolean, 119 + // min quantity 120 + defaultQuantity: number, 121 + ): number { 122 + const isEnabled = enabled ?? defaultEnabled 123 + const actualQuantity = quantity ?? defaultQuantity 124 + const result = isEnabled ? actualQuantity : 0 125 + return result 126 + } 127 + 128 + const req: AsciiReq = { 129 + uppercase: process(options.uppercase, 1, /*options.minUppercase*/ true, 1), 130 + lowercase: process(options.lowercase, 1, /*options.minLowercase*/ true, 1), 131 + digits: process(options.number, options.minNum, true, 1), 132 + special: process(options.special, options.minSpecial, false, 0), 133 + ambiguous: options.ambiguous ?? true, 134 + all: 0, 135 + } 136 + 137 + // engine represents character sets as "include only"; you assert how many all 138 + // characters there can be rather than a total length. This conversion has 139 + // the character classes win, so that the result is always consistent with policy 140 + // minimums. 141 + const required = sum(req.uppercase, req.lowercase, req.digits, req.special) 142 + const remaining = (options.length ?? 0) - required 143 + req.all = Math.max(remaining, 0) 144 + 145 + return req 146 + } 147 + 148 + function sum(...items: number[]) { 149 + return (items ?? []).reduce( 150 + (sum: number, current: number) => sum + (current ?? 0), 151 + 0, 152 + ) 153 + }
examples/passgen/static/icons/128.png

This is a binary file and will not be displayed.

examples/passgen/static/icons/256.png

This is a binary file and will not be displayed.

examples/passgen/static/icons/32.png

This is a binary file and will not be displayed.

examples/passgen/static/icons/48.png

This is a binary file and will not be displayed.

examples/passgen/static/icons/64.png

This is a binary file and will not be displayed.

+16
examples/passgen/static/icons/copy.svg
··· 1 + <svg 2 + xmlns="http://www.w3.org/2000/svg" 3 + width="24" 4 + height="24" 5 + viewBox="0 0 24 24" 6 + fill="none" 7 + stroke="currentColor" 8 + stroke-width="2" 9 + stroke-linecap="round" 10 + stroke-linejoin="round" 11 + class="feather feather-copy" 12 + > 13 + <rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path 14 + d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" 15 + ></path> 16 + </svg>
+16
examples/passgen/static/icons/key.svg
··· 1 + <svg 2 + xmlns="http://www.w3.org/2000/svg" 3 + width="24" 4 + height="24" 5 + viewBox="0 0 24 24" 6 + fill="none" 7 + stroke="currentColor" 8 + stroke-width="2" 9 + stroke-linecap="round" 10 + stroke-linejoin="round" 11 + class="feather feather-key" 12 + > 13 + <path 14 + d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4" 15 + ></path> 16 + </svg>
+18
examples/passgen/static/icons/refresh.svg
··· 1 + <svg 2 + xmlns="http://www.w3.org/2000/svg" 3 + width="24" 4 + height="24" 5 + viewBox="0 0 24 24" 6 + fill="none" 7 + stroke="currentColor" 8 + stroke-width="2" 9 + stroke-linecap="round" 10 + stroke-linejoin="round" 11 + class="feather feather-refresh-cw" 12 + > 13 + <polyline points="23 4 23 10 17 10"></polyline><polyline 14 + points="1 20 1 14 7 14" 15 + ></polyline><path 16 + d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" 17 + ></path> 18 + </svg>
+267
examples/passgen/static/popup.css
··· 1 + html { 2 + width: 400px; 3 + } 4 + 5 + * { 6 + margin: 0; 7 + padding: 0; 8 + box-sizing: border-box; 9 + } 10 + 11 + body { 12 + font-family: 13 + -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 14 + background-color: white; 15 + min-width: 350px; 16 + max-width: 400px; 17 + } 18 + 19 + .container { 20 + background: white; 21 + border-radius: 8px; 22 + overflow: hidden; 23 + } 24 + 25 + /* Tab Navigation */ 26 + .tabs { 27 + display: flex; 28 + background-color: #f8f9fa; 29 + border-bottom: 1px solid #e9ecef; 30 + } 31 + 32 + .tab-button { 33 + flex: 1; 34 + padding: 12px 16px; 35 + background: none; 36 + border: none; 37 + cursor: pointer; 38 + font-size: 14px; 39 + font-weight: 500; 40 + color: #6c757d; 41 + transition: all 0.2s ease; 42 + } 43 + 44 + .tab-button:hover { 45 + background-color: #e9ecef; 46 + } 47 + 48 + .tab-button.active { 49 + color: #007bff; 50 + background-color: white; 51 + border-bottom: 2px solid #007bff; 52 + } 53 + 54 + /* Tab Content */ 55 + .tab-content { 56 + display: none; 57 + padding: 20px; 58 + } 59 + 60 + .tab-content.active { 61 + display: block; 62 + } 63 + 64 + /* Password Display */ 65 + .password-display { 66 + background-color: #f8f9fa; 67 + border: 1px solid #e9ecef; 68 + border-radius: 6px; 69 + padding: 16px; 70 + margin-bottom: 20px; 71 + display: flex; 72 + align-items: center; 73 + gap: 12px; 74 + flex-direction: row; 75 + } 76 + 77 + .password-output { 78 + flex: 1; 79 + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; 80 + font-size: 14px; 81 + line-height: 1.4; 82 + word-break: break-all; 83 + color: #333; 84 + min-height: 20px; 85 + } 86 + 87 + .password-output.placeholder { 88 + color: #6c757d; 89 + font-style: italic; 90 + } 91 + 92 + .password-output .special { 93 + color: #dc3545; 94 + font-weight: 500; 95 + } 96 + 97 + .password-output .number { 98 + color: #007bff; 99 + font-weight: 500; 100 + } 101 + 102 + .password-actions { 103 + display: flex; 104 + gap: 8px; 105 + margin-left: auto; 106 + } 107 + 108 + .action-btn { 109 + background-color: rgb(240, 240, 240); 110 + border: none; 111 + border-radius: 4px; 112 + padding: 8px 10px; 113 + cursor: pointer; 114 + font-size: 14px; 115 + transition: background-color 0.2s ease; 116 + } 117 + 118 + .action-btn:hover { 119 + background-color: rgb(240, 240, 240); 120 + } 121 + 122 + .action-btn:active { 123 + transform: scale(0.95); 124 + } 125 + 126 + /* Options Sections */ 127 + .options { 128 + display: flex; 129 + flex-direction: column; 130 + gap: 16px; 131 + } 132 + 133 + .option-group { 134 + display: flex; 135 + flex-direction: column; 136 + gap: 8px; 137 + } 138 + 139 + .option-group > label { 140 + font-weight: 500; 141 + color: #333; 142 + font-size: 14px; 143 + } 144 + 145 + .option-group h3 { 146 + font-size: 14px; 147 + font-weight: bold; 148 + color: #333; 149 + margin-top: 4px; 150 + margin-bottom: 4px; 151 + } 152 + 153 + /* Input Styles */ 154 + input[type='number'], 155 + input[type='text'] { 156 + padding: 8px 12px; 157 + border: 1px solid #e9ecef; 158 + border-radius: 4px; 159 + font-size: 14px; 160 + transition: border-color 0.2s ease; 161 + } 162 + 163 + input[type='number']:focus, 164 + input[type='text']:focus { 165 + outline: none; 166 + border-color: #007bff; 167 + box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); 168 + } 169 + 170 + /* Checkbox Groups */ 171 + .checkbox-group { 172 + display: flex; 173 + flex-direction: column; 174 + gap: 8px; 175 + } 176 + 177 + .checkbox-group.row { 178 + display: grid; 179 + grid-template-columns: 1fr 1fr; 180 + gap: 12px 16px; 181 + } 182 + 183 + .checkbox-group label { 184 + display: flex; 185 + align-items: center; 186 + gap: 8px; 187 + cursor: pointer; 188 + font-size: 14px; 189 + color: #333; 190 + } 191 + 192 + .checkbox-group input[type='checkbox'] { 193 + width: 16px; 194 + height: 16px; 195 + cursor: pointer; 196 + } 197 + 198 + .checkbox-group input[type='checkbox']:checked { 199 + accent-color: #007bff; 200 + } 201 + 202 + /* Number Inputs */ 203 + .number-inputs { 204 + display: grid; 205 + grid-template-columns: 1fr 1fr; 206 + gap: 12px 16px; 207 + } 208 + 209 + .number-inputs .input-group { 210 + display: flex; 211 + flex-direction: column; 212 + gap: 4px; 213 + } 214 + 215 + .number-inputs label { 216 + font-size: 14px; 217 + color: #333; 218 + } 219 + 220 + .number-inputs input { 221 + max-width: 80px; 222 + } 223 + 224 + /* Generate Button */ 225 + .generate-section { 226 + padding: 20px; 227 + border-top: 1px solid #e9ecef; 228 + background-color: #f8f9fa; 229 + } 230 + 231 + /* */ 232 + /* Copy feedback */ 233 + .copy-feedback { 234 + position: fixed; 235 + top: 50%; 236 + left: 50%; 237 + transform: translate(-50%, -50%); 238 + background: #28a745; 239 + color: white; 240 + padding: 8px 16px; 241 + border-radius: 4px; 242 + font-size: 12px; 243 + z-index: 1000; 244 + opacity: 0; 245 + pointer-events: none; 246 + transition: opacity 0.2s ease; 247 + } 248 + 249 + .copy-feedback.show { 250 + opacity: 1; 251 + } 252 + 253 + /* Responsive adjustments */ 254 + @media (max-width: 380px) { 255 + body { 256 + min-width: 320px; 257 + } 258 + 259 + .container { 260 + margin: 0; 261 + border-radius: 0; 262 + } 263 + 264 + .password-actions { 265 + justify-content: center; 266 + } 267 + }
+150
examples/passgen/static/popup.html
··· 1 + <html lang="en"> 2 + <head> 3 + <title>Password Generator</title> 4 + <meta charset="utf-8" /> 5 + <link rel="stylesheet" href="popup.css" /> 6 + </head> 7 + 8 + <body> 9 + <div class="container"> 10 + <div class="tabs"> 11 + <button class="tab-button active" data-tab="password">Password</button> 12 + <button class="tab-button" data-tab="passphrase">Passphrase</button> 13 + </div> 14 + 15 + <div class="tab-content active" id="password-tab"> 16 + <div class="password-display"> 17 + <div class="password-output" id="password-output"> 18 + Click generate to create a password 19 + </div> 20 + <div class="password-actions"> 21 + <button 22 + class="action-btn" 23 + id="regenerate-password" 24 + title="Regenerate" 25 + > 26 + <img width="14px" height="14px" src="/icons/refresh.svg" /> 27 + </button> 28 + <button class="action-btn" id="copy-password" title="Copy"> 29 + <img width="14px" height="14px" src="/icons/copy.svg" /> 30 + </button> 31 + </div> 32 + </div> 33 + 34 + <div class="options"> 35 + <div class="option-group"> 36 + <label for="password-length"><h3>Length</h3></label> 37 + <input 38 + type="number" 39 + id="password-length" 40 + min="5" 41 + max="128" 42 + value="14" 43 + /> 44 + </div> 45 + 46 + <div class="option-group"> 47 + <h3>Include</h3> 48 + <div class="checkbox-group row"> 49 + <label> 50 + <input type="checkbox" id="uppercase" checked /> 51 + <span>A-Z</span> 52 + </label> 53 + <label> 54 + <input type="checkbox" id="lowercase" checked /> 55 + <span>a-z</span> 56 + </label> 57 + <label> 58 + <input type="checkbox" id="numbers" checked /> 59 + <span>0-9</span> 60 + </label> 61 + <label> 62 + <input type="checkbox" id="special" /> 63 + <span>!@#$%^&</span> 64 + </label> 65 + </div> 66 + </div> 67 + 68 + <div class="option-group"> 69 + <div class="number-inputs"> 70 + <div class="input-group"> 71 + <label for="min-numbers">Minimum numbers</label> 72 + <input 73 + type="number" 74 + id="min-numbers" 75 + min="0" 76 + max="9" 77 + value="1" 78 + /> 79 + </div> 80 + <div class="input-group"> 81 + <label for="min-special">Minimum special</label> 82 + <input 83 + type="number" 84 + id="min-special" 85 + min="0" 86 + max="9" 87 + value="1" 88 + /> 89 + </div> 90 + </div> 91 + </div> 92 + 93 + <div class="option-group"> 94 + <label> 95 + <input type="checkbox" id="avoid-ambiguous" /> 96 + <span>Avoid ambiguous characters</span> 97 + </label> 98 + </div> 99 + </div> 100 + </div> 101 + 102 + <div class="tab-content" id="passphrase-tab"> 103 + <div class="password-display"> 104 + <div class="password-output" id="passphrase-output"> 105 + Click generate to create a passphrase 106 + </div> 107 + <div class="password-actions"> 108 + <button 109 + class="action-btn" 110 + id="regenerate-passphrase" 111 + title="Regenerate" 112 + > 113 + <img width="14px" height="14px" src="/icons/refresh.svg" /> 114 + </button> 115 + <button class="action-btn" id="copy-passphrase" title="Copy"> 116 + <img width="14px" height="14px" src="/icons/copy.svg" /> 117 + </button> 118 + </div> 119 + </div> 120 + 121 + <div class="options"> 122 + <div class="option-group"> 123 + <label for="word-count">Number of words</label> 124 + <input type="number" id="word-count" min="3" max="20" value="6" /> 125 + </div> 126 + 127 + <div class="option-group"> 128 + <label for="word-separator">Word separator</label> 129 + <input type="text" id="word-separator" value="-" maxlength="5" /> 130 + </div> 131 + 132 + <div class="option-group"> 133 + <div class="checkbox-group"> 134 + <label> 135 + <input type="checkbox" id="capitalize" /> 136 + <span>Capitalize words</span> 137 + </label> 138 + <label> 139 + <input type="checkbox" id="include-number" /> 140 + <span>Include numbers</span> 141 + </label> 142 + </div> 143 + </div> 144 + </div> 145 + </div> 146 + </div> 147 + 148 + <script src="popup.js"></script> 149 + </body> 150 + </html>