Last active
September 20, 2022 06:06
-
-
Save arik-so/09b7d3567562b60fff43974020c33eb5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#[cfg(test)] | |
mod tests { | |
use std::cmp::min; | |
use bitcoin::hashes::Hash; | |
use bitcoin::hashes::hex::ToHex; | |
use secp256k1::rand; | |
use secp256k1::rand::Rng; | |
#[test] | |
/// | |
/// Entropy bits to word count: | |
/// 128 bits => 12 words | |
/// 160 bits => 15 words | |
/// 192 bits => 18 words | |
/// 224 bits => 21 words | |
/// 256 bits => 24 words // technically max supported | |
/// 288 bits => 27 words | |
/// 320 bits => 30 words | |
fn generate_sorted_mnemonic() { | |
let entropy_bits = 128; | |
assert!(entropy_bits >= 128, "Entropy must be at least 128 bits"); | |
assert_eq!(entropy_bits % 32, 0, "Entropy must be a multiple of 32 bits"); | |
let final_word_count = (entropy_bits * 3) / 32; | |
let entropy_bytes = entropy_bits / 8; | |
let mut rng = rand::thread_rng(); | |
loop { | |
let mut random_bytes = vec![0u8; entropy_bytes]; | |
for current_byte in random_bytes.iter_mut() { | |
*current_byte = rng.gen() | |
} | |
let undenals = octets_to_undenals(&random_bytes); | |
println!("undenals:"); | |
print_undenals(&undenals); | |
let mut sorted_undenals = sort_undenals_preserving_last(&undenals.clone()); | |
println!("sorted undenals:"); | |
print_undenals(&sorted_undenals); | |
let sorted_bytes = undenals_to_octets(&sorted_undenals); | |
let sorted_bytes = sorted_bytes[0..random_bytes.len()].to_vec(); | |
println!("sorted bytes:"); | |
print_bytes(&sorted_bytes); | |
// this condition may not necessarily be met | |
// assert_eq!(random_bytes.last(), sorted_bytes.last()); | |
// now, let's calculate the checksum | |
let hash = bitcoin::hashes::sha256::Hash::hash(&sorted_bytes).to_vec(); | |
// println!("hash: {}", hash.to_hex()); | |
let mut checksummed_bytes = sorted_bytes.clone(); | |
let bits_to_append = entropy_bits / 32; | |
let bytes_to_append = (bits_to_append + 7) / 8; | |
checksummed_bytes.extend_from_slice(&hash[0..bytes_to_append]); | |
// println!("raw checksummed bytes:"); | |
// print_bytes(&checksummed_bytes); | |
let last_byte_bits_to_preserve = (bits_to_append % 8) as u32; | |
if last_byte_bits_to_preserve != 0 { | |
let last_byte_mask = 255 - 2u8.pow(8 - last_byte_bits_to_preserve) + 1; | |
// println!("last byte mask: {:b}", last_byte_mask); | |
let last_index = checksummed_bytes.len() - 1; | |
let last_byte = checksummed_bytes[last_index]; | |
checksummed_bytes[last_index] = (last_byte & last_byte_mask); | |
} | |
println!("checksummed bytes:"); | |
print_bytes(&checksummed_bytes); | |
let untrimmed_checksummed_undenals = octets_to_undenals(&checksummed_bytes); | |
let checksummed_undenals = untrimmed_checksummed_undenals[0..final_word_count].to_vec(); | |
println!("checksummed undenals:"); | |
print_undenals(&checksummed_undenals); | |
let mut resorted_undenals = checksummed_undenals.clone(); | |
resorted_undenals.sort(); | |
if checksummed_undenals == resorted_undenals { | |
println!("finalized mnemonic: {}", checksummed_bytes.to_hex()); | |
let dictionary = get_mnemonic_words(); | |
let mut words = Vec::with_capacity(checksummed_undenals.len()); | |
for current_value in checksummed_undenals { | |
let current_word = &dictionary[current_value as usize]; | |
words.push(current_word.to_owned()); | |
} | |
println!("mnemonic phrase: {}", words.join(" ")); | |
break; | |
} | |
} | |
} | |
fn sort_undenals_preserving_last(undenals: &[u16]) -> Vec<u16> { | |
let mut sorted_undenals = undenals.to_vec(); | |
sorted_undenals.sort(); | |
sorted_undenals | |
// let count = undenals.len(); | |
// let mut sortable_undenals = (&undenals[0..count-1]).to_vec(); | |
// sortable_undenals.sort(); | |
// sortable_undenals.push(undenals[count-1]); | |
// sortable_undenals | |
} | |
fn octets_to_undenals(octets: &[u8]) -> Vec<u16> { | |
let bits = octets.len() * 8; | |
let undenal_length = (bits + 10) / 11; | |
let mut current_byte_index = 0; | |
let mut remaining_byte_bits = 8; | |
let mut undenals = vec![0u16; undenal_length]; | |
let mut current_undenal_index = 0; | |
let max_undenal = 2u16.pow(11) - 1; | |
for current_undenal in undenals.iter_mut() { | |
let mut remaining_undenal_bits = 11; | |
current_undenal_index += 1; | |
while remaining_undenal_bits > 0 { | |
if current_byte_index >= octets.len() { | |
break; | |
} | |
let current_byte = octets[current_byte_index] as u16; | |
let bits_to_consume = min(remaining_byte_bits, remaining_undenal_bits); | |
let offset = remaining_undenal_bits-remaining_byte_bits; | |
// println!("offset: {}", offset); | |
let delta = if offset >= 0 { | |
current_byte << offset | |
} else { | |
// print!("O{}>>{} + ", current_byte_index+1, -offset); | |
current_byte >> (-offset) | |
}; | |
let restricted_delta = delta & max_undenal; | |
*current_undenal += restricted_delta; | |
remaining_undenal_bits -= bits_to_consume; | |
remaining_byte_bits -= bits_to_consume; | |
if remaining_byte_bits == 0 { | |
current_byte_index += 1; | |
remaining_byte_bits = 8; | |
} | |
} | |
} | |
undenals | |
} | |
fn undenals_to_octets(undenals: &[u16]) -> Vec<u8> { | |
let bits = undenals.len() * 11; | |
let octet_length = (bits + 7) / 8; | |
let mut current_undenal_index = 0; | |
let mut remaining_undenal_bits = 11; | |
let mut octets = vec![0u8; octet_length]; | |
let mut current_byte_index = 0; | |
let max_bit = 255; | |
for current_byte in octets.iter_mut() { | |
let mut remaining_bits = 8; | |
while remaining_bits > 0 { | |
if current_undenal_index >= undenals.len() { | |
break; | |
} | |
let current_undenal = undenals[current_undenal_index] as u16; | |
let bits_to_consume = min(remaining_undenal_bits, remaining_bits); | |
let offset = remaining_bits - remaining_undenal_bits; | |
let delta = if offset >= 0 { | |
current_undenal << offset | |
} else { | |
current_undenal >> (-offset) | |
}; | |
let restricted_delta = (delta & max_bit) as u8; | |
*current_byte += restricted_delta; | |
remaining_bits -= bits_to_consume; | |
remaining_undenal_bits -= bits_to_consume; | |
if remaining_undenal_bits == 0 { | |
current_undenal_index += 1; | |
remaining_undenal_bits = 11; | |
} | |
} | |
} | |
octets | |
} | |
fn print_undenals(undenals: &[u16]){ | |
println!("{:?}", undenals); | |
for current_undenal in undenals { | |
print!("{:011b} ", current_undenal) | |
} | |
print!("\n"); | |
} | |
fn print_bytes(bytes: &[u8]){ | |
println!("{:?}", bytes); | |
for current_byte in bytes { | |
print!("{:08b} ", current_byte) | |
} | |
print!("\n"); | |
} | |
fn get_mnemonic_words() -> Vec<String> { | |
vec![ | |
"abandon".to_string(), | |
"ability".to_string(), | |
"able".to_string(), | |
"about".to_string(), | |
"above".to_string(), | |
"absent".to_string(), | |
"absorb".to_string(), | |
"abstract".to_string(), | |
"absurd".to_string(), | |
"abuse".to_string(), | |
"access".to_string(), | |
"accident".to_string(), | |
"account".to_string(), | |
"accuse".to_string(), | |
"achieve".to_string(), | |
"acid".to_string(), | |
"acoustic".to_string(), | |
"acquire".to_string(), | |
"across".to_string(), | |
"act".to_string(), | |
"action".to_string(), | |
"actor".to_string(), | |
"actress".to_string(), | |
"actual".to_string(), | |
"adapt".to_string(), | |
"add".to_string(), | |
"addict".to_string(), | |
"address".to_string(), | |
"adjust".to_string(), | |
"admit".to_string(), | |
"adult".to_string(), | |
"advance".to_string(), | |
"advice".to_string(), | |
"aerobic".to_string(), | |
"affair".to_string(), | |
"afford".to_string(), | |
"afraid".to_string(), | |
"again".to_string(), | |
"age".to_string(), | |
"agent".to_string(), | |
"agree".to_string(), | |
"ahead".to_string(), | |
"aim".to_string(), | |
"air".to_string(), | |
"airport".to_string(), | |
"aisle".to_string(), | |
"alarm".to_string(), | |
"album".to_string(), | |
"alcohol".to_string(), | |
"alert".to_string(), | |
"alien".to_string(), | |
"all".to_string(), | |
"alley".to_string(), | |
"allow".to_string(), | |
"almost".to_string(), | |
"alone".to_string(), | |
"alpha".to_string(), | |
"already".to_string(), | |
"also".to_string(), | |
"alter".to_string(), | |
"always".to_string(), | |
"amateur".to_string(), | |
"amazing".to_string(), | |
"among".to_string(), | |
"amount".to_string(), | |
"amused".to_string(), | |
"analyst".to_string(), | |
"anchor".to_string(), | |
"ancient".to_string(), | |
"anger".to_string(), | |
"angle".to_string(), | |
"angry".to_string(), | |
"animal".to_string(), | |
"ankle".to_string(), | |
"announce".to_string(), | |
"annual".to_string(), | |
"another".to_string(), | |
"answer".to_string(), | |
"antenna".to_string(), | |
"antique".to_string(), | |
"anxiety".to_string(), | |
"any".to_string(), | |
"apart".to_string(), | |
"apology".to_string(), | |
"appear".to_string(), | |
"apple".to_string(), | |
"approve".to_string(), | |
"april".to_string(), | |
"arch".to_string(), | |
"arctic".to_string(), | |
"area".to_string(), | |
"arena".to_string(), | |
"argue".to_string(), | |
"arm".to_string(), | |
"armed".to_string(), | |
"armor".to_string(), | |
"army".to_string(), | |
"around".to_string(), | |
"arrange".to_string(), | |
"arrest".to_string(), | |
"arrive".to_string(), | |
"arrow".to_string(), | |
"art".to_string(), | |
"artefact".to_string(), | |
"artist".to_string(), | |
"artwork".to_string(), | |
"ask".to_string(), | |
"aspect".to_string(), | |
"assault".to_string(), | |
"asset".to_string(), | |
"assist".to_string(), | |
"assume".to_string(), | |
"asthma".to_string(), | |
"athlete".to_string(), | |
"atom".to_string(), | |
"attack".to_string(), | |
"attend".to_string(), | |
"attitude".to_string(), | |
"attract".to_string(), | |
"auction".to_string(), | |
"audit".to_string(), | |
"august".to_string(), | |
"aunt".to_string(), | |
"author".to_string(), | |
"auto".to_string(), | |
"autumn".to_string(), | |
"average".to_string(), | |
"avocado".to_string(), | |
"avoid".to_string(), | |
"awake".to_string(), | |
"aware".to_string(), | |
"away".to_string(), | |
"awesome".to_string(), | |
"awful".to_string(), | |
"awkward".to_string(), | |
"axis".to_string(), | |
"baby".to_string(), | |
"bachelor".to_string(), | |
"bacon".to_string(), | |
"badge".to_string(), | |
"bag".to_string(), | |
"balance".to_string(), | |
"balcony".to_string(), | |
"ball".to_string(), | |
"bamboo".to_string(), | |
"banana".to_string(), | |
"banner".to_string(), | |
"bar".to_string(), | |
"barely".to_string(), | |
"bargain".to_string(), | |
"barrel".to_string(), | |
"base".to_string(), | |
"basic".to_string(), | |
"basket".to_string(), | |
"battle".to_string(), | |
"beach".to_string(), | |
"bean".to_string(), | |
"beauty".to_string(), | |
"because".to_string(), | |
"become".to_string(), | |
"beef".to_string(), | |
"before".to_string(), | |
"begin".to_string(), | |
"behave".to_string(), | |
"behind".to_string(), | |
"believe".to_string(), | |
"below".to_string(), | |
"belt".to_string(), | |
"bench".to_string(), | |
"benefit".to_string(), | |
"best".to_string(), | |
"betray".to_string(), | |
"better".to_string(), | |
"between".to_string(), | |
"beyond".to_string(), | |
"bicycle".to_string(), | |
"bid".to_string(), | |
"bike".to_string(), | |
"bind".to_string(), | |
"biology".to_string(), | |
"bird".to_string(), | |
"birth".to_string(), | |
"bitter".to_string(), | |
"black".to_string(), | |
"blade".to_string(), | |
"blame".to_string(), | |
"blanket".to_string(), | |
"blast".to_string(), | |
"bleak".to_string(), | |
"bless".to_string(), | |
"blind".to_string(), | |
"blood".to_string(), | |
"blossom".to_string(), | |
"blouse".to_string(), | |
"blue".to_string(), | |
"blur".to_string(), | |
"blush".to_string(), | |
"board".to_string(), | |
"boat".to_string(), | |
"body".to_string(), | |
"boil".to_string(), | |
"bomb".to_string(), | |
"bone".to_string(), | |
"bonus".to_string(), | |
"book".to_string(), | |
"boost".to_string(), | |
"border".to_string(), | |
"boring".to_string(), | |
"borrow".to_string(), | |
"boss".to_string(), | |
"bottom".to_string(), | |
"bounce".to_string(), | |
"box".to_string(), | |
"boy".to_string(), | |
"bracket".to_string(), | |
"brain".to_string(), | |
"brand".to_string(), | |
"brass".to_string(), | |
"brave".to_string(), | |
"bread".to_string(), | |
"breeze".to_string(), | |
"brick".to_string(), | |
"bridge".to_string(), | |
"brief".to_string(), | |
"bright".to_string(), | |
"bring".to_string(), | |
"brisk".to_string(), | |
"broccoli".to_string(), | |
"broken".to_string(), | |
"bronze".to_string(), | |
"broom".to_string(), | |
"brother".to_string(), | |
"brown".to_string(), | |
"brush".to_string(), | |
"bubble".to_string(), | |
"buddy".to_string(), | |
"budget".to_string(), | |
"buffalo".to_string(), | |
"build".to_string(), | |
"bulb".to_string(), | |
"bulk".to_string(), | |
"bullet".to_string(), | |
"bundle".to_string(), | |
"bunker".to_string(), | |
"burden".to_string(), | |
"burger".to_string(), | |
"burst".to_string(), | |
"bus".to_string(), | |
"business".to_string(), | |
"busy".to_string(), | |
"butter".to_string(), | |
"buyer".to_string(), | |
"buzz".to_string(), | |
"cabbage".to_string(), | |
"cabin".to_string(), | |
"cable".to_string(), | |
"cactus".to_string(), | |
"cage".to_string(), | |
"cake".to_string(), | |
"call".to_string(), | |
"calm".to_string(), | |
"camera".to_string(), | |
"camp".to_string(), | |
"can".to_string(), | |
"canal".to_string(), | |
"cancel".to_string(), | |
"candy".to_string(), | |
"cannon".to_string(), | |
"canoe".to_string(), | |
"canvas".to_string(), | |
"canyon".to_string(), | |
"capable".to_string(), | |
"capital".to_string(), | |
"captain".to_string(), | |
"car".to_string(), | |
"carbon".to_string(), | |
"card".to_string(), | |
"cargo".to_string(), | |
"carpet".to_string(), | |
"carry".to_string(), | |
"cart".to_string(), | |
"case".to_string(), | |
"cash".to_string(), | |
"casino".to_string(), | |
"castle".to_string(), | |
"casual".to_string(), | |
"cat".to_string(), | |
"catalog".to_string(), | |
"catch".to_string(), | |
"category".to_string(), | |
"cattle".to_string(), | |
"caught".to_string(), | |
"cause".to_string(), | |
"caution".to_string(), | |
"cave".to_string(), | |
"ceiling".to_string(), | |
"celery".to_string(), | |
"cement".to_string(), | |
"census".to_string(), | |
"century".to_string(), | |
"cereal".to_string(), | |
"certain".to_string(), | |
"chair".to_string(), | |
"chalk".to_string(), | |
"champion".to_string(), | |
"change".to_string(), | |
"chaos".to_string(), | |
"chapter".to_string(), | |
"charge".to_string(), | |
"chase".to_string(), | |
"chat".to_string(), | |
"cheap".to_string(), | |
"check".to_string(), | |
"cheese".to_string(), | |
"chef".to_string(), | |
"cherry".to_string(), | |
"chest".to_string(), | |
"chicken".to_string(), | |
"chief".to_string(), | |
"child".to_string(), | |
"chimney".to_string(), | |
"choice".to_string(), | |
"choose".to_string(), | |
"chronic".to_string(), | |
"chuckle".to_string(), | |
"chunk".to_string(), | |
"churn".to_string(), | |
"cigar".to_string(), | |
"cinnamon".to_string(), | |
"circle".to_string(), | |
"citizen".to_string(), | |
"city".to_string(), | |
"civil".to_string(), | |
"claim".to_string(), | |
"clap".to_string(), | |
"clarify".to_string(), | |
"claw".to_string(), | |
"clay".to_string(), | |
"clean".to_string(), | |
"clerk".to_string(), | |
"clever".to_string(), | |
"click".to_string(), | |
"client".to_string(), | |
"cliff".to_string(), | |
"climb".to_string(), | |
"clinic".to_string(), | |
"clip".to_string(), | |
"clock".to_string(), | |
"clog".to_string(), | |
"close".to_string(), | |
"cloth".to_string(), | |
"cloud".to_string(), | |
"clown".to_string(), | |
"club".to_string(), | |
"clump".to_string(), | |
"cluster".to_string(), | |
"clutch".to_string(), | |
"coach".to_string(), | |
"coast".to_string(), | |
"coconut".to_string(), | |
"code".to_string(), | |
"coffee".to_string(), | |
"coil".to_string(), | |
"coin".to_string(), | |
"collect".to_string(), | |
"color".to_string(), | |
"column".to_string(), | |
"combine".to_string(), | |
"come".to_string(), | |
"comfort".to_string(), | |
"comic".to_string(), | |
"common".to_string(), | |
"company".to_string(), | |
"concert".to_string(), | |
"conduct".to_string(), | |
"confirm".to_string(), | |
"congress".to_string(), | |
"connect".to_string(), | |
"consider".to_string(), | |
"control".to_string(), | |
"convince".to_string(), | |
"cook".to_string(), | |
"cool".to_string(), | |
"copper".to_string(), | |
"copy".to_string(), | |
"coral".to_string(), | |
"core".to_string(), | |
"corn".to_string(), | |
"correct".to_string(), | |
"cost".to_string(), | |
"cotton".to_string(), | |
"couch".to_string(), | |
"country".to_string(), | |
"couple".to_string(), | |
"course".to_string(), | |
"cousin".to_string(), | |
"cover".to_string(), | |
"coyote".to_string(), | |
"crack".to_string(), | |
"cradle".to_string(), | |
"craft".to_string(), | |
"cram".to_string(), | |
"crane".to_string(), | |
"crash".to_string(), | |
"crater".to_string(), | |
"crawl".to_string(), | |
"crazy".to_string(), | |
"cream".to_string(), | |
"credit".to_string(), | |
"creek".to_string(), | |
"crew".to_string(), | |
"cricket".to_string(), | |
"crime".to_string(), | |
"crisp".to_string(), | |
"critic".to_string(), | |
"crop".to_string(), | |
"cross".to_string(), | |
"crouch".to_string(), | |
"crowd".to_string(), | |
"crucial".to_string(), | |
"cruel".to_string(), | |
"cruise".to_string(), | |
"crumble".to_string(), | |
"crunch".to_string(), | |
"crush".to_string(), | |
"cry".to_string(), | |
"crystal".to_string(), | |
"cube".to_string(), | |
"culture".to_string(), | |
"cup".to_string(), | |
"cupboard".to_string(), | |
"curious".to_string(), | |
"current".to_string(), | |
"curtain".to_string(), | |
"curve".to_string(), | |
"cushion".to_string(), | |
"custom".to_string(), | |
"cute".to_string(), | |
"cycle".to_string(), | |
"dad".to_string(), | |
"damage".to_string(), | |
"damp".to_string(), | |
"dance".to_string(), | |
"danger".to_string(), | |
"daring".to_string(), | |
"dash".to_string(), | |
"daughter".to_string(), | |
"dawn".to_string(), | |
"day".to_string(), | |
"deal".to_string(), | |
"debate".to_string(), | |
"debris".to_string(), | |
"decade".to_string(), | |
"december".to_string(), | |
"decide".to_string(), | |
"decline".to_string(), | |
"decorate".to_string(), | |
"decrease".to_string(), | |
"deer".to_string(), | |
"defense".to_string(), | |
"define".to_string(), | |
"defy".to_string(), | |
"degree".to_string(), | |
"delay".to_string(), | |
"deliver".to_string(), | |
"demand".to_string(), | |
"demise".to_string(), | |
"denial".to_string(), | |
"dentist".to_string(), | |
"deny".to_string(), | |
"depart".to_string(), | |
"depend".to_string(), | |
"deposit".to_string(), | |
"depth".to_string(), | |
"deputy".to_string(), | |
"derive".to_string(), | |
"describe".to_string(), | |
"desert".to_string(), | |
"design".to_string(), | |
"desk".to_string(), | |
"despair".to_string(), | |
"destroy".to_string(), | |
"detail".to_string(), | |
"detect".to_string(), | |
"develop".to_string(), | |
"device".to_string(), | |
"devote".to_string(), | |
"diagram".to_string(), | |
"dial".to_string(), | |
"diamond".to_string(), | |
"diary".to_string(), | |
"dice".to_string(), | |
"diesel".to_string(), | |
"diet".to_string(), | |
"differ".to_string(), | |
"digital".to_string(), | |
"dignity".to_string(), | |
"dilemma".to_string(), | |
"dinner".to_string(), | |
"dinosaur".to_string(), | |
"direct".to_string(), | |
"dirt".to_string(), | |
"disagree".to_string(), | |
"discover".to_string(), | |
"disease".to_string(), | |
"dish".to_string(), | |
"dismiss".to_string(), | |
"disorder".to_string(), | |
"display".to_string(), | |
"distance".to_string(), | |
"divert".to_string(), | |
"divide".to_string(), | |
"divorce".to_string(), | |
"dizzy".to_string(), | |
"doctor".to_string(), | |
"document".to_string(), | |
"dog".to_string(), | |
"doll".to_string(), | |
"dolphin".to_string(), | |
"domain".to_string(), | |
"donate".to_string(), | |
"donkey".to_string(), | |
"donor".to_string(), | |
"door".to_string(), | |
"dose".to_string(), | |
"double".to_string(), | |
"dove".to_string(), | |
"draft".to_string(), | |
"dragon".to_string(), | |
"drama".to_string(), | |
"drastic".to_string(), | |
"draw".to_string(), | |
"dream".to_string(), | |
"dress".to_string(), | |
"drift".to_string(), | |
"drill".to_string(), | |
"drink".to_string(), | |
"drip".to_string(), | |
"drive".to_string(), | |
"drop".to_string(), | |
"drum".to_string(), | |
"dry".to_string(), | |
"duck".to_string(), | |
"dumb".to_string(), | |
"dune".to_string(), | |
"during".to_string(), | |
"dust".to_string(), | |
"dutch".to_string(), | |
"duty".to_string(), | |
"dwarf".to_string(), | |
"dynamic".to_string(), | |
"eager".to_string(), | |
"eagle".to_string(), | |
"early".to_string(), | |
"earn".to_string(), | |
"earth".to_string(), | |
"easily".to_string(), | |
"east".to_string(), | |
"easy".to_string(), | |
"echo".to_string(), | |
"ecology".to_string(), | |
"economy".to_string(), | |
"edge".to_string(), | |
"edit".to_string(), | |
"educate".to_string(), | |
"effort".to_string(), | |
"egg".to_string(), | |
"eight".to_string(), | |
"either".to_string(), | |
"elbow".to_string(), | |
"elder".to_string(), | |
"electric".to_string(), | |
"elegant".to_string(), | |
"element".to_string(), | |
"elephant".to_string(), | |
"elevator".to_string(), | |
"elite".to_string(), | |
"else".to_string(), | |
"embark".to_string(), | |
"embody".to_string(), | |
"embrace".to_string(), | |
"emerge".to_string(), | |
"emotion".to_string(), | |
"employ".to_string(), | |
"empower".to_string(), | |
"empty".to_string(), | |
"enable".to_string(), | |
"enact".to_string(), | |
"end".to_string(), | |
"endless".to_string(), | |
"endorse".to_string(), | |
"enemy".to_string(), | |
"energy".to_string(), | |
"enforce".to_string(), | |
"engage".to_string(), | |
"engine".to_string(), | |
"enhance".to_string(), | |
"enjoy".to_string(), | |
"enlist".to_string(), | |
"enough".to_string(), | |
"enrich".to_string(), | |
"enroll".to_string(), | |
"ensure".to_string(), | |
"enter".to_string(), | |
"entire".to_string(), | |
"entry".to_string(), | |
"envelope".to_string(), | |
"episode".to_string(), | |
"equal".to_string(), | |
"equip".to_string(), | |
"era".to_string(), | |
"erase".to_string(), | |
"erode".to_string(), | |
"erosion".to_string(), | |
"error".to_string(), | |
"erupt".to_string(), | |
"escape".to_string(), | |
"essay".to_string(), | |
"essence".to_string(), | |
"estate".to_string(), | |
"eternal".to_string(), | |
"ethics".to_string(), | |
"evidence".to_string(), | |
"evil".to_string(), | |
"evoke".to_string(), | |
"evolve".to_string(), | |
"exact".to_string(), | |
"example".to_string(), | |
"excess".to_string(), | |
"exchange".to_string(), | |
"excite".to_string(), | |
"exclude".to_string(), | |
"excuse".to_string(), | |
"execute".to_string(), | |
"exercise".to_string(), | |
"exhaust".to_string(), | |
"exhibit".to_string(), | |
"exile".to_string(), | |
"exist".to_string(), | |
"exit".to_string(), | |
"exotic".to_string(), | |
"expand".to_string(), | |
"expect".to_string(), | |
"expire".to_string(), | |
"explain".to_string(), | |
"expose".to_string(), | |
"express".to_string(), | |
"extend".to_string(), | |
"extra".to_string(), | |
"eye".to_string(), | |
"eyebrow".to_string(), | |
"fabric".to_string(), | |
"face".to_string(), | |
"faculty".to_string(), | |
"fade".to_string(), | |
"faint".to_string(), | |
"faith".to_string(), | |
"fall".to_string(), | |
"false".to_string(), | |
"fame".to_string(), | |
"family".to_string(), | |
"famous".to_string(), | |
"fan".to_string(), | |
"fancy".to_string(), | |
"fantasy".to_string(), | |
"farm".to_string(), | |
"fashion".to_string(), | |
"fat".to_string(), | |
"fatal".to_string(), | |
"father".to_string(), | |
"fatigue".to_string(), | |
"fault".to_string(), | |
"favorite".to_string(), | |
"feature".to_string(), | |
"february".to_string(), | |
"federal".to_string(), | |
"fee".to_string(), | |
"feed".to_string(), | |
"feel".to_string(), | |
"female".to_string(), | |
"fence".to_string(), | |
"festival".to_string(), | |
"fetch".to_string(), | |
"fever".to_string(), | |
"few".to_string(), | |
"fiber".to_string(), | |
"fiction".to_string(), | |
"field".to_string(), | |
"figure".to_string(), | |
"file".to_string(), | |
"film".to_string(), | |
"filter".to_string(), | |
"final".to_string(), | |
"find".to_string(), | |
"fine".to_string(), | |
"finger".to_string(), | |
"finish".to_string(), | |
"fire".to_string(), | |
"firm".to_string(), | |
"first".to_string(), | |
"fiscal".to_string(), | |
"fish".to_string(), | |
"fit".to_string(), | |
"fitness".to_string(), | |
"fix".to_string(), | |
"flag".to_string(), | |
"flame".to_string(), | |
"flash".to_string(), | |
"flat".to_string(), | |
"flavor".to_string(), | |
"flee".to_string(), | |
"flight".to_string(), | |
"flip".to_string(), | |
"float".to_string(), | |
"flock".to_string(), | |
"floor".to_string(), | |
"flower".to_string(), | |
"fluid".to_string(), | |
"flush".to_string(), | |
"fly".to_string(), | |
"foam".to_string(), | |
"focus".to_string(), | |
"fog".to_string(), | |
"foil".to_string(), | |
"fold".to_string(), | |
"follow".to_string(), | |
"food".to_string(), | |
"foot".to_string(), | |
"force".to_string(), | |
"forest".to_string(), | |
"forget".to_string(), | |
"fork".to_string(), | |
"fortune".to_string(), | |
"forum".to_string(), | |
"forward".to_string(), | |
"fossil".to_string(), | |
"foster".to_string(), | |
"found".to_string(), | |
"fox".to_string(), | |
"fragile".to_string(), | |
"frame".to_string(), | |
"frequent".to_string(), | |
"fresh".to_string(), | |
"friend".to_string(), | |
"fringe".to_string(), | |
"frog".to_string(), | |
"front".to_string(), | |
"frost".to_string(), | |
"frown".to_string(), | |
"frozen".to_string(), | |
"fruit".to_string(), | |
"fuel".to_string(), | |
"fun".to_string(), | |
"funny".to_string(), | |
"furnace".to_string(), | |
"fury".to_string(), | |
"future".to_string(), | |
"gadget".to_string(), | |
"gain".to_string(), | |
"galaxy".to_string(), | |
"gallery".to_string(), | |
"game".to_string(), | |
"gap".to_string(), | |
"garage".to_string(), | |
"garbage".to_string(), | |
"garden".to_string(), | |
"garlic".to_string(), | |
"garment".to_string(), | |
"gas".to_string(), | |
"gasp".to_string(), | |
"gate".to_string(), | |
"gather".to_string(), | |
"gauge".to_string(), | |
"gaze".to_string(), | |
"general".to_string(), | |
"genius".to_string(), | |
"genre".to_string(), | |
"gentle".to_string(), | |
"genuine".to_string(), | |
"gesture".to_string(), | |
"ghost".to_string(), | |
"giant".to_string(), | |
"gift".to_string(), | |
"giggle".to_string(), | |
"ginger".to_string(), | |
"giraffe".to_string(), | |
"girl".to_string(), | |
"give".to_string(), | |
"glad".to_string(), | |
"glance".to_string(), | |
"glare".to_string(), | |
"glass".to_string(), | |
"glide".to_string(), | |
"glimpse".to_string(), | |
"globe".to_string(), | |
"gloom".to_string(), | |
"glory".to_string(), | |
"glove".to_string(), | |
"glow".to_string(), | |
"glue".to_string(), | |
"goat".to_string(), | |
"goddess".to_string(), | |
"gold".to_string(), | |
"good".to_string(), | |
"goose".to_string(), | |
"gorilla".to_string(), | |
"gospel".to_string(), | |
"gossip".to_string(), | |
"govern".to_string(), | |
"gown".to_string(), | |
"grab".to_string(), | |
"grace".to_string(), | |
"grain".to_string(), | |
"grant".to_string(), | |
"grape".to_string(), | |
"grass".to_string(), | |
"gravity".to_string(), | |
"great".to_string(), | |
"green".to_string(), | |
"grid".to_string(), | |
"grief".to_string(), | |
"grit".to_string(), | |
"grocery".to_string(), | |
"group".to_string(), | |
"grow".to_string(), | |
"grunt".to_string(), | |
"guard".to_string(), | |
"guess".to_string(), | |
"guide".to_string(), | |
"guilt".to_string(), | |
"guitar".to_string(), | |
"gun".to_string(), | |
"gym".to_string(), | |
"habit".to_string(), | |
"hair".to_string(), | |
"half".to_string(), | |
"hammer".to_string(), | |
"hamster".to_string(), | |
"hand".to_string(), | |
"happy".to_string(), | |
"harbor".to_string(), | |
"hard".to_string(), | |
"harsh".to_string(), | |
"harvest".to_string(), | |
"hat".to_string(), | |
"have".to_string(), | |
"hawk".to_string(), | |
"hazard".to_string(), | |
"head".to_string(), | |
"health".to_string(), | |
"heart".to_string(), | |
"heavy".to_string(), | |
"hedgehog".to_string(), | |
"height".to_string(), | |
"hello".to_string(), | |
"helmet".to_string(), | |
"help".to_string(), | |
"hen".to_string(), | |
"hero".to_string(), | |
"hidden".to_string(), | |
"high".to_string(), | |
"hill".to_string(), | |
"hint".to_string(), | |
"hip".to_string(), | |
"hire".to_string(), | |
"history".to_string(), | |
"hobby".to_string(), | |
"hockey".to_string(), | |
"hold".to_string(), | |
"hole".to_string(), | |
"holiday".to_string(), | |
"hollow".to_string(), | |
"home".to_string(), | |
"honey".to_string(), | |
"hood".to_string(), | |
"hope".to_string(), | |
"horn".to_string(), | |
"horror".to_string(), | |
"horse".to_string(), | |
"hospital".to_string(), | |
"host".to_string(), | |
"hotel".to_string(), | |
"hour".to_string(), | |
"hover".to_string(), | |
"hub".to_string(), | |
"huge".to_string(), | |
"human".to_string(), | |
"humble".to_string(), | |
"humor".to_string(), | |
"hundred".to_string(), | |
"hungry".to_string(), | |
"hunt".to_string(), | |
"hurdle".to_string(), | |
"hurry".to_string(), | |
"hurt".to_string(), | |
"husband".to_string(), | |
"hybrid".to_string(), | |
"ice".to_string(), | |
"icon".to_string(), | |
"idea".to_string(), | |
"identify".to_string(), | |
"idle".to_string(), | |
"ignore".to_string(), | |
"ill".to_string(), | |
"illegal".to_string(), | |
"illness".to_string(), | |
"image".to_string(), | |
"imitate".to_string(), | |
"immense".to_string(), | |
"immune".to_string(), | |
"impact".to_string(), | |
"impose".to_string(), | |
"improve".to_string(), | |
"impulse".to_string(), | |
"inch".to_string(), | |
"include".to_string(), | |
"income".to_string(), | |
"increase".to_string(), | |
"index".to_string(), | |
"indicate".to_string(), | |
"indoor".to_string(), | |
"industry".to_string(), | |
"infant".to_string(), | |
"inflict".to_string(), | |
"inform".to_string(), | |
"inhale".to_string(), | |
"inherit".to_string(), | |
"initial".to_string(), | |
"inject".to_string(), | |
"injury".to_string(), | |
"inmate".to_string(), | |
"inner".to_string(), | |
"innocent".to_string(), | |
"input".to_string(), | |
"inquiry".to_string(), | |
"insane".to_string(), | |
"insect".to_string(), | |
"inside".to_string(), | |
"inspire".to_string(), | |
"install".to_string(), | |
"intact".to_string(), | |
"interest".to_string(), | |
"into".to_string(), | |
"invest".to_string(), | |
"invite".to_string(), | |
"involve".to_string(), | |
"iron".to_string(), | |
"island".to_string(), | |
"isolate".to_string(), | |
"issue".to_string(), | |
"item".to_string(), | |
"ivory".to_string(), | |
"jacket".to_string(), | |
"jaguar".to_string(), | |
"jar".to_string(), | |
"jazz".to_string(), | |
"jealous".to_string(), | |
"jeans".to_string(), | |
"jelly".to_string(), | |
"jewel".to_string(), | |
"job".to_string(), | |
"join".to_string(), | |
"joke".to_string(), | |
"journey".to_string(), | |
"joy".to_string(), | |
"judge".to_string(), | |
"juice".to_string(), | |
"jump".to_string(), | |
"jungle".to_string(), | |
"junior".to_string(), | |
"junk".to_string(), | |
"just".to_string(), | |
"kangaroo".to_string(), | |
"keen".to_string(), | |
"keep".to_string(), | |
"ketchup".to_string(), | |
"key".to_string(), | |
"kick".to_string(), | |
"kid".to_string(), | |
"kidney".to_string(), | |
"kind".to_string(), | |
"kingdom".to_string(), | |
"kiss".to_string(), | |
"kit".to_string(), | |
"kitchen".to_string(), | |
"kite".to_string(), | |
"kitten".to_string(), | |
"kiwi".to_string(), | |
"knee".to_string(), | |
"knife".to_string(), | |
"knock".to_string(), | |
"know".to_string(), | |
"lab".to_string(), | |
"label".to_string(), | |
"labor".to_string(), | |
"ladder".to_string(), | |
"lady".to_string(), | |
"lake".to_string(), | |
"lamp".to_string(), | |
"language".to_string(), | |
"laptop".to_string(), | |
"large".to_string(), | |
"later".to_string(), | |
"latin".to_string(), | |
"laugh".to_string(), | |
"laundry".to_string(), | |
"lava".to_string(), | |
"law".to_string(), | |
"lawn".to_string(), | |
"lawsuit".to_string(), | |
"layer".to_string(), | |
"lazy".to_string(), | |
"leader".to_string(), | |
"leaf".to_string(), | |
"learn".to_string(), | |
"leave".to_string(), | |
"lecture".to_string(), | |
"left".to_string(), | |
"leg".to_string(), | |
"legal".to_string(), | |
"legend".to_string(), | |
"leisure".to_string(), | |
"lemon".to_string(), | |
"lend".to_string(), | |
"length".to_string(), | |
"lens".to_string(), | |
"leopard".to_string(), | |
"lesson".to_string(), | |
"letter".to_string(), | |
"level".to_string(), | |
"liar".to_string(), | |
"liberty".to_string(), | |
"library".to_string(), | |
"license".to_string(), | |
"life".to_string(), | |
"lift".to_string(), | |
"light".to_string(), | |
"like".to_string(), | |
"limb".to_string(), | |
"limit".to_string(), | |
"link".to_string(), | |
"lion".to_string(), | |
"liquid".to_string(), | |
"list".to_string(), | |
"little".to_string(), | |
"live".to_string(), | |
"lizard".to_string(), | |
"load".to_string(), | |
"loan".to_string(), | |
"lobster".to_string(), | |
"local".to_string(), | |
"lock".to_string(), | |
"logic".to_string(), | |
"lonely".to_string(), | |
"long".to_string(), | |
"loop".to_string(), | |
"lottery".to_string(), | |
"loud".to_string(), | |
"lounge".to_string(), | |
"love".to_string(), | |
"loyal".to_string(), | |
"lucky".to_string(), | |
"luggage".to_string(), | |
"lumber".to_string(), | |
"lunar".to_string(), | |
"lunch".to_string(), | |
"luxury".to_string(), | |
"lyrics".to_string(), | |
"machine".to_string(), | |
"mad".to_string(), | |
"magic".to_string(), | |
"magnet".to_string(), | |
"maid".to_string(), | |
"mail".to_string(), | |
"main".to_string(), | |
"major".to_string(), | |
"make".to_string(), | |
"mammal".to_string(), | |
"man".to_string(), | |
"manage".to_string(), | |
"mandate".to_string(), | |
"mango".to_string(), | |
"mansion".to_string(), | |
"manual".to_string(), | |
"maple".to_string(), | |
"marble".to_string(), | |
"march".to_string(), | |
"margin".to_string(), | |
"marine".to_string(), | |
"market".to_string(), | |
"marriage".to_string(), | |
"mask".to_string(), | |
"mass".to_string(), | |
"master".to_string(), | |
"match".to_string(), | |
"material".to_string(), | |
"math".to_string(), | |
"matrix".to_string(), | |
"matter".to_string(), | |
"maximum".to_string(), | |
"maze".to_string(), | |
"meadow".to_string(), | |
"mean".to_string(), | |
"measure".to_string(), | |
"meat".to_string(), | |
"mechanic".to_string(), | |
"medal".to_string(), | |
"media".to_string(), | |
"melody".to_string(), | |
"melt".to_string(), | |
"member".to_string(), | |
"memory".to_string(), | |
"mention".to_string(), | |
"menu".to_string(), | |
"mercy".to_string(), | |
"merge".to_string(), | |
"merit".to_string(), | |
"merry".to_string(), | |
"mesh".to_string(), | |
"message".to_string(), | |
"metal".to_string(), | |
"method".to_string(), | |
"middle".to_string(), | |
"midnight".to_string(), | |
"milk".to_string(), | |
"million".to_string(), | |
"mimic".to_string(), | |
"mind".to_string(), | |
"minimum".to_string(), | |
"minor".to_string(), | |
"minute".to_string(), | |
"miracle".to_string(), | |
"mirror".to_string(), | |
"misery".to_string(), | |
"miss".to_string(), | |
"mistake".to_string(), | |
"mix".to_string(), | |
"mixed".to_string(), | |
"mixture".to_string(), | |
"mobile".to_string(), | |
"model".to_string(), | |
"modify".to_string(), | |
"mom".to_string(), | |
"moment".to_string(), | |
"monitor".to_string(), | |
"monkey".to_string(), | |
"monster".to_string(), | |
"month".to_string(), | |
"moon".to_string(), | |
"moral".to_string(), | |
"more".to_string(), | |
"morning".to_string(), | |
"mosquito".to_string(), | |
"mother".to_string(), | |
"motion".to_string(), | |
"motor".to_string(), | |
"mountain".to_string(), | |
"mouse".to_string(), | |
"move".to_string(), | |
"movie".to_string(), | |
"much".to_string(), | |
"muffin".to_string(), | |
"mule".to_string(), | |
"multiply".to_string(), | |
"muscle".to_string(), | |
"museum".to_string(), | |
"mushroom".to_string(), | |
"music".to_string(), | |
"must".to_string(), | |
"mutual".to_string(), | |
"myself".to_string(), | |
"mystery".to_string(), | |
"myth".to_string(), | |
"naive".to_string(), | |
"name".to_string(), | |
"napkin".to_string(), | |
"narrow".to_string(), | |
"nasty".to_string(), | |
"nation".to_string(), | |
"nature".to_string(), | |
"near".to_string(), | |
"neck".to_string(), | |
"need".to_string(), | |
"negative".to_string(), | |
"neglect".to_string(), | |
"neither".to_string(), | |
"nephew".to_string(), | |
"nerve".to_string(), | |
"nest".to_string(), | |
"net".to_string(), | |
"network".to_string(), | |
"neutral".to_string(), | |
"never".to_string(), | |
"news".to_string(), | |
"next".to_string(), | |
"nice".to_string(), | |
"night".to_string(), | |
"noble".to_string(), | |
"noise".to_string(), | |
"nominee".to_string(), | |
"noodle".to_string(), | |
"normal".to_string(), | |
"north".to_string(), | |
"nose".to_string(), | |
"notable".to_string(), | |
"note".to_string(), | |
"nothing".to_string(), | |
"notice".to_string(), | |
"novel".to_string(), | |
"now".to_string(), | |
"nuclear".to_string(), | |
"number".to_string(), | |
"nurse".to_string(), | |
"nut".to_string(), | |
"oak".to_string(), | |
"obey".to_string(), | |
"object".to_string(), | |
"oblige".to_string(), | |
"obscure".to_string(), | |
"observe".to_string(), | |
"obtain".to_string(), | |
"obvious".to_string(), | |
"occur".to_string(), | |
"ocean".to_string(), | |
"october".to_string(), | |
"odor".to_string(), | |
"off".to_string(), | |
"offer".to_string(), | |
"office".to_string(), | |
"often".to_string(), | |
"oil".to_string(), | |
"okay".to_string(), | |
"old".to_string(), | |
"olive".to_string(), | |
"olympic".to_string(), | |
"omit".to_string(), | |
"once".to_string(), | |
"one".to_string(), | |
"onion".to_string(), | |
"online".to_string(), | |
"only".to_string(), | |
"open".to_string(), | |
"opera".to_string(), | |
"opinion".to_string(), | |
"oppose".to_string(), | |
"option".to_string(), | |
"orange".to_string(), | |
"orbit".to_string(), | |
"orchard".to_string(), | |
"order".to_string(), | |
"ordinary".to_string(), | |
"organ".to_string(), | |
"orient".to_string(), | |
"original".to_string(), | |
"orphan".to_string(), | |
"ostrich".to_string(), | |
"other".to_string(), | |
"outdoor".to_string(), | |
"outer".to_string(), | |
"output".to_string(), | |
"outside".to_string(), | |
"oval".to_string(), | |
"oven".to_string(), | |
"over".to_string(), | |
"own".to_string(), | |
"owner".to_string(), | |
"oxygen".to_string(), | |
"oyster".to_string(), | |
"ozone".to_string(), | |
"pact".to_string(), | |
"paddle".to_string(), | |
"page".to_string(), | |
"pair".to_string(), | |
"palace".to_string(), | |
"palm".to_string(), | |
"panda".to_string(), | |
"panel".to_string(), | |
"panic".to_string(), | |
"panther".to_string(), | |
"paper".to_string(), | |
"parade".to_string(), | |
"parent".to_string(), | |
"park".to_string(), | |
"parrot".to_string(), | |
"party".to_string(), | |
"pass".to_string(), | |
"patch".to_string(), | |
"path".to_string(), | |
"patient".to_string(), | |
"patrol".to_string(), | |
"pattern".to_string(), | |
"pause".to_string(), | |
"pave".to_string(), | |
"payment".to_string(), | |
"peace".to_string(), | |
"peanut".to_string(), | |
"pear".to_string(), | |
"peasant".to_string(), | |
"pelican".to_string(), | |
"pen".to_string(), | |
"penalty".to_string(), | |
"pencil".to_string(), | |
"people".to_string(), | |
"pepper".to_string(), | |
"perfect".to_string(), | |
"permit".to_string(), | |
"person".to_string(), | |
"pet".to_string(), | |
"phone".to_string(), | |
"photo".to_string(), | |
"phrase".to_string(), | |
"physical".to_string(), | |
"piano".to_string(), | |
"picnic".to_string(), | |
"picture".to_string(), | |
"piece".to_string(), | |
"pig".to_string(), | |
"pigeon".to_string(), | |
"pill".to_string(), | |
"pilot".to_string(), | |
"pink".to_string(), | |
"pioneer".to_string(), | |
"pipe".to_string(), | |
"pistol".to_string(), | |
"pitch".to_string(), | |
"pizza".to_string(), | |
"place".to_string(), | |
"planet".to_string(), | |
"plastic".to_string(), | |
"plate".to_string(), | |
"play".to_string(), | |
"please".to_string(), | |
"pledge".to_string(), | |
"pluck".to_string(), | |
"plug".to_string(), | |
"plunge".to_string(), | |
"poem".to_string(), | |
"poet".to_string(), | |
"point".to_string(), | |
"polar".to_string(), | |
"pole".to_string(), | |
"police".to_string(), | |
"pond".to_string(), | |
"pony".to_string(), | |
"pool".to_string(), | |
"popular".to_string(), | |
"portion".to_string(), | |
"position".to_string(), | |
"possible".to_string(), | |
"post".to_string(), | |
"potato".to_string(), | |
"pottery".to_string(), | |
"poverty".to_string(), | |
"powder".to_string(), | |
"power".to_string(), | |
"practice".to_string(), | |
"praise".to_string(), | |
"predict".to_string(), | |
"prefer".to_string(), | |
"prepare".to_string(), | |
"present".to_string(), | |
"pretty".to_string(), | |
"prevent".to_string(), | |
"price".to_string(), | |
"pride".to_string(), | |
"primary".to_string(), | |
"print".to_string(), | |
"priority".to_string(), | |
"prison".to_string(), | |
"private".to_string(), | |
"prize".to_string(), | |
"problem".to_string(), | |
"process".to_string(), | |
"produce".to_string(), | |
"profit".to_string(), | |
"program".to_string(), | |
"project".to_string(), | |
"promote".to_string(), | |
"proof".to_string(), | |
"property".to_string(), | |
"prosper".to_string(), | |
"protect".to_string(), | |
"proud".to_string(), | |
"provide".to_string(), | |
"public".to_string(), | |
"pudding".to_string(), | |
"pull".to_string(), | |
"pulp".to_string(), | |
"pulse".to_string(), | |
"pumpkin".to_string(), | |
"punch".to_string(), | |
"pupil".to_string(), | |
"puppy".to_string(), | |
"purchase".to_string(), | |
"purity".to_string(), | |
"purpose".to_string(), | |
"purse".to_string(), | |
"push".to_string(), | |
"put".to_string(), | |
"puzzle".to_string(), | |
"pyramid".to_string(), | |
"quality".to_string(), | |
"quantum".to_string(), | |
"quarter".to_string(), | |
"question".to_string(), | |
"quick".to_string(), | |
"quit".to_string(), | |
"quiz".to_string(), | |
"quote".to_string(), | |
"rabbit".to_string(), | |
"raccoon".to_string(), | |
"race".to_string(), | |
"rack".to_string(), | |
"radar".to_string(), | |
"radio".to_string(), | |
"rail".to_string(), | |
"rain".to_string(), | |
"raise".to_string(), | |
"rally".to_string(), | |
"ramp".to_string(), | |
"ranch".to_string(), | |
"random".to_string(), | |
"range".to_string(), | |
"rapid".to_string(), | |
"rare".to_string(), | |
"rate".to_string(), | |
"rather".to_string(), | |
"raven".to_string(), | |
"raw".to_string(), | |
"razor".to_string(), | |
"ready".to_string(), | |
"real".to_string(), | |
"reason".to_string(), | |
"rebel".to_string(), | |
"rebuild".to_string(), | |
"recall".to_string(), | |
"receive".to_string(), | |
"recipe".to_string(), | |
"record".to_string(), | |
"recycle".to_string(), | |
"reduce".to_string(), | |
"reflect".to_string(), | |
"reform".to_string(), | |
"refuse".to_string(), | |
"region".to_string(), | |
"regret".to_string(), | |
"regular".to_string(), | |
"reject".to_string(), | |
"relax".to_string(), | |
"release".to_string(), | |
"relief".to_string(), | |
"rely".to_string(), | |
"remain".to_string(), | |
"remember".to_string(), | |
"remind".to_string(), | |
"remove".to_string(), | |
"render".to_string(), | |
"renew".to_string(), | |
"rent".to_string(), | |
"reopen".to_string(), | |
"repair".to_string(), | |
"repeat".to_string(), | |
"replace".to_string(), | |
"report".to_string(), | |
"require".to_string(), | |
"rescue".to_string(), | |
"resemble".to_string(), | |
"resist".to_string(), | |
"resource".to_string(), | |
"response".to_string(), | |
"result".to_string(), | |
"retire".to_string(), | |
"retreat".to_string(), | |
"return".to_string(), | |
"reunion".to_string(), | |
"reveal".to_string(), | |
"review".to_string(), | |
"reward".to_string(), | |
"rhythm".to_string(), | |
"rib".to_string(), | |
"ribbon".to_string(), | |
"rice".to_string(), | |
"rich".to_string(), | |
"ride".to_string(), | |
"ridge".to_string(), | |
"rifle".to_string(), | |
"right".to_string(), | |
"rigid".to_string(), | |
"ring".to_string(), | |
"riot".to_string(), | |
"ripple".to_string(), | |
"risk".to_string(), | |
"ritual".to_string(), | |
"rival".to_string(), | |
"river".to_string(), | |
"road".to_string(), | |
"roast".to_string(), | |
"robot".to_string(), | |
"robust".to_string(), | |
"rocket".to_string(), | |
"romance".to_string(), | |
"roof".to_string(), | |
"rookie".to_string(), | |
"room".to_string(), | |
"rose".to_string(), | |
"rotate".to_string(), | |
"rough".to_string(), | |
"round".to_string(), | |
"route".to_string(), | |
"royal".to_string(), | |
"rubber".to_string(), | |
"rude".to_string(), | |
"rug".to_string(), | |
"rule".to_string(), | |
"run".to_string(), | |
"runway".to_string(), | |
"rural".to_string(), | |
"sad".to_string(), | |
"saddle".to_string(), | |
"sadness".to_string(), | |
"safe".to_string(), | |
"sail".to_string(), | |
"salad".to_string(), | |
"salmon".to_string(), | |
"salon".to_string(), | |
"salt".to_string(), | |
"salute".to_string(), | |
"same".to_string(), | |
"sample".to_string(), | |
"sand".to_string(), | |
"satisfy".to_string(), | |
"satoshi".to_string(), | |
"sauce".to_string(), | |
"sausage".to_string(), | |
"save".to_string(), | |
"say".to_string(), | |
"scale".to_string(), | |
"scan".to_string(), | |
"scare".to_string(), | |
"scatter".to_string(), | |
"scene".to_string(), | |
"scheme".to_string(), | |
"school".to_string(), | |
"science".to_string(), | |
"scissors".to_string(), | |
"scorpion".to_string(), | |
"scout".to_string(), | |
"scrap".to_string(), | |
"screen".to_string(), | |
"script".to_string(), | |
"scrub".to_string(), | |
"sea".to_string(), | |
"search".to_string(), | |
"season".to_string(), | |
"seat".to_string(), | |
"second".to_string(), | |
"secret".to_string(), | |
"section".to_string(), | |
"security".to_string(), | |
"seed".to_string(), | |
"seek".to_string(), | |
"segment".to_string(), | |
"select".to_string(), | |
"sell".to_string(), | |
"seminar".to_string(), | |
"senior".to_string(), | |
"sense".to_string(), | |
"sentence".to_string(), | |
"series".to_string(), | |
"service".to_string(), | |
"session".to_string(), | |
"settle".to_string(), | |
"setup".to_string(), | |
"seven".to_string(), | |
"shadow".to_string(), | |
"shaft".to_string(), | |
"shallow".to_string(), | |
"share".to_string(), | |
"shed".to_string(), | |
"shell".to_string(), | |
"sheriff".to_string(), | |
"shield".to_string(), | |
"shift".to_string(), | |
"shine".to_string(), | |
"ship".to_string(), | |
"shiver".to_string(), | |
"shock".to_string(), | |
"shoe".to_string(), | |
"shoot".to_string(), | |
"shop".to_string(), | |
"short".to_string(), | |
"shoulder".to_string(), | |
"shove".to_string(), | |
"shrimp".to_string(), | |
"shrug".to_string(), | |
"shuffle".to_string(), | |
"shy".to_string(), | |
"sibling".to_string(), | |
"sick".to_string(), | |
"side".to_string(), | |
"siege".to_string(), | |
"sight".to_string(), | |
"sign".to_string(), | |
"silent".to_string(), | |
"silk".to_string(), | |
"silly".to_string(), | |
"silver".to_string(), | |
"similar".to_string(), | |
"simple".to_string(), | |
"since".to_string(), | |
"sing".to_string(), | |
"siren".to_string(), | |
"sister".to_string(), | |
"situate".to_string(), | |
"six".to_string(), | |
"size".to_string(), | |
"skate".to_string(), | |
"sketch".to_string(), | |
"ski".to_string(), | |
"skill".to_string(), | |
"skin".to_string(), | |
"skirt".to_string(), | |
"skull".to_string(), | |
"slab".to_string(), | |
"slam".to_string(), | |
"sleep".to_string(), | |
"slender".to_string(), | |
"slice".to_string(), | |
"slide".to_string(), | |
"slight".to_string(), | |
"slim".to_string(), | |
"slogan".to_string(), | |
"slot".to_string(), | |
"slow".to_string(), | |
"slush".to_string(), | |
"small".to_string(), | |
"smart".to_string(), | |
"smile".to_string(), | |
"smoke".to_string(), | |
"smooth".to_string(), | |
"snack".to_string(), | |
"snake".to_string(), | |
"snap".to_string(), | |
"sniff".to_string(), | |
"snow".to_string(), | |
"soap".to_string(), | |
"soccer".to_string(), | |
"social".to_string(), | |
"sock".to_string(), | |
"soda".to_string(), | |
"soft".to_string(), | |
"solar".to_string(), | |
"soldier".to_string(), | |
"solid".to_string(), | |
"solution".to_string(), | |
"solve".to_string(), | |
"someone".to_string(), | |
"song".to_string(), | |
"soon".to_string(), | |
"sorry".to_string(), | |
"sort".to_string(), | |
"soul".to_string(), | |
"sound".to_string(), | |
"soup".to_string(), | |
"source".to_string(), | |
"south".to_string(), | |
"space".to_string(), | |
"spare".to_string(), | |
"spatial".to_string(), | |
"spawn".to_string(), | |
"speak".to_string(), | |
"special".to_string(), | |
"speed".to_string(), | |
"spell".to_string(), | |
"spend".to_string(), | |
"sphere".to_string(), | |
"spice".to_string(), | |
"spider".to_string(), | |
"spike".to_string(), | |
"spin".to_string(), | |
"spirit".to_string(), | |
"split".to_string(), | |
"spoil".to_string(), | |
"sponsor".to_string(), | |
"spoon".to_string(), | |
"sport".to_string(), | |
"spot".to_string(), | |
"spray".to_string(), | |
"spread".to_string(), | |
"spring".to_string(), | |
"spy".to_string(), | |
"square".to_string(), | |
"squeeze".to_string(), | |
"squirrel".to_string(), | |
"stable".to_string(), | |
"stadium".to_string(), | |
"staff".to_string(), | |
"stage".to_string(), | |
"stairs".to_string(), | |
"stamp".to_string(), | |
"stand".to_string(), | |
"start".to_string(), | |
"state".to_string(), | |
"stay".to_string(), | |
"steak".to_string(), | |
"steel".to_string(), | |
"stem".to_string(), | |
"step".to_string(), | |
"stereo".to_string(), | |
"stick".to_string(), | |
"still".to_string(), | |
"sting".to_string(), | |
"stock".to_string(), | |
"stomach".to_string(), | |
"stone".to_string(), | |
"stool".to_string(), | |
"story".to_string(), | |
"stove".to_string(), | |
"strategy".to_string(), | |
"street".to_string(), | |
"strike".to_string(), | |
"strong".to_string(), | |
"struggle".to_string(), | |
"student".to_string(), | |
"stuff".to_string(), | |
"stumble".to_string(), | |
"style".to_string(), | |
"subject".to_string(), | |
"submit".to_string(), | |
"subway".to_string(), | |
"success".to_string(), | |
"such".to_string(), | |
"sudden".to_string(), | |
"suffer".to_string(), | |
"sugar".to_string(), | |
"suggest".to_string(), | |
"suit".to_string(), | |
"summer".to_string(), | |
"sun".to_string(), | |
"sunny".to_string(), | |
"sunset".to_string(), | |
"super".to_string(), | |
"supply".to_string(), | |
"supreme".to_string(), | |
"sure".to_string(), | |
"surface".to_string(), | |
"surge".to_string(), | |
"surprise".to_string(), | |
"surround".to_string(), | |
"survey".to_string(), | |
"suspect".to_string(), | |
"sustain".to_string(), | |
"swallow".to_string(), | |
"swamp".to_string(), | |
"swap".to_string(), | |
"swarm".to_string(), | |
"swear".to_string(), | |
"sweet".to_string(), | |
"swift".to_string(), | |
"swim".to_string(), | |
"swing".to_string(), | |
"switch".to_string(), | |
"sword".to_string(), | |
"symbol".to_string(), | |
"symptom".to_string(), | |
"syrup".to_string(), | |
"system".to_string(), | |
"table".to_string(), | |
"tackle".to_string(), | |
"tag".to_string(), | |
"tail".to_string(), | |
"talent".to_string(), | |
"talk".to_string(), | |
"tank".to_string(), | |
"tape".to_string(), | |
"target".to_string(), | |
"task".to_string(), | |
"taste".to_string(), | |
"tattoo".to_string(), | |
"taxi".to_string(), | |
"teach".to_string(), | |
"team".to_string(), | |
"tell".to_string(), | |
"ten".to_string(), | |
"tenant".to_string(), | |
"tennis".to_string(), | |
"tent".to_string(), | |
"term".to_string(), | |
"test".to_string(), | |
"text".to_string(), | |
"thank".to_string(), | |
"that".to_string(), | |
"theme".to_string(), | |
"then".to_string(), | |
"theory".to_string(), | |
"there".to_string(), | |
"they".to_string(), | |
"thing".to_string(), | |
"this".to_string(), | |
"thought".to_string(), | |
"three".to_string(), | |
"thrive".to_string(), | |
"throw".to_string(), | |
"thumb".to_string(), | |
"thunder".to_string(), | |
"ticket".to_string(), | |
"tide".to_string(), | |
"tiger".to_string(), | |
"tilt".to_string(), | |
"timber".to_string(), | |
"time".to_string(), | |
"tiny".to_string(), | |
"tip".to_string(), | |
"tired".to_string(), | |
"tissue".to_string(), | |
"title".to_string(), | |
"toast".to_string(), | |
"tobacco".to_string(), | |
"today".to_string(), | |
"toddler".to_string(), | |
"toe".to_string(), | |
"together".to_string(), | |
"toilet".to_string(), | |
"token".to_string(), | |
"tomato".to_string(), | |
"tomorrow".to_string(), | |
"tone".to_string(), | |
"tongue".to_string(), | |
"tonight".to_string(), | |
"tool".to_string(), | |
"tooth".to_string(), | |
"top".to_string(), | |
"topic".to_string(), | |
"topple".to_string(), | |
"torch".to_string(), | |
"tornado".to_string(), | |
"tortoise".to_string(), | |
"toss".to_string(), | |
"total".to_string(), | |
"tourist".to_string(), | |
"toward".to_string(), | |
"tower".to_string(), | |
"town".to_string(), | |
"toy".to_string(), | |
"track".to_string(), | |
"trade".to_string(), | |
"traffic".to_string(), | |
"tragic".to_string(), | |
"train".to_string(), | |
"transfer".to_string(), | |
"trap".to_string(), | |
"trash".to_string(), | |
"travel".to_string(), | |
"tray".to_string(), | |
"treat".to_string(), | |
"tree".to_string(), | |
"trend".to_string(), | |
"trial".to_string(), | |
"tribe".to_string(), | |
"trick".to_string(), | |
"trigger".to_string(), | |
"trim".to_string(), | |
"trip".to_string(), | |
"trophy".to_string(), | |
"trouble".to_string(), | |
"truck".to_string(), | |
"true".to_string(), | |
"truly".to_string(), | |
"trumpet".to_string(), | |
"trust".to_string(), | |
"truth".to_string(), | |
"try".to_string(), | |
"tube".to_string(), | |
"tuition".to_string(), | |
"tumble".to_string(), | |
"tuna".to_string(), | |
"tunnel".to_string(), | |
"turkey".to_string(), | |
"turn".to_string(), | |
"turtle".to_string(), | |
"twelve".to_string(), | |
"twenty".to_string(), | |
"twice".to_string(), | |
"twin".to_string(), | |
"twist".to_string(), | |
"two".to_string(), | |
"type".to_string(), | |
"typical".to_string(), | |
"ugly".to_string(), | |
"umbrella".to_string(), | |
"unable".to_string(), | |
"unaware".to_string(), | |
"uncle".to_string(), | |
"uncover".to_string(), | |
"under".to_string(), | |
"undo".to_string(), | |
"unfair".to_string(), | |
"unfold".to_string(), | |
"unhappy".to_string(), | |
"uniform".to_string(), | |
"unique".to_string(), | |
"unit".to_string(), | |
"universe".to_string(), | |
"unknown".to_string(), | |
"unlock".to_string(), | |
"until".to_string(), | |
"unusual".to_string(), | |
"unveil".to_string(), | |
"update".to_string(), | |
"upgrade".to_string(), | |
"uphold".to_string(), | |
"upon".to_string(), | |
"upper".to_string(), | |
"upset".to_string(), | |
"urban".to_string(), | |
"urge".to_string(), | |
"usage".to_string(), | |
"use".to_string(), | |
"used".to_string(), | |
"useful".to_string(), | |
"useless".to_string(), | |
"usual".to_string(), | |
"utility".to_string(), | |
"vacant".to_string(), | |
"vacuum".to_string(), | |
"vague".to_string(), | |
"valid".to_string(), | |
"valley".to_string(), | |
"valve".to_string(), | |
"van".to_string(), | |
"vanish".to_string(), | |
"vapor".to_string(), | |
"various".to_string(), | |
"vast".to_string(), | |
"vault".to_string(), | |
"vehicle".to_string(), | |
"velvet".to_string(), | |
"vendor".to_string(), | |
"venture".to_string(), | |
"venue".to_string(), | |
"verb".to_string(), | |
"verify".to_string(), | |
"version".to_string(), | |
"very".to_string(), | |
"vessel".to_string(), | |
"veteran".to_string(), | |
"viable".to_string(), | |
"vibrant".to_string(), | |
"vicious".to_string(), | |
"victory".to_string(), | |
"video".to_string(), | |
"view".to_string(), | |
"village".to_string(), | |
"vintage".to_string(), | |
"violin".to_string(), | |
"virtual".to_string(), | |
"virus".to_string(), | |
"visa".to_string(), | |
"visit".to_string(), | |
"visual".to_string(), | |
"vital".to_string(), | |
"vivid".to_string(), | |
"vocal".to_string(), | |
"voice".to_string(), | |
"void".to_string(), | |
"volcano".to_string(), | |
"volume".to_string(), | |
"vote".to_string(), | |
"voyage".to_string(), | |
"wage".to_string(), | |
"wagon".to_string(), | |
"wait".to_string(), | |
"walk".to_string(), | |
"wall".to_string(), | |
"walnut".to_string(), | |
"want".to_string(), | |
"warfare".to_string(), | |
"warm".to_string(), | |
"warrior".to_string(), | |
"wash".to_string(), | |
"wasp".to_string(), | |
"waste".to_string(), | |
"water".to_string(), | |
"wave".to_string(), | |
"way".to_string(), | |
"wealth".to_string(), | |
"weapon".to_string(), | |
"wear".to_string(), | |
"weasel".to_string(), | |
"weather".to_string(), | |
"web".to_string(), | |
"wedding".to_string(), | |
"weekend".to_string(), | |
"weird".to_string(), | |
"welcome".to_string(), | |
"west".to_string(), | |
"wet".to_string(), | |
"whale".to_string(), | |
"what".to_string(), | |
"wheat".to_string(), | |
"wheel".to_string(), | |
"when".to_string(), | |
"where".to_string(), | |
"whip".to_string(), | |
"whisper".to_string(), | |
"wide".to_string(), | |
"width".to_string(), | |
"wife".to_string(), | |
"wild".to_string(), | |
"will".to_string(), | |
"win".to_string(), | |
"window".to_string(), | |
"wine".to_string(), | |
"wing".to_string(), | |
"wink".to_string(), | |
"winner".to_string(), | |
"winter".to_string(), | |
"wire".to_string(), | |
"wisdom".to_string(), | |
"wise".to_string(), | |
"wish".to_string(), | |
"witness".to_string(), | |
"wolf".to_string(), | |
"woman".to_string(), | |
"wonder".to_string(), | |
"wood".to_string(), | |
"wool".to_string(), | |
"word".to_string(), | |
"work".to_string(), | |
"world".to_string(), | |
"worry".to_string(), | |
"worth".to_string(), | |
"wrap".to_string(), | |
"wreck".to_string(), | |
"wrestle".to_string(), | |
"wrist".to_string(), | |
"write".to_string(), | |
"wrong".to_string(), | |
"yard".to_string(), | |
"year".to_string(), | |
"yellow".to_string(), | |
"you".to_string(), | |
"young".to_string(), | |
"youth".to_string(), | |
"zebra".to_string(), | |
"zero".to_string(), | |
"zone".to_string(), | |
"zoo".to_string(), | |
] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment