From 6be139b51171855e67c5df0aff51b8ae7b4b4315 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 23 Sep 2014 17:04:04 +0530 Subject: [PATCH 01/26] Moved mnemonics code to src/mnemonics --- src/CMakeLists.txt | 6 +++++- src/{crypto => mnemonics}/electrum-words.cpp | 2 +- src/{crypto => mnemonics}/electrum-words.h | 0 src/simplewallet/simplewallet.cpp | 2 +- src/wallet/wallet2.cpp | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) rename src/{crypto => mnemonics}/electrum-words.cpp (99%) rename src/{crypto => mnemonics}/electrum-words.h (100%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9673e36e3..572515b5c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,6 +41,7 @@ file(GLOB_RECURSE SIMPLEWALLET simplewallet/*) file(GLOB_RECURSE CONN_TOOL connectivity_tool/*) file(GLOB_RECURSE WALLET wallet/*) file(GLOB_RECURSE MINER miner/*) +file(GLOB_RECURSE MNEMONICS mnemonics/*) source_group(common FILES ${COMMON}) source_group(crypto FILES ${CRYPTO}) @@ -53,10 +54,12 @@ source_group(simplewallet FILES ${SIMPLEWALLET}) source_group(connectivity-tool FILES ${CONN_TOOL}) source_group(wallet FILES ${WALLET}) source_group(simpleminer FILES ${MINER}) +source_group(mnemonics FILES ${MNEMONICS}) add_library(common ${COMMON}) add_library(crypto ${CRYPTO}) add_library(cryptonote_core ${CRYPTONOTE_CORE}) +add_library(mnemonics ${MNEMONICS}) add_executable(daemon ${DAEMON} ${P2P} ${CRYPTONOTE_PROTOCOL}) add_executable(connectivity_tool ${CONN_TOOL}) add_executable(simpleminer ${MINER}) @@ -65,8 +68,9 @@ target_link_libraries(connectivity_tool cryptonote_core crypto common ${CMAKE_TH target_link_libraries(simpleminer cryptonote_core crypto common ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) add_library(rpc ${RPC}) add_library(wallet ${WALLET}) +target_link_libraries(wallet mnemonics) add_executable(simplewallet ${SIMPLEWALLET} ) -target_link_libraries(simplewallet wallet rpc cryptonote_core crypto common ${UPNP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) +target_link_libraries(simplewallet wallet rpc cryptonote_core crypto common mnemonics ${UPNP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) add_dependencies(daemon version) add_dependencies(rpc version) add_dependencies(simplewallet version) diff --git a/src/crypto/electrum-words.cpp b/src/mnemonics/electrum-words.cpp similarity index 99% rename from src/crypto/electrum-words.cpp rename to src/mnemonics/electrum-words.cpp index add71808a..4f672ec5e 100644 --- a/src/crypto/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -40,7 +40,7 @@ #include #include "crypto/crypto.h" // for declaration of crypto::secret_key -#include "crypto/electrum-words.h" +#include "mnemonics/electrum-words.h" namespace crypto { diff --git a/src/crypto/electrum-words.h b/src/mnemonics/electrum-words.h similarity index 100% rename from src/crypto/electrum-words.h rename to src/mnemonics/electrum-words.h diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index fbe7c4730..e71655e4c 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -45,7 +45,7 @@ #include "wallet/wallet_rpc_server.h" #include "version.h" #include "crypto/crypto.h" // for crypto::secret_key definition -#include "crypto/electrum-words.h" +#include "mnemonics/electrum-words.h" #if defined(WIN32) #include diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 9ba6f245a..6222b0c03 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -46,7 +46,7 @@ using namespace epee; #include "crypto/crypto.h" #include "serialization/binary_utils.h" #include "cryptonote_protocol/blobdatatype.h" -#include "crypto/electrum-words.h" +#include "mnemonics/electrum-words.h" extern "C" { From 09170b4d3ba0a98c5a8be9f7a968e58e8d877c9a Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 23 Sep 2014 18:34:39 +0530 Subject: [PATCH 02/26] Added code to separate old word list to raw input file and support for multiple new languages --- src/mnemonics/electrum-words.cpp | 73 +- src/mnemonics/electrum-words.h | 3262 +----------------------------- src/mnemonics/old-word-list | 1626 +++++++++++++++ 3 files changed, 1688 insertions(+), 3273 deletions(-) create mode 100644 src/mnemonics/old-word-list diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 4f672ec5e..250e37577 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -39,14 +39,55 @@ #include #include #include "crypto/crypto.h" // for declaration of crypto::secret_key - +#include #include "mnemonics/electrum-words.h" + +namespace +{ + int num_words = 0; + std::map words_map; + vector words_array; + + const std::string OLD_WORD_FILE = "old-word-list"; + const std::string WORD_LIST_DIRECTORY = "wordlists"; + bool is_first_use() + { + return num_words == 0 ? true : false; + } + + void create_data_structures(const std::string &word_file) + { + ifstream input_stream; + input_stream.open(word_file, std::ifstream::in); + std::string word; + while (input_stream >> word) + { + words_array.push(word); + words_map[word] = num_words; + num_words++; + } + input_stream.close(); + } +} + namespace crypto { namespace ElectrumWords { + void init(const std::string &language, bool old_word_list = false) + { + if (old_word_list) + { + create_data_structures(OLD_WORD_FILE); + } + else + { + create_data_structures(WORD_LIST_DIRECTORY + '/' + language); + } + } + /* convert words to bytes, 3 words -> 4 bytes * returns: * false if not a multiple of 3 words, or if a words is not in the @@ -56,7 +97,11 @@ namespace crypto */ bool words_to_bytes(const std::string& words, crypto::secret_key& dst) { - int n = NUMWORDS; // hardcoded because this is what electrum uses + if (is_first_use()) + { + init("", true); + } + int n = num_words; std::vector wlist; @@ -71,16 +116,16 @@ namespace crypto uint32_t w1, w2, w3; // verify all three words exist in the word list - if (wordsMap.count(wlist[i*3]) == 0 || - wordsMap.count(wlist[i*3 + 1]) == 0 || - wordsMap.count(wlist[i*3 + 2]) == 0) + if (words_map.count(wlist[i*3]) == 0 || + words_map.count(wlist[i*3 + 1]) == 0 || + words_map.count(wlist[i*3 + 2]) == 0) { return false; } - w1 = wordsMap.at(wlist[i*3]); - w2 = wordsMap.at(wlist[i*3 + 1]); - w3 = wordsMap.at(wlist[i*3 + 2]); + w1 = words_map.at(wlist[i*3]); + w2 = words_map.at(wlist[i*3 + 1]); + w3 = words_map.at(wlist[i*3 + 2]); val = w1 + n * (((n - w1) + w2) % n) + n * n * (((n - w2) + w3) % n); @@ -107,7 +152,11 @@ namespace crypto */ bool bytes_to_words(const crypto::secret_key& src, std::string& words) { - int n = NUMWORDS; // hardcoded because this is what electrum uses + if (is_first_use()) + { + init(); + } + int n = num_words; if (sizeof(src.data) % 4 != 0) return false; @@ -124,11 +173,11 @@ namespace crypto w2 = ((val / n) + w1) % n; w3 = (((val / n) / n) + w2) % n; - words += wordsArray[w1]; + words += words_array[w1]; words += ' '; - words += wordsArray[w2]; + words += words_array[w2]; words += ' '; - words += wordsArray[w3]; + words += words_array[w3]; } return false; } diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index d9e28ada1..0ae01b6a6 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -41,3268 +41,8 @@ namespace crypto { namespace ElectrumWords { - - const int NUMWORDS = 1626; - + void init(const std::string &language, bool old_word_list); bool words_to_bytes(const std::string& words, crypto::secret_key& dst); bool bytes_to_words(const crypto::secret_key& src, std::string& words); - - const std::map wordsMap = { - {"like", 0}, - {"just", 1}, - {"love", 2}, - {"know", 3}, - {"never", 4}, - {"want", 5}, - {"time", 6}, - {"out", 7}, - {"there", 8}, - {"make", 9}, - {"look", 10}, - {"eye", 11}, - {"down", 12}, - {"only", 13}, - {"think", 14}, - {"heart", 15}, - {"back", 16}, - {"then", 17}, - {"into", 18}, - {"about", 19}, - {"more", 20}, - {"away", 21}, - {"still", 22}, - {"them", 23}, - {"take", 24}, - {"thing", 25}, - {"even", 26}, - {"through", 27}, - {"long", 28}, - {"always", 29}, - {"world", 30}, - {"too", 31}, - {"friend", 32}, - {"tell", 33}, - {"try", 34}, - {"hand", 35}, - {"thought", 36}, - {"over", 37}, - {"here", 38}, - {"other", 39}, - {"need", 40}, - {"smile", 41}, - {"again", 42}, - {"much", 43}, - {"cry", 44}, - {"been", 45}, - {"night", 46}, - {"ever", 47}, - {"little", 48}, - {"said", 49}, - {"end", 50}, - {"some", 51}, - {"those", 52}, - {"around", 53}, - {"mind", 54}, - {"people", 55}, - {"girl", 56}, - {"leave", 57}, - {"dream", 58}, - {"left", 59}, - {"turn", 60}, - {"myself", 61}, - {"give", 62}, - {"nothing", 63}, - {"really", 64}, - {"off", 65}, - {"before", 66}, - {"something", 67}, - {"find", 68}, - {"walk", 69}, - {"wish", 70}, - {"good", 71}, - {"once", 72}, - {"place", 73}, - {"ask", 74}, - {"stop", 75}, - {"keep", 76}, - {"watch", 77}, - {"seem", 78}, - {"everything", 79}, - {"wait", 80}, - {"got", 81}, - {"yet", 82}, - {"made", 83}, - {"remember", 84}, - {"start", 85}, - {"alone", 86}, - {"run", 87}, - {"hope", 88}, - {"maybe", 89}, - {"believe", 90}, - {"body", 91}, - {"hate", 92}, - {"after", 93}, - {"close", 94}, - {"talk", 95}, - {"stand", 96}, - {"own", 97}, - {"each", 98}, - {"hurt", 99}, - {"help", 100}, - {"home", 101}, - {"god", 102}, - {"soul", 103}, - {"new", 104}, - {"many", 105}, - {"two", 106}, - {"inside", 107}, - {"should", 108}, - {"true", 109}, - {"first", 110}, - {"fear", 111}, - {"mean", 112}, - {"better", 113}, - {"play", 114}, - {"another", 115}, - {"gone", 116}, - {"change", 117}, - {"use", 118}, - {"wonder", 119}, - {"someone", 120}, - {"hair", 121}, - {"cold", 122}, - {"open", 123}, - {"best", 124}, - {"any", 125}, - {"behind", 126}, - {"happen", 127}, - {"water", 128}, - {"dark", 129}, - {"laugh", 130}, - {"stay", 131}, - {"forever", 132}, - {"name", 133}, - {"work", 134}, - {"show", 135}, - {"sky", 136}, - {"break", 137}, - {"came", 138}, - {"deep", 139}, - {"door", 140}, - {"put", 141}, - {"black", 142}, - {"together", 143}, - {"upon", 144}, - {"happy", 145}, - {"such", 146}, - {"great", 147}, - {"white", 148}, - {"matter", 149}, - {"fill", 150}, - {"past", 151}, - {"please", 152}, - {"burn", 153}, - {"cause", 154}, - {"enough", 155}, - {"touch", 156}, - {"moment", 157}, - {"soon", 158}, - {"voice", 159}, - {"scream", 160}, - {"anything", 161}, - {"stare", 162}, - {"sound", 163}, - {"red", 164}, - {"everyone", 165}, - {"hide", 166}, - {"kiss", 167}, - {"truth", 168}, - {"death", 169}, - {"beautiful", 170}, - {"mine", 171}, - {"blood", 172}, - {"broken", 173}, - {"very", 174}, - {"pass", 175}, - {"next", 176}, - {"forget", 177}, - {"tree", 178}, - {"wrong", 179}, - {"air", 180}, - {"mother", 181}, - {"understand", 182}, - {"lip", 183}, - {"hit", 184}, - {"wall", 185}, - {"memory", 186}, - {"sleep", 187}, - {"free", 188}, - {"high", 189}, - {"realize", 190}, - {"school", 191}, - {"might", 192}, - {"skin", 193}, - {"sweet", 194}, - {"perfect", 195}, - {"blue", 196}, - {"kill", 197}, - {"breath", 198}, - {"dance", 199}, - {"against", 200}, - {"fly", 201}, - {"between", 202}, - {"grow", 203}, - {"strong", 204}, - {"under", 205}, - {"listen", 206}, - {"bring", 207}, - {"sometimes", 208}, - {"speak", 209}, - {"pull", 210}, - {"person", 211}, - {"become", 212}, - {"family", 213}, - {"begin", 214}, - {"ground", 215}, - {"real", 216}, - {"small", 217}, - {"father", 218}, - {"sure", 219}, - {"feet", 220}, - {"rest", 221}, - {"young", 222}, - {"finally", 223}, - {"land", 224}, - {"across", 225}, - {"today", 226}, - {"different", 227}, - {"guy", 228}, - {"line", 229}, - {"fire", 230}, - {"reason", 231}, - {"reach", 232}, - {"second", 233}, - {"slowly", 234}, - {"write", 235}, - {"eat", 236}, - {"smell", 237}, - {"mouth", 238}, - {"step", 239}, - {"learn", 240}, - {"three", 241}, - {"floor", 242}, - {"promise", 243}, - {"breathe", 244}, - {"darkness", 245}, - {"push", 246}, - {"earth", 247}, - {"guess", 248}, - {"save", 249}, - {"song", 250}, - {"above", 251}, - {"along", 252}, - {"both", 253}, - {"color", 254}, - {"house", 255}, - {"almost", 256}, - {"sorry", 257}, - {"anymore", 258}, - {"brother", 259}, - {"okay", 260}, - {"dear", 261}, - {"game", 262}, - {"fade", 263}, - {"already", 264}, - {"apart", 265}, - {"warm", 266}, - {"beauty", 267}, - {"heard", 268}, - {"notice", 269}, - {"question", 270}, - {"shine", 271}, - {"began", 272}, - {"piece", 273}, - {"whole", 274}, - {"shadow", 275}, - {"secret", 276}, - {"street", 277}, - {"within", 278}, - {"finger", 279}, - {"point", 280}, - {"morning", 281}, - {"whisper", 282}, - {"child", 283}, - {"moon", 284}, - {"green", 285}, - {"story", 286}, - {"glass", 287}, - {"kid", 288}, - {"silence", 289}, - {"since", 290}, - {"soft", 291}, - {"yourself", 292}, - {"empty", 293}, - {"shall", 294}, - {"angel", 295}, - {"answer", 296}, - {"baby", 297}, - {"bright", 298}, - {"dad", 299}, - {"path", 300}, - {"worry", 301}, - {"hour", 302}, - {"drop", 303}, - {"follow", 304}, - {"power", 305}, - {"war", 306}, - {"half", 307}, - {"flow", 308}, - {"heaven", 309}, - {"act", 310}, - {"chance", 311}, - {"fact", 312}, - {"least", 313}, - {"tired", 314}, - {"children", 315}, - {"near", 316}, - {"quite", 317}, - {"afraid", 318}, - {"rise", 319}, - {"sea", 320}, - {"taste", 321}, - {"window", 322}, - {"cover", 323}, - {"nice", 324}, - {"trust", 325}, - {"lot", 326}, - {"sad", 327}, - {"cool", 328}, - {"force", 329}, - {"peace", 330}, - {"return", 331}, - {"blind", 332}, - {"easy", 333}, - {"ready", 334}, - {"roll", 335}, - {"rose", 336}, - {"drive", 337}, - {"held", 338}, - {"music", 339}, - {"beneath", 340}, - {"hang", 341}, - {"mom", 342}, - {"paint", 343}, - {"emotion", 344}, - {"quiet", 345}, - {"clear", 346}, - {"cloud", 347}, - {"few", 348}, - {"pretty", 349}, - {"bird", 350}, - {"outside", 351}, - {"paper", 352}, - {"picture", 353}, - {"front", 354}, - {"rock", 355}, - {"simple", 356}, - {"anyone", 357}, - {"meant", 358}, - {"reality", 359}, - {"road", 360}, - {"sense", 361}, - {"waste", 362}, - {"bit", 363}, - {"leaf", 364}, - {"thank", 365}, - {"happiness", 366}, - {"meet", 367}, - {"men", 368}, - {"smoke", 369}, - {"truly", 370}, - {"decide", 371}, - {"self", 372}, - {"age", 373}, - {"book", 374}, - {"form", 375}, - {"alive", 376}, - {"carry", 377}, - {"escape", 378}, - {"damn", 379}, - {"instead", 380}, - {"able", 381}, - {"ice", 382}, - {"minute", 383}, - {"throw", 384}, - {"catch", 385}, - {"leg", 386}, - {"ring", 387}, - {"course", 388}, - {"goodbye", 389}, - {"lead", 390}, - {"poem", 391}, - {"sick", 392}, - {"corner", 393}, - {"desire", 394}, - {"known", 395}, - {"problem", 396}, - {"remind", 397}, - {"shoulder", 398}, - {"suppose", 399}, - {"toward", 400}, - {"wave", 401}, - {"drink", 402}, - {"jump", 403}, - {"woman", 404}, - {"pretend", 405}, - {"sister", 406}, - {"week", 407}, - {"human", 408}, - {"joy", 409}, - {"crack", 410}, - {"grey", 411}, - {"pray", 412}, - {"surprise", 413}, - {"dry", 414}, - {"knee", 415}, - {"less", 416}, - {"search", 417}, - {"bleed", 418}, - {"caught", 419}, - {"clean", 420}, - {"embrace", 421}, - {"future", 422}, - {"king", 423}, - {"son", 424}, - {"sorrow", 425}, - {"chest", 426}, - {"hug", 427}, - {"remain", 428}, - {"sat", 429}, - {"worth", 430}, - {"blow", 431}, - {"daddy", 432}, - {"final", 433}, - {"parent", 434}, - {"tight", 435}, - {"also", 436}, - {"create", 437}, - {"lonely", 438}, - {"safe", 439}, - {"cross", 440}, - {"dress", 441}, - {"evil", 442}, - {"silent", 443}, - {"bone", 444}, - {"fate", 445}, - {"perhaps", 446}, - {"anger", 447}, - {"class", 448}, - {"scar", 449}, - {"snow", 450}, - {"tiny", 451}, - {"tonight", 452}, - {"continue", 453}, - {"control", 454}, - {"dog", 455}, - {"edge", 456}, - {"mirror", 457}, - {"month", 458}, - {"suddenly", 459}, - {"comfort", 460}, - {"given", 461}, - {"loud", 462}, - {"quickly", 463}, - {"gaze", 464}, - {"plan", 465}, - {"rush", 466}, - {"stone", 467}, - {"town", 468}, - {"battle", 469}, - {"ignore", 470}, - {"spirit", 471}, - {"stood", 472}, - {"stupid", 473}, - {"yours", 474}, - {"brown", 475}, - {"build", 476}, - {"dust", 477}, - {"hey", 478}, - {"kept", 479}, - {"pay", 480}, - {"phone", 481}, - {"twist", 482}, - {"although", 483}, - {"ball", 484}, - {"beyond", 485}, - {"hidden", 486}, - {"nose", 487}, - {"taken", 488}, - {"fail", 489}, - {"float", 490}, - {"pure", 491}, - {"somehow", 492}, - {"wash", 493}, - {"wrap", 494}, - {"angry", 495}, - {"cheek", 496}, - {"creature", 497}, - {"forgotten", 498}, - {"heat", 499}, - {"rip", 500}, - {"single", 501}, - {"space", 502}, - {"special", 503}, - {"weak", 504}, - {"whatever", 505}, - {"yell", 506}, - {"anyway", 507}, - {"blame", 508}, - {"job", 509}, - {"choose", 510}, - {"country", 511}, - {"curse", 512}, - {"drift", 513}, - {"echo", 514}, - {"figure", 515}, - {"grew", 516}, - {"laughter", 517}, - {"neck", 518}, - {"suffer", 519}, - {"worse", 520}, - {"yeah", 521}, - {"disappear", 522}, - {"foot", 523}, - {"forward", 524}, - {"knife", 525}, - {"mess", 526}, - {"somewhere", 527}, - {"stomach", 528}, - {"storm", 529}, - {"beg", 530}, - {"idea", 531}, - {"lift", 532}, - {"offer", 533}, - {"breeze", 534}, - {"field", 535}, - {"five", 536}, - {"often", 537}, - {"simply", 538}, - {"stuck", 539}, - {"win", 540}, - {"allow", 541}, - {"confuse", 542}, - {"enjoy", 543}, - {"except", 544}, - {"flower", 545}, - {"seek", 546}, - {"strength", 547}, - {"calm", 548}, - {"grin", 549}, - {"gun", 550}, - {"heavy", 551}, - {"hill", 552}, - {"large", 553}, - {"ocean", 554}, - {"shoe", 555}, - {"sigh", 556}, - {"straight", 557}, - {"summer", 558}, - {"tongue", 559}, - {"accept", 560}, - {"crazy", 561}, - {"everyday", 562}, - {"exist", 563}, - {"grass", 564}, - {"mistake", 565}, - {"sent", 566}, - {"shut", 567}, - {"surround", 568}, - {"table", 569}, - {"ache", 570}, - {"brain", 571}, - {"destroy", 572}, - {"heal", 573}, - {"nature", 574}, - {"shout", 575}, - {"sign", 576}, - {"stain", 577}, - {"choice", 578}, - {"doubt", 579}, - {"glance", 580}, - {"glow", 581}, - {"mountain", 582}, - {"queen", 583}, - {"stranger", 584}, - {"throat", 585}, - {"tomorrow", 586}, - {"city", 587}, - {"either", 588}, - {"fish", 589}, - {"flame", 590}, - {"rather", 591}, - {"shape", 592}, - {"spin", 593}, - {"spread", 594}, - {"ash", 595}, - {"distance", 596}, - {"finish", 597}, - {"image", 598}, - {"imagine", 599}, - {"important", 600}, - {"nobody", 601}, - {"shatter", 602}, - {"warmth", 603}, - {"became", 604}, - {"feed", 605}, - {"flesh", 606}, - {"funny", 607}, - {"lust", 608}, - {"shirt", 609}, - {"trouble", 610}, - {"yellow", 611}, - {"attention", 612}, - {"bare", 613}, - {"bite", 614}, - {"money", 615}, - {"protect", 616}, - {"amaze", 617}, - {"appear", 618}, - {"born", 619}, - {"choke", 620}, - {"completely", 621}, - {"daughter", 622}, - {"fresh", 623}, - {"friendship", 624}, - {"gentle", 625}, - {"probably", 626}, - {"six", 627}, - {"deserve", 628}, - {"expect", 629}, - {"grab", 630}, - {"middle", 631}, - {"nightmare", 632}, - {"river", 633}, - {"thousand", 634}, - {"weight", 635}, - {"worst", 636}, - {"wound", 637}, - {"barely", 638}, - {"bottle", 639}, - {"cream", 640}, - {"regret", 641}, - {"relationship", 642}, - {"stick", 643}, - {"test", 644}, - {"crush", 645}, - {"endless", 646}, - {"fault", 647}, - {"itself", 648}, - {"rule", 649}, - {"spill", 650}, - {"art", 651}, - {"circle", 652}, - {"join", 653}, - {"kick", 654}, - {"mask", 655}, - {"master", 656}, - {"passion", 657}, - {"quick", 658}, - {"raise", 659}, - {"smooth", 660}, - {"unless", 661}, - {"wander", 662}, - {"actually", 663}, - {"broke", 664}, - {"chair", 665}, - {"deal", 666}, - {"favorite", 667}, - {"gift", 668}, - {"note", 669}, - {"number", 670}, - {"sweat", 671}, - {"box", 672}, - {"chill", 673}, - {"clothes", 674}, - {"lady", 675}, - {"mark", 676}, - {"park", 677}, - {"poor", 678}, - {"sadness", 679}, - {"tie", 680}, - {"animal", 681}, - {"belong", 682}, - {"brush", 683}, - {"consume", 684}, - {"dawn", 685}, - {"forest", 686}, - {"innocent", 687}, - {"pen", 688}, - {"pride", 689}, - {"stream", 690}, - {"thick", 691}, - {"clay", 692}, - {"complete", 693}, - {"count", 694}, - {"draw", 695}, - {"faith", 696}, - {"press", 697}, - {"silver", 698}, - {"struggle", 699}, - {"surface", 700}, - {"taught", 701}, - {"teach", 702}, - {"wet", 703}, - {"bless", 704}, - {"chase", 705}, - {"climb", 706}, - {"enter", 707}, - {"letter", 708}, - {"melt", 709}, - {"metal", 710}, - {"movie", 711}, - {"stretch", 712}, - {"swing", 713}, - {"vision", 714}, - {"wife", 715}, - {"beside", 716}, - {"crash", 717}, - {"forgot", 718}, - {"guide", 719}, - {"haunt", 720}, - {"joke", 721}, - {"knock", 722}, - {"plant", 723}, - {"pour", 724}, - {"prove", 725}, - {"reveal", 726}, - {"steal", 727}, - {"stuff", 728}, - {"trip", 729}, - {"wood", 730}, - {"wrist", 731}, - {"bother", 732}, - {"bottom", 733}, - {"crawl", 734}, - {"crowd", 735}, - {"fix", 736}, - {"forgive", 737}, - {"frown", 738}, - {"grace", 739}, - {"loose", 740}, - {"lucky", 741}, - {"party", 742}, - {"release", 743}, - {"surely", 744}, - {"survive", 745}, - {"teacher", 746}, - {"gently", 747}, - {"grip", 748}, - {"speed", 749}, - {"suicide", 750}, - {"travel", 751}, - {"treat", 752}, - {"vein", 753}, - {"written", 754}, - {"cage", 755}, - {"chain", 756}, - {"conversation", 757}, - {"date", 758}, - {"enemy", 759}, - {"however", 760}, - {"interest", 761}, - {"million", 762}, - {"page", 763}, - {"pink", 764}, - {"proud", 765}, - {"sway", 766}, - {"themselves", 767}, - {"winter", 768}, - {"church", 769}, - {"cruel", 770}, - {"cup", 771}, - {"demon", 772}, - {"experience", 773}, - {"freedom", 774}, - {"pair", 775}, - {"pop", 776}, - {"purpose", 777}, - {"respect", 778}, - {"shoot", 779}, - {"softly", 780}, - {"state", 781}, - {"strange", 782}, - {"bar", 783}, - {"birth", 784}, - {"curl", 785}, - {"dirt", 786}, - {"excuse", 787}, - {"lord", 788}, - {"lovely", 789}, - {"monster", 790}, - {"order", 791}, - {"pack", 792}, - {"pants", 793}, - {"pool", 794}, - {"scene", 795}, - {"seven", 796}, - {"shame", 797}, - {"slide", 798}, - {"ugly", 799}, - {"among", 800}, - {"blade", 801}, - {"blonde", 802}, - {"closet", 803}, - {"creek", 804}, - {"deny", 805}, - {"drug", 806}, - {"eternity", 807}, - {"gain", 808}, - {"grade", 809}, - {"handle", 810}, - {"key", 811}, - {"linger", 812}, - {"pale", 813}, - {"prepare", 814}, - {"swallow", 815}, - {"swim", 816}, - {"tremble", 817}, - {"wheel", 818}, - {"won", 819}, - {"cast", 820}, - {"cigarette", 821}, - {"claim", 822}, - {"college", 823}, - {"direction", 824}, - {"dirty", 825}, - {"gather", 826}, - {"ghost", 827}, - {"hundred", 828}, - {"loss", 829}, - {"lung", 830}, - {"orange", 831}, - {"present", 832}, - {"swear", 833}, - {"swirl", 834}, - {"twice", 835}, - {"wild", 836}, - {"bitter", 837}, - {"blanket", 838}, - {"doctor", 839}, - {"everywhere", 840}, - {"flash", 841}, - {"grown", 842}, - {"knowledge", 843}, - {"numb", 844}, - {"pressure", 845}, - {"radio", 846}, - {"repeat", 847}, - {"ruin", 848}, - {"spend", 849}, - {"unknown", 850}, - {"buy", 851}, - {"clock", 852}, - {"devil", 853}, - {"early", 854}, - {"false", 855}, - {"fantasy", 856}, - {"pound", 857}, - {"precious", 858}, - {"refuse", 859}, - {"sheet", 860}, - {"teeth", 861}, - {"welcome", 862}, - {"add", 863}, - {"ahead", 864}, - {"block", 865}, - {"bury", 866}, - {"caress", 867}, - {"content", 868}, - {"depth", 869}, - {"despite", 870}, - {"distant", 871}, - {"marry", 872}, - {"purple", 873}, - {"threw", 874}, - {"whenever", 875}, - {"bomb", 876}, - {"dull", 877}, - {"easily", 878}, - {"grasp", 879}, - {"hospital", 880}, - {"innocence", 881}, - {"normal", 882}, - {"receive", 883}, - {"reply", 884}, - {"rhyme", 885}, - {"shade", 886}, - {"someday", 887}, - {"sword", 888}, - {"toe", 889}, - {"visit", 890}, - {"asleep", 891}, - {"bought", 892}, - {"center", 893}, - {"consider", 894}, - {"flat", 895}, - {"hero", 896}, - {"history", 897}, - {"ink", 898}, - {"insane", 899}, - {"muscle", 900}, - {"mystery", 901}, - {"pocket", 902}, - {"reflection", 903}, - {"shove", 904}, - {"silently", 905}, - {"smart", 906}, - {"soldier", 907}, - {"spot", 908}, - {"stress", 909}, - {"train", 910}, - {"type", 911}, - {"view", 912}, - {"whether", 913}, - {"bus", 914}, - {"energy", 915}, - {"explain", 916}, - {"holy", 917}, - {"hunger", 918}, - {"inch", 919}, - {"magic", 920}, - {"mix", 921}, - {"noise", 922}, - {"nowhere", 923}, - {"prayer", 924}, - {"presence", 925}, - {"shock", 926}, - {"snap", 927}, - {"spider", 928}, - {"study", 929}, - {"thunder", 930}, - {"trail", 931}, - {"admit", 932}, - {"agree", 933}, - {"bag", 934}, - {"bang", 935}, - {"bound", 936}, - {"butterfly", 937}, - {"cute", 938}, - {"exactly", 939}, - {"explode", 940}, - {"familiar", 941}, - {"fold", 942}, - {"further", 943}, - {"pierce", 944}, - {"reflect", 945}, - {"scent", 946}, - {"selfish", 947}, - {"sharp", 948}, - {"sink", 949}, - {"spring", 950}, - {"stumble", 951}, - {"universe", 952}, - {"weep", 953}, - {"women", 954}, - {"wonderful", 955}, - {"action", 956}, - {"ancient", 957}, - {"attempt", 958}, - {"avoid", 959}, - {"birthday", 960}, - {"branch", 961}, - {"chocolate", 962}, - {"core", 963}, - {"depress", 964}, - {"drunk", 965}, - {"especially", 966}, - {"focus", 967}, - {"fruit", 968}, - {"honest", 969}, - {"match", 970}, - {"palm", 971}, - {"perfectly", 972}, - {"pillow", 973}, - {"pity", 974}, - {"poison", 975}, - {"roar", 976}, - {"shift", 977}, - {"slightly", 978}, - {"thump", 979}, - {"truck", 980}, - {"tune", 981}, - {"twenty", 982}, - {"unable", 983}, - {"wipe", 984}, - {"wrote", 985}, - {"coat", 986}, - {"constant", 987}, - {"dinner", 988}, - {"drove", 989}, - {"egg", 990}, - {"eternal", 991}, - {"flight", 992}, - {"flood", 993}, - {"frame", 994}, - {"freak", 995}, - {"gasp", 996}, - {"glad", 997}, - {"hollow", 998}, - {"motion", 999}, - {"peer", 1000}, - {"plastic", 1001}, - {"root", 1002}, - {"screen", 1003}, - {"season", 1004}, - {"sting", 1005}, - {"strike", 1006}, - {"team", 1007}, - {"unlike", 1008}, - {"victim", 1009}, - {"volume", 1010}, - {"warn", 1011}, - {"weird", 1012}, - {"attack", 1013}, - {"await", 1014}, - {"awake", 1015}, - {"built", 1016}, - {"charm", 1017}, - {"crave", 1018}, - {"despair", 1019}, - {"fought", 1020}, - {"grant", 1021}, - {"grief", 1022}, - {"horse", 1023}, - {"limit", 1024}, - {"message", 1025}, - {"ripple", 1026}, - {"sanity", 1027}, - {"scatter", 1028}, - {"serve", 1029}, - {"split", 1030}, - {"string", 1031}, - {"trick", 1032}, - {"annoy", 1033}, - {"blur", 1034}, - {"boat", 1035}, - {"brave", 1036}, - {"clearly", 1037}, - {"cling", 1038}, - {"connect", 1039}, - {"fist", 1040}, - {"forth", 1041}, - {"imagination", 1042}, - {"iron", 1043}, - {"jock", 1044}, - {"judge", 1045}, - {"lesson", 1046}, - {"milk", 1047}, - {"misery", 1048}, - {"nail", 1049}, - {"naked", 1050}, - {"ourselves", 1051}, - {"poet", 1052}, - {"possible", 1053}, - {"princess", 1054}, - {"sail", 1055}, - {"size", 1056}, - {"snake", 1057}, - {"society", 1058}, - {"stroke", 1059}, - {"torture", 1060}, - {"toss", 1061}, - {"trace", 1062}, - {"wise", 1063}, - {"bloom", 1064}, - {"bullet", 1065}, - {"cell", 1066}, - {"check", 1067}, - {"cost", 1068}, - {"darling", 1069}, - {"during", 1070}, - {"footstep", 1071}, - {"fragile", 1072}, - {"hallway", 1073}, - {"hardly", 1074}, - {"horizon", 1075}, - {"invisible", 1076}, - {"journey", 1077}, - {"midnight", 1078}, - {"mud", 1079}, - {"nod", 1080}, - {"pause", 1081}, - {"relax", 1082}, - {"shiver", 1083}, - {"sudden", 1084}, - {"value", 1085}, - {"youth", 1086}, - {"abuse", 1087}, - {"admire", 1088}, - {"blink", 1089}, - {"breast", 1090}, - {"bruise", 1091}, - {"constantly", 1092}, - {"couple", 1093}, - {"creep", 1094}, - {"curve", 1095}, - {"difference", 1096}, - {"dumb", 1097}, - {"emptiness", 1098}, - {"gotta", 1099}, - {"honor", 1100}, - {"plain", 1101}, - {"planet", 1102}, - {"recall", 1103}, - {"rub", 1104}, - {"ship", 1105}, - {"slam", 1106}, - {"soar", 1107}, - {"somebody", 1108}, - {"tightly", 1109}, - {"weather", 1110}, - {"adore", 1111}, - {"approach", 1112}, - {"bond", 1113}, - {"bread", 1114}, - {"burst", 1115}, - {"candle", 1116}, - {"coffee", 1117}, - {"cousin", 1118}, - {"crime", 1119}, - {"desert", 1120}, - {"flutter", 1121}, - {"frozen", 1122}, - {"grand", 1123}, - {"heel", 1124}, - {"hello", 1125}, - {"language", 1126}, - {"level", 1127}, - {"movement", 1128}, - {"pleasure", 1129}, - {"powerful", 1130}, - {"random", 1131}, - {"rhythm", 1132}, - {"settle", 1133}, - {"silly", 1134}, - {"slap", 1135}, - {"sort", 1136}, - {"spoken", 1137}, - {"steel", 1138}, - {"threaten", 1139}, - {"tumble", 1140}, - {"upset", 1141}, - {"aside", 1142}, - {"awkward", 1143}, - {"bee", 1144}, - {"blank", 1145}, - {"board", 1146}, - {"button", 1147}, - {"card", 1148}, - {"carefully", 1149}, - {"complain", 1150}, - {"crap", 1151}, - {"deeply", 1152}, - {"discover", 1153}, - {"drag", 1154}, - {"dread", 1155}, - {"effort", 1156}, - {"entire", 1157}, - {"fairy", 1158}, - {"giant", 1159}, - {"gotten", 1160}, - {"greet", 1161}, - {"illusion", 1162}, - {"jeans", 1163}, - {"leap", 1164}, - {"liquid", 1165}, - {"march", 1166}, - {"mend", 1167}, - {"nervous", 1168}, - {"nine", 1169}, - {"replace", 1170}, - {"rope", 1171}, - {"spine", 1172}, - {"stole", 1173}, - {"terror", 1174}, - {"accident", 1175}, - {"apple", 1176}, - {"balance", 1177}, - {"boom", 1178}, - {"childhood", 1179}, - {"collect", 1180}, - {"demand", 1181}, - {"depression", 1182}, - {"eventually", 1183}, - {"faint", 1184}, - {"glare", 1185}, - {"goal", 1186}, - {"group", 1187}, - {"honey", 1188}, - {"kitchen", 1189}, - {"laid", 1190}, - {"limb", 1191}, - {"machine", 1192}, - {"mere", 1193}, - {"mold", 1194}, - {"murder", 1195}, - {"nerve", 1196}, - {"painful", 1197}, - {"poetry", 1198}, - {"prince", 1199}, - {"rabbit", 1200}, - {"shelter", 1201}, - {"shore", 1202}, - {"shower", 1203}, - {"soothe", 1204}, - {"stair", 1205}, - {"steady", 1206}, - {"sunlight", 1207}, - {"tangle", 1208}, - {"tease", 1209}, - {"treasure", 1210}, - {"uncle", 1211}, - {"begun", 1212}, - {"bliss", 1213}, - {"canvas", 1214}, - {"cheer", 1215}, - {"claw", 1216}, - {"clutch", 1217}, - {"commit", 1218}, - {"crimson", 1219}, - {"crystal", 1220}, - {"delight", 1221}, - {"doll", 1222}, - {"existence", 1223}, - {"express", 1224}, - {"fog", 1225}, - {"football", 1226}, - {"gay", 1227}, - {"goose", 1228}, - {"guard", 1229}, - {"hatred", 1230}, - {"illuminate", 1231}, - {"mass", 1232}, - {"math", 1233}, - {"mourn", 1234}, - {"rich", 1235}, - {"rough", 1236}, - {"skip", 1237}, - {"stir", 1238}, - {"student", 1239}, - {"style", 1240}, - {"support", 1241}, - {"thorn", 1242}, - {"tough", 1243}, - {"yard", 1244}, - {"yearn", 1245}, - {"yesterday", 1246}, - {"advice", 1247}, - {"appreciate", 1248}, - {"autumn", 1249}, - {"bank", 1250}, - {"beam", 1251}, - {"bowl", 1252}, - {"capture", 1253}, - {"carve", 1254}, - {"collapse", 1255}, - {"confusion", 1256}, - {"creation", 1257}, - {"dove", 1258}, - {"feather", 1259}, - {"girlfriend", 1260}, - {"glory", 1261}, - {"government", 1262}, - {"harsh", 1263}, - {"hop", 1264}, - {"inner", 1265}, - {"loser", 1266}, - {"moonlight", 1267}, - {"neighbor", 1268}, - {"neither", 1269}, - {"peach", 1270}, - {"pig", 1271}, - {"praise", 1272}, - {"screw", 1273}, - {"shield", 1274}, - {"shimmer", 1275}, - {"sneak", 1276}, - {"stab", 1277}, - {"subject", 1278}, - {"throughout", 1279}, - {"thrown", 1280}, - {"tower", 1281}, - {"twirl", 1282}, - {"wow", 1283}, - {"army", 1284}, - {"arrive", 1285}, - {"bathroom", 1286}, - {"bump", 1287}, - {"cease", 1288}, - {"cookie", 1289}, - {"couch", 1290}, - {"courage", 1291}, - {"dim", 1292}, - {"guilt", 1293}, - {"howl", 1294}, - {"hum", 1295}, - {"husband", 1296}, - {"insult", 1297}, - {"led", 1298}, - {"lunch", 1299}, - {"mock", 1300}, - {"mostly", 1301}, - {"natural", 1302}, - {"nearly", 1303}, - {"needle", 1304}, - {"nerd", 1305}, - {"peaceful", 1306}, - {"perfection", 1307}, - {"pile", 1308}, - {"price", 1309}, - {"remove", 1310}, - {"roam", 1311}, - {"sanctuary", 1312}, - {"serious", 1313}, - {"shiny", 1314}, - {"shook", 1315}, - {"sob", 1316}, - {"stolen", 1317}, - {"tap", 1318}, - {"vain", 1319}, - {"void", 1320}, - {"warrior", 1321}, - {"wrinkle", 1322}, - {"affection", 1323}, - {"apologize", 1324}, - {"blossom", 1325}, - {"bounce", 1326}, - {"bridge", 1327}, - {"cheap", 1328}, - {"crumble", 1329}, - {"decision", 1330}, - {"descend", 1331}, - {"desperately", 1332}, - {"dig", 1333}, - {"dot", 1334}, - {"flip", 1335}, - {"frighten", 1336}, - {"heartbeat", 1337}, - {"huge", 1338}, - {"lazy", 1339}, - {"lick", 1340}, - {"odd", 1341}, - {"opinion", 1342}, - {"process", 1343}, - {"puzzle", 1344}, - {"quietly", 1345}, - {"retreat", 1346}, - {"score", 1347}, - {"sentence", 1348}, - {"separate", 1349}, - {"situation", 1350}, - {"skill", 1351}, - {"soak", 1352}, - {"square", 1353}, - {"stray", 1354}, - {"taint", 1355}, - {"task", 1356}, - {"tide", 1357}, - {"underneath", 1358}, - {"veil", 1359}, - {"whistle", 1360}, - {"anywhere", 1361}, - {"bedroom", 1362}, - {"bid", 1363}, - {"bloody", 1364}, - {"burden", 1365}, - {"careful", 1366}, - {"compare", 1367}, - {"concern", 1368}, - {"curtain", 1369}, - {"decay", 1370}, - {"defeat", 1371}, - {"describe", 1372}, - {"double", 1373}, - {"dreamer", 1374}, - {"driver", 1375}, - {"dwell", 1376}, - {"evening", 1377}, - {"flare", 1378}, - {"flicker", 1379}, - {"grandma", 1380}, - {"guitar", 1381}, - {"harm", 1382}, - {"horrible", 1383}, - {"hungry", 1384}, - {"indeed", 1385}, - {"lace", 1386}, - {"melody", 1387}, - {"monkey", 1388}, - {"nation", 1389}, - {"object", 1390}, - {"obviously", 1391}, - {"rainbow", 1392}, - {"salt", 1393}, - {"scratch", 1394}, - {"shown", 1395}, - {"shy", 1396}, - {"stage", 1397}, - {"stun", 1398}, - {"third", 1399}, - {"tickle", 1400}, - {"useless", 1401}, - {"weakness", 1402}, - {"worship", 1403}, - {"worthless", 1404}, - {"afternoon", 1405}, - {"beard", 1406}, - {"boyfriend", 1407}, - {"bubble", 1408}, - {"busy", 1409}, - {"certain", 1410}, - {"chin", 1411}, - {"concrete", 1412}, - {"desk", 1413}, - {"diamond", 1414}, - {"doom", 1415}, - {"drawn", 1416}, - {"due", 1417}, - {"felicity", 1418}, - {"freeze", 1419}, - {"frost", 1420}, - {"garden", 1421}, - {"glide", 1422}, - {"harmony", 1423}, - {"hopefully", 1424}, - {"hunt", 1425}, - {"jealous", 1426}, - {"lightning", 1427}, - {"mama", 1428}, - {"mercy", 1429}, - {"peel", 1430}, - {"physical", 1431}, - {"position", 1432}, - {"pulse", 1433}, - {"punch", 1434}, - {"quit", 1435}, - {"rant", 1436}, - {"respond", 1437}, - {"salty", 1438}, - {"sane", 1439}, - {"satisfy", 1440}, - {"savior", 1441}, - {"sheep", 1442}, - {"slept", 1443}, - {"social", 1444}, - {"sport", 1445}, - {"tuck", 1446}, - {"utter", 1447}, - {"valley", 1448}, - {"wolf", 1449}, - {"aim", 1450}, - {"alas", 1451}, - {"alter", 1452}, - {"arrow", 1453}, - {"awaken", 1454}, - {"beaten", 1455}, - {"belief", 1456}, - {"brand", 1457}, - {"ceiling", 1458}, - {"cheese", 1459}, - {"clue", 1460}, - {"confidence", 1461}, - {"connection", 1462}, - {"daily", 1463}, - {"disguise", 1464}, - {"eager", 1465}, - {"erase", 1466}, - {"essence", 1467}, - {"everytime", 1468}, - {"expression", 1469}, - {"fan", 1470}, - {"flag", 1471}, - {"flirt", 1472}, - {"foul", 1473}, - {"fur", 1474}, - {"giggle", 1475}, - {"glorious", 1476}, - {"ignorance", 1477}, - {"law", 1478}, - {"lifeless", 1479}, - {"measure", 1480}, - {"mighty", 1481}, - {"muse", 1482}, - {"north", 1483}, - {"opposite", 1484}, - {"paradise", 1485}, - {"patience", 1486}, - {"patient", 1487}, - {"pencil", 1488}, - {"petal", 1489}, - {"plate", 1490}, - {"ponder", 1491}, - {"possibly", 1492}, - {"practice", 1493}, - {"slice", 1494}, - {"spell", 1495}, - {"stock", 1496}, - {"strife", 1497}, - {"strip", 1498}, - {"suffocate", 1499}, - {"suit", 1500}, - {"tender", 1501}, - {"tool", 1502}, - {"trade", 1503}, - {"velvet", 1504}, - {"verse", 1505}, - {"waist", 1506}, - {"witch", 1507}, - {"aunt", 1508}, - {"bench", 1509}, - {"bold", 1510}, - {"cap", 1511}, - {"certainly", 1512}, - {"click", 1513}, - {"companion", 1514}, - {"creator", 1515}, - {"dart", 1516}, - {"delicate", 1517}, - {"determine", 1518}, - {"dish", 1519}, - {"dragon", 1520}, - {"drama", 1521}, - {"drum", 1522}, - {"dude", 1523}, - {"everybody", 1524}, - {"feast", 1525}, - {"forehead", 1526}, - {"former", 1527}, - {"fright", 1528}, - {"fully", 1529}, - {"gas", 1530}, - {"hook", 1531}, - {"hurl", 1532}, - {"invite", 1533}, - {"juice", 1534}, - {"manage", 1535}, - {"moral", 1536}, - {"possess", 1537}, - {"raw", 1538}, - {"rebel", 1539}, - {"royal", 1540}, - {"scale", 1541}, - {"scary", 1542}, - {"several", 1543}, - {"slight", 1544}, - {"stubborn", 1545}, - {"swell", 1546}, - {"talent", 1547}, - {"tea", 1548}, - {"terrible", 1549}, - {"thread", 1550}, - {"torment", 1551}, - {"trickle", 1552}, - {"usually", 1553}, - {"vast", 1554}, - {"violence", 1555}, - {"weave", 1556}, - {"acid", 1557}, - {"agony", 1558}, - {"ashamed", 1559}, - {"awe", 1560}, - {"belly", 1561}, - {"blend", 1562}, - {"blush", 1563}, - {"character", 1564}, - {"cheat", 1565}, - {"common", 1566}, - {"company", 1567}, - {"coward", 1568}, - {"creak", 1569}, - {"danger", 1570}, - {"deadly", 1571}, - {"defense", 1572}, - {"define", 1573}, - {"depend", 1574}, - {"desperate", 1575}, - {"destination", 1576}, - {"dew", 1577}, - {"duck", 1578}, - {"dusty", 1579}, - {"embarrass", 1580}, - {"engine", 1581}, - {"example", 1582}, - {"explore", 1583}, - {"foe", 1584}, - {"freely", 1585}, - {"frustrate", 1586}, - {"generation", 1587}, - {"glove", 1588}, - {"guilty", 1589}, - {"health", 1590}, - {"hurry", 1591}, - {"idiot", 1592}, - {"impossible", 1593}, - {"inhale", 1594}, - {"jaw", 1595}, - {"kingdom", 1596}, - {"mention", 1597}, - {"mist", 1598}, - {"moan", 1599}, - {"mumble", 1600}, - {"mutter", 1601}, - {"observe", 1602}, - {"ode", 1603}, - {"pathetic", 1604}, - {"pattern", 1605}, - {"pie", 1606}, - {"prefer", 1607}, - {"puff", 1608}, - {"rape", 1609}, - {"rare", 1610}, - {"revenge", 1611}, - {"rude", 1612}, - {"scrape", 1613}, - {"spiral", 1614}, - {"squeeze", 1615}, - {"strain", 1616}, - {"sunset", 1617}, - {"suspend", 1618}, - {"sympathy", 1619}, - {"thigh", 1620}, - {"throne", 1621}, - {"total", 1622}, - {"unseen", 1623}, - {"weapon", 1624}, - {"weary", 1625} - }; - - const std::string wordsArray[] = { - "like", - "just", - "love", - "know", - "never", - "want", - "time", - "out", - "there", - "make", - "look", - "eye", - "down", - "only", - "think", - "heart", - "back", - "then", - "into", - "about", - "more", - "away", - "still", - "them", - "take", - "thing", - "even", - "through", - "long", - "always", - "world", - "too", - "friend", - "tell", - "try", - "hand", - "thought", - "over", - "here", - "other", - "need", - "smile", - "again", - "much", - "cry", - "been", - "night", - "ever", - "little", - "said", - "end", - "some", - "those", - "around", - "mind", - "people", - "girl", - "leave", - "dream", - "left", - "turn", - "myself", - "give", - "nothing", - "really", - "off", - "before", - "something", - "find", - "walk", - "wish", - "good", - "once", - "place", - "ask", - "stop", - "keep", - "watch", - "seem", - "everything", - "wait", - "got", - "yet", - "made", - "remember", - "start", - "alone", - "run", - "hope", - "maybe", - "believe", - "body", - "hate", - "after", - "close", - "talk", - "stand", - "own", - "each", - "hurt", - "help", - "home", - "god", - "soul", - "new", - "many", - "two", - "inside", - "should", - "true", - "first", - "fear", - "mean", - "better", - "play", - "another", - "gone", - "change", - "use", - "wonder", - "someone", - "hair", - "cold", - "open", - "best", - "any", - "behind", - "happen", - "water", - "dark", - "laugh", - "stay", - "forever", - "name", - "work", - "show", - "sky", - "break", - "came", - "deep", - "door", - "put", - "black", - "together", - "upon", - "happy", - "such", - "great", - "white", - "matter", - "fill", - "past", - "please", - "burn", - "cause", - "enough", - "touch", - "moment", - "soon", - "voice", - "scream", - "anything", - "stare", - "sound", - "red", - "everyone", - "hide", - "kiss", - "truth", - "death", - "beautiful", - "mine", - "blood", - "broken", - "very", - "pass", - "next", - "forget", - "tree", - "wrong", - "air", - "mother", - "understand", - "lip", - "hit", - "wall", - "memory", - "sleep", - "free", - "high", - "realize", - "school", - "might", - "skin", - "sweet", - "perfect", - "blue", - "kill", - "breath", - "dance", - "against", - "fly", - "between", - "grow", - "strong", - "under", - "listen", - "bring", - "sometimes", - "speak", - "pull", - "person", - "become", - "family", - "begin", - "ground", - "real", - "small", - "father", - "sure", - "feet", - "rest", - "young", - "finally", - "land", - "across", - "today", - "different", - "guy", - "line", - "fire", - "reason", - "reach", - "second", - "slowly", - "write", - "eat", - "smell", - "mouth", - "step", - "learn", - "three", - "floor", - "promise", - "breathe", - "darkness", - "push", - "earth", - "guess", - "save", - "song", - "above", - "along", - "both", - "color", - "house", - "almost", - "sorry", - "anymore", - "brother", - "okay", - "dear", - "game", - "fade", - "already", - "apart", - "warm", - "beauty", - "heard", - "notice", - "question", - "shine", - "began", - "piece", - "whole", - "shadow", - "secret", - "street", - "within", - "finger", - "point", - "morning", - "whisper", - "child", - "moon", - "green", - "story", - "glass", - "kid", - "silence", - "since", - "soft", - "yourself", - "empty", - "shall", - "angel", - "answer", - "baby", - "bright", - "dad", - "path", - "worry", - "hour", - "drop", - "follow", - "power", - "war", - "half", - "flow", - "heaven", - "act", - "chance", - "fact", - "least", - "tired", - "children", - "near", - "quite", - "afraid", - "rise", - "sea", - "taste", - "window", - "cover", - "nice", - "trust", - "lot", - "sad", - "cool", - "force", - "peace", - "return", - "blind", - "easy", - "ready", - "roll", - "rose", - "drive", - "held", - "music", - "beneath", - "hang", - "mom", - "paint", - "emotion", - "quiet", - "clear", - "cloud", - "few", - "pretty", - "bird", - "outside", - "paper", - "picture", - "front", - "rock", - "simple", - "anyone", - "meant", - "reality", - "road", - "sense", - "waste", - "bit", - "leaf", - "thank", - "happiness", - "meet", - "men", - "smoke", - "truly", - "decide", - "self", - "age", - "book", - "form", - "alive", - "carry", - "escape", - "damn", - "instead", - "able", - "ice", - "minute", - "throw", - "catch", - "leg", - "ring", - "course", - "goodbye", - "lead", - "poem", - "sick", - "corner", - "desire", - "known", - "problem", - "remind", - "shoulder", - "suppose", - "toward", - "wave", - "drink", - "jump", - "woman", - "pretend", - "sister", - "week", - "human", - "joy", - "crack", - "grey", - "pray", - "surprise", - "dry", - "knee", - "less", - "search", - "bleed", - "caught", - "clean", - "embrace", - "future", - "king", - "son", - "sorrow", - "chest", - "hug", - "remain", - "sat", - "worth", - "blow", - "daddy", - "final", - "parent", - "tight", - "also", - "create", - "lonely", - "safe", - "cross", - "dress", - "evil", - "silent", - "bone", - "fate", - "perhaps", - "anger", - "class", - "scar", - "snow", - "tiny", - "tonight", - "continue", - "control", - "dog", - "edge", - "mirror", - "month", - "suddenly", - "comfort", - "given", - "loud", - "quickly", - "gaze", - "plan", - "rush", - "stone", - "town", - "battle", - "ignore", - "spirit", - "stood", - "stupid", - "yours", - "brown", - "build", - "dust", - "hey", - "kept", - "pay", - "phone", - "twist", - "although", - "ball", - "beyond", - "hidden", - "nose", - "taken", - "fail", - "float", - "pure", - "somehow", - "wash", - "wrap", - "angry", - "cheek", - "creature", - "forgotten", - "heat", - "rip", - "single", - "space", - "special", - "weak", - "whatever", - "yell", - "anyway", - "blame", - "job", - "choose", - "country", - "curse", - "drift", - "echo", - "figure", - "grew", - "laughter", - "neck", - "suffer", - "worse", - "yeah", - "disappear", - "foot", - "forward", - "knife", - "mess", - "somewhere", - "stomach", - "storm", - "beg", - "idea", - "lift", - "offer", - "breeze", - "field", - "five", - "often", - "simply", - "stuck", - "win", - "allow", - "confuse", - "enjoy", - "except", - "flower", - "seek", - "strength", - "calm", - "grin", - "gun", - "heavy", - "hill", - "large", - "ocean", - "shoe", - "sigh", - "straight", - "summer", - "tongue", - "accept", - "crazy", - "everyday", - "exist", - "grass", - "mistake", - "sent", - "shut", - "surround", - "table", - "ache", - "brain", - "destroy", - "heal", - "nature", - "shout", - "sign", - "stain", - "choice", - "doubt", - "glance", - "glow", - "mountain", - "queen", - "stranger", - "throat", - "tomorrow", - "city", - "either", - "fish", - "flame", - "rather", - "shape", - "spin", - "spread", - "ash", - "distance", - "finish", - "image", - "imagine", - "important", - "nobody", - "shatter", - "warmth", - "became", - "feed", - "flesh", - "funny", - "lust", - "shirt", - "trouble", - "yellow", - "attention", - "bare", - "bite", - "money", - "protect", - "amaze", - "appear", - "born", - "choke", - "completely", - "daughter", - "fresh", - "friendship", - "gentle", - "probably", - "six", - "deserve", - "expect", - "grab", - "middle", - "nightmare", - "river", - "thousand", - "weight", - "worst", - "wound", - "barely", - "bottle", - "cream", - "regret", - "relationship", - "stick", - "test", - "crush", - "endless", - "fault", - "itself", - "rule", - "spill", - "art", - "circle", - "join", - "kick", - "mask", - "master", - "passion", - "quick", - "raise", - "smooth", - "unless", - "wander", - "actually", - "broke", - "chair", - "deal", - "favorite", - "gift", - "note", - "number", - "sweat", - "box", - "chill", - "clothes", - "lady", - "mark", - "park", - "poor", - "sadness", - "tie", - "animal", - "belong", - "brush", - "consume", - "dawn", - "forest", - "innocent", - "pen", - "pride", - "stream", - "thick", - "clay", - "complete", - "count", - "draw", - "faith", - "press", - "silver", - "struggle", - "surface", - "taught", - "teach", - "wet", - "bless", - "chase", - "climb", - "enter", - "letter", - "melt", - "metal", - "movie", - "stretch", - "swing", - "vision", - "wife", - "beside", - "crash", - "forgot", - "guide", - "haunt", - "joke", - "knock", - "plant", - "pour", - "prove", - "reveal", - "steal", - "stuff", - "trip", - "wood", - "wrist", - "bother", - "bottom", - "crawl", - "crowd", - "fix", - "forgive", - "frown", - "grace", - "loose", - "lucky", - "party", - "release", - "surely", - "survive", - "teacher", - "gently", - "grip", - "speed", - "suicide", - "travel", - "treat", - "vein", - "written", - "cage", - "chain", - "conversation", - "date", - "enemy", - "however", - "interest", - "million", - "page", - "pink", - "proud", - "sway", - "themselves", - "winter", - "church", - "cruel", - "cup", - "demon", - "experience", - "freedom", - "pair", - "pop", - "purpose", - "respect", - "shoot", - "softly", - "state", - "strange", - "bar", - "birth", - "curl", - "dirt", - "excuse", - "lord", - "lovely", - "monster", - "order", - "pack", - "pants", - "pool", - "scene", - "seven", - "shame", - "slide", - "ugly", - "among", - "blade", - "blonde", - "closet", - "creek", - "deny", - "drug", - "eternity", - "gain", - "grade", - "handle", - "key", - "linger", - "pale", - "prepare", - "swallow", - "swim", - "tremble", - "wheel", - "won", - "cast", - "cigarette", - "claim", - "college", - "direction", - "dirty", - "gather", - "ghost", - "hundred", - "loss", - "lung", - "orange", - "present", - "swear", - "swirl", - "twice", - "wild", - "bitter", - "blanket", - "doctor", - "everywhere", - "flash", - "grown", - "knowledge", - "numb", - "pressure", - "radio", - "repeat", - "ruin", - "spend", - "unknown", - "buy", - "clock", - "devil", - "early", - "false", - "fantasy", - "pound", - "precious", - "refuse", - "sheet", - "teeth", - "welcome", - "add", - "ahead", - "block", - "bury", - "caress", - "content", - "depth", - "despite", - "distant", - "marry", - "purple", - "threw", - "whenever", - "bomb", - "dull", - "easily", - "grasp", - "hospital", - "innocence", - "normal", - "receive", - "reply", - "rhyme", - "shade", - "someday", - "sword", - "toe", - "visit", - "asleep", - "bought", - "center", - "consider", - "flat", - "hero", - "history", - "ink", - "insane", - "muscle", - "mystery", - "pocket", - "reflection", - "shove", - "silently", - "smart", - "soldier", - "spot", - "stress", - "train", - "type", - "view", - "whether", - "bus", - "energy", - "explain", - "holy", - "hunger", - "inch", - "magic", - "mix", - "noise", - "nowhere", - "prayer", - "presence", - "shock", - "snap", - "spider", - "study", - "thunder", - "trail", - "admit", - "agree", - "bag", - "bang", - "bound", - "butterfly", - "cute", - "exactly", - "explode", - "familiar", - "fold", - "further", - "pierce", - "reflect", - "scent", - "selfish", - "sharp", - "sink", - "spring", - "stumble", - "universe", - "weep", - "women", - "wonderful", - "action", - "ancient", - "attempt", - "avoid", - "birthday", - "branch", - "chocolate", - "core", - "depress", - "drunk", - "especially", - "focus", - "fruit", - "honest", - "match", - "palm", - "perfectly", - "pillow", - "pity", - "poison", - "roar", - "shift", - "slightly", - "thump", - "truck", - "tune", - "twenty", - "unable", - "wipe", - "wrote", - "coat", - "constant", - "dinner", - "drove", - "egg", - "eternal", - "flight", - "flood", - "frame", - "freak", - "gasp", - "glad", - "hollow", - "motion", - "peer", - "plastic", - "root", - "screen", - "season", - "sting", - "strike", - "team", - "unlike", - "victim", - "volume", - "warn", - "weird", - "attack", - "await", - "awake", - "built", - "charm", - "crave", - "despair", - "fought", - "grant", - "grief", - "horse", - "limit", - "message", - "ripple", - "sanity", - "scatter", - "serve", - "split", - "string", - "trick", - "annoy", - "blur", - "boat", - "brave", - "clearly", - "cling", - "connect", - "fist", - "forth", - "imagination", - "iron", - "jock", - "judge", - "lesson", - "milk", - "misery", - "nail", - "naked", - "ourselves", - "poet", - "possible", - "princess", - "sail", - "size", - "snake", - "society", - "stroke", - "torture", - "toss", - "trace", - "wise", - "bloom", - "bullet", - "cell", - "check", - "cost", - "darling", - "during", - "footstep", - "fragile", - "hallway", - "hardly", - "horizon", - "invisible", - "journey", - "midnight", - "mud", - "nod", - "pause", - "relax", - "shiver", - "sudden", - "value", - "youth", - "abuse", - "admire", - "blink", - "breast", - "bruise", - "constantly", - "couple", - "creep", - "curve", - "difference", - "dumb", - "emptiness", - "gotta", - "honor", - "plain", - "planet", - "recall", - "rub", - "ship", - "slam", - "soar", - "somebody", - "tightly", - "weather", - "adore", - "approach", - "bond", - "bread", - "burst", - "candle", - "coffee", - "cousin", - "crime", - "desert", - "flutter", - "frozen", - "grand", - "heel", - "hello", - "language", - "level", - "movement", - "pleasure", - "powerful", - "random", - "rhythm", - "settle", - "silly", - "slap", - "sort", - "spoken", - "steel", - "threaten", - "tumble", - "upset", - "aside", - "awkward", - "bee", - "blank", - "board", - "button", - "card", - "carefully", - "complain", - "crap", - "deeply", - "discover", - "drag", - "dread", - "effort", - "entire", - "fairy", - "giant", - "gotten", - "greet", - "illusion", - "jeans", - "leap", - "liquid", - "march", - "mend", - "nervous", - "nine", - "replace", - "rope", - "spine", - "stole", - "terror", - "accident", - "apple", - "balance", - "boom", - "childhood", - "collect", - "demand", - "depression", - "eventually", - "faint", - "glare", - "goal", - "group", - "honey", - "kitchen", - "laid", - "limb", - "machine", - "mere", - "mold", - "murder", - "nerve", - "painful", - "poetry", - "prince", - "rabbit", - "shelter", - "shore", - "shower", - "soothe", - "stair", - "steady", - "sunlight", - "tangle", - "tease", - "treasure", - "uncle", - "begun", - "bliss", - "canvas", - "cheer", - "claw", - "clutch", - "commit", - "crimson", - "crystal", - "delight", - "doll", - "existence", - "express", - "fog", - "football", - "gay", - "goose", - "guard", - "hatred", - "illuminate", - "mass", - "math", - "mourn", - "rich", - "rough", - "skip", - "stir", - "student", - "style", - "support", - "thorn", - "tough", - "yard", - "yearn", - "yesterday", - "advice", - "appreciate", - "autumn", - "bank", - "beam", - "bowl", - "capture", - "carve", - "collapse", - "confusion", - "creation", - "dove", - "feather", - "girlfriend", - "glory", - "government", - "harsh", - "hop", - "inner", - "loser", - "moonlight", - "neighbor", - "neither", - "peach", - "pig", - "praise", - "screw", - "shield", - "shimmer", - "sneak", - "stab", - "subject", - "throughout", - "thrown", - "tower", - "twirl", - "wow", - "army", - "arrive", - "bathroom", - "bump", - "cease", - "cookie", - "couch", - "courage", - "dim", - "guilt", - "howl", - "hum", - "husband", - "insult", - "led", - "lunch", - "mock", - "mostly", - "natural", - "nearly", - "needle", - "nerd", - "peaceful", - "perfection", - "pile", - "price", - "remove", - "roam", - "sanctuary", - "serious", - "shiny", - "shook", - "sob", - "stolen", - "tap", - "vain", - "void", - "warrior", - "wrinkle", - "affection", - "apologize", - "blossom", - "bounce", - "bridge", - "cheap", - "crumble", - "decision", - "descend", - "desperately", - "dig", - "dot", - "flip", - "frighten", - "heartbeat", - "huge", - "lazy", - "lick", - "odd", - "opinion", - "process", - "puzzle", - "quietly", - "retreat", - "score", - "sentence", - "separate", - "situation", - "skill", - "soak", - "square", - "stray", - "taint", - "task", - "tide", - "underneath", - "veil", - "whistle", - "anywhere", - "bedroom", - "bid", - "bloody", - "burden", - "careful", - "compare", - "concern", - "curtain", - "decay", - "defeat", - "describe", - "double", - "dreamer", - "driver", - "dwell", - "evening", - "flare", - "flicker", - "grandma", - "guitar", - "harm", - "horrible", - "hungry", - "indeed", - "lace", - "melody", - "monkey", - "nation", - "object", - "obviously", - "rainbow", - "salt", - "scratch", - "shown", - "shy", - "stage", - "stun", - "third", - "tickle", - "useless", - "weakness", - "worship", - "worthless", - "afternoon", - "beard", - "boyfriend", - "bubble", - "busy", - "certain", - "chin", - "concrete", - "desk", - "diamond", - "doom", - "drawn", - "due", - "felicity", - "freeze", - "frost", - "garden", - "glide", - "harmony", - "hopefully", - "hunt", - "jealous", - "lightning", - "mama", - "mercy", - "peel", - "physical", - "position", - "pulse", - "punch", - "quit", - "rant", - "respond", - "salty", - "sane", - "satisfy", - "savior", - "sheep", - "slept", - "social", - "sport", - "tuck", - "utter", - "valley", - "wolf", - "aim", - "alas", - "alter", - "arrow", - "awaken", - "beaten", - "belief", - "brand", - "ceiling", - "cheese", - "clue", - "confidence", - "connection", - "daily", - "disguise", - "eager", - "erase", - "essence", - "everytime", - "expression", - "fan", - "flag", - "flirt", - "foul", - "fur", - "giggle", - "glorious", - "ignorance", - "law", - "lifeless", - "measure", - "mighty", - "muse", - "north", - "opposite", - "paradise", - "patience", - "patient", - "pencil", - "petal", - "plate", - "ponder", - "possibly", - "practice", - "slice", - "spell", - "stock", - "strife", - "strip", - "suffocate", - "suit", - "tender", - "tool", - "trade", - "velvet", - "verse", - "waist", - "witch", - "aunt", - "bench", - "bold", - "cap", - "certainly", - "click", - "companion", - "creator", - "dart", - "delicate", - "determine", - "dish", - "dragon", - "drama", - "drum", - "dude", - "everybody", - "feast", - "forehead", - "former", - "fright", - "fully", - "gas", - "hook", - "hurl", - "invite", - "juice", - "manage", - "moral", - "possess", - "raw", - "rebel", - "royal", - "scale", - "scary", - "several", - "slight", - "stubborn", - "swell", - "talent", - "tea", - "terrible", - "thread", - "torment", - "trickle", - "usually", - "vast", - "violence", - "weave", - "acid", - "agony", - "ashamed", - "awe", - "belly", - "blend", - "blush", - "character", - "cheat", - "common", - "company", - "coward", - "creak", - "danger", - "deadly", - "defense", - "define", - "depend", - "desperate", - "destination", - "dew", - "duck", - "dusty", - "embarrass", - "engine", - "example", - "explore", - "foe", - "freely", - "frustrate", - "generation", - "glove", - "guilty", - "health", - "hurry", - "idiot", - "impossible", - "inhale", - "jaw", - "kingdom", - "mention", - "mist", - "moan", - "mumble", - "mutter", - "observe", - "ode", - "pathetic", - "pattern", - "pie", - "prefer", - "puff", - "rape", - "rare", - "revenge", - "rude", - "scrape", - "spiral", - "squeeze", - "strain", - "sunset", - "suspend", - "sympathy", - "thigh", - "throne", - "total", - "unseen", - "weapon", - "weary" - }; } } diff --git a/src/mnemonics/old-word-list b/src/mnemonics/old-word-list new file mode 100644 index 000000000..a5184a9ce --- /dev/null +++ b/src/mnemonics/old-word-list @@ -0,0 +1,1626 @@ +like +just +love +know +never +want +time +out +there +make +look +eye +down +only +think +heart +back +then +into +about +more +away +still +them +take +thing +even +through +long +always +world +too +friend +tell +try +hand +thought +over +here +other +need +smile +again +much +cry +been +night +ever +little +said +end +some +those +around +mind +people +girl +leave +dream +left +turn +myself +give +nothing +really +off +before +something +find +walk +wish +good +once +place +ask +stop +keep +watch +seem +everything +wait +got +yet +made +remember +start +alone +run +hope +maybe +believe +body +hate +after +close +talk +stand +own +each +hurt +help +home +god +soul +new +many +two +inside +should +true +first +fear +mean +better +play +another +gone +change +use +wonder +someone +hair +cold +open +best +any +behind +happen +water +dark +laugh +stay +forever +name +work +show +sky +break +came +deep +door +put +black +together +upon +happy +such +great +white +matter +fill +past +please +burn +cause +enough +touch +moment +soon +voice +scream +anything +stare +sound +red +everyone +hide +kiss +truth +death +beautiful +mine +blood +broken +very +pass +next +forget +tree +wrong +air +mother +understand +lip +hit +wall +memory +sleep +free +high +realize +school +might +skin +sweet +perfect +blue +kill +breath +dance +against +fly +between +grow +strong +under +listen +bring +sometimes +speak +pull +person +become +family +begin +ground +real +small +father +sure +feet +rest +young +finally +land +across +today +different +guy +line +fire +reason +reach +second +slowly +write +eat +smell +mouth +step +learn +three +floor +promise +breathe +darkness +push +earth +guess +save +song +above +along +both +color +house +almost +sorry +anymore +brother +okay +dear +game +fade +already +apart +warm +beauty +heard +notice +question +shine +began +piece +whole +shadow +secret +street +within +finger +point +morning +whisper +child +moon +green +story +glass +kid +silence +since +soft +yourself +empty +shall +angel +answer +baby +bright +dad +path +worry +hour +drop +follow +power +war +half +flow +heaven +act +chance +fact +least +tired +children +near +quite +afraid +rise +sea +taste +window +cover +nice +trust +lot +sad +cool +force +peace +return +blind +easy +ready +roll +rose +drive +held +music +beneath +hang +mom +paint +emotion +quiet +clear +cloud +few +pretty +bird +outside +paper +picture +front +rock +simple +anyone +meant +reality +road +sense +waste +bit +leaf +thank +happiness +meet +men +smoke +truly +decide +self +age +book +form +alive +carry +escape +damn +instead +able +ice +minute +throw +catch +leg +ring +course +goodbye +lead +poem +sick +corner +desire +known +problem +remind +shoulder +suppose +toward +wave +drink +jump +woman +pretend +sister +week +human +joy +crack +grey +pray +surprise +dry +knee +less +search +bleed +caught +clean +embrace +future +king +son +sorrow +chest +hug +remain +sat +worth +blow +daddy +final +parent +tight +also +create +lonely +safe +cross +dress +evil +silent +bone +fate +perhaps +anger +class +scar +snow +tiny +tonight +continue +control +dog +edge +mirror +month +suddenly +comfort +given +loud +quickly +gaze +plan +rush +stone +town +battle +ignore +spirit +stood +stupid +yours +brown +build +dust +hey +kept +pay +phone +twist +although +ball +beyond +hidden +nose +taken +fail +float +pure +somehow +wash +wrap +angry +cheek +creature +forgotten +heat +rip +single +space +special +weak +whatever +yell +anyway +blame +job +choose +country +curse +drift +echo +figure +grew +laughter +neck +suffer +worse +yeah +disappear +foot +forward +knife +mess +somewhere +stomach +storm +beg +idea +lift +offer +breeze +field +five +often +simply +stuck +win +allow +confuse +enjoy +except +flower +seek +strength +calm +grin +gun +heavy +hill +large +ocean +shoe +sigh +straight +summer +tongue +accept +crazy +everyday +exist +grass +mistake +sent +shut +surround +table +ache +brain +destroy +heal +nature +shout +sign +stain +choice +doubt +glance +glow +mountain +queen +stranger +throat +tomorrow +city +either +fish +flame +rather +shape +spin +spread +ash +distance +finish +image +imagine +important +nobody +shatter +warmth +became +feed +flesh +funny +lust +shirt +trouble +yellow +attention +bare +bite +money +protect +amaze +appear +born +choke +completely +daughter +fresh +friendship +gentle +probably +six +deserve +expect +grab +middle +nightmare +river +thousand +weight +worst +wound +barely +bottle +cream +regret +relationship +stick +test +crush +endless +fault +itself +rule +spill +art +circle +join +kick +mask +master +passion +quick +raise +smooth +unless +wander +actually +broke +chair +deal +favorite +gift +note +number +sweat +box +chill +clothes +lady +mark +park +poor +sadness +tie +animal +belong +brush +consume +dawn +forest +innocent +pen +pride +stream +thick +clay +complete +count +draw +faith +press +silver +struggle +surface +taught +teach +wet +bless +chase +climb +enter +letter +melt +metal +movie +stretch +swing +vision +wife +beside +crash +forgot +guide +haunt +joke +knock +plant +pour +prove +reveal +steal +stuff +trip +wood +wrist +bother +bottom +crawl +crowd +fix +forgive +frown +grace +loose +lucky +party +release +surely +survive +teacher +gently +grip +speed +suicide +travel +treat +vein +written +cage +chain +conversation +date +enemy +however +interest +million +page +pink +proud +sway +themselves +winter +church +cruel +cup +demon +experience +freedom +pair +pop +purpose +respect +shoot +softly +state +strange +bar +birth +curl +dirt +excuse +lord +lovely +monster +order +pack +pants +pool +scene +seven +shame +slide +ugly +among +blade +blonde +closet +creek +deny +drug +eternity +gain +grade +handle +key +linger +pale +prepare +swallow +swim +tremble +wheel +won +cast +cigarette +claim +college +direction +dirty +gather +ghost +hundred +loss +lung +orange +present +swear +swirl +twice +wild +bitter +blanket +doctor +everywhere +flash +grown +knowledge +numb +pressure +radio +repeat +ruin +spend +unknown +buy +clock +devil +early +false +fantasy +pound +precious +refuse +sheet +teeth +welcome +add +ahead +block +bury +caress +content +depth +despite +distant +marry +purple +threw +whenever +bomb +dull +easily +grasp +hospital +innocence +normal +receive +reply +rhyme +shade +someday +sword +toe +visit +asleep +bought +center +consider +flat +hero +history +ink +insane +muscle +mystery +pocket +reflection +shove +silently +smart +soldier +spot +stress +train +type +view +whether +bus +energy +explain +holy +hunger +inch +magic +mix +noise +nowhere +prayer +presence +shock +snap +spider +study +thunder +trail +admit +agree +bag +bang +bound +butterfly +cute +exactly +explode +familiar +fold +further +pierce +reflect +scent +selfish +sharp +sink +spring +stumble +universe +weep +women +wonderful +action +ancient +attempt +avoid +birthday +branch +chocolate +core +depress +drunk +especially +focus +fruit +honest +match +palm +perfectly +pillow +pity +poison +roar +shift +slightly +thump +truck +tune +twenty +unable +wipe +wrote +coat +constant +dinner +drove +egg +eternal +flight +flood +frame +freak +gasp +glad +hollow +motion +peer +plastic +root +screen +season +sting +strike +team +unlike +victim +volume +warn +weird +attack +await +awake +built +charm +crave +despair +fought +grant +grief +horse +limit +message +ripple +sanity +scatter +serve +split +string +trick +annoy +blur +boat +brave +clearly +cling +connect +fist +forth +imagination +iron +jock +judge +lesson +milk +misery +nail +naked +ourselves +poet +possible +princess +sail +size +snake +society +stroke +torture +toss +trace +wise +bloom +bullet +cell +check +cost +darling +during +footstep +fragile +hallway +hardly +horizon +invisible +journey +midnight +mud +nod +pause +relax +shiver +sudden +value +youth +abuse +admire +blink +breast +bruise +constantly +couple +creep +curve +difference +dumb +emptiness +gotta +honor +plain +planet +recall +rub +ship +slam +soar +somebody +tightly +weather +adore +approach +bond +bread +burst +candle +coffee +cousin +crime +desert +flutter +frozen +grand +heel +hello +language +level +movement +pleasure +powerful +random +rhythm +settle +silly +slap +sort +spoken +steel +threaten +tumble +upset +aside +awkward +bee +blank +board +button +card +carefully +complain +crap +deeply +discover +drag +dread +effort +entire +fairy +giant +gotten +greet +illusion +jeans +leap +liquid +march +mend +nervous +nine +replace +rope +spine +stole +terror +accident +apple +balance +boom +childhood +collect +demand +depression +eventually +faint +glare +goal +group +honey +kitchen +laid +limb +machine +mere +mold +murder +nerve +painful +poetry +prince +rabbit +shelter +shore +shower +soothe +stair +steady +sunlight +tangle +tease +treasure +uncle +begun +bliss +canvas +cheer +claw +clutch +commit +crimson +crystal +delight +doll +existence +express +fog +football +gay +goose +guard +hatred +illuminate +mass +math +mourn +rich +rough +skip +stir +student +style +support +thorn +tough +yard +yearn +yesterday +advice +appreciate +autumn +bank +beam +bowl +capture +carve +collapse +confusion +creation +dove +feather +girlfriend +glory +government +harsh +hop +inner +loser +moonlight +neighbor +neither +peach +pig +praise +screw +shield +shimmer +sneak +stab +subject +throughout +thrown +tower +twirl +wow +army +arrive +bathroom +bump +cease +cookie +couch +courage +dim +guilt +howl +hum +husband +insult +led +lunch +mock +mostly +natural +nearly +needle +nerd +peaceful +perfection +pile +price +remove +roam +sanctuary +serious +shiny +shook +sob +stolen +tap +vain +void +warrior +wrinkle +affection +apologize +blossom +bounce +bridge +cheap +crumble +decision +descend +desperately +dig +dot +flip +frighten +heartbeat +huge +lazy +lick +odd +opinion +process +puzzle +quietly +retreat +score +sentence +separate +situation +skill +soak +square +stray +taint +task +tide +underneath +veil +whistle +anywhere +bedroom +bid +bloody +burden +careful +compare +concern +curtain +decay +defeat +describe +double +dreamer +driver +dwell +evening +flare +flicker +grandma +guitar +harm +horrible +hungry +indeed +lace +melody +monkey +nation +object +obviously +rainbow +salt +scratch +shown +shy +stage +stun +third +tickle +useless +weakness +worship +worthless +afternoon +beard +boyfriend +bubble +busy +certain +chin +concrete +desk +diamond +doom +drawn +due +felicity +freeze +frost +garden +glide +harmony +hopefully +hunt +jealous +lightning +mama +mercy +peel +physical +position +pulse +punch +quit +rant +respond +salty +sane +satisfy +savior +sheep +slept +social +sport +tuck +utter +valley +wolf +aim +alas +alter +arrow +awaken +beaten +belief +brand +ceiling +cheese +clue +confidence +connection +daily +disguise +eager +erase +essence +everytime +expression +fan +flag +flirt +foul +fur +giggle +glorious +ignorance +law +lifeless +measure +mighty +muse +north +opposite +paradise +patience +patient +pencil +petal +plate +ponder +possibly +practice +slice +spell +stock +strife +strip +suffocate +suit +tender +tool +trade +velvet +verse +waist +witch +aunt +bench +bold +cap +certainly +click +companion +creator +dart +delicate +determine +dish +dragon +drama +drum +dude +everybody +feast +forehead +former +fright +fully +gas +hook +hurl +invite +juice +manage +moral +possess +raw +rebel +royal +scale +scary +several +slight +stubborn +swell +talent +tea +terrible +thread +torment +trickle +usually +vast +violence +weave +acid +agony +ashamed +awe +belly +blend +blush +character +cheat +common +company +coward +creak +danger +deadly +defense +define +depend +desperate +destination +dew +duck +dusty +embarrass +engine +example +explore +foe +freely +frustrate +generation +glove +guilty +health +hurry +idiot +impossible +inhale +jaw +kingdom +mention +mist +moan +mumble +mutter +observe +ode +pathetic +pattern +pie +prefer +puff +rape +rare +revenge +rude +scrape +spiral +squeeze +strain +sunset +suspend +sympathy +thigh +throne +total +unseen +weapon +weary From 608572eeadbcee465313f024c5604c52379c9cc9 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 23 Sep 2014 20:48:15 +0530 Subject: [PATCH 03/26] Check for error after opening word list file --- old-word-list | 1626 ++++++++++++++++++++++++++++++ src/mnemonics/electrum-words.cpp | 17 +- 2 files changed, 1637 insertions(+), 6 deletions(-) create mode 100644 old-word-list diff --git a/old-word-list b/old-word-list new file mode 100644 index 000000000..a5184a9ce --- /dev/null +++ b/old-word-list @@ -0,0 +1,1626 @@ +like +just +love +know +never +want +time +out +there +make +look +eye +down +only +think +heart +back +then +into +about +more +away +still +them +take +thing +even +through +long +always +world +too +friend +tell +try +hand +thought +over +here +other +need +smile +again +much +cry +been +night +ever +little +said +end +some +those +around +mind +people +girl +leave +dream +left +turn +myself +give +nothing +really +off +before +something +find +walk +wish +good +once +place +ask +stop +keep +watch +seem +everything +wait +got +yet +made +remember +start +alone +run +hope +maybe +believe +body +hate +after +close +talk +stand +own +each +hurt +help +home +god +soul +new +many +two +inside +should +true +first +fear +mean +better +play +another +gone +change +use +wonder +someone +hair +cold +open +best +any +behind +happen +water +dark +laugh +stay +forever +name +work +show +sky +break +came +deep +door +put +black +together +upon +happy +such +great +white +matter +fill +past +please +burn +cause +enough +touch +moment +soon +voice +scream +anything +stare +sound +red +everyone +hide +kiss +truth +death +beautiful +mine +blood +broken +very +pass +next +forget +tree +wrong +air +mother +understand +lip +hit +wall +memory +sleep +free +high +realize +school +might +skin +sweet +perfect +blue +kill +breath +dance +against +fly +between +grow +strong +under +listen +bring +sometimes +speak +pull +person +become +family +begin +ground +real +small +father +sure +feet +rest +young +finally +land +across +today +different +guy +line +fire +reason +reach +second +slowly +write +eat +smell +mouth +step +learn +three +floor +promise +breathe +darkness +push +earth +guess +save +song +above +along +both +color +house +almost +sorry +anymore +brother +okay +dear +game +fade +already +apart +warm +beauty +heard +notice +question +shine +began +piece +whole +shadow +secret +street +within +finger +point +morning +whisper +child +moon +green +story +glass +kid +silence +since +soft +yourself +empty +shall +angel +answer +baby +bright +dad +path +worry +hour +drop +follow +power +war +half +flow +heaven +act +chance +fact +least +tired +children +near +quite +afraid +rise +sea +taste +window +cover +nice +trust +lot +sad +cool +force +peace +return +blind +easy +ready +roll +rose +drive +held +music +beneath +hang +mom +paint +emotion +quiet +clear +cloud +few +pretty +bird +outside +paper +picture +front +rock +simple +anyone +meant +reality +road +sense +waste +bit +leaf +thank +happiness +meet +men +smoke +truly +decide +self +age +book +form +alive +carry +escape +damn +instead +able +ice +minute +throw +catch +leg +ring +course +goodbye +lead +poem +sick +corner +desire +known +problem +remind +shoulder +suppose +toward +wave +drink +jump +woman +pretend +sister +week +human +joy +crack +grey +pray +surprise +dry +knee +less +search +bleed +caught +clean +embrace +future +king +son +sorrow +chest +hug +remain +sat +worth +blow +daddy +final +parent +tight +also +create +lonely +safe +cross +dress +evil +silent +bone +fate +perhaps +anger +class +scar +snow +tiny +tonight +continue +control +dog +edge +mirror +month +suddenly +comfort +given +loud +quickly +gaze +plan +rush +stone +town +battle +ignore +spirit +stood +stupid +yours +brown +build +dust +hey +kept +pay +phone +twist +although +ball +beyond +hidden +nose +taken +fail +float +pure +somehow +wash +wrap +angry +cheek +creature +forgotten +heat +rip +single +space +special +weak +whatever +yell +anyway +blame +job +choose +country +curse +drift +echo +figure +grew +laughter +neck +suffer +worse +yeah +disappear +foot +forward +knife +mess +somewhere +stomach +storm +beg +idea +lift +offer +breeze +field +five +often +simply +stuck +win +allow +confuse +enjoy +except +flower +seek +strength +calm +grin +gun +heavy +hill +large +ocean +shoe +sigh +straight +summer +tongue +accept +crazy +everyday +exist +grass +mistake +sent +shut +surround +table +ache +brain +destroy +heal +nature +shout +sign +stain +choice +doubt +glance +glow +mountain +queen +stranger +throat +tomorrow +city +either +fish +flame +rather +shape +spin +spread +ash +distance +finish +image +imagine +important +nobody +shatter +warmth +became +feed +flesh +funny +lust +shirt +trouble +yellow +attention +bare +bite +money +protect +amaze +appear +born +choke +completely +daughter +fresh +friendship +gentle +probably +six +deserve +expect +grab +middle +nightmare +river +thousand +weight +worst +wound +barely +bottle +cream +regret +relationship +stick +test +crush +endless +fault +itself +rule +spill +art +circle +join +kick +mask +master +passion +quick +raise +smooth +unless +wander +actually +broke +chair +deal +favorite +gift +note +number +sweat +box +chill +clothes +lady +mark +park +poor +sadness +tie +animal +belong +brush +consume +dawn +forest +innocent +pen +pride +stream +thick +clay +complete +count +draw +faith +press +silver +struggle +surface +taught +teach +wet +bless +chase +climb +enter +letter +melt +metal +movie +stretch +swing +vision +wife +beside +crash +forgot +guide +haunt +joke +knock +plant +pour +prove +reveal +steal +stuff +trip +wood +wrist +bother +bottom +crawl +crowd +fix +forgive +frown +grace +loose +lucky +party +release +surely +survive +teacher +gently +grip +speed +suicide +travel +treat +vein +written +cage +chain +conversation +date +enemy +however +interest +million +page +pink +proud +sway +themselves +winter +church +cruel +cup +demon +experience +freedom +pair +pop +purpose +respect +shoot +softly +state +strange +bar +birth +curl +dirt +excuse +lord +lovely +monster +order +pack +pants +pool +scene +seven +shame +slide +ugly +among +blade +blonde +closet +creek +deny +drug +eternity +gain +grade +handle +key +linger +pale +prepare +swallow +swim +tremble +wheel +won +cast +cigarette +claim +college +direction +dirty +gather +ghost +hundred +loss +lung +orange +present +swear +swirl +twice +wild +bitter +blanket +doctor +everywhere +flash +grown +knowledge +numb +pressure +radio +repeat +ruin +spend +unknown +buy +clock +devil +early +false +fantasy +pound +precious +refuse +sheet +teeth +welcome +add +ahead +block +bury +caress +content +depth +despite +distant +marry +purple +threw +whenever +bomb +dull +easily +grasp +hospital +innocence +normal +receive +reply +rhyme +shade +someday +sword +toe +visit +asleep +bought +center +consider +flat +hero +history +ink +insane +muscle +mystery +pocket +reflection +shove +silently +smart +soldier +spot +stress +train +type +view +whether +bus +energy +explain +holy +hunger +inch +magic +mix +noise +nowhere +prayer +presence +shock +snap +spider +study +thunder +trail +admit +agree +bag +bang +bound +butterfly +cute +exactly +explode +familiar +fold +further +pierce +reflect +scent +selfish +sharp +sink +spring +stumble +universe +weep +women +wonderful +action +ancient +attempt +avoid +birthday +branch +chocolate +core +depress +drunk +especially +focus +fruit +honest +match +palm +perfectly +pillow +pity +poison +roar +shift +slightly +thump +truck +tune +twenty +unable +wipe +wrote +coat +constant +dinner +drove +egg +eternal +flight +flood +frame +freak +gasp +glad +hollow +motion +peer +plastic +root +screen +season +sting +strike +team +unlike +victim +volume +warn +weird +attack +await +awake +built +charm +crave +despair +fought +grant +grief +horse +limit +message +ripple +sanity +scatter +serve +split +string +trick +annoy +blur +boat +brave +clearly +cling +connect +fist +forth +imagination +iron +jock +judge +lesson +milk +misery +nail +naked +ourselves +poet +possible +princess +sail +size +snake +society +stroke +torture +toss +trace +wise +bloom +bullet +cell +check +cost +darling +during +footstep +fragile +hallway +hardly +horizon +invisible +journey +midnight +mud +nod +pause +relax +shiver +sudden +value +youth +abuse +admire +blink +breast +bruise +constantly +couple +creep +curve +difference +dumb +emptiness +gotta +honor +plain +planet +recall +rub +ship +slam +soar +somebody +tightly +weather +adore +approach +bond +bread +burst +candle +coffee +cousin +crime +desert +flutter +frozen +grand +heel +hello +language +level +movement +pleasure +powerful +random +rhythm +settle +silly +slap +sort +spoken +steel +threaten +tumble +upset +aside +awkward +bee +blank +board +button +card +carefully +complain +crap +deeply +discover +drag +dread +effort +entire +fairy +giant +gotten +greet +illusion +jeans +leap +liquid +march +mend +nervous +nine +replace +rope +spine +stole +terror +accident +apple +balance +boom +childhood +collect +demand +depression +eventually +faint +glare +goal +group +honey +kitchen +laid +limb +machine +mere +mold +murder +nerve +painful +poetry +prince +rabbit +shelter +shore +shower +soothe +stair +steady +sunlight +tangle +tease +treasure +uncle +begun +bliss +canvas +cheer +claw +clutch +commit +crimson +crystal +delight +doll +existence +express +fog +football +gay +goose +guard +hatred +illuminate +mass +math +mourn +rich +rough +skip +stir +student +style +support +thorn +tough +yard +yearn +yesterday +advice +appreciate +autumn +bank +beam +bowl +capture +carve +collapse +confusion +creation +dove +feather +girlfriend +glory +government +harsh +hop +inner +loser +moonlight +neighbor +neither +peach +pig +praise +screw +shield +shimmer +sneak +stab +subject +throughout +thrown +tower +twirl +wow +army +arrive +bathroom +bump +cease +cookie +couch +courage +dim +guilt +howl +hum +husband +insult +led +lunch +mock +mostly +natural +nearly +needle +nerd +peaceful +perfection +pile +price +remove +roam +sanctuary +serious +shiny +shook +sob +stolen +tap +vain +void +warrior +wrinkle +affection +apologize +blossom +bounce +bridge +cheap +crumble +decision +descend +desperately +dig +dot +flip +frighten +heartbeat +huge +lazy +lick +odd +opinion +process +puzzle +quietly +retreat +score +sentence +separate +situation +skill +soak +square +stray +taint +task +tide +underneath +veil +whistle +anywhere +bedroom +bid +bloody +burden +careful +compare +concern +curtain +decay +defeat +describe +double +dreamer +driver +dwell +evening +flare +flicker +grandma +guitar +harm +horrible +hungry +indeed +lace +melody +monkey +nation +object +obviously +rainbow +salt +scratch +shown +shy +stage +stun +third +tickle +useless +weakness +worship +worthless +afternoon +beard +boyfriend +bubble +busy +certain +chin +concrete +desk +diamond +doom +drawn +due +felicity +freeze +frost +garden +glide +harmony +hopefully +hunt +jealous +lightning +mama +mercy +peel +physical +position +pulse +punch +quit +rant +respond +salty +sane +satisfy +savior +sheep +slept +social +sport +tuck +utter +valley +wolf +aim +alas +alter +arrow +awaken +beaten +belief +brand +ceiling +cheese +clue +confidence +connection +daily +disguise +eager +erase +essence +everytime +expression +fan +flag +flirt +foul +fur +giggle +glorious +ignorance +law +lifeless +measure +mighty +muse +north +opposite +paradise +patience +patient +pencil +petal +plate +ponder +possibly +practice +slice +spell +stock +strife +strip +suffocate +suit +tender +tool +trade +velvet +verse +waist +witch +aunt +bench +bold +cap +certainly +click +companion +creator +dart +delicate +determine +dish +dragon +drama +drum +dude +everybody +feast +forehead +former +fright +fully +gas +hook +hurl +invite +juice +manage +moral +possess +raw +rebel +royal +scale +scary +several +slight +stubborn +swell +talent +tea +terrible +thread +torment +trickle +usually +vast +violence +weave +acid +agony +ashamed +awe +belly +blend +blush +character +cheat +common +company +coward +creak +danger +deadly +defense +define +depend +desperate +destination +dew +duck +dusty +embarrass +engine +example +explore +foe +freely +frustrate +generation +glove +guilty +health +hurry +idiot +impossible +inhale +jaw +kingdom +mention +mist +moan +mumble +mutter +observe +ode +pathetic +pattern +pie +prefer +puff +rape +rare +revenge +rude +scrape +spiral +squeeze +strain +sunset +suspend +sympathy +thigh +throne +total +unseen +weapon +weary diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 250e37577..8ab618b16 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -41,16 +41,17 @@ #include "crypto/crypto.h" // for declaration of crypto::secret_key #include #include "mnemonics/electrum-words.h" - +#include namespace { int num_words = 0; std::map words_map; - vector words_array; + std::vector words_array; const std::string OLD_WORD_FILE = "old-word-list"; const std::string WORD_LIST_DIRECTORY = "wordlists"; + bool is_first_use() { return num_words == 0 ? true : false; @@ -58,12 +59,16 @@ namespace void create_data_structures(const std::string &word_file) { - ifstream input_stream; - input_stream.open(word_file, std::ifstream::in); + std::ifstream input_stream; + input_stream.open(word_file.c_str(), std::ifstream::in); + + if (!input_stream) + throw std::runtime_error(std::string("Word list file couldn't be opened.")); + std::string word; while (input_stream >> word) { - words_array.push(word); + words_array.push_back(word); words_map[word] = num_words; num_words++; } @@ -154,7 +159,7 @@ namespace crypto { if (is_first_use()) { - init(); + init("", true); } int n = num_words; From 19b142ceb8a0c41e4b131c4b480576c20564848a Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 23 Sep 2014 21:25:09 +0530 Subject: [PATCH 04/26] Duh. Had left word list in commit. --- old-word-list | 1626 ------------------------------------------------- 1 file changed, 1626 deletions(-) delete mode 100644 old-word-list diff --git a/old-word-list b/old-word-list deleted file mode 100644 index a5184a9ce..000000000 --- a/old-word-list +++ /dev/null @@ -1,1626 +0,0 @@ -like -just -love -know -never -want -time -out -there -make -look -eye -down -only -think -heart -back -then -into -about -more -away -still -them -take -thing -even -through -long -always -world -too -friend -tell -try -hand -thought -over -here -other -need -smile -again -much -cry -been -night -ever -little -said -end -some -those -around -mind -people -girl -leave -dream -left -turn -myself -give -nothing -really -off -before -something -find -walk -wish -good -once -place -ask -stop -keep -watch -seem -everything -wait -got -yet -made -remember -start -alone -run -hope -maybe -believe -body -hate -after -close -talk -stand -own -each -hurt -help -home -god -soul -new -many -two -inside -should -true -first -fear -mean -better -play -another -gone -change -use -wonder -someone -hair -cold -open -best -any -behind -happen -water -dark -laugh -stay -forever -name -work -show -sky -break -came -deep -door -put -black -together -upon -happy -such -great -white -matter -fill -past -please -burn -cause -enough -touch -moment -soon -voice -scream -anything -stare -sound -red -everyone -hide -kiss -truth -death -beautiful -mine -blood -broken -very -pass -next -forget -tree -wrong -air -mother -understand -lip -hit -wall -memory -sleep -free -high -realize -school -might -skin -sweet -perfect -blue -kill -breath -dance -against -fly -between -grow -strong -under -listen -bring -sometimes -speak -pull -person -become -family -begin -ground -real -small -father -sure -feet -rest -young -finally -land -across -today -different -guy -line -fire -reason -reach -second -slowly -write -eat -smell -mouth -step -learn -three -floor -promise -breathe -darkness -push -earth -guess -save -song -above -along -both -color -house -almost -sorry -anymore -brother -okay -dear -game -fade -already -apart -warm -beauty -heard -notice -question -shine -began -piece -whole -shadow -secret -street -within -finger -point -morning -whisper -child -moon -green -story -glass -kid -silence -since -soft -yourself -empty -shall -angel -answer -baby -bright -dad -path -worry -hour -drop -follow -power -war -half -flow -heaven -act -chance -fact -least -tired -children -near -quite -afraid -rise -sea -taste -window -cover -nice -trust -lot -sad -cool -force -peace -return -blind -easy -ready -roll -rose -drive -held -music -beneath -hang -mom -paint -emotion -quiet -clear -cloud -few -pretty -bird -outside -paper -picture -front -rock -simple -anyone -meant -reality -road -sense -waste -bit -leaf -thank -happiness -meet -men -smoke -truly -decide -self -age -book -form -alive -carry -escape -damn -instead -able -ice -minute -throw -catch -leg -ring -course -goodbye -lead -poem -sick -corner -desire -known -problem -remind -shoulder -suppose -toward -wave -drink -jump -woman -pretend -sister -week -human -joy -crack -grey -pray -surprise -dry -knee -less -search -bleed -caught -clean -embrace -future -king -son -sorrow -chest -hug -remain -sat -worth -blow -daddy -final -parent -tight -also -create -lonely -safe -cross -dress -evil -silent -bone -fate -perhaps -anger -class -scar -snow -tiny -tonight -continue -control -dog -edge -mirror -month -suddenly -comfort -given -loud -quickly -gaze -plan -rush -stone -town -battle -ignore -spirit -stood -stupid -yours -brown -build -dust -hey -kept -pay -phone -twist -although -ball -beyond -hidden -nose -taken -fail -float -pure -somehow -wash -wrap -angry -cheek -creature -forgotten -heat -rip -single -space -special -weak -whatever -yell -anyway -blame -job -choose -country -curse -drift -echo -figure -grew -laughter -neck -suffer -worse -yeah -disappear -foot -forward -knife -mess -somewhere -stomach -storm -beg -idea -lift -offer -breeze -field -five -often -simply -stuck -win -allow -confuse -enjoy -except -flower -seek -strength -calm -grin -gun -heavy -hill -large -ocean -shoe -sigh -straight -summer -tongue -accept -crazy -everyday -exist -grass -mistake -sent -shut -surround -table -ache -brain -destroy -heal -nature -shout -sign -stain -choice -doubt -glance -glow -mountain -queen -stranger -throat -tomorrow -city -either -fish -flame -rather -shape -spin -spread -ash -distance -finish -image -imagine -important -nobody -shatter -warmth -became -feed -flesh -funny -lust -shirt -trouble -yellow -attention -bare -bite -money -protect -amaze -appear -born -choke -completely -daughter -fresh -friendship -gentle -probably -six -deserve -expect -grab -middle -nightmare -river -thousand -weight -worst -wound -barely -bottle -cream -regret -relationship -stick -test -crush -endless -fault -itself -rule -spill -art -circle -join -kick -mask -master -passion -quick -raise -smooth -unless -wander -actually -broke -chair -deal -favorite -gift -note -number -sweat -box -chill -clothes -lady -mark -park -poor -sadness -tie -animal -belong -brush -consume -dawn -forest -innocent -pen -pride -stream -thick -clay -complete -count -draw -faith -press -silver -struggle -surface -taught -teach -wet -bless -chase -climb -enter -letter -melt -metal -movie -stretch -swing -vision -wife -beside -crash -forgot -guide -haunt -joke -knock -plant -pour -prove -reveal -steal -stuff -trip -wood -wrist -bother -bottom -crawl -crowd -fix -forgive -frown -grace -loose -lucky -party -release -surely -survive -teacher -gently -grip -speed -suicide -travel -treat -vein -written -cage -chain -conversation -date -enemy -however -interest -million -page -pink -proud -sway -themselves -winter -church -cruel -cup -demon -experience -freedom -pair -pop -purpose -respect -shoot -softly -state -strange -bar -birth -curl -dirt -excuse -lord -lovely -monster -order -pack -pants -pool -scene -seven -shame -slide -ugly -among -blade -blonde -closet -creek -deny -drug -eternity -gain -grade -handle -key -linger -pale -prepare -swallow -swim -tremble -wheel -won -cast -cigarette -claim -college -direction -dirty -gather -ghost -hundred -loss -lung -orange -present -swear -swirl -twice -wild -bitter -blanket -doctor -everywhere -flash -grown -knowledge -numb -pressure -radio -repeat -ruin -spend -unknown -buy -clock -devil -early -false -fantasy -pound -precious -refuse -sheet -teeth -welcome -add -ahead -block -bury -caress -content -depth -despite -distant -marry -purple -threw -whenever -bomb -dull -easily -grasp -hospital -innocence -normal -receive -reply -rhyme -shade -someday -sword -toe -visit -asleep -bought -center -consider -flat -hero -history -ink -insane -muscle -mystery -pocket -reflection -shove -silently -smart -soldier -spot -stress -train -type -view -whether -bus -energy -explain -holy -hunger -inch -magic -mix -noise -nowhere -prayer -presence -shock -snap -spider -study -thunder -trail -admit -agree -bag -bang -bound -butterfly -cute -exactly -explode -familiar -fold -further -pierce -reflect -scent -selfish -sharp -sink -spring -stumble -universe -weep -women -wonderful -action -ancient -attempt -avoid -birthday -branch -chocolate -core -depress -drunk -especially -focus -fruit -honest -match -palm -perfectly -pillow -pity -poison -roar -shift -slightly -thump -truck -tune -twenty -unable -wipe -wrote -coat -constant -dinner -drove -egg -eternal -flight -flood -frame -freak -gasp -glad -hollow -motion -peer -plastic -root -screen -season -sting -strike -team -unlike -victim -volume -warn -weird -attack -await -awake -built -charm -crave -despair -fought -grant -grief -horse -limit -message -ripple -sanity -scatter -serve -split -string -trick -annoy -blur -boat -brave -clearly -cling -connect -fist -forth -imagination -iron -jock -judge -lesson -milk -misery -nail -naked -ourselves -poet -possible -princess -sail -size -snake -society -stroke -torture -toss -trace -wise -bloom -bullet -cell -check -cost -darling -during -footstep -fragile -hallway -hardly -horizon -invisible -journey -midnight -mud -nod -pause -relax -shiver -sudden -value -youth -abuse -admire -blink -breast -bruise -constantly -couple -creep -curve -difference -dumb -emptiness -gotta -honor -plain -planet -recall -rub -ship -slam -soar -somebody -tightly -weather -adore -approach -bond -bread -burst -candle -coffee -cousin -crime -desert -flutter -frozen -grand -heel -hello -language -level -movement -pleasure -powerful -random -rhythm -settle -silly -slap -sort -spoken -steel -threaten -tumble -upset -aside -awkward -bee -blank -board -button -card -carefully -complain -crap -deeply -discover -drag -dread -effort -entire -fairy -giant -gotten -greet -illusion -jeans -leap -liquid -march -mend -nervous -nine -replace -rope -spine -stole -terror -accident -apple -balance -boom -childhood -collect -demand -depression -eventually -faint -glare -goal -group -honey -kitchen -laid -limb -machine -mere -mold -murder -nerve -painful -poetry -prince -rabbit -shelter -shore -shower -soothe -stair -steady -sunlight -tangle -tease -treasure -uncle -begun -bliss -canvas -cheer -claw -clutch -commit -crimson -crystal -delight -doll -existence -express -fog -football -gay -goose -guard -hatred -illuminate -mass -math -mourn -rich -rough -skip -stir -student -style -support -thorn -tough -yard -yearn -yesterday -advice -appreciate -autumn -bank -beam -bowl -capture -carve -collapse -confusion -creation -dove -feather -girlfriend -glory -government -harsh -hop -inner -loser -moonlight -neighbor -neither -peach -pig -praise -screw -shield -shimmer -sneak -stab -subject -throughout -thrown -tower -twirl -wow -army -arrive -bathroom -bump -cease -cookie -couch -courage -dim -guilt -howl -hum -husband -insult -led -lunch -mock -mostly -natural -nearly -needle -nerd -peaceful -perfection -pile -price -remove -roam -sanctuary -serious -shiny -shook -sob -stolen -tap -vain -void -warrior -wrinkle -affection -apologize -blossom -bounce -bridge -cheap -crumble -decision -descend -desperately -dig -dot -flip -frighten -heartbeat -huge -lazy -lick -odd -opinion -process -puzzle -quietly -retreat -score -sentence -separate -situation -skill -soak -square -stray -taint -task -tide -underneath -veil -whistle -anywhere -bedroom -bid -bloody -burden -careful -compare -concern -curtain -decay -defeat -describe -double -dreamer -driver -dwell -evening -flare -flicker -grandma -guitar -harm -horrible -hungry -indeed -lace -melody -monkey -nation -object -obviously -rainbow -salt -scratch -shown -shy -stage -stun -third -tickle -useless -weakness -worship -worthless -afternoon -beard -boyfriend -bubble -busy -certain -chin -concrete -desk -diamond -doom -drawn -due -felicity -freeze -frost -garden -glide -harmony -hopefully -hunt -jealous -lightning -mama -mercy -peel -physical -position -pulse -punch -quit -rant -respond -salty -sane -satisfy -savior -sheep -slept -social -sport -tuck -utter -valley -wolf -aim -alas -alter -arrow -awaken -beaten -belief -brand -ceiling -cheese -clue -confidence -connection -daily -disguise -eager -erase -essence -everytime -expression -fan -flag -flirt -foul -fur -giggle -glorious -ignorance -law -lifeless -measure -mighty -muse -north -opposite -paradise -patience -patient -pencil -petal -plate -ponder -possibly -practice -slice -spell -stock -strife -strip -suffocate -suit -tender -tool -trade -velvet -verse -waist -witch -aunt -bench -bold -cap -certainly -click -companion -creator -dart -delicate -determine -dish -dragon -drama -drum -dude -everybody -feast -forehead -former -fright -fully -gas -hook -hurl -invite -juice -manage -moral -possess -raw -rebel -royal -scale -scary -several -slight -stubborn -swell -talent -tea -terrible -thread -torment -trickle -usually -vast -violence -weave -acid -agony -ashamed -awe -belly -blend -blush -character -cheat -common -company -coward -creak -danger -deadly -defense -define -depend -desperate -destination -dew -duck -dusty -embarrass -engine -example -explore -foe -freely -frustrate -generation -glove -guilty -health -hurry -idiot -impossible -inhale -jaw -kingdom -mention -mist -moan -mumble -mutter -observe -ode -pathetic -pattern -pie -prefer -puff -rape -rare -revenge -rude -scrape -spiral -squeeze -strain -sunset -suspend -sympathy -thigh -throne -total -unseen -weapon -weary From 26ea53d4611bbb81cf12be61daa30c489a942bda Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Wed, 24 Sep 2014 22:44:36 +0530 Subject: [PATCH 05/26] Copies word lists directory to the location of the executable --- src/CMakeLists.txt | 7 ++++++- src/mnemonics/electrum-words.cpp | 7 ++++--- src/mnemonics/{ => wordlists}/old-word-list | 0 src/simplewallet/simplewallet.cpp | 1 + 4 files changed, 11 insertions(+), 4 deletions(-) rename src/mnemonics/{ => wordlists}/old-word-list (100%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 572515b5c..283a510b8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,7 +41,12 @@ file(GLOB_RECURSE SIMPLEWALLET simplewallet/*) file(GLOB_RECURSE CONN_TOOL connectivity_tool/*) file(GLOB_RECURSE WALLET wallet/*) file(GLOB_RECURSE MINER miner/*) -file(GLOB_RECURSE MNEMONICS mnemonics/*) +file(GLOB MNEMONICS mnemonics/*) + +file(GLOB NEW_WORD_LISTS mnemonics/wordlists/languages/*) +file(GLOB OLD_WORD_LIST mnemonics/wordlists/*) +file(COPY ${NEW_WORD_LISTS} DESTINATION "${CMAKE_SOURCE_DIR}/build/release/src/wordlists/languages") +file(COPY ${OLD_WORD_LIST} DESTINATION "${CMAKE_SOURCE_DIR}/build/release/src/wordlists") source_group(common FILES ${COMMON}) source_group(crypto FILES ${CRYPTO}) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 8ab618b16..3d79ecf6e 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -49,8 +49,9 @@ namespace std::map words_map; std::vector words_array; + const std::string WORD_LISTS_DIRECTORY = "wordlists"; + const std::string LANGUAGES_DIRECTORY = "languages"; const std::string OLD_WORD_FILE = "old-word-list"; - const std::string WORD_LIST_DIRECTORY = "wordlists"; bool is_first_use() { @@ -85,11 +86,11 @@ namespace crypto { if (old_word_list) { - create_data_structures(OLD_WORD_FILE); + create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE); } else { - create_data_structures(WORD_LIST_DIRECTORY + '/' + language); + create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language); } } diff --git a/src/mnemonics/old-word-list b/src/mnemonics/wordlists/old-word-list similarity index 100% rename from src/mnemonics/old-word-list rename to src/mnemonics/wordlists/old-word-list diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index e71655e4c..7c1246f32 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -47,6 +47,7 @@ #include "crypto/crypto.h" // for crypto::secret_key definition #include "mnemonics/electrum-words.h" + #if defined(WIN32) #include #endif From a1ac92e185c49c5db0956bf4506f910fac5024e7 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 25 Sep 2014 18:04:30 +0530 Subject: [PATCH 06/26] Accepts seed language choice from user. --- src/mnemonics/electrum-words.cpp | 19 +++++++++++++++- src/mnemonics/electrum-words.h | 3 ++- src/simplewallet/simplewallet.cpp | 38 +++++++++++++++++++++++++++++++ src/simplewallet/simplewallet.h | 1 + 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 3d79ecf6e..756306014 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -42,6 +42,7 @@ #include #include "mnemonics/electrum-words.h" #include +#include namespace { @@ -82,7 +83,7 @@ namespace crypto namespace ElectrumWords { - void init(const std::string &language, bool old_word_list = false) + void init(const std::string &language, bool old_word_list) { if (old_word_list) { @@ -188,6 +189,22 @@ namespace crypto return false; } + void get_language_list(std::vector &languages) + { + languages.clear(); + boost::filesystem::path languages_directory("wordlists/languages"); + if (!boost::filesystem::exists(languages_directory) || + !boost::filesystem::is_directory(languages_directory)) + { + throw std::runtime_error("Word list languages directory is missing."); + } + boost::filesystem::directory_iterator end; + for (boost::filesystem::directory_iterator it(languages_directory); it != end; it++) + { + languages.push_back(it->path().filename().string()); + } + } + } // namespace ElectrumWords } // namespace crypto diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 0ae01b6a6..4a3cdeb04 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -41,8 +41,9 @@ namespace crypto { namespace ElectrumWords { - void init(const std::string &language, bool old_word_list); + void init(const std::string &language, bool old_word_list=false); bool words_to_bytes(const std::string& words, crypto::secret_key& dst); bool bytes_to_words(const crypto::secret_key& src, std::string& words); + void get_language_list(std::vector &languages); } } diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 7c1246f32..c9f4d6ec8 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -430,6 +430,39 @@ bool simple_wallet::try_connect_to_daemon() return true; } +std::string simple_wallet::get_mnemonic_language() +{ + std::vector language_list; + std::string language_choice; + int language_number = -1; + crypto::ElectrumWords::get_language_list(language_list); + std::cout << "List of available languages for your wallet's seed:" << std::endl; + int ii; + std::vector::iterator it; + for (it = language_list.begin(), ii = 0; it != language_list.end(); it++, ii++) + { + std::cout << ii << " : " << *it << std::endl; + } + while (language_number < 0) + { + language_choice = command_line::input_line("Enter the number corresponding to the language of your choice: "); + try + { + language_number = std::stoi(language_choice); + if (!((language_number >= 0) && (static_cast(language_number) < language_list.size()))) + { + language_number = -1; + fail_msg_writer() << "Invalid language choice passed. Please try again.\n"; + } + } + catch (std::exception &e) + { + fail_msg_writer() << "Invalid language choice passed. Please try again.\n"; + } + } + return language_list[language_number]; +} + //---------------------------------------------------------------------------------------------------- bool simple_wallet::new_wallet(const string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key, bool recover, bool two_random, bool testnet) { @@ -456,6 +489,11 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; + std::string mnemonic_language = get_mnemonic_language(); + + std::cout << "(" << (mnemonic_language) << ")" << std::endl; + + crypto::ElectrumWords::init(mnemonic_language); crypto::ElectrumWords::bytes_to_words(recovery_val, electrum_words); std::string print_electrum = ""; diff --git a/src/simplewallet/simplewallet.h b/src/simplewallet/simplewallet.h index 17affd564..7a21f1cd2 100644 --- a/src/simplewallet/simplewallet.h +++ b/src/simplewallet/simplewallet.h @@ -92,6 +92,7 @@ namespace cryptonote uint64_t get_daemon_blockchain_height(std::string& err); bool try_connect_to_daemon(); bool ask_wallet_create_if_needed(); + std::string get_mnemonic_language(); //----------------- i_wallet2_callback --------------------- virtual void on_new_block(uint64_t height, const cryptonote::block& block); From 3c0e87e1b604a846bf6a16c9eb5b45a05548541a Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Fri, 26 Sep 2014 23:34:35 +0530 Subject: [PATCH 07/26] Supports wallet restoration --- src/mnemonics/electrum-words.cpp | 56 ++++++++++++++++++++++--------- src/simplewallet/simplewallet.cpp | 10 +++--- 2 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 756306014..251503d9b 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -54,13 +54,15 @@ namespace const std::string LANGUAGES_DIRECTORY = "languages"; const std::string OLD_WORD_FILE = "old-word-list"; - bool is_first_use() + bool is_uninitialized() { return num_words == 0 ? true : false; } void create_data_structures(const std::string &word_file) { + words_array.clear(); + words_map.clear(); std::ifstream input_stream; input_stream.open(word_file.c_str(), std::ifstream::in); @@ -76,6 +78,18 @@ namespace } input_stream.close(); } + + bool word_list_file_match(const std::vector &wlist) + { + for (std::vector::const_iterator it = wlist.begin(); it != wlist.end(); it++) + { + if (words_map.count(*it) == 0) + { + return false; + } + } + return true; + } } namespace crypto @@ -93,6 +107,11 @@ namespace crypto { create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language); } + if (num_words == 0) + { + throw std::runtime_error(std::string("Word list file is corrupt: ") + + old_word_list ? OLD_WORD_FILE : (LANGUAGES_DIRECTORY + '/' + language)); + } } /* convert words to bytes, 3 words -> 4 bytes @@ -104,16 +123,29 @@ namespace crypto */ bool words_to_bytes(const std::string& words, crypto::secret_key& dst) { - if (is_first_use()) - { - init("", true); - } - int n = num_words; - std::vector wlist; boost::split(wlist, words, boost::is_any_of(" ")); + std::vector languages; + + std::vector::iterator it; + get_language_list(languages); + for (it = languages.begin(); it != languages.end() && + !word_list_file_match(wlist); it++) + { + init(*it); + } + if (it == languages.end()) + { + init("", true); + if (!word_list_file_match(wlist)) + { + return false; + } + } + int n = num_words; + // error on non-compliant word list if (wlist.size() != 12 && wlist.size() != 24) return false; @@ -122,14 +154,6 @@ namespace crypto uint32_t val; uint32_t w1, w2, w3; - // verify all three words exist in the word list - if (words_map.count(wlist[i*3]) == 0 || - words_map.count(wlist[i*3 + 1]) == 0 || - words_map.count(wlist[i*3 + 2]) == 0) - { - return false; - } - w1 = words_map.at(wlist[i*3]); w2 = words_map.at(wlist[i*3 + 1]); w3 = words_map.at(wlist[i*3 + 2]); @@ -159,7 +183,7 @@ namespace crypto */ bool bytes_to_words(const crypto::secret_key& src, std::string& words) { - if (is_first_use()) + if (is_uninitialized()) { init("", true); } diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index c9f4d6ec8..b368da01a 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -489,11 +489,13 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; - std::string mnemonic_language = get_mnemonic_language(); - std::cout << "(" << (mnemonic_language) << ")" << std::endl; - - crypto::ElectrumWords::init(mnemonic_language); + if (m_restore_deterministic_wallet) + { + // Ask for language only if it not a wallet restore. + std::string mnemonic_language = get_mnemonic_language(); + crypto::ElectrumWords::init(mnemonic_language); + } crypto::ElectrumWords::bytes_to_words(recovery_val, electrum_words); std::string print_electrum = ""; From 262e155bab392783b4b282e3abc2d0934e196b56 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sat, 27 Sep 2014 00:55:21 +0530 Subject: [PATCH 08/26] Throw error when word list file is empty and quick bug fix --- src/mnemonics/electrum-words.cpp | 14 ++++++++---- src/simplewallet/simplewallet.cpp | 38 +++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 251503d9b..3ef7c5efc 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -63,6 +63,7 @@ namespace { words_array.clear(); words_map.clear(); + num_words = 0; std::ifstream input_stream; input_stream.open(word_file.c_str(), std::ifstream::in); @@ -109,8 +110,8 @@ namespace crypto } if (num_words == 0) { - throw std::runtime_error(std::string("Word list file is corrupt: ") + - old_word_list ? OLD_WORD_FILE : (LANGUAGES_DIRECTORY + '/' + language)); + throw std::runtime_error(std::string("Word list file is empty: ") + + (old_word_list ? OLD_WORD_FILE : (LANGUAGES_DIRECTORY + '/' + language))); } } @@ -128,13 +129,16 @@ namespace crypto boost::split(wlist, words, boost::is_any_of(" ")); std::vector languages; + get_language_list(languages); std::vector::iterator it; - get_language_list(languages); - for (it = languages.begin(); it != languages.end() && - !word_list_file_match(wlist); it++) + for (it = languages.begin(); it != languages.end(); it++) { init(*it); + if (word_list_file_match(wlist)) + { + break; + } } if (it == languages.end()) { diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index b368da01a..a222e7827 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -46,7 +46,7 @@ #include "version.h" #include "crypto/crypto.h" // for crypto::secret_key definition #include "mnemonics/electrum-words.h" - +#include #if defined(WIN32) #include @@ -380,10 +380,18 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm) } } - if (!crypto::ElectrumWords::words_to_bytes(m_electrum_seed, m_recovery_key)) + try { - fail_msg_writer() << "electrum-style word list failed verification"; - return false; + if (!crypto::ElectrumWords::words_to_bytes(m_electrum_seed, m_recovery_key)) + { + fail_msg_writer() << "electrum-style word list failed verification"; + return false; + } + } + catch (std::runtime_error &e) + { + fail_msg_writer() << e.what() << std::endl; + return false; } } bool r = new_wallet(m_wallet_file, pwd_container.password(), m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, testnet); @@ -490,13 +498,29 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; - if (m_restore_deterministic_wallet) + if (!m_restore_deterministic_wallet) { // Ask for language only if it not a wallet restore. std::string mnemonic_language = get_mnemonic_language(); - crypto::ElectrumWords::init(mnemonic_language); + try + { + crypto::ElectrumWords::init(mnemonic_language); + } + catch (std::runtime_error &e) + { + fail_msg_writer() << e.what() << std::endl; + return false; + } + } + try + { + crypto::ElectrumWords::bytes_to_words(recovery_val, electrum_words); + } + catch (std::runtime_error &e) + { + fail_msg_writer() << e.what() << std::endl; + return false; } - crypto::ElectrumWords::bytes_to_words(recovery_val, electrum_words); std::string print_electrum = ""; From 91aa25e055b918d9f9525f67d93c3f5a05f53024 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sat, 27 Sep 2014 17:04:23 +0530 Subject: [PATCH 09/26] Informs about old style mnemonics from older wallet and provides a new one. CMakeLists.txt update. --- src/CMakeLists.txt | 5 +- src/mnemonics/electrum-words.cpp | 12 + src/mnemonics/electrum-words.h | 1 + src/mnemonics/wordlists/languages/english | 2048 ++++++++++++++++++ src/mnemonics/wordlists/languages/japanese | 2048 ++++++++++++++++++ src/mnemonics/wordlists/languages/portuguese | 1626 ++++++++++++++ src/mnemonics/wordlists/languages/spanish | 2048 ++++++++++++++++++ src/simplewallet/simplewallet.cpp | 10 +- 8 files changed, 7792 insertions(+), 6 deletions(-) create mode 100644 src/mnemonics/wordlists/languages/english create mode 100644 src/mnemonics/wordlists/languages/japanese create mode 100644 src/mnemonics/wordlists/languages/portuguese create mode 100644 src/mnemonics/wordlists/languages/spanish diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 283a510b8..8138df3f3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,10 +43,7 @@ file(GLOB_RECURSE WALLET wallet/*) file(GLOB_RECURSE MINER miner/*) file(GLOB MNEMONICS mnemonics/*) -file(GLOB NEW_WORD_LISTS mnemonics/wordlists/languages/*) -file(GLOB OLD_WORD_LIST mnemonics/wordlists/*) -file(COPY ${NEW_WORD_LISTS} DESTINATION "${CMAKE_SOURCE_DIR}/build/release/src/wordlists/languages") -file(COPY ${OLD_WORD_LIST} DESTINATION "${CMAKE_SOURCE_DIR}/build/release/src/wordlists") +file(COPY "mnemonics/wordlists/" DESTINATION "${CMAKE_SOURCE_DIR}/build/release/src/wordlists") source_group(common FILES ${COMMON}) source_group(crypto FILES ${CRYPTO}) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 3ef7c5efc..897ab34e7 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -50,6 +50,8 @@ namespace std::map words_map; std::vector words_array; + bool is_old_style_mnemonics = false; + const std::string WORD_LISTS_DIRECTORY = "wordlists"; const std::string LANGUAGES_DIRECTORY = "languages"; const std::string OLD_WORD_FILE = "old-word-list"; @@ -103,10 +105,12 @@ namespace crypto if (old_word_list) { create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE); + is_old_style_mnemonics = true; } else { create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language); + is_old_style_mnemonics = false; } if (num_words == 0) { @@ -115,6 +119,14 @@ namespace crypto } } + bool get_is_old_style_mnemonics() + { + if (is_uninitialized()) + { + throw std::runtime_error("ElectrumWords hasn't been initialized with a word list yet."); + } + return is_old_style_mnemonics; + } /* convert words to bytes, 3 words -> 4 bytes * returns: * false if not a multiple of 3 words, or if a words is not in the diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 4a3cdeb04..73db652d7 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -45,5 +45,6 @@ namespace crypto bool words_to_bytes(const std::string& words, crypto::secret_key& dst); bool bytes_to_words(const crypto::secret_key& src, std::string& words); void get_language_list(std::vector &languages); + bool get_is_old_style_mnemonics(); } } diff --git a/src/mnemonics/wordlists/languages/english b/src/mnemonics/wordlists/languages/english new file mode 100644 index 000000000..942040ed5 --- /dev/null +++ b/src/mnemonics/wordlists/languages/english @@ -0,0 +1,2048 @@ +abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo diff --git a/src/mnemonics/wordlists/languages/japanese b/src/mnemonics/wordlists/languages/japanese new file mode 100644 index 000000000..aa7673fce --- /dev/null +++ b/src/mnemonics/wordlists/languages/japanese @@ -0,0 +1,2048 @@ +あい +あいこくしん +あう +あお +あおぞら +あか +あかちゃん +あき +あきる +あく +あさ +あさひ +あし +あずき +あせ +あそぶ +あたる +あつい +あな +あに +あね +あひる +あまい +あみ +あめ +あめりか +あやまる +あゆむ +あらいぐま +あらし +あり +ある +あれ +あわ +あんこ +いう +いえ +いおん +いか +いがい +いかいよう +いけ +いけん +いこく +いこつ +いさん +いし +いじゅう +いす +いせい +いせえび +いせかい +いせき +いそうろう +いそがしい +いたりあ +いてざ +いてん +いと +いない +いなか +いぬ +いね +いのち +いのる +いはつ +いはん +いびき +いひん +いふく +いへん +いほう +いま +いみ +いみん +いも +いもうと +いもたれ +いもり +いや +いやす +いよかん +いよく +いらい +いらすと +いりぐち +いりょう +いりょうひ +いる +いれい +いれもの +いれる +いろ +いろえんぴつ +いわ +いわう +いわかん +いんげんまめ +うえ +うおざ +うかぶ +うきわ +うく +うくらいな +うくれれ +うけつぐ +うけつけ +うける +うごく +うこん +うさぎ +うし +うしなう +うしろ +うしろがみ +うすい +うすぎ +うせつ +うそ +うた +うちあわせ +うちがわ +うちき +うつ +うなぎ +うなじ +うに +うねる +うのう +うぶげ +うぶごえ +うま +うまれる +うみ +うむ +うめ +うめる +うもう +うやまう +うよく +うら +うらない +うる +うるさい +うれしい +うろこ +うわき +うわさ +えい +えいえん +えいが +えいぎょう +えいご +えおり +えき +えきたい +えくせる +えさ +えしゃく +えすて +えつらん +えと +えのぐ +えび +えほうまき +えほん +えま +えまき +えもじ +えもの +えらい +えらぶ +えり +えりあ +える +えん +えんえん +おきる +おく +おけ +おこる +おしえる +おやゆび +おらんだ +かあつ +かい +かう +かお +かがし +かき +かく +かこ +かさ +かす +かち +かつ +かなざわし +かに +かね +かのう +かほう +かほご +かまぼこ +かみ +かむ +かめれおん +かも +かゆい +からい +かるい +かろう +かわ +かわら +きあい +きあつ +きいろ +ぎいん +きうい +きうん +きえる +きおう +きおく +きおち +きおん +きか +きかい +きかく +きかん +きかんしゃ +きぎ +ききて +きく +きくばり +きくらげ +きけん +きけんせい +きこう +きこえる +きこく +きさい +きさく +きさま +きさらぎ +きし +きしゅ +きす +きすう +きせい +きせき +きせつ +きそ +きそう +きそく +きぞく +ぎそく +きぞん +きた +きたえる +きち +きちょう +きつえん +きつつき +きつね +きてい +きどう +きどく +きない +きなが +きぬ +きぬごし +きねん +きのう +きはく +きびしい +きひん +きふ +ぎふ +きふく +ぎぼ +きほう +きぼう +きほん +きまる +きみ +きみつ +ぎむ +きむずかしい +きめ +きめる +きもだめし +きもち +きやく +きよう +きらい +きらく +きり +きる +きれい +きれつ +きろく +ぎろん +きわめる +ぐあい +くい +くいず +くうかん +くうき +くうぐん +くうこう +くうそう +くうふく +くうぼ +くかん +くき +くきょう +くげん +ぐこう +くさ +くさい +くさき +くさばな +くさる +くし +くしゃみ +くしょう +くすのき +くすり +くすりゆび +くせ +くせげ +くせん +くたびれる +くち +くちこみ +くちさき +くつ +くつした +くつろぐ +くとうてん +くどく +くなん +くに +くねくね +くのう +くふう +くま +くみあわせ +くみたてる +くむ +くめる +くやくしょ +くらす +くり +くれる +くろ +くろう +くわしい +ぐんじょ +けあな +けいけん +けいこ +けいさい +けいさつ +げいのうじん +けいれき +けいれつ +けいれん +けいろ +けおとす +けおりもの +けが +げき +げきか +げきげん +げきだん +げきちん +げきど +げきは +げきやく +げこう +げこくじょう +けさ +げざい +けさき +げざん +けしき +けしごむ +けしょう +けす +げすと +けた +げた +けたば +けち +けちゃっぷ +けちらす +けつ +けつあつ +けつい +けつえき +けっこん +けつじょ +けってい +けつまつ +げつようび +げつれい +けつろん +げどく +けとばす +けとる +けなげ +けなす +けなみ +けぬき +げねつ +けねん +けはい +げひん +けぶかい +げぼく +けまり +けみかる +けむし +けむり +けもの +けらい +ける +げろ +けろけろ +けわしい +けんい +けんえつ +けんお +けんか +げんき +けんきゅう +けんきょ +けんけい +けんけつ +けんげん +けんこう +けんさ +けんさく +けんしゅう +けんしゅつ +けんしん +けんすう +けんそう +げんそう +けんそん +げんち +けんちく +けんてい +げんてい +けんとう +けんない +けんにん +げんぶつ +けんま +けんみん +けんめい +けんらん +けんり +けんりつ +こあくま +こい +ごい +こいびと +こうい +こうえん +こうか +こうかい +こうかん +こうさい +こうさん +こうしん +こうず +こうすい +こうせん +こうそう +こうそく +こうたい +こうちゃ +こうつう +こうてい +こうとうぶ +こうない +こうはい +こうはん +こうもく +こえ +こえる +こおり +ごがつ +こかん +こく +こくご +こくない +こくはく +こけい +こける +ここ +こころ +ごさ +こさめ +こし +こしつ +こす +こすう +こせい +こせき +こぜん +こそだて +こたい +こたえる +こたつ +こちょう +こっか +こつこつ +こつばん +こつぶ +こてい +こてん +こと +ことがら +ことし +こなごな +こねこね +このまま +このみ +このよ +こはん +ごはん +ごび +こひつじ +こふう +こふん +こぼれる +ごま +こまかい +こまつし +こまつな +こまる +こむ +こむぎこ +こめ +こもじ +こもち +こもの +こもん +こや +こやく +こやま +こゆう +こゆび +こよい +こよう +こりる +こる +これくしょん +ころっけ +こわもて +こわれる +こん +こんいん +こんかい +こんき +こんしゅう +こんしゅん +こんすい +こんだて +こんだん +こんとん +こんなん +こんびに +こんぽう +こんぽん +こんまけ +こんや +こんやく +こんれい +こんわく +さいかい +さいがい +さいきん +さいご +さいこん +さいしょ +さうな +さお +さかいし +さかな +さかみち +さき +さく +さくし +さくじょ +さくひん +さくら +さけ +さこく +さこつ +さたん +さつえい +さっか +さっきょく +さつじん +さつたば +さつまいも +さてい +さといも +さとう +さとおや +さとる +さのう +さば +さばく +さべつ +さほう +さほど +さます +さみしい +さみだれ +さむけ +さめ +さめる +さやえんどう +さゆう +さよう +さよく +さら +さらだ +さる +さわやか +さわる +さんいん +さんか +さんきゃく +さんこう +さんさい +さんざん +さんすう +さんせい +さんそ +さんそん +さんち +さんちょう +さんま +さんみ +さんらん +しあい +しあげ +しあさって +しあわせ +しいく +しいん +しうち +しえい +しお +しおけ +しか +しかい +しかく +じかん +した +したぎ +したて +したみ +しちょう +しちょうそん +しちりん +じつじ +してい +してき +してつ +してん +しとう +じどう +しなぎれ +しなもの +しなん +しねま +しねん +しのぐ +しのぶ +しはい +しばかり +しはつ +じはつ +しはらい +しはん +しひょう +じふ +しふく +じぶん +しへい +しほう +しほん +しま +しまう +しまる +しみ +じみ +しみん +じむ +しむける +しめい +しめる +しもん +しゃいん +しゃうん +しゃおん +しゃかい +じゃがいも +しやくしょ +しゃくほう +しゃけん +しゃこ +しゃこう +しゃざい +しゃしん +しゃせん +しゃそう +しゃたい +しゃたく +しゃちょう +しゃっきん +じゃま +じゃり +しゃりょう +しゃりん +しゃれい +しゅうえん +しゅうかい +しゅうきん +しゅうけい +しゅうりょう +しゅらば +しょうか +しょうかい +しょうきん +しょうじき +しょくざい +しょくたく +しょっけん +しょどう +しょもつ +しん +しんか +しんこう +しんせいじ +しんちく +しんりん +すあげ +すあし +すあな +ずあん +すいか +すいとう +すう +すうがく +すうじつ +すうせん +すおどり +すき +すきま +すく +すくう +すくない +すける +すこし +ずさん +すし +すずしい +すすめる +すそ +ずっしり +ずっと +すで +すてき +すてる +すな +すなっく +すなっぷ +すね +すねる +すのこ +すはだ +すばらしい +ずひょう +ずぶぬれ +すぶり +すふれ +すべて +すべる +ずほう +すぼん +すまい +すみ +すむ +すめし +すもう +すやき +すらいす +すらいど +すらすら +すり +する +するめ +すれちがう +すろっと +すわる +すんぜん +すんぽう +せあぶら +せいか +せいかい +せいかつ +せおう +せかい +せかいかん +せかいし +せかいじゅう +せき +せきにん +せきむ +せきゆ +せきらんうん +せけん +せこう +せすじ +せたい +せたけ +せっかい +せっかく +せっき +せっきゃく +せっきょく +せっきん +ぜっく +せっけん +せっこつ +せっさたくま +せつぞく +せつだん +せつでん +せっぱん +せつび +せつぶん +せつめい +せつりつ +せと +せなか +せのび +せはば +せぼね +せまい +せまる +せみ +せめる +せもたれ +せりふ +せわ +せん +ぜんあく +せんい +せんえい +せんか +せんきょ +せんく +せんけつ +せんげん +ぜんご +せんさい +せんし +せんしゅ +せんす +せんすい +せんせい +せんぞ +せんそう +せんたく +せんち +せんちゃ +せんちゃく +せんちょう +せんてい +せんとう +せんぬき +せんねん +ぜんぶ +せんぷうき +せんぷく +ぜんぽう +せんむ +せんめい +せんめんじょ +せんもん +せんやく +せんゆう +せんよう +ぜんら +ぜんりゃく +せんりょく +せんれい +せんろ +そあく +そいとげる +そいね +そう +ぞう +そうがんきょう +そうき +そうご +そうなん +そうび +そうひょう +そうめん +そうり +そうりょ +そえもの +そえん +そかい +そがい +そぐ +そげき +そこう +そこそこ +そざい +そし +そしな +そせい +そせん +そそぐ +そだてる +そつう +そつえん +そっかん +そつぎょう +そっけつ +そっこう +そっせん +そっと +そで +そと +そとがわ +そとづら +そなえる +そなた +そば +そふ +そふぼ +そぼ +そぼく +そぼろ +そまつ +そまる +そむく +そむりえ +そめる +そもそも +そよかぜ +そら +そらまめ +そり +そる +そろう +そんかい +そんけい +そんざい +そんしつ +そんしょう +そんぞく +そんちょう +ぞんび +ぞんぶん +そんみん +たあい +たいいん +たいうん +たいえき +たいおう +だいおう +たいか +たいかい +たいき +たいきけん +たいぐう +たいくつ +たいけい +たいけつ +たいけん +たいこ +たいこう +たいさ +たいさん +たいしゅつ +だいじょうぶ +たいしょく +だいず +だいすき +たいせい +たいせつ +たいせん +たいそう +たいちょう +だいちょう +たいとう +たいない +たいねつ +たいのう +たいは +たいはん +たいひ +たいふう +たいへん +たいほ +たいまつばな +たいまん +たいみんぐ +たいむ +たいめん +たいやき +たいやく +たいよう +たいら +たいりょう +たいりょく +たいる +たいわ +たいわん +たうえ +たえる +たおす +たおる +たかい +たかね +たき +たきび +たくさん +たけ +たこ +たこく +たこやき +たさい +ださい +たしざん +たす +たすける +たそがれ +たたかう +たたく +たちば +たちばな +たつ +だっかい +だっきゃく +だっこ +だっしめん +だっしゅつ +だったい +たて +たてる +たとえる +たな +たにん +たぬき +たね +たのしみ +たはつ +たび +たぶん +たべる +たぼう +たほうめん +たま +たまご +たまる +だむる +ためいき +ためす +ためる +たもつ +たやすい +たよる +たら +たらす +たりきほんがん +たりょう +たりる +たる +たると +たれる +たれんと +たろっと +たわむれる +たん +だんあつ +たんい +たんおん +たんか +たんき +たんけん +たんご +たんさく +たんさん +たんし +たんしゅく +たんじょうび +だんせい +たんそく +たんたい +たんち +だんち +たんちょう +たんてい +たんてき +たんとう +だんな +たんにん +だんねつ +たんのう +たんぴん +たんまつ +たんめい +だんれつ +だんろ +だんわ +ちあい +ちあん +ちい +ちいき +ちいさい +ちえ +ちえん +ちか +ちかい +ちきゅう +ちきん +ちけい +ちけいず +ちけん +ちこく +ちさい +ちしき +ちしりょう +ちず +ちせい +ちそう +ちたい +ちたん +ちちおや +ちつじょ +ちてき +ちてん +ちぬき +ちぬり +ちのう +ちひょう +ちへいせん +ちほう +ちまた +ちみつ +ちみどろ +ちめいど +ちゅうい +ちゅうおう +ちゅうおうく +ちゅうがっこう +ちゅうごく +ちゆりょく +ちょうさ +ちょうし +ちらし +ちらみ +ちり +ちりがみ +ちる +ちるど +ちわわ +ちんたい +ちんもく +ついか +つうか +つうじょう +つうじる +つうはん +つうわ +つえ +つかう +つかれる +つき +つく +つくね +つくる +つけね +つける +つごう +つた +つたえる +つち +つつじ +つとめる +つな +つながる +つなみ +つねづね +つの +つのる +つば +つぶ +つぶす +つぼ +つま +つまらない +つまる +つみ +つみき +つむ +つめたい +つもる +つや +つよい +つり +つるぼ +つるみく +つわもの +つわり +てあし +てあて +てあみ +ていか +ていき +ていけい +ていけつ +ていけつあつ +ていこく +ていさつ +ていし +ていしゃ +ていせい +ていたい +ていど +ていねい +ていひょう +ていへん +ていぼう +てうち +ておくれ +てき +てくび +てこ +てさぎょう +てさげ +でし +てすり +てそう +てちがい +てちょう +てつがく +てつづき +てつや +でぬかえ +てぬき +てぬぐい +てのひら +てはい +てふだ +てほどき +てほん +てま +てまえ +てまきずし +てみじか +てみやげ +てら +てらす +でる +てれび +てろ +てわけ +てわたし +でんあつ +てんい +てんいん +てんかい +てんき +てんぐ +てんけん +でんげん +てんごく +てんさい +てんすう +でんち +てんてき +てんとう +てんない +てんぷ +てんぷら +てんぼうだい +てんめつ +てんらく +てんらんかい +でんりゅう +でんりょく +でんわ +どあ +どあい +といれ +とうむぎ +とおい +とおす +とかい +とかす +ときおり +ときどき +とくい +とくてい +とくてん +とくべつ +とけい +とける +とさか +とし +としょかん +とそう +とたん +とち +とちゅう +とつぜん +とつにゅう +ととのえる +とない +となえる +となり +とのさま +とばす +とぶ +とほ +とほう +どま +とまる +とら +とり +とる +とんかつ +ない +ないか +ないかく +ないこう +ないしょ +ないす +ないせん +ないそう +ないぞう +なおす +なく +なこうど +なさけ +なし +なす +なぜ +なぞ +なたでここ +なつ +なっとう +なつやすみ +ななおし +なにごと +なにもの +なにわ +なは +なび +なふだ +なべ +なまいき +なまえ +なまみ +なみ +なみだ +なめらか +なめる +なやむ +ならぶ +なる +なれる +なわ +なわとび +なわばり +にあう +にいがた +にうけ +におい +にかい +にがて +にきび +にく +にくしみ +にくまん +にげる +にさんかたんそ +にし +にしき +にす +にせもの +にちじ +にちじょう +にちようび +にっか +にっき +にっけい +にっこう +にっさん +にっしょく +にっすう +にっせき +にってい +になう +にほん +にまめ +にもつ +にやり +にゅういん +にゅうか +にゅうし +にゅうしゃ +にゅうだん +にゅうぶ +にら +にりんしゃ +にる +にわ +にわとり +にんい +にんか +にんき +にんげん +にんしき +にんしょう +にんしん +にんずう +にんそう +にんたい +にんち +にんてい +にんにく +にんぷ +にんまり +にんむ +にんめい +にんよう +ぬう +ぬか +ぬく +ぬくもり +ぬし +ぬの +ぬま +ぬめり +ぬらす +ぬる +ぬんちゃく +ねあげ +ねいき +ねいる +ねいろ +ねぎ +ねぐせ +ねくたい +ねくら +ねこ +ねこぜ +ねこむ +ねさげ +ねすごす +ねそべる +ねつい +ねつぞう +ねったい +ねったいぎょ +ねぶそく +ねふだ +ねぼう +ねほりはほり +ねまき +ねまわし +ねみみ +ねむい +ねもと +ねらう +ねる +ねわざ +ねんいり +ねんおし +ねんかん +ねんき +ねんきん +ねんぐ +ねんざ +ねんし +ねんちゃく +ねんちょう +ねんど +ねんぴ +ねんぶつ +ねんまく +ねんまつ +ねんりき +ねんりょう +ねんれい +のいず +のう +のおづま +のがす +のきなみ +のこぎり +のこす +のせる +のぞく +のぞむ +のたまう +のちほど +のっく +のばす +のはら +のべる +のぼる +のむ +のやま +のらいぬ +のらねこ +のり +のる +のれん +のんき +ばあい +はあく +ばあさん +はい +ばいか +ばいく +はいけん +はいご +はいこう +はいし +はいしゅつ +はいしん +はいすい +はいせつ +はいせん +はいそう +はいち +ばいばい +はう +はえ +はえる +はおる +はか +ばか +はかい +はかる +はき +はく +はくしゅ +はけん +はこ +はこぶ +はさみ +はさん +はし +はしご +はしる +ばす +はせる +ぱそこん +はそん +はたん +はち +はちみつ +はっか +はっかく +はっき +はっきり +はっくつ +はっけん +はっこう +はっさん +はっしゃ +はっしん +はったつ +はっちゃく +はっちゅう +はってん +はっぴょう +はっぽう +はて +はな +はなす +はなび +はにかむ +はね +はは +はぶらし +はま +はみがき +はむ +はむかう +はめつ +はやい +はら +はらう +はり +はる +はれ +はろうぃん +はわい +はんい +はんえい +はんえん +はんおん +はんかく +はんかち +はんきょう +はんこ +はんこう +はんしゃ +はんしん +はんすう +はんたい +はんだん +ぱんち +ぱんつ +はんてい +はんてん +はんとし +はんのう +はんぱ +はんぶん +はんぺん +はんぼうき +はんめい +はんめん +はんらん +はんろん +ひいき +ひうん +ひえる +ひかく +ひかり +ひかん +ひく +ひくい +ひけつ +ひこうき +ひこく +ひざ +ぴざ +ひさい +ひさしぶり +ひさん +ひし +ひじ +ひしょ +ひじょう +ひそか +ひそむ +ひたむき +ひたる +ひつぎ +ひっこし +ひっし +ひっす +ひつぜん +ひつよう +ひてい +ひと +ひとごみ +ひな +ひなん +ひねる +ひはん +ひびく +ひひょう +ひふ +ひほう +ひま +ひまん +ひみつ +ひめ +ひめい +ひめじし +ひも +ひやけ +ひやす +ひゆ +ひよう +びょうき +ひらく +ひりつ +ひりょう +ひる +ひれい +ひろい +ひろう +ひわ +ひんかく +ひんけつ +ひんこん +ひんし +ひんしつ +ひんしゅ +ひんそう +ぴんち +ひんぱん +びんぼう +ふあん +ふいうち +ふうけい +ふうせん +ふうとう +ふうふ +ふえ +ふえる +ふおん +ふか +ふかい +ふきん +ふく +ふくざつ +ふこう +ふさい +ふざい +ふしぎ +ふじみ +ふすま +ふせい +ふせぐ +ふそく +ふた +ふたん +ふち +ふちょう +ふつう +ふっかつ +ふっき +ふっきん +ふっこく +ふとる +ふとん +ふね +ふのう +ふはい +ふひょう +ふへん +ふまん +ふみん +ふむ +ふめつ +ふめん +ふゆ +ふよう +ふりこ +ふりる +ふる +ふるい +ふろ +ふんいき +ふんか +ぶんか +ぶんぐ +ふんしつ +ぶんせき +ふんそう +へい +へいき +へいさ +へいわ +へきが +へこむ +へそ +へた +べつ +べっど +ぺっと +へび +へや +へる +へんか +へんかん +へんきゃく +へんきん +へんさい +へんたい +ほあん +ほいく +ほうほう +ほえる +ほおん +ほかん +ほきょう +ぼきん +ほくろ +ほけつ +ほけん +ほこう +ほこる +ほさ +ほし +ほしつ +ほしゅ +ほしょう +ほす +ほせい +ぼせい +ほそい +ほそく +ほたて +ほたる +ぼち +ほっきょく +ほっさ +ほったん +ほとんど +ほめる +ほる +ほんい +ほんき +ほんけ +ほんしつ +まいにち +まう +まかい +まかせる +まく +まける +まこと +まさつ +ますく +まぜる +まち +まつ +まつり +まとめ +まなぶ +まぬけ +まね +まねく +まひ +まほう +まめ +まもる +まゆげ +まよう +まる +まろやか +まわす +まわり +まんが +まんかい +まんきつ +まんぞく +みいら +みうち +みかた +みかん +みぎ +みけん +みこん +みすい +みすえる +みせ +みそ +みち +みてい +みとめる +みなみかさい +みねらる +みのう +みほん +みみ +みもと +みやげ +みらい +みりょく +みる +みわく +むえき +むえん +むかし +むく +むこ +むさぼる +むし +むすこ +むすめ +むせる +むせん +むだ +むち +むなしい +むね +むのう +むやみ +むよう +むら +むり +むりょう +むれ +むろん +もうどうけん +もえる +もぎ +もくし +もくてき +もし +もんく +もんだい +やすい +やすみ +やそう +やたい +やちん +やね +やぶる +やま +やみ +やめる +ややこしい +やよい +やり +やわらかい +ゆけつ +ゆしゅつ +ゆせん +ゆそう +ゆたか +ゆちゃく +ゆでる +ゆび +ゆびわ +ゆめ +ゆれる +よう +よかぜ +よかん +よきん +よくせい +よくぼう +よけい +よさん +よそう +よそく +よち +よてい +よどがわく +よねつ +よむ +よめ +よやく +よゆう +よる +よろこぶ +らいう +らくがき +らくご +らくさつ +らくだ +らくたん +らしんばん +らせん +らぞく +らたい +らち +らっか +らっかせい +られつ +りえき +りか +りかい +りきさく +りきせつ +りく +りくぐん +りくつ +りけん +りこう +りし +りす +りせい +りそう +りそく +りてん +りねん +りゅう +りゆう +りゅうがく +りゅうこう +りゅうし +りゅうねん +りよう +りょうかい +りょうきん +りょうしん +りょうて +りょうど +りょうほう +りょうり +りりく +りれき +りろん +りんご +るいじ +るす +れいかん +れいぎ +れいせい +れいぞうこ +れいとう +れきし +れきだい +れんあい +れんけい +れんけつ +れんこう +れんこん +れんさ +れんさい +れんさく +れんしゃ +れんしゅう +れんぞく +ろうか +ろうご +ろうじん +ろうそく +ろか +ろくが +ろこつ +ろしゅつ +ろせん +ろてん +ろめん +ろれつ +ろんぎ +ろんぱ +ろんぶん +ろんり +わじまし diff --git a/src/mnemonics/wordlists/languages/portuguese b/src/mnemonics/wordlists/languages/portuguese new file mode 100644 index 000000000..126fd2740 --- /dev/null +++ b/src/mnemonics/wordlists/languages/portuguese @@ -0,0 +1,1626 @@ +abaular +abdominal +abeto +abissinio +abjeto +ablucao +abnegar +abotoar +abrutalhar +absurdo +abutre +acautelar +accessorios +acetona +achocolatado +acirrar +acne +acovardar +acrostico +actinomicete +acustico +adaptavel +adeus +adivinho +adjunto +admoestar +adnominal +adotivo +adquirir +adriatico +adsorcao +adutora +advogar +aerossol +afazeres +afetuoso +afixo +afluir +afortunar +afrouxar +aftosa +afunilar +agentes +agito +aglutinar +aiatola +aimore +aino +aipo +airoso +ajeitar +ajoelhar +ajudante +ajuste +alazao +albumina +alcunha +alegria +alexandre +alforriar +alguns +alhures +alivio +almoxarife +alotropico +alpiste +alquimista +alsaciano +altura +aluviao +alvura +amazonico +ambulatorio +ametodico +amizades +amniotico +amovivel +amurada +anatomico +ancorar +anexo +anfora +aniversario +anjo +anotar +ansioso +anturio +anuviar +anverso +anzol +aonde +apaziguar +apito +aplicavel +apoteotico +aprimorar +aprumo +apto +apuros +aquoso +arauto +arbusto +arduo +aresta +arfar +arguto +aritmetico +arlequim +armisticio +aromatizar +arpoar +arquivo +arrumar +arsenio +arturiano +aruaque +arvores +asbesto +ascorbico +aspirina +asqueroso +assustar +astuto +atazanar +ativo +atletismo +atmosferico +atormentar +atroz +aturdir +audivel +auferir +augusto +aula +aumento +aurora +autuar +avatar +avexar +avizinhar +avolumar +avulso +axiomatico +azerbaijano +azimute +azoto +azulejo +bacteriologista +badulaque +baforada +baixote +bajular +balzaquiana +bambuzal +banzo +baoba +baqueta +barulho +bastonete +batuta +bauxita +bavaro +bazuca +bcrepuscular +beato +beduino +begonia +behaviorista +beisebol +belzebu +bemol +benzido +beocio +bequer +berro +besuntar +betume +bexiga +bezerro +biatlon +biboca +bicuspide +bidirecional +bienio +bifurcar +bigorna +bijuteria +bimotor +binormal +bioxido +bipolarizacao +biquini +birutice +bisturi +bituca +biunivoco +bivalve +bizarro +blasfemo +blenorreia +blindar +bloqueio +blusao +boazuda +bofete +bojudo +bolso +bombordo +bonzo +botina +boquiaberto +bostoniano +botulismo +bourbon +bovino +boximane +bravura +brevidade +britar +broxar +bruno +bruxuleio +bubonico +bucolico +buda +budista +bueiro +buffer +bugre +bujao +bumerangue +burundines +busto +butique +buzios +caatinga +cabuqui +cacunda +cafuzo +cajueiro +camurca +canudo +caquizeiro +carvoeiro +casulo +catuaba +cauterizar +cebolinha +cedula +ceifeiro +celulose +cerzir +cesto +cetro +ceus +cevar +chavena +cheroqui +chita +chovido +chuvoso +ciatico +cibernetico +cicuta +cidreira +cientistas +cifrar +cigarro +cilio +cimo +cinzento +cioso +cipriota +cirurgico +cisto +citrico +ciumento +civismo +clavicula +clero +clitoris +cluster +coaxial +cobrir +cocota +codorniz +coexistir +cogumelo +coito +colusao +compaixao +comutativo +contentamento +convulsivo +coordenativa +coquetel +correto +corvo +costureiro +cotovia +covil +cozinheiro +cretino +cristo +crivo +crotalo +cruzes +cubo +cucuia +cueiro +cuidar +cujo +cultural +cunilingua +cupula +curvo +custoso +cutucar +czarismo +dablio +dacota +dados +daguerreotipo +daiquiri +daltonismo +damista +dantesco +daquilo +darwinista +dasein +dativo +deao +debutantes +decurso +deduzir +defunto +degustar +dejeto +deltoide +demover +denunciar +deputado +deque +dervixe +desvirtuar +deturpar +deuteronomio +devoto +dextrose +dezoito +diatribe +dicotomico +didatico +dietista +difuso +digressao +diluvio +diminuto +dinheiro +dinossauro +dioxido +diplomatico +dique +dirimivel +disturbio +diurno +divulgar +dizivel +doar +dobro +docura +dodoi +doer +dogue +doloso +domo +donzela +doping +dorsal +dossie +dote +doutro +doze +dravidico +dreno +driver +dropes +druso +dubnio +ducto +dueto +dulija +dundum +duodeno +duquesa +durou +duvidoso +duzia +ebano +ebrio +eburneo +echarpe +eclusa +ecossistema +ectoplasma +ecumenismo +eczema +eden +editorial +edredom +edulcorar +efetuar +efigie +efluvio +egiptologo +egresso +egua +einsteiniano +eira +eivar +eixos +ejetar +elastomero +eldorado +elixir +elmo +eloquente +elucidativo +emaranhar +embutir +emerito +emfa +emitir +emotivo +empuxo +emulsao +enamorar +encurvar +enduro +enevoar +enfurnar +enguico +enho +enigmista +enlutar +enormidade +enpreendimento +enquanto +enriquecer +enrugar +entusiastico +enunciar +envolvimento +enxuto +enzimatico +eolico +epiteto +epoxi +epura +equivoco +erario +erbio +ereto +erguido +erisipela +ermo +erotizar +erros +erupcao +ervilha +esburacar +escutar +esfuziante +esguio +esloveno +esmurrar +esoterismo +esperanca +espirito +espurio +essencialmente +esturricar +esvoacar +etario +eterno +etiquetar +etnologo +etos +etrusco +euclidiano +euforico +eugenico +eunuco +europio +eustaquio +eutanasia +evasivo +eventualidade +evitavel +evoluir +exaustor +excursionista +exercito +exfoliado +exito +exotico +expurgo +exsudar +extrusora +exumar +fabuloso +facultativo +fado +fagulha +faixas +fajuto +faltoso +famoso +fanzine +fapesp +faquir +fartura +fastio +faturista +fausto +favorito +faxineira +fazer +fealdade +febril +fecundo +fedorento +feerico +feixe +felicidade +felipe +feltro +femur +fenotipo +fervura +festivo +feto +feudo +fevereiro +fezinha +fiasco +fibra +ficticio +fiduciario +fiesp +fifa +figurino +fijiano +filtro +finura +fiorde +fiquei +firula +fissurar +fitoteca +fivela +fixo +flavio +flexor +flibusteiro +flotilha +fluxograma +fobos +foco +fofura +foguista +foie +foliculo +fominha +fonte +forum +fosso +fotossintese +foxtrote +fraudulento +frevo +frivolo +frouxo +frutose +fuba +fucsia +fugitivo +fuinha +fujao +fulustreco +fumo +funileiro +furunculo +fustigar +futurologo +fuxico +fuzue +gabriel +gado +gaelico +gafieira +gaguejo +gaivota +gajo +galvanoplastico +gamo +ganso +garrucha +gastronomo +gatuno +gaussiano +gaviao +gaxeta +gazeteiro +gear +geiser +geminiano +generoso +genuino +geossinclinal +gerundio +gestual +getulista +gibi +gigolo +gilete +ginseng +giroscopio +glaucio +glacial +gleba +glifo +glote +glutonia +gnostico +goela +gogo +goitaca +golpista +gomo +gonzo +gorro +gostou +goticula +gourmet +governo +gozo +graxo +grevista +grito +grotesco +gruta +guaxinim +gude +gueto +guizo +guloso +gume +guru +gustativo +gustavo +gutural +habitue +haitiano +halterofilista +hamburguer +hanseniase +happening +harpista +hastear +haveres +hebreu +hectometro +hedonista +hegira +helena +helminto +hemorroidas +henrique +heptassilabo +hertziano +hesitar +heterossexual +heuristico +hexagono +hiato +hibrido +hidrostatico +hieroglifo +hifenizar +higienizar +hilario +himen +hino +hippie +hirsuto +historiografia +hitlerista +hodometro +hoje +holograma +homus +honroso +hoquei +horto +hostilizar +hotentote +huguenote +humilde +huno +hurra +hutu +iaia +ialorixa +iambico +iansa +iaque +iara +iatista +iberico +ibis +icar +iceberg +icosagono +idade +ideologo +idiotice +idoso +iemenita +iene +igarape +iglu +ignorar +igreja +iguaria +iidiche +ilativo +iletrado +ilharga +ilimitado +ilogismo +ilustrissimo +imaturo +imbuzeiro +imerso +imitavel +imovel +imputar +imutavel +inaveriguavel +incutir +induzir +inextricavel +infusao +ingua +inhame +iniquo +injusto +inning +inoxidavel +inquisitorial +insustentavel +intumescimento +inutilizavel +invulneravel +inzoneiro +iodo +iogurte +ioio +ionosfera +ioruba +iota +ipsilon +irascivel +iris +irlandes +irmaos +iroques +irrupcao +isca +isento +islandes +isotopo +isqueiro +israelita +isso +isto +iterbio +itinerario +itrio +iuane +iugoslavo +jabuticabeira +jacutinga +jade +jagunco +jainista +jaleco +jambo +jantarada +japones +jaqueta +jarro +jasmim +jato +jaula +javel +jazz +jegue +jeitoso +jejum +jenipapo +jeova +jequitiba +jersei +jesus +jetom +jiboia +jihad +jilo +jingle +jipe +jocoso +joelho +joguete +joio +jojoba +jorro +jota +joule +joviano +jubiloso +judoca +jugular +juizo +jujuba +juliano +jumento +junto +jururu +justo +juta +juventude +labutar +laguna +laico +lajota +lanterninha +lapso +laquear +lastro +lauto +lavrar +laxativo +lazer +leasing +lebre +lecionar +ledo +leguminoso +leitura +lele +lemure +lento +leonardo +leopardo +lepton +leque +leste +letreiro +leucocito +levitico +lexicologo +lhama +lhufas +liame +licoroso +lidocaina +liliputiano +limusine +linotipo +lipoproteina +liquidos +lirismo +lisura +liturgico +livros +lixo +lobulo +locutor +lodo +logro +lojista +lombriga +lontra +loop +loquaz +lorota +losango +lotus +louvor +luar +lubrificavel +lucros +lugubre +luis +luminoso +luneta +lustroso +luto +luvas +luxuriante +luzeiro +maduro +maestro +mafioso +magro +maiuscula +majoritario +malvisto +mamute +manutencao +mapoteca +maquinista +marzipa +masturbar +matuto +mausoleu +mavioso +maxixe +mazurca +meandro +mecha +medusa +mefistofelico +megera +meirinho +melro +memorizar +menu +mequetrefe +mertiolate +mestria +metroviario +mexilhao +mezanino +miau +microssegundo +midia +migratorio +mimosa +minuto +miosotis +mirtilo +misturar +mitzvah +miudos +mixuruca +mnemonico +moagem +mobilizar +modulo +moer +mofo +mogno +moita +molusco +monumento +moqueca +morubixaba +mostruario +motriz +mouse +movivel +mozarela +muarra +muculmano +mudo +mugir +muitos +mumunha +munir +muon +muquira +murros +musselina +nacoes +nado +naftalina +nago +naipe +naja +nalgum +namoro +nanquim +napolitano +naquilo +nascimento +nautilo +navios +nazista +nebuloso +nectarina +nefrologo +negus +nelore +nenufar +nepotismo +nervura +neste +netuno +neutron +nevoeiro +newtoniano +nexo +nhenhenhem +nhoque +nigeriano +niilista +ninho +niobio +niponico +niquelar +nirvana +nisto +nitroglicerina +nivoso +nobreza +nocivo +noel +nogueira +noivo +nojo +nominativo +nonuplo +noruegues +nostalgico +noturno +nouveau +nuanca +nublar +nucleotideo +nudista +nulo +numismatico +nunquinha +nupcias +nutritivo +nuvens +oasis +obcecar +obeso +obituario +objetos +oblongo +obnoxio +obrigatorio +obstruir +obtuso +obus +obvio +ocaso +occipital +oceanografo +ocioso +oclusivo +ocorrer +ocre +octogono +odalisca +odisseia +odorifico +oersted +oeste +ofertar +ofidio +oftalmologo +ogiva +ogum +oigale +oitavo +oitocentos +ojeriza +olaria +oleoso +olfato +olhos +oliveira +olmo +olor +olvidavel +ombudsman +omeleteira +omitir +omoplata +onanismo +ondular +oneroso +onomatopeico +ontologico +onus +onze +opalescente +opcional +operistico +opio +oposto +oprobrio +optometrista +opusculo +oratorio +orbital +orcar +orfao +orixa +orla +ornitologo +orquidea +ortorrombico +orvalho +osculo +osmotico +ossudo +ostrogodo +otario +otite +ouro +ousar +outubro +ouvir +ovario +overnight +oviparo +ovni +ovoviviparo +ovulo +oxala +oxente +oxiuro +oxossi +ozonizar +paciente +pactuar +padronizar +paete +pagodeiro +paixao +pajem +paludismo +pampas +panturrilha +papudo +paquistanes +pastoso +patua +paulo +pauzinhos +pavoroso +paxa +pazes +peao +pecuniario +pedunculo +pegaso +peixinho +pejorativo +pelvis +penuria +pequno +petunia +pezada +piauiense +pictorico +pierro +pigmeu +pijama +pilulas +pimpolho +pintura +piorar +pipocar +piqueteiro +pirulito +pistoleiro +pituitaria +pivotar +pixote +pizzaria +plistoceno +plotar +pluviometrico +pneumonico +poco +podridao +poetisa +pogrom +pois +polvorosa +pomposo +ponderado +pontudo +populoso +poquer +porvir +posudo +potro +pouso +povoar +prazo +prezar +privilegios +proximo +prussiano +pseudopode +psoriase +pterossauros +ptialina +ptolemaico +pudor +pueril +pufe +pugilista +puir +pujante +pulverizar +pumba +punk +purulento +pustula +putsch +puxe +quatrocentos +quetzal +quixotesco +quotizavel +rabujice +racista +radonio +rafia +ragu +rajado +ralo +rampeiro +ranzinza +raptor +raquitismo +raro +rasurar +ratoeira +ravioli +razoavel +reavivar +rebuscar +recusavel +reduzivel +reexposicao +refutavel +regurgitar +reivindicavel +rejuvenescimento +relva +remuneravel +renunciar +reorientar +repuxo +requisito +resumo +returno +reutilizar +revolvido +rezonear +riacho +ribossomo +ricota +ridiculo +rifle +rigoroso +rijo +rimel +rins +rios +riqueza +riquixa +rissole +ritualistico +rivalizar +rixa +robusto +rococo +rodoviario +roer +rogo +rojao +rolo +rompimento +ronronar +roqueiro +rorqual +rosto +rotundo +rouxinol +roxo +royal +ruas +rucula +rudimentos +ruela +rufo +rugoso +ruivo +rule +rumoroso +runico +ruptura +rural +rustico +rutilar +saariano +sabujo +sacudir +sadomasoquista +safra +sagui +sais +samurai +santuario +sapo +saquear +sartriano +saturno +saude +sauva +saveiro +saxofonista +sazonal +scherzo +script +seara +seborreia +secura +seduzir +sefardim +seguro +seja +selvas +sempre +senzala +sepultura +sequoia +sestercio +setuplo +seus +seviciar +sezonismo +shalom +siames +sibilante +sicrano +sidra +sifilitico +signos +silvo +simultaneo +sinusite +sionista +sirio +sisudo +situar +sivan +slide +slogan +soar +sobrio +socratico +sodomizar +soerguer +software +sogro +soja +solver +somente +sonso +sopro +soquete +sorveteiro +sossego +soturno +sousafone +sovinice +sozinho +suavizar +subverter +sucursal +sudoriparo +sufragio +sugestoes +suite +sujo +sultao +sumula +suntuoso +suor +supurar +suruba +susto +suturar +suvenir +tabuleta +taco +tadjique +tafeta +tagarelice +taitiano +talvez +tampouco +tanzaniano +taoista +tapume +taquion +tarugo +tascar +tatuar +tautologico +tavola +taxionomista +tchecoslovaco +teatrologo +tectonismo +tedioso +teflon +tegumento +teixo +telurio +temporas +tenue +teosofico +tepido +tequila +terrorista +testosterona +tetrico +teutonico +teve +texugo +tiara +tibia +tiete +tifoide +tigresa +tijolo +tilintar +timpano +tintureiro +tiquete +tiroteio +tisico +titulos +tive +toar +toboga +tofu +togoles +toicinho +tolueno +tomografo +tontura +toponimo +toquio +torvelinho +tostar +toto +touro +toxina +trazer +trezentos +trivialidade +trovoar +truta +tuaregue +tubular +tucano +tudo +tufo +tuiste +tulipa +tumultuoso +tunisino +tupiniquim +turvo +tutu +ucraniano +udenista +ufanista +ufologo +ugaritico +uiste +uivo +ulceroso +ulema +ultravioleta +umbilical +umero +umido +umlaut +unanimidade +unesco +ungulado +unheiro +univoco +untuoso +urano +urbano +urdir +uretra +urgente +urinol +urna +urologo +urro +ursulina +urtiga +urupe +usavel +usbeque +usei +usineiro +usurpar +utero +utilizar +utopico +uvular +uxoricidio +vacuo +vadio +vaguear +vaivem +valvula +vampiro +vantajoso +vaporoso +vaquinha +varziano +vasto +vaticinio +vaudeville +vazio +veado +vedico +veemente +vegetativo +veio +veja +veludo +venusiano +verdade +verve +vestuario +vetusto +vexatorio +vezes +viavel +vibratorio +victor +vicunha +vidros +vietnamita +vigoroso +vilipendiar +vime +vintem +violoncelo +viquingue +virus +visualizar +vituperio +viuvo +vivo +vizir +voar +vociferar +vodu +vogar +voile +volver +vomito +vontade +vortice +vosso +voto +vovozinha +voyeuse +vozes +vulva +vupt +western +xadrez +xale +xampu +xango +xarope +xaual +xavante +xaxim +xenonio +xepa +xerox +xicara +xifopago +xiita +xilogravura +xinxim +xistoso +xixi +xodo +xogum +xucro +zabumba +zagueiro +zambiano +zanzar +zarpar +zebu +zefiro +zeloso +zenite +zumbi diff --git a/src/mnemonics/wordlists/languages/spanish b/src/mnemonics/wordlists/languages/spanish new file mode 100644 index 000000000..d0900c2c7 --- /dev/null +++ b/src/mnemonics/wordlists/languages/spanish @@ -0,0 +1,2048 @@ +ábaco +abdomen +abeja +abierto +abogado +abono +aborto +abrazo +abrir +abuelo +abuso +acabar +academia +acceso +acción +aceite +acelga +acento +aceptar +ácido +aclarar +acné +acoger +acoso +activo +acto +actriz +actuar +acudir +acuerdo +acusar +adicto +admitir +adoptar +adorno +aduana +adulto +aéreo +afectar +afición +afinar +afirmar +ágil +agitar +agonía +agosto +agotar +agregar +agrio +agua +agudo +águila +aguja +ahogo +ahorro +aire +aislar +ajedrez +ajeno +ajuste +alacrán +alambre +alarma +alba +álbum +alcalde +aldea +alegre +alejar +alerta +aleta +alfiler +alga +algodón +aliado +aliento +alivio +alma +almeja +almíbar +altar +alteza +altivo +alto +altura +alumno +alzar +amable +amante +amapola +amargo +amasar +ámbar +ámbito +ameno +amigo +amistad +amor +amparo +amplio +ancho +anciano +ancla +andar +andén +anemia +ángulo +anillo +ánimo +anís +anotar +antena +antiguo +antojo +anual +anular +anuncio +añadir +añejo +año +apagar +aparato +apetito +apio +aplicar +apodo +aporte +apoyo +aprender +aprobar +apuesta +apuro +arado +araña +arar +árbitro +árbol +arbusto +archivo +arco +arder +ardilla +arduo +área +árido +aries +armonía +arnés +aroma +arpa +arpón +arreglo +arroz +arruga +arte +artista +asa +asado +asalto +ascenso +asegurar +aseo +asesor +asiento +asilo +asistir +asno +asombro +áspero +astilla +astro +astuto +asumir +asunto +atajo +ataque +atar +atento +ateo +ático +atleta +átomo +atraer +atroz +atún +audaz +audio +auge +aula +aumento +ausente +autor +aval +avance +avaro +ave +avellana +avena +avestruz +avión +aviso +ayer +ayuda +ayuno +azafrán +azar +azote +azúcar +azufre +azul +baba +babor +bache +bahía +baile +bajar +balanza +balcón +balde +bambú +banco +banda +baño +barba +barco +barniz +barro +báscula +bastón +basura +batalla +batería +batir +batuta +baúl +bazar +bebé +bebida +bello +besar +beso +bestia +bicho +bien +bingo +blanco +bloque +blusa +boa +bobina +bobo +boca +bocina +boda +bodega +boina +bola +bolero +bolsa +bomba +bondad +bonito +bono +bonsái +borde +borrar +bosque +bote +botín +bóveda +bozal +bravo +brazo +brecha +breve +brillo +brinco +brisa +broca +broma +bronce +brote +bruja +brusco +bruto +buceo +bucle +bueno +buey +bufanda +bufón +búho +buitre +bulto +burbuja +burla +burro +buscar +butaca +buzón +caballo +cabeza +cabina +cabra +cacao +cadáver +cadena +caer +café +caída +caimán +caja +cajón +cal +calamar +calcio +caldo +calidad +calle +calma +calor +calvo +cama +cambio +camello +camino +campo +cáncer +candil +canela +canguro +canica +canto +caña +cañón +caoba +caos +capaz +capitán +capote +captar +capucha +cara +carbón +cárcel +careta +carga +cariño +carne +carpeta +carro +carta +casa +casco +casero +caspa +castor +catorce +catre +caudal +causa +cazo +cebolla +ceder +cedro +celda +célebre +celoso +célula +cemento +ceniza +centro +cerca +cerdo +cereza +cero +cerrar +certeza +césped +cetro +chacal +chaleco +champú +chancla +chapa +charla +chico +chiste +chivo +choque +choza +chuleta +chupar +ciclón +ciego +cielo +cien +cierto +cifra +cigarro +cima +cinco +cine +cinta +ciprés +circo +ciruela +cisne +cita +ciudad +clamor +clan +claro +clase +clave +cliente +clima +clínica +cobre +cocción +cochino +cocina +coco +código +codo +cofre +coger +cohete +cojín +cojo +cola +colcha +colegio +colgar +colina +collar +colmo +columna +combate +comer +comida +cómodo +compra +conde +conejo +conga +conocer +consejo +contar +copa +copia +corazón +corbata +corcho +cordón +corona +correr +coser +cosmos +costa +cráneo +cráter +crear +crecer +creído +crema +cría +crimen +cripta +crisis +cromo +crónica +croqueta +crudo +cruz +cuadro +cuarto +cuatro +cubo +cubrir +cuchara +cuello +cuento +cuerda +cuesta +cueva +cuidar +culebra +culpa +culto +cumbre +cumplir +cuna +cuneta +cuota +cupón +cúpula +curar +curioso +curso +curva +cutis +dama +danza +dar +dardo +dátil +deber +débil +década +decir +dedo +defensa +definir +dejar +delfín +delgado +delito +demora +denso +dental +deporte +derecho +derrota +desayuno +deseo +desfile +desnudo +destino +desvío +detalle +detener +deuda +día +diablo +diadema +diamante +diana +diario +dibujo +dictar +diente +dieta +diez +difícil +digno +dilema +diluir +dinero +directo +dirigir +disco +diseño +disfraz +diva +divino +doble +doce +dolor +domingo +don +donar +dorado +dormir +dorso +dos +dosis +dragón +droga +ducha +duda +duelo +dueño +dulce +dúo +duque +durar +dureza +duro +ébano +ebrio +echar +eco +ecuador +edad +edición +edificio +editor +educar +efecto +eficaz +eje +ejemplo +elefante +elegir +elemento +elevar +elipse +élite +elixir +elogio +eludir +embudo +emitir +emoción +empate +empeño +empleo +empresa +enano +encargo +enchufe +encía +enemigo +enero +enfado +enfermo +engaño +enigma +enlace +enorme +enredo +ensayo +enseñar +entero +entrar +envase +envío +época +equipo +erizo +escala +escena +escolar +escribir +escudo +esencia +esfera +esfuerzo +espada +espejo +espía +esposa +espuma +esquí +estar +este +estilo +estufa +etapa +eterno +ética +etnia +evadir +evaluar +evento +evitar +exacto +examen +exceso +excusa +exento +exigir +exilio +existir +éxito +experto +explicar +exponer +extremo +fábrica +fábula +fachada +fácil +factor +faena +faja +falda +fallo +falso +faltar +fama +familia +famoso +faraón +farmacia +farol +farsa +fase +fatiga +fauna +favor +fax +febrero +fecha +feliz +feo +feria +feroz +fértil +fervor +festín +fiable +fianza +fiar +fibra +ficción +ficha +fideo +fiebre +fiel +fiera +fiesta +figura +fijar +fijo +fila +filete +filial +filtro +fin +finca +fingir +finito +firma +flaco +flauta +flecha +flor +flota +fluir +flujo +flúor +fobia +foca +fogata +fogón +folio +folleto +fondo +forma +forro +fortuna +forzar +fosa +foto +fracaso +frágil +franja +frase +fraude +freír +freno +fresa +frío +frito +fruta +fuego +fuente +fuerza +fuga +fumar +función +funda +furgón +furia +fusil +fútbol +futuro +gacela +gafas +gaita +gajo +gala +galería +gallo +gamba +ganar +gancho +ganga +ganso +garaje +garza +gasolina +gastar +gato +gavilán +gemelo +gemir +gen +género +genio +gente +geranio +gerente +germen +gesto +gigante +gimnasio +girar +giro +glaciar +globo +gloria +gol +golfo +goloso +golpe +goma +gordo +gorila +gorra +gota +goteo +gozar +grada +gráfico +grano +grasa +gratis +grave +grieta +grillo +gripe +gris +grito +grosor +grúa +grueso +grumo +grupo +guante +guapo +guardia +guerra +guía +guiño +guion +guiso +guitarra +gusano +gustar +haber +hábil +hablar +hacer +hacha +hada +hallar +hamaca +harina +haz +hazaña +hebilla +hebra +hecho +helado +helio +hembra +herir +hermano +héroe +hervir +hielo +hierro +hígado +higiene +hijo +himno +historia +hocico +hogar +hoguera +hoja +hombre +hongo +honor +honra +hora +hormiga +horno +hostil +hoyo +hueco +huelga +huerta +hueso +huevo +huida +huir +humano +húmedo +humilde +humo +hundir +huracán +hurto +icono +ideal +idioma +ídolo +iglesia +iglú +igual +ilegal +ilusión +imagen +imán +imitar +impar +imperio +imponer +impulso +incapaz +índice +inerte +infiel +informe +ingenio +inicio +inmenso +inmune +innato +insecto +instante +interés +íntimo +intuir +inútil +invierno +ira +iris +ironía +isla +islote +jabalí +jabón +jamón +jarabe +jardín +jarra +jaula +jazmín +jefe +jeringa +jinete +jornada +joroba +joven +joya +juerga +jueves +juez +jugador +jugo +juguete +juicio +junco +jungla +junio +juntar +júpiter +jurar +justo +juvenil +juzgar +kilo +koala +labio +lacio +lacra +lado +ladrón +lagarto +lágrima +laguna +laico +lamer +lámina +lámpara +lana +lancha +langosta +lanza +lápiz +largo +larva +lástima +lata +látex +latir +laurel +lavar +lazo +leal +lección +leche +lector +leer +legión +legumbre +lejano +lengua +lento +leña +león +leopardo +lesión +letal +letra +leve +leyenda +libertad +libro +licor +líder +lidiar +lienzo +liga +ligero +lima +límite +limón +limpio +lince +lindo +línea +lingote +lino +linterna +líquido +liso +lista +litera +litio +litro +llaga +llama +llanto +llave +llegar +llenar +llevar +llorar +llover +lluvia +lobo +loción +loco +locura +lógica +logro +lombriz +lomo +lonja +lote +lucha +lucir +lugar +lujo +luna +lunes +lupa +lustro +luto +luz +maceta +macho +madera +madre +maduro +maestro +mafia +magia +mago +maíz +maldad +maleta +malla +malo +mamá +mambo +mamut +manco +mando +manejar +manga +maniquí +manjar +mano +manso +manta +mañana +mapa +máquina +mar +marco +marea +marfil +margen +marido +mármol +marrón +martes +marzo +masa +máscara +masivo +matar +materia +matiz +matriz +máximo +mayor +mazorca +mecha +medalla +medio +médula +mejilla +mejor +melena +melón +memoria +menor +mensaje +mente +menú +mercado +merengue +mérito +mes +mesón +meta +meter +método +metro +mezcla +miedo +miel +miembro +miga +mil +milagro +militar +millón +mimo +mina +minero +mínimo +minuto +miope +mirar +misa +miseria +misil +mismo +mitad +mito +mochila +moción +moda +modelo +moho +mojar +molde +moler +molino +momento +momia +monarca +moneda +monja +monto +moño +morada +morder +moreno +morir +morro +morsa +mortal +mosca +mostrar +motivo +mover +móvil +mozo +mucho +mudar +mueble +muela +muerte +muestra +mugre +mujer +mula +muleta +multa +mundo +muñeca +mural +muro +músculo +museo +musgo +música +muslo +nácar +nación +nadar +naipe +naranja +nariz +narrar +nasal +natal +nativo +natural +náusea +naval +nave +navidad +necio +néctar +negar +negocio +negro +neón +nervio +neto +neutro +nevar +nevera +nicho +nido +niebla +nieto +niñez +niño +nítido +nivel +nobleza +noche +nómina +noria +norma +norte +nota +noticia +novato +novela +novio +nube +nuca +núcleo +nudillo +nudo +nuera +nueve +nuez +nulo +número +nutria +oasis +obeso +obispo +objeto +obra +obrero +observar +obtener +obvio +oca +ocaso +océano +ochenta +ocho +ocio +ocre +octavo +octubre +oculto +ocupar +ocurrir +odiar +odio +odisea +oeste +ofensa +oferta +oficio +ofrecer +ogro +oído +oír +ojo +ola +oleada +olfato +olivo +olla +olmo +olor +olvido +ombligo +onda +onza +opaco +opción +ópera +opinar +oponer +optar +óptica +opuesto +oración +orador +oral +órbita +orca +orden +oreja +órgano +orgía +orgullo +oriente +origen +orilla +oro +orquesta +oruga +osadía +oscuro +osezno +oso +ostra +otoño +otro +oveja +óvulo +óxido +oxígeno +oyente +ozono +pacto +padre +paella +página +pago +país +pájaro +palabra +palco +paleta +pálido +palma +paloma +palpar +pan +panal +pánico +pantera +pañuelo +papá +papel +papilla +paquete +parar +parcela +pared +parir +paro +párpado +parque +párrafo +parte +pasar +paseo +pasión +paso +pasta +pata +patio +patria +pausa +pauta +pavo +payaso +peatón +pecado +pecera +pecho +pedal +pedir +pegar +peine +pelar +peldaño +pelea +peligro +pellejo +pelo +peluca +pena +pensar +peñón +peón +peor +pepino +pequeño +pera +percha +perder +pereza +perfil +perico +perla +permiso +perro +persona +pesa +pesca +pésimo +pestaña +pétalo +petróleo +pez +pezuña +picar +pichón +pie +piedra +pierna +pieza +pijama +pilar +piloto +pimienta +pino +pintor +pinza +piña +piojo +pipa +pirata +pisar +piscina +piso +pista +pitón +pizca +placa +plan +plata +playa +plaza +pleito +pleno +plomo +pluma +plural +pobre +poco +poder +podio +poema +poesía +poeta +polen +policía +pollo +polvo +pomada +pomelo +pomo +pompa +poner +porción +portal +posada +poseer +posible +poste +potencia +potro +pozo +prado +precoz +pregunta +premio +prensa +preso +previo +primo +príncipe +prisión +privar +proa +probar +proceso +producto +proeza +profesor +programa +prole +promesa +pronto +propio +próximo +prueba +público +puchero +pudor +pueblo +puerta +puesto +pulga +pulir +pulmón +pulpo +pulso +puma +punto +puñal +puño +pupa +pupila +puré +quedar +queja +quemar +querer +queso +quieto +química +quince +quitar +rábano +rabia +rabo +ración +radical +raíz +rama +rampa +rancho +rango +rapaz +rápido +rapto +rasgo +raspa +rato +rayo +raza +razón +reacción +realidad +rebaño +rebote +recaer +receta +rechazo +recoger +recreo +recto +recurso +red +redondo +reducir +reflejo +reforma +refrán +refugio +regalo +regir +regla +regreso +rehén +reino +reír +reja +relato +relevo +relieve +relleno +reloj +remar +remedio +remo +rencor +rendir +renta +reparto +repetir +reposo +reptil +res +rescate +resina +respeto +resto +resumen +retiro +retorno +retrato +reunir +revés +revista +rey +rezar +rico +riego +rienda +riesgo +rifa +rígido +rigor +rincón +riñón +río +riqueza +risa +ritmo +rito +rizo +roble +roce +rociar +rodar +rodeo +rodilla +roer +rojizo +rojo +romero +romper +ron +ronco +ronda +ropa +ropero +rosa +rosca +rostro +rotar +rubí +rubor +rudo +rueda +rugir +ruido +ruina +ruleta +rulo +rumbo +rumor +ruptura +ruta +rutina +sábado +saber +sabio +sable +sacar +sagaz +sagrado +sala +saldo +salero +salir +salmón +salón +salsa +salto +salud +salvar +samba +sanción +sandía +sanear +sangre +sanidad +sano +santo +sapo +saque +sardina +sartén +sastre +satán +sauna +saxofón +sección +seco +secreto +secta +sed +seguir +seis +sello +selva +semana +semilla +senda +sensor +señal +señor +separar +sepia +sequía +ser +serie +sermón +servir +sesenta +sesión +seta +setenta +severo +sexo +sexto +sidra +siesta +siete +siglo +signo +sílaba +silbar +silencio +silla +símbolo +simio +sirena +sistema +sitio +situar +sobre +socio +sodio +sol +solapa +soldado +soledad +sólido +soltar +solución +sombra +sondeo +sonido +sonoro +sonrisa +sopa +soplar +soporte +sordo +sorpresa +sorteo +sostén +sótano +suave +subir +suceso +sudor +suegra +suelo +sueño +suerte +sufrir +sujeto +sultán +sumar +superar +suplir +suponer +supremo +sur +surco +sureño +surgir +susto +sutil +tabaco +tabique +tabla +tabú +taco +tacto +tajo +talar +talco +talento +talla +talón +tamaño +tambor +tango +tanque +tapa +tapete +tapia +tapón +taquilla +tarde +tarea +tarifa +tarjeta +tarot +tarro +tarta +tatuaje +tauro +taza +tazón +teatro +techo +tecla +técnica +tejado +tejer +tejido +tela +teléfono +tema +temor +templo +tenaz +tender +tener +tenis +tenso +teoría +terapia +terco +término +ternura +terror +tesis +tesoro +testigo +tetera +texto +tez +tibio +tiburón +tiempo +tienda +tierra +tieso +tigre +tijera +tilde +timbre +tímido +timo +tinta +tío +típico +tipo +tira +tirón +titán +títere +título +tiza +toalla +tobillo +tocar +tocino +todo +toga +toldo +tomar +tono +tonto +topar +tope +toque +tórax +torero +tormenta +torneo +toro +torpedo +torre +torso +tortuga +tos +tosco +toser +tóxico +trabajo +tractor +traer +tráfico +trago +traje +tramo +trance +trato +trauma +trazar +trébol +tregua +treinta +tren +trepar +tres +tribu +trigo +tripa +triste +triunfo +trofeo +trompa +tronco +tropa +trote +trozo +truco +trueno +trufa +tubería +tubo +tuerto +tumba +tumor +túnel +túnica +turbina +turismo +turno +tutor +ubicar +úlcera +umbral +unidad +unir +universo +uno +untar +uña +urbano +urbe +urgente +urna +usar +usuario +útil +utopía +uva +vaca +vacío +vacuna +vagar +vago +vaina +vajilla +vale +válido +valle +valor +válvula +vampiro +vara +variar +varón +vaso +vecino +vector +vehículo +veinte +vejez +vela +velero +veloz +vena +vencer +venda +veneno +vengar +venir +venta +venus +ver +verano +verbo +verde +vereda +verja +verso +verter +vía +viaje +vibrar +vicio +víctima +vida +vídeo +vidrio +viejo +viernes +vigor +vil +villa +vinagre +vino +viñedo +violín +viral +virgo +virtud +visor +víspera +vista +vitamina +viudo +vivaz +vivero +vivir +vivo +volcán +volumen +volver +voraz +votar +voto +voz +vuelo +vulgar +yacer +yate +yegua +yema +yerno +yeso +yodo +yoga +yogur +zafiro +zanja +zapato +zarza +zona +zorro +zumo +zurdo diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index a222e7827..2ede2f20f 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -498,9 +498,15 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; - if (!m_restore_deterministic_wallet) + if (!m_restore_deterministic_wallet || crypto::ElectrumWords::get_is_old_style_mnemonics()) { - // Ask for language only if it not a wallet restore. + if (crypto::ElectrumWords::get_is_old_style_mnemonics()) + { + message_writer(epee::log_space::console_color_green, false) << "\nYou have been using " << + "a deprecated word list file. Please use the new seed that we provide.\n"; + } + // Ask for language if it is not a wallet restore or if the old version of the wallet + // had given the user an old style word list. std::string mnemonic_language = get_mnemonic_language(); try { From f31adbc977939036d51d59e8ddb5cdf2c61ecd97 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sat, 27 Sep 2014 18:20:15 +0530 Subject: [PATCH 10/26] Doxygen comments in --- src/mnemonics/electrum-words.cpp | 70 ++++++++++++++++++++++++------- src/mnemonics/electrum-words.h | 43 ++++++++++++++++++- src/simplewallet/simplewallet.cpp | 18 +++++++- src/simplewallet/simplewallet.h | 24 +++++++++-- 4 files changed, 134 insertions(+), 21 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 897ab34e7..718bbfd9a 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -26,7 +26,11 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -/* +/*! + * \file electrum-words.cpp + * + * \brief Mnemonic seed generation and wallet restoration from them. + * * This file and its header file are for translating Electrum-style word lists * into their equivalent byte representations for cross-compatibility with * that method of "backing up" one's wallet keys. @@ -56,11 +60,20 @@ namespace const std::string LANGUAGES_DIRECTORY = "languages"; const std::string OLD_WORD_FILE = "old-word-list"; + /*! + * Tells if the module hasn't been initialized with a word list file. + * \return Whether the module hasn't been initialized with a word list file. + */ bool is_uninitialized() { return num_words == 0 ? true : false; } + /*! + * Create word list map and array data structres for use during inter-conversion between + * words and secret key. + * \param word_file Path to the word list file from pwd. + */ void create_data_structures(const std::string &word_file) { words_array.clear(); @@ -82,6 +95,11 @@ namespace input_stream.close(); } + /*! + * Tells if all the words passed in wlist was present in current word list file. + * \param wlist List of words to match. + * \return Whether they were all present or not. + */ bool word_list_file_match(const std::vector &wlist) { for (std::vector::const_iterator it = wlist.begin(); it != wlist.end(); it++) @@ -95,15 +113,28 @@ namespace } } +/*! + * \namespace crypto + */ namespace crypto { + /*! + * \namespace ElectrumWords + * + * \brief Mnemonic seed word generation and wallet restoration. + */ namespace ElectrumWords { - + /*! + * \brief Called to initialize it work with a word list file. + * \param language Language of the word list file. + * \param old_word_list Whether it is to use the old style word list file. + */ void init(const std::string &language, bool old_word_list) { if (old_word_list) { + // Use the old word list file if told to. create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE); is_old_style_mnemonics = true; } @@ -119,6 +150,10 @@ namespace crypto } } + /*! + * \brief If the module is currenly using an old style word list. + * \return Whether it is currenly using an old style word list. + */ bool get_is_old_style_mnemonics() { if (is_uninitialized()) @@ -127,12 +162,12 @@ namespace crypto } return is_old_style_mnemonics; } - /* convert words to bytes, 3 words -> 4 bytes - * returns: - * false if not a multiple of 3 words, or if a words is not in the - * words list - * - * true otherwise + + /*! + * \brief Converts seed words to bytes (secret key). + * \param words String containing the words separated by spaces. + * \param dst To put the secret key restored from the words. + * \return false if not a multiple of 3 words, or if word is not in the words list */ bool words_to_bytes(const std::string& words, crypto::secret_key& dst) { @@ -143,6 +178,7 @@ namespace crypto std::vector languages; get_language_list(languages); + // Try to find a word list file that contains all the words in the word list. std::vector::iterator it; for (it = languages.begin(); it != languages.end(); it++) { @@ -152,6 +188,7 @@ namespace crypto break; } } + // If no such file was found, see if the old style word list file has them all. if (it == languages.end()) { init("", true); @@ -192,10 +229,11 @@ namespace crypto return true; } - /* convert bytes to words, 4 bytes-> 3 words - * returns: - * false if wrong number of bytes (shouldn't be possible) - * true otherwise + /*! + * \brief Converts bytes (secret key) to seed words. + * \param src Secret key + * \param words Space separated words get copied here. + * \return Whether it was successful or not. Unsuccessful if wrong key size. */ bool bytes_to_words(const crypto::secret_key& src, std::string& words) { @@ -229,6 +267,10 @@ namespace crypto return false; } + /*! + * \brief Gets a list of seed languages that are supported. + * \param languages The list gets added to this. + */ void get_language_list(std::vector &languages) { languages.clear(); @@ -245,6 +287,6 @@ namespace crypto } } - } // namespace ElectrumWords + } -} // namespace crypto +} diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 73db652d7..687ac76cf 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -26,7 +26,11 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -/* +/*! + * \file electrum-words.h + * + * \brief Mnemonic seed generation and wallet restoration from them. + * * This file and its cpp file are for translating Electrum-style word lists * into their equivalent byte representations for cross-compatibility with * that method of "backing up" one's wallet keys. @@ -37,14 +41,51 @@ #include #include "crypto/crypto.h" // for declaration of crypto::secret_key +/*! + * \namespace crypto + */ namespace crypto { + /*! + * \namespace ElectrumWords + * + * \brief Mnemonic seed word generation and wallet restoration. + */ namespace ElectrumWords { + /*! + * \brief Called to initialize it work with a word list file. + * \param language Language of the word list file. + * \param old_word_list Whether it is to use the old style word list file. + */ void init(const std::string &language, bool old_word_list=false); + + /*! + * \brief Converts seed words to bytes (secret key). + * \param words String containing the words separated by spaces. + * \param dst To put the secret key restored from the words. + * \return false if not a multiple of 3 words, or if word is not in the words list + */ bool words_to_bytes(const std::string& words, crypto::secret_key& dst); + + /*! + * \brief Converts bytes (secret key) to seed words. + * \param src Secret key + * \param words Space separated words get copied here. + * \return Whether it was successful or not. Unsuccessful if wrong key size. + */ bool bytes_to_words(const crypto::secret_key& src, std::string& words); + + /*! + * \brief Gets a list of seed languages that are supported. + * \param languages The list gets added to this. + */ void get_language_list(std::vector &languages); + + /*! + * \brief If the module is currenly using an old style word list. + * \return Whether it is currenly using an old style word list. + */ bool get_is_old_style_mnemonics(); } } diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 2ede2f20f..9d6f23e6b 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -28,6 +28,12 @@ // // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers +/*! + * \file simplewallet.cpp + * + * \brief Source file that defines simple_wallet class. + */ + #include #include #include @@ -438,6 +444,13 @@ bool simple_wallet::try_connect_to_daemon() return true; } +/*! + * \brief Gets the word seed language from the user. + * + * User is asked to choose from a list of supported languages. + * + * \return The chosen language. + */ std::string simple_wallet::get_mnemonic_language() { std::vector language_list; @@ -498,15 +511,16 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; + // Ask for language if it is not a wallet restore or if the old version of the wallet + // had given the user an old style word list. if (!m_restore_deterministic_wallet || crypto::ElectrumWords::get_is_old_style_mnemonics()) { if (crypto::ElectrumWords::get_is_old_style_mnemonics()) { + // The user had used an older version of the wallet with old style mnemonics. message_writer(epee::log_space::console_color_green, false) << "\nYou have been using " << "a deprecated word list file. Please use the new seed that we provide.\n"; } - // Ask for language if it is not a wallet restore or if the old version of the wallet - // had given the user an old style word list. std::string mnemonic_language = get_mnemonic_language(); try { diff --git a/src/simplewallet/simplewallet.h b/src/simplewallet/simplewallet.h index 7a21f1cd2..8567b2343 100644 --- a/src/simplewallet/simplewallet.h +++ b/src/simplewallet/simplewallet.h @@ -28,6 +28,11 @@ // // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers +/*! + * \file simplewallet.h + * + * \brief Header file that declares simple_wallet class. + */ #pragma once #include @@ -41,12 +46,15 @@ #include "password_container.h" #include "crypto/crypto.h" // for definition of crypto::secret_key - +/*! + * \namespace cryptonote + * \brief Holds cryptonote related classes and helpers. + */ namespace cryptonote { - /************************************************************************/ - /* */ - /************************************************************************/ + /*! + * \brief Manages wallet operations. This is the most abstracted wallet class. + */ class simple_wallet : public tools::i_wallet2_callback { public: @@ -92,6 +100,14 @@ namespace cryptonote uint64_t get_daemon_blockchain_height(std::string& err); bool try_connect_to_daemon(); bool ask_wallet_create_if_needed(); + + /*! + * \brief Gets the word seed language from the user. + * + * User is asked to choose from a list of supported languages. + * + * \return The chosen language. + */ std::string get_mnemonic_language(); //----------------- i_wallet2_callback --------------------- From 8f587ba1c8044ed6face883d8f50cd43e27484e3 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sun, 28 Sep 2014 02:29:25 +0530 Subject: [PATCH 11/26] CRC Checksum for word seed. Gives a new 25 word seed with checksum if one without checksum is passed. Doxygen comment fix. --- src/mnemonics/electrum-words.cpp | 109 ++++++++++++++++++++++-------- src/mnemonics/electrum-words.h | 25 ++++--- src/simplewallet/simplewallet.cpp | 16 +++-- 3 files changed, 109 insertions(+), 41 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 718bbfd9a..d0d90ed8a 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -47,21 +47,25 @@ #include "mnemonics/electrum-words.h" #include #include +#include +#include namespace { - int num_words = 0; + int num_words = 0; + const int seed_length = 24; + std::map words_map; std::vector words_array; - bool is_old_style_mnemonics = false; + bool is_old_style_word_list = false; const std::string WORD_LISTS_DIRECTORY = "wordlists"; const std::string LANGUAGES_DIRECTORY = "languages"; const std::string OLD_WORD_FILE = "old-word-list"; /*! - * Tells if the module hasn't been initialized with a word list file. + * \brief Tells if the module hasn't been initialized with a word list file. * \return Whether the module hasn't been initialized with a word list file. */ bool is_uninitialized() @@ -70,7 +74,7 @@ namespace } /*! - * Create word list map and array data structres for use during inter-conversion between + * \brief Create word list map and array data structres for use during inter-conversion between * words and secret key. * \param word_file Path to the word list file from pwd. */ @@ -96,7 +100,7 @@ namespace } /*! - * Tells if all the words passed in wlist was present in current word list file. + * \brief Tells if all the words passed in wlist was present in current word list file. * \param wlist List of words to match. * \return Whether they were all present or not. */ @@ -111,17 +115,31 @@ namespace } return true; } + + /*! + * \brief Creates a checksum index in the word list array on the list of words. + * \param words Space separated list of words + * \return Checksum index + */ + uint32_t create_checksum_index(const std::string &words) + { + boost::crc_32_type result; + result.process_bytes(words.data(), words.length()); + return result.checksum() % seed_length; + } } /*! * \namespace crypto + * + * \brief crypto namespace. */ namespace crypto { /*! - * \namespace ElectrumWords + * \namespace crypto::ElectrumWords * - * \brief Mnemonic seed word generation and wallet restoration. + * \brief Mnemonic seed word generation and wallet restoration helper functions. */ namespace ElectrumWords { @@ -136,12 +154,12 @@ namespace crypto { // Use the old word list file if told to. create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE); - is_old_style_mnemonics = true; + is_old_style_word_list = true; } else { create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language); - is_old_style_mnemonics = false; + is_old_style_word_list = false; } if (num_words == 0) { @@ -150,19 +168,6 @@ namespace crypto } } - /*! - * \brief If the module is currenly using an old style word list. - * \return Whether it is currenly using an old style word list. - */ - bool get_is_old_style_mnemonics() - { - if (is_uninitialized()) - { - throw std::runtime_error("ElectrumWords hasn't been initialized with a word list yet."); - } - return is_old_style_mnemonics; - } - /*! * \brief Converts seed words to bytes (secret key). * \param words String containing the words separated by spaces. @@ -175,10 +180,25 @@ namespace crypto boost::split(wlist, words, boost::is_any_of(" ")); + // If it is seed with a checksum. + if (wlist.size() == seed_length + 1) + { + // The last word is the checksum. + std::string last_word = wlist.back(); + wlist.pop_back(); + + std::string checksum = wlist[create_checksum_index(boost::algorithm::join(wlist, " "))]; + + if (checksum != last_word) + { + // Checksum fail + return false; + } + } + // Try to find a word list file that contains all the words in the word list. std::vector languages; get_language_list(languages); - // Try to find a word list file that contains all the words in the word list. std::vector::iterator it; for (it = languages.begin(); it != languages.end(); it++) { @@ -232,8 +252,8 @@ namespace crypto /*! * \brief Converts bytes (secret key) to seed words. * \param src Secret key - * \param words Space separated words get copied here. - * \return Whether it was successful or not. Unsuccessful if wrong key size. + * \param words Space delimited concatenated words get written here. + * \return true if successful false if not. Unsuccessful if wrong key size. */ bool bytes_to_words(const crypto::secret_key& src, std::string& words) { @@ -241,9 +261,12 @@ namespace crypto { init("", true); } + + // To store the words for random access to add the checksum word later. + std::vector words_store; int n = num_words; - if (sizeof(src.data) % 4 != 0) return false; + if (sizeof(src.data) % 4 != 0 || sizeof(src.data) == 0) return false; // 8 bytes -> 3 words. 8 digits base 16 -> 3 digits base 1626 for (unsigned int i=0; i < sizeof(src.data)/4; i++, words += ' ') @@ -263,13 +286,20 @@ namespace crypto words += words_array[w2]; words += ' '; words += words_array[w3]; + + words_store.push_back(words_array[w1]); + words_store.push_back(words_array[w2]); + words_store.push_back(words_array[w3]); } + + words.pop_back(); + words += (' ' + words_store[create_checksum_index(words)]); return false; } /*! * \brief Gets a list of seed languages that are supported. - * \param languages The list gets added to this. + * \param languages The list of languages gets added to this vector. */ void get_language_list(std::vector &languages) { @@ -287,6 +317,31 @@ namespace crypto } } + /*! + * \brief Tells if the module is currenly using an old style word list. + * \return true if it is currenly using an old style word list false if not. + */ + bool get_is_old_style_word_list() + { + if (is_uninitialized()) + { + throw std::runtime_error("ElectrumWords hasn't been initialized with a word list yet."); + } + return is_old_style_word_list; + } + + /*! + * \brief Tells if the seed passed is an old style seed or not. + * \param seed The seed to check (a space delimited concatenated word list) + * \return true if the seed passed is a old style seed false if not. + */ + bool get_is_old_style_seed(const std::string &seed) + { + std::vector wlist; + boost::split(wlist, seed, boost::is_any_of(" ")); + return wlist.size() != (seed_length + 1); + } + } } diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 687ac76cf..ffe2fdefb 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -43,18 +43,20 @@ /*! * \namespace crypto + * + * \brief crypto namespace. */ namespace crypto { /*! - * \namespace ElectrumWords + * \namespace crypto::ElectrumWords * - * \brief Mnemonic seed word generation and wallet restoration. + * \brief Mnemonic seed word generation and wallet restoration helper functions. */ namespace ElectrumWords { /*! - * \brief Called to initialize it work with a word list file. + * \brief Called to initialize it to work with a word list file. * \param language Language of the word list file. * \param old_word_list Whether it is to use the old style word list file. */ @@ -71,21 +73,28 @@ namespace crypto /*! * \brief Converts bytes (secret key) to seed words. * \param src Secret key - * \param words Space separated words get copied here. - * \return Whether it was successful or not. Unsuccessful if wrong key size. + * \param words Space delimited concatenated words get written here. + * \return true if successful false if not. Unsuccessful if wrong key size. */ bool bytes_to_words(const crypto::secret_key& src, std::string& words); /*! * \brief Gets a list of seed languages that are supported. - * \param languages The list gets added to this. + * \param languages The list of languages gets added to this vector. */ void get_language_list(std::vector &languages); /*! * \brief If the module is currenly using an old style word list. - * \return Whether it is currenly using an old style word list. + * \return true if it is currenly using an old style word list false if not. */ - bool get_is_old_style_mnemonics(); + bool get_is_old_style_word_list(); + + /*! + * \brief Tells if the seed passed is an old style seed or not. + * \param seed The seed to check (a space delimited concatenated word list) + * \return true if the seed passed is a old style seed false if not. + */ + bool get_is_old_style_seed(const std::string &seed); } } diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 9d6f23e6b..ee2b1346f 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -511,15 +511,19 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; - // Ask for language if it is not a wallet restore or if the old version of the wallet - // had given the user an old style word list. - if (!m_restore_deterministic_wallet || crypto::ElectrumWords::get_is_old_style_mnemonics()) + bool is_deprecated_wallet = m_restore_deterministic_wallet && + (crypto::ElectrumWords::get_is_old_style_word_list() || + crypto::ElectrumWords::get_is_old_style_seed(m_electrum_seed)); + + // Ask for seed language if it is not a wallet restore or if it was a deprecated wallet + // that was earlier used before this restore. + if (!m_restore_deterministic_wallet || is_deprecated_wallet) { - if (crypto::ElectrumWords::get_is_old_style_mnemonics()) + if (is_deprecated_wallet) { // The user had used an older version of the wallet with old style mnemonics. - message_writer(epee::log_space::console_color_green, false) << "\nYou have been using " << - "a deprecated word list file. Please use the new seed that we provide.\n"; + message_writer(epee::log_space::console_color_green, false) << "\nYou had been using " << + "a deprecated version of the wallet. Please use the new seed that we provide.\n"; } std::string mnemonic_language = get_mnemonic_language(); try From 230b80a5db7e2353b5f91ccca2933309b242810e Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sun, 28 Sep 2014 13:48:52 +0530 Subject: [PATCH 12/26] Minor code refactor and comment changes --- src/mnemonics/electrum-words.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index d0d90ed8a..c31344f61 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -66,7 +66,7 @@ namespace /*! * \brief Tells if the module hasn't been initialized with a word list file. - * \return Whether the module hasn't been initialized with a word list file. + * \return true if the module hasn't been initialized with a word list file false otherwise. */ bool is_uninitialized() { @@ -87,7 +87,7 @@ namespace input_stream.open(word_file.c_str(), std::ifstream::in); if (!input_stream) - throw std::runtime_error(std::string("Word list file couldn't be opened.")); + throw std::runtime_error("Word list file couldn't be opened."); std::string word; while (input_stream >> word) @@ -102,7 +102,7 @@ namespace /*! * \brief Tells if all the words passed in wlist was present in current word list file. * \param wlist List of words to match. - * \return Whether they were all present or not. + * \return true if all the words were present false if not. */ bool word_list_file_match(const std::vector &wlist) { @@ -146,7 +146,7 @@ namespace crypto /*! * \brief Called to initialize it work with a word list file. * \param language Language of the word list file. - * \param old_word_list Whether it is to use the old style word list file. + * \param old_word_list true it is to use the old style word list file false if not. */ void init(const std::string &language, bool old_word_list) { From 473c9644a9afd36f98efa904a8feb73286e988f0 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sun, 28 Sep 2014 13:49:47 +0530 Subject: [PATCH 13/26] Default to new style English seed --- src/mnemonics/electrum-words.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index c31344f61..9e1cc9ec8 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -259,7 +259,7 @@ namespace crypto { if (is_uninitialized()) { - init("", true); + init("english", true); } // To store the words for random access to add the checksum word later. From 2b60646c9bcf8519bbe4bbc5bb433d2a0d1141a7 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sun, 28 Sep 2014 14:10:23 +0530 Subject: [PATCH 14/26] Minor comment changes and code clean-up --- src/mnemonics/electrum-words.cpp | 2 +- src/mnemonics/electrum-words.h | 2 +- src/simplewallet/simplewallet.cpp | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 9e1cc9ec8..d1fae84cb 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -299,7 +299,7 @@ namespace crypto /*! * \brief Gets a list of seed languages that are supported. - * \param languages The list of languages gets added to this vector. + * \param languages The vector is set to the list of languages. */ void get_language_list(std::vector &languages) { diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index ffe2fdefb..c10e216e8 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -80,7 +80,7 @@ namespace crypto /*! * \brief Gets a list of seed languages that are supported. - * \param languages The list of languages gets added to this vector. + * \param languages The vector is set to the list of languages. */ void get_language_list(std::vector &languages); diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index ee2b1346f..7a47dead0 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -511,15 +511,15 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; - bool is_deprecated_wallet = m_restore_deterministic_wallet && + bool was_deprecated_wallet = m_restore_deterministic_wallet && (crypto::ElectrumWords::get_is_old_style_word_list() || crypto::ElectrumWords::get_is_old_style_seed(m_electrum_seed)); // Ask for seed language if it is not a wallet restore or if it was a deprecated wallet // that was earlier used before this restore. - if (!m_restore_deterministic_wallet || is_deprecated_wallet) + if (!m_restore_deterministic_wallet || was_deprecated_wallet) { - if (is_deprecated_wallet) + if (was_deprecated_wallet) { // The user had used an older version of the wallet with old style mnemonics. message_writer(epee::log_space::console_color_green, false) << "\nYou had been using " << From cf70cc7787507c693c72eb3a6a3d4b69c76ec9b0 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 30 Sep 2014 18:17:56 +0530 Subject: [PATCH 15/26] Change seed message to '25' words from '24' words --- src/simplewallet/simplewallet.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index b10feb929..24ba3424e 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -211,7 +211,7 @@ bool simple_wallet::seed(const std::vector &args/* = std::vector Date: Tue, 30 Sep 2014 23:30:27 +0530 Subject: [PATCH 16/26] Is forgiving of spelling mistakes beyond the 1st 4 characters. --- src/mnemonics/electrum-words.cpp | 97 ++++++++++++++++++++++---------- src/mnemonics/electrum-words.h | 7 ++- 2 files changed, 72 insertions(+), 32 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index d1fae84cb..d48df1436 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -64,6 +64,7 @@ namespace const std::string LANGUAGES_DIRECTORY = "languages"; const std::string OLD_WORD_FILE = "old-word-list"; + const int unique_prefix_length = 4; /*! * \brief Tells if the module hasn't been initialized with a word list file. * \return true if the module hasn't been initialized with a word list file false otherwise. @@ -76,9 +77,10 @@ namespace /*! * \brief Create word list map and array data structres for use during inter-conversion between * words and secret key. - * \param word_file Path to the word list file from pwd. + * \param word_file Path to the word list file from pwd. + * \param has_checksum True if checksum was supplied false if not. */ - void create_data_structures(const std::string &word_file) + void create_data_structures(const std::string &word_file, bool has_checksum) { words_array.clear(); words_map.clear(); @@ -93,7 +95,15 @@ namespace while (input_stream >> word) { words_array.push_back(word); - words_map[word] = num_words; + if (has_checksum) + { + // Only if checksum was passed should we stick to just 4 char checks to be lenient about typos. + words_map[word.substr(0, unique_prefix_length)] = num_words; + } + else + { + words_map[word] = num_words; + } num_words++; } input_stream.close(); @@ -101,16 +111,27 @@ namespace /*! * \brief Tells if all the words passed in wlist was present in current word list file. - * \param wlist List of words to match. - * \return true if all the words were present false if not. + * \param wlist List of words to match. + * \param has_checksum If word list passed checksum test, we need to only do a 4 char check. + * \return true if all the words were present false if not. */ - bool word_list_file_match(const std::vector &wlist) + bool word_list_file_match(const std::vector &wlist, bool has_checksum) { for (std::vector::const_iterator it = wlist.begin(); it != wlist.end(); it++) { - if (words_map.count(*it) == 0) + if (has_checksum) { - return false; + if (words_map.count(it->substr(0, unique_prefix_length)) == 0) + { + return false; + } + } + else + { + if (words_map.count(*it) == 0) + { + return false; + } } } return true; @@ -118,13 +139,19 @@ namespace /*! * \brief Creates a checksum index in the word list array on the list of words. - * \param words Space separated list of words - * \return Checksum index + * \param word_list Vector of words + * \return Checksum index */ - uint32_t create_checksum_index(const std::string &words) + uint32_t create_checksum_index(const std::vector &word_list) { + std::string four_char_words = ""; + + for (std::vector::const_iterator it = word_list.begin(); it != word_list.end(); it++) + { + four_char_words += it->substr(0, unique_prefix_length); + } boost::crc_32_type result; - result.process_bytes(words.data(), words.length()); + result.process_bytes(four_char_words.data(), four_char_words.length()); return result.checksum() % seed_length; } } @@ -144,21 +171,22 @@ namespace crypto namespace ElectrumWords { /*! - * \brief Called to initialize it work with a word list file. - * \param language Language of the word list file. - * \param old_word_list true it is to use the old style word list file false if not. + * \brief Called to initialize it to work with a word list file. + * \param language Language of the word list file. + * \param has_checksum True if the checksum was passed false if not. + * \param old_word_list true it is to use the old style word list file false if not. */ - void init(const std::string &language, bool old_word_list) + void init(const std::string &language, bool has_checksum, bool old_word_list) { if (old_word_list) { // Use the old word list file if told to. - create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE); + create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE, has_checksum); is_old_style_word_list = true; } else { - create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language); + create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language, has_checksum); is_old_style_word_list = false; } if (num_words == 0) @@ -181,15 +209,17 @@ namespace crypto boost::split(wlist, words, boost::is_any_of(" ")); // If it is seed with a checksum. - if (wlist.size() == seed_length + 1) + bool has_checksum = (wlist.size() == seed_length + 1); + + if (has_checksum) { // The last word is the checksum. std::string last_word = wlist.back(); wlist.pop_back(); - std::string checksum = wlist[create_checksum_index(boost::algorithm::join(wlist, " "))]; + std::string checksum = wlist[create_checksum_index(wlist)]; - if (checksum != last_word) + if (checksum.substr(0, unique_prefix_length) != last_word.substr(0, unique_prefix_length)) { // Checksum fail return false; @@ -202,8 +232,8 @@ namespace crypto std::vector::iterator it; for (it = languages.begin(); it != languages.end(); it++) { - init(*it); - if (word_list_file_match(wlist)) + init(*it, has_checksum); + if (word_list_file_match(wlist, has_checksum)) { break; } @@ -211,8 +241,8 @@ namespace crypto // If no such file was found, see if the old style word list file has them all. if (it == languages.end()) { - init("", true); - if (!word_list_file_match(wlist)) + init("", has_checksum, true); + if (!word_list_file_match(wlist, has_checksum)) { return false; } @@ -227,9 +257,18 @@ namespace crypto uint32_t val; uint32_t w1, w2, w3; - w1 = words_map.at(wlist[i*3]); - w2 = words_map.at(wlist[i*3 + 1]); - w3 = words_map.at(wlist[i*3 + 2]); + if (has_checksum) + { + w1 = words_map.at(wlist[i*3].substr(0, unique_prefix_length)); + w2 = words_map.at(wlist[i*3 + 1].substr(0, unique_prefix_length)); + w3 = words_map.at(wlist[i*3 + 2].substr(0, unique_prefix_length)); + } + else + { + w1 = words_map.at(wlist[i*3]); + w2 = words_map.at(wlist[i*3 + 1]); + w3 = words_map.at(wlist[i*3 + 2]); + } val = w1 + n * (((n - w1) + w2) % n) + n * n * (((n - w2) + w3) % n); @@ -293,7 +332,7 @@ namespace crypto } words.pop_back(); - words += (' ' + words_store[create_checksum_index(words)]); + words += (' ' + words_store[create_checksum_index(words_store)]); return false; } diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index c10e216e8..95c420562 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -57,10 +57,11 @@ namespace crypto { /*! * \brief Called to initialize it to work with a word list file. - * \param language Language of the word list file. - * \param old_word_list Whether it is to use the old style word list file. + * \param language Language of the word list file. + * \param has_checksum True if the checksum was passed false if not. + * \param old_word_list true it is to use the old style word list file false if not. */ - void init(const std::string &language, bool old_word_list=false); + void init(const std::string &language, bool has_checksum=true, bool old_word_list=false); /*! * \brief Converts seed words to bytes (secret key). From 423bf69dca3892806d5b80e88f4348a4adce3612 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 30 Sep 2014 23:53:02 +0530 Subject: [PATCH 17/26] Added attribution to Electrum for their word-lists --- src/mnemonics/electrum-words.cpp | 5 +++++ src/mnemonics/wordlists/languages/english | 1 + src/mnemonics/wordlists/languages/japanese | 1 + src/mnemonics/wordlists/languages/spanish | 1 + 4 files changed, 8 insertions(+) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index d48df1436..d1cef443c 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -94,6 +94,11 @@ namespace std::string word; while (input_stream >> word) { + if (word.length() == 0 || word[0] == '#') + { + // Skip empty and comment lines + continue; + } words_array.push_back(word); if (has_checksum) { diff --git a/src/mnemonics/wordlists/languages/english b/src/mnemonics/wordlists/languages/english index 942040ed5..714f66dac 100644 --- a/src/mnemonics/wordlists/languages/english +++ b/src/mnemonics/wordlists/languages/english @@ -1,3 +1,4 @@ +# Originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin abandon ability able diff --git a/src/mnemonics/wordlists/languages/japanese b/src/mnemonics/wordlists/languages/japanese index aa7673fce..cb28b89d8 100644 --- a/src/mnemonics/wordlists/languages/japanese +++ b/src/mnemonics/wordlists/languages/japanese @@ -1,3 +1,4 @@ +# Originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin あい あいこくしん あう diff --git a/src/mnemonics/wordlists/languages/spanish b/src/mnemonics/wordlists/languages/spanish index d0900c2c7..29f5b3a73 100644 --- a/src/mnemonics/wordlists/languages/spanish +++ b/src/mnemonics/wordlists/languages/spanish @@ -1,3 +1,4 @@ +# Originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin ábaco abdomen abeja From 6c3b85de21e68ab22359e7c661f590789a6f4354 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Wed, 1 Oct 2014 21:22:13 +0530 Subject: [PATCH 18/26] Separated word lists to header files --- src/mnemonics/electrum-words.cpp | 6 + src/mnemonics/english.h | 2098 ++++++++++++++++++++++++++++++ src/mnemonics/japanese.h | 2098 ++++++++++++++++++++++++++++++ src/mnemonics/old_english.h | 1676 ++++++++++++++++++++++++ src/mnemonics/portuguese.h | 1677 ++++++++++++++++++++++++ src/mnemonics/spanish.h | 2098 ++++++++++++++++++++++++++++++ 6 files changed, 9653 insertions(+) create mode 100644 src/mnemonics/english.h create mode 100644 src/mnemonics/japanese.h create mode 100644 src/mnemonics/old_english.h create mode 100644 src/mnemonics/portuguese.h create mode 100644 src/mnemonics/spanish.h diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index d1cef443c..334bc578f 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -50,6 +50,12 @@ #include #include +#include "english.h" +#include "spanish.h" +#include "portuguese.h" +#include "japanese.h" +#include "old_english.h" + namespace { int num_words = 0; diff --git a/src/mnemonics/english.h b/src/mnemonics/english.h new file mode 100644 index 000000000..f1bd3fb64 --- /dev/null +++ b/src/mnemonics/english.h @@ -0,0 +1,2098 @@ +#include +#include + +std::vector& word_list_english() +{ + static std::vector word_list( + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep", + "slender", + "slice", + "slide", + "slight", + "slim", + "slogan", + "slot", + "slow", + "slush", + "small", + "smart", + "smile", + "smoke", + "smooth", + "snack", + "snake", + "snap", + "sniff", + "snow", + "soap", + "soccer", + "social", + "sock", + "soda", + "soft", + "solar", + "soldier", + "solid", + "solution", + "solve", + "someone", + "song", + "soon", + "sorry", + "sort", + "soul", + "sound", + "soup", + "source", + "south", + "space", + "spare", + "spatial", + "spawn", + "speak", + "special", + "speed", + "spell", + "spend", + "sphere", + "spice", + "spider", + "spike", + "spin", + "spirit", + "split", + "spoil", + "sponsor", + "spoon", + "sport", + "spot", + "spray", + "spread", + "spring", + "spy", + "square", + "squeeze", + "squirrel", + "stable", + "stadium", + "staff", + "stage", + "stairs", + "stamp", + "stand", + "start", + "state", + "stay", + "steak", + "steel", + "stem", + "step", + "stereo", + "stick", + "still", + "sting", + "stock", + "stomach", + "stone", + "stool", + "story", + "stove", + "strategy", + "street", + "strike", + "strong", + "struggle", + "student", + "stuff", + "stumble", + "style", + "subject", + "submit", + "subway", + "success", + "such", + "sudden", + "suffer", + "sugar", + "suggest", + "suit", + "summer", + "sun", + "sunny", + "sunset", + "super", + "supply", + "supreme", + "sure", + "surface", + "surge", + "surprise", + "surround", + "survey", + "suspect", + "sustain", + "swallow", + "swamp", + "swap", + "swarm", + "swear", + "sweet", + "swift", + "swim", + "swing", + "switch", + "sword", + "symbol", + "symptom", + "syrup", + "system", + "table", + "tackle", + "tag", + "tail", + "talent", + "talk", + "tank", + "tape", + "target", + "task", + "taste", + "tattoo", + "taxi", + "teach", + "team", + "tell", + "ten", + "tenant", + "tennis", + "tent", + "term", + "test", + "text", + "thank", + "that", + "theme", + "then", + "theory", + "there", + "they", + "thing", + "this", + "thought", + "three", + "thrive", + "throw", + "thumb", + "thunder", + "ticket", + "tide", + "tiger", + "tilt", + "timber", + "time", + "tiny", + "tip", + "tired", + "tissue", + "title", + "toast", + "tobacco", + "today", + "toddler", + "toe", + "together", + "toilet", + "token", + "tomato", + "tomorrow", + "tone", + "tongue", + "tonight", + "tool", + "tooth", + "top", + "topic", + "topple", + "torch", + "tornado", + "tortoise", + "toss", + "total", + "tourist", + "toward", + "tower", + "town", + "toy", + "track", + "trade", + "traffic", + "tragic", + "train", + "transfer", + "trap", + "trash", + "travel", + "tray", + "treat", + "tree", + "trend", + "trial", + "tribe", + "trick", + "trigger", + "trim", + "trip", + "trophy", + "trouble", + "truck", + "true", + "truly", + "trumpet", + "trust", + "truth", + "try", + "tube", + "tuition", + "tumble", + "tuna", + "tunnel", + "turkey", + "turn", + "turtle", + "twelve", + "twenty", + "twice", + "twin", + "twist", + "two", + "type", + "typical", + "ugly", + "umbrella", + "unable", + "unaware", + "uncle", + "uncover", + "under", + "undo", + "unfair", + "unfold", + "unhappy", + "uniform", + "unique", + "unit", + "universe", + "unknown", + "unlock", + "until", + "unusual", + "unveil", + "update", + "upgrade", + "uphold", + "upon", + "upper", + "upset", + "urban", + "urge", + "usage", + "use", + "used", + "useful", + "useless", + "usual", + "utility", + "vacant", + "vacuum", + "vague", + "valid", + "valley", + "valve", + "van", + "vanish", + "vapor", + "various", + "vast", + "vault", + "vehicle", + "velvet", + "vendor", + "venture", + "venue", + "verb", + "verify", + "version", + "very", + "vessel", + "veteran", + "viable", + "vibrant", + "vicious", + "victory", + "video", + "view", + "village", + "vintage", + "violin", + "virtual", + "virus", + "visa", + "visit", + "visual", + "vital", + "vivid", + "vocal", + "voice", + "void", + "volcano", + "volume", + "vote", + "voyage", + "wage", + "wagon", + "wait", + "walk", + "wall", + "walnut", + "want", + "warfare", + "warm", + "warrior", + "wash", + "wasp", + "waste", + "water", + "wave", + "way", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "web", + "wedding", + "weekend", + "weird", + "welcome", + "west", + "wet", + "whale", + "what", + "wheat", + "wheel", + "when", + "where", + "whip", + "whisper", + "wide", + "width", + "wife", + "wild", + "will", + "win", + "window", + "wine", + "wing", + "wink", + "winner", + "winter", + "wire", + "wisdom", + "wise", + "wish", + "witness", + "wolf", + "woman", + "wonder", + "wood", + "wool", + "word", + "work", + "world", + "worry", + "worth", + "wrap", + "wreck", + "wrestle", + "wrist", + "write", + "wrong", + "yard", + "year", + "yellow", + "you", + "young", + "youth", + "zebra", + "zero", + "zone", + "zoo" + ); + return word_list; +} + +std::unordered_map& word_map_english() +{ + static std::unordered_map word_map; + if (word_map.size() > 0) + { + return word_map; + } + std::vector word_list = word_list_english(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + word_map[*it] = ii; + } + return word_map; +} + +std::unordered_map& trimmed_word_map_english() +{ + static std::unordered_map trimmed_word_map; + if (trimmed_word_map.size() > 0) + { + return trimmed_word_map; + } + std::vector word_list = word_list_english(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + if (it->length() > 4) + { + trimmed_word_map[it->substr(0, 4)] = ii; + } + else + { + trimmed_word_map[*it] = ii; + } + } + return trimmed_word_map; +} diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h new file mode 100644 index 000000000..47476e849 --- /dev/null +++ b/src/mnemonics/japanese.h @@ -0,0 +1,2098 @@ +#include +#include + +std::vector& word_list_japanese() +{ + static std::vector word_list( + "あい", + "あいこくしん", + "あう", + "あお", + "あおぞら", + "あか", + "あかちゃん", + "あき", + "あきる", + "あく", + "あさ", + "あさひ", + "あし", + "あずき", + "あせ", + "あそぶ", + "あたる", + "あつい", + "あな", + "あに", + "あね", + "あひる", + "あまい", + "あみ", + "あめ", + "あめりか", + "あやまる", + "あゆむ", + "あらいぐま", + "あらし", + "あり", + "ある", + "あれ", + "あわ", + "あんこ", + "いう", + "いえ", + "いおん", + "いか", + "いがい", + "いかいよう", + "いけ", + "いけん", + "いこく", + "いこつ", + "いさん", + "いし", + "いじゅう", + "いす", + "いせい", + "いせえび", + "いせかい", + "いせき", + "いそうろう", + "いそがしい", + "いたりあ", + "いてざ", + "いてん", + "いと", + "いない", + "いなか", + "いぬ", + "いね", + "いのち", + "いのる", + "いはつ", + "いはん", + "いびき", + "いひん", + "いふく", + "いへん", + "いほう", + "いま", + "いみ", + "いみん", + "いも", + "いもうと", + "いもたれ", + "いもり", + "いや", + "いやす", + "いよかん", + "いよく", + "いらい", + "いらすと", + "いりぐち", + "いりょう", + "いりょうひ", + "いる", + "いれい", + "いれもの", + "いれる", + "いろ", + "いろえんぴつ", + "いわ", + "いわう", + "いわかん", + "いんげんまめ", + "うえ", + "うおざ", + "うかぶ", + "うきわ", + "うく", + "うくらいな", + "うくれれ", + "うけつぐ", + "うけつけ", + "うける", + "うごく", + "うこん", + "うさぎ", + "うし", + "うしなう", + "うしろ", + "うしろがみ", + "うすい", + "うすぎ", + "うせつ", + "うそ", + "うた", + "うちあわせ", + "うちがわ", + "うちき", + "うつ", + "うなぎ", + "うなじ", + "うに", + "うねる", + "うのう", + "うぶげ", + "うぶごえ", + "うま", + "うまれる", + "うみ", + "うむ", + "うめ", + "うめる", + "うもう", + "うやまう", + "うよく", + "うら", + "うらない", + "うる", + "うるさい", + "うれしい", + "うろこ", + "うわき", + "うわさ", + "えい", + "えいえん", + "えいが", + "えいぎょう", + "えいご", + "えおり", + "えき", + "えきたい", + "えくせる", + "えさ", + "えしゃく", + "えすて", + "えつらん", + "えと", + "えのぐ", + "えび", + "えほうまき", + "えほん", + "えま", + "えまき", + "えもじ", + "えもの", + "えらい", + "えらぶ", + "えり", + "えりあ", + "える", + "えん", + "えんえん", + "おきる", + "おく", + "おけ", + "おこる", + "おしえる", + "おやゆび", + "おらんだ", + "かあつ", + "かい", + "かう", + "かお", + "かがし", + "かき", + "かく", + "かこ", + "かさ", + "かす", + "かち", + "かつ", + "かなざわし", + "かに", + "かね", + "かのう", + "かほう", + "かほご", + "かまぼこ", + "かみ", + "かむ", + "かめれおん", + "かも", + "かゆい", + "からい", + "かるい", + "かろう", + "かわ", + "かわら", + "きあい", + "きあつ", + "きいろ", + "ぎいん", + "きうい", + "きうん", + "きえる", + "きおう", + "きおく", + "きおち", + "きおん", + "きか", + "きかい", + "きかく", + "きかん", + "きかんしゃ", + "きぎ", + "ききて", + "きく", + "きくばり", + "きくらげ", + "きけん", + "きけんせい", + "きこう", + "きこえる", + "きこく", + "きさい", + "きさく", + "きさま", + "きさらぎ", + "きし", + "きしゅ", + "きす", + "きすう", + "きせい", + "きせき", + "きせつ", + "きそ", + "きそう", + "きそく", + "きぞく", + "ぎそく", + "きぞん", + "きた", + "きたえる", + "きち", + "きちょう", + "きつえん", + "きつつき", + "きつね", + "きてい", + "きどう", + "きどく", + "きない", + "きなが", + "きぬ", + "きぬごし", + "きねん", + "きのう", + "きはく", + "きびしい", + "きひん", + "きふ", + "ぎふ", + "きふく", + "ぎぼ", + "きほう", + "きぼう", + "きほん", + "きまる", + "きみ", + "きみつ", + "ぎむ", + "きむずかしい", + "きめ", + "きめる", + "きもだめし", + "きもち", + "きやく", + "きよう", + "きらい", + "きらく", + "きり", + "きる", + "きれい", + "きれつ", + "きろく", + "ぎろん", + "きわめる", + "ぐあい", + "くい", + "くいず", + "くうかん", + "くうき", + "くうぐん", + "くうこう", + "くうそう", + "くうふく", + "くうぼ", + "くかん", + "くき", + "くきょう", + "くげん", + "ぐこう", + "くさ", + "くさい", + "くさき", + "くさばな", + "くさる", + "くし", + "くしゃみ", + "くしょう", + "くすのき", + "くすり", + "くすりゆび", + "くせ", + "くせげ", + "くせん", + "くたびれる", + "くち", + "くちこみ", + "くちさき", + "くつ", + "くつした", + "くつろぐ", + "くとうてん", + "くどく", + "くなん", + "くに", + "くねくね", + "くのう", + "くふう", + "くま", + "くみあわせ", + "くみたてる", + "くむ", + "くめる", + "くやくしょ", + "くらす", + "くり", + "くれる", + "くろ", + "くろう", + "くわしい", + "ぐんじょ", + "けあな", + "けいけん", + "けいこ", + "けいさい", + "けいさつ", + "げいのうじん", + "けいれき", + "けいれつ", + "けいれん", + "けいろ", + "けおとす", + "けおりもの", + "けが", + "げき", + "げきか", + "げきげん", + "げきだん", + "げきちん", + "げきど", + "げきは", + "げきやく", + "げこう", + "げこくじょう", + "けさ", + "げざい", + "けさき", + "げざん", + "けしき", + "けしごむ", + "けしょう", + "けす", + "げすと", + "けた", + "げた", + "けたば", + "けち", + "けちゃっぷ", + "けちらす", + "けつ", + "けつあつ", + "けつい", + "けつえき", + "けっこん", + "けつじょ", + "けってい", + "けつまつ", + "げつようび", + "げつれい", + "けつろん", + "げどく", + "けとばす", + "けとる", + "けなげ", + "けなす", + "けなみ", + "けぬき", + "げねつ", + "けねん", + "けはい", + "げひん", + "けぶかい", + "げぼく", + "けまり", + "けみかる", + "けむし", + "けむり", + "けもの", + "けらい", + "ける", + "げろ", + "けろけろ", + "けわしい", + "けんい", + "けんえつ", + "けんお", + "けんか", + "げんき", + "けんきゅう", + "けんきょ", + "けんけい", + "けんけつ", + "けんげん", + "けんこう", + "けんさ", + "けんさく", + "けんしゅう", + "けんしゅつ", + "けんしん", + "けんすう", + "けんそう", + "げんそう", + "けんそん", + "げんち", + "けんちく", + "けんてい", + "げんてい", + "けんとう", + "けんない", + "けんにん", + "げんぶつ", + "けんま", + "けんみん", + "けんめい", + "けんらん", + "けんり", + "けんりつ", + "こあくま", + "こい", + "ごい", + "こいびと", + "こうい", + "こうえん", + "こうか", + "こうかい", + "こうかん", + "こうさい", + "こうさん", + "こうしん", + "こうず", + "こうすい", + "こうせん", + "こうそう", + "こうそく", + "こうたい", + "こうちゃ", + "こうつう", + "こうてい", + "こうとうぶ", + "こうない", + "こうはい", + "こうはん", + "こうもく", + "こえ", + "こえる", + "こおり", + "ごがつ", + "こかん", + "こく", + "こくご", + "こくない", + "こくはく", + "こけい", + "こける", + "ここ", + "こころ", + "ごさ", + "こさめ", + "こし", + "こしつ", + "こす", + "こすう", + "こせい", + "こせき", + "こぜん", + "こそだて", + "こたい", + "こたえる", + "こたつ", + "こちょう", + "こっか", + "こつこつ", + "こつばん", + "こつぶ", + "こてい", + "こてん", + "こと", + "ことがら", + "ことし", + "こなごな", + "こねこね", + "このまま", + "このみ", + "このよ", + "こはん", + "ごはん", + "ごび", + "こひつじ", + "こふう", + "こふん", + "こぼれる", + "ごま", + "こまかい", + "こまつし", + "こまつな", + "こまる", + "こむ", + "こむぎこ", + "こめ", + "こもじ", + "こもち", + "こもの", + "こもん", + "こや", + "こやく", + "こやま", + "こゆう", + "こゆび", + "こよい", + "こよう", + "こりる", + "こる", + "これくしょん", + "ころっけ", + "こわもて", + "こわれる", + "こん", + "こんいん", + "こんかい", + "こんき", + "こんしゅう", + "こんしゅん", + "こんすい", + "こんだて", + "こんだん", + "こんとん", + "こんなん", + "こんびに", + "こんぽう", + "こんぽん", + "こんまけ", + "こんや", + "こんやく", + "こんれい", + "こんわく", + "さいかい", + "さいがい", + "さいきん", + "さいご", + "さいこん", + "さいしょ", + "さうな", + "さお", + "さかいし", + "さかな", + "さかみち", + "さき", + "さく", + "さくし", + "さくじょ", + "さくひん", + "さくら", + "さけ", + "さこく", + "さこつ", + "さたん", + "さつえい", + "さっか", + "さっきょく", + "さつじん", + "さつたば", + "さつまいも", + "さてい", + "さといも", + "さとう", + "さとおや", + "さとる", + "さのう", + "さば", + "さばく", + "さべつ", + "さほう", + "さほど", + "さます", + "さみしい", + "さみだれ", + "さむけ", + "さめ", + "さめる", + "さやえんどう", + "さゆう", + "さよう", + "さよく", + "さら", + "さらだ", + "さる", + "さわやか", + "さわる", + "さんいん", + "さんか", + "さんきゃく", + "さんこう", + "さんさい", + "さんざん", + "さんすう", + "さんせい", + "さんそ", + "さんそん", + "さんち", + "さんちょう", + "さんま", + "さんみ", + "さんらん", + "しあい", + "しあげ", + "しあさって", + "しあわせ", + "しいく", + "しいん", + "しうち", + "しえい", + "しお", + "しおけ", + "しか", + "しかい", + "しかく", + "じかん", + "した", + "したぎ", + "したて", + "したみ", + "しちょう", + "しちょうそん", + "しちりん", + "じつじ", + "してい", + "してき", + "してつ", + "してん", + "しとう", + "じどう", + "しなぎれ", + "しなもの", + "しなん", + "しねま", + "しねん", + "しのぐ", + "しのぶ", + "しはい", + "しばかり", + "しはつ", + "じはつ", + "しはらい", + "しはん", + "しひょう", + "じふ", + "しふく", + "じぶん", + "しへい", + "しほう", + "しほん", + "しま", + "しまう", + "しまる", + "しみ", + "じみ", + "しみん", + "じむ", + "しむける", + "しめい", + "しめる", + "しもん", + "しゃいん", + "しゃうん", + "しゃおん", + "しゃかい", + "じゃがいも", + "しやくしょ", + "しゃくほう", + "しゃけん", + "しゃこ", + "しゃこう", + "しゃざい", + "しゃしん", + "しゃせん", + "しゃそう", + "しゃたい", + "しゃたく", + "しゃちょう", + "しゃっきん", + "じゃま", + "じゃり", + "しゃりょう", + "しゃりん", + "しゃれい", + "しゅうえん", + "しゅうかい", + "しゅうきん", + "しゅうけい", + "しゅうりょう", + "しゅらば", + "しょうか", + "しょうかい", + "しょうきん", + "しょうじき", + "しょくざい", + "しょくたく", + "しょっけん", + "しょどう", + "しょもつ", + "しん", + "しんか", + "しんこう", + "しんせいじ", + "しんちく", + "しんりん", + "すあげ", + "すあし", + "すあな", + "ずあん", + "すいか", + "すいとう", + "すう", + "すうがく", + "すうじつ", + "すうせん", + "すおどり", + "すき", + "すきま", + "すく", + "すくう", + "すくない", + "すける", + "すこし", + "ずさん", + "すし", + "すずしい", + "すすめる", + "すそ", + "ずっしり", + "ずっと", + "すで", + "すてき", + "すてる", + "すな", + "すなっく", + "すなっぷ", + "すね", + "すねる", + "すのこ", + "すはだ", + "すばらしい", + "ずひょう", + "ずぶぬれ", + "すぶり", + "すふれ", + "すべて", + "すべる", + "ずほう", + "すぼん", + "すまい", + "すみ", + "すむ", + "すめし", + "すもう", + "すやき", + "すらいす", + "すらいど", + "すらすら", + "すり", + "する", + "するめ", + "すれちがう", + "すろっと", + "すわる", + "すんぜん", + "すんぽう", + "せあぶら", + "せいか", + "せいかい", + "せいかつ", + "せおう", + "せかい", + "せかいかん", + "せかいし", + "せかいじゅう", + "せき", + "せきにん", + "せきむ", + "せきゆ", + "せきらんうん", + "せけん", + "せこう", + "せすじ", + "せたい", + "せたけ", + "せっかい", + "せっかく", + "せっき", + "せっきゃく", + "せっきょく", + "せっきん", + "ぜっく", + "せっけん", + "せっこつ", + "せっさたくま", + "せつぞく", + "せつだん", + "せつでん", + "せっぱん", + "せつび", + "せつぶん", + "せつめい", + "せつりつ", + "せと", + "せなか", + "せのび", + "せはば", + "せぼね", + "せまい", + "せまる", + "せみ", + "せめる", + "せもたれ", + "せりふ", + "せわ", + "せん", + "ぜんあく", + "せんい", + "せんえい", + "せんか", + "せんきょ", + "せんく", + "せんけつ", + "せんげん", + "ぜんご", + "せんさい", + "せんし", + "せんしゅ", + "せんす", + "せんすい", + "せんせい", + "せんぞ", + "せんそう", + "せんたく", + "せんち", + "せんちゃ", + "せんちゃく", + "せんちょう", + "せんてい", + "せんとう", + "せんぬき", + "せんねん", + "ぜんぶ", + "せんぷうき", + "せんぷく", + "ぜんぽう", + "せんむ", + "せんめい", + "せんめんじょ", + "せんもん", + "せんやく", + "せんゆう", + "せんよう", + "ぜんら", + "ぜんりゃく", + "せんりょく", + "せんれい", + "せんろ", + "そあく", + "そいとげる", + "そいね", + "そう", + "ぞう", + "そうがんきょう", + "そうき", + "そうご", + "そうなん", + "そうび", + "そうひょう", + "そうめん", + "そうり", + "そうりょ", + "そえもの", + "そえん", + "そかい", + "そがい", + "そぐ", + "そげき", + "そこう", + "そこそこ", + "そざい", + "そし", + "そしな", + "そせい", + "そせん", + "そそぐ", + "そだてる", + "そつう", + "そつえん", + "そっかん", + "そつぎょう", + "そっけつ", + "そっこう", + "そっせん", + "そっと", + "そで", + "そと", + "そとがわ", + "そとづら", + "そなえる", + "そなた", + "そば", + "そふ", + "そふぼ", + "そぼ", + "そぼく", + "そぼろ", + "そまつ", + "そまる", + "そむく", + "そむりえ", + "そめる", + "そもそも", + "そよかぜ", + "そら", + "そらまめ", + "そり", + "そる", + "そろう", + "そんかい", + "そんけい", + "そんざい", + "そんしつ", + "そんしょう", + "そんぞく", + "そんちょう", + "ぞんび", + "ぞんぶん", + "そんみん", + "たあい", + "たいいん", + "たいうん", + "たいえき", + "たいおう", + "だいおう", + "たいか", + "たいかい", + "たいき", + "たいきけん", + "たいぐう", + "たいくつ", + "たいけい", + "たいけつ", + "たいけん", + "たいこ", + "たいこう", + "たいさ", + "たいさん", + "たいしゅつ", + "だいじょうぶ", + "たいしょく", + "だいず", + "だいすき", + "たいせい", + "たいせつ", + "たいせん", + "たいそう", + "たいちょう", + "だいちょう", + "たいとう", + "たいない", + "たいねつ", + "たいのう", + "たいは", + "たいはん", + "たいひ", + "たいふう", + "たいへん", + "たいほ", + "たいまつばな", + "たいまん", + "たいみんぐ", + "たいむ", + "たいめん", + "たいやき", + "たいやく", + "たいよう", + "たいら", + "たいりょう", + "たいりょく", + "たいる", + "たいわ", + "たいわん", + "たうえ", + "たえる", + "たおす", + "たおる", + "たかい", + "たかね", + "たき", + "たきび", + "たくさん", + "たけ", + "たこ", + "たこく", + "たこやき", + "たさい", + "ださい", + "たしざん", + "たす", + "たすける", + "たそがれ", + "たたかう", + "たたく", + "たちば", + "たちばな", + "たつ", + "だっかい", + "だっきゃく", + "だっこ", + "だっしめん", + "だっしゅつ", + "だったい", + "たて", + "たてる", + "たとえる", + "たな", + "たにん", + "たぬき", + "たね", + "たのしみ", + "たはつ", + "たび", + "たぶん", + "たべる", + "たぼう", + "たほうめん", + "たま", + "たまご", + "たまる", + "だむる", + "ためいき", + "ためす", + "ためる", + "たもつ", + "たやすい", + "たよる", + "たら", + "たらす", + "たりきほんがん", + "たりょう", + "たりる", + "たる", + "たると", + "たれる", + "たれんと", + "たろっと", + "たわむれる", + "たん", + "だんあつ", + "たんい", + "たんおん", + "たんか", + "たんき", + "たんけん", + "たんご", + "たんさく", + "たんさん", + "たんし", + "たんしゅく", + "たんじょうび", + "だんせい", + "たんそく", + "たんたい", + "たんち", + "だんち", + "たんちょう", + "たんてい", + "たんてき", + "たんとう", + "だんな", + "たんにん", + "だんねつ", + "たんのう", + "たんぴん", + "たんまつ", + "たんめい", + "だんれつ", + "だんろ", + "だんわ", + "ちあい", + "ちあん", + "ちい", + "ちいき", + "ちいさい", + "ちえ", + "ちえん", + "ちか", + "ちかい", + "ちきゅう", + "ちきん", + "ちけい", + "ちけいず", + "ちけん", + "ちこく", + "ちさい", + "ちしき", + "ちしりょう", + "ちず", + "ちせい", + "ちそう", + "ちたい", + "ちたん", + "ちちおや", + "ちつじょ", + "ちてき", + "ちてん", + "ちぬき", + "ちぬり", + "ちのう", + "ちひょう", + "ちへいせん", + "ちほう", + "ちまた", + "ちみつ", + "ちみどろ", + "ちめいど", + "ちゅうい", + "ちゅうおう", + "ちゅうおうく", + "ちゅうがっこう", + "ちゅうごく", + "ちゆりょく", + "ちょうさ", + "ちょうし", + "ちらし", + "ちらみ", + "ちり", + "ちりがみ", + "ちる", + "ちるど", + "ちわわ", + "ちんたい", + "ちんもく", + "ついか", + "つうか", + "つうじょう", + "つうじる", + "つうはん", + "つうわ", + "つえ", + "つかう", + "つかれる", + "つき", + "つく", + "つくね", + "つくる", + "つけね", + "つける", + "つごう", + "つた", + "つたえる", + "つち", + "つつじ", + "つとめる", + "つな", + "つながる", + "つなみ", + "つねづね", + "つの", + "つのる", + "つば", + "つぶ", + "つぶす", + "つぼ", + "つま", + "つまらない", + "つまる", + "つみ", + "つみき", + "つむ", + "つめたい", + "つもる", + "つや", + "つよい", + "つり", + "つるぼ", + "つるみく", + "つわもの", + "つわり", + "てあし", + "てあて", + "てあみ", + "ていか", + "ていき", + "ていけい", + "ていけつ", + "ていけつあつ", + "ていこく", + "ていさつ", + "ていし", + "ていしゃ", + "ていせい", + "ていたい", + "ていど", + "ていねい", + "ていひょう", + "ていへん", + "ていぼう", + "てうち", + "ておくれ", + "てき", + "てくび", + "てこ", + "てさぎょう", + "てさげ", + "でし", + "てすり", + "てそう", + "てちがい", + "てちょう", + "てつがく", + "てつづき", + "てつや", + "でぬかえ", + "てぬき", + "てぬぐい", + "てのひら", + "てはい", + "てふだ", + "てほどき", + "てほん", + "てま", + "てまえ", + "てまきずし", + "てみじか", + "てみやげ", + "てら", + "てらす", + "でる", + "てれび", + "てろ", + "てわけ", + "てわたし", + "でんあつ", + "てんい", + "てんいん", + "てんかい", + "てんき", + "てんぐ", + "てんけん", + "でんげん", + "てんごく", + "てんさい", + "てんすう", + "でんち", + "てんてき", + "てんとう", + "てんない", + "てんぷ", + "てんぷら", + "てんぼうだい", + "てんめつ", + "てんらく", + "てんらんかい", + "でんりゅう", + "でんりょく", + "でんわ", + "どあ", + "どあい", + "といれ", + "とうむぎ", + "とおい", + "とおす", + "とかい", + "とかす", + "ときおり", + "ときどき", + "とくい", + "とくてい", + "とくてん", + "とくべつ", + "とけい", + "とける", + "とさか", + "とし", + "としょかん", + "とそう", + "とたん", + "とち", + "とちゅう", + "とつぜん", + "とつにゅう", + "ととのえる", + "とない", + "となえる", + "となり", + "とのさま", + "とばす", + "とぶ", + "とほ", + "とほう", + "どま", + "とまる", + "とら", + "とり", + "とる", + "とんかつ", + "ない", + "ないか", + "ないかく", + "ないこう", + "ないしょ", + "ないす", + "ないせん", + "ないそう", + "ないぞう", + "なおす", + "なく", + "なこうど", + "なさけ", + "なし", + "なす", + "なぜ", + "なぞ", + "なたでここ", + "なつ", + "なっとう", + "なつやすみ", + "ななおし", + "なにごと", + "なにもの", + "なにわ", + "なは", + "なび", + "なふだ", + "なべ", + "なまいき", + "なまえ", + "なまみ", + "なみ", + "なみだ", + "なめらか", + "なめる", + "なやむ", + "ならぶ", + "なる", + "なれる", + "なわ", + "なわとび", + "なわばり", + "にあう", + "にいがた", + "にうけ", + "におい", + "にかい", + "にがて", + "にきび", + "にく", + "にくしみ", + "にくまん", + "にげる", + "にさんかたんそ", + "にし", + "にしき", + "にす", + "にせもの", + "にちじ", + "にちじょう", + "にちようび", + "にっか", + "にっき", + "にっけい", + "にっこう", + "にっさん", + "にっしょく", + "にっすう", + "にっせき", + "にってい", + "になう", + "にほん", + "にまめ", + "にもつ", + "にやり", + "にゅういん", + "にゅうか", + "にゅうし", + "にゅうしゃ", + "にゅうだん", + "にゅうぶ", + "にら", + "にりんしゃ", + "にる", + "にわ", + "にわとり", + "にんい", + "にんか", + "にんき", + "にんげん", + "にんしき", + "にんしょう", + "にんしん", + "にんずう", + "にんそう", + "にんたい", + "にんち", + "にんてい", + "にんにく", + "にんぷ", + "にんまり", + "にんむ", + "にんめい", + "にんよう", + "ぬう", + "ぬか", + "ぬく", + "ぬくもり", + "ぬし", + "ぬの", + "ぬま", + "ぬめり", + "ぬらす", + "ぬる", + "ぬんちゃく", + "ねあげ", + "ねいき", + "ねいる", + "ねいろ", + "ねぎ", + "ねぐせ", + "ねくたい", + "ねくら", + "ねこ", + "ねこぜ", + "ねこむ", + "ねさげ", + "ねすごす", + "ねそべる", + "ねつい", + "ねつぞう", + "ねったい", + "ねったいぎょ", + "ねぶそく", + "ねふだ", + "ねぼう", + "ねほりはほり", + "ねまき", + "ねまわし", + "ねみみ", + "ねむい", + "ねもと", + "ねらう", + "ねる", + "ねわざ", + "ねんいり", + "ねんおし", + "ねんかん", + "ねんき", + "ねんきん", + "ねんぐ", + "ねんざ", + "ねんし", + "ねんちゃく", + "ねんちょう", + "ねんど", + "ねんぴ", + "ねんぶつ", + "ねんまく", + "ねんまつ", + "ねんりき", + "ねんりょう", + "ねんれい", + "のいず", + "のう", + "のおづま", + "のがす", + "のきなみ", + "のこぎり", + "のこす", + "のせる", + "のぞく", + "のぞむ", + "のたまう", + "のちほど", + "のっく", + "のばす", + "のはら", + "のべる", + "のぼる", + "のむ", + "のやま", + "のらいぬ", + "のらねこ", + "のり", + "のる", + "のれん", + "のんき", + "ばあい", + "はあく", + "ばあさん", + "はい", + "ばいか", + "ばいく", + "はいけん", + "はいご", + "はいこう", + "はいし", + "はいしゅつ", + "はいしん", + "はいすい", + "はいせつ", + "はいせん", + "はいそう", + "はいち", + "ばいばい", + "はう", + "はえ", + "はえる", + "はおる", + "はか", + "ばか", + "はかい", + "はかる", + "はき", + "はく", + "はくしゅ", + "はけん", + "はこ", + "はこぶ", + "はさみ", + "はさん", + "はし", + "はしご", + "はしる", + "ばす", + "はせる", + "ぱそこん", + "はそん", + "はたん", + "はち", + "はちみつ", + "はっか", + "はっかく", + "はっき", + "はっきり", + "はっくつ", + "はっけん", + "はっこう", + "はっさん", + "はっしゃ", + "はっしん", + "はったつ", + "はっちゃく", + "はっちゅう", + "はってん", + "はっぴょう", + "はっぽう", + "はて", + "はな", + "はなす", + "はなび", + "はにかむ", + "はね", + "はは", + "はぶらし", + "はま", + "はみがき", + "はむ", + "はむかう", + "はめつ", + "はやい", + "はら", + "はらう", + "はり", + "はる", + "はれ", + "はろうぃん", + "はわい", + "はんい", + "はんえい", + "はんえん", + "はんおん", + "はんかく", + "はんかち", + "はんきょう", + "はんこ", + "はんこう", + "はんしゃ", + "はんしん", + "はんすう", + "はんたい", + "はんだん", + "ぱんち", + "ぱんつ", + "はんてい", + "はんてん", + "はんとし", + "はんのう", + "はんぱ", + "はんぶん", + "はんぺん", + "はんぼうき", + "はんめい", + "はんめん", + "はんらん", + "はんろん", + "ひいき", + "ひうん", + "ひえる", + "ひかく", + "ひかり", + "ひかん", + "ひく", + "ひくい", + "ひけつ", + "ひこうき", + "ひこく", + "ひざ", + "ぴざ", + "ひさい", + "ひさしぶり", + "ひさん", + "ひし", + "ひじ", + "ひしょ", + "ひじょう", + "ひそか", + "ひそむ", + "ひたむき", + "ひたる", + "ひつぎ", + "ひっこし", + "ひっし", + "ひっす", + "ひつぜん", + "ひつよう", + "ひてい", + "ひと", + "ひとごみ", + "ひな", + "ひなん", + "ひねる", + "ひはん", + "ひびく", + "ひひょう", + "ひふ", + "ひほう", + "ひま", + "ひまん", + "ひみつ", + "ひめ", + "ひめい", + "ひめじし", + "ひも", + "ひやけ", + "ひやす", + "ひゆ", + "ひよう", + "びょうき", + "ひらく", + "ひりつ", + "ひりょう", + "ひる", + "ひれい", + "ひろい", + "ひろう", + "ひわ", + "ひんかく", + "ひんけつ", + "ひんこん", + "ひんし", + "ひんしつ", + "ひんしゅ", + "ひんそう", + "ぴんち", + "ひんぱん", + "びんぼう", + "ふあん", + "ふいうち", + "ふうけい", + "ふうせん", + "ふうとう", + "ふうふ", + "ふえ", + "ふえる", + "ふおん", + "ふか", + "ふかい", + "ふきん", + "ふく", + "ふくざつ", + "ふこう", + "ふさい", + "ふざい", + "ふしぎ", + "ふじみ", + "ふすま", + "ふせい", + "ふせぐ", + "ふそく", + "ふた", + "ふたん", + "ふち", + "ふちょう", + "ふつう", + "ふっかつ", + "ふっき", + "ふっきん", + "ふっこく", + "ふとる", + "ふとん", + "ふね", + "ふのう", + "ふはい", + "ふひょう", + "ふへん", + "ふまん", + "ふみん", + "ふむ", + "ふめつ", + "ふめん", + "ふゆ", + "ふよう", + "ふりこ", + "ふりる", + "ふる", + "ふるい", + "ふろ", + "ふんいき", + "ふんか", + "ぶんか", + "ぶんぐ", + "ふんしつ", + "ぶんせき", + "ふんそう", + "へい", + "へいき", + "へいさ", + "へいわ", + "へきが", + "へこむ", + "へそ", + "へた", + "べつ", + "べっど", + "ぺっと", + "へび", + "へや", + "へる", + "へんか", + "へんかん", + "へんきゃく", + "へんきん", + "へんさい", + "へんたい", + "ほあん", + "ほいく", + "ほうほう", + "ほえる", + "ほおん", + "ほかん", + "ほきょう", + "ぼきん", + "ほくろ", + "ほけつ", + "ほけん", + "ほこう", + "ほこる", + "ほさ", + "ほし", + "ほしつ", + "ほしゅ", + "ほしょう", + "ほす", + "ほせい", + "ぼせい", + "ほそい", + "ほそく", + "ほたて", + "ほたる", + "ぼち", + "ほっきょく", + "ほっさ", + "ほったん", + "ほとんど", + "ほめる", + "ほる", + "ほんい", + "ほんき", + "ほんけ", + "ほんしつ", + "まいにち", + "まう", + "まかい", + "まかせる", + "まく", + "まける", + "まこと", + "まさつ", + "ますく", + "まぜる", + "まち", + "まつ", + "まつり", + "まとめ", + "まなぶ", + "まぬけ", + "まね", + "まねく", + "まひ", + "まほう", + "まめ", + "まもる", + "まゆげ", + "まよう", + "まる", + "まろやか", + "まわす", + "まわり", + "まんが", + "まんかい", + "まんきつ", + "まんぞく", + "みいら", + "みうち", + "みかた", + "みかん", + "みぎ", + "みけん", + "みこん", + "みすい", + "みすえる", + "みせ", + "みそ", + "みち", + "みてい", + "みとめる", + "みなみかさい", + "みねらる", + "みのう", + "みほん", + "みみ", + "みもと", + "みやげ", + "みらい", + "みりょく", + "みる", + "みわく", + "むえき", + "むえん", + "むかし", + "むく", + "むこ", + "むさぼる", + "むし", + "むすこ", + "むすめ", + "むせる", + "むせん", + "むだ", + "むち", + "むなしい", + "むね", + "むのう", + "むやみ", + "むよう", + "むら", + "むり", + "むりょう", + "むれ", + "むろん", + "もうどうけん", + "もえる", + "もぎ", + "もくし", + "もくてき", + "もし", + "もんく", + "もんだい", + "やすい", + "やすみ", + "やそう", + "やたい", + "やちん", + "やね", + "やぶる", + "やま", + "やみ", + "やめる", + "ややこしい", + "やよい", + "やり", + "やわらかい", + "ゆけつ", + "ゆしゅつ", + "ゆせん", + "ゆそう", + "ゆたか", + "ゆちゃく", + "ゆでる", + "ゆび", + "ゆびわ", + "ゆめ", + "ゆれる", + "よう", + "よかぜ", + "よかん", + "よきん", + "よくせい", + "よくぼう", + "よけい", + "よさん", + "よそう", + "よそく", + "よち", + "よてい", + "よどがわく", + "よねつ", + "よむ", + "よめ", + "よやく", + "よゆう", + "よる", + "よろこぶ", + "らいう", + "らくがき", + "らくご", + "らくさつ", + "らくだ", + "らくたん", + "らしんばん", + "らせん", + "らぞく", + "らたい", + "らち", + "らっか", + "らっかせい", + "られつ", + "りえき", + "りか", + "りかい", + "りきさく", + "りきせつ", + "りく", + "りくぐん", + "りくつ", + "りけん", + "りこう", + "りし", + "りす", + "りせい", + "りそう", + "りそく", + "りてん", + "りねん", + "りゅう", + "りゆう", + "りゅうがく", + "りゅうこう", + "りゅうし", + "りゅうねん", + "りよう", + "りょうかい", + "りょうきん", + "りょうしん", + "りょうて", + "りょうど", + "りょうほう", + "りょうり", + "りりく", + "りれき", + "りろん", + "りんご", + "るいじ", + "るす", + "れいかん", + "れいぎ", + "れいせい", + "れいぞうこ", + "れいとう", + "れきし", + "れきだい", + "れんあい", + "れんけい", + "れんけつ", + "れんこう", + "れんこん", + "れんさ", + "れんさい", + "れんさく", + "れんしゃ", + "れんしゅう", + "れんぞく", + "ろうか", + "ろうご", + "ろうじん", + "ろうそく", + "ろか", + "ろくが", + "ろこつ", + "ろしゅつ", + "ろせん", + "ろてん", + "ろめん", + "ろれつ", + "ろんぎ", + "ろんぱ", + "ろんぶん", + "ろんり", + "わじまし" + ); + return word_list; +} + +std::unordered_map& word_map_japanese() +{ + static std::unordered_map word_map; + if (word_map.size() > 0) + { + return word_map; + } + std::vector word_list = word_list_japanese(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + word_map[*it] = ii; + } + return word_map; +} + +std::unordered_map& trimmed_word_map_japanese() +{ + static std::unordered_map trimmed_word_map; + if (trimmed_word_map.size() > 0) + { + return trimmed_word_map; + } + std::vector word_list = word_list_japanese(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + if (it->length() > 4) + { + trimmed_word_map[it->substr(0, 4)] = ii; + } + else + { + trimmed_word_map[*it] = ii; + } + } + return trimmed_word_map; +} diff --git a/src/mnemonics/old_english.h b/src/mnemonics/old_english.h new file mode 100644 index 000000000..3a315f6ef --- /dev/null +++ b/src/mnemonics/old_english.h @@ -0,0 +1,1676 @@ +#include +#include + +std::vector& word_list_old_english() +{ + static std::vector word_list( + "like", + "just", + "love", + "know", + "never", + "want", + "time", + "out", + "there", + "make", + "look", + "eye", + "down", + "only", + "think", + "heart", + "back", + "then", + "into", + "about", + "more", + "away", + "still", + "them", + "take", + "thing", + "even", + "through", + "long", + "always", + "world", + "too", + "friend", + "tell", + "try", + "hand", + "thought", + "over", + "here", + "other", + "need", + "smile", + "again", + "much", + "cry", + "been", + "night", + "ever", + "little", + "said", + "end", + "some", + "those", + "around", + "mind", + "people", + "girl", + "leave", + "dream", + "left", + "turn", + "myself", + "give", + "nothing", + "really", + "off", + "before", + "something", + "find", + "walk", + "wish", + "good", + "once", + "place", + "ask", + "stop", + "keep", + "watch", + "seem", + "everything", + "wait", + "got", + "yet", + "made", + "remember", + "start", + "alone", + "run", + "hope", + "maybe", + "believe", + "body", + "hate", + "after", + "close", + "talk", + "stand", + "own", + "each", + "hurt", + "help", + "home", + "god", + "soul", + "new", + "many", + "two", + "inside", + "should", + "true", + "first", + "fear", + "mean", + "better", + "play", + "another", + "gone", + "change", + "use", + "wonder", + "someone", + "hair", + "cold", + "open", + "best", + "any", + "behind", + "happen", + "water", + "dark", + "laugh", + "stay", + "forever", + "name", + "work", + "show", + "sky", + "break", + "came", + "deep", + "door", + "put", + "black", + "together", + "upon", + "happy", + "such", + "great", + "white", + "matter", + "fill", + "past", + "please", + "burn", + "cause", + "enough", + "touch", + "moment", + "soon", + "voice", + "scream", + "anything", + "stare", + "sound", + "red", + "everyone", + "hide", + "kiss", + "truth", + "death", + "beautiful", + "mine", + "blood", + "broken", + "very", + "pass", + "next", + "forget", + "tree", + "wrong", + "air", + "mother", + "understand", + "lip", + "hit", + "wall", + "memory", + "sleep", + "free", + "high", + "realize", + "school", + "might", + "skin", + "sweet", + "perfect", + "blue", + "kill", + "breath", + "dance", + "against", + "fly", + "between", + "grow", + "strong", + "under", + "listen", + "bring", + "sometimes", + "speak", + "pull", + "person", + "become", + "family", + "begin", + "ground", + "real", + "small", + "father", + "sure", + "feet", + "rest", + "young", + "finally", + "land", + "across", + "today", + "different", + "guy", + "line", + "fire", + "reason", + "reach", + "second", + "slowly", + "write", + "eat", + "smell", + "mouth", + "step", + "learn", + "three", + "floor", + "promise", + "breathe", + "darkness", + "push", + "earth", + "guess", + "save", + "song", + "above", + "along", + "both", + "color", + "house", + "almost", + "sorry", + "anymore", + "brother", + "okay", + "dear", + "game", + "fade", + "already", + "apart", + "warm", + "beauty", + "heard", + "notice", + "question", + "shine", + "began", + "piece", + "whole", + "shadow", + "secret", + "street", + "within", + "finger", + "point", + "morning", + "whisper", + "child", + "moon", + "green", + "story", + "glass", + "kid", + "silence", + "since", + "soft", + "yourself", + "empty", + "shall", + "angel", + "answer", + "baby", + "bright", + "dad", + "path", + "worry", + "hour", + "drop", + "follow", + "power", + "war", + "half", + "flow", + "heaven", + "act", + "chance", + "fact", + "least", + "tired", + "children", + "near", + "quite", + "afraid", + "rise", + "sea", + "taste", + "window", + "cover", + "nice", + "trust", + "lot", + "sad", + "cool", + "force", + "peace", + "return", + "blind", + "easy", + "ready", + "roll", + "rose", + "drive", + "held", + "music", + "beneath", + "hang", + "mom", + "paint", + "emotion", + "quiet", + "clear", + "cloud", + "few", + "pretty", + "bird", + "outside", + "paper", + "picture", + "front", + "rock", + "simple", + "anyone", + "meant", + "reality", + "road", + "sense", + "waste", + "bit", + "leaf", + "thank", + "happiness", + "meet", + "men", + "smoke", + "truly", + "decide", + "self", + "age", + "book", + "form", + "alive", + "carry", + "escape", + "damn", + "instead", + "able", + "ice", + "minute", + "throw", + "catch", + "leg", + "ring", + "course", + "goodbye", + "lead", + "poem", + "sick", + "corner", + "desire", + "known", + "problem", + "remind", + "shoulder", + "suppose", + "toward", + "wave", + "drink", + "jump", + "woman", + "pretend", + "sister", + "week", + "human", + "joy", + "crack", + "grey", + "pray", + "surprise", + "dry", + "knee", + "less", + "search", + "bleed", + "caught", + "clean", + "embrace", + "future", + "king", + "son", + "sorrow", + "chest", + "hug", + "remain", + "sat", + "worth", + "blow", + "daddy", + "final", + "parent", + "tight", + "also", + "create", + "lonely", + "safe", + "cross", + "dress", + "evil", + "silent", + "bone", + "fate", + "perhaps", + "anger", + "class", + "scar", + "snow", + "tiny", + "tonight", + "continue", + "control", + "dog", + "edge", + "mirror", + "month", + "suddenly", + "comfort", + "given", + "loud", + "quickly", + "gaze", + "plan", + "rush", + "stone", + "town", + "battle", + "ignore", + "spirit", + "stood", + "stupid", + "yours", + "brown", + "build", + "dust", + "hey", + "kept", + "pay", + "phone", + "twist", + "although", + "ball", + "beyond", + "hidden", + "nose", + "taken", + "fail", + "float", + "pure", + "somehow", + "wash", + "wrap", + "angry", + "cheek", + "creature", + "forgotten", + "heat", + "rip", + "single", + "space", + "special", + "weak", + "whatever", + "yell", + "anyway", + "blame", + "job", + "choose", + "country", + "curse", + "drift", + "echo", + "figure", + "grew", + "laughter", + "neck", + "suffer", + "worse", + "yeah", + "disappear", + "foot", + "forward", + "knife", + "mess", + "somewhere", + "stomach", + "storm", + "beg", + "idea", + "lift", + "offer", + "breeze", + "field", + "five", + "often", + "simply", + "stuck", + "win", + "allow", + "confuse", + "enjoy", + "except", + "flower", + "seek", + "strength", + "calm", + "grin", + "gun", + "heavy", + "hill", + "large", + "ocean", + "shoe", + "sigh", + "straight", + "summer", + "tongue", + "accept", + "crazy", + "everyday", + "exist", + "grass", + "mistake", + "sent", + "shut", + "surround", + "table", + "ache", + "brain", + "destroy", + "heal", + "nature", + "shout", + "sign", + "stain", + "choice", + "doubt", + "glance", + "glow", + "mountain", + "queen", + "stranger", + "throat", + "tomorrow", + "city", + "either", + "fish", + "flame", + "rather", + "shape", + "spin", + "spread", + "ash", + "distance", + "finish", + "image", + "imagine", + "important", + "nobody", + "shatter", + "warmth", + "became", + "feed", + "flesh", + "funny", + "lust", + "shirt", + "trouble", + "yellow", + "attention", + "bare", + "bite", + "money", + "protect", + "amaze", + "appear", + "born", + "choke", + "completely", + "daughter", + "fresh", + "friendship", + "gentle", + "probably", + "six", + "deserve", + "expect", + "grab", + "middle", + "nightmare", + "river", + "thousand", + "weight", + "worst", + "wound", + "barely", + "bottle", + "cream", + "regret", + "relationship", + "stick", + "test", + "crush", + "endless", + "fault", + "itself", + "rule", + "spill", + "art", + "circle", + "join", + "kick", + "mask", + "master", + "passion", + "quick", + "raise", + "smooth", + "unless", + "wander", + "actually", + "broke", + "chair", + "deal", + "favorite", + "gift", + "note", + "number", + "sweat", + "box", + "chill", + "clothes", + "lady", + "mark", + "park", + "poor", + "sadness", + "tie", + "animal", + "belong", + "brush", + "consume", + "dawn", + "forest", + "innocent", + "pen", + "pride", + "stream", + "thick", + "clay", + "complete", + "count", + "draw", + "faith", + "press", + "silver", + "struggle", + "surface", + "taught", + "teach", + "wet", + "bless", + "chase", + "climb", + "enter", + "letter", + "melt", + "metal", + "movie", + "stretch", + "swing", + "vision", + "wife", + "beside", + "crash", + "forgot", + "guide", + "haunt", + "joke", + "knock", + "plant", + "pour", + "prove", + "reveal", + "steal", + "stuff", + "trip", + "wood", + "wrist", + "bother", + "bottom", + "crawl", + "crowd", + "fix", + "forgive", + "frown", + "grace", + "loose", + "lucky", + "party", + "release", + "surely", + "survive", + "teacher", + "gently", + "grip", + "speed", + "suicide", + "travel", + "treat", + "vein", + "written", + "cage", + "chain", + "conversation", + "date", + "enemy", + "however", + "interest", + "million", + "page", + "pink", + "proud", + "sway", + "themselves", + "winter", + "church", + "cruel", + "cup", + "demon", + "experience", + "freedom", + "pair", + "pop", + "purpose", + "respect", + "shoot", + "softly", + "state", + "strange", + "bar", + "birth", + "curl", + "dirt", + "excuse", + "lord", + "lovely", + "monster", + "order", + "pack", + "pants", + "pool", + "scene", + "seven", + "shame", + "slide", + "ugly", + "among", + "blade", + "blonde", + "closet", + "creek", + "deny", + "drug", + "eternity", + "gain", + "grade", + "handle", + "key", + "linger", + "pale", + "prepare", + "swallow", + "swim", + "tremble", + "wheel", + "won", + "cast", + "cigarette", + "claim", + "college", + "direction", + "dirty", + "gather", + "ghost", + "hundred", + "loss", + "lung", + "orange", + "present", + "swear", + "swirl", + "twice", + "wild", + "bitter", + "blanket", + "doctor", + "everywhere", + "flash", + "grown", + "knowledge", + "numb", + "pressure", + "radio", + "repeat", + "ruin", + "spend", + "unknown", + "buy", + "clock", + "devil", + "early", + "false", + "fantasy", + "pound", + "precious", + "refuse", + "sheet", + "teeth", + "welcome", + "add", + "ahead", + "block", + "bury", + "caress", + "content", + "depth", + "despite", + "distant", + "marry", + "purple", + "threw", + "whenever", + "bomb", + "dull", + "easily", + "grasp", + "hospital", + "innocence", + "normal", + "receive", + "reply", + "rhyme", + "shade", + "someday", + "sword", + "toe", + "visit", + "asleep", + "bought", + "center", + "consider", + "flat", + "hero", + "history", + "ink", + "insane", + "muscle", + "mystery", + "pocket", + "reflection", + "shove", + "silently", + "smart", + "soldier", + "spot", + "stress", + "train", + "type", + "view", + "whether", + "bus", + "energy", + "explain", + "holy", + "hunger", + "inch", + "magic", + "mix", + "noise", + "nowhere", + "prayer", + "presence", + "shock", + "snap", + "spider", + "study", + "thunder", + "trail", + "admit", + "agree", + "bag", + "bang", + "bound", + "butterfly", + "cute", + "exactly", + "explode", + "familiar", + "fold", + "further", + "pierce", + "reflect", + "scent", + "selfish", + "sharp", + "sink", + "spring", + "stumble", + "universe", + "weep", + "women", + "wonderful", + "action", + "ancient", + "attempt", + "avoid", + "birthday", + "branch", + "chocolate", + "core", + "depress", + "drunk", + "especially", + "focus", + "fruit", + "honest", + "match", + "palm", + "perfectly", + "pillow", + "pity", + "poison", + "roar", + "shift", + "slightly", + "thump", + "truck", + "tune", + "twenty", + "unable", + "wipe", + "wrote", + "coat", + "constant", + "dinner", + "drove", + "egg", + "eternal", + "flight", + "flood", + "frame", + "freak", + "gasp", + "glad", + "hollow", + "motion", + "peer", + "plastic", + "root", + "screen", + "season", + "sting", + "strike", + "team", + "unlike", + "victim", + "volume", + "warn", + "weird", + "attack", + "await", + "awake", + "built", + "charm", + "crave", + "despair", + "fought", + "grant", + "grief", + "horse", + "limit", + "message", + "ripple", + "sanity", + "scatter", + "serve", + "split", + "string", + "trick", + "annoy", + "blur", + "boat", + "brave", + "clearly", + "cling", + "connect", + "fist", + "forth", + "imagination", + "iron", + "jock", + "judge", + "lesson", + "milk", + "misery", + "nail", + "naked", + "ourselves", + "poet", + "possible", + "princess", + "sail", + "size", + "snake", + "society", + "stroke", + "torture", + "toss", + "trace", + "wise", + "bloom", + "bullet", + "cell", + "check", + "cost", + "darling", + "during", + "footstep", + "fragile", + "hallway", + "hardly", + "horizon", + "invisible", + "journey", + "midnight", + "mud", + "nod", + "pause", + "relax", + "shiver", + "sudden", + "value", + "youth", + "abuse", + "admire", + "blink", + "breast", + "bruise", + "constantly", + "couple", + "creep", + "curve", + "difference", + "dumb", + "emptiness", + "gotta", + "honor", + "plain", + "planet", + "recall", + "rub", + "ship", + "slam", + "soar", + "somebody", + "tightly", + "weather", + "adore", + "approach", + "bond", + "bread", + "burst", + "candle", + "coffee", + "cousin", + "crime", + "desert", + "flutter", + "frozen", + "grand", + "heel", + "hello", + "language", + "level", + "movement", + "pleasure", + "powerful", + "random", + "rhythm", + "settle", + "silly", + "slap", + "sort", + "spoken", + "steel", + "threaten", + "tumble", + "upset", + "aside", + "awkward", + "bee", + "blank", + "board", + "button", + "card", + "carefully", + "complain", + "crap", + "deeply", + "discover", + "drag", + "dread", + "effort", + "entire", + "fairy", + "giant", + "gotten", + "greet", + "illusion", + "jeans", + "leap", + "liquid", + "march", + "mend", + "nervous", + "nine", + "replace", + "rope", + "spine", + "stole", + "terror", + "accident", + "apple", + "balance", + "boom", + "childhood", + "collect", + "demand", + "depression", + "eventually", + "faint", + "glare", + "goal", + "group", + "honey", + "kitchen", + "laid", + "limb", + "machine", + "mere", + "mold", + "murder", + "nerve", + "painful", + "poetry", + "prince", + "rabbit", + "shelter", + "shore", + "shower", + "soothe", + "stair", + "steady", + "sunlight", + "tangle", + "tease", + "treasure", + "uncle", + "begun", + "bliss", + "canvas", + "cheer", + "claw", + "clutch", + "commit", + "crimson", + "crystal", + "delight", + "doll", + "existence", + "express", + "fog", + "football", + "gay", + "goose", + "guard", + "hatred", + "illuminate", + "mass", + "math", + "mourn", + "rich", + "rough", + "skip", + "stir", + "student", + "style", + "support", + "thorn", + "tough", + "yard", + "yearn", + "yesterday", + "advice", + "appreciate", + "autumn", + "bank", + "beam", + "bowl", + "capture", + "carve", + "collapse", + "confusion", + "creation", + "dove", + "feather", + "girlfriend", + "glory", + "government", + "harsh", + "hop", + "inner", + "loser", + "moonlight", + "neighbor", + "neither", + "peach", + "pig", + "praise", + "screw", + "shield", + "shimmer", + "sneak", + "stab", + "subject", + "throughout", + "thrown", + "tower", + "twirl", + "wow", + "army", + "arrive", + "bathroom", + "bump", + "cease", + "cookie", + "couch", + "courage", + "dim", + "guilt", + "howl", + "hum", + "husband", + "insult", + "led", + "lunch", + "mock", + "mostly", + "natural", + "nearly", + "needle", + "nerd", + "peaceful", + "perfection", + "pile", + "price", + "remove", + "roam", + "sanctuary", + "serious", + "shiny", + "shook", + "sob", + "stolen", + "tap", + "vain", + "void", + "warrior", + "wrinkle", + "affection", + "apologize", + "blossom", + "bounce", + "bridge", + "cheap", + "crumble", + "decision", + "descend", + "desperately", + "dig", + "dot", + "flip", + "frighten", + "heartbeat", + "huge", + "lazy", + "lick", + "odd", + "opinion", + "process", + "puzzle", + "quietly", + "retreat", + "score", + "sentence", + "separate", + "situation", + "skill", + "soak", + "square", + "stray", + "taint", + "task", + "tide", + "underneath", + "veil", + "whistle", + "anywhere", + "bedroom", + "bid", + "bloody", + "burden", + "careful", + "compare", + "concern", + "curtain", + "decay", + "defeat", + "describe", + "double", + "dreamer", + "driver", + "dwell", + "evening", + "flare", + "flicker", + "grandma", + "guitar", + "harm", + "horrible", + "hungry", + "indeed", + "lace", + "melody", + "monkey", + "nation", + "object", + "obviously", + "rainbow", + "salt", + "scratch", + "shown", + "shy", + "stage", + "stun", + "third", + "tickle", + "useless", + "weakness", + "worship", + "worthless", + "afternoon", + "beard", + "boyfriend", + "bubble", + "busy", + "certain", + "chin", + "concrete", + "desk", + "diamond", + "doom", + "drawn", + "due", + "felicity", + "freeze", + "frost", + "garden", + "glide", + "harmony", + "hopefully", + "hunt", + "jealous", + "lightning", + "mama", + "mercy", + "peel", + "physical", + "position", + "pulse", + "punch", + "quit", + "rant", + "respond", + "salty", + "sane", + "satisfy", + "savior", + "sheep", + "slept", + "social", + "sport", + "tuck", + "utter", + "valley", + "wolf", + "aim", + "alas", + "alter", + "arrow", + "awaken", + "beaten", + "belief", + "brand", + "ceiling", + "cheese", + "clue", + "confidence", + "connection", + "daily", + "disguise", + "eager", + "erase", + "essence", + "everytime", + "expression", + "fan", + "flag", + "flirt", + "foul", + "fur", + "giggle", + "glorious", + "ignorance", + "law", + "lifeless", + "measure", + "mighty", + "muse", + "north", + "opposite", + "paradise", + "patience", + "patient", + "pencil", + "petal", + "plate", + "ponder", + "possibly", + "practice", + "slice", + "spell", + "stock", + "strife", + "strip", + "suffocate", + "suit", + "tender", + "tool", + "trade", + "velvet", + "verse", + "waist", + "witch", + "aunt", + "bench", + "bold", + "cap", + "certainly", + "click", + "companion", + "creator", + "dart", + "delicate", + "determine", + "dish", + "dragon", + "drama", + "drum", + "dude", + "everybody", + "feast", + "forehead", + "former", + "fright", + "fully", + "gas", + "hook", + "hurl", + "invite", + "juice", + "manage", + "moral", + "possess", + "raw", + "rebel", + "royal", + "scale", + "scary", + "several", + "slight", + "stubborn", + "swell", + "talent", + "tea", + "terrible", + "thread", + "torment", + "trickle", + "usually", + "vast", + "violence", + "weave", + "acid", + "agony", + "ashamed", + "awe", + "belly", + "blend", + "blush", + "character", + "cheat", + "common", + "company", + "coward", + "creak", + "danger", + "deadly", + "defense", + "define", + "depend", + "desperate", + "destination", + "dew", + "duck", + "dusty", + "embarrass", + "engine", + "example", + "explore", + "foe", + "freely", + "frustrate", + "generation", + "glove", + "guilty", + "health", + "hurry", + "idiot", + "impossible", + "inhale", + "jaw", + "kingdom", + "mention", + "mist", + "moan", + "mumble", + "mutter", + "observe", + "ode", + "pathetic", + "pattern", + "pie", + "prefer", + "puff", + "rape", + "rare", + "revenge", + "rude", + "scrape", + "spiral", + "squeeze", + "strain", + "sunset", + "suspend", + "sympathy", + "thigh", + "throne", + "total", + "unseen", + "weapon", + "weary" + ); + return word_list; +} + +std::unordered_map& word_map_old_english() +{ + static std::unordered_map word_map; + if (word_map.size() > 0) + { + return word_map; + } + std::vector word_list = word_list_old_english(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + word_map[*it] = ii; + } + return word_map; +} + +std::unordered_map& trimmed_word_map_old_english() +{ + static std::unordered_map trimmed_word_map; + if (trimmed_word_map.size() > 0) + { + return trimmed_word_map; + } + std::vector word_list = word_list_old_english(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + if (it->length() > 4) + { + trimmed_word_map[it->substr(0, 4)] = ii; + } + else + { + trimmed_word_map[*it] = ii; + } + } + return trimmed_word_map; +} diff --git a/src/mnemonics/portuguese.h b/src/mnemonics/portuguese.h new file mode 100644 index 000000000..e83e297e1 --- /dev/null +++ b/src/mnemonics/portuguese.h @@ -0,0 +1,1677 @@ +#include +#include + +std::vector& word_list_portuguese() +{ + static std::vector word_list( + "abaular", + "abdominal", + "abeto", + "abissinio", + "abjeto", + "ablucao", + "abnegar", + "abotoar", + "abrutalhar", + "absurdo", + "abutre", + "acautelar", + "accessorios", + "acetona", + "achocolatado", + "acirrar", + "acne", + "acovardar", + "acrostico", + "actinomicete", + "acustico", + "adaptavel", + "adeus", + "adivinho", + "adjunto", + "admoestar", + "adnominal", + "adotivo", + "adquirir", + "adriatico", + "adsorcao", + "adutora", + "advogar", + "aerossol", + "afazeres", + "afetuoso", + "afixo", + "afluir", + "afortunar", + "afrouxar", + "aftosa", + "afunilar", + "agentes", + "agito", + "aglutinar", + "aiatola", + "aimore", + "aino", + "aipo", + "airoso", + "ajeitar", + "ajoelhar", + "ajudante", + "ajuste", + "alazao", + "albumina", + "alcunha", + "alegria", + "alexandre", + "alforriar", + "alguns", + "alhures", + "alivio", + "almoxarife", + "alotropico", + "alpiste", + "alquimista", + "alsaciano", + "altura", + "aluviao", + "alvura", + "amazonico", + "ambulatorio", + "ametodico", + "amizades", + "amniotico", + "amovivel", + "amurada", + "anatomico", + "ancorar", + "anexo", + "anfora", + "aniversario", + "anjo", + "anotar", + "ansioso", + "anturio", + "anuviar", + "anverso", + "anzol", + "aonde", + "apaziguar", + "apito", + "aplicavel", + "apoteotico", + "aprimorar", + "aprumo", + "apto", + "apuros", + "aquoso", + "arauto", + "arbusto", + "arduo", + "aresta", + "arfar", + "arguto", + "aritmetico", + "arlequim", + "armisticio", + "aromatizar", + "arpoar", + "arquivo", + "arrumar", + "arsenio", + "arturiano", + "aruaque", + "arvores", + "asbesto", + "ascorbico", + "aspirina", + "asqueroso", + "assustar", + "astuto", + "atazanar", + "ativo", + "atletismo", + "atmosferico", + "atormentar", + "atroz", + "aturdir", + "audivel", + "auferir", + "augusto", + "aula", + "aumento", + "aurora", + "autuar", + "avatar", + "avexar", + "avizinhar", + "avolumar", + "avulso", + "axiomatico", + "azerbaijano", + "azimute", + "azoto", + "azulejo", + "bacteriologista", + "badulaque", + "baforada", + "baixote", + "bajular", + "balzaquiana", + "bambuzal", + "banzo", + "baoba", + "baqueta", + "barulho", + "bastonete", + "batuta", + "bauxita", + "bavaro", + "bazuca", + "bcrepuscular", + "beato", + "beduino", + "begonia", + "behaviorista", + "beisebol", + "belzebu", + "bemol", + "benzido", + "beocio", + "bequer", + "berro", + "besuntar", + "betume", + "bexiga", + "bezerro", + "biatlon", + "biboca", + "bicuspide", + "bidirecional", + "bienio", + "bifurcar", + "bigorna", + "bijuteria", + "bimotor", + "binormal", + "bioxido", + "bipolarizacao", + "biquini", + "birutice", + "bisturi", + "bituca", + "biunivoco", + "bivalve", + "bizarro", + "blasfemo", + "blenorreia", + "blindar", + "bloqueio", + "blusao", + "boazuda", + "bofete", + "bojudo", + "bolso", + "bombordo", + "bonzo", + "botina", + "boquiaberto", + "bostoniano", + "botulismo", + "bourbon", + "bovino", + "boximane", + "bravura", + "brevidade", + "britar", + "broxar", + "bruno", + "bruxuleio", + "bubonico", + "bucolico", + "buda", + "budista", + "bueiro", + "buffer", + "bugre", + "bujao", + "bumerangue", + "burundines", + "busto", + "butique", + "buzios", + "caatinga", + "cabuqui", + "cacunda", + "cafuzo", + "cajueiro", + "camurca", + "canudo", + "caquizeiro", + "carvoeiro", + "casulo", + "catuaba", + "cauterizar", + "cebolinha", + "cedula", + "ceifeiro", + "celulose", + "cerzir", + "cesto", + "cetro", + "ceus", + "cevar", + "chavena", + "cheroqui", + "chita", + "chovido", + "chuvoso", + "ciatico", + "cibernetico", + "cicuta", + "cidreira", + "cientistas", + "cifrar", + "cigarro", + "cilio", + "cimo", + "cinzento", + "cioso", + "cipriota", + "cirurgico", + "cisto", + "citrico", + "ciumento", + "civismo", + "clavicula", + "clero", + "clitoris", + "cluster", + "coaxial", + "cobrir", + "cocota", + "codorniz", + "coexistir", + "cogumelo", + "coito", + "colusao", + "compaixao", + "comutativo", + "contentamento", + "convulsivo", + "coordenativa", + "coquetel", + "correto", + "corvo", + "costureiro", + "cotovia", + "covil", + "cozinheiro", + "cretino", + "cristo", + "crivo", + "crotalo", + "cruzes", + "cubo", + "cucuia", + "cueiro", + "cuidar", + "cujo", + "cultural", + "cunilingua", + "cupula", + "curvo", + "custoso", + "cutucar", + "czarismo", + "dablio", + "dacota", + "dados", + "daguerreotipo", + "daiquiri", + "daltonismo", + "damista", + "dantesco", + "daquilo", + "darwinista", + "dasein", + "dativo", + "deao", + "debutantes", + "decurso", + "deduzir", + "defunto", + "degustar", + "dejeto", + "deltoide", + "demover", + "denunciar", + "deputado", + "deque", + "dervixe", + "desvirtuar", + "deturpar", + "deuteronomio", + "devoto", + "dextrose", + "dezoito", + "diatribe", + "dicotomico", + "didatico", + "dietista", + "difuso", + "digressao", + "diluvio", + "diminuto", + "dinheiro", + "dinossauro", + "dioxido", + "diplomatico", + "dique", + "dirimivel", + "disturbio", + "diurno", + "divulgar", + "dizivel", + "doar", + "dobro", + "docura", + "dodoi", + "doer", + "dogue", + "doloso", + "domo", + "donzela", + "doping", + "dorsal", + "dossie", + "dote", + "doutro", + "doze", + "dravidico", + "dreno", + "driver", + "dropes", + "druso", + "dubnio", + "ducto", + "dueto", + "dulija", + "dundum", + "duodeno", + "duquesa", + "durou", + "duvidoso", + "duzia", + "ebano", + "ebrio", + "eburneo", + "echarpe", + "eclusa", + "ecossistema", + "ectoplasma", + "ecumenismo", + "eczema", + "eden", + "editorial", + "edredom", + "edulcorar", + "efetuar", + "efigie", + "efluvio", + "egiptologo", + "egresso", + "egua", + "einsteiniano", + "eira", + "eivar", + "eixos", + "ejetar", + "elastomero", + "eldorado", + "elixir", + "elmo", + "eloquente", + "elucidativo", + "emaranhar", + "embutir", + "emerito", + "emfa", + "emitir", + "emotivo", + "empuxo", + "emulsao", + "enamorar", + "encurvar", + "enduro", + "enevoar", + "enfurnar", + "enguico", + "enho", + "enigmista", + "enlutar", + "enormidade", + "enpreendimento", + "enquanto", + "enriquecer", + "enrugar", + "entusiastico", + "enunciar", + "envolvimento", + "enxuto", + "enzimatico", + "eolico", + "epiteto", + "epoxi", + "epura", + "equivoco", + "erario", + "erbio", + "ereto", + "erguido", + "erisipela", + "ermo", + "erotizar", + "erros", + "erupcao", + "ervilha", + "esburacar", + "escutar", + "esfuziante", + "esguio", + "esloveno", + "esmurrar", + "esoterismo", + "esperanca", + "espirito", + "espurio", + "essencialmente", + "esturricar", + "esvoacar", + "etario", + "eterno", + "etiquetar", + "etnologo", + "etos", + "etrusco", + "euclidiano", + "euforico", + "eugenico", + "eunuco", + "europio", + "eustaquio", + "eutanasia", + "evasivo", + "eventualidade", + "evitavel", + "evoluir", + "exaustor", + "excursionista", + "exercito", + "exfoliado", + "exito", + "exotico", + "expurgo", + "exsudar", + "extrusora", + "exumar", + "fabuloso", + "facultativo", + "fado", + "fagulha", + "faixas", + "fajuto", + "faltoso", + "famoso", + "fanzine", + "fapesp", + "faquir", + "fartura", + "fastio", + "faturista", + "fausto", + "favorito", + "faxineira", + "fazer", + "fealdade", + "febril", + "fecundo", + "fedorento", + "feerico", + "feixe", + "felicidade", + "felipe", + "feltro", + "femur", + "fenotipo", + "fervura", + "festivo", + "feto", + "feudo", + "fevereiro", + "fezinha", + "fiasco", + "fibra", + "ficticio", + "fiduciario", + "fiesp", + "fifa", + "figurino", + "fijiano", + "filtro", + "finura", + "fiorde", + "fiquei", + "firula", + "fissurar", + "fitoteca", + "fivela", + "fixo", + "flavio", + "flexor", + "flibusteiro", + "flotilha", + "fluxograma", + "fobos", + "foco", + "fofura", + "foguista", + "foie", + "foliculo", + "fominha", + "fonte", + "forum", + "fosso", + "fotossintese", + "foxtrote", + "fraudulento", + "frevo", + "frivolo", + "frouxo", + "frutose", + "fuba", + "fucsia", + "fugitivo", + "fuinha", + "fujao", + "fulustreco", + "fumo", + "funileiro", + "furunculo", + "fustigar", + "futurologo", + "fuxico", + "fuzue", + "gabriel", + "gado", + "gaelico", + "gafieira", + "gaguejo", + "gaivota", + "gajo", + "galvanoplastico", + "gamo", + "ganso", + "garrucha", + "gastronomo", + "gatuno", + "gaussiano", + "gaviao", + "gaxeta", + "gazeteiro", + "gear", + "geiser", + "geminiano", + "generoso", + "genuino", + "geossinclinal", + "gerundio", + "gestual", + "getulista", + "gibi", + "gigolo", + "gilete", + "ginseng", + "giroscopio", + "glaucio", + "glacial", + "gleba", + "glifo", + "glote", + "glutonia", + "gnostico", + "goela", + "gogo", + "goitaca", + "golpista", + "gomo", + "gonzo", + "gorro", + "gostou", + "goticula", + "gourmet", + "governo", + "gozo", + "graxo", + "grevista", + "grito", + "grotesco", + "gruta", + "guaxinim", + "gude", + "gueto", + "guizo", + "guloso", + "gume", + "guru", + "gustativo", + "gustavo", + "gutural", + "habitue", + "haitiano", + "halterofilista", + "hamburguer", + "hanseniase", + "happening", + "harpista", + "hastear", + "haveres", + "hebreu", + "hectometro", + "hedonista", + "hegira", + "helena", + "helminto", + "hemorroidas", + "henrique", + "heptassilabo", + "hertziano", + "hesitar", + "heterossexual", + "heuristico", + "hexagono", + "hiato", + "hibrido", + "hidrostatico", + "hieroglifo", + "hifenizar", + "higienizar", + "hilario", + "himen", + "hino", + "hippie", + "hirsuto", + "historiografia", + "hitlerista", + "hodometro", + "hoje", + "holograma", + "homus", + "honroso", + "hoquei", + "horto", + "hostilizar", + "hotentote", + "huguenote", + "humilde", + "huno", + "hurra", + "hutu", + "iaia", + "ialorixa", + "iambico", + "iansa", + "iaque", + "iara", + "iatista", + "iberico", + "ibis", + "icar", + "iceberg", + "icosagono", + "idade", + "ideologo", + "idiotice", + "idoso", + "iemenita", + "iene", + "igarape", + "iglu", + "ignorar", + "igreja", + "iguaria", + "iidiche", + "ilativo", + "iletrado", + "ilharga", + "ilimitado", + "ilogismo", + "ilustrissimo", + "imaturo", + "imbuzeiro", + "imerso", + "imitavel", + "imovel", + "imputar", + "imutavel", + "inaveriguavel", + "incutir", + "induzir", + "inextricavel", + "infusao", + "ingua", + "inhame", + "iniquo", + "injusto", + "inning", + "inoxidavel", + "inquisitorial", + "insustentavel", + "intumescimento", + "inutilizavel", + "invulneravel", + "inzoneiro", + "iodo", + "iogurte", + "ioio", + "ionosfera", + "ioruba", + "iota", + "ipsilon", + "irascivel", + "iris", + "irlandes", + "irmaos", + "iroques", + "irrupcao", + "isca", + "isento", + "islandes", + "isotopo", + "isqueiro", + "israelita", + "isso", + "isto", + "iterbio", + "itinerario", + "itrio", + "iuane", + "iugoslavo", + "jabuticabeira", + "jacutinga", + "jade", + "jagunco", + "jainista", + "jaleco", + "jambo", + "jantarada", + "japones", + "jaqueta", + "jarro", + "jasmim", + "jato", + "jaula", + "javel", + "jazz", + "jegue", + "jeitoso", + "jejum", + "jenipapo", + "jeova", + "jequitiba", + "jersei", + "jesus", + "jetom", + "jiboia", + "jihad", + "jilo", + "jingle", + "jipe", + "jocoso", + "joelho", + "joguete", + "joio", + "jojoba", + "jorro", + "jota", + "joule", + "joviano", + "jubiloso", + "judoca", + "jugular", + "juizo", + "jujuba", + "juliano", + "jumento", + "junto", + "jururu", + "justo", + "juta", + "juventude", + "labutar", + "laguna", + "laico", + "lajota", + "lanterninha", + "lapso", + "laquear", + "lastro", + "lauto", + "lavrar", + "laxativo", + "lazer", + "leasing", + "lebre", + "lecionar", + "ledo", + "leguminoso", + "leitura", + "lele", + "lemure", + "lento", + "leonardo", + "leopardo", + "lepton", + "leque", + "leste", + "letreiro", + "leucocito", + "levitico", + "lexicologo", + "lhama", + "lhufas", + "liame", + "licoroso", + "lidocaina", + "liliputiano", + "limusine", + "linotipo", + "lipoproteina", + "liquidos", + "lirismo", + "lisura", + "liturgico", + "livros", + "lixo", + "lobulo", + "locutor", + "lodo", + "logro", + "lojista", + "lombriga", + "lontra", + "loop", + "loquaz", + "lorota", + "losango", + "lotus", + "louvor", + "luar", + "lubrificavel", + "lucros", + "lugubre", + "luis", + "luminoso", + "luneta", + "lustroso", + "luto", + "luvas", + "luxuriante", + "luzeiro", + "maduro", + "maestro", + "mafioso", + "magro", + "maiuscula", + "majoritario", + "malvisto", + "mamute", + "manutencao", + "mapoteca", + "maquinista", + "marzipa", + "masturbar", + "matuto", + "mausoleu", + "mavioso", + "maxixe", + "mazurca", + "meandro", + "mecha", + "medusa", + "mefistofelico", + "megera", + "meirinho", + "melro", + "memorizar", + "menu", + "mequetrefe", + "mertiolate", + "mestria", + "metroviario", + "mexilhao", + "mezanino", + "miau", + "microssegundo", + "midia", + "migratorio", + "mimosa", + "minuto", + "miosotis", + "mirtilo", + "misturar", + "mitzvah", + "miudos", + "mixuruca", + "mnemonico", + "moagem", + "mobilizar", + "modulo", + "moer", + "mofo", + "mogno", + "moita", + "molusco", + "monumento", + "moqueca", + "morubixaba", + "mostruario", + "motriz", + "mouse", + "movivel", + "mozarela", + "muarra", + "muculmano", + "mudo", + "mugir", + "muitos", + "mumunha", + "munir", + "muon", + "muquira", + "murros", + "musselina", + "nacoes", + "nado", + "naftalina", + "nago", + "naipe", + "naja", + "nalgum", + "namoro", + "nanquim", + "napolitano", + "naquilo", + "nascimento", + "nautilo", + "navios", + "nazista", + "nebuloso", + "nectarina", + "nefrologo", + "negus", + "nelore", + "nenufar", + "nepotismo", + "nervura", + "neste", + "netuno", + "neutron", + "nevoeiro", + "newtoniano", + "nexo", + "nhenhenhem", + "nhoque", + "nigeriano", + "niilista", + "ninho", + "niobio", + "niponico", + "niquelar", + "nirvana", + "nisto", + "nitroglicerina", + "nivoso", + "nobreza", + "nocivo", + "noel", + "nogueira", + "noivo", + "nojo", + "nominativo", + "nonuplo", + "noruegues", + "nostalgico", + "noturno", + "nouveau", + "nuanca", + "nublar", + "nucleotideo", + "nudista", + "nulo", + "numismatico", + "nunquinha", + "nupcias", + "nutritivo", + "nuvens", + "oasis", + "obcecar", + "obeso", + "obituario", + "objetos", + "oblongo", + "obnoxio", + "obrigatorio", + "obstruir", + "obtuso", + "obus", + "obvio", + "ocaso", + "occipital", + "oceanografo", + "ocioso", + "oclusivo", + "ocorrer", + "ocre", + "octogono", + "odalisca", + "odisseia", + "odorifico", + "oersted", + "oeste", + "ofertar", + "ofidio", + "oftalmologo", + "ogiva", + "ogum", + "oigale", + "oitavo", + "oitocentos", + "ojeriza", + "olaria", + "oleoso", + "olfato", + "olhos", + "oliveira", + "olmo", + "olor", + "olvidavel", + "ombudsman", + "omeleteira", + "omitir", + "omoplata", + "onanismo", + "ondular", + "oneroso", + "onomatopeico", + "ontologico", + "onus", + "onze", + "opalescente", + "opcional", + "operistico", + "opio", + "oposto", + "oprobrio", + "optometrista", + "opusculo", + "oratorio", + "orbital", + "orcar", + "orfao", + "orixa", + "orla", + "ornitologo", + "orquidea", + "ortorrombico", + "orvalho", + "osculo", + "osmotico", + "ossudo", + "ostrogodo", + "otario", + "otite", + "ouro", + "ousar", + "outubro", + "ouvir", + "ovario", + "overnight", + "oviparo", + "ovni", + "ovoviviparo", + "ovulo", + "oxala", + "oxente", + "oxiuro", + "oxossi", + "ozonizar", + "paciente", + "pactuar", + "padronizar", + "paete", + "pagodeiro", + "paixao", + "pajem", + "paludismo", + "pampas", + "panturrilha", + "papudo", + "paquistanes", + "pastoso", + "patua", + "paulo", + "pauzinhos", + "pavoroso", + "paxa", + "pazes", + "peao", + "pecuniario", + "pedunculo", + "pegaso", + "peixinho", + "pejorativo", + "pelvis", + "penuria", + "pequno", + "petunia", + "pezada", + "piauiense", + "pictorico", + "pierro", + "pigmeu", + "pijama", + "pilulas", + "pimpolho", + "pintura", + "piorar", + "pipocar", + "piqueteiro", + "pirulito", + "pistoleiro", + "pituitaria", + "pivotar", + "pixote", + "pizzaria", + "plistoceno", + "plotar", + "pluviometrico", + "pneumonico", + "poco", + "podridao", + "poetisa", + "pogrom", + "pois", + "polvorosa", + "pomposo", + "ponderado", + "pontudo", + "populoso", + "poquer", + "porvir", + "posudo", + "potro", + "pouso", + "povoar", + "prazo", + "prezar", + "privilegios", + "proximo", + "prussiano", + "pseudopode", + "psoriase", + "pterossauros", + "ptialina", + "ptolemaico", + "pudor", + "pueril", + "pufe", + "pugilista", + "puir", + "pujante", + "pulverizar", + "pumba", + "punk", + "purulento", + "pustula", + "putsch", + "puxe", + "quatrocentos", + "quetzal", + "quixotesco", + "quotizavel", + "rabujice", + "racista", + "radonio", + "rafia", + "ragu", + "rajado", + "ralo", + "rampeiro", + "ranzinza", + "raptor", + "raquitismo", + "raro", + "rasurar", + "ratoeira", + "ravioli", + "razoavel", + "reavivar", + "rebuscar", + "recusavel", + "reduzivel", + "reexposicao", + "refutavel", + "regurgitar", + "reivindicavel", + "rejuvenescimento", + "relva", + "remuneravel", + "renunciar", + "reorientar", + "repuxo", + "requisito", + "resumo", + "returno", + "reutilizar", + "revolvido", + "rezonear", + "riacho", + "ribossomo", + "ricota", + "ridiculo", + "rifle", + "rigoroso", + "rijo", + "rimel", + "rins", + "rios", + "riqueza", + "riquixa", + "rissole", + "ritualistico", + "rivalizar", + "rixa", + "robusto", + "rococo", + "rodoviario", + "roer", + "rogo", + "rojao", + "rolo", + "rompimento", + "ronronar", + "roqueiro", + "rorqual", + "rosto", + "rotundo", + "rouxinol", + "roxo", + "royal", + "ruas", + "rucula", + "rudimentos", + "ruela", + "rufo", + "rugoso", + "ruivo", + "rule", + "rumoroso", + "runico", + "ruptura", + "rural", + "rustico", + "rutilar", + "saariano", + "sabujo", + "sacudir", + "sadomasoquista", + "safra", + "sagui", + "sais", + "samurai", + "santuario", + "sapo", + "saquear", + "sartriano", + "saturno", + "saude", + "sauva", + "saveiro", + "saxofonista", + "sazonal", + "scherzo", + "script", + "seara", + "seborreia", + "secura", + "seduzir", + "sefardim", + "seguro", + "seja", + "selvas", + "sempre", + "senzala", + "sepultura", + "sequoia", + "sestercio", + "setuplo", + "seus", + "seviciar", + "sezonismo", + "shalom", + "siames", + "sibilante", + "sicrano", + "sidra", + "sifilitico", + "signos", + "silvo", + "simultaneo", + "sinusite", + "sionista", + "sirio", + "sisudo", + "situar", + "sivan", + "slide", + "slogan", + "soar", + "sobrio", + "socratico", + "sodomizar", + "soerguer", + "software", + "sogro", + "soja", + "solver", + "somente", + "sonso", + "sopro", + "soquete", + "sorveteiro", + "sossego", + "soturno", + "sousafone", + "sovinice", + "sozinho", + "suavizar", + "subverter", + "sucursal", + "sudoriparo", + "sufragio", + "sugestoes", + "suite", + "sujo", + "sultao", + "sumula", + "suntuoso", + "suor", + "supurar", + "suruba", + "susto", + "suturar", + "suvenir", + "tabuleta", + "taco", + "tadjique", + "tafeta", + "tagarelice", + "taitiano", + "talvez", + "tampouco", + "tanzaniano", + "taoista", + "tapume", + "taquion", + "tarugo", + "tascar", + "tatuar", + "tautologico", + "tavola", + "taxionomista", + "tchecoslovaco", + "teatrologo", + "tectonismo", + "tedioso", + "teflon", + "tegumento", + "teixo", + "telurio", + "temporas", + "tenue", + "teosofico", + "tepido", + "tequila", + "terrorista", + "testosterona", + "tetrico", + "teutonico", + "teve", + "texugo", + "tiara", + "tibia", + "tiete", + "tifoide", + "tigresa", + "tijolo", + "tilintar", + "timpano", + "tintureiro", + "tiquete", + "tiroteio", + "tisico", + "titulos", + "tive", + "toar", + "toboga", + "tofu", + "togoles", + "toicinho", + "tolueno", + "tomografo", + "tontura", + "toponimo", + "toquio", + "torvelinho", + "tostar", + "toto", + "touro", + "toxina", + "trazer", + "trezentos", + "trivialidade", + "trovoar", + "truta", + "tuaregue", + "tubular", + "tucano", + "tudo", + "tufo", + "tuiste", + "tulipa", + "tumultuoso", + "tunisino", + "tupiniquim", + "turvo", + "tutu", + "ucraniano", + "udenista", + "ufanista", + "ufologo", + "ugaritico", + "uiste", + "uivo", + "ulceroso", + "ulema", + "ultravioleta", + "umbilical", + "umero", + "umido", + "umlaut", + "unanimidade", + "unesco", + "ungulado", + "unheiro", + "univoco", + "untuoso", + "urano", + "urbano", + "urdir", + "uretra", + "urgente", + "urinol", + "urna", + "urologo", + "urro", + "ursulina", + "urtiga", + "urupe", + "usavel", + "usbeque", + "usei", + "usineiro", + "usurpar", + "utero", + "utilizar", + "utopico", + "uvular", + "uxoricidio", + "vacuo", + "vadio", + "vaguear", + "vaivem", + "valvula", + "vampiro", + "vantajoso", + "vaporoso", + "vaquinha", + "varziano", + "vasto", + "vaticinio", + "vaudeville", + "vazio", + "veado", + "vedico", + "veemente", + "vegetativo", + "veio", + "veja", + "veludo", + "venusiano", + "verdade", + "verve", + "vestuario", + "vetusto", + "vexatorio", + "vezes", + "viavel", + "vibratorio", + "victor", + "vicunha", + "vidros", + "vietnamita", + "vigoroso", + "vilipendiar", + "vime", + "vintem", + "violoncelo", + "viquingue", + "virus", + "visualizar", + "vituperio", + "viuvo", + "vivo", + "vizir", + "voar", + "vociferar", + "vodu", + "vogar", + "voile", + "volver", + "vomito", + "vontade", + "vortice", + "vosso", + "voto", + "vovozinha", + "voyeuse", + "vozes", + "vulva", + "vupt", + "western", + "xadrez", + "xale", + "xampu", + "xango", + "xarope", + "xaual", + "xavante", + "xaxim", + "xenonio", + "xepa", + "xerox", + "xicara", + "xifopago", + "xiita", + "xilogravura", + "xinxim", + "xistoso", + "xixi", + "xodo", + "xogum", + "xucro", + "zabumba", + "zagueiro", + "zambiano", + "zanzar", + "zarpar", + "zebu", + "zefiro", + "zeloso", + "zenite", + "zumbi" + + ); + return word_list; +} + +std::unordered_map& word_map_portuguese() +{ + static std::unordered_map word_map; + if (word_map.size() > 0) + { + return word_map; + } + std::vector word_list = word_list_portuguese(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + word_map[*it] = ii; + } + return word_map; +} + +std::unordered_map& trimmed_word_map_portuguese() +{ + static std::unordered_map trimmed_word_map; + if (trimmed_word_map.size() > 0) + { + return trimmed_word_map; + } + std::vector word_list = word_list_portuguese(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + if (it->length() > 4) + { + trimmed_word_map[it->substr(0, 4)] = ii; + } + else + { + trimmed_word_map[*it] = ii; + } + } + return trimmed_word_map; +} diff --git a/src/mnemonics/spanish.h b/src/mnemonics/spanish.h new file mode 100644 index 000000000..d8778955b --- /dev/null +++ b/src/mnemonics/spanish.h @@ -0,0 +1,2098 @@ +#include +#include + +std::vector& word_list_spanish() +{ + static std::vector word_list( + "ábaco", + "abdomen", + "abeja", + "abierto", + "abogado", + "abono", + "aborto", + "abrazo", + "abrir", + "abuelo", + "abuso", + "acabar", + "academia", + "acceso", + "acción", + "aceite", + "acelga", + "acento", + "aceptar", + "ácido", + "aclarar", + "acné", + "acoger", + "acoso", + "activo", + "acto", + "actriz", + "actuar", + "acudir", + "acuerdo", + "acusar", + "adicto", + "admitir", + "adoptar", + "adorno", + "aduana", + "adulto", + "aéreo", + "afectar", + "afición", + "afinar", + "afirmar", + "ágil", + "agitar", + "agonía", + "agosto", + "agotar", + "agregar", + "agrio", + "agua", + "agudo", + "águila", + "aguja", + "ahogo", + "ahorro", + "aire", + "aislar", + "ajedrez", + "ajeno", + "ajuste", + "alacrán", + "alambre", + "alarma", + "alba", + "álbum", + "alcalde", + "aldea", + "alegre", + "alejar", + "alerta", + "aleta", + "alfiler", + "alga", + "algodón", + "aliado", + "aliento", + "alivio", + "alma", + "almeja", + "almíbar", + "altar", + "alteza", + "altivo", + "alto", + "altura", + "alumno", + "alzar", + "amable", + "amante", + "amapola", + "amargo", + "amasar", + "ámbar", + "ámbito", + "ameno", + "amigo", + "amistad", + "amor", + "amparo", + "amplio", + "ancho", + "anciano", + "ancla", + "andar", + "andén", + "anemia", + "ángulo", + "anillo", + "ánimo", + "anís", + "anotar", + "antena", + "antiguo", + "antojo", + "anual", + "anular", + "anuncio", + "añadir", + "añejo", + "año", + "apagar", + "aparato", + "apetito", + "apio", + "aplicar", + "apodo", + "aporte", + "apoyo", + "aprender", + "aprobar", + "apuesta", + "apuro", + "arado", + "araña", + "arar", + "árbitro", + "árbol", + "arbusto", + "archivo", + "arco", + "arder", + "ardilla", + "arduo", + "área", + "árido", + "aries", + "armonía", + "arnés", + "aroma", + "arpa", + "arpón", + "arreglo", + "arroz", + "arruga", + "arte", + "artista", + "asa", + "asado", + "asalto", + "ascenso", + "asegurar", + "aseo", + "asesor", + "asiento", + "asilo", + "asistir", + "asno", + "asombro", + "áspero", + "astilla", + "astro", + "astuto", + "asumir", + "asunto", + "atajo", + "ataque", + "atar", + "atento", + "ateo", + "ático", + "atleta", + "átomo", + "atraer", + "atroz", + "atún", + "audaz", + "audio", + "auge", + "aula", + "aumento", + "ausente", + "autor", + "aval", + "avance", + "avaro", + "ave", + "avellana", + "avena", + "avestruz", + "avión", + "aviso", + "ayer", + "ayuda", + "ayuno", + "azafrán", + "azar", + "azote", + "azúcar", + "azufre", + "azul", + "baba", + "babor", + "bache", + "bahía", + "baile", + "bajar", + "balanza", + "balcón", + "balde", + "bambú", + "banco", + "banda", + "baño", + "barba", + "barco", + "barniz", + "barro", + "báscula", + "bastón", + "basura", + "batalla", + "batería", + "batir", + "batuta", + "baúl", + "bazar", + "bebé", + "bebida", + "bello", + "besar", + "beso", + "bestia", + "bicho", + "bien", + "bingo", + "blanco", + "bloque", + "blusa", + "boa", + "bobina", + "bobo", + "boca", + "bocina", + "boda", + "bodega", + "boina", + "bola", + "bolero", + "bolsa", + "bomba", + "bondad", + "bonito", + "bono", + "bonsái", + "borde", + "borrar", + "bosque", + "bote", + "botín", + "bóveda", + "bozal", + "bravo", + "brazo", + "brecha", + "breve", + "brillo", + "brinco", + "brisa", + "broca", + "broma", + "bronce", + "brote", + "bruja", + "brusco", + "bruto", + "buceo", + "bucle", + "bueno", + "buey", + "bufanda", + "bufón", + "búho", + "buitre", + "bulto", + "burbuja", + "burla", + "burro", + "buscar", + "butaca", + "buzón", + "caballo", + "cabeza", + "cabina", + "cabra", + "cacao", + "cadáver", + "cadena", + "caer", + "café", + "caída", + "caimán", + "caja", + "cajón", + "cal", + "calamar", + "calcio", + "caldo", + "calidad", + "calle", + "calma", + "calor", + "calvo", + "cama", + "cambio", + "camello", + "camino", + "campo", + "cáncer", + "candil", + "canela", + "canguro", + "canica", + "canto", + "caña", + "cañón", + "caoba", + "caos", + "capaz", + "capitán", + "capote", + "captar", + "capucha", + "cara", + "carbón", + "cárcel", + "careta", + "carga", + "cariño", + "carne", + "carpeta", + "carro", + "carta", + "casa", + "casco", + "casero", + "caspa", + "castor", + "catorce", + "catre", + "caudal", + "causa", + "cazo", + "cebolla", + "ceder", + "cedro", + "celda", + "célebre", + "celoso", + "célula", + "cemento", + "ceniza", + "centro", + "cerca", + "cerdo", + "cereza", + "cero", + "cerrar", + "certeza", + "césped", + "cetro", + "chacal", + "chaleco", + "champú", + "chancla", + "chapa", + "charla", + "chico", + "chiste", + "chivo", + "choque", + "choza", + "chuleta", + "chupar", + "ciclón", + "ciego", + "cielo", + "cien", + "cierto", + "cifra", + "cigarro", + "cima", + "cinco", + "cine", + "cinta", + "ciprés", + "circo", + "ciruela", + "cisne", + "cita", + "ciudad", + "clamor", + "clan", + "claro", + "clase", + "clave", + "cliente", + "clima", + "clínica", + "cobre", + "cocción", + "cochino", + "cocina", + "coco", + "código", + "codo", + "cofre", + "coger", + "cohete", + "cojín", + "cojo", + "cola", + "colcha", + "colegio", + "colgar", + "colina", + "collar", + "colmo", + "columna", + "combate", + "comer", + "comida", + "cómodo", + "compra", + "conde", + "conejo", + "conga", + "conocer", + "consejo", + "contar", + "copa", + "copia", + "corazón", + "corbata", + "corcho", + "cordón", + "corona", + "correr", + "coser", + "cosmos", + "costa", + "cráneo", + "cráter", + "crear", + "crecer", + "creído", + "crema", + "cría", + "crimen", + "cripta", + "crisis", + "cromo", + "crónica", + "croqueta", + "crudo", + "cruz", + "cuadro", + "cuarto", + "cuatro", + "cubo", + "cubrir", + "cuchara", + "cuello", + "cuento", + "cuerda", + "cuesta", + "cueva", + "cuidar", + "culebra", + "culpa", + "culto", + "cumbre", + "cumplir", + "cuna", + "cuneta", + "cuota", + "cupón", + "cúpula", + "curar", + "curioso", + "curso", + "curva", + "cutis", + "dama", + "danza", + "dar", + "dardo", + "dátil", + "deber", + "débil", + "década", + "decir", + "dedo", + "defensa", + "definir", + "dejar", + "delfín", + "delgado", + "delito", + "demora", + "denso", + "dental", + "deporte", + "derecho", + "derrota", + "desayuno", + "deseo", + "desfile", + "desnudo", + "destino", + "desvío", + "detalle", + "detener", + "deuda", + "día", + "diablo", + "diadema", + "diamante", + "diana", + "diario", + "dibujo", + "dictar", + "diente", + "dieta", + "diez", + "difícil", + "digno", + "dilema", + "diluir", + "dinero", + "directo", + "dirigir", + "disco", + "diseño", + "disfraz", + "diva", + "divino", + "doble", + "doce", + "dolor", + "domingo", + "don", + "donar", + "dorado", + "dormir", + "dorso", + "dos", + "dosis", + "dragón", + "droga", + "ducha", + "duda", + "duelo", + "dueño", + "dulce", + "dúo", + "duque", + "durar", + "dureza", + "duro", + "ébano", + "ebrio", + "echar", + "eco", + "ecuador", + "edad", + "edición", + "edificio", + "editor", + "educar", + "efecto", + "eficaz", + "eje", + "ejemplo", + "elefante", + "elegir", + "elemento", + "elevar", + "elipse", + "élite", + "elixir", + "elogio", + "eludir", + "embudo", + "emitir", + "emoción", + "empate", + "empeño", + "empleo", + "empresa", + "enano", + "encargo", + "enchufe", + "encía", + "enemigo", + "enero", + "enfado", + "enfermo", + "engaño", + "enigma", + "enlace", + "enorme", + "enredo", + "ensayo", + "enseñar", + "entero", + "entrar", + "envase", + "envío", + "época", + "equipo", + "erizo", + "escala", + "escena", + "escolar", + "escribir", + "escudo", + "esencia", + "esfera", + "esfuerzo", + "espada", + "espejo", + "espía", + "esposa", + "espuma", + "esquí", + "estar", + "este", + "estilo", + "estufa", + "etapa", + "eterno", + "ética", + "etnia", + "evadir", + "evaluar", + "evento", + "evitar", + "exacto", + "examen", + "exceso", + "excusa", + "exento", + "exigir", + "exilio", + "existir", + "éxito", + "experto", + "explicar", + "exponer", + "extremo", + "fábrica", + "fábula", + "fachada", + "fácil", + "factor", + "faena", + "faja", + "falda", + "fallo", + "falso", + "faltar", + "fama", + "familia", + "famoso", + "faraón", + "farmacia", + "farol", + "farsa", + "fase", + "fatiga", + "fauna", + "favor", + "fax", + "febrero", + "fecha", + "feliz", + "feo", + "feria", + "feroz", + "fértil", + "fervor", + "festín", + "fiable", + "fianza", + "fiar", + "fibra", + "ficción", + "ficha", + "fideo", + "fiebre", + "fiel", + "fiera", + "fiesta", + "figura", + "fijar", + "fijo", + "fila", + "filete", + "filial", + "filtro", + "fin", + "finca", + "fingir", + "finito", + "firma", + "flaco", + "flauta", + "flecha", + "flor", + "flota", + "fluir", + "flujo", + "flúor", + "fobia", + "foca", + "fogata", + "fogón", + "folio", + "folleto", + "fondo", + "forma", + "forro", + "fortuna", + "forzar", + "fosa", + "foto", + "fracaso", + "frágil", + "franja", + "frase", + "fraude", + "freír", + "freno", + "fresa", + "frío", + "frito", + "fruta", + "fuego", + "fuente", + "fuerza", + "fuga", + "fumar", + "función", + "funda", + "furgón", + "furia", + "fusil", + "fútbol", + "futuro", + "gacela", + "gafas", + "gaita", + "gajo", + "gala", + "galería", + "gallo", + "gamba", + "ganar", + "gancho", + "ganga", + "ganso", + "garaje", + "garza", + "gasolina", + "gastar", + "gato", + "gavilán", + "gemelo", + "gemir", + "gen", + "género", + "genio", + "gente", + "geranio", + "gerente", + "germen", + "gesto", + "gigante", + "gimnasio", + "girar", + "giro", + "glaciar", + "globo", + "gloria", + "gol", + "golfo", + "goloso", + "golpe", + "goma", + "gordo", + "gorila", + "gorra", + "gota", + "goteo", + "gozar", + "grada", + "gráfico", + "grano", + "grasa", + "gratis", + "grave", + "grieta", + "grillo", + "gripe", + "gris", + "grito", + "grosor", + "grúa", + "grueso", + "grumo", + "grupo", + "guante", + "guapo", + "guardia", + "guerra", + "guía", + "guiño", + "guion", + "guiso", + "guitarra", + "gusano", + "gustar", + "haber", + "hábil", + "hablar", + "hacer", + "hacha", + "hada", + "hallar", + "hamaca", + "harina", + "haz", + "hazaña", + "hebilla", + "hebra", + "hecho", + "helado", + "helio", + "hembra", + "herir", + "hermano", + "héroe", + "hervir", + "hielo", + "hierro", + "hígado", + "higiene", + "hijo", + "himno", + "historia", + "hocico", + "hogar", + "hoguera", + "hoja", + "hombre", + "hongo", + "honor", + "honra", + "hora", + "hormiga", + "horno", + "hostil", + "hoyo", + "hueco", + "huelga", + "huerta", + "hueso", + "huevo", + "huida", + "huir", + "humano", + "húmedo", + "humilde", + "humo", + "hundir", + "huracán", + "hurto", + "icono", + "ideal", + "idioma", + "ídolo", + "iglesia", + "iglú", + "igual", + "ilegal", + "ilusión", + "imagen", + "imán", + "imitar", + "impar", + "imperio", + "imponer", + "impulso", + "incapaz", + "índice", + "inerte", + "infiel", + "informe", + "ingenio", + "inicio", + "inmenso", + "inmune", + "innato", + "insecto", + "instante", + "interés", + "íntimo", + "intuir", + "inútil", + "invierno", + "ira", + "iris", + "ironía", + "isla", + "islote", + "jabalí", + "jabón", + "jamón", + "jarabe", + "jardín", + "jarra", + "jaula", + "jazmín", + "jefe", + "jeringa", + "jinete", + "jornada", + "joroba", + "joven", + "joya", + "juerga", + "jueves", + "juez", + "jugador", + "jugo", + "juguete", + "juicio", + "junco", + "jungla", + "junio", + "juntar", + "júpiter", + "jurar", + "justo", + "juvenil", + "juzgar", + "kilo", + "koala", + "labio", + "lacio", + "lacra", + "lado", + "ladrón", + "lagarto", + "lágrima", + "laguna", + "laico", + "lamer", + "lámina", + "lámpara", + "lana", + "lancha", + "langosta", + "lanza", + "lápiz", + "largo", + "larva", + "lástima", + "lata", + "látex", + "latir", + "laurel", + "lavar", + "lazo", + "leal", + "lección", + "leche", + "lector", + "leer", + "legión", + "legumbre", + "lejano", + "lengua", + "lento", + "leña", + "león", + "leopardo", + "lesión", + "letal", + "letra", + "leve", + "leyenda", + "libertad", + "libro", + "licor", + "líder", + "lidiar", + "lienzo", + "liga", + "ligero", + "lima", + "límite", + "limón", + "limpio", + "lince", + "lindo", + "línea", + "lingote", + "lino", + "linterna", + "líquido", + "liso", + "lista", + "litera", + "litio", + "litro", + "llaga", + "llama", + "llanto", + "llave", + "llegar", + "llenar", + "llevar", + "llorar", + "llover", + "lluvia", + "lobo", + "loción", + "loco", + "locura", + "lógica", + "logro", + "lombriz", + "lomo", + "lonja", + "lote", + "lucha", + "lucir", + "lugar", + "lujo", + "luna", + "lunes", + "lupa", + "lustro", + "luto", + "luz", + "maceta", + "macho", + "madera", + "madre", + "maduro", + "maestro", + "mafia", + "magia", + "mago", + "maíz", + "maldad", + "maleta", + "malla", + "malo", + "mamá", + "mambo", + "mamut", + "manco", + "mando", + "manejar", + "manga", + "maniquí", + "manjar", + "mano", + "manso", + "manta", + "mañana", + "mapa", + "máquina", + "mar", + "marco", + "marea", + "marfil", + "margen", + "marido", + "mármol", + "marrón", + "martes", + "marzo", + "masa", + "máscara", + "masivo", + "matar", + "materia", + "matiz", + "matriz", + "máximo", + "mayor", + "mazorca", + "mecha", + "medalla", + "medio", + "médula", + "mejilla", + "mejor", + "melena", + "melón", + "memoria", + "menor", + "mensaje", + "mente", + "menú", + "mercado", + "merengue", + "mérito", + "mes", + "mesón", + "meta", + "meter", + "método", + "metro", + "mezcla", + "miedo", + "miel", + "miembro", + "miga", + "mil", + "milagro", + "militar", + "millón", + "mimo", + "mina", + "minero", + "mínimo", + "minuto", + "miope", + "mirar", + "misa", + "miseria", + "misil", + "mismo", + "mitad", + "mito", + "mochila", + "moción", + "moda", + "modelo", + "moho", + "mojar", + "molde", + "moler", + "molino", + "momento", + "momia", + "monarca", + "moneda", + "monja", + "monto", + "moño", + "morada", + "morder", + "moreno", + "morir", + "morro", + "morsa", + "mortal", + "mosca", + "mostrar", + "motivo", + "mover", + "móvil", + "mozo", + "mucho", + "mudar", + "mueble", + "muela", + "muerte", + "muestra", + "mugre", + "mujer", + "mula", + "muleta", + "multa", + "mundo", + "muñeca", + "mural", + "muro", + "músculo", + "museo", + "musgo", + "música", + "muslo", + "nácar", + "nación", + "nadar", + "naipe", + "naranja", + "nariz", + "narrar", + "nasal", + "natal", + "nativo", + "natural", + "náusea", + "naval", + "nave", + "navidad", + "necio", + "néctar", + "negar", + "negocio", + "negro", + "neón", + "nervio", + "neto", + "neutro", + "nevar", + "nevera", + "nicho", + "nido", + "niebla", + "nieto", + "niñez", + "niño", + "nítido", + "nivel", + "nobleza", + "noche", + "nómina", + "noria", + "norma", + "norte", + "nota", + "noticia", + "novato", + "novela", + "novio", + "nube", + "nuca", + "núcleo", + "nudillo", + "nudo", + "nuera", + "nueve", + "nuez", + "nulo", + "número", + "nutria", + "oasis", + "obeso", + "obispo", + "objeto", + "obra", + "obrero", + "observar", + "obtener", + "obvio", + "oca", + "ocaso", + "océano", + "ochenta", + "ocho", + "ocio", + "ocre", + "octavo", + "octubre", + "oculto", + "ocupar", + "ocurrir", + "odiar", + "odio", + "odisea", + "oeste", + "ofensa", + "oferta", + "oficio", + "ofrecer", + "ogro", + "oído", + "oír", + "ojo", + "ola", + "oleada", + "olfato", + "olivo", + "olla", + "olmo", + "olor", + "olvido", + "ombligo", + "onda", + "onza", + "opaco", + "opción", + "ópera", + "opinar", + "oponer", + "optar", + "óptica", + "opuesto", + "oración", + "orador", + "oral", + "órbita", + "orca", + "orden", + "oreja", + "órgano", + "orgía", + "orgullo", + "oriente", + "origen", + "orilla", + "oro", + "orquesta", + "oruga", + "osadía", + "oscuro", + "osezno", + "oso", + "ostra", + "otoño", + "otro", + "oveja", + "óvulo", + "óxido", + "oxígeno", + "oyente", + "ozono", + "pacto", + "padre", + "paella", + "página", + "pago", + "país", + "pájaro", + "palabra", + "palco", + "paleta", + "pálido", + "palma", + "paloma", + "palpar", + "pan", + "panal", + "pánico", + "pantera", + "pañuelo", + "papá", + "papel", + "papilla", + "paquete", + "parar", + "parcela", + "pared", + "parir", + "paro", + "párpado", + "parque", + "párrafo", + "parte", + "pasar", + "paseo", + "pasión", + "paso", + "pasta", + "pata", + "patio", + "patria", + "pausa", + "pauta", + "pavo", + "payaso", + "peatón", + "pecado", + "pecera", + "pecho", + "pedal", + "pedir", + "pegar", + "peine", + "pelar", + "peldaño", + "pelea", + "peligro", + "pellejo", + "pelo", + "peluca", + "pena", + "pensar", + "peñón", + "peón", + "peor", + "pepino", + "pequeño", + "pera", + "percha", + "perder", + "pereza", + "perfil", + "perico", + "perla", + "permiso", + "perro", + "persona", + "pesa", + "pesca", + "pésimo", + "pestaña", + "pétalo", + "petróleo", + "pez", + "pezuña", + "picar", + "pichón", + "pie", + "piedra", + "pierna", + "pieza", + "pijama", + "pilar", + "piloto", + "pimienta", + "pino", + "pintor", + "pinza", + "piña", + "piojo", + "pipa", + "pirata", + "pisar", + "piscina", + "piso", + "pista", + "pitón", + "pizca", + "placa", + "plan", + "plata", + "playa", + "plaza", + "pleito", + "pleno", + "plomo", + "pluma", + "plural", + "pobre", + "poco", + "poder", + "podio", + "poema", + "poesía", + "poeta", + "polen", + "policía", + "pollo", + "polvo", + "pomada", + "pomelo", + "pomo", + "pompa", + "poner", + "porción", + "portal", + "posada", + "poseer", + "posible", + "poste", + "potencia", + "potro", + "pozo", + "prado", + "precoz", + "pregunta", + "premio", + "prensa", + "preso", + "previo", + "primo", + "príncipe", + "prisión", + "privar", + "proa", + "probar", + "proceso", + "producto", + "proeza", + "profesor", + "programa", + "prole", + "promesa", + "pronto", + "propio", + "próximo", + "prueba", + "público", + "puchero", + "pudor", + "pueblo", + "puerta", + "puesto", + "pulga", + "pulir", + "pulmón", + "pulpo", + "pulso", + "puma", + "punto", + "puñal", + "puño", + "pupa", + "pupila", + "puré", + "quedar", + "queja", + "quemar", + "querer", + "queso", + "quieto", + "química", + "quince", + "quitar", + "rábano", + "rabia", + "rabo", + "ración", + "radical", + "raíz", + "rama", + "rampa", + "rancho", + "rango", + "rapaz", + "rápido", + "rapto", + "rasgo", + "raspa", + "rato", + "rayo", + "raza", + "razón", + "reacción", + "realidad", + "rebaño", + "rebote", + "recaer", + "receta", + "rechazo", + "recoger", + "recreo", + "recto", + "recurso", + "red", + "redondo", + "reducir", + "reflejo", + "reforma", + "refrán", + "refugio", + "regalo", + "regir", + "regla", + "regreso", + "rehén", + "reino", + "reír", + "reja", + "relato", + "relevo", + "relieve", + "relleno", + "reloj", + "remar", + "remedio", + "remo", + "rencor", + "rendir", + "renta", + "reparto", + "repetir", + "reposo", + "reptil", + "res", + "rescate", + "resina", + "respeto", + "resto", + "resumen", + "retiro", + "retorno", + "retrato", + "reunir", + "revés", + "revista", + "rey", + "rezar", + "rico", + "riego", + "rienda", + "riesgo", + "rifa", + "rígido", + "rigor", + "rincón", + "riñón", + "río", + "riqueza", + "risa", + "ritmo", + "rito", + "rizo", + "roble", + "roce", + "rociar", + "rodar", + "rodeo", + "rodilla", + "roer", + "rojizo", + "rojo", + "romero", + "romper", + "ron", + "ronco", + "ronda", + "ropa", + "ropero", + "rosa", + "rosca", + "rostro", + "rotar", + "rubí", + "rubor", + "rudo", + "rueda", + "rugir", + "ruido", + "ruina", + "ruleta", + "rulo", + "rumbo", + "rumor", + "ruptura", + "ruta", + "rutina", + "sábado", + "saber", + "sabio", + "sable", + "sacar", + "sagaz", + "sagrado", + "sala", + "saldo", + "salero", + "salir", + "salmón", + "salón", + "salsa", + "salto", + "salud", + "salvar", + "samba", + "sanción", + "sandía", + "sanear", + "sangre", + "sanidad", + "sano", + "santo", + "sapo", + "saque", + "sardina", + "sartén", + "sastre", + "satán", + "sauna", + "saxofón", + "sección", + "seco", + "secreto", + "secta", + "sed", + "seguir", + "seis", + "sello", + "selva", + "semana", + "semilla", + "senda", + "sensor", + "señal", + "señor", + "separar", + "sepia", + "sequía", + "ser", + "serie", + "sermón", + "servir", + "sesenta", + "sesión", + "seta", + "setenta", + "severo", + "sexo", + "sexto", + "sidra", + "siesta", + "siete", + "siglo", + "signo", + "sílaba", + "silbar", + "silencio", + "silla", + "símbolo", + "simio", + "sirena", + "sistema", + "sitio", + "situar", + "sobre", + "socio", + "sodio", + "sol", + "solapa", + "soldado", + "soledad", + "sólido", + "soltar", + "solución", + "sombra", + "sondeo", + "sonido", + "sonoro", + "sonrisa", + "sopa", + "soplar", + "soporte", + "sordo", + "sorpresa", + "sorteo", + "sostén", + "sótano", + "suave", + "subir", + "suceso", + "sudor", + "suegra", + "suelo", + "sueño", + "suerte", + "sufrir", + "sujeto", + "sultán", + "sumar", + "superar", + "suplir", + "suponer", + "supremo", + "sur", + "surco", + "sureño", + "surgir", + "susto", + "sutil", + "tabaco", + "tabique", + "tabla", + "tabú", + "taco", + "tacto", + "tajo", + "talar", + "talco", + "talento", + "talla", + "talón", + "tamaño", + "tambor", + "tango", + "tanque", + "tapa", + "tapete", + "tapia", + "tapón", + "taquilla", + "tarde", + "tarea", + "tarifa", + "tarjeta", + "tarot", + "tarro", + "tarta", + "tatuaje", + "tauro", + "taza", + "tazón", + "teatro", + "techo", + "tecla", + "técnica", + "tejado", + "tejer", + "tejido", + "tela", + "teléfono", + "tema", + "temor", + "templo", + "tenaz", + "tender", + "tener", + "tenis", + "tenso", + "teoría", + "terapia", + "terco", + "término", + "ternura", + "terror", + "tesis", + "tesoro", + "testigo", + "tetera", + "texto", + "tez", + "tibio", + "tiburón", + "tiempo", + "tienda", + "tierra", + "tieso", + "tigre", + "tijera", + "tilde", + "timbre", + "tímido", + "timo", + "tinta", + "tío", + "típico", + "tipo", + "tira", + "tirón", + "titán", + "títere", + "título", + "tiza", + "toalla", + "tobillo", + "tocar", + "tocino", + "todo", + "toga", + "toldo", + "tomar", + "tono", + "tonto", + "topar", + "tope", + "toque", + "tórax", + "torero", + "tormenta", + "torneo", + "toro", + "torpedo", + "torre", + "torso", + "tortuga", + "tos", + "tosco", + "toser", + "tóxico", + "trabajo", + "tractor", + "traer", + "tráfico", + "trago", + "traje", + "tramo", + "trance", + "trato", + "trauma", + "trazar", + "trébol", + "tregua", + "treinta", + "tren", + "trepar", + "tres", + "tribu", + "trigo", + "tripa", + "triste", + "triunfo", + "trofeo", + "trompa", + "tronco", + "tropa", + "trote", + "trozo", + "truco", + "trueno", + "trufa", + "tubería", + "tubo", + "tuerto", + "tumba", + "tumor", + "túnel", + "túnica", + "turbina", + "turismo", + "turno", + "tutor", + "ubicar", + "úlcera", + "umbral", + "unidad", + "unir", + "universo", + "uno", + "untar", + "uña", + "urbano", + "urbe", + "urgente", + "urna", + "usar", + "usuario", + "útil", + "utopía", + "uva", + "vaca", + "vacío", + "vacuna", + "vagar", + "vago", + "vaina", + "vajilla", + "vale", + "válido", + "valle", + "valor", + "válvula", + "vampiro", + "vara", + "variar", + "varón", + "vaso", + "vecino", + "vector", + "vehículo", + "veinte", + "vejez", + "vela", + "velero", + "veloz", + "vena", + "vencer", + "venda", + "veneno", + "vengar", + "venir", + "venta", + "venus", + "ver", + "verano", + "verbo", + "verde", + "vereda", + "verja", + "verso", + "verter", + "vía", + "viaje", + "vibrar", + "vicio", + "víctima", + "vida", + "vídeo", + "vidrio", + "viejo", + "viernes", + "vigor", + "vil", + "villa", + "vinagre", + "vino", + "viñedo", + "violín", + "viral", + "virgo", + "virtud", + "visor", + "víspera", + "vista", + "vitamina", + "viudo", + "vivaz", + "vivero", + "vivir", + "vivo", + "volcán", + "volumen", + "volver", + "voraz", + "votar", + "voto", + "voz", + "vuelo", + "vulgar", + "yacer", + "yate", + "yegua", + "yema", + "yerno", + "yeso", + "yodo", + "yoga", + "yogur", + "zafiro", + "zanja", + "zapato", + "zarza", + "zona", + "zorro", + "zumo", + "zurdo" + ); + return word_list; +} + +std::unordered_map& word_map_spanish() +{ + static std::unordered_map word_map; + if (word_map.size() > 0) + { + return word_map; + } + std::vector word_list = word_list_spanish(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + word_map[*it] = ii; + } + return word_map; +} + +std::unordered_map& trimmed_word_map_spanish() +{ + static std::unordered_map trimmed_word_map; + if (trimmed_word_map.size() > 0) + { + return trimmed_word_map; + } + std::vector word_list = word_list_spanish(); + int ii; + std::vector::iterator it; + for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) + { + if (it->length() > 4) + { + trimmed_word_map[it->substr(0, 4)] = ii; + } + else + { + trimmed_word_map[*it] = ii; + } + } + return trimmed_word_map; +} From 4517bac7f3493bd369a05d5a1587765ef72a73da Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 2 Oct 2014 18:15:18 +0530 Subject: [PATCH 19/26] Restructured language sources to be singletons --- src/mnemonics/electrum-words.cpp | 402 ++- src/mnemonics/electrum-words.h | 40 +- src/mnemonics/english.h | 4156 ++++++++++++++--------------- src/mnemonics/japanese.h | 4156 ++++++++++++++--------------- src/mnemonics/language_base.h | 61 + src/mnemonics/old_english.h | 3312 ++++++++++++----------- src/mnemonics/portuguese.h | 3313 ++++++++++++----------- src/mnemonics/singleton.h | 16 + src/mnemonics/spanish.h | 4156 ++++++++++++++--------------- src/simplewallet/simplewallet.cpp | 49 +- src/simplewallet/simplewallet.h | 3 +- src/wallet/wallet2.cpp | 9 +- src/wallet/wallet2.h | 6 +- 13 files changed, 9801 insertions(+), 9878 deletions(-) create mode 100644 src/mnemonics/language_base.h create mode 100644 src/mnemonics/singleton.h diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 334bc578f..7caa3f72b 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include "crypto/crypto.h" // for declaration of crypto::secret_key #include @@ -55,97 +56,93 @@ #include "portuguese.h" #include "japanese.h" #include "old_english.h" +#include "language_base.h" +#include "singleton.h" namespace { - int num_words = 0; const int seed_length = 24; - std::map words_map; - std::vector words_array; - - bool is_old_style_word_list = false; - - const std::string WORD_LISTS_DIRECTORY = "wordlists"; - const std::string LANGUAGES_DIRECTORY = "languages"; - const std::string OLD_WORD_FILE = "old-word-list"; - - const int unique_prefix_length = 4; /*! - * \brief Tells if the module hasn't been initialized with a word list file. - * \return true if the module hasn't been initialized with a word list file false otherwise. + * \brief Finds the word list that contains the seed words and puts the indices + * where matches occured in matched_indices. + * \param seed List of words to match. + * \param has_checksum If word list passed checksum test, we need to only do a prefix check. + * \param matched_indices The indices where the seed words were found are added to this. + * \return true if all the words were present in some language false if not. */ - bool is_uninitialized() + bool find_seed_language(const std::vector &seed, + bool has_checksum, std::vector &matched_indices, uint32_t &word_list_length, + std::string &language_name) { - return num_words == 0 ? true : false; - } - - /*! - * \brief Create word list map and array data structres for use during inter-conversion between - * words and secret key. - * \param word_file Path to the word list file from pwd. - * \param has_checksum True if checksum was supplied false if not. - */ - void create_data_structures(const std::string &word_file, bool has_checksum) - { - words_array.clear(); - words_map.clear(); - num_words = 0; - std::ifstream input_stream; - input_stream.open(word_file.c_str(), std::ifstream::in); - - if (!input_stream) - throw std::runtime_error("Word list file couldn't be opened."); - - std::string word; - while (input_stream >> word) + // If there's a new language added, add an instance of it here. + std::vector language_instances({ + Language::Singleton::instance(), + Language::Singleton::instance(), + Language::Singleton::instance(), + Language::Singleton::instance(), + Language::Singleton::instance() + }); + // To hold trimmed seed words in case of a checksum being present. + std::vector trimmed_seed; + if (has_checksum) { - if (word.length() == 0 || word[0] == '#') + // If it had a checksum, we'll just compare the unique prefix + // So we create a list of trimmed seed words + for (std::vector::const_iterator it = seed.begin(); it != seed.end(); it++) { - // Skip empty and comment lines - continue; - } - words_array.push_back(word); - if (has_checksum) - { - // Only if checksum was passed should we stick to just 4 char checks to be lenient about typos. - words_map[word.substr(0, unique_prefix_length)] = num_words; - } - else - { - words_map[word] = num_words; - } - num_words++; - } - input_stream.close(); - } - - /*! - * \brief Tells if all the words passed in wlist was present in current word list file. - * \param wlist List of words to match. - * \param has_checksum If word list passed checksum test, we need to only do a 4 char check. - * \return true if all the words were present false if not. - */ - bool word_list_file_match(const std::vector &wlist, bool has_checksum) - { - for (std::vector::const_iterator it = wlist.begin(); it != wlist.end(); it++) - { - if (has_checksum) - { - if (words_map.count(it->substr(0, unique_prefix_length)) == 0) - { - return false; - } - } - else - { - if (words_map.count(*it) == 0) - { - return false; - } + trimmed_seed.push_back(it->length() > Language::unique_prefix_length ? + it->substr(0, Language::unique_prefix_length) : *it); } } - return true; + std::unordered_map word_map; + std::unordered_map trimmed_word_map; + // Iterate through all the languages and find a match + for (std::vector::iterator it1 = language_instances.begin(); + it1 != language_instances.end(); it1++) + { + word_map = (*it1)->get_word_map(); + trimmed_word_map = (*it1)->get_trimmed_word_map(); + // To iterate through seed words + std::vector::const_iterator it2; + // To iterate through trimmed seed words + std::vector::iterator it3; + bool full_match = true; + + // Iterate through all the words and see if they're all present + for (it2 = seed.begin(), it3 = trimmed_seed.begin(); + it2 != seed.end() && it3 != trimmed_seed.end(); it2++, it3++) + { + if (has_checksum) + { + // Use the trimmed words and map + if (trimmed_word_map.count(*it3) == 0) + { + full_match = false; + break; + } + matched_indices.push_back(trimmed_word_map[*it3]); + } + else + { + if (word_map.count(*it2) == 0) + { + full_match = false; + break; + } + matched_indices.push_back(word_map[*it2]); + } + } + if (full_match) + { + word_list_length = (*it1)->get_word_list().size(); + language_name = (*it1)->get_language_name(); + return true; + } + // Some didn't match. Clear the index array. + matched_indices.clear(); + } + return false; } /*! @@ -155,16 +152,43 @@ namespace */ uint32_t create_checksum_index(const std::vector &word_list) { - std::string four_char_words = ""; + std::string trimmed_words = ""; for (std::vector::const_iterator it = word_list.begin(); it != word_list.end(); it++) { - four_char_words += it->substr(0, unique_prefix_length); + if (it->length() > 4) + { + trimmed_words += it->substr(0, Language::unique_prefix_length); + } + else + { + trimmed_words += *it; + } } boost::crc_32_type result; - result.process_bytes(four_char_words.data(), four_char_words.length()); + result.process_bytes(trimmed_words.data(), trimmed_words.length()); return result.checksum() % seed_length; } + + /*! + * \brief Does the checksum test on the seed passed. + * \param seed Vector of seed words + * \return True if the test passed false if not. + */ + bool checksum_test(std::vector seed) + { + // The last word is the checksum. + std::string last_word = seed.back(); + seed.pop_back(); + + std::string checksum = seed[create_checksum_index(seed)]; + + std::string trimmed_checksum = checksum.length() > 4 ? checksum.substr(0, Language::unique_prefix_length) : + checksum; + std::string trimmed_last_word = checksum.length() > 4 ? last_word.substr(0, Language::unique_prefix_length) : + last_word; + return trimmed_checksum == trimmed_last_word; + } } /*! @@ -181,115 +205,63 @@ namespace crypto */ namespace ElectrumWords { - /*! - * \brief Called to initialize it to work with a word list file. - * \param language Language of the word list file. - * \param has_checksum True if the checksum was passed false if not. - * \param old_word_list true it is to use the old style word list file false if not. - */ - void init(const std::string &language, bool has_checksum, bool old_word_list) - { - if (old_word_list) - { - // Use the old word list file if told to. - create_data_structures(WORD_LISTS_DIRECTORY + '/' + OLD_WORD_FILE, has_checksum); - is_old_style_word_list = true; - } - else - { - create_data_structures(WORD_LISTS_DIRECTORY + '/' + LANGUAGES_DIRECTORY + '/' + language, has_checksum); - is_old_style_word_list = false; - } - if (num_words == 0) - { - throw std::runtime_error(std::string("Word list file is empty: ") + - (old_word_list ? OLD_WORD_FILE : (LANGUAGES_DIRECTORY + '/' + language))); - } - } - /*! * \brief Converts seed words to bytes (secret key). - * \param words String containing the words separated by spaces. - * \param dst To put the secret key restored from the words. - * \return false if not a multiple of 3 words, or if word is not in the words list + * \param words String containing the words separated by spaces. + * \param dst To put the secret key restored from the words. + * \param language_name Language of the seed as found gets written here. + * \return false if not a multiple of 3 words, or if word is not in the words list */ - bool words_to_bytes(const std::string& words, crypto::secret_key& dst) + bool words_to_bytes(const std::string& words, crypto::secret_key& dst, + std::string &language_name) { - std::vector wlist; + std::vector seed; - boost::split(wlist, words, boost::is_any_of(" ")); + boost::split(seed, words, boost::is_any_of(" ")); + + // error on non-compliant word list + if (seed.size() != seed_length/2 && seed.size() != seed_length && + seed.size() != seed_length + 1) + { + return false; + } // If it is seed with a checksum. - bool has_checksum = (wlist.size() == seed_length + 1); - + bool has_checksum = seed.size() == (seed_length + 1); if (has_checksum) { - // The last word is the checksum. - std::string last_word = wlist.back(); - wlist.pop_back(); - - std::string checksum = wlist[create_checksum_index(wlist)]; - - if (checksum.substr(0, unique_prefix_length) != last_word.substr(0, unique_prefix_length)) + if (!checksum_test(seed)) { // Checksum fail return false; } } - // Try to find a word list file that contains all the words in the word list. - std::vector languages; - get_language_list(languages); - - std::vector::iterator it; - for (it = languages.begin(); it != languages.end(); it++) + + std::vector matched_indices; + uint32_t word_list_length; + if (!find_seed_language(seed, has_checksum, matched_indices, word_list_length, language_name)) { - init(*it, has_checksum); - if (word_list_file_match(wlist, has_checksum)) - { - break; - } + return false; } - // If no such file was found, see if the old style word list file has them all. - if (it == languages.end()) - { - init("", has_checksum, true); - if (!word_list_file_match(wlist, has_checksum)) - { - return false; - } - } - int n = num_words; - // error on non-compliant word list - if (wlist.size() != 12 && wlist.size() != 24) return false; - - for (unsigned int i=0; i < wlist.size() / 3; i++) + for (unsigned int i=0; i < seed.size() / 3; i++) { uint32_t val; uint32_t w1, w2, w3; + w1 = matched_indices[i*3]; + w2 = matched_indices[i*3 + 1]; + w3 = matched_indices[i*3 + 2]; - if (has_checksum) - { - w1 = words_map.at(wlist[i*3].substr(0, unique_prefix_length)); - w2 = words_map.at(wlist[i*3 + 1].substr(0, unique_prefix_length)); - w3 = words_map.at(wlist[i*3 + 2].substr(0, unique_prefix_length)); - } - else - { - w1 = words_map.at(wlist[i*3]); - w2 = words_map.at(wlist[i*3 + 1]); - w3 = words_map.at(wlist[i*3 + 2]); - } + val = w1 + word_list_length * (((word_list_length - w1) + w2) % word_list_length) + + word_list_length * word_list_length * (((word_list_length - w2) + w3) % word_list_length); - val = w1 + n * (((n - w1) + w2) % n) + n * n * (((n - w2) + w3) % n); - - if (!(val % n == w1)) return false; + if (!(val % word_list_length == w1)) return false; memcpy(dst.data + i * 4, &val, 4); // copy 4 bytes to position } std::string wlist_copy = words; - if (wlist.size() == 12) + if (seed.size() == seed_length/2) { memcpy(dst.data, dst.data + 16, 16); // if electrum 12-word seed, duplicate wlist_copy += ' '; @@ -301,23 +273,44 @@ namespace crypto /*! * \brief Converts bytes (secret key) to seed words. - * \param src Secret key - * \param words Space delimited concatenated words get written here. - * \return true if successful false if not. Unsuccessful if wrong key size. + * \param src Secret key + * \param words Space delimited concatenated words get written here. + * \param language_name Seed language name + * \return true if successful false if not. Unsuccessful if wrong key size. */ - bool bytes_to_words(const crypto::secret_key& src, std::string& words) + bool bytes_to_words(const crypto::secret_key& src, std::string& words, + const std::string &language_name) { - if (is_uninitialized()) - { - init("english", true); - } - - // To store the words for random access to add the checksum word later. - std::vector words_store; - int n = num_words; if (sizeof(src.data) % 4 != 0 || sizeof(src.data) == 0) return false; + std::vector word_list; + Language::Base *language; + if (language_name == "English") + { + language = Language::Singleton::instance(); + } + else if (language_name == "Spanish") + { + language = Language::Singleton::instance(); + } + else if (language_name == "Portuguese") + { + language = Language::Singleton::instance(); + } + else if (language_name == "Japanese") + { + language = Language::Singleton::instance(); + } + else + { + return false; + } + word_list = language->get_word_list(); + // To store the words for random access to add the checksum word later. + std::vector words_store; + + uint32_t word_list_length = word_list.size(); // 8 bytes -> 3 words. 8 digits base 16 -> 3 digits base 1626 for (unsigned int i=0; i < sizeof(src.data)/4; i++, words += ' ') { @@ -327,19 +320,19 @@ namespace crypto memcpy(&val, (src.data) + (i * 4), 4); - w1 = val % n; - w2 = ((val / n) + w1) % n; - w3 = (((val / n) / n) + w2) % n; + w1 = val % word_list_length; + w2 = ((val / word_list_length) + w1) % word_list_length; + w3 = (((val / word_list_length) / word_list_length) + w2) % word_list_length; - words += words_array[w1]; + words += word_list[w1]; words += ' '; - words += words_array[w2]; + words += word_list[w2]; words += ' '; - words += words_array[w3]; + words += word_list[w3]; - words_store.push_back(words_array[w1]); - words_store.push_back(words_array[w2]); - words_store.push_back(words_array[w3]); + words_store.push_back(word_list[w1]); + words_store.push_back(word_list[w2]); + words_store.push_back(word_list[w3]); } words.pop_back(); @@ -353,31 +346,18 @@ namespace crypto */ void get_language_list(std::vector &languages) { - languages.clear(); - boost::filesystem::path languages_directory("wordlists/languages"); - if (!boost::filesystem::exists(languages_directory) || - !boost::filesystem::is_directory(languages_directory)) + std::vector language_instances({ + Language::Singleton::instance(), + Language::Singleton::instance(), + Language::Singleton::instance(), + Language::Singleton::instance(), + Language::Singleton::instance() + }); + for (std::vector::iterator it = language_instances.begin(); + it != language_instances.end(); it++) { - throw std::runtime_error("Word list languages directory is missing."); + languages.push_back((*it)->get_language_name()); } - boost::filesystem::directory_iterator end; - for (boost::filesystem::directory_iterator it(languages_directory); it != end; it++) - { - languages.push_back(it->path().filename().string()); - } - } - - /*! - * \brief Tells if the module is currenly using an old style word list. - * \return true if it is currenly using an old style word list false if not. - */ - bool get_is_old_style_word_list() - { - if (is_uninitialized()) - { - throw std::runtime_error("ElectrumWords hasn't been initialized with a word list yet."); - } - return is_old_style_word_list; } /*! @@ -387,9 +367,9 @@ namespace crypto */ bool get_is_old_style_seed(const std::string &seed) { - std::vector wlist; - boost::split(wlist, seed, boost::is_any_of(" ")); - return wlist.size() != (seed_length + 1); + std::vector word_list; + boost::split(word_list, seed, boost::is_any_of(" ")); + return word_list.size() != (seed_length + 1); } } diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 95c420562..1535fff1b 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -36,6 +36,9 @@ * that method of "backing up" one's wallet keys. */ +#ifndef ELECTRUM_WORDS_H +#define ELECTRUM_WORDS_H + #include #include #include @@ -55,29 +58,26 @@ namespace crypto */ namespace ElectrumWords { - /*! - * \brief Called to initialize it to work with a word list file. - * \param language Language of the word list file. - * \param has_checksum True if the checksum was passed false if not. - * \param old_word_list true it is to use the old style word list file false if not. - */ - void init(const std::string &language, bool has_checksum=true, bool old_word_list=false); - + /*! * \brief Converts seed words to bytes (secret key). - * \param words String containing the words separated by spaces. - * \param dst To put the secret key restored from the words. - * \return false if not a multiple of 3 words, or if word is not in the words list + * \param words String containing the words separated by spaces. + * \param dst To put the secret key restored from the words. + * \param language_name Language of the seed as found gets written here. + * \return false if not a multiple of 3 words, or if word is not in the words list */ - bool words_to_bytes(const std::string& words, crypto::secret_key& dst); + bool words_to_bytes(const std::string& words, crypto::secret_key& dst, + std::string &language_name); /*! * \brief Converts bytes (secret key) to seed words. - * \param src Secret key - * \param words Space delimited concatenated words get written here. - * \return true if successful false if not. Unsuccessful if wrong key size. + * \param src Secret key + * \param words Space delimited concatenated words get written here. + * \param language_name Seed language name + * \return true if successful false if not. Unsuccessful if wrong key size. */ - bool bytes_to_words(const crypto::secret_key& src, std::string& words); + bool bytes_to_words(const crypto::secret_key& src, std::string& words, + const std::string &language_name); /*! * \brief Gets a list of seed languages that are supported. @@ -85,12 +85,6 @@ namespace crypto */ void get_language_list(std::vector &languages); - /*! - * \brief If the module is currenly using an old style word list. - * \return true if it is currenly using an old style word list false if not. - */ - bool get_is_old_style_word_list(); - /*! * \brief Tells if the seed passed is an old style seed or not. * \param seed The seed to check (a space delimited concatenated word list) @@ -99,3 +93,5 @@ namespace crypto bool get_is_old_style_seed(const std::string &seed); } } + +#endif diff --git a/src/mnemonics/english.h b/src/mnemonics/english.h index f1bd3fb64..9c6dc281b 100644 --- a/src/mnemonics/english.h +++ b/src/mnemonics/english.h @@ -1,2098 +1,2074 @@ +#ifndef ENGLISH_H +#define ENGLISH_H + #include #include +#include "language_base.h" +#include -std::vector& word_list_english() +namespace Language { - static std::vector word_list( - "abandon", - "ability", - "able", - "about", - "above", - "absent", - "absorb", - "abstract", - "absurd", - "abuse", - "access", - "accident", - "account", - "accuse", - "achieve", - "acid", - "acoustic", - "acquire", - "across", - "act", - "action", - "actor", - "actress", - "actual", - "adapt", - "add", - "addict", - "address", - "adjust", - "admit", - "adult", - "advance", - "advice", - "aerobic", - "affair", - "afford", - "afraid", - "again", - "age", - "agent", - "agree", - "ahead", - "aim", - "air", - "airport", - "aisle", - "alarm", - "album", - "alcohol", - "alert", - "alien", - "all", - "alley", - "allow", - "almost", - "alone", - "alpha", - "already", - "also", - "alter", - "always", - "amateur", - "amazing", - "among", - "amount", - "amused", - "analyst", - "anchor", - "ancient", - "anger", - "angle", - "angry", - "animal", - "ankle", - "announce", - "annual", - "another", - "answer", - "antenna", - "antique", - "anxiety", - "any", - "apart", - "apology", - "appear", - "apple", - "approve", - "april", - "arch", - "arctic", - "area", - "arena", - "argue", - "arm", - "armed", - "armor", - "army", - "around", - "arrange", - "arrest", - "arrive", - "arrow", - "art", - "artefact", - "artist", - "artwork", - "ask", - "aspect", - "assault", - "asset", - "assist", - "assume", - "asthma", - "athlete", - "atom", - "attack", - "attend", - "attitude", - "attract", - "auction", - "audit", - "august", - "aunt", - "author", - "auto", - "autumn", - "average", - "avocado", - "avoid", - "awake", - "aware", - "away", - "awesome", - "awful", - "awkward", - "axis", - "baby", - "bachelor", - "bacon", - "badge", - "bag", - "balance", - "balcony", - "ball", - "bamboo", - "banana", - "banner", - "bar", - "barely", - "bargain", - "barrel", - "base", - "basic", - "basket", - "battle", - "beach", - "bean", - "beauty", - "because", - "become", - "beef", - "before", - "begin", - "behave", - "behind", - "believe", - "below", - "belt", - "bench", - "benefit", - "best", - "betray", - "better", - "between", - "beyond", - "bicycle", - "bid", - "bike", - "bind", - "biology", - "bird", - "birth", - "bitter", - "black", - "blade", - "blame", - "blanket", - "blast", - "bleak", - "bless", - "blind", - "blood", - "blossom", - "blouse", - "blue", - "blur", - "blush", - "board", - "boat", - "body", - "boil", - "bomb", - "bone", - "bonus", - "book", - "boost", - "border", - "boring", - "borrow", - "boss", - "bottom", - "bounce", - "box", - "boy", - "bracket", - "brain", - "brand", - "brass", - "brave", - "bread", - "breeze", - "brick", - "bridge", - "brief", - "bright", - "bring", - "brisk", - "broccoli", - "broken", - "bronze", - "broom", - "brother", - "brown", - "brush", - "bubble", - "buddy", - "budget", - "buffalo", - "build", - "bulb", - "bulk", - "bullet", - "bundle", - "bunker", - "burden", - "burger", - "burst", - "bus", - "business", - "busy", - "butter", - "buyer", - "buzz", - "cabbage", - "cabin", - "cable", - "cactus", - "cage", - "cake", - "call", - "calm", - "camera", - "camp", - "can", - "canal", - "cancel", - "candy", - "cannon", - "canoe", - "canvas", - "canyon", - "capable", - "capital", - "captain", - "car", - "carbon", - "card", - "cargo", - "carpet", - "carry", - "cart", - "case", - "cash", - "casino", - "castle", - "casual", - "cat", - "catalog", - "catch", - "category", - "cattle", - "caught", - "cause", - "caution", - "cave", - "ceiling", - "celery", - "cement", - "census", - "century", - "cereal", - "certain", - "chair", - "chalk", - "champion", - "change", - "chaos", - "chapter", - "charge", - "chase", - "chat", - "cheap", - "check", - "cheese", - "chef", - "cherry", - "chest", - "chicken", - "chief", - "child", - "chimney", - "choice", - "choose", - "chronic", - "chuckle", - "chunk", - "churn", - "cigar", - "cinnamon", - "circle", - "citizen", - "city", - "civil", - "claim", - "clap", - "clarify", - "claw", - "clay", - "clean", - "clerk", - "clever", - "click", - "client", - "cliff", - "climb", - "clinic", - "clip", - "clock", - "clog", - "close", - "cloth", - "cloud", - "clown", - "club", - "clump", - "cluster", - "clutch", - "coach", - "coast", - "coconut", - "code", - "coffee", - "coil", - "coin", - "collect", - "color", - "column", - "combine", - "come", - "comfort", - "comic", - "common", - "company", - "concert", - "conduct", - "confirm", - "congress", - "connect", - "consider", - "control", - "convince", - "cook", - "cool", - "copper", - "copy", - "coral", - "core", - "corn", - "correct", - "cost", - "cotton", - "couch", - "country", - "couple", - "course", - "cousin", - "cover", - "coyote", - "crack", - "cradle", - "craft", - "cram", - "crane", - "crash", - "crater", - "crawl", - "crazy", - "cream", - "credit", - "creek", - "crew", - "cricket", - "crime", - "crisp", - "critic", - "crop", - "cross", - "crouch", - "crowd", - "crucial", - "cruel", - "cruise", - "crumble", - "crunch", - "crush", - "cry", - "crystal", - "cube", - "culture", - "cup", - "cupboard", - "curious", - "current", - "curtain", - "curve", - "cushion", - "custom", - "cute", - "cycle", - "dad", - "damage", - "damp", - "dance", - "danger", - "daring", - "dash", - "daughter", - "dawn", - "day", - "deal", - "debate", - "debris", - "decade", - "december", - "decide", - "decline", - "decorate", - "decrease", - "deer", - "defense", - "define", - "defy", - "degree", - "delay", - "deliver", - "demand", - "demise", - "denial", - "dentist", - "deny", - "depart", - "depend", - "deposit", - "depth", - "deputy", - "derive", - "describe", - "desert", - "design", - "desk", - "despair", - "destroy", - "detail", - "detect", - "develop", - "device", - "devote", - "diagram", - "dial", - "diamond", - "diary", - "dice", - "diesel", - "diet", - "differ", - "digital", - "dignity", - "dilemma", - "dinner", - "dinosaur", - "direct", - "dirt", - "disagree", - "discover", - "disease", - "dish", - "dismiss", - "disorder", - "display", - "distance", - "divert", - "divide", - "divorce", - "dizzy", - "doctor", - "document", - "dog", - "doll", - "dolphin", - "domain", - "donate", - "donkey", - "donor", - "door", - "dose", - "double", - "dove", - "draft", - "dragon", - "drama", - "drastic", - "draw", - "dream", - "dress", - "drift", - "drill", - "drink", - "drip", - "drive", - "drop", - "drum", - "dry", - "duck", - "dumb", - "dune", - "during", - "dust", - "dutch", - "duty", - "dwarf", - "dynamic", - "eager", - "eagle", - "early", - "earn", - "earth", - "easily", - "east", - "easy", - "echo", - "ecology", - "economy", - "edge", - "edit", - "educate", - "effort", - "egg", - "eight", - "either", - "elbow", - "elder", - "electric", - "elegant", - "element", - "elephant", - "elevator", - "elite", - "else", - "embark", - "embody", - "embrace", - "emerge", - "emotion", - "employ", - "empower", - "empty", - "enable", - "enact", - "end", - "endless", - "endorse", - "enemy", - "energy", - "enforce", - "engage", - "engine", - "enhance", - "enjoy", - "enlist", - "enough", - "enrich", - "enroll", - "ensure", - "enter", - "entire", - "entry", - "envelope", - "episode", - "equal", - "equip", - "era", - "erase", - "erode", - "erosion", - "error", - "erupt", - "escape", - "essay", - "essence", - "estate", - "eternal", - "ethics", - "evidence", - "evil", - "evoke", - "evolve", - "exact", - "example", - "excess", - "exchange", - "excite", - "exclude", - "excuse", - "execute", - "exercise", - "exhaust", - "exhibit", - "exile", - "exist", - "exit", - "exotic", - "expand", - "expect", - "expire", - "explain", - "expose", - "express", - "extend", - "extra", - "eye", - "eyebrow", - "fabric", - "face", - "faculty", - "fade", - "faint", - "faith", - "fall", - "false", - "fame", - "family", - "famous", - "fan", - "fancy", - "fantasy", - "farm", - "fashion", - "fat", - "fatal", - "father", - "fatigue", - "fault", - "favorite", - "feature", - "february", - "federal", - "fee", - "feed", - "feel", - "female", - "fence", - "festival", - "fetch", - "fever", - "few", - "fiber", - "fiction", - "field", - "figure", - "file", - "film", - "filter", - "final", - "find", - "fine", - "finger", - "finish", - "fire", - "firm", - "first", - "fiscal", - "fish", - "fit", - "fitness", - "fix", - "flag", - "flame", - "flash", - "flat", - "flavor", - "flee", - "flight", - "flip", - "float", - "flock", - "floor", - "flower", - "fluid", - "flush", - "fly", - "foam", - "focus", - "fog", - "foil", - "fold", - "follow", - "food", - "foot", - "force", - "forest", - "forget", - "fork", - "fortune", - "forum", - "forward", - "fossil", - "foster", - "found", - "fox", - "fragile", - "frame", - "frequent", - "fresh", - "friend", - "fringe", - "frog", - "front", - "frost", - "frown", - "frozen", - "fruit", - "fuel", - "fun", - "funny", - "furnace", - "fury", - "future", - "gadget", - "gain", - "galaxy", - "gallery", - "game", - "gap", - "garage", - "garbage", - "garden", - "garlic", - "garment", - "gas", - "gasp", - "gate", - "gather", - "gauge", - "gaze", - "general", - "genius", - "genre", - "gentle", - "genuine", - "gesture", - "ghost", - "giant", - "gift", - "giggle", - "ginger", - "giraffe", - "girl", - "give", - "glad", - "glance", - "glare", - "glass", - "glide", - "glimpse", - "globe", - "gloom", - "glory", - "glove", - "glow", - "glue", - "goat", - "goddess", - "gold", - "good", - "goose", - "gorilla", - "gospel", - "gossip", - "govern", - "gown", - "grab", - "grace", - "grain", - "grant", - "grape", - "grass", - "gravity", - "great", - "green", - "grid", - "grief", - "grit", - "grocery", - "group", - "grow", - "grunt", - "guard", - "guess", - "guide", - "guilt", - "guitar", - "gun", - "gym", - "habit", - "hair", - "half", - "hammer", - "hamster", - "hand", - "happy", - "harbor", - "hard", - "harsh", - "harvest", - "hat", - "have", - "hawk", - "hazard", - "head", - "health", - "heart", - "heavy", - "hedgehog", - "height", - "hello", - "helmet", - "help", - "hen", - "hero", - "hidden", - "high", - "hill", - "hint", - "hip", - "hire", - "history", - "hobby", - "hockey", - "hold", - "hole", - "holiday", - "hollow", - "home", - "honey", - "hood", - "hope", - "horn", - "horror", - "horse", - "hospital", - "host", - "hotel", - "hour", - "hover", - "hub", - "huge", - "human", - "humble", - "humor", - "hundred", - "hungry", - "hunt", - "hurdle", - "hurry", - "hurt", - "husband", - "hybrid", - "ice", - "icon", - "idea", - "identify", - "idle", - "ignore", - "ill", - "illegal", - "illness", - "image", - "imitate", - "immense", - "immune", - "impact", - "impose", - "improve", - "impulse", - "inch", - "include", - "income", - "increase", - "index", - "indicate", - "indoor", - "industry", - "infant", - "inflict", - "inform", - "inhale", - "inherit", - "initial", - "inject", - "injury", - "inmate", - "inner", - "innocent", - "input", - "inquiry", - "insane", - "insect", - "inside", - "inspire", - "install", - "intact", - "interest", - "into", - "invest", - "invite", - "involve", - "iron", - "island", - "isolate", - "issue", - "item", - "ivory", - "jacket", - "jaguar", - "jar", - "jazz", - "jealous", - "jeans", - "jelly", - "jewel", - "job", - "join", - "joke", - "journey", - "joy", - "judge", - "juice", - "jump", - "jungle", - "junior", - "junk", - "just", - "kangaroo", - "keen", - "keep", - "ketchup", - "key", - "kick", - "kid", - "kidney", - "kind", - "kingdom", - "kiss", - "kit", - "kitchen", - "kite", - "kitten", - "kiwi", - "knee", - "knife", - "knock", - "know", - "lab", - "label", - "labor", - "ladder", - "lady", - "lake", - "lamp", - "language", - "laptop", - "large", - "later", - "latin", - "laugh", - "laundry", - "lava", - "law", - "lawn", - "lawsuit", - "layer", - "lazy", - "leader", - "leaf", - "learn", - "leave", - "lecture", - "left", - "leg", - "legal", - "legend", - "leisure", - "lemon", - "lend", - "length", - "lens", - "leopard", - "lesson", - "letter", - "level", - "liar", - "liberty", - "library", - "license", - "life", - "lift", - "light", - "like", - "limb", - "limit", - "link", - "lion", - "liquid", - "list", - "little", - "live", - "lizard", - "load", - "loan", - "lobster", - "local", - "lock", - "logic", - "lonely", - "long", - "loop", - "lottery", - "loud", - "lounge", - "love", - "loyal", - "lucky", - "luggage", - "lumber", - "lunar", - "lunch", - "luxury", - "lyrics", - "machine", - "mad", - "magic", - "magnet", - "maid", - "mail", - "main", - "major", - "make", - "mammal", - "man", - "manage", - "mandate", - "mango", - "mansion", - "manual", - "maple", - "marble", - "march", - "margin", - "marine", - "market", - "marriage", - "mask", - "mass", - "master", - "match", - "material", - "math", - "matrix", - "matter", - "maximum", - "maze", - "meadow", - "mean", - "measure", - "meat", - "mechanic", - "medal", - "media", - "melody", - "melt", - "member", - "memory", - "mention", - "menu", - "mercy", - "merge", - "merit", - "merry", - "mesh", - "message", - "metal", - "method", - "middle", - "midnight", - "milk", - "million", - "mimic", - "mind", - "minimum", - "minor", - "minute", - "miracle", - "mirror", - "misery", - "miss", - "mistake", - "mix", - "mixed", - "mixture", - "mobile", - "model", - "modify", - "mom", - "moment", - "monitor", - "monkey", - "monster", - "month", - "moon", - "moral", - "more", - "morning", - "mosquito", - "mother", - "motion", - "motor", - "mountain", - "mouse", - "move", - "movie", - "much", - "muffin", - "mule", - "multiply", - "muscle", - "museum", - "mushroom", - "music", - "must", - "mutual", - "myself", - "mystery", - "myth", - "naive", - "name", - "napkin", - "narrow", - "nasty", - "nation", - "nature", - "near", - "neck", - "need", - "negative", - "neglect", - "neither", - "nephew", - "nerve", - "nest", - "net", - "network", - "neutral", - "never", - "news", - "next", - "nice", - "night", - "noble", - "noise", - "nominee", - "noodle", - "normal", - "north", - "nose", - "notable", - "note", - "nothing", - "notice", - "novel", - "now", - "nuclear", - "number", - "nurse", - "nut", - "oak", - "obey", - "object", - "oblige", - "obscure", - "observe", - "obtain", - "obvious", - "occur", - "ocean", - "october", - "odor", - "off", - "offer", - "office", - "often", - "oil", - "okay", - "old", - "olive", - "olympic", - "omit", - "once", - "one", - "onion", - "online", - "only", - "open", - "opera", - "opinion", - "oppose", - "option", - "orange", - "orbit", - "orchard", - "order", - "ordinary", - "organ", - "orient", - "original", - "orphan", - "ostrich", - "other", - "outdoor", - "outer", - "output", - "outside", - "oval", - "oven", - "over", - "own", - "owner", - "oxygen", - "oyster", - "ozone", - "pact", - "paddle", - "page", - "pair", - "palace", - "palm", - "panda", - "panel", - "panic", - "panther", - "paper", - "parade", - "parent", - "park", - "parrot", - "party", - "pass", - "patch", - "path", - "patient", - "patrol", - "pattern", - "pause", - "pave", - "payment", - "peace", - "peanut", - "pear", - "peasant", - "pelican", - "pen", - "penalty", - "pencil", - "people", - "pepper", - "perfect", - "permit", - "person", - "pet", - "phone", - "photo", - "phrase", - "physical", - "piano", - "picnic", - "picture", - "piece", - "pig", - "pigeon", - "pill", - "pilot", - "pink", - "pioneer", - "pipe", - "pistol", - "pitch", - "pizza", - "place", - "planet", - "plastic", - "plate", - "play", - "please", - "pledge", - "pluck", - "plug", - "plunge", - "poem", - "poet", - "point", - "polar", - "pole", - "police", - "pond", - "pony", - "pool", - "popular", - "portion", - "position", - "possible", - "post", - "potato", - "pottery", - "poverty", - "powder", - "power", - "practice", - "praise", - "predict", - "prefer", - "prepare", - "present", - "pretty", - "prevent", - "price", - "pride", - "primary", - "print", - "priority", - "prison", - "private", - "prize", - "problem", - "process", - "produce", - "profit", - "program", - "project", - "promote", - "proof", - "property", - "prosper", - "protect", - "proud", - "provide", - "public", - "pudding", - "pull", - "pulp", - "pulse", - "pumpkin", - "punch", - "pupil", - "puppy", - "purchase", - "purity", - "purpose", - "purse", - "push", - "put", - "puzzle", - "pyramid", - "quality", - "quantum", - "quarter", - "question", - "quick", - "quit", - "quiz", - "quote", - "rabbit", - "raccoon", - "race", - "rack", - "radar", - "radio", - "rail", - "rain", - "raise", - "rally", - "ramp", - "ranch", - "random", - "range", - "rapid", - "rare", - "rate", - "rather", - "raven", - "raw", - "razor", - "ready", - "real", - "reason", - "rebel", - "rebuild", - "recall", - "receive", - "recipe", - "record", - "recycle", - "reduce", - "reflect", - "reform", - "refuse", - "region", - "regret", - "regular", - "reject", - "relax", - "release", - "relief", - "rely", - "remain", - "remember", - "remind", - "remove", - "render", - "renew", - "rent", - "reopen", - "repair", - "repeat", - "replace", - "report", - "require", - "rescue", - "resemble", - "resist", - "resource", - "response", - "result", - "retire", - "retreat", - "return", - "reunion", - "reveal", - "review", - "reward", - "rhythm", - "rib", - "ribbon", - "rice", - "rich", - "ride", - "ridge", - "rifle", - "right", - "rigid", - "ring", - "riot", - "ripple", - "risk", - "ritual", - "rival", - "river", - "road", - "roast", - "robot", - "robust", - "rocket", - "romance", - "roof", - "rookie", - "room", - "rose", - "rotate", - "rough", - "round", - "route", - "royal", - "rubber", - "rude", - "rug", - "rule", - "run", - "runway", - "rural", - "sad", - "saddle", - "sadness", - "safe", - "sail", - "salad", - "salmon", - "salon", - "salt", - "salute", - "same", - "sample", - "sand", - "satisfy", - "satoshi", - "sauce", - "sausage", - "save", - "say", - "scale", - "scan", - "scare", - "scatter", - "scene", - "scheme", - "school", - "science", - "scissors", - "scorpion", - "scout", - "scrap", - "screen", - "script", - "scrub", - "sea", - "search", - "season", - "seat", - "second", - "secret", - "section", - "security", - "seed", - "seek", - "segment", - "select", - "sell", - "seminar", - "senior", - "sense", - "sentence", - "series", - "service", - "session", - "settle", - "setup", - "seven", - "shadow", - "shaft", - "shallow", - "share", - "shed", - "shell", - "sheriff", - "shield", - "shift", - "shine", - "ship", - "shiver", - "shock", - "shoe", - "shoot", - "shop", - "short", - "shoulder", - "shove", - "shrimp", - "shrug", - "shuffle", - "shy", - "sibling", - "sick", - "side", - "siege", - "sight", - "sign", - "silent", - "silk", - "silly", - "silver", - "similar", - "simple", - "since", - "sing", - "siren", - "sister", - "situate", - "six", - "size", - "skate", - "sketch", - "ski", - "skill", - "skin", - "skirt", - "skull", - "slab", - "slam", - "sleep", - "slender", - "slice", - "slide", - "slight", - "slim", - "slogan", - "slot", - "slow", - "slush", - "small", - "smart", - "smile", - "smoke", - "smooth", - "snack", - "snake", - "snap", - "sniff", - "snow", - "soap", - "soccer", - "social", - "sock", - "soda", - "soft", - "solar", - "soldier", - "solid", - "solution", - "solve", - "someone", - "song", - "soon", - "sorry", - "sort", - "soul", - "sound", - "soup", - "source", - "south", - "space", - "spare", - "spatial", - "spawn", - "speak", - "special", - "speed", - "spell", - "spend", - "sphere", - "spice", - "spider", - "spike", - "spin", - "spirit", - "split", - "spoil", - "sponsor", - "spoon", - "sport", - "spot", - "spray", - "spread", - "spring", - "spy", - "square", - "squeeze", - "squirrel", - "stable", - "stadium", - "staff", - "stage", - "stairs", - "stamp", - "stand", - "start", - "state", - "stay", - "steak", - "steel", - "stem", - "step", - "stereo", - "stick", - "still", - "sting", - "stock", - "stomach", - "stone", - "stool", - "story", - "stove", - "strategy", - "street", - "strike", - "strong", - "struggle", - "student", - "stuff", - "stumble", - "style", - "subject", - "submit", - "subway", - "success", - "such", - "sudden", - "suffer", - "sugar", - "suggest", - "suit", - "summer", - "sun", - "sunny", - "sunset", - "super", - "supply", - "supreme", - "sure", - "surface", - "surge", - "surprise", - "surround", - "survey", - "suspect", - "sustain", - "swallow", - "swamp", - "swap", - "swarm", - "swear", - "sweet", - "swift", - "swim", - "swing", - "switch", - "sword", - "symbol", - "symptom", - "syrup", - "system", - "table", - "tackle", - "tag", - "tail", - "talent", - "talk", - "tank", - "tape", - "target", - "task", - "taste", - "tattoo", - "taxi", - "teach", - "team", - "tell", - "ten", - "tenant", - "tennis", - "tent", - "term", - "test", - "text", - "thank", - "that", - "theme", - "then", - "theory", - "there", - "they", - "thing", - "this", - "thought", - "three", - "thrive", - "throw", - "thumb", - "thunder", - "ticket", - "tide", - "tiger", - "tilt", - "timber", - "time", - "tiny", - "tip", - "tired", - "tissue", - "title", - "toast", - "tobacco", - "today", - "toddler", - "toe", - "together", - "toilet", - "token", - "tomato", - "tomorrow", - "tone", - "tongue", - "tonight", - "tool", - "tooth", - "top", - "topic", - "topple", - "torch", - "tornado", - "tortoise", - "toss", - "total", - "tourist", - "toward", - "tower", - "town", - "toy", - "track", - "trade", - "traffic", - "tragic", - "train", - "transfer", - "trap", - "trash", - "travel", - "tray", - "treat", - "tree", - "trend", - "trial", - "tribe", - "trick", - "trigger", - "trim", - "trip", - "trophy", - "trouble", - "truck", - "true", - "truly", - "trumpet", - "trust", - "truth", - "try", - "tube", - "tuition", - "tumble", - "tuna", - "tunnel", - "turkey", - "turn", - "turtle", - "twelve", - "twenty", - "twice", - "twin", - "twist", - "two", - "type", - "typical", - "ugly", - "umbrella", - "unable", - "unaware", - "uncle", - "uncover", - "under", - "undo", - "unfair", - "unfold", - "unhappy", - "uniform", - "unique", - "unit", - "universe", - "unknown", - "unlock", - "until", - "unusual", - "unveil", - "update", - "upgrade", - "uphold", - "upon", - "upper", - "upset", - "urban", - "urge", - "usage", - "use", - "used", - "useful", - "useless", - "usual", - "utility", - "vacant", - "vacuum", - "vague", - "valid", - "valley", - "valve", - "van", - "vanish", - "vapor", - "various", - "vast", - "vault", - "vehicle", - "velvet", - "vendor", - "venture", - "venue", - "verb", - "verify", - "version", - "very", - "vessel", - "veteran", - "viable", - "vibrant", - "vicious", - "victory", - "video", - "view", - "village", - "vintage", - "violin", - "virtual", - "virus", - "visa", - "visit", - "visual", - "vital", - "vivid", - "vocal", - "voice", - "void", - "volcano", - "volume", - "vote", - "voyage", - "wage", - "wagon", - "wait", - "walk", - "wall", - "walnut", - "want", - "warfare", - "warm", - "warrior", - "wash", - "wasp", - "waste", - "water", - "wave", - "way", - "wealth", - "weapon", - "wear", - "weasel", - "weather", - "web", - "wedding", - "weekend", - "weird", - "welcome", - "west", - "wet", - "whale", - "what", - "wheat", - "wheel", - "when", - "where", - "whip", - "whisper", - "wide", - "width", - "wife", - "wild", - "will", - "win", - "window", - "wine", - "wing", - "wink", - "winner", - "winter", - "wire", - "wisdom", - "wise", - "wish", - "witness", - "wolf", - "woman", - "wonder", - "wood", - "wool", - "word", - "work", - "world", - "worry", - "worth", - "wrap", - "wreck", - "wrestle", - "wrist", - "write", - "wrong", - "yard", - "year", - "yellow", - "you", - "young", - "youth", - "zebra", - "zero", - "zone", - "zoo" - ); - return word_list; -} - -std::unordered_map& word_map_english() -{ - static std::unordered_map word_map; - if (word_map.size() > 0) + class English: public Base { - return word_map; - } - std::vector word_list = word_list_english(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - word_map[*it] = ii; - } - return word_map; -} - -std::unordered_map& trimmed_word_map_english() -{ - static std::unordered_map trimmed_word_map; - if (trimmed_word_map.size() > 0) - { - return trimmed_word_map; - } - std::vector word_list = word_list_english(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - if (it->length() > 4) + public: + English() { - trimmed_word_map[it->substr(0, 4)] = ii; + word_list = new std::vector({ + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep", + "slender", + "slice", + "slide", + "slight", + "slim", + "slogan", + "slot", + "slow", + "slush", + "small", + "smart", + "smile", + "smoke", + "smooth", + "snack", + "snake", + "snap", + "sniff", + "snow", + "soap", + "soccer", + "social", + "sock", + "soda", + "soft", + "solar", + "soldier", + "solid", + "solution", + "solve", + "someone", + "song", + "soon", + "sorry", + "sort", + "soul", + "sound", + "soup", + "source", + "south", + "space", + "spare", + "spatial", + "spawn", + "speak", + "special", + "speed", + "spell", + "spend", + "sphere", + "spice", + "spider", + "spike", + "spin", + "spirit", + "split", + "spoil", + "sponsor", + "spoon", + "sport", + "spot", + "spray", + "spread", + "spring", + "spy", + "square", + "squeeze", + "squirrel", + "stable", + "stadium", + "staff", + "stage", + "stairs", + "stamp", + "stand", + "start", + "state", + "stay", + "steak", + "steel", + "stem", + "step", + "stereo", + "stick", + "still", + "sting", + "stock", + "stomach", + "stone", + "stool", + "story", + "stove", + "strategy", + "street", + "strike", + "strong", + "struggle", + "student", + "stuff", + "stumble", + "style", + "subject", + "submit", + "subway", + "success", + "such", + "sudden", + "suffer", + "sugar", + "suggest", + "suit", + "summer", + "sun", + "sunny", + "sunset", + "super", + "supply", + "supreme", + "sure", + "surface", + "surge", + "surprise", + "surround", + "survey", + "suspect", + "sustain", + "swallow", + "swamp", + "swap", + "swarm", + "swear", + "sweet", + "swift", + "swim", + "swing", + "switch", + "sword", + "symbol", + "symptom", + "syrup", + "system", + "table", + "tackle", + "tag", + "tail", + "talent", + "talk", + "tank", + "tape", + "target", + "task", + "taste", + "tattoo", + "taxi", + "teach", + "team", + "tell", + "ten", + "tenant", + "tennis", + "tent", + "term", + "test", + "text", + "thank", + "that", + "theme", + "then", + "theory", + "there", + "they", + "thing", + "this", + "thought", + "three", + "thrive", + "throw", + "thumb", + "thunder", + "ticket", + "tide", + "tiger", + "tilt", + "timber", + "time", + "tiny", + "tip", + "tired", + "tissue", + "title", + "toast", + "tobacco", + "today", + "toddler", + "toe", + "together", + "toilet", + "token", + "tomato", + "tomorrow", + "tone", + "tongue", + "tonight", + "tool", + "tooth", + "top", + "topic", + "topple", + "torch", + "tornado", + "tortoise", + "toss", + "total", + "tourist", + "toward", + "tower", + "town", + "toy", + "track", + "trade", + "traffic", + "tragic", + "train", + "transfer", + "trap", + "trash", + "travel", + "tray", + "treat", + "tree", + "trend", + "trial", + "tribe", + "trick", + "trigger", + "trim", + "trip", + "trophy", + "trouble", + "truck", + "true", + "truly", + "trumpet", + "trust", + "truth", + "try", + "tube", + "tuition", + "tumble", + "tuna", + "tunnel", + "turkey", + "turn", + "turtle", + "twelve", + "twenty", + "twice", + "twin", + "twist", + "two", + "type", + "typical", + "ugly", + "umbrella", + "unable", + "unaware", + "uncle", + "uncover", + "under", + "undo", + "unfair", + "unfold", + "unhappy", + "uniform", + "unique", + "unit", + "universe", + "unknown", + "unlock", + "until", + "unusual", + "unveil", + "update", + "upgrade", + "uphold", + "upon", + "upper", + "upset", + "urban", + "urge", + "usage", + "use", + "used", + "useful", + "useless", + "usual", + "utility", + "vacant", + "vacuum", + "vague", + "valid", + "valley", + "valve", + "van", + "vanish", + "vapor", + "various", + "vast", + "vault", + "vehicle", + "velvet", + "vendor", + "venture", + "venue", + "verb", + "verify", + "version", + "very", + "vessel", + "veteran", + "viable", + "vibrant", + "vicious", + "victory", + "video", + "view", + "village", + "vintage", + "violin", + "virtual", + "virus", + "visa", + "visit", + "visual", + "vital", + "vivid", + "vocal", + "voice", + "void", + "volcano", + "volume", + "vote", + "voyage", + "wage", + "wagon", + "wait", + "walk", + "wall", + "walnut", + "want", + "warfare", + "warm", + "warrior", + "wash", + "wasp", + "waste", + "water", + "wave", + "way", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "web", + "wedding", + "weekend", + "weird", + "welcome", + "west", + "wet", + "whale", + "what", + "wheat", + "wheel", + "when", + "where", + "whip", + "whisper", + "wide", + "width", + "wife", + "wild", + "will", + "win", + "window", + "wine", + "wing", + "wink", + "winner", + "winter", + "wire", + "wisdom", + "wise", + "wish", + "witness", + "wolf", + "woman", + "wonder", + "wood", + "wool", + "word", + "work", + "world", + "worry", + "worth", + "wrap", + "wreck", + "wrestle", + "wrist", + "write", + "wrong", + "yard", + "year", + "yellow", + "you", + "young", + "youth", + "zebra", + "zero", + "zone", + "zoo" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "English"; + populate_maps(); } - else - { - trimmed_word_map[*it] = ii; - } - } - return trimmed_word_map; + }; } + +#endif diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h index 47476e849..cfbbce787 100644 --- a/src/mnemonics/japanese.h +++ b/src/mnemonics/japanese.h @@ -1,2098 +1,2074 @@ +#ifndef JAPANESE_H +#define JAPANESE_H + #include #include +#include "language_base.h" +#include -std::vector& word_list_japanese() +namespace Language { - static std::vector word_list( - "あい", - "あいこくしん", - "あう", - "あお", - "あおぞら", - "あか", - "あかちゃん", - "あき", - "あきる", - "あく", - "あさ", - "あさひ", - "あし", - "あずき", - "あせ", - "あそぶ", - "あたる", - "あつい", - "あな", - "あに", - "あね", - "あひる", - "あまい", - "あみ", - "あめ", - "あめりか", - "あやまる", - "あゆむ", - "あらいぐま", - "あらし", - "あり", - "ある", - "あれ", - "あわ", - "あんこ", - "いう", - "いえ", - "いおん", - "いか", - "いがい", - "いかいよう", - "いけ", - "いけん", - "いこく", - "いこつ", - "いさん", - "いし", - "いじゅう", - "いす", - "いせい", - "いせえび", - "いせかい", - "いせき", - "いそうろう", - "いそがしい", - "いたりあ", - "いてざ", - "いてん", - "いと", - "いない", - "いなか", - "いぬ", - "いね", - "いのち", - "いのる", - "いはつ", - "いはん", - "いびき", - "いひん", - "いふく", - "いへん", - "いほう", - "いま", - "いみ", - "いみん", - "いも", - "いもうと", - "いもたれ", - "いもり", - "いや", - "いやす", - "いよかん", - "いよく", - "いらい", - "いらすと", - "いりぐち", - "いりょう", - "いりょうひ", - "いる", - "いれい", - "いれもの", - "いれる", - "いろ", - "いろえんぴつ", - "いわ", - "いわう", - "いわかん", - "いんげんまめ", - "うえ", - "うおざ", - "うかぶ", - "うきわ", - "うく", - "うくらいな", - "うくれれ", - "うけつぐ", - "うけつけ", - "うける", - "うごく", - "うこん", - "うさぎ", - "うし", - "うしなう", - "うしろ", - "うしろがみ", - "うすい", - "うすぎ", - "うせつ", - "うそ", - "うた", - "うちあわせ", - "うちがわ", - "うちき", - "うつ", - "うなぎ", - "うなじ", - "うに", - "うねる", - "うのう", - "うぶげ", - "うぶごえ", - "うま", - "うまれる", - "うみ", - "うむ", - "うめ", - "うめる", - "うもう", - "うやまう", - "うよく", - "うら", - "うらない", - "うる", - "うるさい", - "うれしい", - "うろこ", - "うわき", - "うわさ", - "えい", - "えいえん", - "えいが", - "えいぎょう", - "えいご", - "えおり", - "えき", - "えきたい", - "えくせる", - "えさ", - "えしゃく", - "えすて", - "えつらん", - "えと", - "えのぐ", - "えび", - "えほうまき", - "えほん", - "えま", - "えまき", - "えもじ", - "えもの", - "えらい", - "えらぶ", - "えり", - "えりあ", - "える", - "えん", - "えんえん", - "おきる", - "おく", - "おけ", - "おこる", - "おしえる", - "おやゆび", - "おらんだ", - "かあつ", - "かい", - "かう", - "かお", - "かがし", - "かき", - "かく", - "かこ", - "かさ", - "かす", - "かち", - "かつ", - "かなざわし", - "かに", - "かね", - "かのう", - "かほう", - "かほご", - "かまぼこ", - "かみ", - "かむ", - "かめれおん", - "かも", - "かゆい", - "からい", - "かるい", - "かろう", - "かわ", - "かわら", - "きあい", - "きあつ", - "きいろ", - "ぎいん", - "きうい", - "きうん", - "きえる", - "きおう", - "きおく", - "きおち", - "きおん", - "きか", - "きかい", - "きかく", - "きかん", - "きかんしゃ", - "きぎ", - "ききて", - "きく", - "きくばり", - "きくらげ", - "きけん", - "きけんせい", - "きこう", - "きこえる", - "きこく", - "きさい", - "きさく", - "きさま", - "きさらぎ", - "きし", - "きしゅ", - "きす", - "きすう", - "きせい", - "きせき", - "きせつ", - "きそ", - "きそう", - "きそく", - "きぞく", - "ぎそく", - "きぞん", - "きた", - "きたえる", - "きち", - "きちょう", - "きつえん", - "きつつき", - "きつね", - "きてい", - "きどう", - "きどく", - "きない", - "きなが", - "きぬ", - "きぬごし", - "きねん", - "きのう", - "きはく", - "きびしい", - "きひん", - "きふ", - "ぎふ", - "きふく", - "ぎぼ", - "きほう", - "きぼう", - "きほん", - "きまる", - "きみ", - "きみつ", - "ぎむ", - "きむずかしい", - "きめ", - "きめる", - "きもだめし", - "きもち", - "きやく", - "きよう", - "きらい", - "きらく", - "きり", - "きる", - "きれい", - "きれつ", - "きろく", - "ぎろん", - "きわめる", - "ぐあい", - "くい", - "くいず", - "くうかん", - "くうき", - "くうぐん", - "くうこう", - "くうそう", - "くうふく", - "くうぼ", - "くかん", - "くき", - "くきょう", - "くげん", - "ぐこう", - "くさ", - "くさい", - "くさき", - "くさばな", - "くさる", - "くし", - "くしゃみ", - "くしょう", - "くすのき", - "くすり", - "くすりゆび", - "くせ", - "くせげ", - "くせん", - "くたびれる", - "くち", - "くちこみ", - "くちさき", - "くつ", - "くつした", - "くつろぐ", - "くとうてん", - "くどく", - "くなん", - "くに", - "くねくね", - "くのう", - "くふう", - "くま", - "くみあわせ", - "くみたてる", - "くむ", - "くめる", - "くやくしょ", - "くらす", - "くり", - "くれる", - "くろ", - "くろう", - "くわしい", - "ぐんじょ", - "けあな", - "けいけん", - "けいこ", - "けいさい", - "けいさつ", - "げいのうじん", - "けいれき", - "けいれつ", - "けいれん", - "けいろ", - "けおとす", - "けおりもの", - "けが", - "げき", - "げきか", - "げきげん", - "げきだん", - "げきちん", - "げきど", - "げきは", - "げきやく", - "げこう", - "げこくじょう", - "けさ", - "げざい", - "けさき", - "げざん", - "けしき", - "けしごむ", - "けしょう", - "けす", - "げすと", - "けた", - "げた", - "けたば", - "けち", - "けちゃっぷ", - "けちらす", - "けつ", - "けつあつ", - "けつい", - "けつえき", - "けっこん", - "けつじょ", - "けってい", - "けつまつ", - "げつようび", - "げつれい", - "けつろん", - "げどく", - "けとばす", - "けとる", - "けなげ", - "けなす", - "けなみ", - "けぬき", - "げねつ", - "けねん", - "けはい", - "げひん", - "けぶかい", - "げぼく", - "けまり", - "けみかる", - "けむし", - "けむり", - "けもの", - "けらい", - "ける", - "げろ", - "けろけろ", - "けわしい", - "けんい", - "けんえつ", - "けんお", - "けんか", - "げんき", - "けんきゅう", - "けんきょ", - "けんけい", - "けんけつ", - "けんげん", - "けんこう", - "けんさ", - "けんさく", - "けんしゅう", - "けんしゅつ", - "けんしん", - "けんすう", - "けんそう", - "げんそう", - "けんそん", - "げんち", - "けんちく", - "けんてい", - "げんてい", - "けんとう", - "けんない", - "けんにん", - "げんぶつ", - "けんま", - "けんみん", - "けんめい", - "けんらん", - "けんり", - "けんりつ", - "こあくま", - "こい", - "ごい", - "こいびと", - "こうい", - "こうえん", - "こうか", - "こうかい", - "こうかん", - "こうさい", - "こうさん", - "こうしん", - "こうず", - "こうすい", - "こうせん", - "こうそう", - "こうそく", - "こうたい", - "こうちゃ", - "こうつう", - "こうてい", - "こうとうぶ", - "こうない", - "こうはい", - "こうはん", - "こうもく", - "こえ", - "こえる", - "こおり", - "ごがつ", - "こかん", - "こく", - "こくご", - "こくない", - "こくはく", - "こけい", - "こける", - "ここ", - "こころ", - "ごさ", - "こさめ", - "こし", - "こしつ", - "こす", - "こすう", - "こせい", - "こせき", - "こぜん", - "こそだて", - "こたい", - "こたえる", - "こたつ", - "こちょう", - "こっか", - "こつこつ", - "こつばん", - "こつぶ", - "こてい", - "こてん", - "こと", - "ことがら", - "ことし", - "こなごな", - "こねこね", - "このまま", - "このみ", - "このよ", - "こはん", - "ごはん", - "ごび", - "こひつじ", - "こふう", - "こふん", - "こぼれる", - "ごま", - "こまかい", - "こまつし", - "こまつな", - "こまる", - "こむ", - "こむぎこ", - "こめ", - "こもじ", - "こもち", - "こもの", - "こもん", - "こや", - "こやく", - "こやま", - "こゆう", - "こゆび", - "こよい", - "こよう", - "こりる", - "こる", - "これくしょん", - "ころっけ", - "こわもて", - "こわれる", - "こん", - "こんいん", - "こんかい", - "こんき", - "こんしゅう", - "こんしゅん", - "こんすい", - "こんだて", - "こんだん", - "こんとん", - "こんなん", - "こんびに", - "こんぽう", - "こんぽん", - "こんまけ", - "こんや", - "こんやく", - "こんれい", - "こんわく", - "さいかい", - "さいがい", - "さいきん", - "さいご", - "さいこん", - "さいしょ", - "さうな", - "さお", - "さかいし", - "さかな", - "さかみち", - "さき", - "さく", - "さくし", - "さくじょ", - "さくひん", - "さくら", - "さけ", - "さこく", - "さこつ", - "さたん", - "さつえい", - "さっか", - "さっきょく", - "さつじん", - "さつたば", - "さつまいも", - "さてい", - "さといも", - "さとう", - "さとおや", - "さとる", - "さのう", - "さば", - "さばく", - "さべつ", - "さほう", - "さほど", - "さます", - "さみしい", - "さみだれ", - "さむけ", - "さめ", - "さめる", - "さやえんどう", - "さゆう", - "さよう", - "さよく", - "さら", - "さらだ", - "さる", - "さわやか", - "さわる", - "さんいん", - "さんか", - "さんきゃく", - "さんこう", - "さんさい", - "さんざん", - "さんすう", - "さんせい", - "さんそ", - "さんそん", - "さんち", - "さんちょう", - "さんま", - "さんみ", - "さんらん", - "しあい", - "しあげ", - "しあさって", - "しあわせ", - "しいく", - "しいん", - "しうち", - "しえい", - "しお", - "しおけ", - "しか", - "しかい", - "しかく", - "じかん", - "した", - "したぎ", - "したて", - "したみ", - "しちょう", - "しちょうそん", - "しちりん", - "じつじ", - "してい", - "してき", - "してつ", - "してん", - "しとう", - "じどう", - "しなぎれ", - "しなもの", - "しなん", - "しねま", - "しねん", - "しのぐ", - "しのぶ", - "しはい", - "しばかり", - "しはつ", - "じはつ", - "しはらい", - "しはん", - "しひょう", - "じふ", - "しふく", - "じぶん", - "しへい", - "しほう", - "しほん", - "しま", - "しまう", - "しまる", - "しみ", - "じみ", - "しみん", - "じむ", - "しむける", - "しめい", - "しめる", - "しもん", - "しゃいん", - "しゃうん", - "しゃおん", - "しゃかい", - "じゃがいも", - "しやくしょ", - "しゃくほう", - "しゃけん", - "しゃこ", - "しゃこう", - "しゃざい", - "しゃしん", - "しゃせん", - "しゃそう", - "しゃたい", - "しゃたく", - "しゃちょう", - "しゃっきん", - "じゃま", - "じゃり", - "しゃりょう", - "しゃりん", - "しゃれい", - "しゅうえん", - "しゅうかい", - "しゅうきん", - "しゅうけい", - "しゅうりょう", - "しゅらば", - "しょうか", - "しょうかい", - "しょうきん", - "しょうじき", - "しょくざい", - "しょくたく", - "しょっけん", - "しょどう", - "しょもつ", - "しん", - "しんか", - "しんこう", - "しんせいじ", - "しんちく", - "しんりん", - "すあげ", - "すあし", - "すあな", - "ずあん", - "すいか", - "すいとう", - "すう", - "すうがく", - "すうじつ", - "すうせん", - "すおどり", - "すき", - "すきま", - "すく", - "すくう", - "すくない", - "すける", - "すこし", - "ずさん", - "すし", - "すずしい", - "すすめる", - "すそ", - "ずっしり", - "ずっと", - "すで", - "すてき", - "すてる", - "すな", - "すなっく", - "すなっぷ", - "すね", - "すねる", - "すのこ", - "すはだ", - "すばらしい", - "ずひょう", - "ずぶぬれ", - "すぶり", - "すふれ", - "すべて", - "すべる", - "ずほう", - "すぼん", - "すまい", - "すみ", - "すむ", - "すめし", - "すもう", - "すやき", - "すらいす", - "すらいど", - "すらすら", - "すり", - "する", - "するめ", - "すれちがう", - "すろっと", - "すわる", - "すんぜん", - "すんぽう", - "せあぶら", - "せいか", - "せいかい", - "せいかつ", - "せおう", - "せかい", - "せかいかん", - "せかいし", - "せかいじゅう", - "せき", - "せきにん", - "せきむ", - "せきゆ", - "せきらんうん", - "せけん", - "せこう", - "せすじ", - "せたい", - "せたけ", - "せっかい", - "せっかく", - "せっき", - "せっきゃく", - "せっきょく", - "せっきん", - "ぜっく", - "せっけん", - "せっこつ", - "せっさたくま", - "せつぞく", - "せつだん", - "せつでん", - "せっぱん", - "せつび", - "せつぶん", - "せつめい", - "せつりつ", - "せと", - "せなか", - "せのび", - "せはば", - "せぼね", - "せまい", - "せまる", - "せみ", - "せめる", - "せもたれ", - "せりふ", - "せわ", - "せん", - "ぜんあく", - "せんい", - "せんえい", - "せんか", - "せんきょ", - "せんく", - "せんけつ", - "せんげん", - "ぜんご", - "せんさい", - "せんし", - "せんしゅ", - "せんす", - "せんすい", - "せんせい", - "せんぞ", - "せんそう", - "せんたく", - "せんち", - "せんちゃ", - "せんちゃく", - "せんちょう", - "せんてい", - "せんとう", - "せんぬき", - "せんねん", - "ぜんぶ", - "せんぷうき", - "せんぷく", - "ぜんぽう", - "せんむ", - "せんめい", - "せんめんじょ", - "せんもん", - "せんやく", - "せんゆう", - "せんよう", - "ぜんら", - "ぜんりゃく", - "せんりょく", - "せんれい", - "せんろ", - "そあく", - "そいとげる", - "そいね", - "そう", - "ぞう", - "そうがんきょう", - "そうき", - "そうご", - "そうなん", - "そうび", - "そうひょう", - "そうめん", - "そうり", - "そうりょ", - "そえもの", - "そえん", - "そかい", - "そがい", - "そぐ", - "そげき", - "そこう", - "そこそこ", - "そざい", - "そし", - "そしな", - "そせい", - "そせん", - "そそぐ", - "そだてる", - "そつう", - "そつえん", - "そっかん", - "そつぎょう", - "そっけつ", - "そっこう", - "そっせん", - "そっと", - "そで", - "そと", - "そとがわ", - "そとづら", - "そなえる", - "そなた", - "そば", - "そふ", - "そふぼ", - "そぼ", - "そぼく", - "そぼろ", - "そまつ", - "そまる", - "そむく", - "そむりえ", - "そめる", - "そもそも", - "そよかぜ", - "そら", - "そらまめ", - "そり", - "そる", - "そろう", - "そんかい", - "そんけい", - "そんざい", - "そんしつ", - "そんしょう", - "そんぞく", - "そんちょう", - "ぞんび", - "ぞんぶん", - "そんみん", - "たあい", - "たいいん", - "たいうん", - "たいえき", - "たいおう", - "だいおう", - "たいか", - "たいかい", - "たいき", - "たいきけん", - "たいぐう", - "たいくつ", - "たいけい", - "たいけつ", - "たいけん", - "たいこ", - "たいこう", - "たいさ", - "たいさん", - "たいしゅつ", - "だいじょうぶ", - "たいしょく", - "だいず", - "だいすき", - "たいせい", - "たいせつ", - "たいせん", - "たいそう", - "たいちょう", - "だいちょう", - "たいとう", - "たいない", - "たいねつ", - "たいのう", - "たいは", - "たいはん", - "たいひ", - "たいふう", - "たいへん", - "たいほ", - "たいまつばな", - "たいまん", - "たいみんぐ", - "たいむ", - "たいめん", - "たいやき", - "たいやく", - "たいよう", - "たいら", - "たいりょう", - "たいりょく", - "たいる", - "たいわ", - "たいわん", - "たうえ", - "たえる", - "たおす", - "たおる", - "たかい", - "たかね", - "たき", - "たきび", - "たくさん", - "たけ", - "たこ", - "たこく", - "たこやき", - "たさい", - "ださい", - "たしざん", - "たす", - "たすける", - "たそがれ", - "たたかう", - "たたく", - "たちば", - "たちばな", - "たつ", - "だっかい", - "だっきゃく", - "だっこ", - "だっしめん", - "だっしゅつ", - "だったい", - "たて", - "たてる", - "たとえる", - "たな", - "たにん", - "たぬき", - "たね", - "たのしみ", - "たはつ", - "たび", - "たぶん", - "たべる", - "たぼう", - "たほうめん", - "たま", - "たまご", - "たまる", - "だむる", - "ためいき", - "ためす", - "ためる", - "たもつ", - "たやすい", - "たよる", - "たら", - "たらす", - "たりきほんがん", - "たりょう", - "たりる", - "たる", - "たると", - "たれる", - "たれんと", - "たろっと", - "たわむれる", - "たん", - "だんあつ", - "たんい", - "たんおん", - "たんか", - "たんき", - "たんけん", - "たんご", - "たんさく", - "たんさん", - "たんし", - "たんしゅく", - "たんじょうび", - "だんせい", - "たんそく", - "たんたい", - "たんち", - "だんち", - "たんちょう", - "たんてい", - "たんてき", - "たんとう", - "だんな", - "たんにん", - "だんねつ", - "たんのう", - "たんぴん", - "たんまつ", - "たんめい", - "だんれつ", - "だんろ", - "だんわ", - "ちあい", - "ちあん", - "ちい", - "ちいき", - "ちいさい", - "ちえ", - "ちえん", - "ちか", - "ちかい", - "ちきゅう", - "ちきん", - "ちけい", - "ちけいず", - "ちけん", - "ちこく", - "ちさい", - "ちしき", - "ちしりょう", - "ちず", - "ちせい", - "ちそう", - "ちたい", - "ちたん", - "ちちおや", - "ちつじょ", - "ちてき", - "ちてん", - "ちぬき", - "ちぬり", - "ちのう", - "ちひょう", - "ちへいせん", - "ちほう", - "ちまた", - "ちみつ", - "ちみどろ", - "ちめいど", - "ちゅうい", - "ちゅうおう", - "ちゅうおうく", - "ちゅうがっこう", - "ちゅうごく", - "ちゆりょく", - "ちょうさ", - "ちょうし", - "ちらし", - "ちらみ", - "ちり", - "ちりがみ", - "ちる", - "ちるど", - "ちわわ", - "ちんたい", - "ちんもく", - "ついか", - "つうか", - "つうじょう", - "つうじる", - "つうはん", - "つうわ", - "つえ", - "つかう", - "つかれる", - "つき", - "つく", - "つくね", - "つくる", - "つけね", - "つける", - "つごう", - "つた", - "つたえる", - "つち", - "つつじ", - "つとめる", - "つな", - "つながる", - "つなみ", - "つねづね", - "つの", - "つのる", - "つば", - "つぶ", - "つぶす", - "つぼ", - "つま", - "つまらない", - "つまる", - "つみ", - "つみき", - "つむ", - "つめたい", - "つもる", - "つや", - "つよい", - "つり", - "つるぼ", - "つるみく", - "つわもの", - "つわり", - "てあし", - "てあて", - "てあみ", - "ていか", - "ていき", - "ていけい", - "ていけつ", - "ていけつあつ", - "ていこく", - "ていさつ", - "ていし", - "ていしゃ", - "ていせい", - "ていたい", - "ていど", - "ていねい", - "ていひょう", - "ていへん", - "ていぼう", - "てうち", - "ておくれ", - "てき", - "てくび", - "てこ", - "てさぎょう", - "てさげ", - "でし", - "てすり", - "てそう", - "てちがい", - "てちょう", - "てつがく", - "てつづき", - "てつや", - "でぬかえ", - "てぬき", - "てぬぐい", - "てのひら", - "てはい", - "てふだ", - "てほどき", - "てほん", - "てま", - "てまえ", - "てまきずし", - "てみじか", - "てみやげ", - "てら", - "てらす", - "でる", - "てれび", - "てろ", - "てわけ", - "てわたし", - "でんあつ", - "てんい", - "てんいん", - "てんかい", - "てんき", - "てんぐ", - "てんけん", - "でんげん", - "てんごく", - "てんさい", - "てんすう", - "でんち", - "てんてき", - "てんとう", - "てんない", - "てんぷ", - "てんぷら", - "てんぼうだい", - "てんめつ", - "てんらく", - "てんらんかい", - "でんりゅう", - "でんりょく", - "でんわ", - "どあ", - "どあい", - "といれ", - "とうむぎ", - "とおい", - "とおす", - "とかい", - "とかす", - "ときおり", - "ときどき", - "とくい", - "とくてい", - "とくてん", - "とくべつ", - "とけい", - "とける", - "とさか", - "とし", - "としょかん", - "とそう", - "とたん", - "とち", - "とちゅう", - "とつぜん", - "とつにゅう", - "ととのえる", - "とない", - "となえる", - "となり", - "とのさま", - "とばす", - "とぶ", - "とほ", - "とほう", - "どま", - "とまる", - "とら", - "とり", - "とる", - "とんかつ", - "ない", - "ないか", - "ないかく", - "ないこう", - "ないしょ", - "ないす", - "ないせん", - "ないそう", - "ないぞう", - "なおす", - "なく", - "なこうど", - "なさけ", - "なし", - "なす", - "なぜ", - "なぞ", - "なたでここ", - "なつ", - "なっとう", - "なつやすみ", - "ななおし", - "なにごと", - "なにもの", - "なにわ", - "なは", - "なび", - "なふだ", - "なべ", - "なまいき", - "なまえ", - "なまみ", - "なみ", - "なみだ", - "なめらか", - "なめる", - "なやむ", - "ならぶ", - "なる", - "なれる", - "なわ", - "なわとび", - "なわばり", - "にあう", - "にいがた", - "にうけ", - "におい", - "にかい", - "にがて", - "にきび", - "にく", - "にくしみ", - "にくまん", - "にげる", - "にさんかたんそ", - "にし", - "にしき", - "にす", - "にせもの", - "にちじ", - "にちじょう", - "にちようび", - "にっか", - "にっき", - "にっけい", - "にっこう", - "にっさん", - "にっしょく", - "にっすう", - "にっせき", - "にってい", - "になう", - "にほん", - "にまめ", - "にもつ", - "にやり", - "にゅういん", - "にゅうか", - "にゅうし", - "にゅうしゃ", - "にゅうだん", - "にゅうぶ", - "にら", - "にりんしゃ", - "にる", - "にわ", - "にわとり", - "にんい", - "にんか", - "にんき", - "にんげん", - "にんしき", - "にんしょう", - "にんしん", - "にんずう", - "にんそう", - "にんたい", - "にんち", - "にんてい", - "にんにく", - "にんぷ", - "にんまり", - "にんむ", - "にんめい", - "にんよう", - "ぬう", - "ぬか", - "ぬく", - "ぬくもり", - "ぬし", - "ぬの", - "ぬま", - "ぬめり", - "ぬらす", - "ぬる", - "ぬんちゃく", - "ねあげ", - "ねいき", - "ねいる", - "ねいろ", - "ねぎ", - "ねぐせ", - "ねくたい", - "ねくら", - "ねこ", - "ねこぜ", - "ねこむ", - "ねさげ", - "ねすごす", - "ねそべる", - "ねつい", - "ねつぞう", - "ねったい", - "ねったいぎょ", - "ねぶそく", - "ねふだ", - "ねぼう", - "ねほりはほり", - "ねまき", - "ねまわし", - "ねみみ", - "ねむい", - "ねもと", - "ねらう", - "ねる", - "ねわざ", - "ねんいり", - "ねんおし", - "ねんかん", - "ねんき", - "ねんきん", - "ねんぐ", - "ねんざ", - "ねんし", - "ねんちゃく", - "ねんちょう", - "ねんど", - "ねんぴ", - "ねんぶつ", - "ねんまく", - "ねんまつ", - "ねんりき", - "ねんりょう", - "ねんれい", - "のいず", - "のう", - "のおづま", - "のがす", - "のきなみ", - "のこぎり", - "のこす", - "のせる", - "のぞく", - "のぞむ", - "のたまう", - "のちほど", - "のっく", - "のばす", - "のはら", - "のべる", - "のぼる", - "のむ", - "のやま", - "のらいぬ", - "のらねこ", - "のり", - "のる", - "のれん", - "のんき", - "ばあい", - "はあく", - "ばあさん", - "はい", - "ばいか", - "ばいく", - "はいけん", - "はいご", - "はいこう", - "はいし", - "はいしゅつ", - "はいしん", - "はいすい", - "はいせつ", - "はいせん", - "はいそう", - "はいち", - "ばいばい", - "はう", - "はえ", - "はえる", - "はおる", - "はか", - "ばか", - "はかい", - "はかる", - "はき", - "はく", - "はくしゅ", - "はけん", - "はこ", - "はこぶ", - "はさみ", - "はさん", - "はし", - "はしご", - "はしる", - "ばす", - "はせる", - "ぱそこん", - "はそん", - "はたん", - "はち", - "はちみつ", - "はっか", - "はっかく", - "はっき", - "はっきり", - "はっくつ", - "はっけん", - "はっこう", - "はっさん", - "はっしゃ", - "はっしん", - "はったつ", - "はっちゃく", - "はっちゅう", - "はってん", - "はっぴょう", - "はっぽう", - "はて", - "はな", - "はなす", - "はなび", - "はにかむ", - "はね", - "はは", - "はぶらし", - "はま", - "はみがき", - "はむ", - "はむかう", - "はめつ", - "はやい", - "はら", - "はらう", - "はり", - "はる", - "はれ", - "はろうぃん", - "はわい", - "はんい", - "はんえい", - "はんえん", - "はんおん", - "はんかく", - "はんかち", - "はんきょう", - "はんこ", - "はんこう", - "はんしゃ", - "はんしん", - "はんすう", - "はんたい", - "はんだん", - "ぱんち", - "ぱんつ", - "はんてい", - "はんてん", - "はんとし", - "はんのう", - "はんぱ", - "はんぶん", - "はんぺん", - "はんぼうき", - "はんめい", - "はんめん", - "はんらん", - "はんろん", - "ひいき", - "ひうん", - "ひえる", - "ひかく", - "ひかり", - "ひかん", - "ひく", - "ひくい", - "ひけつ", - "ひこうき", - "ひこく", - "ひざ", - "ぴざ", - "ひさい", - "ひさしぶり", - "ひさん", - "ひし", - "ひじ", - "ひしょ", - "ひじょう", - "ひそか", - "ひそむ", - "ひたむき", - "ひたる", - "ひつぎ", - "ひっこし", - "ひっし", - "ひっす", - "ひつぜん", - "ひつよう", - "ひてい", - "ひと", - "ひとごみ", - "ひな", - "ひなん", - "ひねる", - "ひはん", - "ひびく", - "ひひょう", - "ひふ", - "ひほう", - "ひま", - "ひまん", - "ひみつ", - "ひめ", - "ひめい", - "ひめじし", - "ひも", - "ひやけ", - "ひやす", - "ひゆ", - "ひよう", - "びょうき", - "ひらく", - "ひりつ", - "ひりょう", - "ひる", - "ひれい", - "ひろい", - "ひろう", - "ひわ", - "ひんかく", - "ひんけつ", - "ひんこん", - "ひんし", - "ひんしつ", - "ひんしゅ", - "ひんそう", - "ぴんち", - "ひんぱん", - "びんぼう", - "ふあん", - "ふいうち", - "ふうけい", - "ふうせん", - "ふうとう", - "ふうふ", - "ふえ", - "ふえる", - "ふおん", - "ふか", - "ふかい", - "ふきん", - "ふく", - "ふくざつ", - "ふこう", - "ふさい", - "ふざい", - "ふしぎ", - "ふじみ", - "ふすま", - "ふせい", - "ふせぐ", - "ふそく", - "ふた", - "ふたん", - "ふち", - "ふちょう", - "ふつう", - "ふっかつ", - "ふっき", - "ふっきん", - "ふっこく", - "ふとる", - "ふとん", - "ふね", - "ふのう", - "ふはい", - "ふひょう", - "ふへん", - "ふまん", - "ふみん", - "ふむ", - "ふめつ", - "ふめん", - "ふゆ", - "ふよう", - "ふりこ", - "ふりる", - "ふる", - "ふるい", - "ふろ", - "ふんいき", - "ふんか", - "ぶんか", - "ぶんぐ", - "ふんしつ", - "ぶんせき", - "ふんそう", - "へい", - "へいき", - "へいさ", - "へいわ", - "へきが", - "へこむ", - "へそ", - "へた", - "べつ", - "べっど", - "ぺっと", - "へび", - "へや", - "へる", - "へんか", - "へんかん", - "へんきゃく", - "へんきん", - "へんさい", - "へんたい", - "ほあん", - "ほいく", - "ほうほう", - "ほえる", - "ほおん", - "ほかん", - "ほきょう", - "ぼきん", - "ほくろ", - "ほけつ", - "ほけん", - "ほこう", - "ほこる", - "ほさ", - "ほし", - "ほしつ", - "ほしゅ", - "ほしょう", - "ほす", - "ほせい", - "ぼせい", - "ほそい", - "ほそく", - "ほたて", - "ほたる", - "ぼち", - "ほっきょく", - "ほっさ", - "ほったん", - "ほとんど", - "ほめる", - "ほる", - "ほんい", - "ほんき", - "ほんけ", - "ほんしつ", - "まいにち", - "まう", - "まかい", - "まかせる", - "まく", - "まける", - "まこと", - "まさつ", - "ますく", - "まぜる", - "まち", - "まつ", - "まつり", - "まとめ", - "まなぶ", - "まぬけ", - "まね", - "まねく", - "まひ", - "まほう", - "まめ", - "まもる", - "まゆげ", - "まよう", - "まる", - "まろやか", - "まわす", - "まわり", - "まんが", - "まんかい", - "まんきつ", - "まんぞく", - "みいら", - "みうち", - "みかた", - "みかん", - "みぎ", - "みけん", - "みこん", - "みすい", - "みすえる", - "みせ", - "みそ", - "みち", - "みてい", - "みとめる", - "みなみかさい", - "みねらる", - "みのう", - "みほん", - "みみ", - "みもと", - "みやげ", - "みらい", - "みりょく", - "みる", - "みわく", - "むえき", - "むえん", - "むかし", - "むく", - "むこ", - "むさぼる", - "むし", - "むすこ", - "むすめ", - "むせる", - "むせん", - "むだ", - "むち", - "むなしい", - "むね", - "むのう", - "むやみ", - "むよう", - "むら", - "むり", - "むりょう", - "むれ", - "むろん", - "もうどうけん", - "もえる", - "もぎ", - "もくし", - "もくてき", - "もし", - "もんく", - "もんだい", - "やすい", - "やすみ", - "やそう", - "やたい", - "やちん", - "やね", - "やぶる", - "やま", - "やみ", - "やめる", - "ややこしい", - "やよい", - "やり", - "やわらかい", - "ゆけつ", - "ゆしゅつ", - "ゆせん", - "ゆそう", - "ゆたか", - "ゆちゃく", - "ゆでる", - "ゆび", - "ゆびわ", - "ゆめ", - "ゆれる", - "よう", - "よかぜ", - "よかん", - "よきん", - "よくせい", - "よくぼう", - "よけい", - "よさん", - "よそう", - "よそく", - "よち", - "よてい", - "よどがわく", - "よねつ", - "よむ", - "よめ", - "よやく", - "よゆう", - "よる", - "よろこぶ", - "らいう", - "らくがき", - "らくご", - "らくさつ", - "らくだ", - "らくたん", - "らしんばん", - "らせん", - "らぞく", - "らたい", - "らち", - "らっか", - "らっかせい", - "られつ", - "りえき", - "りか", - "りかい", - "りきさく", - "りきせつ", - "りく", - "りくぐん", - "りくつ", - "りけん", - "りこう", - "りし", - "りす", - "りせい", - "りそう", - "りそく", - "りてん", - "りねん", - "りゅう", - "りゆう", - "りゅうがく", - "りゅうこう", - "りゅうし", - "りゅうねん", - "りよう", - "りょうかい", - "りょうきん", - "りょうしん", - "りょうて", - "りょうど", - "りょうほう", - "りょうり", - "りりく", - "りれき", - "りろん", - "りんご", - "るいじ", - "るす", - "れいかん", - "れいぎ", - "れいせい", - "れいぞうこ", - "れいとう", - "れきし", - "れきだい", - "れんあい", - "れんけい", - "れんけつ", - "れんこう", - "れんこん", - "れんさ", - "れんさい", - "れんさく", - "れんしゃ", - "れんしゅう", - "れんぞく", - "ろうか", - "ろうご", - "ろうじん", - "ろうそく", - "ろか", - "ろくが", - "ろこつ", - "ろしゅつ", - "ろせん", - "ろてん", - "ろめん", - "ろれつ", - "ろんぎ", - "ろんぱ", - "ろんぶん", - "ろんり", - "わじまし" - ); - return word_list; -} - -std::unordered_map& word_map_japanese() -{ - static std::unordered_map word_map; - if (word_map.size() > 0) + class Japanese: public Base { - return word_map; - } - std::vector word_list = word_list_japanese(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - word_map[*it] = ii; - } - return word_map; -} - -std::unordered_map& trimmed_word_map_japanese() -{ - static std::unordered_map trimmed_word_map; - if (trimmed_word_map.size() > 0) - { - return trimmed_word_map; - } - std::vector word_list = word_list_japanese(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - if (it->length() > 4) + public: + Japanese() { - trimmed_word_map[it->substr(0, 4)] = ii; + word_list = new std::vector({ + "あい", + "あいこくしん", + "あう", + "あお", + "あおぞら", + "あか", + "あかちゃん", + "あき", + "あきる", + "あく", + "あさ", + "あさひ", + "あし", + "あずき", + "あせ", + "あそぶ", + "あたる", + "あつい", + "あな", + "あに", + "あね", + "あひる", + "あまい", + "あみ", + "あめ", + "あめりか", + "あやまる", + "あゆむ", + "あらいぐま", + "あらし", + "あり", + "ある", + "あれ", + "あわ", + "あんこ", + "いう", + "いえ", + "いおん", + "いか", + "いがい", + "いかいよう", + "いけ", + "いけん", + "いこく", + "いこつ", + "いさん", + "いし", + "いじゅう", + "いす", + "いせい", + "いせえび", + "いせかい", + "いせき", + "いそうろう", + "いそがしい", + "いたりあ", + "いてざ", + "いてん", + "いと", + "いない", + "いなか", + "いぬ", + "いね", + "いのち", + "いのる", + "いはつ", + "いはん", + "いびき", + "いひん", + "いふく", + "いへん", + "いほう", + "いま", + "いみ", + "いみん", + "いも", + "いもうと", + "いもたれ", + "いもり", + "いや", + "いやす", + "いよかん", + "いよく", + "いらい", + "いらすと", + "いりぐち", + "いりょう", + "いりょうひ", + "いる", + "いれい", + "いれもの", + "いれる", + "いろ", + "いろえんぴつ", + "いわ", + "いわう", + "いわかん", + "いんげんまめ", + "うえ", + "うおざ", + "うかぶ", + "うきわ", + "うく", + "うくらいな", + "うくれれ", + "うけつぐ", + "うけつけ", + "うける", + "うごく", + "うこん", + "うさぎ", + "うし", + "うしなう", + "うしろ", + "うしろがみ", + "うすい", + "うすぎ", + "うせつ", + "うそ", + "うた", + "うちあわせ", + "うちがわ", + "うちき", + "うつ", + "うなぎ", + "うなじ", + "うに", + "うねる", + "うのう", + "うぶげ", + "うぶごえ", + "うま", + "うまれる", + "うみ", + "うむ", + "うめ", + "うめる", + "うもう", + "うやまう", + "うよく", + "うら", + "うらない", + "うる", + "うるさい", + "うれしい", + "うろこ", + "うわき", + "うわさ", + "えい", + "えいえん", + "えいが", + "えいぎょう", + "えいご", + "えおり", + "えき", + "えきたい", + "えくせる", + "えさ", + "えしゃく", + "えすて", + "えつらん", + "えと", + "えのぐ", + "えび", + "えほうまき", + "えほん", + "えま", + "えまき", + "えもじ", + "えもの", + "えらい", + "えらぶ", + "えり", + "えりあ", + "える", + "えん", + "えんえん", + "おきる", + "おく", + "おけ", + "おこる", + "おしえる", + "おやゆび", + "おらんだ", + "かあつ", + "かい", + "かう", + "かお", + "かがし", + "かき", + "かく", + "かこ", + "かさ", + "かす", + "かち", + "かつ", + "かなざわし", + "かに", + "かね", + "かのう", + "かほう", + "かほご", + "かまぼこ", + "かみ", + "かむ", + "かめれおん", + "かも", + "かゆい", + "からい", + "かるい", + "かろう", + "かわ", + "かわら", + "きあい", + "きあつ", + "きいろ", + "ぎいん", + "きうい", + "きうん", + "きえる", + "きおう", + "きおく", + "きおち", + "きおん", + "きか", + "きかい", + "きかく", + "きかん", + "きかんしゃ", + "きぎ", + "ききて", + "きく", + "きくばり", + "きくらげ", + "きけん", + "きけんせい", + "きこう", + "きこえる", + "きこく", + "きさい", + "きさく", + "きさま", + "きさらぎ", + "きし", + "きしゅ", + "きす", + "きすう", + "きせい", + "きせき", + "きせつ", + "きそ", + "きそう", + "きそく", + "きぞく", + "ぎそく", + "きぞん", + "きた", + "きたえる", + "きち", + "きちょう", + "きつえん", + "きつつき", + "きつね", + "きてい", + "きどう", + "きどく", + "きない", + "きなが", + "きぬ", + "きぬごし", + "きねん", + "きのう", + "きはく", + "きびしい", + "きひん", + "きふ", + "ぎふ", + "きふく", + "ぎぼ", + "きほう", + "きぼう", + "きほん", + "きまる", + "きみ", + "きみつ", + "ぎむ", + "きむずかしい", + "きめ", + "きめる", + "きもだめし", + "きもち", + "きやく", + "きよう", + "きらい", + "きらく", + "きり", + "きる", + "きれい", + "きれつ", + "きろく", + "ぎろん", + "きわめる", + "ぐあい", + "くい", + "くいず", + "くうかん", + "くうき", + "くうぐん", + "くうこう", + "くうそう", + "くうふく", + "くうぼ", + "くかん", + "くき", + "くきょう", + "くげん", + "ぐこう", + "くさ", + "くさい", + "くさき", + "くさばな", + "くさる", + "くし", + "くしゃみ", + "くしょう", + "くすのき", + "くすり", + "くすりゆび", + "くせ", + "くせげ", + "くせん", + "くたびれる", + "くち", + "くちこみ", + "くちさき", + "くつ", + "くつした", + "くつろぐ", + "くとうてん", + "くどく", + "くなん", + "くに", + "くねくね", + "くのう", + "くふう", + "くま", + "くみあわせ", + "くみたてる", + "くむ", + "くめる", + "くやくしょ", + "くらす", + "くり", + "くれる", + "くろ", + "くろう", + "くわしい", + "ぐんじょ", + "けあな", + "けいけん", + "けいこ", + "けいさい", + "けいさつ", + "げいのうじん", + "けいれき", + "けいれつ", + "けいれん", + "けいろ", + "けおとす", + "けおりもの", + "けが", + "げき", + "げきか", + "げきげん", + "げきだん", + "げきちん", + "げきど", + "げきは", + "げきやく", + "げこう", + "げこくじょう", + "けさ", + "げざい", + "けさき", + "げざん", + "けしき", + "けしごむ", + "けしょう", + "けす", + "げすと", + "けた", + "げた", + "けたば", + "けち", + "けちゃっぷ", + "けちらす", + "けつ", + "けつあつ", + "けつい", + "けつえき", + "けっこん", + "けつじょ", + "けってい", + "けつまつ", + "げつようび", + "げつれい", + "けつろん", + "げどく", + "けとばす", + "けとる", + "けなげ", + "けなす", + "けなみ", + "けぬき", + "げねつ", + "けねん", + "けはい", + "げひん", + "けぶかい", + "げぼく", + "けまり", + "けみかる", + "けむし", + "けむり", + "けもの", + "けらい", + "ける", + "げろ", + "けろけろ", + "けわしい", + "けんい", + "けんえつ", + "けんお", + "けんか", + "げんき", + "けんきゅう", + "けんきょ", + "けんけい", + "けんけつ", + "けんげん", + "けんこう", + "けんさ", + "けんさく", + "けんしゅう", + "けんしゅつ", + "けんしん", + "けんすう", + "けんそう", + "げんそう", + "けんそん", + "げんち", + "けんちく", + "けんてい", + "げんてい", + "けんとう", + "けんない", + "けんにん", + "げんぶつ", + "けんま", + "けんみん", + "けんめい", + "けんらん", + "けんり", + "けんりつ", + "こあくま", + "こい", + "ごい", + "こいびと", + "こうい", + "こうえん", + "こうか", + "こうかい", + "こうかん", + "こうさい", + "こうさん", + "こうしん", + "こうず", + "こうすい", + "こうせん", + "こうそう", + "こうそく", + "こうたい", + "こうちゃ", + "こうつう", + "こうてい", + "こうとうぶ", + "こうない", + "こうはい", + "こうはん", + "こうもく", + "こえ", + "こえる", + "こおり", + "ごがつ", + "こかん", + "こく", + "こくご", + "こくない", + "こくはく", + "こけい", + "こける", + "ここ", + "こころ", + "ごさ", + "こさめ", + "こし", + "こしつ", + "こす", + "こすう", + "こせい", + "こせき", + "こぜん", + "こそだて", + "こたい", + "こたえる", + "こたつ", + "こちょう", + "こっか", + "こつこつ", + "こつばん", + "こつぶ", + "こてい", + "こてん", + "こと", + "ことがら", + "ことし", + "こなごな", + "こねこね", + "このまま", + "このみ", + "このよ", + "こはん", + "ごはん", + "ごび", + "こひつじ", + "こふう", + "こふん", + "こぼれる", + "ごま", + "こまかい", + "こまつし", + "こまつな", + "こまる", + "こむ", + "こむぎこ", + "こめ", + "こもじ", + "こもち", + "こもの", + "こもん", + "こや", + "こやく", + "こやま", + "こゆう", + "こゆび", + "こよい", + "こよう", + "こりる", + "こる", + "これくしょん", + "ころっけ", + "こわもて", + "こわれる", + "こん", + "こんいん", + "こんかい", + "こんき", + "こんしゅう", + "こんしゅん", + "こんすい", + "こんだて", + "こんだん", + "こんとん", + "こんなん", + "こんびに", + "こんぽう", + "こんぽん", + "こんまけ", + "こんや", + "こんやく", + "こんれい", + "こんわく", + "さいかい", + "さいがい", + "さいきん", + "さいご", + "さいこん", + "さいしょ", + "さうな", + "さお", + "さかいし", + "さかな", + "さかみち", + "さき", + "さく", + "さくし", + "さくじょ", + "さくひん", + "さくら", + "さけ", + "さこく", + "さこつ", + "さたん", + "さつえい", + "さっか", + "さっきょく", + "さつじん", + "さつたば", + "さつまいも", + "さてい", + "さといも", + "さとう", + "さとおや", + "さとる", + "さのう", + "さば", + "さばく", + "さべつ", + "さほう", + "さほど", + "さます", + "さみしい", + "さみだれ", + "さむけ", + "さめ", + "さめる", + "さやえんどう", + "さゆう", + "さよう", + "さよく", + "さら", + "さらだ", + "さる", + "さわやか", + "さわる", + "さんいん", + "さんか", + "さんきゃく", + "さんこう", + "さんさい", + "さんざん", + "さんすう", + "さんせい", + "さんそ", + "さんそん", + "さんち", + "さんちょう", + "さんま", + "さんみ", + "さんらん", + "しあい", + "しあげ", + "しあさって", + "しあわせ", + "しいく", + "しいん", + "しうち", + "しえい", + "しお", + "しおけ", + "しか", + "しかい", + "しかく", + "じかん", + "した", + "したぎ", + "したて", + "したみ", + "しちょう", + "しちょうそん", + "しちりん", + "じつじ", + "してい", + "してき", + "してつ", + "してん", + "しとう", + "じどう", + "しなぎれ", + "しなもの", + "しなん", + "しねま", + "しねん", + "しのぐ", + "しのぶ", + "しはい", + "しばかり", + "しはつ", + "じはつ", + "しはらい", + "しはん", + "しひょう", + "じふ", + "しふく", + "じぶん", + "しへい", + "しほう", + "しほん", + "しま", + "しまう", + "しまる", + "しみ", + "じみ", + "しみん", + "じむ", + "しむける", + "しめい", + "しめる", + "しもん", + "しゃいん", + "しゃうん", + "しゃおん", + "しゃかい", + "じゃがいも", + "しやくしょ", + "しゃくほう", + "しゃけん", + "しゃこ", + "しゃこう", + "しゃざい", + "しゃしん", + "しゃせん", + "しゃそう", + "しゃたい", + "しゃたく", + "しゃちょう", + "しゃっきん", + "じゃま", + "じゃり", + "しゃりょう", + "しゃりん", + "しゃれい", + "しゅうえん", + "しゅうかい", + "しゅうきん", + "しゅうけい", + "しゅうりょう", + "しゅらば", + "しょうか", + "しょうかい", + "しょうきん", + "しょうじき", + "しょくざい", + "しょくたく", + "しょっけん", + "しょどう", + "しょもつ", + "しん", + "しんか", + "しんこう", + "しんせいじ", + "しんちく", + "しんりん", + "すあげ", + "すあし", + "すあな", + "ずあん", + "すいか", + "すいとう", + "すう", + "すうがく", + "すうじつ", + "すうせん", + "すおどり", + "すき", + "すきま", + "すく", + "すくう", + "すくない", + "すける", + "すこし", + "ずさん", + "すし", + "すずしい", + "すすめる", + "すそ", + "ずっしり", + "ずっと", + "すで", + "すてき", + "すてる", + "すな", + "すなっく", + "すなっぷ", + "すね", + "すねる", + "すのこ", + "すはだ", + "すばらしい", + "ずひょう", + "ずぶぬれ", + "すぶり", + "すふれ", + "すべて", + "すべる", + "ずほう", + "すぼん", + "すまい", + "すみ", + "すむ", + "すめし", + "すもう", + "すやき", + "すらいす", + "すらいど", + "すらすら", + "すり", + "する", + "するめ", + "すれちがう", + "すろっと", + "すわる", + "すんぜん", + "すんぽう", + "せあぶら", + "せいか", + "せいかい", + "せいかつ", + "せおう", + "せかい", + "せかいかん", + "せかいし", + "せかいじゅう", + "せき", + "せきにん", + "せきむ", + "せきゆ", + "せきらんうん", + "せけん", + "せこう", + "せすじ", + "せたい", + "せたけ", + "せっかい", + "せっかく", + "せっき", + "せっきゃく", + "せっきょく", + "せっきん", + "ぜっく", + "せっけん", + "せっこつ", + "せっさたくま", + "せつぞく", + "せつだん", + "せつでん", + "せっぱん", + "せつび", + "せつぶん", + "せつめい", + "せつりつ", + "せと", + "せなか", + "せのび", + "せはば", + "せぼね", + "せまい", + "せまる", + "せみ", + "せめる", + "せもたれ", + "せりふ", + "せわ", + "せん", + "ぜんあく", + "せんい", + "せんえい", + "せんか", + "せんきょ", + "せんく", + "せんけつ", + "せんげん", + "ぜんご", + "せんさい", + "せんし", + "せんしゅ", + "せんす", + "せんすい", + "せんせい", + "せんぞ", + "せんそう", + "せんたく", + "せんち", + "せんちゃ", + "せんちゃく", + "せんちょう", + "せんてい", + "せんとう", + "せんぬき", + "せんねん", + "ぜんぶ", + "せんぷうき", + "せんぷく", + "ぜんぽう", + "せんむ", + "せんめい", + "せんめんじょ", + "せんもん", + "せんやく", + "せんゆう", + "せんよう", + "ぜんら", + "ぜんりゃく", + "せんりょく", + "せんれい", + "せんろ", + "そあく", + "そいとげる", + "そいね", + "そう", + "ぞう", + "そうがんきょう", + "そうき", + "そうご", + "そうなん", + "そうび", + "そうひょう", + "そうめん", + "そうり", + "そうりょ", + "そえもの", + "そえん", + "そかい", + "そがい", + "そぐ", + "そげき", + "そこう", + "そこそこ", + "そざい", + "そし", + "そしな", + "そせい", + "そせん", + "そそぐ", + "そだてる", + "そつう", + "そつえん", + "そっかん", + "そつぎょう", + "そっけつ", + "そっこう", + "そっせん", + "そっと", + "そで", + "そと", + "そとがわ", + "そとづら", + "そなえる", + "そなた", + "そば", + "そふ", + "そふぼ", + "そぼ", + "そぼく", + "そぼろ", + "そまつ", + "そまる", + "そむく", + "そむりえ", + "そめる", + "そもそも", + "そよかぜ", + "そら", + "そらまめ", + "そり", + "そる", + "そろう", + "そんかい", + "そんけい", + "そんざい", + "そんしつ", + "そんしょう", + "そんぞく", + "そんちょう", + "ぞんび", + "ぞんぶん", + "そんみん", + "たあい", + "たいいん", + "たいうん", + "たいえき", + "たいおう", + "だいおう", + "たいか", + "たいかい", + "たいき", + "たいきけん", + "たいぐう", + "たいくつ", + "たいけい", + "たいけつ", + "たいけん", + "たいこ", + "たいこう", + "たいさ", + "たいさん", + "たいしゅつ", + "だいじょうぶ", + "たいしょく", + "だいず", + "だいすき", + "たいせい", + "たいせつ", + "たいせん", + "たいそう", + "たいちょう", + "だいちょう", + "たいとう", + "たいない", + "たいねつ", + "たいのう", + "たいは", + "たいはん", + "たいひ", + "たいふう", + "たいへん", + "たいほ", + "たいまつばな", + "たいまん", + "たいみんぐ", + "たいむ", + "たいめん", + "たいやき", + "たいやく", + "たいよう", + "たいら", + "たいりょう", + "たいりょく", + "たいる", + "たいわ", + "たいわん", + "たうえ", + "たえる", + "たおす", + "たおる", + "たかい", + "たかね", + "たき", + "たきび", + "たくさん", + "たけ", + "たこ", + "たこく", + "たこやき", + "たさい", + "ださい", + "たしざん", + "たす", + "たすける", + "たそがれ", + "たたかう", + "たたく", + "たちば", + "たちばな", + "たつ", + "だっかい", + "だっきゃく", + "だっこ", + "だっしめん", + "だっしゅつ", + "だったい", + "たて", + "たてる", + "たとえる", + "たな", + "たにん", + "たぬき", + "たね", + "たのしみ", + "たはつ", + "たび", + "たぶん", + "たべる", + "たぼう", + "たほうめん", + "たま", + "たまご", + "たまる", + "だむる", + "ためいき", + "ためす", + "ためる", + "たもつ", + "たやすい", + "たよる", + "たら", + "たらす", + "たりきほんがん", + "たりょう", + "たりる", + "たる", + "たると", + "たれる", + "たれんと", + "たろっと", + "たわむれる", + "たん", + "だんあつ", + "たんい", + "たんおん", + "たんか", + "たんき", + "たんけん", + "たんご", + "たんさく", + "たんさん", + "たんし", + "たんしゅく", + "たんじょうび", + "だんせい", + "たんそく", + "たんたい", + "たんち", + "だんち", + "たんちょう", + "たんてい", + "たんてき", + "たんとう", + "だんな", + "たんにん", + "だんねつ", + "たんのう", + "たんぴん", + "たんまつ", + "たんめい", + "だんれつ", + "だんろ", + "だんわ", + "ちあい", + "ちあん", + "ちい", + "ちいき", + "ちいさい", + "ちえ", + "ちえん", + "ちか", + "ちかい", + "ちきゅう", + "ちきん", + "ちけい", + "ちけいず", + "ちけん", + "ちこく", + "ちさい", + "ちしき", + "ちしりょう", + "ちず", + "ちせい", + "ちそう", + "ちたい", + "ちたん", + "ちちおや", + "ちつじょ", + "ちてき", + "ちてん", + "ちぬき", + "ちぬり", + "ちのう", + "ちひょう", + "ちへいせん", + "ちほう", + "ちまた", + "ちみつ", + "ちみどろ", + "ちめいど", + "ちゅうい", + "ちゅうおう", + "ちゅうおうく", + "ちゅうがっこう", + "ちゅうごく", + "ちゆりょく", + "ちょうさ", + "ちょうし", + "ちらし", + "ちらみ", + "ちり", + "ちりがみ", + "ちる", + "ちるど", + "ちわわ", + "ちんたい", + "ちんもく", + "ついか", + "つうか", + "つうじょう", + "つうじる", + "つうはん", + "つうわ", + "つえ", + "つかう", + "つかれる", + "つき", + "つく", + "つくね", + "つくる", + "つけね", + "つける", + "つごう", + "つた", + "つたえる", + "つち", + "つつじ", + "つとめる", + "つな", + "つながる", + "つなみ", + "つねづね", + "つの", + "つのる", + "つば", + "つぶ", + "つぶす", + "つぼ", + "つま", + "つまらない", + "つまる", + "つみ", + "つみき", + "つむ", + "つめたい", + "つもる", + "つや", + "つよい", + "つり", + "つるぼ", + "つるみく", + "つわもの", + "つわり", + "てあし", + "てあて", + "てあみ", + "ていか", + "ていき", + "ていけい", + "ていけつ", + "ていけつあつ", + "ていこく", + "ていさつ", + "ていし", + "ていしゃ", + "ていせい", + "ていたい", + "ていど", + "ていねい", + "ていひょう", + "ていへん", + "ていぼう", + "てうち", + "ておくれ", + "てき", + "てくび", + "てこ", + "てさぎょう", + "てさげ", + "でし", + "てすり", + "てそう", + "てちがい", + "てちょう", + "てつがく", + "てつづき", + "てつや", + "でぬかえ", + "てぬき", + "てぬぐい", + "てのひら", + "てはい", + "てふだ", + "てほどき", + "てほん", + "てま", + "てまえ", + "てまきずし", + "てみじか", + "てみやげ", + "てら", + "てらす", + "でる", + "てれび", + "てろ", + "てわけ", + "てわたし", + "でんあつ", + "てんい", + "てんいん", + "てんかい", + "てんき", + "てんぐ", + "てんけん", + "でんげん", + "てんごく", + "てんさい", + "てんすう", + "でんち", + "てんてき", + "てんとう", + "てんない", + "てんぷ", + "てんぷら", + "てんぼうだい", + "てんめつ", + "てんらく", + "てんらんかい", + "でんりゅう", + "でんりょく", + "でんわ", + "どあ", + "どあい", + "といれ", + "とうむぎ", + "とおい", + "とおす", + "とかい", + "とかす", + "ときおり", + "ときどき", + "とくい", + "とくてい", + "とくてん", + "とくべつ", + "とけい", + "とける", + "とさか", + "とし", + "としょかん", + "とそう", + "とたん", + "とち", + "とちゅう", + "とつぜん", + "とつにゅう", + "ととのえる", + "とない", + "となえる", + "となり", + "とのさま", + "とばす", + "とぶ", + "とほ", + "とほう", + "どま", + "とまる", + "とら", + "とり", + "とる", + "とんかつ", + "ない", + "ないか", + "ないかく", + "ないこう", + "ないしょ", + "ないす", + "ないせん", + "ないそう", + "ないぞう", + "なおす", + "なく", + "なこうど", + "なさけ", + "なし", + "なす", + "なぜ", + "なぞ", + "なたでここ", + "なつ", + "なっとう", + "なつやすみ", + "ななおし", + "なにごと", + "なにもの", + "なにわ", + "なは", + "なび", + "なふだ", + "なべ", + "なまいき", + "なまえ", + "なまみ", + "なみ", + "なみだ", + "なめらか", + "なめる", + "なやむ", + "ならぶ", + "なる", + "なれる", + "なわ", + "なわとび", + "なわばり", + "にあう", + "にいがた", + "にうけ", + "におい", + "にかい", + "にがて", + "にきび", + "にく", + "にくしみ", + "にくまん", + "にげる", + "にさんかたんそ", + "にし", + "にしき", + "にす", + "にせもの", + "にちじ", + "にちじょう", + "にちようび", + "にっか", + "にっき", + "にっけい", + "にっこう", + "にっさん", + "にっしょく", + "にっすう", + "にっせき", + "にってい", + "になう", + "にほん", + "にまめ", + "にもつ", + "にやり", + "にゅういん", + "にゅうか", + "にゅうし", + "にゅうしゃ", + "にゅうだん", + "にゅうぶ", + "にら", + "にりんしゃ", + "にる", + "にわ", + "にわとり", + "にんい", + "にんか", + "にんき", + "にんげん", + "にんしき", + "にんしょう", + "にんしん", + "にんずう", + "にんそう", + "にんたい", + "にんち", + "にんてい", + "にんにく", + "にんぷ", + "にんまり", + "にんむ", + "にんめい", + "にんよう", + "ぬう", + "ぬか", + "ぬく", + "ぬくもり", + "ぬし", + "ぬの", + "ぬま", + "ぬめり", + "ぬらす", + "ぬる", + "ぬんちゃく", + "ねあげ", + "ねいき", + "ねいる", + "ねいろ", + "ねぎ", + "ねぐせ", + "ねくたい", + "ねくら", + "ねこ", + "ねこぜ", + "ねこむ", + "ねさげ", + "ねすごす", + "ねそべる", + "ねつい", + "ねつぞう", + "ねったい", + "ねったいぎょ", + "ねぶそく", + "ねふだ", + "ねぼう", + "ねほりはほり", + "ねまき", + "ねまわし", + "ねみみ", + "ねむい", + "ねもと", + "ねらう", + "ねる", + "ねわざ", + "ねんいり", + "ねんおし", + "ねんかん", + "ねんき", + "ねんきん", + "ねんぐ", + "ねんざ", + "ねんし", + "ねんちゃく", + "ねんちょう", + "ねんど", + "ねんぴ", + "ねんぶつ", + "ねんまく", + "ねんまつ", + "ねんりき", + "ねんりょう", + "ねんれい", + "のいず", + "のう", + "のおづま", + "のがす", + "のきなみ", + "のこぎり", + "のこす", + "のせる", + "のぞく", + "のぞむ", + "のたまう", + "のちほど", + "のっく", + "のばす", + "のはら", + "のべる", + "のぼる", + "のむ", + "のやま", + "のらいぬ", + "のらねこ", + "のり", + "のる", + "のれん", + "のんき", + "ばあい", + "はあく", + "ばあさん", + "はい", + "ばいか", + "ばいく", + "はいけん", + "はいご", + "はいこう", + "はいし", + "はいしゅつ", + "はいしん", + "はいすい", + "はいせつ", + "はいせん", + "はいそう", + "はいち", + "ばいばい", + "はう", + "はえ", + "はえる", + "はおる", + "はか", + "ばか", + "はかい", + "はかる", + "はき", + "はく", + "はくしゅ", + "はけん", + "はこ", + "はこぶ", + "はさみ", + "はさん", + "はし", + "はしご", + "はしる", + "ばす", + "はせる", + "ぱそこん", + "はそん", + "はたん", + "はち", + "はちみつ", + "はっか", + "はっかく", + "はっき", + "はっきり", + "はっくつ", + "はっけん", + "はっこう", + "はっさん", + "はっしゃ", + "はっしん", + "はったつ", + "はっちゃく", + "はっちゅう", + "はってん", + "はっぴょう", + "はっぽう", + "はて", + "はな", + "はなす", + "はなび", + "はにかむ", + "はね", + "はは", + "はぶらし", + "はま", + "はみがき", + "はむ", + "はむかう", + "はめつ", + "はやい", + "はら", + "はらう", + "はり", + "はる", + "はれ", + "はろうぃん", + "はわい", + "はんい", + "はんえい", + "はんえん", + "はんおん", + "はんかく", + "はんかち", + "はんきょう", + "はんこ", + "はんこう", + "はんしゃ", + "はんしん", + "はんすう", + "はんたい", + "はんだん", + "ぱんち", + "ぱんつ", + "はんてい", + "はんてん", + "はんとし", + "はんのう", + "はんぱ", + "はんぶん", + "はんぺん", + "はんぼうき", + "はんめい", + "はんめん", + "はんらん", + "はんろん", + "ひいき", + "ひうん", + "ひえる", + "ひかく", + "ひかり", + "ひかん", + "ひく", + "ひくい", + "ひけつ", + "ひこうき", + "ひこく", + "ひざ", + "ぴざ", + "ひさい", + "ひさしぶり", + "ひさん", + "ひし", + "ひじ", + "ひしょ", + "ひじょう", + "ひそか", + "ひそむ", + "ひたむき", + "ひたる", + "ひつぎ", + "ひっこし", + "ひっし", + "ひっす", + "ひつぜん", + "ひつよう", + "ひてい", + "ひと", + "ひとごみ", + "ひな", + "ひなん", + "ひねる", + "ひはん", + "ひびく", + "ひひょう", + "ひふ", + "ひほう", + "ひま", + "ひまん", + "ひみつ", + "ひめ", + "ひめい", + "ひめじし", + "ひも", + "ひやけ", + "ひやす", + "ひゆ", + "ひよう", + "びょうき", + "ひらく", + "ひりつ", + "ひりょう", + "ひる", + "ひれい", + "ひろい", + "ひろう", + "ひわ", + "ひんかく", + "ひんけつ", + "ひんこん", + "ひんし", + "ひんしつ", + "ひんしゅ", + "ひんそう", + "ぴんち", + "ひんぱん", + "びんぼう", + "ふあん", + "ふいうち", + "ふうけい", + "ふうせん", + "ふうとう", + "ふうふ", + "ふえ", + "ふえる", + "ふおん", + "ふか", + "ふかい", + "ふきん", + "ふく", + "ふくざつ", + "ふこう", + "ふさい", + "ふざい", + "ふしぎ", + "ふじみ", + "ふすま", + "ふせい", + "ふせぐ", + "ふそく", + "ふた", + "ふたん", + "ふち", + "ふちょう", + "ふつう", + "ふっかつ", + "ふっき", + "ふっきん", + "ふっこく", + "ふとる", + "ふとん", + "ふね", + "ふのう", + "ふはい", + "ふひょう", + "ふへん", + "ふまん", + "ふみん", + "ふむ", + "ふめつ", + "ふめん", + "ふゆ", + "ふよう", + "ふりこ", + "ふりる", + "ふる", + "ふるい", + "ふろ", + "ふんいき", + "ふんか", + "ぶんか", + "ぶんぐ", + "ふんしつ", + "ぶんせき", + "ふんそう", + "へい", + "へいき", + "へいさ", + "へいわ", + "へきが", + "へこむ", + "へそ", + "へた", + "べつ", + "べっど", + "ぺっと", + "へび", + "へや", + "へる", + "へんか", + "へんかん", + "へんきゃく", + "へんきん", + "へんさい", + "へんたい", + "ほあん", + "ほいく", + "ほうほう", + "ほえる", + "ほおん", + "ほかん", + "ほきょう", + "ぼきん", + "ほくろ", + "ほけつ", + "ほけん", + "ほこう", + "ほこる", + "ほさ", + "ほし", + "ほしつ", + "ほしゅ", + "ほしょう", + "ほす", + "ほせい", + "ぼせい", + "ほそい", + "ほそく", + "ほたて", + "ほたる", + "ぼち", + "ほっきょく", + "ほっさ", + "ほったん", + "ほとんど", + "ほめる", + "ほる", + "ほんい", + "ほんき", + "ほんけ", + "ほんしつ", + "まいにち", + "まう", + "まかい", + "まかせる", + "まく", + "まける", + "まこと", + "まさつ", + "ますく", + "まぜる", + "まち", + "まつ", + "まつり", + "まとめ", + "まなぶ", + "まぬけ", + "まね", + "まねく", + "まひ", + "まほう", + "まめ", + "まもる", + "まゆげ", + "まよう", + "まる", + "まろやか", + "まわす", + "まわり", + "まんが", + "まんかい", + "まんきつ", + "まんぞく", + "みいら", + "みうち", + "みかた", + "みかん", + "みぎ", + "みけん", + "みこん", + "みすい", + "みすえる", + "みせ", + "みそ", + "みち", + "みてい", + "みとめる", + "みなみかさい", + "みねらる", + "みのう", + "みほん", + "みみ", + "みもと", + "みやげ", + "みらい", + "みりょく", + "みる", + "みわく", + "むえき", + "むえん", + "むかし", + "むく", + "むこ", + "むさぼる", + "むし", + "むすこ", + "むすめ", + "むせる", + "むせん", + "むだ", + "むち", + "むなしい", + "むね", + "むのう", + "むやみ", + "むよう", + "むら", + "むり", + "むりょう", + "むれ", + "むろん", + "もうどうけん", + "もえる", + "もぎ", + "もくし", + "もくてき", + "もし", + "もんく", + "もんだい", + "やすい", + "やすみ", + "やそう", + "やたい", + "やちん", + "やね", + "やぶる", + "やま", + "やみ", + "やめる", + "ややこしい", + "やよい", + "やり", + "やわらかい", + "ゆけつ", + "ゆしゅつ", + "ゆせん", + "ゆそう", + "ゆたか", + "ゆちゃく", + "ゆでる", + "ゆび", + "ゆびわ", + "ゆめ", + "ゆれる", + "よう", + "よかぜ", + "よかん", + "よきん", + "よくせい", + "よくぼう", + "よけい", + "よさん", + "よそう", + "よそく", + "よち", + "よてい", + "よどがわく", + "よねつ", + "よむ", + "よめ", + "よやく", + "よゆう", + "よる", + "よろこぶ", + "らいう", + "らくがき", + "らくご", + "らくさつ", + "らくだ", + "らくたん", + "らしんばん", + "らせん", + "らぞく", + "らたい", + "らち", + "らっか", + "らっかせい", + "られつ", + "りえき", + "りか", + "りかい", + "りきさく", + "りきせつ", + "りく", + "りくぐん", + "りくつ", + "りけん", + "りこう", + "りし", + "りす", + "りせい", + "りそう", + "りそく", + "りてん", + "りねん", + "りゅう", + "りゆう", + "りゅうがく", + "りゅうこう", + "りゅうし", + "りゅうねん", + "りよう", + "りょうかい", + "りょうきん", + "りょうしん", + "りょうて", + "りょうど", + "りょうほう", + "りょうり", + "りりく", + "りれき", + "りろん", + "りんご", + "るいじ", + "るす", + "れいかん", + "れいぎ", + "れいせい", + "れいぞうこ", + "れいとう", + "れきし", + "れきだい", + "れんあい", + "れんけい", + "れんけつ", + "れんこう", + "れんこん", + "れんさ", + "れんさい", + "れんさく", + "れんしゃ", + "れんしゅう", + "れんぞく", + "ろうか", + "ろうご", + "ろうじん", + "ろうそく", + "ろか", + "ろくが", + "ろこつ", + "ろしゅつ", + "ろせん", + "ろてん", + "ろめん", + "ろれつ", + "ろんぎ", + "ろんぱ", + "ろんぶん", + "ろんり", + "わじまし" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Japanese"; + populate_maps(); } - else - { - trimmed_word_map[*it] = ii; - } - } - return trimmed_word_map; + }; } + +#endif diff --git a/src/mnemonics/language_base.h b/src/mnemonics/language_base.h new file mode 100644 index 000000000..90ff9c334 --- /dev/null +++ b/src/mnemonics/language_base.h @@ -0,0 +1,61 @@ +#ifndef LANGUAGE_BASE_H +#define LANGUAGE_BASE_H + +#include +#include +#include + +namespace Language +{ + const int unique_prefix_length = 4; + class Base + { + protected: + std::vector *word_list; + std::unordered_map *word_map; + std::unordered_map *trimmed_word_map; + std::string language_name; + void populate_maps() + { + int ii; + std::vector::iterator it; + for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++) + { + (*word_map)[*it] = ii; + if (it->length() > 4) + { + (*trimmed_word_map)[it->substr(0, 4)] = ii; + } + else + { + (*trimmed_word_map)[*it] = ii; + } + } + } + public: + Base() + { + word_list = new std::vector; + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + } + const std::vector& get_word_list() const + { + return *word_list; + } + const std::unordered_map& get_word_map() const + { + return *word_map; + } + const std::unordered_map& get_trimmed_word_map() const + { + return *trimmed_word_map; + } + std::string get_language_name() const + { + return language_name; + } + }; +} + +#endif diff --git a/src/mnemonics/old_english.h b/src/mnemonics/old_english.h index 3a315f6ef..dc36f5119 100644 --- a/src/mnemonics/old_english.h +++ b/src/mnemonics/old_english.h @@ -1,1676 +1,1652 @@ +#ifndef OLD_ENGLISH_H +#define OLD_ENGLISH_H + #include #include +#include "language_base.h" +#include -std::vector& word_list_old_english() +namespace Language { - static std::vector word_list( - "like", - "just", - "love", - "know", - "never", - "want", - "time", - "out", - "there", - "make", - "look", - "eye", - "down", - "only", - "think", - "heart", - "back", - "then", - "into", - "about", - "more", - "away", - "still", - "them", - "take", - "thing", - "even", - "through", - "long", - "always", - "world", - "too", - "friend", - "tell", - "try", - "hand", - "thought", - "over", - "here", - "other", - "need", - "smile", - "again", - "much", - "cry", - "been", - "night", - "ever", - "little", - "said", - "end", - "some", - "those", - "around", - "mind", - "people", - "girl", - "leave", - "dream", - "left", - "turn", - "myself", - "give", - "nothing", - "really", - "off", - "before", - "something", - "find", - "walk", - "wish", - "good", - "once", - "place", - "ask", - "stop", - "keep", - "watch", - "seem", - "everything", - "wait", - "got", - "yet", - "made", - "remember", - "start", - "alone", - "run", - "hope", - "maybe", - "believe", - "body", - "hate", - "after", - "close", - "talk", - "stand", - "own", - "each", - "hurt", - "help", - "home", - "god", - "soul", - "new", - "many", - "two", - "inside", - "should", - "true", - "first", - "fear", - "mean", - "better", - "play", - "another", - "gone", - "change", - "use", - "wonder", - "someone", - "hair", - "cold", - "open", - "best", - "any", - "behind", - "happen", - "water", - "dark", - "laugh", - "stay", - "forever", - "name", - "work", - "show", - "sky", - "break", - "came", - "deep", - "door", - "put", - "black", - "together", - "upon", - "happy", - "such", - "great", - "white", - "matter", - "fill", - "past", - "please", - "burn", - "cause", - "enough", - "touch", - "moment", - "soon", - "voice", - "scream", - "anything", - "stare", - "sound", - "red", - "everyone", - "hide", - "kiss", - "truth", - "death", - "beautiful", - "mine", - "blood", - "broken", - "very", - "pass", - "next", - "forget", - "tree", - "wrong", - "air", - "mother", - "understand", - "lip", - "hit", - "wall", - "memory", - "sleep", - "free", - "high", - "realize", - "school", - "might", - "skin", - "sweet", - "perfect", - "blue", - "kill", - "breath", - "dance", - "against", - "fly", - "between", - "grow", - "strong", - "under", - "listen", - "bring", - "sometimes", - "speak", - "pull", - "person", - "become", - "family", - "begin", - "ground", - "real", - "small", - "father", - "sure", - "feet", - "rest", - "young", - "finally", - "land", - "across", - "today", - "different", - "guy", - "line", - "fire", - "reason", - "reach", - "second", - "slowly", - "write", - "eat", - "smell", - "mouth", - "step", - "learn", - "three", - "floor", - "promise", - "breathe", - "darkness", - "push", - "earth", - "guess", - "save", - "song", - "above", - "along", - "both", - "color", - "house", - "almost", - "sorry", - "anymore", - "brother", - "okay", - "dear", - "game", - "fade", - "already", - "apart", - "warm", - "beauty", - "heard", - "notice", - "question", - "shine", - "began", - "piece", - "whole", - "shadow", - "secret", - "street", - "within", - "finger", - "point", - "morning", - "whisper", - "child", - "moon", - "green", - "story", - "glass", - "kid", - "silence", - "since", - "soft", - "yourself", - "empty", - "shall", - "angel", - "answer", - "baby", - "bright", - "dad", - "path", - "worry", - "hour", - "drop", - "follow", - "power", - "war", - "half", - "flow", - "heaven", - "act", - "chance", - "fact", - "least", - "tired", - "children", - "near", - "quite", - "afraid", - "rise", - "sea", - "taste", - "window", - "cover", - "nice", - "trust", - "lot", - "sad", - "cool", - "force", - "peace", - "return", - "blind", - "easy", - "ready", - "roll", - "rose", - "drive", - "held", - "music", - "beneath", - "hang", - "mom", - "paint", - "emotion", - "quiet", - "clear", - "cloud", - "few", - "pretty", - "bird", - "outside", - "paper", - "picture", - "front", - "rock", - "simple", - "anyone", - "meant", - "reality", - "road", - "sense", - "waste", - "bit", - "leaf", - "thank", - "happiness", - "meet", - "men", - "smoke", - "truly", - "decide", - "self", - "age", - "book", - "form", - "alive", - "carry", - "escape", - "damn", - "instead", - "able", - "ice", - "minute", - "throw", - "catch", - "leg", - "ring", - "course", - "goodbye", - "lead", - "poem", - "sick", - "corner", - "desire", - "known", - "problem", - "remind", - "shoulder", - "suppose", - "toward", - "wave", - "drink", - "jump", - "woman", - "pretend", - "sister", - "week", - "human", - "joy", - "crack", - "grey", - "pray", - "surprise", - "dry", - "knee", - "less", - "search", - "bleed", - "caught", - "clean", - "embrace", - "future", - "king", - "son", - "sorrow", - "chest", - "hug", - "remain", - "sat", - "worth", - "blow", - "daddy", - "final", - "parent", - "tight", - "also", - "create", - "lonely", - "safe", - "cross", - "dress", - "evil", - "silent", - "bone", - "fate", - "perhaps", - "anger", - "class", - "scar", - "snow", - "tiny", - "tonight", - "continue", - "control", - "dog", - "edge", - "mirror", - "month", - "suddenly", - "comfort", - "given", - "loud", - "quickly", - "gaze", - "plan", - "rush", - "stone", - "town", - "battle", - "ignore", - "spirit", - "stood", - "stupid", - "yours", - "brown", - "build", - "dust", - "hey", - "kept", - "pay", - "phone", - "twist", - "although", - "ball", - "beyond", - "hidden", - "nose", - "taken", - "fail", - "float", - "pure", - "somehow", - "wash", - "wrap", - "angry", - "cheek", - "creature", - "forgotten", - "heat", - "rip", - "single", - "space", - "special", - "weak", - "whatever", - "yell", - "anyway", - "blame", - "job", - "choose", - "country", - "curse", - "drift", - "echo", - "figure", - "grew", - "laughter", - "neck", - "suffer", - "worse", - "yeah", - "disappear", - "foot", - "forward", - "knife", - "mess", - "somewhere", - "stomach", - "storm", - "beg", - "idea", - "lift", - "offer", - "breeze", - "field", - "five", - "often", - "simply", - "stuck", - "win", - "allow", - "confuse", - "enjoy", - "except", - "flower", - "seek", - "strength", - "calm", - "grin", - "gun", - "heavy", - "hill", - "large", - "ocean", - "shoe", - "sigh", - "straight", - "summer", - "tongue", - "accept", - "crazy", - "everyday", - "exist", - "grass", - "mistake", - "sent", - "shut", - "surround", - "table", - "ache", - "brain", - "destroy", - "heal", - "nature", - "shout", - "sign", - "stain", - "choice", - "doubt", - "glance", - "glow", - "mountain", - "queen", - "stranger", - "throat", - "tomorrow", - "city", - "either", - "fish", - "flame", - "rather", - "shape", - "spin", - "spread", - "ash", - "distance", - "finish", - "image", - "imagine", - "important", - "nobody", - "shatter", - "warmth", - "became", - "feed", - "flesh", - "funny", - "lust", - "shirt", - "trouble", - "yellow", - "attention", - "bare", - "bite", - "money", - "protect", - "amaze", - "appear", - "born", - "choke", - "completely", - "daughter", - "fresh", - "friendship", - "gentle", - "probably", - "six", - "deserve", - "expect", - "grab", - "middle", - "nightmare", - "river", - "thousand", - "weight", - "worst", - "wound", - "barely", - "bottle", - "cream", - "regret", - "relationship", - "stick", - "test", - "crush", - "endless", - "fault", - "itself", - "rule", - "spill", - "art", - "circle", - "join", - "kick", - "mask", - "master", - "passion", - "quick", - "raise", - "smooth", - "unless", - "wander", - "actually", - "broke", - "chair", - "deal", - "favorite", - "gift", - "note", - "number", - "sweat", - "box", - "chill", - "clothes", - "lady", - "mark", - "park", - "poor", - "sadness", - "tie", - "animal", - "belong", - "brush", - "consume", - "dawn", - "forest", - "innocent", - "pen", - "pride", - "stream", - "thick", - "clay", - "complete", - "count", - "draw", - "faith", - "press", - "silver", - "struggle", - "surface", - "taught", - "teach", - "wet", - "bless", - "chase", - "climb", - "enter", - "letter", - "melt", - "metal", - "movie", - "stretch", - "swing", - "vision", - "wife", - "beside", - "crash", - "forgot", - "guide", - "haunt", - "joke", - "knock", - "plant", - "pour", - "prove", - "reveal", - "steal", - "stuff", - "trip", - "wood", - "wrist", - "bother", - "bottom", - "crawl", - "crowd", - "fix", - "forgive", - "frown", - "grace", - "loose", - "lucky", - "party", - "release", - "surely", - "survive", - "teacher", - "gently", - "grip", - "speed", - "suicide", - "travel", - "treat", - "vein", - "written", - "cage", - "chain", - "conversation", - "date", - "enemy", - "however", - "interest", - "million", - "page", - "pink", - "proud", - "sway", - "themselves", - "winter", - "church", - "cruel", - "cup", - "demon", - "experience", - "freedom", - "pair", - "pop", - "purpose", - "respect", - "shoot", - "softly", - "state", - "strange", - "bar", - "birth", - "curl", - "dirt", - "excuse", - "lord", - "lovely", - "monster", - "order", - "pack", - "pants", - "pool", - "scene", - "seven", - "shame", - "slide", - "ugly", - "among", - "blade", - "blonde", - "closet", - "creek", - "deny", - "drug", - "eternity", - "gain", - "grade", - "handle", - "key", - "linger", - "pale", - "prepare", - "swallow", - "swim", - "tremble", - "wheel", - "won", - "cast", - "cigarette", - "claim", - "college", - "direction", - "dirty", - "gather", - "ghost", - "hundred", - "loss", - "lung", - "orange", - "present", - "swear", - "swirl", - "twice", - "wild", - "bitter", - "blanket", - "doctor", - "everywhere", - "flash", - "grown", - "knowledge", - "numb", - "pressure", - "radio", - "repeat", - "ruin", - "spend", - "unknown", - "buy", - "clock", - "devil", - "early", - "false", - "fantasy", - "pound", - "precious", - "refuse", - "sheet", - "teeth", - "welcome", - "add", - "ahead", - "block", - "bury", - "caress", - "content", - "depth", - "despite", - "distant", - "marry", - "purple", - "threw", - "whenever", - "bomb", - "dull", - "easily", - "grasp", - "hospital", - "innocence", - "normal", - "receive", - "reply", - "rhyme", - "shade", - "someday", - "sword", - "toe", - "visit", - "asleep", - "bought", - "center", - "consider", - "flat", - "hero", - "history", - "ink", - "insane", - "muscle", - "mystery", - "pocket", - "reflection", - "shove", - "silently", - "smart", - "soldier", - "spot", - "stress", - "train", - "type", - "view", - "whether", - "bus", - "energy", - "explain", - "holy", - "hunger", - "inch", - "magic", - "mix", - "noise", - "nowhere", - "prayer", - "presence", - "shock", - "snap", - "spider", - "study", - "thunder", - "trail", - "admit", - "agree", - "bag", - "bang", - "bound", - "butterfly", - "cute", - "exactly", - "explode", - "familiar", - "fold", - "further", - "pierce", - "reflect", - "scent", - "selfish", - "sharp", - "sink", - "spring", - "stumble", - "universe", - "weep", - "women", - "wonderful", - "action", - "ancient", - "attempt", - "avoid", - "birthday", - "branch", - "chocolate", - "core", - "depress", - "drunk", - "especially", - "focus", - "fruit", - "honest", - "match", - "palm", - "perfectly", - "pillow", - "pity", - "poison", - "roar", - "shift", - "slightly", - "thump", - "truck", - "tune", - "twenty", - "unable", - "wipe", - "wrote", - "coat", - "constant", - "dinner", - "drove", - "egg", - "eternal", - "flight", - "flood", - "frame", - "freak", - "gasp", - "glad", - "hollow", - "motion", - "peer", - "plastic", - "root", - "screen", - "season", - "sting", - "strike", - "team", - "unlike", - "victim", - "volume", - "warn", - "weird", - "attack", - "await", - "awake", - "built", - "charm", - "crave", - "despair", - "fought", - "grant", - "grief", - "horse", - "limit", - "message", - "ripple", - "sanity", - "scatter", - "serve", - "split", - "string", - "trick", - "annoy", - "blur", - "boat", - "brave", - "clearly", - "cling", - "connect", - "fist", - "forth", - "imagination", - "iron", - "jock", - "judge", - "lesson", - "milk", - "misery", - "nail", - "naked", - "ourselves", - "poet", - "possible", - "princess", - "sail", - "size", - "snake", - "society", - "stroke", - "torture", - "toss", - "trace", - "wise", - "bloom", - "bullet", - "cell", - "check", - "cost", - "darling", - "during", - "footstep", - "fragile", - "hallway", - "hardly", - "horizon", - "invisible", - "journey", - "midnight", - "mud", - "nod", - "pause", - "relax", - "shiver", - "sudden", - "value", - "youth", - "abuse", - "admire", - "blink", - "breast", - "bruise", - "constantly", - "couple", - "creep", - "curve", - "difference", - "dumb", - "emptiness", - "gotta", - "honor", - "plain", - "planet", - "recall", - "rub", - "ship", - "slam", - "soar", - "somebody", - "tightly", - "weather", - "adore", - "approach", - "bond", - "bread", - "burst", - "candle", - "coffee", - "cousin", - "crime", - "desert", - "flutter", - "frozen", - "grand", - "heel", - "hello", - "language", - "level", - "movement", - "pleasure", - "powerful", - "random", - "rhythm", - "settle", - "silly", - "slap", - "sort", - "spoken", - "steel", - "threaten", - "tumble", - "upset", - "aside", - "awkward", - "bee", - "blank", - "board", - "button", - "card", - "carefully", - "complain", - "crap", - "deeply", - "discover", - "drag", - "dread", - "effort", - "entire", - "fairy", - "giant", - "gotten", - "greet", - "illusion", - "jeans", - "leap", - "liquid", - "march", - "mend", - "nervous", - "nine", - "replace", - "rope", - "spine", - "stole", - "terror", - "accident", - "apple", - "balance", - "boom", - "childhood", - "collect", - "demand", - "depression", - "eventually", - "faint", - "glare", - "goal", - "group", - "honey", - "kitchen", - "laid", - "limb", - "machine", - "mere", - "mold", - "murder", - "nerve", - "painful", - "poetry", - "prince", - "rabbit", - "shelter", - "shore", - "shower", - "soothe", - "stair", - "steady", - "sunlight", - "tangle", - "tease", - "treasure", - "uncle", - "begun", - "bliss", - "canvas", - "cheer", - "claw", - "clutch", - "commit", - "crimson", - "crystal", - "delight", - "doll", - "existence", - "express", - "fog", - "football", - "gay", - "goose", - "guard", - "hatred", - "illuminate", - "mass", - "math", - "mourn", - "rich", - "rough", - "skip", - "stir", - "student", - "style", - "support", - "thorn", - "tough", - "yard", - "yearn", - "yesterday", - "advice", - "appreciate", - "autumn", - "bank", - "beam", - "bowl", - "capture", - "carve", - "collapse", - "confusion", - "creation", - "dove", - "feather", - "girlfriend", - "glory", - "government", - "harsh", - "hop", - "inner", - "loser", - "moonlight", - "neighbor", - "neither", - "peach", - "pig", - "praise", - "screw", - "shield", - "shimmer", - "sneak", - "stab", - "subject", - "throughout", - "thrown", - "tower", - "twirl", - "wow", - "army", - "arrive", - "bathroom", - "bump", - "cease", - "cookie", - "couch", - "courage", - "dim", - "guilt", - "howl", - "hum", - "husband", - "insult", - "led", - "lunch", - "mock", - "mostly", - "natural", - "nearly", - "needle", - "nerd", - "peaceful", - "perfection", - "pile", - "price", - "remove", - "roam", - "sanctuary", - "serious", - "shiny", - "shook", - "sob", - "stolen", - "tap", - "vain", - "void", - "warrior", - "wrinkle", - "affection", - "apologize", - "blossom", - "bounce", - "bridge", - "cheap", - "crumble", - "decision", - "descend", - "desperately", - "dig", - "dot", - "flip", - "frighten", - "heartbeat", - "huge", - "lazy", - "lick", - "odd", - "opinion", - "process", - "puzzle", - "quietly", - "retreat", - "score", - "sentence", - "separate", - "situation", - "skill", - "soak", - "square", - "stray", - "taint", - "task", - "tide", - "underneath", - "veil", - "whistle", - "anywhere", - "bedroom", - "bid", - "bloody", - "burden", - "careful", - "compare", - "concern", - "curtain", - "decay", - "defeat", - "describe", - "double", - "dreamer", - "driver", - "dwell", - "evening", - "flare", - "flicker", - "grandma", - "guitar", - "harm", - "horrible", - "hungry", - "indeed", - "lace", - "melody", - "monkey", - "nation", - "object", - "obviously", - "rainbow", - "salt", - "scratch", - "shown", - "shy", - "stage", - "stun", - "third", - "tickle", - "useless", - "weakness", - "worship", - "worthless", - "afternoon", - "beard", - "boyfriend", - "bubble", - "busy", - "certain", - "chin", - "concrete", - "desk", - "diamond", - "doom", - "drawn", - "due", - "felicity", - "freeze", - "frost", - "garden", - "glide", - "harmony", - "hopefully", - "hunt", - "jealous", - "lightning", - "mama", - "mercy", - "peel", - "physical", - "position", - "pulse", - "punch", - "quit", - "rant", - "respond", - "salty", - "sane", - "satisfy", - "savior", - "sheep", - "slept", - "social", - "sport", - "tuck", - "utter", - "valley", - "wolf", - "aim", - "alas", - "alter", - "arrow", - "awaken", - "beaten", - "belief", - "brand", - "ceiling", - "cheese", - "clue", - "confidence", - "connection", - "daily", - "disguise", - "eager", - "erase", - "essence", - "everytime", - "expression", - "fan", - "flag", - "flirt", - "foul", - "fur", - "giggle", - "glorious", - "ignorance", - "law", - "lifeless", - "measure", - "mighty", - "muse", - "north", - "opposite", - "paradise", - "patience", - "patient", - "pencil", - "petal", - "plate", - "ponder", - "possibly", - "practice", - "slice", - "spell", - "stock", - "strife", - "strip", - "suffocate", - "suit", - "tender", - "tool", - "trade", - "velvet", - "verse", - "waist", - "witch", - "aunt", - "bench", - "bold", - "cap", - "certainly", - "click", - "companion", - "creator", - "dart", - "delicate", - "determine", - "dish", - "dragon", - "drama", - "drum", - "dude", - "everybody", - "feast", - "forehead", - "former", - "fright", - "fully", - "gas", - "hook", - "hurl", - "invite", - "juice", - "manage", - "moral", - "possess", - "raw", - "rebel", - "royal", - "scale", - "scary", - "several", - "slight", - "stubborn", - "swell", - "talent", - "tea", - "terrible", - "thread", - "torment", - "trickle", - "usually", - "vast", - "violence", - "weave", - "acid", - "agony", - "ashamed", - "awe", - "belly", - "blend", - "blush", - "character", - "cheat", - "common", - "company", - "coward", - "creak", - "danger", - "deadly", - "defense", - "define", - "depend", - "desperate", - "destination", - "dew", - "duck", - "dusty", - "embarrass", - "engine", - "example", - "explore", - "foe", - "freely", - "frustrate", - "generation", - "glove", - "guilty", - "health", - "hurry", - "idiot", - "impossible", - "inhale", - "jaw", - "kingdom", - "mention", - "mist", - "moan", - "mumble", - "mutter", - "observe", - "ode", - "pathetic", - "pattern", - "pie", - "prefer", - "puff", - "rape", - "rare", - "revenge", - "rude", - "scrape", - "spiral", - "squeeze", - "strain", - "sunset", - "suspend", - "sympathy", - "thigh", - "throne", - "total", - "unseen", - "weapon", - "weary" - ); - return word_list; -} - -std::unordered_map& word_map_old_english() -{ - static std::unordered_map word_map; - if (word_map.size() > 0) + class OldEnglish: public Base { - return word_map; - } - std::vector word_list = word_list_old_english(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - word_map[*it] = ii; - } - return word_map; -} - -std::unordered_map& trimmed_word_map_old_english() -{ - static std::unordered_map trimmed_word_map; - if (trimmed_word_map.size() > 0) - { - return trimmed_word_map; - } - std::vector word_list = word_list_old_english(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - if (it->length() > 4) + public: + OldEnglish() { - trimmed_word_map[it->substr(0, 4)] = ii; + word_list = new std::vector({ + "like", + "just", + "love", + "know", + "never", + "want", + "time", + "out", + "there", + "make", + "look", + "eye", + "down", + "only", + "think", + "heart", + "back", + "then", + "into", + "about", + "more", + "away", + "still", + "them", + "take", + "thing", + "even", + "through", + "long", + "always", + "world", + "too", + "friend", + "tell", + "try", + "hand", + "thought", + "over", + "here", + "other", + "need", + "smile", + "again", + "much", + "cry", + "been", + "night", + "ever", + "little", + "said", + "end", + "some", + "those", + "around", + "mind", + "people", + "girl", + "leave", + "dream", + "left", + "turn", + "myself", + "give", + "nothing", + "really", + "off", + "before", + "something", + "find", + "walk", + "wish", + "good", + "once", + "place", + "ask", + "stop", + "keep", + "watch", + "seem", + "everything", + "wait", + "got", + "yet", + "made", + "remember", + "start", + "alone", + "run", + "hope", + "maybe", + "believe", + "body", + "hate", + "after", + "close", + "talk", + "stand", + "own", + "each", + "hurt", + "help", + "home", + "god", + "soul", + "new", + "many", + "two", + "inside", + "should", + "true", + "first", + "fear", + "mean", + "better", + "play", + "another", + "gone", + "change", + "use", + "wonder", + "someone", + "hair", + "cold", + "open", + "best", + "any", + "behind", + "happen", + "water", + "dark", + "laugh", + "stay", + "forever", + "name", + "work", + "show", + "sky", + "break", + "came", + "deep", + "door", + "put", + "black", + "together", + "upon", + "happy", + "such", + "great", + "white", + "matter", + "fill", + "past", + "please", + "burn", + "cause", + "enough", + "touch", + "moment", + "soon", + "voice", + "scream", + "anything", + "stare", + "sound", + "red", + "everyone", + "hide", + "kiss", + "truth", + "death", + "beautiful", + "mine", + "blood", + "broken", + "very", + "pass", + "next", + "forget", + "tree", + "wrong", + "air", + "mother", + "understand", + "lip", + "hit", + "wall", + "memory", + "sleep", + "free", + "high", + "realize", + "school", + "might", + "skin", + "sweet", + "perfect", + "blue", + "kill", + "breath", + "dance", + "against", + "fly", + "between", + "grow", + "strong", + "under", + "listen", + "bring", + "sometimes", + "speak", + "pull", + "person", + "become", + "family", + "begin", + "ground", + "real", + "small", + "father", + "sure", + "feet", + "rest", + "young", + "finally", + "land", + "across", + "today", + "different", + "guy", + "line", + "fire", + "reason", + "reach", + "second", + "slowly", + "write", + "eat", + "smell", + "mouth", + "step", + "learn", + "three", + "floor", + "promise", + "breathe", + "darkness", + "push", + "earth", + "guess", + "save", + "song", + "above", + "along", + "both", + "color", + "house", + "almost", + "sorry", + "anymore", + "brother", + "okay", + "dear", + "game", + "fade", + "already", + "apart", + "warm", + "beauty", + "heard", + "notice", + "question", + "shine", + "began", + "piece", + "whole", + "shadow", + "secret", + "street", + "within", + "finger", + "point", + "morning", + "whisper", + "child", + "moon", + "green", + "story", + "glass", + "kid", + "silence", + "since", + "soft", + "yourself", + "empty", + "shall", + "angel", + "answer", + "baby", + "bright", + "dad", + "path", + "worry", + "hour", + "drop", + "follow", + "power", + "war", + "half", + "flow", + "heaven", + "act", + "chance", + "fact", + "least", + "tired", + "children", + "near", + "quite", + "afraid", + "rise", + "sea", + "taste", + "window", + "cover", + "nice", + "trust", + "lot", + "sad", + "cool", + "force", + "peace", + "return", + "blind", + "easy", + "ready", + "roll", + "rose", + "drive", + "held", + "music", + "beneath", + "hang", + "mom", + "paint", + "emotion", + "quiet", + "clear", + "cloud", + "few", + "pretty", + "bird", + "outside", + "paper", + "picture", + "front", + "rock", + "simple", + "anyone", + "meant", + "reality", + "road", + "sense", + "waste", + "bit", + "leaf", + "thank", + "happiness", + "meet", + "men", + "smoke", + "truly", + "decide", + "self", + "age", + "book", + "form", + "alive", + "carry", + "escape", + "damn", + "instead", + "able", + "ice", + "minute", + "throw", + "catch", + "leg", + "ring", + "course", + "goodbye", + "lead", + "poem", + "sick", + "corner", + "desire", + "known", + "problem", + "remind", + "shoulder", + "suppose", + "toward", + "wave", + "drink", + "jump", + "woman", + "pretend", + "sister", + "week", + "human", + "joy", + "crack", + "grey", + "pray", + "surprise", + "dry", + "knee", + "less", + "search", + "bleed", + "caught", + "clean", + "embrace", + "future", + "king", + "son", + "sorrow", + "chest", + "hug", + "remain", + "sat", + "worth", + "blow", + "daddy", + "final", + "parent", + "tight", + "also", + "create", + "lonely", + "safe", + "cross", + "dress", + "evil", + "silent", + "bone", + "fate", + "perhaps", + "anger", + "class", + "scar", + "snow", + "tiny", + "tonight", + "continue", + "control", + "dog", + "edge", + "mirror", + "month", + "suddenly", + "comfort", + "given", + "loud", + "quickly", + "gaze", + "plan", + "rush", + "stone", + "town", + "battle", + "ignore", + "spirit", + "stood", + "stupid", + "yours", + "brown", + "build", + "dust", + "hey", + "kept", + "pay", + "phone", + "twist", + "although", + "ball", + "beyond", + "hidden", + "nose", + "taken", + "fail", + "float", + "pure", + "somehow", + "wash", + "wrap", + "angry", + "cheek", + "creature", + "forgotten", + "heat", + "rip", + "single", + "space", + "special", + "weak", + "whatever", + "yell", + "anyway", + "blame", + "job", + "choose", + "country", + "curse", + "drift", + "echo", + "figure", + "grew", + "laughter", + "neck", + "suffer", + "worse", + "yeah", + "disappear", + "foot", + "forward", + "knife", + "mess", + "somewhere", + "stomach", + "storm", + "beg", + "idea", + "lift", + "offer", + "breeze", + "field", + "five", + "often", + "simply", + "stuck", + "win", + "allow", + "confuse", + "enjoy", + "except", + "flower", + "seek", + "strength", + "calm", + "grin", + "gun", + "heavy", + "hill", + "large", + "ocean", + "shoe", + "sigh", + "straight", + "summer", + "tongue", + "accept", + "crazy", + "everyday", + "exist", + "grass", + "mistake", + "sent", + "shut", + "surround", + "table", + "ache", + "brain", + "destroy", + "heal", + "nature", + "shout", + "sign", + "stain", + "choice", + "doubt", + "glance", + "glow", + "mountain", + "queen", + "stranger", + "throat", + "tomorrow", + "city", + "either", + "fish", + "flame", + "rather", + "shape", + "spin", + "spread", + "ash", + "distance", + "finish", + "image", + "imagine", + "important", + "nobody", + "shatter", + "warmth", + "became", + "feed", + "flesh", + "funny", + "lust", + "shirt", + "trouble", + "yellow", + "attention", + "bare", + "bite", + "money", + "protect", + "amaze", + "appear", + "born", + "choke", + "completely", + "daughter", + "fresh", + "friendship", + "gentle", + "probably", + "six", + "deserve", + "expect", + "grab", + "middle", + "nightmare", + "river", + "thousand", + "weight", + "worst", + "wound", + "barely", + "bottle", + "cream", + "regret", + "relationship", + "stick", + "test", + "crush", + "endless", + "fault", + "itself", + "rule", + "spill", + "art", + "circle", + "join", + "kick", + "mask", + "master", + "passion", + "quick", + "raise", + "smooth", + "unless", + "wander", + "actually", + "broke", + "chair", + "deal", + "favorite", + "gift", + "note", + "number", + "sweat", + "box", + "chill", + "clothes", + "lady", + "mark", + "park", + "poor", + "sadness", + "tie", + "animal", + "belong", + "brush", + "consume", + "dawn", + "forest", + "innocent", + "pen", + "pride", + "stream", + "thick", + "clay", + "complete", + "count", + "draw", + "faith", + "press", + "silver", + "struggle", + "surface", + "taught", + "teach", + "wet", + "bless", + "chase", + "climb", + "enter", + "letter", + "melt", + "metal", + "movie", + "stretch", + "swing", + "vision", + "wife", + "beside", + "crash", + "forgot", + "guide", + "haunt", + "joke", + "knock", + "plant", + "pour", + "prove", + "reveal", + "steal", + "stuff", + "trip", + "wood", + "wrist", + "bother", + "bottom", + "crawl", + "crowd", + "fix", + "forgive", + "frown", + "grace", + "loose", + "lucky", + "party", + "release", + "surely", + "survive", + "teacher", + "gently", + "grip", + "speed", + "suicide", + "travel", + "treat", + "vein", + "written", + "cage", + "chain", + "conversation", + "date", + "enemy", + "however", + "interest", + "million", + "page", + "pink", + "proud", + "sway", + "themselves", + "winter", + "church", + "cruel", + "cup", + "demon", + "experience", + "freedom", + "pair", + "pop", + "purpose", + "respect", + "shoot", + "softly", + "state", + "strange", + "bar", + "birth", + "curl", + "dirt", + "excuse", + "lord", + "lovely", + "monster", + "order", + "pack", + "pants", + "pool", + "scene", + "seven", + "shame", + "slide", + "ugly", + "among", + "blade", + "blonde", + "closet", + "creek", + "deny", + "drug", + "eternity", + "gain", + "grade", + "handle", + "key", + "linger", + "pale", + "prepare", + "swallow", + "swim", + "tremble", + "wheel", + "won", + "cast", + "cigarette", + "claim", + "college", + "direction", + "dirty", + "gather", + "ghost", + "hundred", + "loss", + "lung", + "orange", + "present", + "swear", + "swirl", + "twice", + "wild", + "bitter", + "blanket", + "doctor", + "everywhere", + "flash", + "grown", + "knowledge", + "numb", + "pressure", + "radio", + "repeat", + "ruin", + "spend", + "unknown", + "buy", + "clock", + "devil", + "early", + "false", + "fantasy", + "pound", + "precious", + "refuse", + "sheet", + "teeth", + "welcome", + "add", + "ahead", + "block", + "bury", + "caress", + "content", + "depth", + "despite", + "distant", + "marry", + "purple", + "threw", + "whenever", + "bomb", + "dull", + "easily", + "grasp", + "hospital", + "innocence", + "normal", + "receive", + "reply", + "rhyme", + "shade", + "someday", + "sword", + "toe", + "visit", + "asleep", + "bought", + "center", + "consider", + "flat", + "hero", + "history", + "ink", + "insane", + "muscle", + "mystery", + "pocket", + "reflection", + "shove", + "silently", + "smart", + "soldier", + "spot", + "stress", + "train", + "type", + "view", + "whether", + "bus", + "energy", + "explain", + "holy", + "hunger", + "inch", + "magic", + "mix", + "noise", + "nowhere", + "prayer", + "presence", + "shock", + "snap", + "spider", + "study", + "thunder", + "trail", + "admit", + "agree", + "bag", + "bang", + "bound", + "butterfly", + "cute", + "exactly", + "explode", + "familiar", + "fold", + "further", + "pierce", + "reflect", + "scent", + "selfish", + "sharp", + "sink", + "spring", + "stumble", + "universe", + "weep", + "women", + "wonderful", + "action", + "ancient", + "attempt", + "avoid", + "birthday", + "branch", + "chocolate", + "core", + "depress", + "drunk", + "especially", + "focus", + "fruit", + "honest", + "match", + "palm", + "perfectly", + "pillow", + "pity", + "poison", + "roar", + "shift", + "slightly", + "thump", + "truck", + "tune", + "twenty", + "unable", + "wipe", + "wrote", + "coat", + "constant", + "dinner", + "drove", + "egg", + "eternal", + "flight", + "flood", + "frame", + "freak", + "gasp", + "glad", + "hollow", + "motion", + "peer", + "plastic", + "root", + "screen", + "season", + "sting", + "strike", + "team", + "unlike", + "victim", + "volume", + "warn", + "weird", + "attack", + "await", + "awake", + "built", + "charm", + "crave", + "despair", + "fought", + "grant", + "grief", + "horse", + "limit", + "message", + "ripple", + "sanity", + "scatter", + "serve", + "split", + "string", + "trick", + "annoy", + "blur", + "boat", + "brave", + "clearly", + "cling", + "connect", + "fist", + "forth", + "imagination", + "iron", + "jock", + "judge", + "lesson", + "milk", + "misery", + "nail", + "naked", + "ourselves", + "poet", + "possible", + "princess", + "sail", + "size", + "snake", + "society", + "stroke", + "torture", + "toss", + "trace", + "wise", + "bloom", + "bullet", + "cell", + "check", + "cost", + "darling", + "during", + "footstep", + "fragile", + "hallway", + "hardly", + "horizon", + "invisible", + "journey", + "midnight", + "mud", + "nod", + "pause", + "relax", + "shiver", + "sudden", + "value", + "youth", + "abuse", + "admire", + "blink", + "breast", + "bruise", + "constantly", + "couple", + "creep", + "curve", + "difference", + "dumb", + "emptiness", + "gotta", + "honor", + "plain", + "planet", + "recall", + "rub", + "ship", + "slam", + "soar", + "somebody", + "tightly", + "weather", + "adore", + "approach", + "bond", + "bread", + "burst", + "candle", + "coffee", + "cousin", + "crime", + "desert", + "flutter", + "frozen", + "grand", + "heel", + "hello", + "language", + "level", + "movement", + "pleasure", + "powerful", + "random", + "rhythm", + "settle", + "silly", + "slap", + "sort", + "spoken", + "steel", + "threaten", + "tumble", + "upset", + "aside", + "awkward", + "bee", + "blank", + "board", + "button", + "card", + "carefully", + "complain", + "crap", + "deeply", + "discover", + "drag", + "dread", + "effort", + "entire", + "fairy", + "giant", + "gotten", + "greet", + "illusion", + "jeans", + "leap", + "liquid", + "march", + "mend", + "nervous", + "nine", + "replace", + "rope", + "spine", + "stole", + "terror", + "accident", + "apple", + "balance", + "boom", + "childhood", + "collect", + "demand", + "depression", + "eventually", + "faint", + "glare", + "goal", + "group", + "honey", + "kitchen", + "laid", + "limb", + "machine", + "mere", + "mold", + "murder", + "nerve", + "painful", + "poetry", + "prince", + "rabbit", + "shelter", + "shore", + "shower", + "soothe", + "stair", + "steady", + "sunlight", + "tangle", + "tease", + "treasure", + "uncle", + "begun", + "bliss", + "canvas", + "cheer", + "claw", + "clutch", + "commit", + "crimson", + "crystal", + "delight", + "doll", + "existence", + "express", + "fog", + "football", + "gay", + "goose", + "guard", + "hatred", + "illuminate", + "mass", + "math", + "mourn", + "rich", + "rough", + "skip", + "stir", + "student", + "style", + "support", + "thorn", + "tough", + "yard", + "yearn", + "yesterday", + "advice", + "appreciate", + "autumn", + "bank", + "beam", + "bowl", + "capture", + "carve", + "collapse", + "confusion", + "creation", + "dove", + "feather", + "girlfriend", + "glory", + "government", + "harsh", + "hop", + "inner", + "loser", + "moonlight", + "neighbor", + "neither", + "peach", + "pig", + "praise", + "screw", + "shield", + "shimmer", + "sneak", + "stab", + "subject", + "throughout", + "thrown", + "tower", + "twirl", + "wow", + "army", + "arrive", + "bathroom", + "bump", + "cease", + "cookie", + "couch", + "courage", + "dim", + "guilt", + "howl", + "hum", + "husband", + "insult", + "led", + "lunch", + "mock", + "mostly", + "natural", + "nearly", + "needle", + "nerd", + "peaceful", + "perfection", + "pile", + "price", + "remove", + "roam", + "sanctuary", + "serious", + "shiny", + "shook", + "sob", + "stolen", + "tap", + "vain", + "void", + "warrior", + "wrinkle", + "affection", + "apologize", + "blossom", + "bounce", + "bridge", + "cheap", + "crumble", + "decision", + "descend", + "desperately", + "dig", + "dot", + "flip", + "frighten", + "heartbeat", + "huge", + "lazy", + "lick", + "odd", + "opinion", + "process", + "puzzle", + "quietly", + "retreat", + "score", + "sentence", + "separate", + "situation", + "skill", + "soak", + "square", + "stray", + "taint", + "task", + "tide", + "underneath", + "veil", + "whistle", + "anywhere", + "bedroom", + "bid", + "bloody", + "burden", + "careful", + "compare", + "concern", + "curtain", + "decay", + "defeat", + "describe", + "double", + "dreamer", + "driver", + "dwell", + "evening", + "flare", + "flicker", + "grandma", + "guitar", + "harm", + "horrible", + "hungry", + "indeed", + "lace", + "melody", + "monkey", + "nation", + "object", + "obviously", + "rainbow", + "salt", + "scratch", + "shown", + "shy", + "stage", + "stun", + "third", + "tickle", + "useless", + "weakness", + "worship", + "worthless", + "afternoon", + "beard", + "boyfriend", + "bubble", + "busy", + "certain", + "chin", + "concrete", + "desk", + "diamond", + "doom", + "drawn", + "due", + "felicity", + "freeze", + "frost", + "garden", + "glide", + "harmony", + "hopefully", + "hunt", + "jealous", + "lightning", + "mama", + "mercy", + "peel", + "physical", + "position", + "pulse", + "punch", + "quit", + "rant", + "respond", + "salty", + "sane", + "satisfy", + "savior", + "sheep", + "slept", + "social", + "sport", + "tuck", + "utter", + "valley", + "wolf", + "aim", + "alas", + "alter", + "arrow", + "awaken", + "beaten", + "belief", + "brand", + "ceiling", + "cheese", + "clue", + "confidence", + "connection", + "daily", + "disguise", + "eager", + "erase", + "essence", + "everytime", + "expression", + "fan", + "flag", + "flirt", + "foul", + "fur", + "giggle", + "glorious", + "ignorance", + "law", + "lifeless", + "measure", + "mighty", + "muse", + "north", + "opposite", + "paradise", + "patience", + "patient", + "pencil", + "petal", + "plate", + "ponder", + "possibly", + "practice", + "slice", + "spell", + "stock", + "strife", + "strip", + "suffocate", + "suit", + "tender", + "tool", + "trade", + "velvet", + "verse", + "waist", + "witch", + "aunt", + "bench", + "bold", + "cap", + "certainly", + "click", + "companion", + "creator", + "dart", + "delicate", + "determine", + "dish", + "dragon", + "drama", + "drum", + "dude", + "everybody", + "feast", + "forehead", + "former", + "fright", + "fully", + "gas", + "hook", + "hurl", + "invite", + "juice", + "manage", + "moral", + "possess", + "raw", + "rebel", + "royal", + "scale", + "scary", + "several", + "slight", + "stubborn", + "swell", + "talent", + "tea", + "terrible", + "thread", + "torment", + "trickle", + "usually", + "vast", + "violence", + "weave", + "acid", + "agony", + "ashamed", + "awe", + "belly", + "blend", + "blush", + "character", + "cheat", + "common", + "company", + "coward", + "creak", + "danger", + "deadly", + "defense", + "define", + "depend", + "desperate", + "destination", + "dew", + "duck", + "dusty", + "embarrass", + "engine", + "example", + "explore", + "foe", + "freely", + "frustrate", + "generation", + "glove", + "guilty", + "health", + "hurry", + "idiot", + "impossible", + "inhale", + "jaw", + "kingdom", + "mention", + "mist", + "moan", + "mumble", + "mutter", + "observe", + "ode", + "pathetic", + "pattern", + "pie", + "prefer", + "puff", + "rape", + "rare", + "revenge", + "rude", + "scrape", + "spiral", + "squeeze", + "strain", + "sunset", + "suspend", + "sympathy", + "thigh", + "throne", + "total", + "unseen", + "weapon", + "weary" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "OldEnglish"; + populate_maps(); } - else - { - trimmed_word_map[*it] = ii; - } - } - return trimmed_word_map; + }; } + +#endif diff --git a/src/mnemonics/portuguese.h b/src/mnemonics/portuguese.h index e83e297e1..6d0754fd3 100644 --- a/src/mnemonics/portuguese.h +++ b/src/mnemonics/portuguese.h @@ -1,1677 +1,1652 @@ +#ifndef PORTUGUESE_H +#define PORTUGUESE_H + #include #include +#include "language_base.h" +#include -std::vector& word_list_portuguese() +namespace Language { - static std::vector word_list( - "abaular", - "abdominal", - "abeto", - "abissinio", - "abjeto", - "ablucao", - "abnegar", - "abotoar", - "abrutalhar", - "absurdo", - "abutre", - "acautelar", - "accessorios", - "acetona", - "achocolatado", - "acirrar", - "acne", - "acovardar", - "acrostico", - "actinomicete", - "acustico", - "adaptavel", - "adeus", - "adivinho", - "adjunto", - "admoestar", - "adnominal", - "adotivo", - "adquirir", - "adriatico", - "adsorcao", - "adutora", - "advogar", - "aerossol", - "afazeres", - "afetuoso", - "afixo", - "afluir", - "afortunar", - "afrouxar", - "aftosa", - "afunilar", - "agentes", - "agito", - "aglutinar", - "aiatola", - "aimore", - "aino", - "aipo", - "airoso", - "ajeitar", - "ajoelhar", - "ajudante", - "ajuste", - "alazao", - "albumina", - "alcunha", - "alegria", - "alexandre", - "alforriar", - "alguns", - "alhures", - "alivio", - "almoxarife", - "alotropico", - "alpiste", - "alquimista", - "alsaciano", - "altura", - "aluviao", - "alvura", - "amazonico", - "ambulatorio", - "ametodico", - "amizades", - "amniotico", - "amovivel", - "amurada", - "anatomico", - "ancorar", - "anexo", - "anfora", - "aniversario", - "anjo", - "anotar", - "ansioso", - "anturio", - "anuviar", - "anverso", - "anzol", - "aonde", - "apaziguar", - "apito", - "aplicavel", - "apoteotico", - "aprimorar", - "aprumo", - "apto", - "apuros", - "aquoso", - "arauto", - "arbusto", - "arduo", - "aresta", - "arfar", - "arguto", - "aritmetico", - "arlequim", - "armisticio", - "aromatizar", - "arpoar", - "arquivo", - "arrumar", - "arsenio", - "arturiano", - "aruaque", - "arvores", - "asbesto", - "ascorbico", - "aspirina", - "asqueroso", - "assustar", - "astuto", - "atazanar", - "ativo", - "atletismo", - "atmosferico", - "atormentar", - "atroz", - "aturdir", - "audivel", - "auferir", - "augusto", - "aula", - "aumento", - "aurora", - "autuar", - "avatar", - "avexar", - "avizinhar", - "avolumar", - "avulso", - "axiomatico", - "azerbaijano", - "azimute", - "azoto", - "azulejo", - "bacteriologista", - "badulaque", - "baforada", - "baixote", - "bajular", - "balzaquiana", - "bambuzal", - "banzo", - "baoba", - "baqueta", - "barulho", - "bastonete", - "batuta", - "bauxita", - "bavaro", - "bazuca", - "bcrepuscular", - "beato", - "beduino", - "begonia", - "behaviorista", - "beisebol", - "belzebu", - "bemol", - "benzido", - "beocio", - "bequer", - "berro", - "besuntar", - "betume", - "bexiga", - "bezerro", - "biatlon", - "biboca", - "bicuspide", - "bidirecional", - "bienio", - "bifurcar", - "bigorna", - "bijuteria", - "bimotor", - "binormal", - "bioxido", - "bipolarizacao", - "biquini", - "birutice", - "bisturi", - "bituca", - "biunivoco", - "bivalve", - "bizarro", - "blasfemo", - "blenorreia", - "blindar", - "bloqueio", - "blusao", - "boazuda", - "bofete", - "bojudo", - "bolso", - "bombordo", - "bonzo", - "botina", - "boquiaberto", - "bostoniano", - "botulismo", - "bourbon", - "bovino", - "boximane", - "bravura", - "brevidade", - "britar", - "broxar", - "bruno", - "bruxuleio", - "bubonico", - "bucolico", - "buda", - "budista", - "bueiro", - "buffer", - "bugre", - "bujao", - "bumerangue", - "burundines", - "busto", - "butique", - "buzios", - "caatinga", - "cabuqui", - "cacunda", - "cafuzo", - "cajueiro", - "camurca", - "canudo", - "caquizeiro", - "carvoeiro", - "casulo", - "catuaba", - "cauterizar", - "cebolinha", - "cedula", - "ceifeiro", - "celulose", - "cerzir", - "cesto", - "cetro", - "ceus", - "cevar", - "chavena", - "cheroqui", - "chita", - "chovido", - "chuvoso", - "ciatico", - "cibernetico", - "cicuta", - "cidreira", - "cientistas", - "cifrar", - "cigarro", - "cilio", - "cimo", - "cinzento", - "cioso", - "cipriota", - "cirurgico", - "cisto", - "citrico", - "ciumento", - "civismo", - "clavicula", - "clero", - "clitoris", - "cluster", - "coaxial", - "cobrir", - "cocota", - "codorniz", - "coexistir", - "cogumelo", - "coito", - "colusao", - "compaixao", - "comutativo", - "contentamento", - "convulsivo", - "coordenativa", - "coquetel", - "correto", - "corvo", - "costureiro", - "cotovia", - "covil", - "cozinheiro", - "cretino", - "cristo", - "crivo", - "crotalo", - "cruzes", - "cubo", - "cucuia", - "cueiro", - "cuidar", - "cujo", - "cultural", - "cunilingua", - "cupula", - "curvo", - "custoso", - "cutucar", - "czarismo", - "dablio", - "dacota", - "dados", - "daguerreotipo", - "daiquiri", - "daltonismo", - "damista", - "dantesco", - "daquilo", - "darwinista", - "dasein", - "dativo", - "deao", - "debutantes", - "decurso", - "deduzir", - "defunto", - "degustar", - "dejeto", - "deltoide", - "demover", - "denunciar", - "deputado", - "deque", - "dervixe", - "desvirtuar", - "deturpar", - "deuteronomio", - "devoto", - "dextrose", - "dezoito", - "diatribe", - "dicotomico", - "didatico", - "dietista", - "difuso", - "digressao", - "diluvio", - "diminuto", - "dinheiro", - "dinossauro", - "dioxido", - "diplomatico", - "dique", - "dirimivel", - "disturbio", - "diurno", - "divulgar", - "dizivel", - "doar", - "dobro", - "docura", - "dodoi", - "doer", - "dogue", - "doloso", - "domo", - "donzela", - "doping", - "dorsal", - "dossie", - "dote", - "doutro", - "doze", - "dravidico", - "dreno", - "driver", - "dropes", - "druso", - "dubnio", - "ducto", - "dueto", - "dulija", - "dundum", - "duodeno", - "duquesa", - "durou", - "duvidoso", - "duzia", - "ebano", - "ebrio", - "eburneo", - "echarpe", - "eclusa", - "ecossistema", - "ectoplasma", - "ecumenismo", - "eczema", - "eden", - "editorial", - "edredom", - "edulcorar", - "efetuar", - "efigie", - "efluvio", - "egiptologo", - "egresso", - "egua", - "einsteiniano", - "eira", - "eivar", - "eixos", - "ejetar", - "elastomero", - "eldorado", - "elixir", - "elmo", - "eloquente", - "elucidativo", - "emaranhar", - "embutir", - "emerito", - "emfa", - "emitir", - "emotivo", - "empuxo", - "emulsao", - "enamorar", - "encurvar", - "enduro", - "enevoar", - "enfurnar", - "enguico", - "enho", - "enigmista", - "enlutar", - "enormidade", - "enpreendimento", - "enquanto", - "enriquecer", - "enrugar", - "entusiastico", - "enunciar", - "envolvimento", - "enxuto", - "enzimatico", - "eolico", - "epiteto", - "epoxi", - "epura", - "equivoco", - "erario", - "erbio", - "ereto", - "erguido", - "erisipela", - "ermo", - "erotizar", - "erros", - "erupcao", - "ervilha", - "esburacar", - "escutar", - "esfuziante", - "esguio", - "esloveno", - "esmurrar", - "esoterismo", - "esperanca", - "espirito", - "espurio", - "essencialmente", - "esturricar", - "esvoacar", - "etario", - "eterno", - "etiquetar", - "etnologo", - "etos", - "etrusco", - "euclidiano", - "euforico", - "eugenico", - "eunuco", - "europio", - "eustaquio", - "eutanasia", - "evasivo", - "eventualidade", - "evitavel", - "evoluir", - "exaustor", - "excursionista", - "exercito", - "exfoliado", - "exito", - "exotico", - "expurgo", - "exsudar", - "extrusora", - "exumar", - "fabuloso", - "facultativo", - "fado", - "fagulha", - "faixas", - "fajuto", - "faltoso", - "famoso", - "fanzine", - "fapesp", - "faquir", - "fartura", - "fastio", - "faturista", - "fausto", - "favorito", - "faxineira", - "fazer", - "fealdade", - "febril", - "fecundo", - "fedorento", - "feerico", - "feixe", - "felicidade", - "felipe", - "feltro", - "femur", - "fenotipo", - "fervura", - "festivo", - "feto", - "feudo", - "fevereiro", - "fezinha", - "fiasco", - "fibra", - "ficticio", - "fiduciario", - "fiesp", - "fifa", - "figurino", - "fijiano", - "filtro", - "finura", - "fiorde", - "fiquei", - "firula", - "fissurar", - "fitoteca", - "fivela", - "fixo", - "flavio", - "flexor", - "flibusteiro", - "flotilha", - "fluxograma", - "fobos", - "foco", - "fofura", - "foguista", - "foie", - "foliculo", - "fominha", - "fonte", - "forum", - "fosso", - "fotossintese", - "foxtrote", - "fraudulento", - "frevo", - "frivolo", - "frouxo", - "frutose", - "fuba", - "fucsia", - "fugitivo", - "fuinha", - "fujao", - "fulustreco", - "fumo", - "funileiro", - "furunculo", - "fustigar", - "futurologo", - "fuxico", - "fuzue", - "gabriel", - "gado", - "gaelico", - "gafieira", - "gaguejo", - "gaivota", - "gajo", - "galvanoplastico", - "gamo", - "ganso", - "garrucha", - "gastronomo", - "gatuno", - "gaussiano", - "gaviao", - "gaxeta", - "gazeteiro", - "gear", - "geiser", - "geminiano", - "generoso", - "genuino", - "geossinclinal", - "gerundio", - "gestual", - "getulista", - "gibi", - "gigolo", - "gilete", - "ginseng", - "giroscopio", - "glaucio", - "glacial", - "gleba", - "glifo", - "glote", - "glutonia", - "gnostico", - "goela", - "gogo", - "goitaca", - "golpista", - "gomo", - "gonzo", - "gorro", - "gostou", - "goticula", - "gourmet", - "governo", - "gozo", - "graxo", - "grevista", - "grito", - "grotesco", - "gruta", - "guaxinim", - "gude", - "gueto", - "guizo", - "guloso", - "gume", - "guru", - "gustativo", - "gustavo", - "gutural", - "habitue", - "haitiano", - "halterofilista", - "hamburguer", - "hanseniase", - "happening", - "harpista", - "hastear", - "haveres", - "hebreu", - "hectometro", - "hedonista", - "hegira", - "helena", - "helminto", - "hemorroidas", - "henrique", - "heptassilabo", - "hertziano", - "hesitar", - "heterossexual", - "heuristico", - "hexagono", - "hiato", - "hibrido", - "hidrostatico", - "hieroglifo", - "hifenizar", - "higienizar", - "hilario", - "himen", - "hino", - "hippie", - "hirsuto", - "historiografia", - "hitlerista", - "hodometro", - "hoje", - "holograma", - "homus", - "honroso", - "hoquei", - "horto", - "hostilizar", - "hotentote", - "huguenote", - "humilde", - "huno", - "hurra", - "hutu", - "iaia", - "ialorixa", - "iambico", - "iansa", - "iaque", - "iara", - "iatista", - "iberico", - "ibis", - "icar", - "iceberg", - "icosagono", - "idade", - "ideologo", - "idiotice", - "idoso", - "iemenita", - "iene", - "igarape", - "iglu", - "ignorar", - "igreja", - "iguaria", - "iidiche", - "ilativo", - "iletrado", - "ilharga", - "ilimitado", - "ilogismo", - "ilustrissimo", - "imaturo", - "imbuzeiro", - "imerso", - "imitavel", - "imovel", - "imputar", - "imutavel", - "inaveriguavel", - "incutir", - "induzir", - "inextricavel", - "infusao", - "ingua", - "inhame", - "iniquo", - "injusto", - "inning", - "inoxidavel", - "inquisitorial", - "insustentavel", - "intumescimento", - "inutilizavel", - "invulneravel", - "inzoneiro", - "iodo", - "iogurte", - "ioio", - "ionosfera", - "ioruba", - "iota", - "ipsilon", - "irascivel", - "iris", - "irlandes", - "irmaos", - "iroques", - "irrupcao", - "isca", - "isento", - "islandes", - "isotopo", - "isqueiro", - "israelita", - "isso", - "isto", - "iterbio", - "itinerario", - "itrio", - "iuane", - "iugoslavo", - "jabuticabeira", - "jacutinga", - "jade", - "jagunco", - "jainista", - "jaleco", - "jambo", - "jantarada", - "japones", - "jaqueta", - "jarro", - "jasmim", - "jato", - "jaula", - "javel", - "jazz", - "jegue", - "jeitoso", - "jejum", - "jenipapo", - "jeova", - "jequitiba", - "jersei", - "jesus", - "jetom", - "jiboia", - "jihad", - "jilo", - "jingle", - "jipe", - "jocoso", - "joelho", - "joguete", - "joio", - "jojoba", - "jorro", - "jota", - "joule", - "joviano", - "jubiloso", - "judoca", - "jugular", - "juizo", - "jujuba", - "juliano", - "jumento", - "junto", - "jururu", - "justo", - "juta", - "juventude", - "labutar", - "laguna", - "laico", - "lajota", - "lanterninha", - "lapso", - "laquear", - "lastro", - "lauto", - "lavrar", - "laxativo", - "lazer", - "leasing", - "lebre", - "lecionar", - "ledo", - "leguminoso", - "leitura", - "lele", - "lemure", - "lento", - "leonardo", - "leopardo", - "lepton", - "leque", - "leste", - "letreiro", - "leucocito", - "levitico", - "lexicologo", - "lhama", - "lhufas", - "liame", - "licoroso", - "lidocaina", - "liliputiano", - "limusine", - "linotipo", - "lipoproteina", - "liquidos", - "lirismo", - "lisura", - "liturgico", - "livros", - "lixo", - "lobulo", - "locutor", - "lodo", - "logro", - "lojista", - "lombriga", - "lontra", - "loop", - "loquaz", - "lorota", - "losango", - "lotus", - "louvor", - "luar", - "lubrificavel", - "lucros", - "lugubre", - "luis", - "luminoso", - "luneta", - "lustroso", - "luto", - "luvas", - "luxuriante", - "luzeiro", - "maduro", - "maestro", - "mafioso", - "magro", - "maiuscula", - "majoritario", - "malvisto", - "mamute", - "manutencao", - "mapoteca", - "maquinista", - "marzipa", - "masturbar", - "matuto", - "mausoleu", - "mavioso", - "maxixe", - "mazurca", - "meandro", - "mecha", - "medusa", - "mefistofelico", - "megera", - "meirinho", - "melro", - "memorizar", - "menu", - "mequetrefe", - "mertiolate", - "mestria", - "metroviario", - "mexilhao", - "mezanino", - "miau", - "microssegundo", - "midia", - "migratorio", - "mimosa", - "minuto", - "miosotis", - "mirtilo", - "misturar", - "mitzvah", - "miudos", - "mixuruca", - "mnemonico", - "moagem", - "mobilizar", - "modulo", - "moer", - "mofo", - "mogno", - "moita", - "molusco", - "monumento", - "moqueca", - "morubixaba", - "mostruario", - "motriz", - "mouse", - "movivel", - "mozarela", - "muarra", - "muculmano", - "mudo", - "mugir", - "muitos", - "mumunha", - "munir", - "muon", - "muquira", - "murros", - "musselina", - "nacoes", - "nado", - "naftalina", - "nago", - "naipe", - "naja", - "nalgum", - "namoro", - "nanquim", - "napolitano", - "naquilo", - "nascimento", - "nautilo", - "navios", - "nazista", - "nebuloso", - "nectarina", - "nefrologo", - "negus", - "nelore", - "nenufar", - "nepotismo", - "nervura", - "neste", - "netuno", - "neutron", - "nevoeiro", - "newtoniano", - "nexo", - "nhenhenhem", - "nhoque", - "nigeriano", - "niilista", - "ninho", - "niobio", - "niponico", - "niquelar", - "nirvana", - "nisto", - "nitroglicerina", - "nivoso", - "nobreza", - "nocivo", - "noel", - "nogueira", - "noivo", - "nojo", - "nominativo", - "nonuplo", - "noruegues", - "nostalgico", - "noturno", - "nouveau", - "nuanca", - "nublar", - "nucleotideo", - "nudista", - "nulo", - "numismatico", - "nunquinha", - "nupcias", - "nutritivo", - "nuvens", - "oasis", - "obcecar", - "obeso", - "obituario", - "objetos", - "oblongo", - "obnoxio", - "obrigatorio", - "obstruir", - "obtuso", - "obus", - "obvio", - "ocaso", - "occipital", - "oceanografo", - "ocioso", - "oclusivo", - "ocorrer", - "ocre", - "octogono", - "odalisca", - "odisseia", - "odorifico", - "oersted", - "oeste", - "ofertar", - "ofidio", - "oftalmologo", - "ogiva", - "ogum", - "oigale", - "oitavo", - "oitocentos", - "ojeriza", - "olaria", - "oleoso", - "olfato", - "olhos", - "oliveira", - "olmo", - "olor", - "olvidavel", - "ombudsman", - "omeleteira", - "omitir", - "omoplata", - "onanismo", - "ondular", - "oneroso", - "onomatopeico", - "ontologico", - "onus", - "onze", - "opalescente", - "opcional", - "operistico", - "opio", - "oposto", - "oprobrio", - "optometrista", - "opusculo", - "oratorio", - "orbital", - "orcar", - "orfao", - "orixa", - "orla", - "ornitologo", - "orquidea", - "ortorrombico", - "orvalho", - "osculo", - "osmotico", - "ossudo", - "ostrogodo", - "otario", - "otite", - "ouro", - "ousar", - "outubro", - "ouvir", - "ovario", - "overnight", - "oviparo", - "ovni", - "ovoviviparo", - "ovulo", - "oxala", - "oxente", - "oxiuro", - "oxossi", - "ozonizar", - "paciente", - "pactuar", - "padronizar", - "paete", - "pagodeiro", - "paixao", - "pajem", - "paludismo", - "pampas", - "panturrilha", - "papudo", - "paquistanes", - "pastoso", - "patua", - "paulo", - "pauzinhos", - "pavoroso", - "paxa", - "pazes", - "peao", - "pecuniario", - "pedunculo", - "pegaso", - "peixinho", - "pejorativo", - "pelvis", - "penuria", - "pequno", - "petunia", - "pezada", - "piauiense", - "pictorico", - "pierro", - "pigmeu", - "pijama", - "pilulas", - "pimpolho", - "pintura", - "piorar", - "pipocar", - "piqueteiro", - "pirulito", - "pistoleiro", - "pituitaria", - "pivotar", - "pixote", - "pizzaria", - "plistoceno", - "plotar", - "pluviometrico", - "pneumonico", - "poco", - "podridao", - "poetisa", - "pogrom", - "pois", - "polvorosa", - "pomposo", - "ponderado", - "pontudo", - "populoso", - "poquer", - "porvir", - "posudo", - "potro", - "pouso", - "povoar", - "prazo", - "prezar", - "privilegios", - "proximo", - "prussiano", - "pseudopode", - "psoriase", - "pterossauros", - "ptialina", - "ptolemaico", - "pudor", - "pueril", - "pufe", - "pugilista", - "puir", - "pujante", - "pulverizar", - "pumba", - "punk", - "purulento", - "pustula", - "putsch", - "puxe", - "quatrocentos", - "quetzal", - "quixotesco", - "quotizavel", - "rabujice", - "racista", - "radonio", - "rafia", - "ragu", - "rajado", - "ralo", - "rampeiro", - "ranzinza", - "raptor", - "raquitismo", - "raro", - "rasurar", - "ratoeira", - "ravioli", - "razoavel", - "reavivar", - "rebuscar", - "recusavel", - "reduzivel", - "reexposicao", - "refutavel", - "regurgitar", - "reivindicavel", - "rejuvenescimento", - "relva", - "remuneravel", - "renunciar", - "reorientar", - "repuxo", - "requisito", - "resumo", - "returno", - "reutilizar", - "revolvido", - "rezonear", - "riacho", - "ribossomo", - "ricota", - "ridiculo", - "rifle", - "rigoroso", - "rijo", - "rimel", - "rins", - "rios", - "riqueza", - "riquixa", - "rissole", - "ritualistico", - "rivalizar", - "rixa", - "robusto", - "rococo", - "rodoviario", - "roer", - "rogo", - "rojao", - "rolo", - "rompimento", - "ronronar", - "roqueiro", - "rorqual", - "rosto", - "rotundo", - "rouxinol", - "roxo", - "royal", - "ruas", - "rucula", - "rudimentos", - "ruela", - "rufo", - "rugoso", - "ruivo", - "rule", - "rumoroso", - "runico", - "ruptura", - "rural", - "rustico", - "rutilar", - "saariano", - "sabujo", - "sacudir", - "sadomasoquista", - "safra", - "sagui", - "sais", - "samurai", - "santuario", - "sapo", - "saquear", - "sartriano", - "saturno", - "saude", - "sauva", - "saveiro", - "saxofonista", - "sazonal", - "scherzo", - "script", - "seara", - "seborreia", - "secura", - "seduzir", - "sefardim", - "seguro", - "seja", - "selvas", - "sempre", - "senzala", - "sepultura", - "sequoia", - "sestercio", - "setuplo", - "seus", - "seviciar", - "sezonismo", - "shalom", - "siames", - "sibilante", - "sicrano", - "sidra", - "sifilitico", - "signos", - "silvo", - "simultaneo", - "sinusite", - "sionista", - "sirio", - "sisudo", - "situar", - "sivan", - "slide", - "slogan", - "soar", - "sobrio", - "socratico", - "sodomizar", - "soerguer", - "software", - "sogro", - "soja", - "solver", - "somente", - "sonso", - "sopro", - "soquete", - "sorveteiro", - "sossego", - "soturno", - "sousafone", - "sovinice", - "sozinho", - "suavizar", - "subverter", - "sucursal", - "sudoriparo", - "sufragio", - "sugestoes", - "suite", - "sujo", - "sultao", - "sumula", - "suntuoso", - "suor", - "supurar", - "suruba", - "susto", - "suturar", - "suvenir", - "tabuleta", - "taco", - "tadjique", - "tafeta", - "tagarelice", - "taitiano", - "talvez", - "tampouco", - "tanzaniano", - "taoista", - "tapume", - "taquion", - "tarugo", - "tascar", - "tatuar", - "tautologico", - "tavola", - "taxionomista", - "tchecoslovaco", - "teatrologo", - "tectonismo", - "tedioso", - "teflon", - "tegumento", - "teixo", - "telurio", - "temporas", - "tenue", - "teosofico", - "tepido", - "tequila", - "terrorista", - "testosterona", - "tetrico", - "teutonico", - "teve", - "texugo", - "tiara", - "tibia", - "tiete", - "tifoide", - "tigresa", - "tijolo", - "tilintar", - "timpano", - "tintureiro", - "tiquete", - "tiroteio", - "tisico", - "titulos", - "tive", - "toar", - "toboga", - "tofu", - "togoles", - "toicinho", - "tolueno", - "tomografo", - "tontura", - "toponimo", - "toquio", - "torvelinho", - "tostar", - "toto", - "touro", - "toxina", - "trazer", - "trezentos", - "trivialidade", - "trovoar", - "truta", - "tuaregue", - "tubular", - "tucano", - "tudo", - "tufo", - "tuiste", - "tulipa", - "tumultuoso", - "tunisino", - "tupiniquim", - "turvo", - "tutu", - "ucraniano", - "udenista", - "ufanista", - "ufologo", - "ugaritico", - "uiste", - "uivo", - "ulceroso", - "ulema", - "ultravioleta", - "umbilical", - "umero", - "umido", - "umlaut", - "unanimidade", - "unesco", - "ungulado", - "unheiro", - "univoco", - "untuoso", - "urano", - "urbano", - "urdir", - "uretra", - "urgente", - "urinol", - "urna", - "urologo", - "urro", - "ursulina", - "urtiga", - "urupe", - "usavel", - "usbeque", - "usei", - "usineiro", - "usurpar", - "utero", - "utilizar", - "utopico", - "uvular", - "uxoricidio", - "vacuo", - "vadio", - "vaguear", - "vaivem", - "valvula", - "vampiro", - "vantajoso", - "vaporoso", - "vaquinha", - "varziano", - "vasto", - "vaticinio", - "vaudeville", - "vazio", - "veado", - "vedico", - "veemente", - "vegetativo", - "veio", - "veja", - "veludo", - "venusiano", - "verdade", - "verve", - "vestuario", - "vetusto", - "vexatorio", - "vezes", - "viavel", - "vibratorio", - "victor", - "vicunha", - "vidros", - "vietnamita", - "vigoroso", - "vilipendiar", - "vime", - "vintem", - "violoncelo", - "viquingue", - "virus", - "visualizar", - "vituperio", - "viuvo", - "vivo", - "vizir", - "voar", - "vociferar", - "vodu", - "vogar", - "voile", - "volver", - "vomito", - "vontade", - "vortice", - "vosso", - "voto", - "vovozinha", - "voyeuse", - "vozes", - "vulva", - "vupt", - "western", - "xadrez", - "xale", - "xampu", - "xango", - "xarope", - "xaual", - "xavante", - "xaxim", - "xenonio", - "xepa", - "xerox", - "xicara", - "xifopago", - "xiita", - "xilogravura", - "xinxim", - "xistoso", - "xixi", - "xodo", - "xogum", - "xucro", - "zabumba", - "zagueiro", - "zambiano", - "zanzar", - "zarpar", - "zebu", - "zefiro", - "zeloso", - "zenite", - "zumbi" - - ); - return word_list; -} - -std::unordered_map& word_map_portuguese() -{ - static std::unordered_map word_map; - if (word_map.size() > 0) + class Portuguese: public Base { - return word_map; - } - std::vector word_list = word_list_portuguese(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - word_map[*it] = ii; - } - return word_map; -} - -std::unordered_map& trimmed_word_map_portuguese() -{ - static std::unordered_map trimmed_word_map; - if (trimmed_word_map.size() > 0) - { - return trimmed_word_map; - } - std::vector word_list = word_list_portuguese(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - if (it->length() > 4) + public: + Portuguese() { - trimmed_word_map[it->substr(0, 4)] = ii; + word_list = new std::vector({ + "abaular", + "abdominal", + "abeto", + "abissinio", + "abjeto", + "ablucao", + "abnegar", + "abotoar", + "abrutalhar", + "absurdo", + "abutre", + "acautelar", + "accessorios", + "acetona", + "achocolatado", + "acirrar", + "acne", + "acovardar", + "acrostico", + "actinomicete", + "acustico", + "adaptavel", + "adeus", + "adivinho", + "adjunto", + "admoestar", + "adnominal", + "adotivo", + "adquirir", + "adriatico", + "adsorcao", + "adutora", + "advogar", + "aerossol", + "afazeres", + "afetuoso", + "afixo", + "afluir", + "afortunar", + "afrouxar", + "aftosa", + "afunilar", + "agentes", + "agito", + "aglutinar", + "aiatola", + "aimore", + "aino", + "aipo", + "airoso", + "ajeitar", + "ajoelhar", + "ajudante", + "ajuste", + "alazao", + "albumina", + "alcunha", + "alegria", + "alexandre", + "alforriar", + "alguns", + "alhures", + "alivio", + "almoxarife", + "alotropico", + "alpiste", + "alquimista", + "alsaciano", + "altura", + "aluviao", + "alvura", + "amazonico", + "ambulatorio", + "ametodico", + "amizades", + "amniotico", + "amovivel", + "amurada", + "anatomico", + "ancorar", + "anexo", + "anfora", + "aniversario", + "anjo", + "anotar", + "ansioso", + "anturio", + "anuviar", + "anverso", + "anzol", + "aonde", + "apaziguar", + "apito", + "aplicavel", + "apoteotico", + "aprimorar", + "aprumo", + "apto", + "apuros", + "aquoso", + "arauto", + "arbusto", + "arduo", + "aresta", + "arfar", + "arguto", + "aritmetico", + "arlequim", + "armisticio", + "aromatizar", + "arpoar", + "arquivo", + "arrumar", + "arsenio", + "arturiano", + "aruaque", + "arvores", + "asbesto", + "ascorbico", + "aspirina", + "asqueroso", + "assustar", + "astuto", + "atazanar", + "ativo", + "atletismo", + "atmosferico", + "atormentar", + "atroz", + "aturdir", + "audivel", + "auferir", + "augusto", + "aula", + "aumento", + "aurora", + "autuar", + "avatar", + "avexar", + "avizinhar", + "avolumar", + "avulso", + "axiomatico", + "azerbaijano", + "azimute", + "azoto", + "azulejo", + "bacteriologista", + "badulaque", + "baforada", + "baixote", + "bajular", + "balzaquiana", + "bambuzal", + "banzo", + "baoba", + "baqueta", + "barulho", + "bastonete", + "batuta", + "bauxita", + "bavaro", + "bazuca", + "bcrepuscular", + "beato", + "beduino", + "begonia", + "behaviorista", + "beisebol", + "belzebu", + "bemol", + "benzido", + "beocio", + "bequer", + "berro", + "besuntar", + "betume", + "bexiga", + "bezerro", + "biatlon", + "biboca", + "bicuspide", + "bidirecional", + "bienio", + "bifurcar", + "bigorna", + "bijuteria", + "bimotor", + "binormal", + "bioxido", + "bipolarizacao", + "biquini", + "birutice", + "bisturi", + "bituca", + "biunivoco", + "bivalve", + "bizarro", + "blasfemo", + "blenorreia", + "blindar", + "bloqueio", + "blusao", + "boazuda", + "bofete", + "bojudo", + "bolso", + "bombordo", + "bonzo", + "botina", + "boquiaberto", + "bostoniano", + "botulismo", + "bourbon", + "bovino", + "boximane", + "bravura", + "brevidade", + "britar", + "broxar", + "bruno", + "bruxuleio", + "bubonico", + "bucolico", + "buda", + "budista", + "bueiro", + "buffer", + "bugre", + "bujao", + "bumerangue", + "burundines", + "busto", + "butique", + "buzios", + "caatinga", + "cabuqui", + "cacunda", + "cafuzo", + "cajueiro", + "camurca", + "canudo", + "caquizeiro", + "carvoeiro", + "casulo", + "catuaba", + "cauterizar", + "cebolinha", + "cedula", + "ceifeiro", + "celulose", + "cerzir", + "cesto", + "cetro", + "ceus", + "cevar", + "chavena", + "cheroqui", + "chita", + "chovido", + "chuvoso", + "ciatico", + "cibernetico", + "cicuta", + "cidreira", + "cientistas", + "cifrar", + "cigarro", + "cilio", + "cimo", + "cinzento", + "cioso", + "cipriota", + "cirurgico", + "cisto", + "citrico", + "ciumento", + "civismo", + "clavicula", + "clero", + "clitoris", + "cluster", + "coaxial", + "cobrir", + "cocota", + "codorniz", + "coexistir", + "cogumelo", + "coito", + "colusao", + "compaixao", + "comutativo", + "contentamento", + "convulsivo", + "coordenativa", + "coquetel", + "correto", + "corvo", + "costureiro", + "cotovia", + "covil", + "cozinheiro", + "cretino", + "cristo", + "crivo", + "crotalo", + "cruzes", + "cubo", + "cucuia", + "cueiro", + "cuidar", + "cujo", + "cultural", + "cunilingua", + "cupula", + "curvo", + "custoso", + "cutucar", + "czarismo", + "dablio", + "dacota", + "dados", + "daguerreotipo", + "daiquiri", + "daltonismo", + "damista", + "dantesco", + "daquilo", + "darwinista", + "dasein", + "dativo", + "deao", + "debutantes", + "decurso", + "deduzir", + "defunto", + "degustar", + "dejeto", + "deltoide", + "demover", + "denunciar", + "deputado", + "deque", + "dervixe", + "desvirtuar", + "deturpar", + "deuteronomio", + "devoto", + "dextrose", + "dezoito", + "diatribe", + "dicotomico", + "didatico", + "dietista", + "difuso", + "digressao", + "diluvio", + "diminuto", + "dinheiro", + "dinossauro", + "dioxido", + "diplomatico", + "dique", + "dirimivel", + "disturbio", + "diurno", + "divulgar", + "dizivel", + "doar", + "dobro", + "docura", + "dodoi", + "doer", + "dogue", + "doloso", + "domo", + "donzela", + "doping", + "dorsal", + "dossie", + "dote", + "doutro", + "doze", + "dravidico", + "dreno", + "driver", + "dropes", + "druso", + "dubnio", + "ducto", + "dueto", + "dulija", + "dundum", + "duodeno", + "duquesa", + "durou", + "duvidoso", + "duzia", + "ebano", + "ebrio", + "eburneo", + "echarpe", + "eclusa", + "ecossistema", + "ectoplasma", + "ecumenismo", + "eczema", + "eden", + "editorial", + "edredom", + "edulcorar", + "efetuar", + "efigie", + "efluvio", + "egiptologo", + "egresso", + "egua", + "einsteiniano", + "eira", + "eivar", + "eixos", + "ejetar", + "elastomero", + "eldorado", + "elixir", + "elmo", + "eloquente", + "elucidativo", + "emaranhar", + "embutir", + "emerito", + "emfa", + "emitir", + "emotivo", + "empuxo", + "emulsao", + "enamorar", + "encurvar", + "enduro", + "enevoar", + "enfurnar", + "enguico", + "enho", + "enigmista", + "enlutar", + "enormidade", + "enpreendimento", + "enquanto", + "enriquecer", + "enrugar", + "entusiastico", + "enunciar", + "envolvimento", + "enxuto", + "enzimatico", + "eolico", + "epiteto", + "epoxi", + "epura", + "equivoco", + "erario", + "erbio", + "ereto", + "erguido", + "erisipela", + "ermo", + "erotizar", + "erros", + "erupcao", + "ervilha", + "esburacar", + "escutar", + "esfuziante", + "esguio", + "esloveno", + "esmurrar", + "esoterismo", + "esperanca", + "espirito", + "espurio", + "essencialmente", + "esturricar", + "esvoacar", + "etario", + "eterno", + "etiquetar", + "etnologo", + "etos", + "etrusco", + "euclidiano", + "euforico", + "eugenico", + "eunuco", + "europio", + "eustaquio", + "eutanasia", + "evasivo", + "eventualidade", + "evitavel", + "evoluir", + "exaustor", + "excursionista", + "exercito", + "exfoliado", + "exito", + "exotico", + "expurgo", + "exsudar", + "extrusora", + "exumar", + "fabuloso", + "facultativo", + "fado", + "fagulha", + "faixas", + "fajuto", + "faltoso", + "famoso", + "fanzine", + "fapesp", + "faquir", + "fartura", + "fastio", + "faturista", + "fausto", + "favorito", + "faxineira", + "fazer", + "fealdade", + "febril", + "fecundo", + "fedorento", + "feerico", + "feixe", + "felicidade", + "felipe", + "feltro", + "femur", + "fenotipo", + "fervura", + "festivo", + "feto", + "feudo", + "fevereiro", + "fezinha", + "fiasco", + "fibra", + "ficticio", + "fiduciario", + "fiesp", + "fifa", + "figurino", + "fijiano", + "filtro", + "finura", + "fiorde", + "fiquei", + "firula", + "fissurar", + "fitoteca", + "fivela", + "fixo", + "flavio", + "flexor", + "flibusteiro", + "flotilha", + "fluxograma", + "fobos", + "foco", + "fofura", + "foguista", + "foie", + "foliculo", + "fominha", + "fonte", + "forum", + "fosso", + "fotossintese", + "foxtrote", + "fraudulento", + "frevo", + "frivolo", + "frouxo", + "frutose", + "fuba", + "fucsia", + "fugitivo", + "fuinha", + "fujao", + "fulustreco", + "fumo", + "funileiro", + "furunculo", + "fustigar", + "futurologo", + "fuxico", + "fuzue", + "gabriel", + "gado", + "gaelico", + "gafieira", + "gaguejo", + "gaivota", + "gajo", + "galvanoplastico", + "gamo", + "ganso", + "garrucha", + "gastronomo", + "gatuno", + "gaussiano", + "gaviao", + "gaxeta", + "gazeteiro", + "gear", + "geiser", + "geminiano", + "generoso", + "genuino", + "geossinclinal", + "gerundio", + "gestual", + "getulista", + "gibi", + "gigolo", + "gilete", + "ginseng", + "giroscopio", + "glaucio", + "glacial", + "gleba", + "glifo", + "glote", + "glutonia", + "gnostico", + "goela", + "gogo", + "goitaca", + "golpista", + "gomo", + "gonzo", + "gorro", + "gostou", + "goticula", + "gourmet", + "governo", + "gozo", + "graxo", + "grevista", + "grito", + "grotesco", + "gruta", + "guaxinim", + "gude", + "gueto", + "guizo", + "guloso", + "gume", + "guru", + "gustativo", + "gustavo", + "gutural", + "habitue", + "haitiano", + "halterofilista", + "hamburguer", + "hanseniase", + "happening", + "harpista", + "hastear", + "haveres", + "hebreu", + "hectometro", + "hedonista", + "hegira", + "helena", + "helminto", + "hemorroidas", + "henrique", + "heptassilabo", + "hertziano", + "hesitar", + "heterossexual", + "heuristico", + "hexagono", + "hiato", + "hibrido", + "hidrostatico", + "hieroglifo", + "hifenizar", + "higienizar", + "hilario", + "himen", + "hino", + "hippie", + "hirsuto", + "historiografia", + "hitlerista", + "hodometro", + "hoje", + "holograma", + "homus", + "honroso", + "hoquei", + "horto", + "hostilizar", + "hotentote", + "huguenote", + "humilde", + "huno", + "hurra", + "hutu", + "iaia", + "ialorixa", + "iambico", + "iansa", + "iaque", + "iara", + "iatista", + "iberico", + "ibis", + "icar", + "iceberg", + "icosagono", + "idade", + "ideologo", + "idiotice", + "idoso", + "iemenita", + "iene", + "igarape", + "iglu", + "ignorar", + "igreja", + "iguaria", + "iidiche", + "ilativo", + "iletrado", + "ilharga", + "ilimitado", + "ilogismo", + "ilustrissimo", + "imaturo", + "imbuzeiro", + "imerso", + "imitavel", + "imovel", + "imputar", + "imutavel", + "inaveriguavel", + "incutir", + "induzir", + "inextricavel", + "infusao", + "ingua", + "inhame", + "iniquo", + "injusto", + "inning", + "inoxidavel", + "inquisitorial", + "insustentavel", + "intumescimento", + "inutilizavel", + "invulneravel", + "inzoneiro", + "iodo", + "iogurte", + "ioio", + "ionosfera", + "ioruba", + "iota", + "ipsilon", + "irascivel", + "iris", + "irlandes", + "irmaos", + "iroques", + "irrupcao", + "isca", + "isento", + "islandes", + "isotopo", + "isqueiro", + "israelita", + "isso", + "isto", + "iterbio", + "itinerario", + "itrio", + "iuane", + "iugoslavo", + "jabuticabeira", + "jacutinga", + "jade", + "jagunco", + "jainista", + "jaleco", + "jambo", + "jantarada", + "japones", + "jaqueta", + "jarro", + "jasmim", + "jato", + "jaula", + "javel", + "jazz", + "jegue", + "jeitoso", + "jejum", + "jenipapo", + "jeova", + "jequitiba", + "jersei", + "jesus", + "jetom", + "jiboia", + "jihad", + "jilo", + "jingle", + "jipe", + "jocoso", + "joelho", + "joguete", + "joio", + "jojoba", + "jorro", + "jota", + "joule", + "joviano", + "jubiloso", + "judoca", + "jugular", + "juizo", + "jujuba", + "juliano", + "jumento", + "junto", + "jururu", + "justo", + "juta", + "juventude", + "labutar", + "laguna", + "laico", + "lajota", + "lanterninha", + "lapso", + "laquear", + "lastro", + "lauto", + "lavrar", + "laxativo", + "lazer", + "leasing", + "lebre", + "lecionar", + "ledo", + "leguminoso", + "leitura", + "lele", + "lemure", + "lento", + "leonardo", + "leopardo", + "lepton", + "leque", + "leste", + "letreiro", + "leucocito", + "levitico", + "lexicologo", + "lhama", + "lhufas", + "liame", + "licoroso", + "lidocaina", + "liliputiano", + "limusine", + "linotipo", + "lipoproteina", + "liquidos", + "lirismo", + "lisura", + "liturgico", + "livros", + "lixo", + "lobulo", + "locutor", + "lodo", + "logro", + "lojista", + "lombriga", + "lontra", + "loop", + "loquaz", + "lorota", + "losango", + "lotus", + "louvor", + "luar", + "lubrificavel", + "lucros", + "lugubre", + "luis", + "luminoso", + "luneta", + "lustroso", + "luto", + "luvas", + "luxuriante", + "luzeiro", + "maduro", + "maestro", + "mafioso", + "magro", + "maiuscula", + "majoritario", + "malvisto", + "mamute", + "manutencao", + "mapoteca", + "maquinista", + "marzipa", + "masturbar", + "matuto", + "mausoleu", + "mavioso", + "maxixe", + "mazurca", + "meandro", + "mecha", + "medusa", + "mefistofelico", + "megera", + "meirinho", + "melro", + "memorizar", + "menu", + "mequetrefe", + "mertiolate", + "mestria", + "metroviario", + "mexilhao", + "mezanino", + "miau", + "microssegundo", + "midia", + "migratorio", + "mimosa", + "minuto", + "miosotis", + "mirtilo", + "misturar", + "mitzvah", + "miudos", + "mixuruca", + "mnemonico", + "moagem", + "mobilizar", + "modulo", + "moer", + "mofo", + "mogno", + "moita", + "molusco", + "monumento", + "moqueca", + "morubixaba", + "mostruario", + "motriz", + "mouse", + "movivel", + "mozarela", + "muarra", + "muculmano", + "mudo", + "mugir", + "muitos", + "mumunha", + "munir", + "muon", + "muquira", + "murros", + "musselina", + "nacoes", + "nado", + "naftalina", + "nago", + "naipe", + "naja", + "nalgum", + "namoro", + "nanquim", + "napolitano", + "naquilo", + "nascimento", + "nautilo", + "navios", + "nazista", + "nebuloso", + "nectarina", + "nefrologo", + "negus", + "nelore", + "nenufar", + "nepotismo", + "nervura", + "neste", + "netuno", + "neutron", + "nevoeiro", + "newtoniano", + "nexo", + "nhenhenhem", + "nhoque", + "nigeriano", + "niilista", + "ninho", + "niobio", + "niponico", + "niquelar", + "nirvana", + "nisto", + "nitroglicerina", + "nivoso", + "nobreza", + "nocivo", + "noel", + "nogueira", + "noivo", + "nojo", + "nominativo", + "nonuplo", + "noruegues", + "nostalgico", + "noturno", + "nouveau", + "nuanca", + "nublar", + "nucleotideo", + "nudista", + "nulo", + "numismatico", + "nunquinha", + "nupcias", + "nutritivo", + "nuvens", + "oasis", + "obcecar", + "obeso", + "obituario", + "objetos", + "oblongo", + "obnoxio", + "obrigatorio", + "obstruir", + "obtuso", + "obus", + "obvio", + "ocaso", + "occipital", + "oceanografo", + "ocioso", + "oclusivo", + "ocorrer", + "ocre", + "octogono", + "odalisca", + "odisseia", + "odorifico", + "oersted", + "oeste", + "ofertar", + "ofidio", + "oftalmologo", + "ogiva", + "ogum", + "oigale", + "oitavo", + "oitocentos", + "ojeriza", + "olaria", + "oleoso", + "olfato", + "olhos", + "oliveira", + "olmo", + "olor", + "olvidavel", + "ombudsman", + "omeleteira", + "omitir", + "omoplata", + "onanismo", + "ondular", + "oneroso", + "onomatopeico", + "ontologico", + "onus", + "onze", + "opalescente", + "opcional", + "operistico", + "opio", + "oposto", + "oprobrio", + "optometrista", + "opusculo", + "oratorio", + "orbital", + "orcar", + "orfao", + "orixa", + "orla", + "ornitologo", + "orquidea", + "ortorrombico", + "orvalho", + "osculo", + "osmotico", + "ossudo", + "ostrogodo", + "otario", + "otite", + "ouro", + "ousar", + "outubro", + "ouvir", + "ovario", + "overnight", + "oviparo", + "ovni", + "ovoviviparo", + "ovulo", + "oxala", + "oxente", + "oxiuro", + "oxossi", + "ozonizar", + "paciente", + "pactuar", + "padronizar", + "paete", + "pagodeiro", + "paixao", + "pajem", + "paludismo", + "pampas", + "panturrilha", + "papudo", + "paquistanes", + "pastoso", + "patua", + "paulo", + "pauzinhos", + "pavoroso", + "paxa", + "pazes", + "peao", + "pecuniario", + "pedunculo", + "pegaso", + "peixinho", + "pejorativo", + "pelvis", + "penuria", + "pequno", + "petunia", + "pezada", + "piauiense", + "pictorico", + "pierro", + "pigmeu", + "pijama", + "pilulas", + "pimpolho", + "pintura", + "piorar", + "pipocar", + "piqueteiro", + "pirulito", + "pistoleiro", + "pituitaria", + "pivotar", + "pixote", + "pizzaria", + "plistoceno", + "plotar", + "pluviometrico", + "pneumonico", + "poco", + "podridao", + "poetisa", + "pogrom", + "pois", + "polvorosa", + "pomposo", + "ponderado", + "pontudo", + "populoso", + "poquer", + "porvir", + "posudo", + "potro", + "pouso", + "povoar", + "prazo", + "prezar", + "privilegios", + "proximo", + "prussiano", + "pseudopode", + "psoriase", + "pterossauros", + "ptialina", + "ptolemaico", + "pudor", + "pueril", + "pufe", + "pugilista", + "puir", + "pujante", + "pulverizar", + "pumba", + "punk", + "purulento", + "pustula", + "putsch", + "puxe", + "quatrocentos", + "quetzal", + "quixotesco", + "quotizavel", + "rabujice", + "racista", + "radonio", + "rafia", + "ragu", + "rajado", + "ralo", + "rampeiro", + "ranzinza", + "raptor", + "raquitismo", + "raro", + "rasurar", + "ratoeira", + "ravioli", + "razoavel", + "reavivar", + "rebuscar", + "recusavel", + "reduzivel", + "reexposicao", + "refutavel", + "regurgitar", + "reivindicavel", + "rejuvenescimento", + "relva", + "remuneravel", + "renunciar", + "reorientar", + "repuxo", + "requisito", + "resumo", + "returno", + "reutilizar", + "revolvido", + "rezonear", + "riacho", + "ribossomo", + "ricota", + "ridiculo", + "rifle", + "rigoroso", + "rijo", + "rimel", + "rins", + "rios", + "riqueza", + "riquixa", + "rissole", + "ritualistico", + "rivalizar", + "rixa", + "robusto", + "rococo", + "rodoviario", + "roer", + "rogo", + "rojao", + "rolo", + "rompimento", + "ronronar", + "roqueiro", + "rorqual", + "rosto", + "rotundo", + "rouxinol", + "roxo", + "royal", + "ruas", + "rucula", + "rudimentos", + "ruela", + "rufo", + "rugoso", + "ruivo", + "rule", + "rumoroso", + "runico", + "ruptura", + "rural", + "rustico", + "rutilar", + "saariano", + "sabujo", + "sacudir", + "sadomasoquista", + "safra", + "sagui", + "sais", + "samurai", + "santuario", + "sapo", + "saquear", + "sartriano", + "saturno", + "saude", + "sauva", + "saveiro", + "saxofonista", + "sazonal", + "scherzo", + "script", + "seara", + "seborreia", + "secura", + "seduzir", + "sefardim", + "seguro", + "seja", + "selvas", + "sempre", + "senzala", + "sepultura", + "sequoia", + "sestercio", + "setuplo", + "seus", + "seviciar", + "sezonismo", + "shalom", + "siames", + "sibilante", + "sicrano", + "sidra", + "sifilitico", + "signos", + "silvo", + "simultaneo", + "sinusite", + "sionista", + "sirio", + "sisudo", + "situar", + "sivan", + "slide", + "slogan", + "soar", + "sobrio", + "socratico", + "sodomizar", + "soerguer", + "software", + "sogro", + "soja", + "solver", + "somente", + "sonso", + "sopro", + "soquete", + "sorveteiro", + "sossego", + "soturno", + "sousafone", + "sovinice", + "sozinho", + "suavizar", + "subverter", + "sucursal", + "sudoriparo", + "sufragio", + "sugestoes", + "suite", + "sujo", + "sultao", + "sumula", + "suntuoso", + "suor", + "supurar", + "suruba", + "susto", + "suturar", + "suvenir", + "tabuleta", + "taco", + "tadjique", + "tafeta", + "tagarelice", + "taitiano", + "talvez", + "tampouco", + "tanzaniano", + "taoista", + "tapume", + "taquion", + "tarugo", + "tascar", + "tatuar", + "tautologico", + "tavola", + "taxionomista", + "tchecoslovaco", + "teatrologo", + "tectonismo", + "tedioso", + "teflon", + "tegumento", + "teixo", + "telurio", + "temporas", + "tenue", + "teosofico", + "tepido", + "tequila", + "terrorista", + "testosterona", + "tetrico", + "teutonico", + "teve", + "texugo", + "tiara", + "tibia", + "tiete", + "tifoide", + "tigresa", + "tijolo", + "tilintar", + "timpano", + "tintureiro", + "tiquete", + "tiroteio", + "tisico", + "titulos", + "tive", + "toar", + "toboga", + "tofu", + "togoles", + "toicinho", + "tolueno", + "tomografo", + "tontura", + "toponimo", + "toquio", + "torvelinho", + "tostar", + "toto", + "touro", + "toxina", + "trazer", + "trezentos", + "trivialidade", + "trovoar", + "truta", + "tuaregue", + "tubular", + "tucano", + "tudo", + "tufo", + "tuiste", + "tulipa", + "tumultuoso", + "tunisino", + "tupiniquim", + "turvo", + "tutu", + "ucraniano", + "udenista", + "ufanista", + "ufologo", + "ugaritico", + "uiste", + "uivo", + "ulceroso", + "ulema", + "ultravioleta", + "umbilical", + "umero", + "umido", + "umlaut", + "unanimidade", + "unesco", + "ungulado", + "unheiro", + "univoco", + "untuoso", + "urano", + "urbano", + "urdir", + "uretra", + "urgente", + "urinol", + "urna", + "urologo", + "urro", + "ursulina", + "urtiga", + "urupe", + "usavel", + "usbeque", + "usei", + "usineiro", + "usurpar", + "utero", + "utilizar", + "utopico", + "uvular", + "uxoricidio", + "vacuo", + "vadio", + "vaguear", + "vaivem", + "valvula", + "vampiro", + "vantajoso", + "vaporoso", + "vaquinha", + "varziano", + "vasto", + "vaticinio", + "vaudeville", + "vazio", + "veado", + "vedico", + "veemente", + "vegetativo", + "veio", + "veja", + "veludo", + "venusiano", + "verdade", + "verve", + "vestuario", + "vetusto", + "vexatorio", + "vezes", + "viavel", + "vibratorio", + "victor", + "vicunha", + "vidros", + "vietnamita", + "vigoroso", + "vilipendiar", + "vime", + "vintem", + "violoncelo", + "viquingue", + "virus", + "visualizar", + "vituperio", + "viuvo", + "vivo", + "vizir", + "voar", + "vociferar", + "vodu", + "vogar", + "voile", + "volver", + "vomito", + "vontade", + "vortice", + "vosso", + "voto", + "vovozinha", + "voyeuse", + "vozes", + "vulva", + "vupt", + "western", + "xadrez", + "xale", + "xampu", + "xango", + "xarope", + "xaual", + "xavante", + "xaxim", + "xenonio", + "xepa", + "xerox", + "xicara", + "xifopago", + "xiita", + "xilogravura", + "xinxim", + "xistoso", + "xixi", + "xodo", + "xogum", + "xucro", + "zabumba", + "zagueiro", + "zambiano", + "zanzar", + "zarpar", + "zebu", + "zefiro", + "zeloso", + "zenite", + "zumbi" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Portuguese"; + populate_maps(); } - else - { - trimmed_word_map[*it] = ii; - } - } - return trimmed_word_map; + }; } + +#endif diff --git a/src/mnemonics/singleton.h b/src/mnemonics/singleton.h new file mode 100644 index 000000000..0cefba923 --- /dev/null +++ b/src/mnemonics/singleton.h @@ -0,0 +1,16 @@ +namespace Language +{ + template + class Singleton + { + Singleton() {} + Singleton(Singleton &s) {} + Singleton& operator=(const Singleton&) {} + public: + static T* instance() + { + static T* obj = new T; + return obj; + } + }; +} diff --git a/src/mnemonics/spanish.h b/src/mnemonics/spanish.h index d8778955b..a735fc858 100644 --- a/src/mnemonics/spanish.h +++ b/src/mnemonics/spanish.h @@ -1,2098 +1,2074 @@ +#ifndef SPANISH_H +#define SPANISH_H + #include #include +#include "language_base.h" +#include -std::vector& word_list_spanish() +namespace Language { - static std::vector word_list( - "ábaco", - "abdomen", - "abeja", - "abierto", - "abogado", - "abono", - "aborto", - "abrazo", - "abrir", - "abuelo", - "abuso", - "acabar", - "academia", - "acceso", - "acción", - "aceite", - "acelga", - "acento", - "aceptar", - "ácido", - "aclarar", - "acné", - "acoger", - "acoso", - "activo", - "acto", - "actriz", - "actuar", - "acudir", - "acuerdo", - "acusar", - "adicto", - "admitir", - "adoptar", - "adorno", - "aduana", - "adulto", - "aéreo", - "afectar", - "afición", - "afinar", - "afirmar", - "ágil", - "agitar", - "agonía", - "agosto", - "agotar", - "agregar", - "agrio", - "agua", - "agudo", - "águila", - "aguja", - "ahogo", - "ahorro", - "aire", - "aislar", - "ajedrez", - "ajeno", - "ajuste", - "alacrán", - "alambre", - "alarma", - "alba", - "álbum", - "alcalde", - "aldea", - "alegre", - "alejar", - "alerta", - "aleta", - "alfiler", - "alga", - "algodón", - "aliado", - "aliento", - "alivio", - "alma", - "almeja", - "almíbar", - "altar", - "alteza", - "altivo", - "alto", - "altura", - "alumno", - "alzar", - "amable", - "amante", - "amapola", - "amargo", - "amasar", - "ámbar", - "ámbito", - "ameno", - "amigo", - "amistad", - "amor", - "amparo", - "amplio", - "ancho", - "anciano", - "ancla", - "andar", - "andén", - "anemia", - "ángulo", - "anillo", - "ánimo", - "anís", - "anotar", - "antena", - "antiguo", - "antojo", - "anual", - "anular", - "anuncio", - "añadir", - "añejo", - "año", - "apagar", - "aparato", - "apetito", - "apio", - "aplicar", - "apodo", - "aporte", - "apoyo", - "aprender", - "aprobar", - "apuesta", - "apuro", - "arado", - "araña", - "arar", - "árbitro", - "árbol", - "arbusto", - "archivo", - "arco", - "arder", - "ardilla", - "arduo", - "área", - "árido", - "aries", - "armonía", - "arnés", - "aroma", - "arpa", - "arpón", - "arreglo", - "arroz", - "arruga", - "arte", - "artista", - "asa", - "asado", - "asalto", - "ascenso", - "asegurar", - "aseo", - "asesor", - "asiento", - "asilo", - "asistir", - "asno", - "asombro", - "áspero", - "astilla", - "astro", - "astuto", - "asumir", - "asunto", - "atajo", - "ataque", - "atar", - "atento", - "ateo", - "ático", - "atleta", - "átomo", - "atraer", - "atroz", - "atún", - "audaz", - "audio", - "auge", - "aula", - "aumento", - "ausente", - "autor", - "aval", - "avance", - "avaro", - "ave", - "avellana", - "avena", - "avestruz", - "avión", - "aviso", - "ayer", - "ayuda", - "ayuno", - "azafrán", - "azar", - "azote", - "azúcar", - "azufre", - "azul", - "baba", - "babor", - "bache", - "bahía", - "baile", - "bajar", - "balanza", - "balcón", - "balde", - "bambú", - "banco", - "banda", - "baño", - "barba", - "barco", - "barniz", - "barro", - "báscula", - "bastón", - "basura", - "batalla", - "batería", - "batir", - "batuta", - "baúl", - "bazar", - "bebé", - "bebida", - "bello", - "besar", - "beso", - "bestia", - "bicho", - "bien", - "bingo", - "blanco", - "bloque", - "blusa", - "boa", - "bobina", - "bobo", - "boca", - "bocina", - "boda", - "bodega", - "boina", - "bola", - "bolero", - "bolsa", - "bomba", - "bondad", - "bonito", - "bono", - "bonsái", - "borde", - "borrar", - "bosque", - "bote", - "botín", - "bóveda", - "bozal", - "bravo", - "brazo", - "brecha", - "breve", - "brillo", - "brinco", - "brisa", - "broca", - "broma", - "bronce", - "brote", - "bruja", - "brusco", - "bruto", - "buceo", - "bucle", - "bueno", - "buey", - "bufanda", - "bufón", - "búho", - "buitre", - "bulto", - "burbuja", - "burla", - "burro", - "buscar", - "butaca", - "buzón", - "caballo", - "cabeza", - "cabina", - "cabra", - "cacao", - "cadáver", - "cadena", - "caer", - "café", - "caída", - "caimán", - "caja", - "cajón", - "cal", - "calamar", - "calcio", - "caldo", - "calidad", - "calle", - "calma", - "calor", - "calvo", - "cama", - "cambio", - "camello", - "camino", - "campo", - "cáncer", - "candil", - "canela", - "canguro", - "canica", - "canto", - "caña", - "cañón", - "caoba", - "caos", - "capaz", - "capitán", - "capote", - "captar", - "capucha", - "cara", - "carbón", - "cárcel", - "careta", - "carga", - "cariño", - "carne", - "carpeta", - "carro", - "carta", - "casa", - "casco", - "casero", - "caspa", - "castor", - "catorce", - "catre", - "caudal", - "causa", - "cazo", - "cebolla", - "ceder", - "cedro", - "celda", - "célebre", - "celoso", - "célula", - "cemento", - "ceniza", - "centro", - "cerca", - "cerdo", - "cereza", - "cero", - "cerrar", - "certeza", - "césped", - "cetro", - "chacal", - "chaleco", - "champú", - "chancla", - "chapa", - "charla", - "chico", - "chiste", - "chivo", - "choque", - "choza", - "chuleta", - "chupar", - "ciclón", - "ciego", - "cielo", - "cien", - "cierto", - "cifra", - "cigarro", - "cima", - "cinco", - "cine", - "cinta", - "ciprés", - "circo", - "ciruela", - "cisne", - "cita", - "ciudad", - "clamor", - "clan", - "claro", - "clase", - "clave", - "cliente", - "clima", - "clínica", - "cobre", - "cocción", - "cochino", - "cocina", - "coco", - "código", - "codo", - "cofre", - "coger", - "cohete", - "cojín", - "cojo", - "cola", - "colcha", - "colegio", - "colgar", - "colina", - "collar", - "colmo", - "columna", - "combate", - "comer", - "comida", - "cómodo", - "compra", - "conde", - "conejo", - "conga", - "conocer", - "consejo", - "contar", - "copa", - "copia", - "corazón", - "corbata", - "corcho", - "cordón", - "corona", - "correr", - "coser", - "cosmos", - "costa", - "cráneo", - "cráter", - "crear", - "crecer", - "creído", - "crema", - "cría", - "crimen", - "cripta", - "crisis", - "cromo", - "crónica", - "croqueta", - "crudo", - "cruz", - "cuadro", - "cuarto", - "cuatro", - "cubo", - "cubrir", - "cuchara", - "cuello", - "cuento", - "cuerda", - "cuesta", - "cueva", - "cuidar", - "culebra", - "culpa", - "culto", - "cumbre", - "cumplir", - "cuna", - "cuneta", - "cuota", - "cupón", - "cúpula", - "curar", - "curioso", - "curso", - "curva", - "cutis", - "dama", - "danza", - "dar", - "dardo", - "dátil", - "deber", - "débil", - "década", - "decir", - "dedo", - "defensa", - "definir", - "dejar", - "delfín", - "delgado", - "delito", - "demora", - "denso", - "dental", - "deporte", - "derecho", - "derrota", - "desayuno", - "deseo", - "desfile", - "desnudo", - "destino", - "desvío", - "detalle", - "detener", - "deuda", - "día", - "diablo", - "diadema", - "diamante", - "diana", - "diario", - "dibujo", - "dictar", - "diente", - "dieta", - "diez", - "difícil", - "digno", - "dilema", - "diluir", - "dinero", - "directo", - "dirigir", - "disco", - "diseño", - "disfraz", - "diva", - "divino", - "doble", - "doce", - "dolor", - "domingo", - "don", - "donar", - "dorado", - "dormir", - "dorso", - "dos", - "dosis", - "dragón", - "droga", - "ducha", - "duda", - "duelo", - "dueño", - "dulce", - "dúo", - "duque", - "durar", - "dureza", - "duro", - "ébano", - "ebrio", - "echar", - "eco", - "ecuador", - "edad", - "edición", - "edificio", - "editor", - "educar", - "efecto", - "eficaz", - "eje", - "ejemplo", - "elefante", - "elegir", - "elemento", - "elevar", - "elipse", - "élite", - "elixir", - "elogio", - "eludir", - "embudo", - "emitir", - "emoción", - "empate", - "empeño", - "empleo", - "empresa", - "enano", - "encargo", - "enchufe", - "encía", - "enemigo", - "enero", - "enfado", - "enfermo", - "engaño", - "enigma", - "enlace", - "enorme", - "enredo", - "ensayo", - "enseñar", - "entero", - "entrar", - "envase", - "envío", - "época", - "equipo", - "erizo", - "escala", - "escena", - "escolar", - "escribir", - "escudo", - "esencia", - "esfera", - "esfuerzo", - "espada", - "espejo", - "espía", - "esposa", - "espuma", - "esquí", - "estar", - "este", - "estilo", - "estufa", - "etapa", - "eterno", - "ética", - "etnia", - "evadir", - "evaluar", - "evento", - "evitar", - "exacto", - "examen", - "exceso", - "excusa", - "exento", - "exigir", - "exilio", - "existir", - "éxito", - "experto", - "explicar", - "exponer", - "extremo", - "fábrica", - "fábula", - "fachada", - "fácil", - "factor", - "faena", - "faja", - "falda", - "fallo", - "falso", - "faltar", - "fama", - "familia", - "famoso", - "faraón", - "farmacia", - "farol", - "farsa", - "fase", - "fatiga", - "fauna", - "favor", - "fax", - "febrero", - "fecha", - "feliz", - "feo", - "feria", - "feroz", - "fértil", - "fervor", - "festín", - "fiable", - "fianza", - "fiar", - "fibra", - "ficción", - "ficha", - "fideo", - "fiebre", - "fiel", - "fiera", - "fiesta", - "figura", - "fijar", - "fijo", - "fila", - "filete", - "filial", - "filtro", - "fin", - "finca", - "fingir", - "finito", - "firma", - "flaco", - "flauta", - "flecha", - "flor", - "flota", - "fluir", - "flujo", - "flúor", - "fobia", - "foca", - "fogata", - "fogón", - "folio", - "folleto", - "fondo", - "forma", - "forro", - "fortuna", - "forzar", - "fosa", - "foto", - "fracaso", - "frágil", - "franja", - "frase", - "fraude", - "freír", - "freno", - "fresa", - "frío", - "frito", - "fruta", - "fuego", - "fuente", - "fuerza", - "fuga", - "fumar", - "función", - "funda", - "furgón", - "furia", - "fusil", - "fútbol", - "futuro", - "gacela", - "gafas", - "gaita", - "gajo", - "gala", - "galería", - "gallo", - "gamba", - "ganar", - "gancho", - "ganga", - "ganso", - "garaje", - "garza", - "gasolina", - "gastar", - "gato", - "gavilán", - "gemelo", - "gemir", - "gen", - "género", - "genio", - "gente", - "geranio", - "gerente", - "germen", - "gesto", - "gigante", - "gimnasio", - "girar", - "giro", - "glaciar", - "globo", - "gloria", - "gol", - "golfo", - "goloso", - "golpe", - "goma", - "gordo", - "gorila", - "gorra", - "gota", - "goteo", - "gozar", - "grada", - "gráfico", - "grano", - "grasa", - "gratis", - "grave", - "grieta", - "grillo", - "gripe", - "gris", - "grito", - "grosor", - "grúa", - "grueso", - "grumo", - "grupo", - "guante", - "guapo", - "guardia", - "guerra", - "guía", - "guiño", - "guion", - "guiso", - "guitarra", - "gusano", - "gustar", - "haber", - "hábil", - "hablar", - "hacer", - "hacha", - "hada", - "hallar", - "hamaca", - "harina", - "haz", - "hazaña", - "hebilla", - "hebra", - "hecho", - "helado", - "helio", - "hembra", - "herir", - "hermano", - "héroe", - "hervir", - "hielo", - "hierro", - "hígado", - "higiene", - "hijo", - "himno", - "historia", - "hocico", - "hogar", - "hoguera", - "hoja", - "hombre", - "hongo", - "honor", - "honra", - "hora", - "hormiga", - "horno", - "hostil", - "hoyo", - "hueco", - "huelga", - "huerta", - "hueso", - "huevo", - "huida", - "huir", - "humano", - "húmedo", - "humilde", - "humo", - "hundir", - "huracán", - "hurto", - "icono", - "ideal", - "idioma", - "ídolo", - "iglesia", - "iglú", - "igual", - "ilegal", - "ilusión", - "imagen", - "imán", - "imitar", - "impar", - "imperio", - "imponer", - "impulso", - "incapaz", - "índice", - "inerte", - "infiel", - "informe", - "ingenio", - "inicio", - "inmenso", - "inmune", - "innato", - "insecto", - "instante", - "interés", - "íntimo", - "intuir", - "inútil", - "invierno", - "ira", - "iris", - "ironía", - "isla", - "islote", - "jabalí", - "jabón", - "jamón", - "jarabe", - "jardín", - "jarra", - "jaula", - "jazmín", - "jefe", - "jeringa", - "jinete", - "jornada", - "joroba", - "joven", - "joya", - "juerga", - "jueves", - "juez", - "jugador", - "jugo", - "juguete", - "juicio", - "junco", - "jungla", - "junio", - "juntar", - "júpiter", - "jurar", - "justo", - "juvenil", - "juzgar", - "kilo", - "koala", - "labio", - "lacio", - "lacra", - "lado", - "ladrón", - "lagarto", - "lágrima", - "laguna", - "laico", - "lamer", - "lámina", - "lámpara", - "lana", - "lancha", - "langosta", - "lanza", - "lápiz", - "largo", - "larva", - "lástima", - "lata", - "látex", - "latir", - "laurel", - "lavar", - "lazo", - "leal", - "lección", - "leche", - "lector", - "leer", - "legión", - "legumbre", - "lejano", - "lengua", - "lento", - "leña", - "león", - "leopardo", - "lesión", - "letal", - "letra", - "leve", - "leyenda", - "libertad", - "libro", - "licor", - "líder", - "lidiar", - "lienzo", - "liga", - "ligero", - "lima", - "límite", - "limón", - "limpio", - "lince", - "lindo", - "línea", - "lingote", - "lino", - "linterna", - "líquido", - "liso", - "lista", - "litera", - "litio", - "litro", - "llaga", - "llama", - "llanto", - "llave", - "llegar", - "llenar", - "llevar", - "llorar", - "llover", - "lluvia", - "lobo", - "loción", - "loco", - "locura", - "lógica", - "logro", - "lombriz", - "lomo", - "lonja", - "lote", - "lucha", - "lucir", - "lugar", - "lujo", - "luna", - "lunes", - "lupa", - "lustro", - "luto", - "luz", - "maceta", - "macho", - "madera", - "madre", - "maduro", - "maestro", - "mafia", - "magia", - "mago", - "maíz", - "maldad", - "maleta", - "malla", - "malo", - "mamá", - "mambo", - "mamut", - "manco", - "mando", - "manejar", - "manga", - "maniquí", - "manjar", - "mano", - "manso", - "manta", - "mañana", - "mapa", - "máquina", - "mar", - "marco", - "marea", - "marfil", - "margen", - "marido", - "mármol", - "marrón", - "martes", - "marzo", - "masa", - "máscara", - "masivo", - "matar", - "materia", - "matiz", - "matriz", - "máximo", - "mayor", - "mazorca", - "mecha", - "medalla", - "medio", - "médula", - "mejilla", - "mejor", - "melena", - "melón", - "memoria", - "menor", - "mensaje", - "mente", - "menú", - "mercado", - "merengue", - "mérito", - "mes", - "mesón", - "meta", - "meter", - "método", - "metro", - "mezcla", - "miedo", - "miel", - "miembro", - "miga", - "mil", - "milagro", - "militar", - "millón", - "mimo", - "mina", - "minero", - "mínimo", - "minuto", - "miope", - "mirar", - "misa", - "miseria", - "misil", - "mismo", - "mitad", - "mito", - "mochila", - "moción", - "moda", - "modelo", - "moho", - "mojar", - "molde", - "moler", - "molino", - "momento", - "momia", - "monarca", - "moneda", - "monja", - "monto", - "moño", - "morada", - "morder", - "moreno", - "morir", - "morro", - "morsa", - "mortal", - "mosca", - "mostrar", - "motivo", - "mover", - "móvil", - "mozo", - "mucho", - "mudar", - "mueble", - "muela", - "muerte", - "muestra", - "mugre", - "mujer", - "mula", - "muleta", - "multa", - "mundo", - "muñeca", - "mural", - "muro", - "músculo", - "museo", - "musgo", - "música", - "muslo", - "nácar", - "nación", - "nadar", - "naipe", - "naranja", - "nariz", - "narrar", - "nasal", - "natal", - "nativo", - "natural", - "náusea", - "naval", - "nave", - "navidad", - "necio", - "néctar", - "negar", - "negocio", - "negro", - "neón", - "nervio", - "neto", - "neutro", - "nevar", - "nevera", - "nicho", - "nido", - "niebla", - "nieto", - "niñez", - "niño", - "nítido", - "nivel", - "nobleza", - "noche", - "nómina", - "noria", - "norma", - "norte", - "nota", - "noticia", - "novato", - "novela", - "novio", - "nube", - "nuca", - "núcleo", - "nudillo", - "nudo", - "nuera", - "nueve", - "nuez", - "nulo", - "número", - "nutria", - "oasis", - "obeso", - "obispo", - "objeto", - "obra", - "obrero", - "observar", - "obtener", - "obvio", - "oca", - "ocaso", - "océano", - "ochenta", - "ocho", - "ocio", - "ocre", - "octavo", - "octubre", - "oculto", - "ocupar", - "ocurrir", - "odiar", - "odio", - "odisea", - "oeste", - "ofensa", - "oferta", - "oficio", - "ofrecer", - "ogro", - "oído", - "oír", - "ojo", - "ola", - "oleada", - "olfato", - "olivo", - "olla", - "olmo", - "olor", - "olvido", - "ombligo", - "onda", - "onza", - "opaco", - "opción", - "ópera", - "opinar", - "oponer", - "optar", - "óptica", - "opuesto", - "oración", - "orador", - "oral", - "órbita", - "orca", - "orden", - "oreja", - "órgano", - "orgía", - "orgullo", - "oriente", - "origen", - "orilla", - "oro", - "orquesta", - "oruga", - "osadía", - "oscuro", - "osezno", - "oso", - "ostra", - "otoño", - "otro", - "oveja", - "óvulo", - "óxido", - "oxígeno", - "oyente", - "ozono", - "pacto", - "padre", - "paella", - "página", - "pago", - "país", - "pájaro", - "palabra", - "palco", - "paleta", - "pálido", - "palma", - "paloma", - "palpar", - "pan", - "panal", - "pánico", - "pantera", - "pañuelo", - "papá", - "papel", - "papilla", - "paquete", - "parar", - "parcela", - "pared", - "parir", - "paro", - "párpado", - "parque", - "párrafo", - "parte", - "pasar", - "paseo", - "pasión", - "paso", - "pasta", - "pata", - "patio", - "patria", - "pausa", - "pauta", - "pavo", - "payaso", - "peatón", - "pecado", - "pecera", - "pecho", - "pedal", - "pedir", - "pegar", - "peine", - "pelar", - "peldaño", - "pelea", - "peligro", - "pellejo", - "pelo", - "peluca", - "pena", - "pensar", - "peñón", - "peón", - "peor", - "pepino", - "pequeño", - "pera", - "percha", - "perder", - "pereza", - "perfil", - "perico", - "perla", - "permiso", - "perro", - "persona", - "pesa", - "pesca", - "pésimo", - "pestaña", - "pétalo", - "petróleo", - "pez", - "pezuña", - "picar", - "pichón", - "pie", - "piedra", - "pierna", - "pieza", - "pijama", - "pilar", - "piloto", - "pimienta", - "pino", - "pintor", - "pinza", - "piña", - "piojo", - "pipa", - "pirata", - "pisar", - "piscina", - "piso", - "pista", - "pitón", - "pizca", - "placa", - "plan", - "plata", - "playa", - "plaza", - "pleito", - "pleno", - "plomo", - "pluma", - "plural", - "pobre", - "poco", - "poder", - "podio", - "poema", - "poesía", - "poeta", - "polen", - "policía", - "pollo", - "polvo", - "pomada", - "pomelo", - "pomo", - "pompa", - "poner", - "porción", - "portal", - "posada", - "poseer", - "posible", - "poste", - "potencia", - "potro", - "pozo", - "prado", - "precoz", - "pregunta", - "premio", - "prensa", - "preso", - "previo", - "primo", - "príncipe", - "prisión", - "privar", - "proa", - "probar", - "proceso", - "producto", - "proeza", - "profesor", - "programa", - "prole", - "promesa", - "pronto", - "propio", - "próximo", - "prueba", - "público", - "puchero", - "pudor", - "pueblo", - "puerta", - "puesto", - "pulga", - "pulir", - "pulmón", - "pulpo", - "pulso", - "puma", - "punto", - "puñal", - "puño", - "pupa", - "pupila", - "puré", - "quedar", - "queja", - "quemar", - "querer", - "queso", - "quieto", - "química", - "quince", - "quitar", - "rábano", - "rabia", - "rabo", - "ración", - "radical", - "raíz", - "rama", - "rampa", - "rancho", - "rango", - "rapaz", - "rápido", - "rapto", - "rasgo", - "raspa", - "rato", - "rayo", - "raza", - "razón", - "reacción", - "realidad", - "rebaño", - "rebote", - "recaer", - "receta", - "rechazo", - "recoger", - "recreo", - "recto", - "recurso", - "red", - "redondo", - "reducir", - "reflejo", - "reforma", - "refrán", - "refugio", - "regalo", - "regir", - "regla", - "regreso", - "rehén", - "reino", - "reír", - "reja", - "relato", - "relevo", - "relieve", - "relleno", - "reloj", - "remar", - "remedio", - "remo", - "rencor", - "rendir", - "renta", - "reparto", - "repetir", - "reposo", - "reptil", - "res", - "rescate", - "resina", - "respeto", - "resto", - "resumen", - "retiro", - "retorno", - "retrato", - "reunir", - "revés", - "revista", - "rey", - "rezar", - "rico", - "riego", - "rienda", - "riesgo", - "rifa", - "rígido", - "rigor", - "rincón", - "riñón", - "río", - "riqueza", - "risa", - "ritmo", - "rito", - "rizo", - "roble", - "roce", - "rociar", - "rodar", - "rodeo", - "rodilla", - "roer", - "rojizo", - "rojo", - "romero", - "romper", - "ron", - "ronco", - "ronda", - "ropa", - "ropero", - "rosa", - "rosca", - "rostro", - "rotar", - "rubí", - "rubor", - "rudo", - "rueda", - "rugir", - "ruido", - "ruina", - "ruleta", - "rulo", - "rumbo", - "rumor", - "ruptura", - "ruta", - "rutina", - "sábado", - "saber", - "sabio", - "sable", - "sacar", - "sagaz", - "sagrado", - "sala", - "saldo", - "salero", - "salir", - "salmón", - "salón", - "salsa", - "salto", - "salud", - "salvar", - "samba", - "sanción", - "sandía", - "sanear", - "sangre", - "sanidad", - "sano", - "santo", - "sapo", - "saque", - "sardina", - "sartén", - "sastre", - "satán", - "sauna", - "saxofón", - "sección", - "seco", - "secreto", - "secta", - "sed", - "seguir", - "seis", - "sello", - "selva", - "semana", - "semilla", - "senda", - "sensor", - "señal", - "señor", - "separar", - "sepia", - "sequía", - "ser", - "serie", - "sermón", - "servir", - "sesenta", - "sesión", - "seta", - "setenta", - "severo", - "sexo", - "sexto", - "sidra", - "siesta", - "siete", - "siglo", - "signo", - "sílaba", - "silbar", - "silencio", - "silla", - "símbolo", - "simio", - "sirena", - "sistema", - "sitio", - "situar", - "sobre", - "socio", - "sodio", - "sol", - "solapa", - "soldado", - "soledad", - "sólido", - "soltar", - "solución", - "sombra", - "sondeo", - "sonido", - "sonoro", - "sonrisa", - "sopa", - "soplar", - "soporte", - "sordo", - "sorpresa", - "sorteo", - "sostén", - "sótano", - "suave", - "subir", - "suceso", - "sudor", - "suegra", - "suelo", - "sueño", - "suerte", - "sufrir", - "sujeto", - "sultán", - "sumar", - "superar", - "suplir", - "suponer", - "supremo", - "sur", - "surco", - "sureño", - "surgir", - "susto", - "sutil", - "tabaco", - "tabique", - "tabla", - "tabú", - "taco", - "tacto", - "tajo", - "talar", - "talco", - "talento", - "talla", - "talón", - "tamaño", - "tambor", - "tango", - "tanque", - "tapa", - "tapete", - "tapia", - "tapón", - "taquilla", - "tarde", - "tarea", - "tarifa", - "tarjeta", - "tarot", - "tarro", - "tarta", - "tatuaje", - "tauro", - "taza", - "tazón", - "teatro", - "techo", - "tecla", - "técnica", - "tejado", - "tejer", - "tejido", - "tela", - "teléfono", - "tema", - "temor", - "templo", - "tenaz", - "tender", - "tener", - "tenis", - "tenso", - "teoría", - "terapia", - "terco", - "término", - "ternura", - "terror", - "tesis", - "tesoro", - "testigo", - "tetera", - "texto", - "tez", - "tibio", - "tiburón", - "tiempo", - "tienda", - "tierra", - "tieso", - "tigre", - "tijera", - "tilde", - "timbre", - "tímido", - "timo", - "tinta", - "tío", - "típico", - "tipo", - "tira", - "tirón", - "titán", - "títere", - "título", - "tiza", - "toalla", - "tobillo", - "tocar", - "tocino", - "todo", - "toga", - "toldo", - "tomar", - "tono", - "tonto", - "topar", - "tope", - "toque", - "tórax", - "torero", - "tormenta", - "torneo", - "toro", - "torpedo", - "torre", - "torso", - "tortuga", - "tos", - "tosco", - "toser", - "tóxico", - "trabajo", - "tractor", - "traer", - "tráfico", - "trago", - "traje", - "tramo", - "trance", - "trato", - "trauma", - "trazar", - "trébol", - "tregua", - "treinta", - "tren", - "trepar", - "tres", - "tribu", - "trigo", - "tripa", - "triste", - "triunfo", - "trofeo", - "trompa", - "tronco", - "tropa", - "trote", - "trozo", - "truco", - "trueno", - "trufa", - "tubería", - "tubo", - "tuerto", - "tumba", - "tumor", - "túnel", - "túnica", - "turbina", - "turismo", - "turno", - "tutor", - "ubicar", - "úlcera", - "umbral", - "unidad", - "unir", - "universo", - "uno", - "untar", - "uña", - "urbano", - "urbe", - "urgente", - "urna", - "usar", - "usuario", - "útil", - "utopía", - "uva", - "vaca", - "vacío", - "vacuna", - "vagar", - "vago", - "vaina", - "vajilla", - "vale", - "válido", - "valle", - "valor", - "válvula", - "vampiro", - "vara", - "variar", - "varón", - "vaso", - "vecino", - "vector", - "vehículo", - "veinte", - "vejez", - "vela", - "velero", - "veloz", - "vena", - "vencer", - "venda", - "veneno", - "vengar", - "venir", - "venta", - "venus", - "ver", - "verano", - "verbo", - "verde", - "vereda", - "verja", - "verso", - "verter", - "vía", - "viaje", - "vibrar", - "vicio", - "víctima", - "vida", - "vídeo", - "vidrio", - "viejo", - "viernes", - "vigor", - "vil", - "villa", - "vinagre", - "vino", - "viñedo", - "violín", - "viral", - "virgo", - "virtud", - "visor", - "víspera", - "vista", - "vitamina", - "viudo", - "vivaz", - "vivero", - "vivir", - "vivo", - "volcán", - "volumen", - "volver", - "voraz", - "votar", - "voto", - "voz", - "vuelo", - "vulgar", - "yacer", - "yate", - "yegua", - "yema", - "yerno", - "yeso", - "yodo", - "yoga", - "yogur", - "zafiro", - "zanja", - "zapato", - "zarza", - "zona", - "zorro", - "zumo", - "zurdo" - ); - return word_list; -} - -std::unordered_map& word_map_spanish() -{ - static std::unordered_map word_map; - if (word_map.size() > 0) + class Spanish: public Base { - return word_map; - } - std::vector word_list = word_list_spanish(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - word_map[*it] = ii; - } - return word_map; -} - -std::unordered_map& trimmed_word_map_spanish() -{ - static std::unordered_map trimmed_word_map; - if (trimmed_word_map.size() > 0) - { - return trimmed_word_map; - } - std::vector word_list = word_list_spanish(); - int ii; - std::vector::iterator it; - for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++) - { - if (it->length() > 4) + public: + Spanish() { - trimmed_word_map[it->substr(0, 4)] = ii; + word_list = new std::vector({ + "ábaco", + "abdomen", + "abeja", + "abierto", + "abogado", + "abono", + "aborto", + "abrazo", + "abrir", + "abuelo", + "abuso", + "acabar", + "academia", + "acceso", + "acción", + "aceite", + "acelga", + "acento", + "aceptar", + "ácido", + "aclarar", + "acné", + "acoger", + "acoso", + "activo", + "acto", + "actriz", + "actuar", + "acudir", + "acuerdo", + "acusar", + "adicto", + "admitir", + "adoptar", + "adorno", + "aduana", + "adulto", + "aéreo", + "afectar", + "afición", + "afinar", + "afirmar", + "ágil", + "agitar", + "agonía", + "agosto", + "agotar", + "agregar", + "agrio", + "agua", + "agudo", + "águila", + "aguja", + "ahogo", + "ahorro", + "aire", + "aislar", + "ajedrez", + "ajeno", + "ajuste", + "alacrán", + "alambre", + "alarma", + "alba", + "álbum", + "alcalde", + "aldea", + "alegre", + "alejar", + "alerta", + "aleta", + "alfiler", + "alga", + "algodón", + "aliado", + "aliento", + "alivio", + "alma", + "almeja", + "almíbar", + "altar", + "alteza", + "altivo", + "alto", + "altura", + "alumno", + "alzar", + "amable", + "amante", + "amapola", + "amargo", + "amasar", + "ámbar", + "ámbito", + "ameno", + "amigo", + "amistad", + "amor", + "amparo", + "amplio", + "ancho", + "anciano", + "ancla", + "andar", + "andén", + "anemia", + "ángulo", + "anillo", + "ánimo", + "anís", + "anotar", + "antena", + "antiguo", + "antojo", + "anual", + "anular", + "anuncio", + "añadir", + "añejo", + "año", + "apagar", + "aparato", + "apetito", + "apio", + "aplicar", + "apodo", + "aporte", + "apoyo", + "aprender", + "aprobar", + "apuesta", + "apuro", + "arado", + "araña", + "arar", + "árbitro", + "árbol", + "arbusto", + "archivo", + "arco", + "arder", + "ardilla", + "arduo", + "área", + "árido", + "aries", + "armonía", + "arnés", + "aroma", + "arpa", + "arpón", + "arreglo", + "arroz", + "arruga", + "arte", + "artista", + "asa", + "asado", + "asalto", + "ascenso", + "asegurar", + "aseo", + "asesor", + "asiento", + "asilo", + "asistir", + "asno", + "asombro", + "áspero", + "astilla", + "astro", + "astuto", + "asumir", + "asunto", + "atajo", + "ataque", + "atar", + "atento", + "ateo", + "ático", + "atleta", + "átomo", + "atraer", + "atroz", + "atún", + "audaz", + "audio", + "auge", + "aula", + "aumento", + "ausente", + "autor", + "aval", + "avance", + "avaro", + "ave", + "avellana", + "avena", + "avestruz", + "avión", + "aviso", + "ayer", + "ayuda", + "ayuno", + "azafrán", + "azar", + "azote", + "azúcar", + "azufre", + "azul", + "baba", + "babor", + "bache", + "bahía", + "baile", + "bajar", + "balanza", + "balcón", + "balde", + "bambú", + "banco", + "banda", + "baño", + "barba", + "barco", + "barniz", + "barro", + "báscula", + "bastón", + "basura", + "batalla", + "batería", + "batir", + "batuta", + "baúl", + "bazar", + "bebé", + "bebida", + "bello", + "besar", + "beso", + "bestia", + "bicho", + "bien", + "bingo", + "blanco", + "bloque", + "blusa", + "boa", + "bobina", + "bobo", + "boca", + "bocina", + "boda", + "bodega", + "boina", + "bola", + "bolero", + "bolsa", + "bomba", + "bondad", + "bonito", + "bono", + "bonsái", + "borde", + "borrar", + "bosque", + "bote", + "botín", + "bóveda", + "bozal", + "bravo", + "brazo", + "brecha", + "breve", + "brillo", + "brinco", + "brisa", + "broca", + "broma", + "bronce", + "brote", + "bruja", + "brusco", + "bruto", + "buceo", + "bucle", + "bueno", + "buey", + "bufanda", + "bufón", + "búho", + "buitre", + "bulto", + "burbuja", + "burla", + "burro", + "buscar", + "butaca", + "buzón", + "caballo", + "cabeza", + "cabina", + "cabra", + "cacao", + "cadáver", + "cadena", + "caer", + "café", + "caída", + "caimán", + "caja", + "cajón", + "cal", + "calamar", + "calcio", + "caldo", + "calidad", + "calle", + "calma", + "calor", + "calvo", + "cama", + "cambio", + "camello", + "camino", + "campo", + "cáncer", + "candil", + "canela", + "canguro", + "canica", + "canto", + "caña", + "cañón", + "caoba", + "caos", + "capaz", + "capitán", + "capote", + "captar", + "capucha", + "cara", + "carbón", + "cárcel", + "careta", + "carga", + "cariño", + "carne", + "carpeta", + "carro", + "carta", + "casa", + "casco", + "casero", + "caspa", + "castor", + "catorce", + "catre", + "caudal", + "causa", + "cazo", + "cebolla", + "ceder", + "cedro", + "celda", + "célebre", + "celoso", + "célula", + "cemento", + "ceniza", + "centro", + "cerca", + "cerdo", + "cereza", + "cero", + "cerrar", + "certeza", + "césped", + "cetro", + "chacal", + "chaleco", + "champú", + "chancla", + "chapa", + "charla", + "chico", + "chiste", + "chivo", + "choque", + "choza", + "chuleta", + "chupar", + "ciclón", + "ciego", + "cielo", + "cien", + "cierto", + "cifra", + "cigarro", + "cima", + "cinco", + "cine", + "cinta", + "ciprés", + "circo", + "ciruela", + "cisne", + "cita", + "ciudad", + "clamor", + "clan", + "claro", + "clase", + "clave", + "cliente", + "clima", + "clínica", + "cobre", + "cocción", + "cochino", + "cocina", + "coco", + "código", + "codo", + "cofre", + "coger", + "cohete", + "cojín", + "cojo", + "cola", + "colcha", + "colegio", + "colgar", + "colina", + "collar", + "colmo", + "columna", + "combate", + "comer", + "comida", + "cómodo", + "compra", + "conde", + "conejo", + "conga", + "conocer", + "consejo", + "contar", + "copa", + "copia", + "corazón", + "corbata", + "corcho", + "cordón", + "corona", + "correr", + "coser", + "cosmos", + "costa", + "cráneo", + "cráter", + "crear", + "crecer", + "creído", + "crema", + "cría", + "crimen", + "cripta", + "crisis", + "cromo", + "crónica", + "croqueta", + "crudo", + "cruz", + "cuadro", + "cuarto", + "cuatro", + "cubo", + "cubrir", + "cuchara", + "cuello", + "cuento", + "cuerda", + "cuesta", + "cueva", + "cuidar", + "culebra", + "culpa", + "culto", + "cumbre", + "cumplir", + "cuna", + "cuneta", + "cuota", + "cupón", + "cúpula", + "curar", + "curioso", + "curso", + "curva", + "cutis", + "dama", + "danza", + "dar", + "dardo", + "dátil", + "deber", + "débil", + "década", + "decir", + "dedo", + "defensa", + "definir", + "dejar", + "delfín", + "delgado", + "delito", + "demora", + "denso", + "dental", + "deporte", + "derecho", + "derrota", + "desayuno", + "deseo", + "desfile", + "desnudo", + "destino", + "desvío", + "detalle", + "detener", + "deuda", + "día", + "diablo", + "diadema", + "diamante", + "diana", + "diario", + "dibujo", + "dictar", + "diente", + "dieta", + "diez", + "difícil", + "digno", + "dilema", + "diluir", + "dinero", + "directo", + "dirigir", + "disco", + "diseño", + "disfraz", + "diva", + "divino", + "doble", + "doce", + "dolor", + "domingo", + "don", + "donar", + "dorado", + "dormir", + "dorso", + "dos", + "dosis", + "dragón", + "droga", + "ducha", + "duda", + "duelo", + "dueño", + "dulce", + "dúo", + "duque", + "durar", + "dureza", + "duro", + "ébano", + "ebrio", + "echar", + "eco", + "ecuador", + "edad", + "edición", + "edificio", + "editor", + "educar", + "efecto", + "eficaz", + "eje", + "ejemplo", + "elefante", + "elegir", + "elemento", + "elevar", + "elipse", + "élite", + "elixir", + "elogio", + "eludir", + "embudo", + "emitir", + "emoción", + "empate", + "empeño", + "empleo", + "empresa", + "enano", + "encargo", + "enchufe", + "encía", + "enemigo", + "enero", + "enfado", + "enfermo", + "engaño", + "enigma", + "enlace", + "enorme", + "enredo", + "ensayo", + "enseñar", + "entero", + "entrar", + "envase", + "envío", + "época", + "equipo", + "erizo", + "escala", + "escena", + "escolar", + "escribir", + "escudo", + "esencia", + "esfera", + "esfuerzo", + "espada", + "espejo", + "espía", + "esposa", + "espuma", + "esquí", + "estar", + "este", + "estilo", + "estufa", + "etapa", + "eterno", + "ética", + "etnia", + "evadir", + "evaluar", + "evento", + "evitar", + "exacto", + "examen", + "exceso", + "excusa", + "exento", + "exigir", + "exilio", + "existir", + "éxito", + "experto", + "explicar", + "exponer", + "extremo", + "fábrica", + "fábula", + "fachada", + "fácil", + "factor", + "faena", + "faja", + "falda", + "fallo", + "falso", + "faltar", + "fama", + "familia", + "famoso", + "faraón", + "farmacia", + "farol", + "farsa", + "fase", + "fatiga", + "fauna", + "favor", + "fax", + "febrero", + "fecha", + "feliz", + "feo", + "feria", + "feroz", + "fértil", + "fervor", + "festín", + "fiable", + "fianza", + "fiar", + "fibra", + "ficción", + "ficha", + "fideo", + "fiebre", + "fiel", + "fiera", + "fiesta", + "figura", + "fijar", + "fijo", + "fila", + "filete", + "filial", + "filtro", + "fin", + "finca", + "fingir", + "finito", + "firma", + "flaco", + "flauta", + "flecha", + "flor", + "flota", + "fluir", + "flujo", + "flúor", + "fobia", + "foca", + "fogata", + "fogón", + "folio", + "folleto", + "fondo", + "forma", + "forro", + "fortuna", + "forzar", + "fosa", + "foto", + "fracaso", + "frágil", + "franja", + "frase", + "fraude", + "freír", + "freno", + "fresa", + "frío", + "frito", + "fruta", + "fuego", + "fuente", + "fuerza", + "fuga", + "fumar", + "función", + "funda", + "furgón", + "furia", + "fusil", + "fútbol", + "futuro", + "gacela", + "gafas", + "gaita", + "gajo", + "gala", + "galería", + "gallo", + "gamba", + "ganar", + "gancho", + "ganga", + "ganso", + "garaje", + "garza", + "gasolina", + "gastar", + "gato", + "gavilán", + "gemelo", + "gemir", + "gen", + "género", + "genio", + "gente", + "geranio", + "gerente", + "germen", + "gesto", + "gigante", + "gimnasio", + "girar", + "giro", + "glaciar", + "globo", + "gloria", + "gol", + "golfo", + "goloso", + "golpe", + "goma", + "gordo", + "gorila", + "gorra", + "gota", + "goteo", + "gozar", + "grada", + "gráfico", + "grano", + "grasa", + "gratis", + "grave", + "grieta", + "grillo", + "gripe", + "gris", + "grito", + "grosor", + "grúa", + "grueso", + "grumo", + "grupo", + "guante", + "guapo", + "guardia", + "guerra", + "guía", + "guiño", + "guion", + "guiso", + "guitarra", + "gusano", + "gustar", + "haber", + "hábil", + "hablar", + "hacer", + "hacha", + "hada", + "hallar", + "hamaca", + "harina", + "haz", + "hazaña", + "hebilla", + "hebra", + "hecho", + "helado", + "helio", + "hembra", + "herir", + "hermano", + "héroe", + "hervir", + "hielo", + "hierro", + "hígado", + "higiene", + "hijo", + "himno", + "historia", + "hocico", + "hogar", + "hoguera", + "hoja", + "hombre", + "hongo", + "honor", + "honra", + "hora", + "hormiga", + "horno", + "hostil", + "hoyo", + "hueco", + "huelga", + "huerta", + "hueso", + "huevo", + "huida", + "huir", + "humano", + "húmedo", + "humilde", + "humo", + "hundir", + "huracán", + "hurto", + "icono", + "ideal", + "idioma", + "ídolo", + "iglesia", + "iglú", + "igual", + "ilegal", + "ilusión", + "imagen", + "imán", + "imitar", + "impar", + "imperio", + "imponer", + "impulso", + "incapaz", + "índice", + "inerte", + "infiel", + "informe", + "ingenio", + "inicio", + "inmenso", + "inmune", + "innato", + "insecto", + "instante", + "interés", + "íntimo", + "intuir", + "inútil", + "invierno", + "ira", + "iris", + "ironía", + "isla", + "islote", + "jabalí", + "jabón", + "jamón", + "jarabe", + "jardín", + "jarra", + "jaula", + "jazmín", + "jefe", + "jeringa", + "jinete", + "jornada", + "joroba", + "joven", + "joya", + "juerga", + "jueves", + "juez", + "jugador", + "jugo", + "juguete", + "juicio", + "junco", + "jungla", + "junio", + "juntar", + "júpiter", + "jurar", + "justo", + "juvenil", + "juzgar", + "kilo", + "koala", + "labio", + "lacio", + "lacra", + "lado", + "ladrón", + "lagarto", + "lágrima", + "laguna", + "laico", + "lamer", + "lámina", + "lámpara", + "lana", + "lancha", + "langosta", + "lanza", + "lápiz", + "largo", + "larva", + "lástima", + "lata", + "látex", + "latir", + "laurel", + "lavar", + "lazo", + "leal", + "lección", + "leche", + "lector", + "leer", + "legión", + "legumbre", + "lejano", + "lengua", + "lento", + "leña", + "león", + "leopardo", + "lesión", + "letal", + "letra", + "leve", + "leyenda", + "libertad", + "libro", + "licor", + "líder", + "lidiar", + "lienzo", + "liga", + "ligero", + "lima", + "límite", + "limón", + "limpio", + "lince", + "lindo", + "línea", + "lingote", + "lino", + "linterna", + "líquido", + "liso", + "lista", + "litera", + "litio", + "litro", + "llaga", + "llama", + "llanto", + "llave", + "llegar", + "llenar", + "llevar", + "llorar", + "llover", + "lluvia", + "lobo", + "loción", + "loco", + "locura", + "lógica", + "logro", + "lombriz", + "lomo", + "lonja", + "lote", + "lucha", + "lucir", + "lugar", + "lujo", + "luna", + "lunes", + "lupa", + "lustro", + "luto", + "luz", + "maceta", + "macho", + "madera", + "madre", + "maduro", + "maestro", + "mafia", + "magia", + "mago", + "maíz", + "maldad", + "maleta", + "malla", + "malo", + "mamá", + "mambo", + "mamut", + "manco", + "mando", + "manejar", + "manga", + "maniquí", + "manjar", + "mano", + "manso", + "manta", + "mañana", + "mapa", + "máquina", + "mar", + "marco", + "marea", + "marfil", + "margen", + "marido", + "mármol", + "marrón", + "martes", + "marzo", + "masa", + "máscara", + "masivo", + "matar", + "materia", + "matiz", + "matriz", + "máximo", + "mayor", + "mazorca", + "mecha", + "medalla", + "medio", + "médula", + "mejilla", + "mejor", + "melena", + "melón", + "memoria", + "menor", + "mensaje", + "mente", + "menú", + "mercado", + "merengue", + "mérito", + "mes", + "mesón", + "meta", + "meter", + "método", + "metro", + "mezcla", + "miedo", + "miel", + "miembro", + "miga", + "mil", + "milagro", + "militar", + "millón", + "mimo", + "mina", + "minero", + "mínimo", + "minuto", + "miope", + "mirar", + "misa", + "miseria", + "misil", + "mismo", + "mitad", + "mito", + "mochila", + "moción", + "moda", + "modelo", + "moho", + "mojar", + "molde", + "moler", + "molino", + "momento", + "momia", + "monarca", + "moneda", + "monja", + "monto", + "moño", + "morada", + "morder", + "moreno", + "morir", + "morro", + "morsa", + "mortal", + "mosca", + "mostrar", + "motivo", + "mover", + "móvil", + "mozo", + "mucho", + "mudar", + "mueble", + "muela", + "muerte", + "muestra", + "mugre", + "mujer", + "mula", + "muleta", + "multa", + "mundo", + "muñeca", + "mural", + "muro", + "músculo", + "museo", + "musgo", + "música", + "muslo", + "nácar", + "nación", + "nadar", + "naipe", + "naranja", + "nariz", + "narrar", + "nasal", + "natal", + "nativo", + "natural", + "náusea", + "naval", + "nave", + "navidad", + "necio", + "néctar", + "negar", + "negocio", + "negro", + "neón", + "nervio", + "neto", + "neutro", + "nevar", + "nevera", + "nicho", + "nido", + "niebla", + "nieto", + "niñez", + "niño", + "nítido", + "nivel", + "nobleza", + "noche", + "nómina", + "noria", + "norma", + "norte", + "nota", + "noticia", + "novato", + "novela", + "novio", + "nube", + "nuca", + "núcleo", + "nudillo", + "nudo", + "nuera", + "nueve", + "nuez", + "nulo", + "número", + "nutria", + "oasis", + "obeso", + "obispo", + "objeto", + "obra", + "obrero", + "observar", + "obtener", + "obvio", + "oca", + "ocaso", + "océano", + "ochenta", + "ocho", + "ocio", + "ocre", + "octavo", + "octubre", + "oculto", + "ocupar", + "ocurrir", + "odiar", + "odio", + "odisea", + "oeste", + "ofensa", + "oferta", + "oficio", + "ofrecer", + "ogro", + "oído", + "oír", + "ojo", + "ola", + "oleada", + "olfato", + "olivo", + "olla", + "olmo", + "olor", + "olvido", + "ombligo", + "onda", + "onza", + "opaco", + "opción", + "ópera", + "opinar", + "oponer", + "optar", + "óptica", + "opuesto", + "oración", + "orador", + "oral", + "órbita", + "orca", + "orden", + "oreja", + "órgano", + "orgía", + "orgullo", + "oriente", + "origen", + "orilla", + "oro", + "orquesta", + "oruga", + "osadía", + "oscuro", + "osezno", + "oso", + "ostra", + "otoño", + "otro", + "oveja", + "óvulo", + "óxido", + "oxígeno", + "oyente", + "ozono", + "pacto", + "padre", + "paella", + "página", + "pago", + "país", + "pájaro", + "palabra", + "palco", + "paleta", + "pálido", + "palma", + "paloma", + "palpar", + "pan", + "panal", + "pánico", + "pantera", + "pañuelo", + "papá", + "papel", + "papilla", + "paquete", + "parar", + "parcela", + "pared", + "parir", + "paro", + "párpado", + "parque", + "párrafo", + "parte", + "pasar", + "paseo", + "pasión", + "paso", + "pasta", + "pata", + "patio", + "patria", + "pausa", + "pauta", + "pavo", + "payaso", + "peatón", + "pecado", + "pecera", + "pecho", + "pedal", + "pedir", + "pegar", + "peine", + "pelar", + "peldaño", + "pelea", + "peligro", + "pellejo", + "pelo", + "peluca", + "pena", + "pensar", + "peñón", + "peón", + "peor", + "pepino", + "pequeño", + "pera", + "percha", + "perder", + "pereza", + "perfil", + "perico", + "perla", + "permiso", + "perro", + "persona", + "pesa", + "pesca", + "pésimo", + "pestaña", + "pétalo", + "petróleo", + "pez", + "pezuña", + "picar", + "pichón", + "pie", + "piedra", + "pierna", + "pieza", + "pijama", + "pilar", + "piloto", + "pimienta", + "pino", + "pintor", + "pinza", + "piña", + "piojo", + "pipa", + "pirata", + "pisar", + "piscina", + "piso", + "pista", + "pitón", + "pizca", + "placa", + "plan", + "plata", + "playa", + "plaza", + "pleito", + "pleno", + "plomo", + "pluma", + "plural", + "pobre", + "poco", + "poder", + "podio", + "poema", + "poesía", + "poeta", + "polen", + "policía", + "pollo", + "polvo", + "pomada", + "pomelo", + "pomo", + "pompa", + "poner", + "porción", + "portal", + "posada", + "poseer", + "posible", + "poste", + "potencia", + "potro", + "pozo", + "prado", + "precoz", + "pregunta", + "premio", + "prensa", + "preso", + "previo", + "primo", + "príncipe", + "prisión", + "privar", + "proa", + "probar", + "proceso", + "producto", + "proeza", + "profesor", + "programa", + "prole", + "promesa", + "pronto", + "propio", + "próximo", + "prueba", + "público", + "puchero", + "pudor", + "pueblo", + "puerta", + "puesto", + "pulga", + "pulir", + "pulmón", + "pulpo", + "pulso", + "puma", + "punto", + "puñal", + "puño", + "pupa", + "pupila", + "puré", + "quedar", + "queja", + "quemar", + "querer", + "queso", + "quieto", + "química", + "quince", + "quitar", + "rábano", + "rabia", + "rabo", + "ración", + "radical", + "raíz", + "rama", + "rampa", + "rancho", + "rango", + "rapaz", + "rápido", + "rapto", + "rasgo", + "raspa", + "rato", + "rayo", + "raza", + "razón", + "reacción", + "realidad", + "rebaño", + "rebote", + "recaer", + "receta", + "rechazo", + "recoger", + "recreo", + "recto", + "recurso", + "red", + "redondo", + "reducir", + "reflejo", + "reforma", + "refrán", + "refugio", + "regalo", + "regir", + "regla", + "regreso", + "rehén", + "reino", + "reír", + "reja", + "relato", + "relevo", + "relieve", + "relleno", + "reloj", + "remar", + "remedio", + "remo", + "rencor", + "rendir", + "renta", + "reparto", + "repetir", + "reposo", + "reptil", + "res", + "rescate", + "resina", + "respeto", + "resto", + "resumen", + "retiro", + "retorno", + "retrato", + "reunir", + "revés", + "revista", + "rey", + "rezar", + "rico", + "riego", + "rienda", + "riesgo", + "rifa", + "rígido", + "rigor", + "rincón", + "riñón", + "río", + "riqueza", + "risa", + "ritmo", + "rito", + "rizo", + "roble", + "roce", + "rociar", + "rodar", + "rodeo", + "rodilla", + "roer", + "rojizo", + "rojo", + "romero", + "romper", + "ron", + "ronco", + "ronda", + "ropa", + "ropero", + "rosa", + "rosca", + "rostro", + "rotar", + "rubí", + "rubor", + "rudo", + "rueda", + "rugir", + "ruido", + "ruina", + "ruleta", + "rulo", + "rumbo", + "rumor", + "ruptura", + "ruta", + "rutina", + "sábado", + "saber", + "sabio", + "sable", + "sacar", + "sagaz", + "sagrado", + "sala", + "saldo", + "salero", + "salir", + "salmón", + "salón", + "salsa", + "salto", + "salud", + "salvar", + "samba", + "sanción", + "sandía", + "sanear", + "sangre", + "sanidad", + "sano", + "santo", + "sapo", + "saque", + "sardina", + "sartén", + "sastre", + "satán", + "sauna", + "saxofón", + "sección", + "seco", + "secreto", + "secta", + "sed", + "seguir", + "seis", + "sello", + "selva", + "semana", + "semilla", + "senda", + "sensor", + "señal", + "señor", + "separar", + "sepia", + "sequía", + "ser", + "serie", + "sermón", + "servir", + "sesenta", + "sesión", + "seta", + "setenta", + "severo", + "sexo", + "sexto", + "sidra", + "siesta", + "siete", + "siglo", + "signo", + "sílaba", + "silbar", + "silencio", + "silla", + "símbolo", + "simio", + "sirena", + "sistema", + "sitio", + "situar", + "sobre", + "socio", + "sodio", + "sol", + "solapa", + "soldado", + "soledad", + "sólido", + "soltar", + "solución", + "sombra", + "sondeo", + "sonido", + "sonoro", + "sonrisa", + "sopa", + "soplar", + "soporte", + "sordo", + "sorpresa", + "sorteo", + "sostén", + "sótano", + "suave", + "subir", + "suceso", + "sudor", + "suegra", + "suelo", + "sueño", + "suerte", + "sufrir", + "sujeto", + "sultán", + "sumar", + "superar", + "suplir", + "suponer", + "supremo", + "sur", + "surco", + "sureño", + "surgir", + "susto", + "sutil", + "tabaco", + "tabique", + "tabla", + "tabú", + "taco", + "tacto", + "tajo", + "talar", + "talco", + "talento", + "talla", + "talón", + "tamaño", + "tambor", + "tango", + "tanque", + "tapa", + "tapete", + "tapia", + "tapón", + "taquilla", + "tarde", + "tarea", + "tarifa", + "tarjeta", + "tarot", + "tarro", + "tarta", + "tatuaje", + "tauro", + "taza", + "tazón", + "teatro", + "techo", + "tecla", + "técnica", + "tejado", + "tejer", + "tejido", + "tela", + "teléfono", + "tema", + "temor", + "templo", + "tenaz", + "tender", + "tener", + "tenis", + "tenso", + "teoría", + "terapia", + "terco", + "término", + "ternura", + "terror", + "tesis", + "tesoro", + "testigo", + "tetera", + "texto", + "tez", + "tibio", + "tiburón", + "tiempo", + "tienda", + "tierra", + "tieso", + "tigre", + "tijera", + "tilde", + "timbre", + "tímido", + "timo", + "tinta", + "tío", + "típico", + "tipo", + "tira", + "tirón", + "titán", + "títere", + "título", + "tiza", + "toalla", + "tobillo", + "tocar", + "tocino", + "todo", + "toga", + "toldo", + "tomar", + "tono", + "tonto", + "topar", + "tope", + "toque", + "tórax", + "torero", + "tormenta", + "torneo", + "toro", + "torpedo", + "torre", + "torso", + "tortuga", + "tos", + "tosco", + "toser", + "tóxico", + "trabajo", + "tractor", + "traer", + "tráfico", + "trago", + "traje", + "tramo", + "trance", + "trato", + "trauma", + "trazar", + "trébol", + "tregua", + "treinta", + "tren", + "trepar", + "tres", + "tribu", + "trigo", + "tripa", + "triste", + "triunfo", + "trofeo", + "trompa", + "tronco", + "tropa", + "trote", + "trozo", + "truco", + "trueno", + "trufa", + "tubería", + "tubo", + "tuerto", + "tumba", + "tumor", + "túnel", + "túnica", + "turbina", + "turismo", + "turno", + "tutor", + "ubicar", + "úlcera", + "umbral", + "unidad", + "unir", + "universo", + "uno", + "untar", + "uña", + "urbano", + "urbe", + "urgente", + "urna", + "usar", + "usuario", + "útil", + "utopía", + "uva", + "vaca", + "vacío", + "vacuna", + "vagar", + "vago", + "vaina", + "vajilla", + "vale", + "válido", + "valle", + "valor", + "válvula", + "vampiro", + "vara", + "variar", + "varón", + "vaso", + "vecino", + "vector", + "vehículo", + "veinte", + "vejez", + "vela", + "velero", + "veloz", + "vena", + "vencer", + "venda", + "veneno", + "vengar", + "venir", + "venta", + "venus", + "ver", + "verano", + "verbo", + "verde", + "vereda", + "verja", + "verso", + "verter", + "vía", + "viaje", + "vibrar", + "vicio", + "víctima", + "vida", + "vídeo", + "vidrio", + "viejo", + "viernes", + "vigor", + "vil", + "villa", + "vinagre", + "vino", + "viñedo", + "violín", + "viral", + "virgo", + "virtud", + "visor", + "víspera", + "vista", + "vitamina", + "viudo", + "vivaz", + "vivero", + "vivir", + "vivo", + "volcán", + "volumen", + "volver", + "voraz", + "votar", + "voto", + "voz", + "vuelo", + "vulgar", + "yacer", + "yate", + "yegua", + "yema", + "yerno", + "yeso", + "yodo", + "yoga", + "yogur", + "zafiro", + "zanja", + "zapato", + "zarza", + "zona", + "zorro", + "zumo", + "zurdo" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Spanish"; + populate_maps(); } - else - { - trimmed_word_map[*it] = ii; - } - } - return trimmed_word_map; + }; } + +#endif \ No newline at end of file diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 24ba3424e..4b1fb07cd 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -368,6 +368,7 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm) { if (m_wallet_file.empty()) m_wallet_file = m_generate_new; // alias for simplicity later + std::string old_language; // check for recover flag. if present, require electrum word list (only recovery option for now). if (m_restore_deterministic_wallet) { @@ -387,21 +388,14 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm) } } - try + if (!crypto::ElectrumWords::words_to_bytes(m_electrum_seed, m_recovery_key, old_language)) { - if (!crypto::ElectrumWords::words_to_bytes(m_electrum_seed, m_recovery_key)) - { - fail_msg_writer() << "electrum-style word list failed verification"; - return false; - } - } - catch (std::runtime_error &e) - { - fail_msg_writer() << e.what() << std::endl; + fail_msg_writer() << "electrum-style word list failed verification"; return false; } } - bool r = new_wallet(m_wallet_file, pwd_container.password(), m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, testnet); + bool r = new_wallet(m_wallet_file, pwd_container.password(), m_recovery_key, m_restore_deterministic_wallet, + m_non_deterministic, testnet, old_language); CHECK_AND_ASSERT_MES(r, false, "account creation failed"); } else @@ -471,7 +465,7 @@ std::string simple_wallet::get_mnemonic_language() try { language_number = std::stoi(language_choice); - if (!((language_number >= 0) && (static_cast(language_number) < language_list.size()))) + if (!((language_number >= 0) && (static_cast(language_number) < language_list.size()))) { language_number = -1; fail_msg_writer() << "Invalid language choice passed. Please try again.\n"; @@ -486,7 +480,8 @@ std::string simple_wallet::get_mnemonic_language() } //---------------------------------------------------------------------------------------------------- -bool simple_wallet::new_wallet(const string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key, bool recover, bool two_random, bool testnet) +bool simple_wallet::new_wallet(const std::string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key, + bool recover, bool two_random, bool testnet, const std::string &old_language) { m_wallet_file = wallet_file; @@ -512,10 +507,10 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas // convert rng value to electrum-style word list std::string electrum_words; - bool was_deprecated_wallet = m_restore_deterministic_wallet && - (crypto::ElectrumWords::get_is_old_style_word_list() || - crypto::ElectrumWords::get_is_old_style_seed(m_electrum_seed)); + bool was_deprecated_wallet = (old_language == "OldEnglish") || + crypto::ElectrumWords::get_is_old_style_seed(m_electrum_seed); + std::string mnemonic_language = old_language; // Ask for seed language if it is not a wallet restore or if it was a deprecated wallet // that was earlier used before this restore. if (!m_restore_deterministic_wallet || was_deprecated_wallet) @@ -526,26 +521,10 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas message_writer(epee::log_space::console_color_green, false) << "\nYou had been using " << "a deprecated version of the wallet. Please use the new seed that we provide.\n"; } - std::string mnemonic_language = get_mnemonic_language(); - try - { - crypto::ElectrumWords::init(mnemonic_language); - } - catch (std::runtime_error &e) - { - fail_msg_writer() << e.what() << std::endl; - return false; - } - } - try - { - crypto::ElectrumWords::bytes_to_words(recovery_val, electrum_words); - } - catch (std::runtime_error &e) - { - fail_msg_writer() << e.what() << std::endl; - return false; + mnemonic_language = get_mnemonic_language(); } + crypto::ElectrumWords::bytes_to_words(recovery_val, electrum_words, mnemonic_language); + m_wallet->set_seed_language(mnemonic_language); std::string print_electrum = ""; diff --git a/src/simplewallet/simplewallet.h b/src/simplewallet/simplewallet.h index 8567b2343..af6d4172a 100644 --- a/src/simplewallet/simplewallet.h +++ b/src/simplewallet/simplewallet.h @@ -74,7 +74,8 @@ namespace cryptonote bool run_console_handler(); - bool new_wallet(const std::string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key = crypto::secret_key(), bool recover = false, bool two_random = false, bool testnet = false); + bool new_wallet(const std::string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key, + bool recover, bool two_random, bool testnet, const std::string &old_language); bool open_wallet(const std::string &wallet_file, const std::string& password, bool testnet); bool close_wallet(); diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index b8f793d7c..cb6f66b3d 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -88,7 +88,7 @@ void wallet2::init(const std::string& daemon_address, uint64_t upper_transaction //---------------------------------------------------------------------------------------------------- bool wallet2::get_seed(std::string& electrum_words) { - crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words); + crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words, seed_language); crypto::secret_key second; keccak((uint8_t *)&get_account().get_keys().m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key)); @@ -97,6 +97,13 @@ bool wallet2::get_seed(std::string& electrum_words) return memcmp(second.data,get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key)) == 0; } +/*! + * \brief Sets the seed language + */ +void wallet2::set_seed_language(const std::string &language) +{ + seed_language = language; +} //---------------------------------------------------------------------------------------------------- void wallet2::process_new_transaction(const cryptonote::transaction& tx, uint64_t height) { diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 90918677e..afa42c2d3 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -152,7 +152,10 @@ namespace tools void callback(i_wallet2_callback* callback) { m_callback = callback; } bool get_seed(std::string& electrum_words); - + /*! + * \brief Sets the seed language + */ + void set_seed_language(const std::string &language); void refresh(); void refresh(uint64_t start_height, size_t & blocks_fetched); void refresh(uint64_t start_height, size_t & blocks_fetched, bool& received_money); @@ -236,6 +239,7 @@ namespace tools i_wallet2_callback* m_callback; bool m_testnet; + std::string seed_language; }; } BOOST_CLASS_VERSION(tools::wallet2, 7) From fa723d8af8f624d5719dcfa5a0cf1fc1b45be01e Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 2 Oct 2014 21:14:29 +0530 Subject: [PATCH 20/26] Cut short word lists to 1626 words, added attribution to Electrum, some bug fixes --- src/mnemonics/electrum-words.cpp | 5 +- src/mnemonics/english.h | 3755 +++++++++++++----------------- src/mnemonics/japanese.h | 3755 +++++++++++++----------------- src/mnemonics/language_base.h | 122 +- src/mnemonics/old_english.h | 3333 +++++++++++++------------- src/mnemonics/portuguese.h | 3332 +++++++++++++------------- src/mnemonics/singleton.h | 60 +- src/mnemonics/spanish.h | 3753 +++++++++++++---------------- 8 files changed, 8511 insertions(+), 9604 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 7caa3f72b..e644e0cbf 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -111,7 +111,7 @@ namespace // Iterate through all the words and see if they're all present for (it2 = seed.begin(), it3 = trimmed_seed.begin(); - it2 != seed.end() && it3 != trimmed_seed.end(); it2++, it3++) + it2 != seed.end(); it2++, it3++) { if (has_checksum) { @@ -235,10 +235,11 @@ namespace crypto // Checksum fail return false; } + seed.pop_back(); } std::vector matched_indices; - uint32_t word_list_length; + uint32_t word_list_length = 0; if (!find_seed_language(seed, has_checksum, matched_indices, word_list_length, language_name)) { return false; diff --git a/src/mnemonics/english.h b/src/mnemonics/english.h index 9c6dc281b..ee2e248d9 100644 --- a/src/mnemonics/english.h +++ b/src/mnemonics/english.h @@ -1,2074 +1,1681 @@ -#ifndef ENGLISH_H -#define ENGLISH_H - -#include -#include -#include "language_base.h" -#include - -namespace Language -{ - class English: public Base - { - public: - English() - { - word_list = new std::vector({ - "abandon", - "ability", - "able", - "about", - "above", - "absent", - "absorb", - "abstract", - "absurd", - "abuse", - "access", - "accident", - "account", - "accuse", - "achieve", - "acid", - "acoustic", - "acquire", - "across", - "act", - "action", - "actor", - "actress", - "actual", - "adapt", - "add", - "addict", - "address", - "adjust", - "admit", - "adult", - "advance", - "advice", - "aerobic", - "affair", - "afford", - "afraid", - "again", - "age", - "agent", - "agree", - "ahead", - "aim", - "air", - "airport", - "aisle", - "alarm", - "album", - "alcohol", - "alert", - "alien", - "all", - "alley", - "allow", - "almost", - "alone", - "alpha", - "already", - "also", - "alter", - "always", - "amateur", - "amazing", - "among", - "amount", - "amused", - "analyst", - "anchor", - "ancient", - "anger", - "angle", - "angry", - "animal", - "ankle", - "announce", - "annual", - "another", - "answer", - "antenna", - "antique", - "anxiety", - "any", - "apart", - "apology", - "appear", - "apple", - "approve", - "april", - "arch", - "arctic", - "area", - "arena", - "argue", - "arm", - "armed", - "armor", - "army", - "around", - "arrange", - "arrest", - "arrive", - "arrow", - "art", - "artefact", - "artist", - "artwork", - "ask", - "aspect", - "assault", - "asset", - "assist", - "assume", - "asthma", - "athlete", - "atom", - "attack", - "attend", - "attitude", - "attract", - "auction", - "audit", - "august", - "aunt", - "author", - "auto", - "autumn", - "average", - "avocado", - "avoid", - "awake", - "aware", - "away", - "awesome", - "awful", - "awkward", - "axis", - "baby", - "bachelor", - "bacon", - "badge", - "bag", - "balance", - "balcony", - "ball", - "bamboo", - "banana", - "banner", - "bar", - "barely", - "bargain", - "barrel", - "base", - "basic", - "basket", - "battle", - "beach", - "bean", - "beauty", - "because", - "become", - "beef", - "before", - "begin", - "behave", - "behind", - "believe", - "below", - "belt", - "bench", - "benefit", - "best", - "betray", - "better", - "between", - "beyond", - "bicycle", - "bid", - "bike", - "bind", - "biology", - "bird", - "birth", - "bitter", - "black", - "blade", - "blame", - "blanket", - "blast", - "bleak", - "bless", - "blind", - "blood", - "blossom", - "blouse", - "blue", - "blur", - "blush", - "board", - "boat", - "body", - "boil", - "bomb", - "bone", - "bonus", - "book", - "boost", - "border", - "boring", - "borrow", - "boss", - "bottom", - "bounce", - "box", - "boy", - "bracket", - "brain", - "brand", - "brass", - "brave", - "bread", - "breeze", - "brick", - "bridge", - "brief", - "bright", - "bring", - "brisk", - "broccoli", - "broken", - "bronze", - "broom", - "brother", - "brown", - "brush", - "bubble", - "buddy", - "budget", - "buffalo", - "build", - "bulb", - "bulk", - "bullet", - "bundle", - "bunker", - "burden", - "burger", - "burst", - "bus", - "business", - "busy", - "butter", - "buyer", - "buzz", - "cabbage", - "cabin", - "cable", - "cactus", - "cage", - "cake", - "call", - "calm", - "camera", - "camp", - "can", - "canal", - "cancel", - "candy", - "cannon", - "canoe", - "canvas", - "canyon", - "capable", - "capital", - "captain", - "car", - "carbon", - "card", - "cargo", - "carpet", - "carry", - "cart", - "case", - "cash", - "casino", - "castle", - "casual", - "cat", - "catalog", - "catch", - "category", - "cattle", - "caught", - "cause", - "caution", - "cave", - "ceiling", - "celery", - "cement", - "census", - "century", - "cereal", - "certain", - "chair", - "chalk", - "champion", - "change", - "chaos", - "chapter", - "charge", - "chase", - "chat", - "cheap", - "check", - "cheese", - "chef", - "cherry", - "chest", - "chicken", - "chief", - "child", - "chimney", - "choice", - "choose", - "chronic", - "chuckle", - "chunk", - "churn", - "cigar", - "cinnamon", - "circle", - "citizen", - "city", - "civil", - "claim", - "clap", - "clarify", - "claw", - "clay", - "clean", - "clerk", - "clever", - "click", - "client", - "cliff", - "climb", - "clinic", - "clip", - "clock", - "clog", - "close", - "cloth", - "cloud", - "clown", - "club", - "clump", - "cluster", - "clutch", - "coach", - "coast", - "coconut", - "code", - "coffee", - "coil", - "coin", - "collect", - "color", - "column", - "combine", - "come", - "comfort", - "comic", - "common", - "company", - "concert", - "conduct", - "confirm", - "congress", - "connect", - "consider", - "control", - "convince", - "cook", - "cool", - "copper", - "copy", - "coral", - "core", - "corn", - "correct", - "cost", - "cotton", - "couch", - "country", - "couple", - "course", - "cousin", - "cover", - "coyote", - "crack", - "cradle", - "craft", - "cram", - "crane", - "crash", - "crater", - "crawl", - "crazy", - "cream", - "credit", - "creek", - "crew", - "cricket", - "crime", - "crisp", - "critic", - "crop", - "cross", - "crouch", - "crowd", - "crucial", - "cruel", - "cruise", - "crumble", - "crunch", - "crush", - "cry", - "crystal", - "cube", - "culture", - "cup", - "cupboard", - "curious", - "current", - "curtain", - "curve", - "cushion", - "custom", - "cute", - "cycle", - "dad", - "damage", - "damp", - "dance", - "danger", - "daring", - "dash", - "daughter", - "dawn", - "day", - "deal", - "debate", - "debris", - "decade", - "december", - "decide", - "decline", - "decorate", - "decrease", - "deer", - "defense", - "define", - "defy", - "degree", - "delay", - "deliver", - "demand", - "demise", - "denial", - "dentist", - "deny", - "depart", - "depend", - "deposit", - "depth", - "deputy", - "derive", - "describe", - "desert", - "design", - "desk", - "despair", - "destroy", - "detail", - "detect", - "develop", - "device", - "devote", - "diagram", - "dial", - "diamond", - "diary", - "dice", - "diesel", - "diet", - "differ", - "digital", - "dignity", - "dilemma", - "dinner", - "dinosaur", - "direct", - "dirt", - "disagree", - "discover", - "disease", - "dish", - "dismiss", - "disorder", - "display", - "distance", - "divert", - "divide", - "divorce", - "dizzy", - "doctor", - "document", - "dog", - "doll", - "dolphin", - "domain", - "donate", - "donkey", - "donor", - "door", - "dose", - "double", - "dove", - "draft", - "dragon", - "drama", - "drastic", - "draw", - "dream", - "dress", - "drift", - "drill", - "drink", - "drip", - "drive", - "drop", - "drum", - "dry", - "duck", - "dumb", - "dune", - "during", - "dust", - "dutch", - "duty", - "dwarf", - "dynamic", - "eager", - "eagle", - "early", - "earn", - "earth", - "easily", - "east", - "easy", - "echo", - "ecology", - "economy", - "edge", - "edit", - "educate", - "effort", - "egg", - "eight", - "either", - "elbow", - "elder", - "electric", - "elegant", - "element", - "elephant", - "elevator", - "elite", - "else", - "embark", - "embody", - "embrace", - "emerge", - "emotion", - "employ", - "empower", - "empty", - "enable", - "enact", - "end", - "endless", - "endorse", - "enemy", - "energy", - "enforce", - "engage", - "engine", - "enhance", - "enjoy", - "enlist", - "enough", - "enrich", - "enroll", - "ensure", - "enter", - "entire", - "entry", - "envelope", - "episode", - "equal", - "equip", - "era", - "erase", - "erode", - "erosion", - "error", - "erupt", - "escape", - "essay", - "essence", - "estate", - "eternal", - "ethics", - "evidence", - "evil", - "evoke", - "evolve", - "exact", - "example", - "excess", - "exchange", - "excite", - "exclude", - "excuse", - "execute", - "exercise", - "exhaust", - "exhibit", - "exile", - "exist", - "exit", - "exotic", - "expand", - "expect", - "expire", - "explain", - "expose", - "express", - "extend", - "extra", - "eye", - "eyebrow", - "fabric", - "face", - "faculty", - "fade", - "faint", - "faith", - "fall", - "false", - "fame", - "family", - "famous", - "fan", - "fancy", - "fantasy", - "farm", - "fashion", - "fat", - "fatal", - "father", - "fatigue", - "fault", - "favorite", - "feature", - "february", - "federal", - "fee", - "feed", - "feel", - "female", - "fence", - "festival", - "fetch", - "fever", - "few", - "fiber", - "fiction", - "field", - "figure", - "file", - "film", - "filter", - "final", - "find", - "fine", - "finger", - "finish", - "fire", - "firm", - "first", - "fiscal", - "fish", - "fit", - "fitness", - "fix", - "flag", - "flame", - "flash", - "flat", - "flavor", - "flee", - "flight", - "flip", - "float", - "flock", - "floor", - "flower", - "fluid", - "flush", - "fly", - "foam", - "focus", - "fog", - "foil", - "fold", - "follow", - "food", - "foot", - "force", - "forest", - "forget", - "fork", - "fortune", - "forum", - "forward", - "fossil", - "foster", - "found", - "fox", - "fragile", - "frame", - "frequent", - "fresh", - "friend", - "fringe", - "frog", - "front", - "frost", - "frown", - "frozen", - "fruit", - "fuel", - "fun", - "funny", - "furnace", - "fury", - "future", - "gadget", - "gain", - "galaxy", - "gallery", - "game", - "gap", - "garage", - "garbage", - "garden", - "garlic", - "garment", - "gas", - "gasp", - "gate", - "gather", - "gauge", - "gaze", - "general", - "genius", - "genre", - "gentle", - "genuine", - "gesture", - "ghost", - "giant", - "gift", - "giggle", - "ginger", - "giraffe", - "girl", - "give", - "glad", - "glance", - "glare", - "glass", - "glide", - "glimpse", - "globe", - "gloom", - "glory", - "glove", - "glow", - "glue", - "goat", - "goddess", - "gold", - "good", - "goose", - "gorilla", - "gospel", - "gossip", - "govern", - "gown", - "grab", - "grace", - "grain", - "grant", - "grape", - "grass", - "gravity", - "great", - "green", - "grid", - "grief", - "grit", - "grocery", - "group", - "grow", - "grunt", - "guard", - "guess", - "guide", - "guilt", - "guitar", - "gun", - "gym", - "habit", - "hair", - "half", - "hammer", - "hamster", - "hand", - "happy", - "harbor", - "hard", - "harsh", - "harvest", - "hat", - "have", - "hawk", - "hazard", - "head", - "health", - "heart", - "heavy", - "hedgehog", - "height", - "hello", - "helmet", - "help", - "hen", - "hero", - "hidden", - "high", - "hill", - "hint", - "hip", - "hire", - "history", - "hobby", - "hockey", - "hold", - "hole", - "holiday", - "hollow", - "home", - "honey", - "hood", - "hope", - "horn", - "horror", - "horse", - "hospital", - "host", - "hotel", - "hour", - "hover", - "hub", - "huge", - "human", - "humble", - "humor", - "hundred", - "hungry", - "hunt", - "hurdle", - "hurry", - "hurt", - "husband", - "hybrid", - "ice", - "icon", - "idea", - "identify", - "idle", - "ignore", - "ill", - "illegal", - "illness", - "image", - "imitate", - "immense", - "immune", - "impact", - "impose", - "improve", - "impulse", - "inch", - "include", - "income", - "increase", - "index", - "indicate", - "indoor", - "industry", - "infant", - "inflict", - "inform", - "inhale", - "inherit", - "initial", - "inject", - "injury", - "inmate", - "inner", - "innocent", - "input", - "inquiry", - "insane", - "insect", - "inside", - "inspire", - "install", - "intact", - "interest", - "into", - "invest", - "invite", - "involve", - "iron", - "island", - "isolate", - "issue", - "item", - "ivory", - "jacket", - "jaguar", - "jar", - "jazz", - "jealous", - "jeans", - "jelly", - "jewel", - "job", - "join", - "joke", - "journey", - "joy", - "judge", - "juice", - "jump", - "jungle", - "junior", - "junk", - "just", - "kangaroo", - "keen", - "keep", - "ketchup", - "key", - "kick", - "kid", - "kidney", - "kind", - "kingdom", - "kiss", - "kit", - "kitchen", - "kite", - "kitten", - "kiwi", - "knee", - "knife", - "knock", - "know", - "lab", - "label", - "labor", - "ladder", - "lady", - "lake", - "lamp", - "language", - "laptop", - "large", - "later", - "latin", - "laugh", - "laundry", - "lava", - "law", - "lawn", - "lawsuit", - "layer", - "lazy", - "leader", - "leaf", - "learn", - "leave", - "lecture", - "left", - "leg", - "legal", - "legend", - "leisure", - "lemon", - "lend", - "length", - "lens", - "leopard", - "lesson", - "letter", - "level", - "liar", - "liberty", - "library", - "license", - "life", - "lift", - "light", - "like", - "limb", - "limit", - "link", - "lion", - "liquid", - "list", - "little", - "live", - "lizard", - "load", - "loan", - "lobster", - "local", - "lock", - "logic", - "lonely", - "long", - "loop", - "lottery", - "loud", - "lounge", - "love", - "loyal", - "lucky", - "luggage", - "lumber", - "lunar", - "lunch", - "luxury", - "lyrics", - "machine", - "mad", - "magic", - "magnet", - "maid", - "mail", - "main", - "major", - "make", - "mammal", - "man", - "manage", - "mandate", - "mango", - "mansion", - "manual", - "maple", - "marble", - "march", - "margin", - "marine", - "market", - "marriage", - "mask", - "mass", - "master", - "match", - "material", - "math", - "matrix", - "matter", - "maximum", - "maze", - "meadow", - "mean", - "measure", - "meat", - "mechanic", - "medal", - "media", - "melody", - "melt", - "member", - "memory", - "mention", - "menu", - "mercy", - "merge", - "merit", - "merry", - "mesh", - "message", - "metal", - "method", - "middle", - "midnight", - "milk", - "million", - "mimic", - "mind", - "minimum", - "minor", - "minute", - "miracle", - "mirror", - "misery", - "miss", - "mistake", - "mix", - "mixed", - "mixture", - "mobile", - "model", - "modify", - "mom", - "moment", - "monitor", - "monkey", - "monster", - "month", - "moon", - "moral", - "more", - "morning", - "mosquito", - "mother", - "motion", - "motor", - "mountain", - "mouse", - "move", - "movie", - "much", - "muffin", - "mule", - "multiply", - "muscle", - "museum", - "mushroom", - "music", - "must", - "mutual", - "myself", - "mystery", - "myth", - "naive", - "name", - "napkin", - "narrow", - "nasty", - "nation", - "nature", - "near", - "neck", - "need", - "negative", - "neglect", - "neither", - "nephew", - "nerve", - "nest", - "net", - "network", - "neutral", - "never", - "news", - "next", - "nice", - "night", - "noble", - "noise", - "nominee", - "noodle", - "normal", - "north", - "nose", - "notable", - "note", - "nothing", - "notice", - "novel", - "now", - "nuclear", - "number", - "nurse", - "nut", - "oak", - "obey", - "object", - "oblige", - "obscure", - "observe", - "obtain", - "obvious", - "occur", - "ocean", - "october", - "odor", - "off", - "offer", - "office", - "often", - "oil", - "okay", - "old", - "olive", - "olympic", - "omit", - "once", - "one", - "onion", - "online", - "only", - "open", - "opera", - "opinion", - "oppose", - "option", - "orange", - "orbit", - "orchard", - "order", - "ordinary", - "organ", - "orient", - "original", - "orphan", - "ostrich", - "other", - "outdoor", - "outer", - "output", - "outside", - "oval", - "oven", - "over", - "own", - "owner", - "oxygen", - "oyster", - "ozone", - "pact", - "paddle", - "page", - "pair", - "palace", - "palm", - "panda", - "panel", - "panic", - "panther", - "paper", - "parade", - "parent", - "park", - "parrot", - "party", - "pass", - "patch", - "path", - "patient", - "patrol", - "pattern", - "pause", - "pave", - "payment", - "peace", - "peanut", - "pear", - "peasant", - "pelican", - "pen", - "penalty", - "pencil", - "people", - "pepper", - "perfect", - "permit", - "person", - "pet", - "phone", - "photo", - "phrase", - "physical", - "piano", - "picnic", - "picture", - "piece", - "pig", - "pigeon", - "pill", - "pilot", - "pink", - "pioneer", - "pipe", - "pistol", - "pitch", - "pizza", - "place", - "planet", - "plastic", - "plate", - "play", - "please", - "pledge", - "pluck", - "plug", - "plunge", - "poem", - "poet", - "point", - "polar", - "pole", - "police", - "pond", - "pony", - "pool", - "popular", - "portion", - "position", - "possible", - "post", - "potato", - "pottery", - "poverty", - "powder", - "power", - "practice", - "praise", - "predict", - "prefer", - "prepare", - "present", - "pretty", - "prevent", - "price", - "pride", - "primary", - "print", - "priority", - "prison", - "private", - "prize", - "problem", - "process", - "produce", - "profit", - "program", - "project", - "promote", - "proof", - "property", - "prosper", - "protect", - "proud", - "provide", - "public", - "pudding", - "pull", - "pulp", - "pulse", - "pumpkin", - "punch", - "pupil", - "puppy", - "purchase", - "purity", - "purpose", - "purse", - "push", - "put", - "puzzle", - "pyramid", - "quality", - "quantum", - "quarter", - "question", - "quick", - "quit", - "quiz", - "quote", - "rabbit", - "raccoon", - "race", - "rack", - "radar", - "radio", - "rail", - "rain", - "raise", - "rally", - "ramp", - "ranch", - "random", - "range", - "rapid", - "rare", - "rate", - "rather", - "raven", - "raw", - "razor", - "ready", - "real", - "reason", - "rebel", - "rebuild", - "recall", - "receive", - "recipe", - "record", - "recycle", - "reduce", - "reflect", - "reform", - "refuse", - "region", - "regret", - "regular", - "reject", - "relax", - "release", - "relief", - "rely", - "remain", - "remember", - "remind", - "remove", - "render", - "renew", - "rent", - "reopen", - "repair", - "repeat", - "replace", - "report", - "require", - "rescue", - "resemble", - "resist", - "resource", - "response", - "result", - "retire", - "retreat", - "return", - "reunion", - "reveal", - "review", - "reward", - "rhythm", - "rib", - "ribbon", - "rice", - "rich", - "ride", - "ridge", - "rifle", - "right", - "rigid", - "ring", - "riot", - "ripple", - "risk", - "ritual", - "rival", - "river", - "road", - "roast", - "robot", - "robust", - "rocket", - "romance", - "roof", - "rookie", - "room", - "rose", - "rotate", - "rough", - "round", - "route", - "royal", - "rubber", - "rude", - "rug", - "rule", - "run", - "runway", - "rural", - "sad", - "saddle", - "sadness", - "safe", - "sail", - "salad", - "salmon", - "salon", - "salt", - "salute", - "same", - "sample", - "sand", - "satisfy", - "satoshi", - "sauce", - "sausage", - "save", - "say", - "scale", - "scan", - "scare", - "scatter", - "scene", - "scheme", - "school", - "science", - "scissors", - "scorpion", - "scout", - "scrap", - "screen", - "script", - "scrub", - "sea", - "search", - "season", - "seat", - "second", - "secret", - "section", - "security", - "seed", - "seek", - "segment", - "select", - "sell", - "seminar", - "senior", - "sense", - "sentence", - "series", - "service", - "session", - "settle", - "setup", - "seven", - "shadow", - "shaft", - "shallow", - "share", - "shed", - "shell", - "sheriff", - "shield", - "shift", - "shine", - "ship", - "shiver", - "shock", - "shoe", - "shoot", - "shop", - "short", - "shoulder", - "shove", - "shrimp", - "shrug", - "shuffle", - "shy", - "sibling", - "sick", - "side", - "siege", - "sight", - "sign", - "silent", - "silk", - "silly", - "silver", - "similar", - "simple", - "since", - "sing", - "siren", - "sister", - "situate", - "six", - "size", - "skate", - "sketch", - "ski", - "skill", - "skin", - "skirt", - "skull", - "slab", - "slam", - "sleep", - "slender", - "slice", - "slide", - "slight", - "slim", - "slogan", - "slot", - "slow", - "slush", - "small", - "smart", - "smile", - "smoke", - "smooth", - "snack", - "snake", - "snap", - "sniff", - "snow", - "soap", - "soccer", - "social", - "sock", - "soda", - "soft", - "solar", - "soldier", - "solid", - "solution", - "solve", - "someone", - "song", - "soon", - "sorry", - "sort", - "soul", - "sound", - "soup", - "source", - "south", - "space", - "spare", - "spatial", - "spawn", - "speak", - "special", - "speed", - "spell", - "spend", - "sphere", - "spice", - "spider", - "spike", - "spin", - "spirit", - "split", - "spoil", - "sponsor", - "spoon", - "sport", - "spot", - "spray", - "spread", - "spring", - "spy", - "square", - "squeeze", - "squirrel", - "stable", - "stadium", - "staff", - "stage", - "stairs", - "stamp", - "stand", - "start", - "state", - "stay", - "steak", - "steel", - "stem", - "step", - "stereo", - "stick", - "still", - "sting", - "stock", - "stomach", - "stone", - "stool", - "story", - "stove", - "strategy", - "street", - "strike", - "strong", - "struggle", - "student", - "stuff", - "stumble", - "style", - "subject", - "submit", - "subway", - "success", - "such", - "sudden", - "suffer", - "sugar", - "suggest", - "suit", - "summer", - "sun", - "sunny", - "sunset", - "super", - "supply", - "supreme", - "sure", - "surface", - "surge", - "surprise", - "surround", - "survey", - "suspect", - "sustain", - "swallow", - "swamp", - "swap", - "swarm", - "swear", - "sweet", - "swift", - "swim", - "swing", - "switch", - "sword", - "symbol", - "symptom", - "syrup", - "system", - "table", - "tackle", - "tag", - "tail", - "talent", - "talk", - "tank", - "tape", - "target", - "task", - "taste", - "tattoo", - "taxi", - "teach", - "team", - "tell", - "ten", - "tenant", - "tennis", - "tent", - "term", - "test", - "text", - "thank", - "that", - "theme", - "then", - "theory", - "there", - "they", - "thing", - "this", - "thought", - "three", - "thrive", - "throw", - "thumb", - "thunder", - "ticket", - "tide", - "tiger", - "tilt", - "timber", - "time", - "tiny", - "tip", - "tired", - "tissue", - "title", - "toast", - "tobacco", - "today", - "toddler", - "toe", - "together", - "toilet", - "token", - "tomato", - "tomorrow", - "tone", - "tongue", - "tonight", - "tool", - "tooth", - "top", - "topic", - "topple", - "torch", - "tornado", - "tortoise", - "toss", - "total", - "tourist", - "toward", - "tower", - "town", - "toy", - "track", - "trade", - "traffic", - "tragic", - "train", - "transfer", - "trap", - "trash", - "travel", - "tray", - "treat", - "tree", - "trend", - "trial", - "tribe", - "trick", - "trigger", - "trim", - "trip", - "trophy", - "trouble", - "truck", - "true", - "truly", - "trumpet", - "trust", - "truth", - "try", - "tube", - "tuition", - "tumble", - "tuna", - "tunnel", - "turkey", - "turn", - "turtle", - "twelve", - "twenty", - "twice", - "twin", - "twist", - "two", - "type", - "typical", - "ugly", - "umbrella", - "unable", - "unaware", - "uncle", - "uncover", - "under", - "undo", - "unfair", - "unfold", - "unhappy", - "uniform", - "unique", - "unit", - "universe", - "unknown", - "unlock", - "until", - "unusual", - "unveil", - "update", - "upgrade", - "uphold", - "upon", - "upper", - "upset", - "urban", - "urge", - "usage", - "use", - "used", - "useful", - "useless", - "usual", - "utility", - "vacant", - "vacuum", - "vague", - "valid", - "valley", - "valve", - "van", - "vanish", - "vapor", - "various", - "vast", - "vault", - "vehicle", - "velvet", - "vendor", - "venture", - "venue", - "verb", - "verify", - "version", - "very", - "vessel", - "veteran", - "viable", - "vibrant", - "vicious", - "victory", - "video", - "view", - "village", - "vintage", - "violin", - "virtual", - "virus", - "visa", - "visit", - "visual", - "vital", - "vivid", - "vocal", - "voice", - "void", - "volcano", - "volume", - "vote", - "voyage", - "wage", - "wagon", - "wait", - "walk", - "wall", - "walnut", - "want", - "warfare", - "warm", - "warrior", - "wash", - "wasp", - "waste", - "water", - "wave", - "way", - "wealth", - "weapon", - "wear", - "weasel", - "weather", - "web", - "wedding", - "weekend", - "weird", - "welcome", - "west", - "wet", - "whale", - "what", - "wheat", - "wheel", - "when", - "where", - "whip", - "whisper", - "wide", - "width", - "wife", - "wild", - "will", - "win", - "window", - "wine", - "wing", - "wink", - "winner", - "winter", - "wire", - "wisdom", - "wise", - "wish", - "witness", - "wolf", - "woman", - "wonder", - "wood", - "wool", - "word", - "work", - "world", - "worry", - "worth", - "wrap", - "wreck", - "wrestle", - "wrist", - "write", - "wrong", - "yard", - "year", - "yellow", - "you", - "young", - "youth", - "zebra", - "zero", - "zone", - "zoo" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "English"; - populate_maps(); - } - }; -} - -#endif +// Word list originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin +// Copyright (c) 2014, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef ENGLISH_H +#define ENGLISH_H + +#include +#include +#include "language_base.h" +#include + +namespace Language +{ + class English: public Base + { + public: + English() + { + word_list = new std::vector({ + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "English"; + populate_maps(); + } + }; +} + +#endif diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h index cfbbce787..1c53a808e 100644 --- a/src/mnemonics/japanese.h +++ b/src/mnemonics/japanese.h @@ -1,2074 +1,1681 @@ -#ifndef JAPANESE_H -#define JAPANESE_H - -#include -#include -#include "language_base.h" -#include - -namespace Language -{ - class Japanese: public Base - { - public: - Japanese() - { - word_list = new std::vector({ - "あい", - "あいこくしん", - "あう", - "あお", - "あおぞら", - "あか", - "あかちゃん", - "あき", - "あきる", - "あく", - "あさ", - "あさひ", - "あし", - "あずき", - "あせ", - "あそぶ", - "あたる", - "あつい", - "あな", - "あに", - "あね", - "あひる", - "あまい", - "あみ", - "あめ", - "あめりか", - "あやまる", - "あゆむ", - "あらいぐま", - "あらし", - "あり", - "ある", - "あれ", - "あわ", - "あんこ", - "いう", - "いえ", - "いおん", - "いか", - "いがい", - "いかいよう", - "いけ", - "いけん", - "いこく", - "いこつ", - "いさん", - "いし", - "いじゅう", - "いす", - "いせい", - "いせえび", - "いせかい", - "いせき", - "いそうろう", - "いそがしい", - "いたりあ", - "いてざ", - "いてん", - "いと", - "いない", - "いなか", - "いぬ", - "いね", - "いのち", - "いのる", - "いはつ", - "いはん", - "いびき", - "いひん", - "いふく", - "いへん", - "いほう", - "いま", - "いみ", - "いみん", - "いも", - "いもうと", - "いもたれ", - "いもり", - "いや", - "いやす", - "いよかん", - "いよく", - "いらい", - "いらすと", - "いりぐち", - "いりょう", - "いりょうひ", - "いる", - "いれい", - "いれもの", - "いれる", - "いろ", - "いろえんぴつ", - "いわ", - "いわう", - "いわかん", - "いんげんまめ", - "うえ", - "うおざ", - "うかぶ", - "うきわ", - "うく", - "うくらいな", - "うくれれ", - "うけつぐ", - "うけつけ", - "うける", - "うごく", - "うこん", - "うさぎ", - "うし", - "うしなう", - "うしろ", - "うしろがみ", - "うすい", - "うすぎ", - "うせつ", - "うそ", - "うた", - "うちあわせ", - "うちがわ", - "うちき", - "うつ", - "うなぎ", - "うなじ", - "うに", - "うねる", - "うのう", - "うぶげ", - "うぶごえ", - "うま", - "うまれる", - "うみ", - "うむ", - "うめ", - "うめる", - "うもう", - "うやまう", - "うよく", - "うら", - "うらない", - "うる", - "うるさい", - "うれしい", - "うろこ", - "うわき", - "うわさ", - "えい", - "えいえん", - "えいが", - "えいぎょう", - "えいご", - "えおり", - "えき", - "えきたい", - "えくせる", - "えさ", - "えしゃく", - "えすて", - "えつらん", - "えと", - "えのぐ", - "えび", - "えほうまき", - "えほん", - "えま", - "えまき", - "えもじ", - "えもの", - "えらい", - "えらぶ", - "えり", - "えりあ", - "える", - "えん", - "えんえん", - "おきる", - "おく", - "おけ", - "おこる", - "おしえる", - "おやゆび", - "おらんだ", - "かあつ", - "かい", - "かう", - "かお", - "かがし", - "かき", - "かく", - "かこ", - "かさ", - "かす", - "かち", - "かつ", - "かなざわし", - "かに", - "かね", - "かのう", - "かほう", - "かほご", - "かまぼこ", - "かみ", - "かむ", - "かめれおん", - "かも", - "かゆい", - "からい", - "かるい", - "かろう", - "かわ", - "かわら", - "きあい", - "きあつ", - "きいろ", - "ぎいん", - "きうい", - "きうん", - "きえる", - "きおう", - "きおく", - "きおち", - "きおん", - "きか", - "きかい", - "きかく", - "きかん", - "きかんしゃ", - "きぎ", - "ききて", - "きく", - "きくばり", - "きくらげ", - "きけん", - "きけんせい", - "きこう", - "きこえる", - "きこく", - "きさい", - "きさく", - "きさま", - "きさらぎ", - "きし", - "きしゅ", - "きす", - "きすう", - "きせい", - "きせき", - "きせつ", - "きそ", - "きそう", - "きそく", - "きぞく", - "ぎそく", - "きぞん", - "きた", - "きたえる", - "きち", - "きちょう", - "きつえん", - "きつつき", - "きつね", - "きてい", - "きどう", - "きどく", - "きない", - "きなが", - "きぬ", - "きぬごし", - "きねん", - "きのう", - "きはく", - "きびしい", - "きひん", - "きふ", - "ぎふ", - "きふく", - "ぎぼ", - "きほう", - "きぼう", - "きほん", - "きまる", - "きみ", - "きみつ", - "ぎむ", - "きむずかしい", - "きめ", - "きめる", - "きもだめし", - "きもち", - "きやく", - "きよう", - "きらい", - "きらく", - "きり", - "きる", - "きれい", - "きれつ", - "きろく", - "ぎろん", - "きわめる", - "ぐあい", - "くい", - "くいず", - "くうかん", - "くうき", - "くうぐん", - "くうこう", - "くうそう", - "くうふく", - "くうぼ", - "くかん", - "くき", - "くきょう", - "くげん", - "ぐこう", - "くさ", - "くさい", - "くさき", - "くさばな", - "くさる", - "くし", - "くしゃみ", - "くしょう", - "くすのき", - "くすり", - "くすりゆび", - "くせ", - "くせげ", - "くせん", - "くたびれる", - "くち", - "くちこみ", - "くちさき", - "くつ", - "くつした", - "くつろぐ", - "くとうてん", - "くどく", - "くなん", - "くに", - "くねくね", - "くのう", - "くふう", - "くま", - "くみあわせ", - "くみたてる", - "くむ", - "くめる", - "くやくしょ", - "くらす", - "くり", - "くれる", - "くろ", - "くろう", - "くわしい", - "ぐんじょ", - "けあな", - "けいけん", - "けいこ", - "けいさい", - "けいさつ", - "げいのうじん", - "けいれき", - "けいれつ", - "けいれん", - "けいろ", - "けおとす", - "けおりもの", - "けが", - "げき", - "げきか", - "げきげん", - "げきだん", - "げきちん", - "げきど", - "げきは", - "げきやく", - "げこう", - "げこくじょう", - "けさ", - "げざい", - "けさき", - "げざん", - "けしき", - "けしごむ", - "けしょう", - "けす", - "げすと", - "けた", - "げた", - "けたば", - "けち", - "けちゃっぷ", - "けちらす", - "けつ", - "けつあつ", - "けつい", - "けつえき", - "けっこん", - "けつじょ", - "けってい", - "けつまつ", - "げつようび", - "げつれい", - "けつろん", - "げどく", - "けとばす", - "けとる", - "けなげ", - "けなす", - "けなみ", - "けぬき", - "げねつ", - "けねん", - "けはい", - "げひん", - "けぶかい", - "げぼく", - "けまり", - "けみかる", - "けむし", - "けむり", - "けもの", - "けらい", - "ける", - "げろ", - "けろけろ", - "けわしい", - "けんい", - "けんえつ", - "けんお", - "けんか", - "げんき", - "けんきゅう", - "けんきょ", - "けんけい", - "けんけつ", - "けんげん", - "けんこう", - "けんさ", - "けんさく", - "けんしゅう", - "けんしゅつ", - "けんしん", - "けんすう", - "けんそう", - "げんそう", - "けんそん", - "げんち", - "けんちく", - "けんてい", - "げんてい", - "けんとう", - "けんない", - "けんにん", - "げんぶつ", - "けんま", - "けんみん", - "けんめい", - "けんらん", - "けんり", - "けんりつ", - "こあくま", - "こい", - "ごい", - "こいびと", - "こうい", - "こうえん", - "こうか", - "こうかい", - "こうかん", - "こうさい", - "こうさん", - "こうしん", - "こうず", - "こうすい", - "こうせん", - "こうそう", - "こうそく", - "こうたい", - "こうちゃ", - "こうつう", - "こうてい", - "こうとうぶ", - "こうない", - "こうはい", - "こうはん", - "こうもく", - "こえ", - "こえる", - "こおり", - "ごがつ", - "こかん", - "こく", - "こくご", - "こくない", - "こくはく", - "こけい", - "こける", - "ここ", - "こころ", - "ごさ", - "こさめ", - "こし", - "こしつ", - "こす", - "こすう", - "こせい", - "こせき", - "こぜん", - "こそだて", - "こたい", - "こたえる", - "こたつ", - "こちょう", - "こっか", - "こつこつ", - "こつばん", - "こつぶ", - "こてい", - "こてん", - "こと", - "ことがら", - "ことし", - "こなごな", - "こねこね", - "このまま", - "このみ", - "このよ", - "こはん", - "ごはん", - "ごび", - "こひつじ", - "こふう", - "こふん", - "こぼれる", - "ごま", - "こまかい", - "こまつし", - "こまつな", - "こまる", - "こむ", - "こむぎこ", - "こめ", - "こもじ", - "こもち", - "こもの", - "こもん", - "こや", - "こやく", - "こやま", - "こゆう", - "こゆび", - "こよい", - "こよう", - "こりる", - "こる", - "これくしょん", - "ころっけ", - "こわもて", - "こわれる", - "こん", - "こんいん", - "こんかい", - "こんき", - "こんしゅう", - "こんしゅん", - "こんすい", - "こんだて", - "こんだん", - "こんとん", - "こんなん", - "こんびに", - "こんぽう", - "こんぽん", - "こんまけ", - "こんや", - "こんやく", - "こんれい", - "こんわく", - "さいかい", - "さいがい", - "さいきん", - "さいご", - "さいこん", - "さいしょ", - "さうな", - "さお", - "さかいし", - "さかな", - "さかみち", - "さき", - "さく", - "さくし", - "さくじょ", - "さくひん", - "さくら", - "さけ", - "さこく", - "さこつ", - "さたん", - "さつえい", - "さっか", - "さっきょく", - "さつじん", - "さつたば", - "さつまいも", - "さてい", - "さといも", - "さとう", - "さとおや", - "さとる", - "さのう", - "さば", - "さばく", - "さべつ", - "さほう", - "さほど", - "さます", - "さみしい", - "さみだれ", - "さむけ", - "さめ", - "さめる", - "さやえんどう", - "さゆう", - "さよう", - "さよく", - "さら", - "さらだ", - "さる", - "さわやか", - "さわる", - "さんいん", - "さんか", - "さんきゃく", - "さんこう", - "さんさい", - "さんざん", - "さんすう", - "さんせい", - "さんそ", - "さんそん", - "さんち", - "さんちょう", - "さんま", - "さんみ", - "さんらん", - "しあい", - "しあげ", - "しあさって", - "しあわせ", - "しいく", - "しいん", - "しうち", - "しえい", - "しお", - "しおけ", - "しか", - "しかい", - "しかく", - "じかん", - "した", - "したぎ", - "したて", - "したみ", - "しちょう", - "しちょうそん", - "しちりん", - "じつじ", - "してい", - "してき", - "してつ", - "してん", - "しとう", - "じどう", - "しなぎれ", - "しなもの", - "しなん", - "しねま", - "しねん", - "しのぐ", - "しのぶ", - "しはい", - "しばかり", - "しはつ", - "じはつ", - "しはらい", - "しはん", - "しひょう", - "じふ", - "しふく", - "じぶん", - "しへい", - "しほう", - "しほん", - "しま", - "しまう", - "しまる", - "しみ", - "じみ", - "しみん", - "じむ", - "しむける", - "しめい", - "しめる", - "しもん", - "しゃいん", - "しゃうん", - "しゃおん", - "しゃかい", - "じゃがいも", - "しやくしょ", - "しゃくほう", - "しゃけん", - "しゃこ", - "しゃこう", - "しゃざい", - "しゃしん", - "しゃせん", - "しゃそう", - "しゃたい", - "しゃたく", - "しゃちょう", - "しゃっきん", - "じゃま", - "じゃり", - "しゃりょう", - "しゃりん", - "しゃれい", - "しゅうえん", - "しゅうかい", - "しゅうきん", - "しゅうけい", - "しゅうりょう", - "しゅらば", - "しょうか", - "しょうかい", - "しょうきん", - "しょうじき", - "しょくざい", - "しょくたく", - "しょっけん", - "しょどう", - "しょもつ", - "しん", - "しんか", - "しんこう", - "しんせいじ", - "しんちく", - "しんりん", - "すあげ", - "すあし", - "すあな", - "ずあん", - "すいか", - "すいとう", - "すう", - "すうがく", - "すうじつ", - "すうせん", - "すおどり", - "すき", - "すきま", - "すく", - "すくう", - "すくない", - "すける", - "すこし", - "ずさん", - "すし", - "すずしい", - "すすめる", - "すそ", - "ずっしり", - "ずっと", - "すで", - "すてき", - "すてる", - "すな", - "すなっく", - "すなっぷ", - "すね", - "すねる", - "すのこ", - "すはだ", - "すばらしい", - "ずひょう", - "ずぶぬれ", - "すぶり", - "すふれ", - "すべて", - "すべる", - "ずほう", - "すぼん", - "すまい", - "すみ", - "すむ", - "すめし", - "すもう", - "すやき", - "すらいす", - "すらいど", - "すらすら", - "すり", - "する", - "するめ", - "すれちがう", - "すろっと", - "すわる", - "すんぜん", - "すんぽう", - "せあぶら", - "せいか", - "せいかい", - "せいかつ", - "せおう", - "せかい", - "せかいかん", - "せかいし", - "せかいじゅう", - "せき", - "せきにん", - "せきむ", - "せきゆ", - "せきらんうん", - "せけん", - "せこう", - "せすじ", - "せたい", - "せたけ", - "せっかい", - "せっかく", - "せっき", - "せっきゃく", - "せっきょく", - "せっきん", - "ぜっく", - "せっけん", - "せっこつ", - "せっさたくま", - "せつぞく", - "せつだん", - "せつでん", - "せっぱん", - "せつび", - "せつぶん", - "せつめい", - "せつりつ", - "せと", - "せなか", - "せのび", - "せはば", - "せぼね", - "せまい", - "せまる", - "せみ", - "せめる", - "せもたれ", - "せりふ", - "せわ", - "せん", - "ぜんあく", - "せんい", - "せんえい", - "せんか", - "せんきょ", - "せんく", - "せんけつ", - "せんげん", - "ぜんご", - "せんさい", - "せんし", - "せんしゅ", - "せんす", - "せんすい", - "せんせい", - "せんぞ", - "せんそう", - "せんたく", - "せんち", - "せんちゃ", - "せんちゃく", - "せんちょう", - "せんてい", - "せんとう", - "せんぬき", - "せんねん", - "ぜんぶ", - "せんぷうき", - "せんぷく", - "ぜんぽう", - "せんむ", - "せんめい", - "せんめんじょ", - "せんもん", - "せんやく", - "せんゆう", - "せんよう", - "ぜんら", - "ぜんりゃく", - "せんりょく", - "せんれい", - "せんろ", - "そあく", - "そいとげる", - "そいね", - "そう", - "ぞう", - "そうがんきょう", - "そうき", - "そうご", - "そうなん", - "そうび", - "そうひょう", - "そうめん", - "そうり", - "そうりょ", - "そえもの", - "そえん", - "そかい", - "そがい", - "そぐ", - "そげき", - "そこう", - "そこそこ", - "そざい", - "そし", - "そしな", - "そせい", - "そせん", - "そそぐ", - "そだてる", - "そつう", - "そつえん", - "そっかん", - "そつぎょう", - "そっけつ", - "そっこう", - "そっせん", - "そっと", - "そで", - "そと", - "そとがわ", - "そとづら", - "そなえる", - "そなた", - "そば", - "そふ", - "そふぼ", - "そぼ", - "そぼく", - "そぼろ", - "そまつ", - "そまる", - "そむく", - "そむりえ", - "そめる", - "そもそも", - "そよかぜ", - "そら", - "そらまめ", - "そり", - "そる", - "そろう", - "そんかい", - "そんけい", - "そんざい", - "そんしつ", - "そんしょう", - "そんぞく", - "そんちょう", - "ぞんび", - "ぞんぶん", - "そんみん", - "たあい", - "たいいん", - "たいうん", - "たいえき", - "たいおう", - "だいおう", - "たいか", - "たいかい", - "たいき", - "たいきけん", - "たいぐう", - "たいくつ", - "たいけい", - "たいけつ", - "たいけん", - "たいこ", - "たいこう", - "たいさ", - "たいさん", - "たいしゅつ", - "だいじょうぶ", - "たいしょく", - "だいず", - "だいすき", - "たいせい", - "たいせつ", - "たいせん", - "たいそう", - "たいちょう", - "だいちょう", - "たいとう", - "たいない", - "たいねつ", - "たいのう", - "たいは", - "たいはん", - "たいひ", - "たいふう", - "たいへん", - "たいほ", - "たいまつばな", - "たいまん", - "たいみんぐ", - "たいむ", - "たいめん", - "たいやき", - "たいやく", - "たいよう", - "たいら", - "たいりょう", - "たいりょく", - "たいる", - "たいわ", - "たいわん", - "たうえ", - "たえる", - "たおす", - "たおる", - "たかい", - "たかね", - "たき", - "たきび", - "たくさん", - "たけ", - "たこ", - "たこく", - "たこやき", - "たさい", - "ださい", - "たしざん", - "たす", - "たすける", - "たそがれ", - "たたかう", - "たたく", - "たちば", - "たちばな", - "たつ", - "だっかい", - "だっきゃく", - "だっこ", - "だっしめん", - "だっしゅつ", - "だったい", - "たて", - "たてる", - "たとえる", - "たな", - "たにん", - "たぬき", - "たね", - "たのしみ", - "たはつ", - "たび", - "たぶん", - "たべる", - "たぼう", - "たほうめん", - "たま", - "たまご", - "たまる", - "だむる", - "ためいき", - "ためす", - "ためる", - "たもつ", - "たやすい", - "たよる", - "たら", - "たらす", - "たりきほんがん", - "たりょう", - "たりる", - "たる", - "たると", - "たれる", - "たれんと", - "たろっと", - "たわむれる", - "たん", - "だんあつ", - "たんい", - "たんおん", - "たんか", - "たんき", - "たんけん", - "たんご", - "たんさく", - "たんさん", - "たんし", - "たんしゅく", - "たんじょうび", - "だんせい", - "たんそく", - "たんたい", - "たんち", - "だんち", - "たんちょう", - "たんてい", - "たんてき", - "たんとう", - "だんな", - "たんにん", - "だんねつ", - "たんのう", - "たんぴん", - "たんまつ", - "たんめい", - "だんれつ", - "だんろ", - "だんわ", - "ちあい", - "ちあん", - "ちい", - "ちいき", - "ちいさい", - "ちえ", - "ちえん", - "ちか", - "ちかい", - "ちきゅう", - "ちきん", - "ちけい", - "ちけいず", - "ちけん", - "ちこく", - "ちさい", - "ちしき", - "ちしりょう", - "ちず", - "ちせい", - "ちそう", - "ちたい", - "ちたん", - "ちちおや", - "ちつじょ", - "ちてき", - "ちてん", - "ちぬき", - "ちぬり", - "ちのう", - "ちひょう", - "ちへいせん", - "ちほう", - "ちまた", - "ちみつ", - "ちみどろ", - "ちめいど", - "ちゅうい", - "ちゅうおう", - "ちゅうおうく", - "ちゅうがっこう", - "ちゅうごく", - "ちゆりょく", - "ちょうさ", - "ちょうし", - "ちらし", - "ちらみ", - "ちり", - "ちりがみ", - "ちる", - "ちるど", - "ちわわ", - "ちんたい", - "ちんもく", - "ついか", - "つうか", - "つうじょう", - "つうじる", - "つうはん", - "つうわ", - "つえ", - "つかう", - "つかれる", - "つき", - "つく", - "つくね", - "つくる", - "つけね", - "つける", - "つごう", - "つた", - "つたえる", - "つち", - "つつじ", - "つとめる", - "つな", - "つながる", - "つなみ", - "つねづね", - "つの", - "つのる", - "つば", - "つぶ", - "つぶす", - "つぼ", - "つま", - "つまらない", - "つまる", - "つみ", - "つみき", - "つむ", - "つめたい", - "つもる", - "つや", - "つよい", - "つり", - "つるぼ", - "つるみく", - "つわもの", - "つわり", - "てあし", - "てあて", - "てあみ", - "ていか", - "ていき", - "ていけい", - "ていけつ", - "ていけつあつ", - "ていこく", - "ていさつ", - "ていし", - "ていしゃ", - "ていせい", - "ていたい", - "ていど", - "ていねい", - "ていひょう", - "ていへん", - "ていぼう", - "てうち", - "ておくれ", - "てき", - "てくび", - "てこ", - "てさぎょう", - "てさげ", - "でし", - "てすり", - "てそう", - "てちがい", - "てちょう", - "てつがく", - "てつづき", - "てつや", - "でぬかえ", - "てぬき", - "てぬぐい", - "てのひら", - "てはい", - "てふだ", - "てほどき", - "てほん", - "てま", - "てまえ", - "てまきずし", - "てみじか", - "てみやげ", - "てら", - "てらす", - "でる", - "てれび", - "てろ", - "てわけ", - "てわたし", - "でんあつ", - "てんい", - "てんいん", - "てんかい", - "てんき", - "てんぐ", - "てんけん", - "でんげん", - "てんごく", - "てんさい", - "てんすう", - "でんち", - "てんてき", - "てんとう", - "てんない", - "てんぷ", - "てんぷら", - "てんぼうだい", - "てんめつ", - "てんらく", - "てんらんかい", - "でんりゅう", - "でんりょく", - "でんわ", - "どあ", - "どあい", - "といれ", - "とうむぎ", - "とおい", - "とおす", - "とかい", - "とかす", - "ときおり", - "ときどき", - "とくい", - "とくてい", - "とくてん", - "とくべつ", - "とけい", - "とける", - "とさか", - "とし", - "としょかん", - "とそう", - "とたん", - "とち", - "とちゅう", - "とつぜん", - "とつにゅう", - "ととのえる", - "とない", - "となえる", - "となり", - "とのさま", - "とばす", - "とぶ", - "とほ", - "とほう", - "どま", - "とまる", - "とら", - "とり", - "とる", - "とんかつ", - "ない", - "ないか", - "ないかく", - "ないこう", - "ないしょ", - "ないす", - "ないせん", - "ないそう", - "ないぞう", - "なおす", - "なく", - "なこうど", - "なさけ", - "なし", - "なす", - "なぜ", - "なぞ", - "なたでここ", - "なつ", - "なっとう", - "なつやすみ", - "ななおし", - "なにごと", - "なにもの", - "なにわ", - "なは", - "なび", - "なふだ", - "なべ", - "なまいき", - "なまえ", - "なまみ", - "なみ", - "なみだ", - "なめらか", - "なめる", - "なやむ", - "ならぶ", - "なる", - "なれる", - "なわ", - "なわとび", - "なわばり", - "にあう", - "にいがた", - "にうけ", - "におい", - "にかい", - "にがて", - "にきび", - "にく", - "にくしみ", - "にくまん", - "にげる", - "にさんかたんそ", - "にし", - "にしき", - "にす", - "にせもの", - "にちじ", - "にちじょう", - "にちようび", - "にっか", - "にっき", - "にっけい", - "にっこう", - "にっさん", - "にっしょく", - "にっすう", - "にっせき", - "にってい", - "になう", - "にほん", - "にまめ", - "にもつ", - "にやり", - "にゅういん", - "にゅうか", - "にゅうし", - "にゅうしゃ", - "にゅうだん", - "にゅうぶ", - "にら", - "にりんしゃ", - "にる", - "にわ", - "にわとり", - "にんい", - "にんか", - "にんき", - "にんげん", - "にんしき", - "にんしょう", - "にんしん", - "にんずう", - "にんそう", - "にんたい", - "にんち", - "にんてい", - "にんにく", - "にんぷ", - "にんまり", - "にんむ", - "にんめい", - "にんよう", - "ぬう", - "ぬか", - "ぬく", - "ぬくもり", - "ぬし", - "ぬの", - "ぬま", - "ぬめり", - "ぬらす", - "ぬる", - "ぬんちゃく", - "ねあげ", - "ねいき", - "ねいる", - "ねいろ", - "ねぎ", - "ねぐせ", - "ねくたい", - "ねくら", - "ねこ", - "ねこぜ", - "ねこむ", - "ねさげ", - "ねすごす", - "ねそべる", - "ねつい", - "ねつぞう", - "ねったい", - "ねったいぎょ", - "ねぶそく", - "ねふだ", - "ねぼう", - "ねほりはほり", - "ねまき", - "ねまわし", - "ねみみ", - "ねむい", - "ねもと", - "ねらう", - "ねる", - "ねわざ", - "ねんいり", - "ねんおし", - "ねんかん", - "ねんき", - "ねんきん", - "ねんぐ", - "ねんざ", - "ねんし", - "ねんちゃく", - "ねんちょう", - "ねんど", - "ねんぴ", - "ねんぶつ", - "ねんまく", - "ねんまつ", - "ねんりき", - "ねんりょう", - "ねんれい", - "のいず", - "のう", - "のおづま", - "のがす", - "のきなみ", - "のこぎり", - "のこす", - "のせる", - "のぞく", - "のぞむ", - "のたまう", - "のちほど", - "のっく", - "のばす", - "のはら", - "のべる", - "のぼる", - "のむ", - "のやま", - "のらいぬ", - "のらねこ", - "のり", - "のる", - "のれん", - "のんき", - "ばあい", - "はあく", - "ばあさん", - "はい", - "ばいか", - "ばいく", - "はいけん", - "はいご", - "はいこう", - "はいし", - "はいしゅつ", - "はいしん", - "はいすい", - "はいせつ", - "はいせん", - "はいそう", - "はいち", - "ばいばい", - "はう", - "はえ", - "はえる", - "はおる", - "はか", - "ばか", - "はかい", - "はかる", - "はき", - "はく", - "はくしゅ", - "はけん", - "はこ", - "はこぶ", - "はさみ", - "はさん", - "はし", - "はしご", - "はしる", - "ばす", - "はせる", - "ぱそこん", - "はそん", - "はたん", - "はち", - "はちみつ", - "はっか", - "はっかく", - "はっき", - "はっきり", - "はっくつ", - "はっけん", - "はっこう", - "はっさん", - "はっしゃ", - "はっしん", - "はったつ", - "はっちゃく", - "はっちゅう", - "はってん", - "はっぴょう", - "はっぽう", - "はて", - "はな", - "はなす", - "はなび", - "はにかむ", - "はね", - "はは", - "はぶらし", - "はま", - "はみがき", - "はむ", - "はむかう", - "はめつ", - "はやい", - "はら", - "はらう", - "はり", - "はる", - "はれ", - "はろうぃん", - "はわい", - "はんい", - "はんえい", - "はんえん", - "はんおん", - "はんかく", - "はんかち", - "はんきょう", - "はんこ", - "はんこう", - "はんしゃ", - "はんしん", - "はんすう", - "はんたい", - "はんだん", - "ぱんち", - "ぱんつ", - "はんてい", - "はんてん", - "はんとし", - "はんのう", - "はんぱ", - "はんぶん", - "はんぺん", - "はんぼうき", - "はんめい", - "はんめん", - "はんらん", - "はんろん", - "ひいき", - "ひうん", - "ひえる", - "ひかく", - "ひかり", - "ひかん", - "ひく", - "ひくい", - "ひけつ", - "ひこうき", - "ひこく", - "ひざ", - "ぴざ", - "ひさい", - "ひさしぶり", - "ひさん", - "ひし", - "ひじ", - "ひしょ", - "ひじょう", - "ひそか", - "ひそむ", - "ひたむき", - "ひたる", - "ひつぎ", - "ひっこし", - "ひっし", - "ひっす", - "ひつぜん", - "ひつよう", - "ひてい", - "ひと", - "ひとごみ", - "ひな", - "ひなん", - "ひねる", - "ひはん", - "ひびく", - "ひひょう", - "ひふ", - "ひほう", - "ひま", - "ひまん", - "ひみつ", - "ひめ", - "ひめい", - "ひめじし", - "ひも", - "ひやけ", - "ひやす", - "ひゆ", - "ひよう", - "びょうき", - "ひらく", - "ひりつ", - "ひりょう", - "ひる", - "ひれい", - "ひろい", - "ひろう", - "ひわ", - "ひんかく", - "ひんけつ", - "ひんこん", - "ひんし", - "ひんしつ", - "ひんしゅ", - "ひんそう", - "ぴんち", - "ひんぱん", - "びんぼう", - "ふあん", - "ふいうち", - "ふうけい", - "ふうせん", - "ふうとう", - "ふうふ", - "ふえ", - "ふえる", - "ふおん", - "ふか", - "ふかい", - "ふきん", - "ふく", - "ふくざつ", - "ふこう", - "ふさい", - "ふざい", - "ふしぎ", - "ふじみ", - "ふすま", - "ふせい", - "ふせぐ", - "ふそく", - "ふた", - "ふたん", - "ふち", - "ふちょう", - "ふつう", - "ふっかつ", - "ふっき", - "ふっきん", - "ふっこく", - "ふとる", - "ふとん", - "ふね", - "ふのう", - "ふはい", - "ふひょう", - "ふへん", - "ふまん", - "ふみん", - "ふむ", - "ふめつ", - "ふめん", - "ふゆ", - "ふよう", - "ふりこ", - "ふりる", - "ふる", - "ふるい", - "ふろ", - "ふんいき", - "ふんか", - "ぶんか", - "ぶんぐ", - "ふんしつ", - "ぶんせき", - "ふんそう", - "へい", - "へいき", - "へいさ", - "へいわ", - "へきが", - "へこむ", - "へそ", - "へた", - "べつ", - "べっど", - "ぺっと", - "へび", - "へや", - "へる", - "へんか", - "へんかん", - "へんきゃく", - "へんきん", - "へんさい", - "へんたい", - "ほあん", - "ほいく", - "ほうほう", - "ほえる", - "ほおん", - "ほかん", - "ほきょう", - "ぼきん", - "ほくろ", - "ほけつ", - "ほけん", - "ほこう", - "ほこる", - "ほさ", - "ほし", - "ほしつ", - "ほしゅ", - "ほしょう", - "ほす", - "ほせい", - "ぼせい", - "ほそい", - "ほそく", - "ほたて", - "ほたる", - "ぼち", - "ほっきょく", - "ほっさ", - "ほったん", - "ほとんど", - "ほめる", - "ほる", - "ほんい", - "ほんき", - "ほんけ", - "ほんしつ", - "まいにち", - "まう", - "まかい", - "まかせる", - "まく", - "まける", - "まこと", - "まさつ", - "ますく", - "まぜる", - "まち", - "まつ", - "まつり", - "まとめ", - "まなぶ", - "まぬけ", - "まね", - "まねく", - "まひ", - "まほう", - "まめ", - "まもる", - "まゆげ", - "まよう", - "まる", - "まろやか", - "まわす", - "まわり", - "まんが", - "まんかい", - "まんきつ", - "まんぞく", - "みいら", - "みうち", - "みかた", - "みかん", - "みぎ", - "みけん", - "みこん", - "みすい", - "みすえる", - "みせ", - "みそ", - "みち", - "みてい", - "みとめる", - "みなみかさい", - "みねらる", - "みのう", - "みほん", - "みみ", - "みもと", - "みやげ", - "みらい", - "みりょく", - "みる", - "みわく", - "むえき", - "むえん", - "むかし", - "むく", - "むこ", - "むさぼる", - "むし", - "むすこ", - "むすめ", - "むせる", - "むせん", - "むだ", - "むち", - "むなしい", - "むね", - "むのう", - "むやみ", - "むよう", - "むら", - "むり", - "むりょう", - "むれ", - "むろん", - "もうどうけん", - "もえる", - "もぎ", - "もくし", - "もくてき", - "もし", - "もんく", - "もんだい", - "やすい", - "やすみ", - "やそう", - "やたい", - "やちん", - "やね", - "やぶる", - "やま", - "やみ", - "やめる", - "ややこしい", - "やよい", - "やり", - "やわらかい", - "ゆけつ", - "ゆしゅつ", - "ゆせん", - "ゆそう", - "ゆたか", - "ゆちゃく", - "ゆでる", - "ゆび", - "ゆびわ", - "ゆめ", - "ゆれる", - "よう", - "よかぜ", - "よかん", - "よきん", - "よくせい", - "よくぼう", - "よけい", - "よさん", - "よそう", - "よそく", - "よち", - "よてい", - "よどがわく", - "よねつ", - "よむ", - "よめ", - "よやく", - "よゆう", - "よる", - "よろこぶ", - "らいう", - "らくがき", - "らくご", - "らくさつ", - "らくだ", - "らくたん", - "らしんばん", - "らせん", - "らぞく", - "らたい", - "らち", - "らっか", - "らっかせい", - "られつ", - "りえき", - "りか", - "りかい", - "りきさく", - "りきせつ", - "りく", - "りくぐん", - "りくつ", - "りけん", - "りこう", - "りし", - "りす", - "りせい", - "りそう", - "りそく", - "りてん", - "りねん", - "りゅう", - "りゆう", - "りゅうがく", - "りゅうこう", - "りゅうし", - "りゅうねん", - "りよう", - "りょうかい", - "りょうきん", - "りょうしん", - "りょうて", - "りょうど", - "りょうほう", - "りょうり", - "りりく", - "りれき", - "りろん", - "りんご", - "るいじ", - "るす", - "れいかん", - "れいぎ", - "れいせい", - "れいぞうこ", - "れいとう", - "れきし", - "れきだい", - "れんあい", - "れんけい", - "れんけつ", - "れんこう", - "れんこん", - "れんさ", - "れんさい", - "れんさく", - "れんしゃ", - "れんしゅう", - "れんぞく", - "ろうか", - "ろうご", - "ろうじん", - "ろうそく", - "ろか", - "ろくが", - "ろこつ", - "ろしゅつ", - "ろせん", - "ろてん", - "ろめん", - "ろれつ", - "ろんぎ", - "ろんぱ", - "ろんぶん", - "ろんり", - "わじまし" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "Japanese"; - populate_maps(); - } - }; -} - -#endif +// Word list originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin +// Copyright (c) 2014, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef JAPANESE_H +#define JAPANESE_H + +#include +#include +#include "language_base.h" +#include + +namespace Language +{ + class Japanese: public Base + { + public: + Japanese() + { + word_list = new std::vector({ + "あい", + "あいこくしん", + "あう", + "あお", + "あおぞら", + "あか", + "あかちゃん", + "あき", + "あきる", + "あく", + "あさ", + "あさひ", + "あし", + "あずき", + "あせ", + "あそぶ", + "あたる", + "あつい", + "あな", + "あに", + "あね", + "あひる", + "あまい", + "あみ", + "あめ", + "あめりか", + "あやまる", + "あゆむ", + "あらいぐま", + "あらし", + "あり", + "ある", + "あれ", + "あわ", + "あんこ", + "いう", + "いえ", + "いおん", + "いか", + "いがい", + "いかいよう", + "いけ", + "いけん", + "いこく", + "いこつ", + "いさん", + "いし", + "いじゅう", + "いす", + "いせい", + "いせえび", + "いせかい", + "いせき", + "いそうろう", + "いそがしい", + "いたりあ", + "いてざ", + "いてん", + "いと", + "いない", + "いなか", + "いぬ", + "いね", + "いのち", + "いのる", + "いはつ", + "いはん", + "いびき", + "いひん", + "いふく", + "いへん", + "いほう", + "いま", + "いみ", + "いみん", + "いも", + "いもうと", + "いもたれ", + "いもり", + "いや", + "いやす", + "いよかん", + "いよく", + "いらい", + "いらすと", + "いりぐち", + "いりょう", + "いりょうひ", + "いる", + "いれい", + "いれもの", + "いれる", + "いろ", + "いろえんぴつ", + "いわ", + "いわう", + "いわかん", + "いんげんまめ", + "うえ", + "うおざ", + "うかぶ", + "うきわ", + "うく", + "うくらいな", + "うくれれ", + "うけつぐ", + "うけつけ", + "うける", + "うごく", + "うこん", + "うさぎ", + "うし", + "うしなう", + "うしろ", + "うしろがみ", + "うすい", + "うすぎ", + "うせつ", + "うそ", + "うた", + "うちあわせ", + "うちがわ", + "うちき", + "うつ", + "うなぎ", + "うなじ", + "うに", + "うねる", + "うのう", + "うぶげ", + "うぶごえ", + "うま", + "うまれる", + "うみ", + "うむ", + "うめ", + "うめる", + "うもう", + "うやまう", + "うよく", + "うら", + "うらない", + "うる", + "うるさい", + "うれしい", + "うろこ", + "うわき", + "うわさ", + "えい", + "えいえん", + "えいが", + "えいぎょう", + "えいご", + "えおり", + "えき", + "えきたい", + "えくせる", + "えさ", + "えしゃく", + "えすて", + "えつらん", + "えと", + "えのぐ", + "えび", + "えほうまき", + "えほん", + "えま", + "えまき", + "えもじ", + "えもの", + "えらい", + "えらぶ", + "えり", + "えりあ", + "える", + "えん", + "えんえん", + "おきる", + "おく", + "おけ", + "おこる", + "おしえる", + "おやゆび", + "おらんだ", + "かあつ", + "かい", + "かう", + "かお", + "かがし", + "かき", + "かく", + "かこ", + "かさ", + "かす", + "かち", + "かつ", + "かなざわし", + "かに", + "かね", + "かのう", + "かほう", + "かほご", + "かまぼこ", + "かみ", + "かむ", + "かめれおん", + "かも", + "かゆい", + "からい", + "かるい", + "かろう", + "かわ", + "かわら", + "きあい", + "きあつ", + "きいろ", + "ぎいん", + "きうい", + "きうん", + "きえる", + "きおう", + "きおく", + "きおち", + "きおん", + "きか", + "きかい", + "きかく", + "きかん", + "きかんしゃ", + "きぎ", + "ききて", + "きく", + "きくばり", + "きくらげ", + "きけん", + "きけんせい", + "きこう", + "きこえる", + "きこく", + "きさい", + "きさく", + "きさま", + "きさらぎ", + "きし", + "きしゅ", + "きす", + "きすう", + "きせい", + "きせき", + "きせつ", + "きそ", + "きそう", + "きそく", + "きぞく", + "ぎそく", + "きぞん", + "きた", + "きたえる", + "きち", + "きちょう", + "きつえん", + "きつつき", + "きつね", + "きてい", + "きどう", + "きどく", + "きない", + "きなが", + "きぬ", + "きぬごし", + "きねん", + "きのう", + "きはく", + "きびしい", + "きひん", + "きふ", + "ぎふ", + "きふく", + "ぎぼ", + "きほう", + "きぼう", + "きほん", + "きまる", + "きみ", + "きみつ", + "ぎむ", + "きむずかしい", + "きめ", + "きめる", + "きもだめし", + "きもち", + "きやく", + "きよう", + "きらい", + "きらく", + "きり", + "きる", + "きれい", + "きれつ", + "きろく", + "ぎろん", + "きわめる", + "ぐあい", + "くい", + "くいず", + "くうかん", + "くうき", + "くうぐん", + "くうこう", + "くうそう", + "くうふく", + "くうぼ", + "くかん", + "くき", + "くきょう", + "くげん", + "ぐこう", + "くさ", + "くさい", + "くさき", + "くさばな", + "くさる", + "くし", + "くしゃみ", + "くしょう", + "くすのき", + "くすり", + "くすりゆび", + "くせ", + "くせげ", + "くせん", + "くたびれる", + "くち", + "くちこみ", + "くちさき", + "くつ", + "くつした", + "くつろぐ", + "くとうてん", + "くどく", + "くなん", + "くに", + "くねくね", + "くのう", + "くふう", + "くま", + "くみあわせ", + "くみたてる", + "くむ", + "くめる", + "くやくしょ", + "くらす", + "くり", + "くれる", + "くろ", + "くろう", + "くわしい", + "ぐんじょ", + "けあな", + "けいけん", + "けいこ", + "けいさい", + "けいさつ", + "げいのうじん", + "けいれき", + "けいれつ", + "けいれん", + "けいろ", + "けおとす", + "けおりもの", + "けが", + "げき", + "げきか", + "げきげん", + "げきだん", + "げきちん", + "げきど", + "げきは", + "げきやく", + "げこう", + "げこくじょう", + "けさ", + "げざい", + "けさき", + "げざん", + "けしき", + "けしごむ", + "けしょう", + "けす", + "げすと", + "けた", + "げた", + "けたば", + "けち", + "けちゃっぷ", + "けちらす", + "けつ", + "けつあつ", + "けつい", + "けつえき", + "けっこん", + "けつじょ", + "けってい", + "けつまつ", + "げつようび", + "げつれい", + "けつろん", + "げどく", + "けとばす", + "けとる", + "けなげ", + "けなす", + "けなみ", + "けぬき", + "げねつ", + "けねん", + "けはい", + "げひん", + "けぶかい", + "げぼく", + "けまり", + "けみかる", + "けむし", + "けむり", + "けもの", + "けらい", + "ける", + "げろ", + "けろけろ", + "けわしい", + "けんい", + "けんえつ", + "けんお", + "けんか", + "げんき", + "けんきゅう", + "けんきょ", + "けんけい", + "けんけつ", + "けんげん", + "けんこう", + "けんさ", + "けんさく", + "けんしゅう", + "けんしゅつ", + "けんしん", + "けんすう", + "けんそう", + "げんそう", + "けんそん", + "げんち", + "けんちく", + "けんてい", + "げんてい", + "けんとう", + "けんない", + "けんにん", + "げんぶつ", + "けんま", + "けんみん", + "けんめい", + "けんらん", + "けんり", + "けんりつ", + "こあくま", + "こい", + "ごい", + "こいびと", + "こうい", + "こうえん", + "こうか", + "こうかい", + "こうかん", + "こうさい", + "こうさん", + "こうしん", + "こうず", + "こうすい", + "こうせん", + "こうそう", + "こうそく", + "こうたい", + "こうちゃ", + "こうつう", + "こうてい", + "こうとうぶ", + "こうない", + "こうはい", + "こうはん", + "こうもく", + "こえ", + "こえる", + "こおり", + "ごがつ", + "こかん", + "こく", + "こくご", + "こくない", + "こくはく", + "こけい", + "こける", + "ここ", + "こころ", + "ごさ", + "こさめ", + "こし", + "こしつ", + "こす", + "こすう", + "こせい", + "こせき", + "こぜん", + "こそだて", + "こたい", + "こたえる", + "こたつ", + "こちょう", + "こっか", + "こつこつ", + "こつばん", + "こつぶ", + "こてい", + "こてん", + "こと", + "ことがら", + "ことし", + "こなごな", + "こねこね", + "このまま", + "このみ", + "このよ", + "こはん", + "ごはん", + "ごび", + "こひつじ", + "こふう", + "こふん", + "こぼれる", + "ごま", + "こまかい", + "こまつし", + "こまつな", + "こまる", + "こむ", + "こむぎこ", + "こめ", + "こもじ", + "こもち", + "こもの", + "こもん", + "こや", + "こやく", + "こやま", + "こゆう", + "こゆび", + "こよい", + "こよう", + "こりる", + "こる", + "これくしょん", + "ころっけ", + "こわもて", + "こわれる", + "こん", + "こんいん", + "こんかい", + "こんき", + "こんしゅう", + "こんしゅん", + "こんすい", + "こんだて", + "こんだん", + "こんとん", + "こんなん", + "こんびに", + "こんぽう", + "こんぽん", + "こんまけ", + "こんや", + "こんやく", + "こんれい", + "こんわく", + "さいかい", + "さいがい", + "さいきん", + "さいご", + "さいこん", + "さいしょ", + "さうな", + "さお", + "さかいし", + "さかな", + "さかみち", + "さき", + "さく", + "さくし", + "さくじょ", + "さくひん", + "さくら", + "さけ", + "さこく", + "さこつ", + "さたん", + "さつえい", + "さっか", + "さっきょく", + "さつじん", + "さつたば", + "さつまいも", + "さてい", + "さといも", + "さとう", + "さとおや", + "さとる", + "さのう", + "さば", + "さばく", + "さべつ", + "さほう", + "さほど", + "さます", + "さみしい", + "さみだれ", + "さむけ", + "さめ", + "さめる", + "さやえんどう", + "さゆう", + "さよう", + "さよく", + "さら", + "さらだ", + "さる", + "さわやか", + "さわる", + "さんいん", + "さんか", + "さんきゃく", + "さんこう", + "さんさい", + "さんざん", + "さんすう", + "さんせい", + "さんそ", + "さんそん", + "さんち", + "さんちょう", + "さんま", + "さんみ", + "さんらん", + "しあい", + "しあげ", + "しあさって", + "しあわせ", + "しいく", + "しいん", + "しうち", + "しえい", + "しお", + "しおけ", + "しか", + "しかい", + "しかく", + "じかん", + "した", + "したぎ", + "したて", + "したみ", + "しちょう", + "しちょうそん", + "しちりん", + "じつじ", + "してい", + "してき", + "してつ", + "してん", + "しとう", + "じどう", + "しなぎれ", + "しなもの", + "しなん", + "しねま", + "しねん", + "しのぐ", + "しのぶ", + "しはい", + "しばかり", + "しはつ", + "じはつ", + "しはらい", + "しはん", + "しひょう", + "じふ", + "しふく", + "じぶん", + "しへい", + "しほう", + "しほん", + "しま", + "しまう", + "しまる", + "しみ", + "じみ", + "しみん", + "じむ", + "しむける", + "しめい", + "しめる", + "しもん", + "しゃいん", + "しゃうん", + "しゃおん", + "しゃかい", + "じゃがいも", + "しやくしょ", + "しゃくほう", + "しゃけん", + "しゃこ", + "しゃこう", + "しゃざい", + "しゃしん", + "しゃせん", + "しゃそう", + "しゃたい", + "しゃたく", + "しゃちょう", + "しゃっきん", + "じゃま", + "じゃり", + "しゃりょう", + "しゃりん", + "しゃれい", + "しゅうえん", + "しゅうかい", + "しゅうきん", + "しゅうけい", + "しゅうりょう", + "しゅらば", + "しょうか", + "しょうかい", + "しょうきん", + "しょうじき", + "しょくざい", + "しょくたく", + "しょっけん", + "しょどう", + "しょもつ", + "しん", + "しんか", + "しんこう", + "しんせいじ", + "しんちく", + "しんりん", + "すあげ", + "すあし", + "すあな", + "ずあん", + "すいか", + "すいとう", + "すう", + "すうがく", + "すうじつ", + "すうせん", + "すおどり", + "すき", + "すきま", + "すく", + "すくう", + "すくない", + "すける", + "すこし", + "ずさん", + "すし", + "すずしい", + "すすめる", + "すそ", + "ずっしり", + "ずっと", + "すで", + "すてき", + "すてる", + "すな", + "すなっく", + "すなっぷ", + "すね", + "すねる", + "すのこ", + "すはだ", + "すばらしい", + "ずひょう", + "ずぶぬれ", + "すぶり", + "すふれ", + "すべて", + "すべる", + "ずほう", + "すぼん", + "すまい", + "すみ", + "すむ", + "すめし", + "すもう", + "すやき", + "すらいす", + "すらいど", + "すらすら", + "すり", + "する", + "するめ", + "すれちがう", + "すろっと", + "すわる", + "すんぜん", + "すんぽう", + "せあぶら", + "せいか", + "せいかい", + "せいかつ", + "せおう", + "せかい", + "せかいかん", + "せかいし", + "せかいじゅう", + "せき", + "せきにん", + "せきむ", + "せきゆ", + "せきらんうん", + "せけん", + "せこう", + "せすじ", + "せたい", + "せたけ", + "せっかい", + "せっかく", + "せっき", + "せっきゃく", + "せっきょく", + "せっきん", + "ぜっく", + "せっけん", + "せっこつ", + "せっさたくま", + "せつぞく", + "せつだん", + "せつでん", + "せっぱん", + "せつび", + "せつぶん", + "せつめい", + "せつりつ", + "せと", + "せなか", + "せのび", + "せはば", + "せぼね", + "せまい", + "せまる", + "せみ", + "せめる", + "せもたれ", + "せりふ", + "せわ", + "せん", + "ぜんあく", + "せんい", + "せんえい", + "せんか", + "せんきょ", + "せんく", + "せんけつ", + "せんげん", + "ぜんご", + "せんさい", + "せんし", + "せんしゅ", + "せんす", + "せんすい", + "せんせい", + "せんぞ", + "せんそう", + "せんたく", + "せんち", + "せんちゃ", + "せんちゃく", + "せんちょう", + "せんてい", + "せんとう", + "せんぬき", + "せんねん", + "ぜんぶ", + "せんぷうき", + "せんぷく", + "ぜんぽう", + "せんむ", + "せんめい", + "せんめんじょ", + "せんもん", + "せんやく", + "せんゆう", + "せんよう", + "ぜんら", + "ぜんりゃく", + "せんりょく", + "せんれい", + "せんろ", + "そあく", + "そいとげる", + "そいね", + "そう", + "ぞう", + "そうがんきょう", + "そうき", + "そうご", + "そうなん", + "そうび", + "そうひょう", + "そうめん", + "そうり", + "そうりょ", + "そえもの", + "そえん", + "そかい", + "そがい", + "そぐ", + "そげき", + "そこう", + "そこそこ", + "そざい", + "そし", + "そしな", + "そせい", + "そせん", + "そそぐ", + "そだてる", + "そつう", + "そつえん", + "そっかん", + "そつぎょう", + "そっけつ", + "そっこう", + "そっせん", + "そっと", + "そで", + "そと", + "そとがわ", + "そとづら", + "そなえる", + "そなた", + "そば", + "そふ", + "そふぼ", + "そぼ", + "そぼく", + "そぼろ", + "そまつ", + "そまる", + "そむく", + "そむりえ", + "そめる", + "そもそも", + "そよかぜ", + "そら", + "そらまめ", + "そり", + "そる", + "そろう", + "そんかい", + "そんけい", + "そんざい", + "そんしつ", + "そんしょう", + "そんぞく", + "そんちょう", + "ぞんび", + "ぞんぶん", + "そんみん", + "たあい", + "たいいん", + "たいうん", + "たいえき", + "たいおう", + "だいおう", + "たいか", + "たいかい", + "たいき", + "たいきけん", + "たいぐう", + "たいくつ", + "たいけい", + "たいけつ", + "たいけん", + "たいこ", + "たいこう", + "たいさ", + "たいさん", + "たいしゅつ", + "だいじょうぶ", + "たいしょく", + "だいず", + "だいすき", + "たいせい", + "たいせつ", + "たいせん", + "たいそう", + "たいちょう", + "だいちょう", + "たいとう", + "たいない", + "たいねつ", + "たいのう", + "たいは", + "たいはん", + "たいひ", + "たいふう", + "たいへん", + "たいほ", + "たいまつばな", + "たいまん", + "たいみんぐ", + "たいむ", + "たいめん", + "たいやき", + "たいやく", + "たいよう", + "たいら", + "たいりょう", + "たいりょく", + "たいる", + "たいわ", + "たいわん", + "たうえ", + "たえる", + "たおす", + "たおる", + "たかい", + "たかね", + "たき", + "たきび", + "たくさん", + "たけ", + "たこ", + "たこく", + "たこやき", + "たさい", + "ださい", + "たしざん", + "たす", + "たすける", + "たそがれ", + "たたかう", + "たたく", + "たちば", + "たちばな", + "たつ", + "だっかい", + "だっきゃく", + "だっこ", + "だっしめん", + "だっしゅつ", + "だったい", + "たて", + "たてる", + "たとえる", + "たな", + "たにん", + "たぬき", + "たね", + "たのしみ", + "たはつ", + "たび", + "たぶん", + "たべる", + "たぼう", + "たほうめん", + "たま", + "たまご", + "たまる", + "だむる", + "ためいき", + "ためす", + "ためる", + "たもつ", + "たやすい", + "たよる", + "たら", + "たらす", + "たりきほんがん", + "たりょう", + "たりる", + "たる", + "たると", + "たれる", + "たれんと", + "たろっと", + "たわむれる", + "たん", + "だんあつ", + "たんい", + "たんおん", + "たんか", + "たんき", + "たんけん", + "たんご", + "たんさく", + "たんさん", + "たんし", + "たんしゅく", + "たんじょうび", + "だんせい", + "たんそく", + "たんたい", + "たんち", + "だんち", + "たんちょう", + "たんてい", + "たんてき", + "たんとう", + "だんな", + "たんにん", + "だんねつ", + "たんのう", + "たんぴん", + "たんまつ", + "たんめい", + "だんれつ", + "だんろ", + "だんわ", + "ちあい", + "ちあん", + "ちい", + "ちいき", + "ちいさい", + "ちえ", + "ちえん", + "ちか", + "ちかい", + "ちきゅう", + "ちきん", + "ちけい", + "ちけいず", + "ちけん", + "ちこく", + "ちさい", + "ちしき", + "ちしりょう", + "ちず", + "ちせい", + "ちそう", + "ちたい", + "ちたん", + "ちちおや", + "ちつじょ", + "ちてき", + "ちてん", + "ちぬき", + "ちぬり", + "ちのう", + "ちひょう", + "ちへいせん", + "ちほう", + "ちまた", + "ちみつ", + "ちみどろ", + "ちめいど", + "ちゅうい", + "ちゅうおう", + "ちゅうおうく", + "ちゅうがっこう", + "ちゅうごく", + "ちゆりょく", + "ちょうさ", + "ちょうし", + "ちらし", + "ちらみ", + "ちり", + "ちりがみ", + "ちる", + "ちるど", + "ちわわ", + "ちんたい", + "ちんもく", + "ついか", + "つうか", + "つうじょう", + "つうじる", + "つうはん", + "つうわ", + "つえ", + "つかう", + "つかれる", + "つき", + "つく", + "つくね", + "つくる", + "つけね", + "つける", + "つごう", + "つた", + "つたえる", + "つち", + "つつじ", + "つとめる", + "つな", + "つながる", + "つなみ", + "つねづね", + "つの", + "つのる", + "つば", + "つぶ", + "つぶす", + "つぼ", + "つま", + "つまらない", + "つまる", + "つみ", + "つみき", + "つむ", + "つめたい", + "つもる", + "つや", + "つよい", + "つり", + "つるぼ", + "つるみく", + "つわもの", + "つわり", + "てあし", + "てあて", + "てあみ", + "ていか", + "ていき", + "ていけい", + "ていけつ", + "ていけつあつ", + "ていこく", + "ていさつ", + "ていし", + "ていしゃ", + "ていせい", + "ていたい", + "ていど", + "ていねい", + "ていひょう", + "ていへん", + "ていぼう", + "てうち", + "ておくれ", + "てき", + "てくび", + "てこ", + "てさぎょう", + "てさげ", + "でし", + "てすり", + "てそう", + "てちがい", + "てちょう", + "てつがく", + "てつづき", + "てつや", + "でぬかえ", + "てぬき", + "てぬぐい", + "てのひら", + "てはい", + "てふだ", + "てほどき", + "てほん", + "てま", + "てまえ", + "てまきずし", + "てみじか", + "てみやげ", + "てら", + "てらす", + "でる", + "てれび", + "てろ", + "てわけ", + "てわたし", + "でんあつ", + "てんい", + "てんいん", + "てんかい", + "てんき", + "てんぐ", + "てんけん", + "でんげん", + "てんごく", + "てんさい", + "てんすう", + "でんち", + "てんてき", + "てんとう", + "てんない", + "てんぷ", + "てんぷら", + "てんぼうだい", + "てんめつ", + "てんらく", + "てんらんかい", + "でんりゅう", + "でんりょく", + "でんわ", + "どあ", + "どあい", + "といれ", + "とうむぎ", + "とおい", + "とおす", + "とかい", + "とかす", + "ときおり", + "ときどき", + "とくい", + "とくてい", + "とくてん", + "とくべつ", + "とけい", + "とける", + "とさか", + "とし", + "としょかん", + "とそう", + "とたん", + "とち", + "とちゅう", + "とつぜん", + "とつにゅう", + "ととのえる", + "とない", + "となえる", + "となり", + "とのさま", + "とばす", + "とぶ", + "とほ", + "とほう", + "どま", + "とまる", + "とら", + "とり", + "とる", + "とんかつ", + "ない", + "ないか", + "ないかく", + "ないこう", + "ないしょ", + "ないす", + "ないせん", + "ないそう", + "ないぞう", + "なおす", + "なく", + "なこうど", + "なさけ", + "なし", + "なす", + "なぜ", + "なぞ", + "なたでここ", + "なつ", + "なっとう", + "なつやすみ", + "ななおし", + "なにごと", + "なにもの", + "なにわ", + "なは", + "なび", + "なふだ", + "なべ", + "なまいき", + "なまえ", + "なまみ", + "なみ", + "なみだ", + "なめらか", + "なめる", + "なやむ", + "ならぶ", + "なる", + "なれる", + "なわ", + "なわとび", + "なわばり", + "にあう", + "にいがた", + "にうけ", + "におい", + "にかい", + "にがて", + "にきび", + "にく", + "にくしみ", + "にくまん", + "にげる", + "にさんかたんそ", + "にし", + "にしき", + "にす", + "にせもの", + "にちじ", + "にちじょう", + "にちようび", + "にっか", + "にっき", + "にっけい", + "にっこう", + "にっさん", + "にっしょく", + "にっすう", + "にっせき", + "にってい", + "になう", + "にほん", + "にまめ", + "にもつ", + "にやり", + "にゅういん", + "にゅうか", + "にゅうし", + "にゅうしゃ", + "にゅうだん", + "にゅうぶ", + "にら", + "にりんしゃ", + "にる", + "にわ", + "にわとり", + "にんい", + "にんか", + "にんき", + "にんげん", + "にんしき", + "にんしょう", + "にんしん", + "にんずう", + "にんそう", + "にんたい", + "にんち", + "にんてい", + "にんにく", + "にんぷ", + "にんまり", + "にんむ", + "にんめい", + "にんよう", + "ぬう", + "ぬか", + "ぬく", + "ぬくもり", + "ぬし", + "ぬの", + "ぬま", + "ぬめり", + "ぬらす", + "ぬる", + "ぬんちゃく", + "ねあげ", + "ねいき", + "ねいる", + "ねいろ", + "ねぎ", + "ねぐせ", + "ねくたい", + "ねくら", + "ねこ", + "ねこぜ", + "ねこむ", + "ねさげ", + "ねすごす", + "ねそべる", + "ねつい", + "ねつぞう", + "ねったい", + "ねったいぎょ", + "ねぶそく", + "ねふだ", + "ねぼう", + "ねほりはほり", + "ねまき", + "ねまわし", + "ねみみ", + "ねむい", + "ねもと", + "ねらう", + "ねる", + "ねわざ", + "ねんいり", + "ねんおし", + "ねんかん", + "ねんき", + "ねんきん", + "ねんぐ", + "ねんざ", + "ねんし", + "ねんちゃく", + "ねんちょう", + "ねんど", + "ねんぴ", + "ねんぶつ", + "ねんまく", + "ねんまつ", + "ねんりき", + "ねんりょう", + "ねんれい", + "のいず", + "のう", + "のおづま", + "のがす", + "のきなみ", + "のこぎり", + "のこす", + "のせる", + "のぞく", + "のぞむ", + "のたまう", + "のちほど", + "のっく", + "のばす", + "のはら", + "のべる", + "のぼる", + "のむ", + "のやま", + "のらいぬ", + "のらねこ", + "のり", + "のる", + "のれん", + "のんき", + "ばあい", + "はあく", + "ばあさん", + "はい", + "ばいか", + "ばいく", + "はいけん", + "はいご", + "はいこう", + "はいし", + "はいしゅつ", + "はいしん", + "はいすい", + "はいせつ", + "はいせん", + "はいそう", + "はいち", + "ばいばい", + "はう", + "はえ", + "はえる", + "はおる", + "はか", + "ばか", + "はかい", + "はかる", + "はき", + "はく", + "はくしゅ", + "はけん", + "はこ", + "はこぶ", + "はさみ", + "はさん", + "はし", + "はしご", + "はしる", + "ばす", + "はせる", + "ぱそこん", + "はそん", + "はたん", + "はち", + "はちみつ", + "はっか", + "はっかく", + "はっき", + "はっきり", + "はっくつ", + "はっけん", + "はっこう", + "はっさん", + "はっしゃ", + "はっしん", + "はったつ", + "はっちゃく", + "はっちゅう", + "はってん", + "はっぴょう", + "はっぽう", + "はて", + "はな", + "はなす", + "はなび", + "はにかむ", + "はね", + "はは", + "はぶらし", + "はま", + "はみがき", + "はむ", + "はむかう", + "はめつ", + "はやい", + "はら", + "はらう", + "はり", + "はる", + "はれ", + "はろうぃん", + "はわい", + "はんい", + "はんえい", + "はんえん", + "はんおん", + "はんかく", + "はんかち", + "はんきょう", + "はんこ", + "はんこう", + "はんしゃ" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Japanese"; + populate_maps(); + } + }; +} + +#endif diff --git a/src/mnemonics/language_base.h b/src/mnemonics/language_base.h index 90ff9c334..b8b6a162f 100644 --- a/src/mnemonics/language_base.h +++ b/src/mnemonics/language_base.h @@ -1,61 +1,61 @@ -#ifndef LANGUAGE_BASE_H -#define LANGUAGE_BASE_H - -#include -#include -#include - -namespace Language -{ - const int unique_prefix_length = 4; - class Base - { - protected: - std::vector *word_list; - std::unordered_map *word_map; - std::unordered_map *trimmed_word_map; - std::string language_name; - void populate_maps() - { - int ii; - std::vector::iterator it; - for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++) - { - (*word_map)[*it] = ii; - if (it->length() > 4) - { - (*trimmed_word_map)[it->substr(0, 4)] = ii; - } - else - { - (*trimmed_word_map)[*it] = ii; - } - } - } - public: - Base() - { - word_list = new std::vector; - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - } - const std::vector& get_word_list() const - { - return *word_list; - } - const std::unordered_map& get_word_map() const - { - return *word_map; - } - const std::unordered_map& get_trimmed_word_map() const - { - return *trimmed_word_map; - } - std::string get_language_name() const - { - return language_name; - } - }; -} - -#endif +#ifndef LANGUAGE_BASE_H +#define LANGUAGE_BASE_H + +#include +#include +#include + +namespace Language +{ + const int unique_prefix_length = 4; + class Base + { + protected: + std::vector *word_list; + std::unordered_map *word_map; + std::unordered_map *trimmed_word_map; + std::string language_name; + void populate_maps() + { + int ii; + std::vector::iterator it; + for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++) + { + (*word_map)[*it] = ii; + if (it->length() > 4) + { + (*trimmed_word_map)[it->substr(0, 4)] = ii; + } + else + { + (*trimmed_word_map)[*it] = ii; + } + } + } + public: + Base() + { + word_list = new std::vector; + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + } + const std::vector& get_word_list() const + { + return *word_list; + } + const std::unordered_map& get_word_map() const + { + return *word_map; + } + const std::unordered_map& get_trimmed_word_map() const + { + return *trimmed_word_map; + } + std::string get_language_name() const + { + return language_name; + } + }; +} + +#endif diff --git a/src/mnemonics/old_english.h b/src/mnemonics/old_english.h index dc36f5119..4e40b1730 100644 --- a/src/mnemonics/old_english.h +++ b/src/mnemonics/old_english.h @@ -1,1652 +1,1681 @@ -#ifndef OLD_ENGLISH_H -#define OLD_ENGLISH_H - -#include -#include -#include "language_base.h" -#include - -namespace Language -{ - class OldEnglish: public Base - { - public: - OldEnglish() - { - word_list = new std::vector({ - "like", - "just", - "love", - "know", - "never", - "want", - "time", - "out", - "there", - "make", - "look", - "eye", - "down", - "only", - "think", - "heart", - "back", - "then", - "into", - "about", - "more", - "away", - "still", - "them", - "take", - "thing", - "even", - "through", - "long", - "always", - "world", - "too", - "friend", - "tell", - "try", - "hand", - "thought", - "over", - "here", - "other", - "need", - "smile", - "again", - "much", - "cry", - "been", - "night", - "ever", - "little", - "said", - "end", - "some", - "those", - "around", - "mind", - "people", - "girl", - "leave", - "dream", - "left", - "turn", - "myself", - "give", - "nothing", - "really", - "off", - "before", - "something", - "find", - "walk", - "wish", - "good", - "once", - "place", - "ask", - "stop", - "keep", - "watch", - "seem", - "everything", - "wait", - "got", - "yet", - "made", - "remember", - "start", - "alone", - "run", - "hope", - "maybe", - "believe", - "body", - "hate", - "after", - "close", - "talk", - "stand", - "own", - "each", - "hurt", - "help", - "home", - "god", - "soul", - "new", - "many", - "two", - "inside", - "should", - "true", - "first", - "fear", - "mean", - "better", - "play", - "another", - "gone", - "change", - "use", - "wonder", - "someone", - "hair", - "cold", - "open", - "best", - "any", - "behind", - "happen", - "water", - "dark", - "laugh", - "stay", - "forever", - "name", - "work", - "show", - "sky", - "break", - "came", - "deep", - "door", - "put", - "black", - "together", - "upon", - "happy", - "such", - "great", - "white", - "matter", - "fill", - "past", - "please", - "burn", - "cause", - "enough", - "touch", - "moment", - "soon", - "voice", - "scream", - "anything", - "stare", - "sound", - "red", - "everyone", - "hide", - "kiss", - "truth", - "death", - "beautiful", - "mine", - "blood", - "broken", - "very", - "pass", - "next", - "forget", - "tree", - "wrong", - "air", - "mother", - "understand", - "lip", - "hit", - "wall", - "memory", - "sleep", - "free", - "high", - "realize", - "school", - "might", - "skin", - "sweet", - "perfect", - "blue", - "kill", - "breath", - "dance", - "against", - "fly", - "between", - "grow", - "strong", - "under", - "listen", - "bring", - "sometimes", - "speak", - "pull", - "person", - "become", - "family", - "begin", - "ground", - "real", - "small", - "father", - "sure", - "feet", - "rest", - "young", - "finally", - "land", - "across", - "today", - "different", - "guy", - "line", - "fire", - "reason", - "reach", - "second", - "slowly", - "write", - "eat", - "smell", - "mouth", - "step", - "learn", - "three", - "floor", - "promise", - "breathe", - "darkness", - "push", - "earth", - "guess", - "save", - "song", - "above", - "along", - "both", - "color", - "house", - "almost", - "sorry", - "anymore", - "brother", - "okay", - "dear", - "game", - "fade", - "already", - "apart", - "warm", - "beauty", - "heard", - "notice", - "question", - "shine", - "began", - "piece", - "whole", - "shadow", - "secret", - "street", - "within", - "finger", - "point", - "morning", - "whisper", - "child", - "moon", - "green", - "story", - "glass", - "kid", - "silence", - "since", - "soft", - "yourself", - "empty", - "shall", - "angel", - "answer", - "baby", - "bright", - "dad", - "path", - "worry", - "hour", - "drop", - "follow", - "power", - "war", - "half", - "flow", - "heaven", - "act", - "chance", - "fact", - "least", - "tired", - "children", - "near", - "quite", - "afraid", - "rise", - "sea", - "taste", - "window", - "cover", - "nice", - "trust", - "lot", - "sad", - "cool", - "force", - "peace", - "return", - "blind", - "easy", - "ready", - "roll", - "rose", - "drive", - "held", - "music", - "beneath", - "hang", - "mom", - "paint", - "emotion", - "quiet", - "clear", - "cloud", - "few", - "pretty", - "bird", - "outside", - "paper", - "picture", - "front", - "rock", - "simple", - "anyone", - "meant", - "reality", - "road", - "sense", - "waste", - "bit", - "leaf", - "thank", - "happiness", - "meet", - "men", - "smoke", - "truly", - "decide", - "self", - "age", - "book", - "form", - "alive", - "carry", - "escape", - "damn", - "instead", - "able", - "ice", - "minute", - "throw", - "catch", - "leg", - "ring", - "course", - "goodbye", - "lead", - "poem", - "sick", - "corner", - "desire", - "known", - "problem", - "remind", - "shoulder", - "suppose", - "toward", - "wave", - "drink", - "jump", - "woman", - "pretend", - "sister", - "week", - "human", - "joy", - "crack", - "grey", - "pray", - "surprise", - "dry", - "knee", - "less", - "search", - "bleed", - "caught", - "clean", - "embrace", - "future", - "king", - "son", - "sorrow", - "chest", - "hug", - "remain", - "sat", - "worth", - "blow", - "daddy", - "final", - "parent", - "tight", - "also", - "create", - "lonely", - "safe", - "cross", - "dress", - "evil", - "silent", - "bone", - "fate", - "perhaps", - "anger", - "class", - "scar", - "snow", - "tiny", - "tonight", - "continue", - "control", - "dog", - "edge", - "mirror", - "month", - "suddenly", - "comfort", - "given", - "loud", - "quickly", - "gaze", - "plan", - "rush", - "stone", - "town", - "battle", - "ignore", - "spirit", - "stood", - "stupid", - "yours", - "brown", - "build", - "dust", - "hey", - "kept", - "pay", - "phone", - "twist", - "although", - "ball", - "beyond", - "hidden", - "nose", - "taken", - "fail", - "float", - "pure", - "somehow", - "wash", - "wrap", - "angry", - "cheek", - "creature", - "forgotten", - "heat", - "rip", - "single", - "space", - "special", - "weak", - "whatever", - "yell", - "anyway", - "blame", - "job", - "choose", - "country", - "curse", - "drift", - "echo", - "figure", - "grew", - "laughter", - "neck", - "suffer", - "worse", - "yeah", - "disappear", - "foot", - "forward", - "knife", - "mess", - "somewhere", - "stomach", - "storm", - "beg", - "idea", - "lift", - "offer", - "breeze", - "field", - "five", - "often", - "simply", - "stuck", - "win", - "allow", - "confuse", - "enjoy", - "except", - "flower", - "seek", - "strength", - "calm", - "grin", - "gun", - "heavy", - "hill", - "large", - "ocean", - "shoe", - "sigh", - "straight", - "summer", - "tongue", - "accept", - "crazy", - "everyday", - "exist", - "grass", - "mistake", - "sent", - "shut", - "surround", - "table", - "ache", - "brain", - "destroy", - "heal", - "nature", - "shout", - "sign", - "stain", - "choice", - "doubt", - "glance", - "glow", - "mountain", - "queen", - "stranger", - "throat", - "tomorrow", - "city", - "either", - "fish", - "flame", - "rather", - "shape", - "spin", - "spread", - "ash", - "distance", - "finish", - "image", - "imagine", - "important", - "nobody", - "shatter", - "warmth", - "became", - "feed", - "flesh", - "funny", - "lust", - "shirt", - "trouble", - "yellow", - "attention", - "bare", - "bite", - "money", - "protect", - "amaze", - "appear", - "born", - "choke", - "completely", - "daughter", - "fresh", - "friendship", - "gentle", - "probably", - "six", - "deserve", - "expect", - "grab", - "middle", - "nightmare", - "river", - "thousand", - "weight", - "worst", - "wound", - "barely", - "bottle", - "cream", - "regret", - "relationship", - "stick", - "test", - "crush", - "endless", - "fault", - "itself", - "rule", - "spill", - "art", - "circle", - "join", - "kick", - "mask", - "master", - "passion", - "quick", - "raise", - "smooth", - "unless", - "wander", - "actually", - "broke", - "chair", - "deal", - "favorite", - "gift", - "note", - "number", - "sweat", - "box", - "chill", - "clothes", - "lady", - "mark", - "park", - "poor", - "sadness", - "tie", - "animal", - "belong", - "brush", - "consume", - "dawn", - "forest", - "innocent", - "pen", - "pride", - "stream", - "thick", - "clay", - "complete", - "count", - "draw", - "faith", - "press", - "silver", - "struggle", - "surface", - "taught", - "teach", - "wet", - "bless", - "chase", - "climb", - "enter", - "letter", - "melt", - "metal", - "movie", - "stretch", - "swing", - "vision", - "wife", - "beside", - "crash", - "forgot", - "guide", - "haunt", - "joke", - "knock", - "plant", - "pour", - "prove", - "reveal", - "steal", - "stuff", - "trip", - "wood", - "wrist", - "bother", - "bottom", - "crawl", - "crowd", - "fix", - "forgive", - "frown", - "grace", - "loose", - "lucky", - "party", - "release", - "surely", - "survive", - "teacher", - "gently", - "grip", - "speed", - "suicide", - "travel", - "treat", - "vein", - "written", - "cage", - "chain", - "conversation", - "date", - "enemy", - "however", - "interest", - "million", - "page", - "pink", - "proud", - "sway", - "themselves", - "winter", - "church", - "cruel", - "cup", - "demon", - "experience", - "freedom", - "pair", - "pop", - "purpose", - "respect", - "shoot", - "softly", - "state", - "strange", - "bar", - "birth", - "curl", - "dirt", - "excuse", - "lord", - "lovely", - "monster", - "order", - "pack", - "pants", - "pool", - "scene", - "seven", - "shame", - "slide", - "ugly", - "among", - "blade", - "blonde", - "closet", - "creek", - "deny", - "drug", - "eternity", - "gain", - "grade", - "handle", - "key", - "linger", - "pale", - "prepare", - "swallow", - "swim", - "tremble", - "wheel", - "won", - "cast", - "cigarette", - "claim", - "college", - "direction", - "dirty", - "gather", - "ghost", - "hundred", - "loss", - "lung", - "orange", - "present", - "swear", - "swirl", - "twice", - "wild", - "bitter", - "blanket", - "doctor", - "everywhere", - "flash", - "grown", - "knowledge", - "numb", - "pressure", - "radio", - "repeat", - "ruin", - "spend", - "unknown", - "buy", - "clock", - "devil", - "early", - "false", - "fantasy", - "pound", - "precious", - "refuse", - "sheet", - "teeth", - "welcome", - "add", - "ahead", - "block", - "bury", - "caress", - "content", - "depth", - "despite", - "distant", - "marry", - "purple", - "threw", - "whenever", - "bomb", - "dull", - "easily", - "grasp", - "hospital", - "innocence", - "normal", - "receive", - "reply", - "rhyme", - "shade", - "someday", - "sword", - "toe", - "visit", - "asleep", - "bought", - "center", - "consider", - "flat", - "hero", - "history", - "ink", - "insane", - "muscle", - "mystery", - "pocket", - "reflection", - "shove", - "silently", - "smart", - "soldier", - "spot", - "stress", - "train", - "type", - "view", - "whether", - "bus", - "energy", - "explain", - "holy", - "hunger", - "inch", - "magic", - "mix", - "noise", - "nowhere", - "prayer", - "presence", - "shock", - "snap", - "spider", - "study", - "thunder", - "trail", - "admit", - "agree", - "bag", - "bang", - "bound", - "butterfly", - "cute", - "exactly", - "explode", - "familiar", - "fold", - "further", - "pierce", - "reflect", - "scent", - "selfish", - "sharp", - "sink", - "spring", - "stumble", - "universe", - "weep", - "women", - "wonderful", - "action", - "ancient", - "attempt", - "avoid", - "birthday", - "branch", - "chocolate", - "core", - "depress", - "drunk", - "especially", - "focus", - "fruit", - "honest", - "match", - "palm", - "perfectly", - "pillow", - "pity", - "poison", - "roar", - "shift", - "slightly", - "thump", - "truck", - "tune", - "twenty", - "unable", - "wipe", - "wrote", - "coat", - "constant", - "dinner", - "drove", - "egg", - "eternal", - "flight", - "flood", - "frame", - "freak", - "gasp", - "glad", - "hollow", - "motion", - "peer", - "plastic", - "root", - "screen", - "season", - "sting", - "strike", - "team", - "unlike", - "victim", - "volume", - "warn", - "weird", - "attack", - "await", - "awake", - "built", - "charm", - "crave", - "despair", - "fought", - "grant", - "grief", - "horse", - "limit", - "message", - "ripple", - "sanity", - "scatter", - "serve", - "split", - "string", - "trick", - "annoy", - "blur", - "boat", - "brave", - "clearly", - "cling", - "connect", - "fist", - "forth", - "imagination", - "iron", - "jock", - "judge", - "lesson", - "milk", - "misery", - "nail", - "naked", - "ourselves", - "poet", - "possible", - "princess", - "sail", - "size", - "snake", - "society", - "stroke", - "torture", - "toss", - "trace", - "wise", - "bloom", - "bullet", - "cell", - "check", - "cost", - "darling", - "during", - "footstep", - "fragile", - "hallway", - "hardly", - "horizon", - "invisible", - "journey", - "midnight", - "mud", - "nod", - "pause", - "relax", - "shiver", - "sudden", - "value", - "youth", - "abuse", - "admire", - "blink", - "breast", - "bruise", - "constantly", - "couple", - "creep", - "curve", - "difference", - "dumb", - "emptiness", - "gotta", - "honor", - "plain", - "planet", - "recall", - "rub", - "ship", - "slam", - "soar", - "somebody", - "tightly", - "weather", - "adore", - "approach", - "bond", - "bread", - "burst", - "candle", - "coffee", - "cousin", - "crime", - "desert", - "flutter", - "frozen", - "grand", - "heel", - "hello", - "language", - "level", - "movement", - "pleasure", - "powerful", - "random", - "rhythm", - "settle", - "silly", - "slap", - "sort", - "spoken", - "steel", - "threaten", - "tumble", - "upset", - "aside", - "awkward", - "bee", - "blank", - "board", - "button", - "card", - "carefully", - "complain", - "crap", - "deeply", - "discover", - "drag", - "dread", - "effort", - "entire", - "fairy", - "giant", - "gotten", - "greet", - "illusion", - "jeans", - "leap", - "liquid", - "march", - "mend", - "nervous", - "nine", - "replace", - "rope", - "spine", - "stole", - "terror", - "accident", - "apple", - "balance", - "boom", - "childhood", - "collect", - "demand", - "depression", - "eventually", - "faint", - "glare", - "goal", - "group", - "honey", - "kitchen", - "laid", - "limb", - "machine", - "mere", - "mold", - "murder", - "nerve", - "painful", - "poetry", - "prince", - "rabbit", - "shelter", - "shore", - "shower", - "soothe", - "stair", - "steady", - "sunlight", - "tangle", - "tease", - "treasure", - "uncle", - "begun", - "bliss", - "canvas", - "cheer", - "claw", - "clutch", - "commit", - "crimson", - "crystal", - "delight", - "doll", - "existence", - "express", - "fog", - "football", - "gay", - "goose", - "guard", - "hatred", - "illuminate", - "mass", - "math", - "mourn", - "rich", - "rough", - "skip", - "stir", - "student", - "style", - "support", - "thorn", - "tough", - "yard", - "yearn", - "yesterday", - "advice", - "appreciate", - "autumn", - "bank", - "beam", - "bowl", - "capture", - "carve", - "collapse", - "confusion", - "creation", - "dove", - "feather", - "girlfriend", - "glory", - "government", - "harsh", - "hop", - "inner", - "loser", - "moonlight", - "neighbor", - "neither", - "peach", - "pig", - "praise", - "screw", - "shield", - "shimmer", - "sneak", - "stab", - "subject", - "throughout", - "thrown", - "tower", - "twirl", - "wow", - "army", - "arrive", - "bathroom", - "bump", - "cease", - "cookie", - "couch", - "courage", - "dim", - "guilt", - "howl", - "hum", - "husband", - "insult", - "led", - "lunch", - "mock", - "mostly", - "natural", - "nearly", - "needle", - "nerd", - "peaceful", - "perfection", - "pile", - "price", - "remove", - "roam", - "sanctuary", - "serious", - "shiny", - "shook", - "sob", - "stolen", - "tap", - "vain", - "void", - "warrior", - "wrinkle", - "affection", - "apologize", - "blossom", - "bounce", - "bridge", - "cheap", - "crumble", - "decision", - "descend", - "desperately", - "dig", - "dot", - "flip", - "frighten", - "heartbeat", - "huge", - "lazy", - "lick", - "odd", - "opinion", - "process", - "puzzle", - "quietly", - "retreat", - "score", - "sentence", - "separate", - "situation", - "skill", - "soak", - "square", - "stray", - "taint", - "task", - "tide", - "underneath", - "veil", - "whistle", - "anywhere", - "bedroom", - "bid", - "bloody", - "burden", - "careful", - "compare", - "concern", - "curtain", - "decay", - "defeat", - "describe", - "double", - "dreamer", - "driver", - "dwell", - "evening", - "flare", - "flicker", - "grandma", - "guitar", - "harm", - "horrible", - "hungry", - "indeed", - "lace", - "melody", - "monkey", - "nation", - "object", - "obviously", - "rainbow", - "salt", - "scratch", - "shown", - "shy", - "stage", - "stun", - "third", - "tickle", - "useless", - "weakness", - "worship", - "worthless", - "afternoon", - "beard", - "boyfriend", - "bubble", - "busy", - "certain", - "chin", - "concrete", - "desk", - "diamond", - "doom", - "drawn", - "due", - "felicity", - "freeze", - "frost", - "garden", - "glide", - "harmony", - "hopefully", - "hunt", - "jealous", - "lightning", - "mama", - "mercy", - "peel", - "physical", - "position", - "pulse", - "punch", - "quit", - "rant", - "respond", - "salty", - "sane", - "satisfy", - "savior", - "sheep", - "slept", - "social", - "sport", - "tuck", - "utter", - "valley", - "wolf", - "aim", - "alas", - "alter", - "arrow", - "awaken", - "beaten", - "belief", - "brand", - "ceiling", - "cheese", - "clue", - "confidence", - "connection", - "daily", - "disguise", - "eager", - "erase", - "essence", - "everytime", - "expression", - "fan", - "flag", - "flirt", - "foul", - "fur", - "giggle", - "glorious", - "ignorance", - "law", - "lifeless", - "measure", - "mighty", - "muse", - "north", - "opposite", - "paradise", - "patience", - "patient", - "pencil", - "petal", - "plate", - "ponder", - "possibly", - "practice", - "slice", - "spell", - "stock", - "strife", - "strip", - "suffocate", - "suit", - "tender", - "tool", - "trade", - "velvet", - "verse", - "waist", - "witch", - "aunt", - "bench", - "bold", - "cap", - "certainly", - "click", - "companion", - "creator", - "dart", - "delicate", - "determine", - "dish", - "dragon", - "drama", - "drum", - "dude", - "everybody", - "feast", - "forehead", - "former", - "fright", - "fully", - "gas", - "hook", - "hurl", - "invite", - "juice", - "manage", - "moral", - "possess", - "raw", - "rebel", - "royal", - "scale", - "scary", - "several", - "slight", - "stubborn", - "swell", - "talent", - "tea", - "terrible", - "thread", - "torment", - "trickle", - "usually", - "vast", - "violence", - "weave", - "acid", - "agony", - "ashamed", - "awe", - "belly", - "blend", - "blush", - "character", - "cheat", - "common", - "company", - "coward", - "creak", - "danger", - "deadly", - "defense", - "define", - "depend", - "desperate", - "destination", - "dew", - "duck", - "dusty", - "embarrass", - "engine", - "example", - "explore", - "foe", - "freely", - "frustrate", - "generation", - "glove", - "guilty", - "health", - "hurry", - "idiot", - "impossible", - "inhale", - "jaw", - "kingdom", - "mention", - "mist", - "moan", - "mumble", - "mutter", - "observe", - "ode", - "pathetic", - "pattern", - "pie", - "prefer", - "puff", - "rape", - "rare", - "revenge", - "rude", - "scrape", - "spiral", - "squeeze", - "strain", - "sunset", - "suspend", - "sympathy", - "thigh", - "throne", - "total", - "unseen", - "weapon", - "weary" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "OldEnglish"; - populate_maps(); - } - }; -} - -#endif +// Word list originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin +// Copyright (c) 2014, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef OLD_ENGLISH_H +#define OLD_ENGLISH_H + +#include +#include +#include "language_base.h" +#include + +namespace Language +{ + class OldEnglish: public Base + { + public: + OldEnglish() + { + word_list = new std::vector({ + "like", + "just", + "love", + "know", + "never", + "want", + "time", + "out", + "there", + "make", + "look", + "eye", + "down", + "only", + "think", + "heart", + "back", + "then", + "into", + "about", + "more", + "away", + "still", + "them", + "take", + "thing", + "even", + "through", + "long", + "always", + "world", + "too", + "friend", + "tell", + "try", + "hand", + "thought", + "over", + "here", + "other", + "need", + "smile", + "again", + "much", + "cry", + "been", + "night", + "ever", + "little", + "said", + "end", + "some", + "those", + "around", + "mind", + "people", + "girl", + "leave", + "dream", + "left", + "turn", + "myself", + "give", + "nothing", + "really", + "off", + "before", + "something", + "find", + "walk", + "wish", + "good", + "once", + "place", + "ask", + "stop", + "keep", + "watch", + "seem", + "everything", + "wait", + "got", + "yet", + "made", + "remember", + "start", + "alone", + "run", + "hope", + "maybe", + "believe", + "body", + "hate", + "after", + "close", + "talk", + "stand", + "own", + "each", + "hurt", + "help", + "home", + "god", + "soul", + "new", + "many", + "two", + "inside", + "should", + "true", + "first", + "fear", + "mean", + "better", + "play", + "another", + "gone", + "change", + "use", + "wonder", + "someone", + "hair", + "cold", + "open", + "best", + "any", + "behind", + "happen", + "water", + "dark", + "laugh", + "stay", + "forever", + "name", + "work", + "show", + "sky", + "break", + "came", + "deep", + "door", + "put", + "black", + "together", + "upon", + "happy", + "such", + "great", + "white", + "matter", + "fill", + "past", + "please", + "burn", + "cause", + "enough", + "touch", + "moment", + "soon", + "voice", + "scream", + "anything", + "stare", + "sound", + "red", + "everyone", + "hide", + "kiss", + "truth", + "death", + "beautiful", + "mine", + "blood", + "broken", + "very", + "pass", + "next", + "forget", + "tree", + "wrong", + "air", + "mother", + "understand", + "lip", + "hit", + "wall", + "memory", + "sleep", + "free", + "high", + "realize", + "school", + "might", + "skin", + "sweet", + "perfect", + "blue", + "kill", + "breath", + "dance", + "against", + "fly", + "between", + "grow", + "strong", + "under", + "listen", + "bring", + "sometimes", + "speak", + "pull", + "person", + "become", + "family", + "begin", + "ground", + "real", + "small", + "father", + "sure", + "feet", + "rest", + "young", + "finally", + "land", + "across", + "today", + "different", + "guy", + "line", + "fire", + "reason", + "reach", + "second", + "slowly", + "write", + "eat", + "smell", + "mouth", + "step", + "learn", + "three", + "floor", + "promise", + "breathe", + "darkness", + "push", + "earth", + "guess", + "save", + "song", + "above", + "along", + "both", + "color", + "house", + "almost", + "sorry", + "anymore", + "brother", + "okay", + "dear", + "game", + "fade", + "already", + "apart", + "warm", + "beauty", + "heard", + "notice", + "question", + "shine", + "began", + "piece", + "whole", + "shadow", + "secret", + "street", + "within", + "finger", + "point", + "morning", + "whisper", + "child", + "moon", + "green", + "story", + "glass", + "kid", + "silence", + "since", + "soft", + "yourself", + "empty", + "shall", + "angel", + "answer", + "baby", + "bright", + "dad", + "path", + "worry", + "hour", + "drop", + "follow", + "power", + "war", + "half", + "flow", + "heaven", + "act", + "chance", + "fact", + "least", + "tired", + "children", + "near", + "quite", + "afraid", + "rise", + "sea", + "taste", + "window", + "cover", + "nice", + "trust", + "lot", + "sad", + "cool", + "force", + "peace", + "return", + "blind", + "easy", + "ready", + "roll", + "rose", + "drive", + "held", + "music", + "beneath", + "hang", + "mom", + "paint", + "emotion", + "quiet", + "clear", + "cloud", + "few", + "pretty", + "bird", + "outside", + "paper", + "picture", + "front", + "rock", + "simple", + "anyone", + "meant", + "reality", + "road", + "sense", + "waste", + "bit", + "leaf", + "thank", + "happiness", + "meet", + "men", + "smoke", + "truly", + "decide", + "self", + "age", + "book", + "form", + "alive", + "carry", + "escape", + "damn", + "instead", + "able", + "ice", + "minute", + "throw", + "catch", + "leg", + "ring", + "course", + "goodbye", + "lead", + "poem", + "sick", + "corner", + "desire", + "known", + "problem", + "remind", + "shoulder", + "suppose", + "toward", + "wave", + "drink", + "jump", + "woman", + "pretend", + "sister", + "week", + "human", + "joy", + "crack", + "grey", + "pray", + "surprise", + "dry", + "knee", + "less", + "search", + "bleed", + "caught", + "clean", + "embrace", + "future", + "king", + "son", + "sorrow", + "chest", + "hug", + "remain", + "sat", + "worth", + "blow", + "daddy", + "final", + "parent", + "tight", + "also", + "create", + "lonely", + "safe", + "cross", + "dress", + "evil", + "silent", + "bone", + "fate", + "perhaps", + "anger", + "class", + "scar", + "snow", + "tiny", + "tonight", + "continue", + "control", + "dog", + "edge", + "mirror", + "month", + "suddenly", + "comfort", + "given", + "loud", + "quickly", + "gaze", + "plan", + "rush", + "stone", + "town", + "battle", + "ignore", + "spirit", + "stood", + "stupid", + "yours", + "brown", + "build", + "dust", + "hey", + "kept", + "pay", + "phone", + "twist", + "although", + "ball", + "beyond", + "hidden", + "nose", + "taken", + "fail", + "float", + "pure", + "somehow", + "wash", + "wrap", + "angry", + "cheek", + "creature", + "forgotten", + "heat", + "rip", + "single", + "space", + "special", + "weak", + "whatever", + "yell", + "anyway", + "blame", + "job", + "choose", + "country", + "curse", + "drift", + "echo", + "figure", + "grew", + "laughter", + "neck", + "suffer", + "worse", + "yeah", + "disappear", + "foot", + "forward", + "knife", + "mess", + "somewhere", + "stomach", + "storm", + "beg", + "idea", + "lift", + "offer", + "breeze", + "field", + "five", + "often", + "simply", + "stuck", + "win", + "allow", + "confuse", + "enjoy", + "except", + "flower", + "seek", + "strength", + "calm", + "grin", + "gun", + "heavy", + "hill", + "large", + "ocean", + "shoe", + "sigh", + "straight", + "summer", + "tongue", + "accept", + "crazy", + "everyday", + "exist", + "grass", + "mistake", + "sent", + "shut", + "surround", + "table", + "ache", + "brain", + "destroy", + "heal", + "nature", + "shout", + "sign", + "stain", + "choice", + "doubt", + "glance", + "glow", + "mountain", + "queen", + "stranger", + "throat", + "tomorrow", + "city", + "either", + "fish", + "flame", + "rather", + "shape", + "spin", + "spread", + "ash", + "distance", + "finish", + "image", + "imagine", + "important", + "nobody", + "shatter", + "warmth", + "became", + "feed", + "flesh", + "funny", + "lust", + "shirt", + "trouble", + "yellow", + "attention", + "bare", + "bite", + "money", + "protect", + "amaze", + "appear", + "born", + "choke", + "completely", + "daughter", + "fresh", + "friendship", + "gentle", + "probably", + "six", + "deserve", + "expect", + "grab", + "middle", + "nightmare", + "river", + "thousand", + "weight", + "worst", + "wound", + "barely", + "bottle", + "cream", + "regret", + "relationship", + "stick", + "test", + "crush", + "endless", + "fault", + "itself", + "rule", + "spill", + "art", + "circle", + "join", + "kick", + "mask", + "master", + "passion", + "quick", + "raise", + "smooth", + "unless", + "wander", + "actually", + "broke", + "chair", + "deal", + "favorite", + "gift", + "note", + "number", + "sweat", + "box", + "chill", + "clothes", + "lady", + "mark", + "park", + "poor", + "sadness", + "tie", + "animal", + "belong", + "brush", + "consume", + "dawn", + "forest", + "innocent", + "pen", + "pride", + "stream", + "thick", + "clay", + "complete", + "count", + "draw", + "faith", + "press", + "silver", + "struggle", + "surface", + "taught", + "teach", + "wet", + "bless", + "chase", + "climb", + "enter", + "letter", + "melt", + "metal", + "movie", + "stretch", + "swing", + "vision", + "wife", + "beside", + "crash", + "forgot", + "guide", + "haunt", + "joke", + "knock", + "plant", + "pour", + "prove", + "reveal", + "steal", + "stuff", + "trip", + "wood", + "wrist", + "bother", + "bottom", + "crawl", + "crowd", + "fix", + "forgive", + "frown", + "grace", + "loose", + "lucky", + "party", + "release", + "surely", + "survive", + "teacher", + "gently", + "grip", + "speed", + "suicide", + "travel", + "treat", + "vein", + "written", + "cage", + "chain", + "conversation", + "date", + "enemy", + "however", + "interest", + "million", + "page", + "pink", + "proud", + "sway", + "themselves", + "winter", + "church", + "cruel", + "cup", + "demon", + "experience", + "freedom", + "pair", + "pop", + "purpose", + "respect", + "shoot", + "softly", + "state", + "strange", + "bar", + "birth", + "curl", + "dirt", + "excuse", + "lord", + "lovely", + "monster", + "order", + "pack", + "pants", + "pool", + "scene", + "seven", + "shame", + "slide", + "ugly", + "among", + "blade", + "blonde", + "closet", + "creek", + "deny", + "drug", + "eternity", + "gain", + "grade", + "handle", + "key", + "linger", + "pale", + "prepare", + "swallow", + "swim", + "tremble", + "wheel", + "won", + "cast", + "cigarette", + "claim", + "college", + "direction", + "dirty", + "gather", + "ghost", + "hundred", + "loss", + "lung", + "orange", + "present", + "swear", + "swirl", + "twice", + "wild", + "bitter", + "blanket", + "doctor", + "everywhere", + "flash", + "grown", + "knowledge", + "numb", + "pressure", + "radio", + "repeat", + "ruin", + "spend", + "unknown", + "buy", + "clock", + "devil", + "early", + "false", + "fantasy", + "pound", + "precious", + "refuse", + "sheet", + "teeth", + "welcome", + "add", + "ahead", + "block", + "bury", + "caress", + "content", + "depth", + "despite", + "distant", + "marry", + "purple", + "threw", + "whenever", + "bomb", + "dull", + "easily", + "grasp", + "hospital", + "innocence", + "normal", + "receive", + "reply", + "rhyme", + "shade", + "someday", + "sword", + "toe", + "visit", + "asleep", + "bought", + "center", + "consider", + "flat", + "hero", + "history", + "ink", + "insane", + "muscle", + "mystery", + "pocket", + "reflection", + "shove", + "silently", + "smart", + "soldier", + "spot", + "stress", + "train", + "type", + "view", + "whether", + "bus", + "energy", + "explain", + "holy", + "hunger", + "inch", + "magic", + "mix", + "noise", + "nowhere", + "prayer", + "presence", + "shock", + "snap", + "spider", + "study", + "thunder", + "trail", + "admit", + "agree", + "bag", + "bang", + "bound", + "butterfly", + "cute", + "exactly", + "explode", + "familiar", + "fold", + "further", + "pierce", + "reflect", + "scent", + "selfish", + "sharp", + "sink", + "spring", + "stumble", + "universe", + "weep", + "women", + "wonderful", + "action", + "ancient", + "attempt", + "avoid", + "birthday", + "branch", + "chocolate", + "core", + "depress", + "drunk", + "especially", + "focus", + "fruit", + "honest", + "match", + "palm", + "perfectly", + "pillow", + "pity", + "poison", + "roar", + "shift", + "slightly", + "thump", + "truck", + "tune", + "twenty", + "unable", + "wipe", + "wrote", + "coat", + "constant", + "dinner", + "drove", + "egg", + "eternal", + "flight", + "flood", + "frame", + "freak", + "gasp", + "glad", + "hollow", + "motion", + "peer", + "plastic", + "root", + "screen", + "season", + "sting", + "strike", + "team", + "unlike", + "victim", + "volume", + "warn", + "weird", + "attack", + "await", + "awake", + "built", + "charm", + "crave", + "despair", + "fought", + "grant", + "grief", + "horse", + "limit", + "message", + "ripple", + "sanity", + "scatter", + "serve", + "split", + "string", + "trick", + "annoy", + "blur", + "boat", + "brave", + "clearly", + "cling", + "connect", + "fist", + "forth", + "imagination", + "iron", + "jock", + "judge", + "lesson", + "milk", + "misery", + "nail", + "naked", + "ourselves", + "poet", + "possible", + "princess", + "sail", + "size", + "snake", + "society", + "stroke", + "torture", + "toss", + "trace", + "wise", + "bloom", + "bullet", + "cell", + "check", + "cost", + "darling", + "during", + "footstep", + "fragile", + "hallway", + "hardly", + "horizon", + "invisible", + "journey", + "midnight", + "mud", + "nod", + "pause", + "relax", + "shiver", + "sudden", + "value", + "youth", + "abuse", + "admire", + "blink", + "breast", + "bruise", + "constantly", + "couple", + "creep", + "curve", + "difference", + "dumb", + "emptiness", + "gotta", + "honor", + "plain", + "planet", + "recall", + "rub", + "ship", + "slam", + "soar", + "somebody", + "tightly", + "weather", + "adore", + "approach", + "bond", + "bread", + "burst", + "candle", + "coffee", + "cousin", + "crime", + "desert", + "flutter", + "frozen", + "grand", + "heel", + "hello", + "language", + "level", + "movement", + "pleasure", + "powerful", + "random", + "rhythm", + "settle", + "silly", + "slap", + "sort", + "spoken", + "steel", + "threaten", + "tumble", + "upset", + "aside", + "awkward", + "bee", + "blank", + "board", + "button", + "card", + "carefully", + "complain", + "crap", + "deeply", + "discover", + "drag", + "dread", + "effort", + "entire", + "fairy", + "giant", + "gotten", + "greet", + "illusion", + "jeans", + "leap", + "liquid", + "march", + "mend", + "nervous", + "nine", + "replace", + "rope", + "spine", + "stole", + "terror", + "accident", + "apple", + "balance", + "boom", + "childhood", + "collect", + "demand", + "depression", + "eventually", + "faint", + "glare", + "goal", + "group", + "honey", + "kitchen", + "laid", + "limb", + "machine", + "mere", + "mold", + "murder", + "nerve", + "painful", + "poetry", + "prince", + "rabbit", + "shelter", + "shore", + "shower", + "soothe", + "stair", + "steady", + "sunlight", + "tangle", + "tease", + "treasure", + "uncle", + "begun", + "bliss", + "canvas", + "cheer", + "claw", + "clutch", + "commit", + "crimson", + "crystal", + "delight", + "doll", + "existence", + "express", + "fog", + "football", + "gay", + "goose", + "guard", + "hatred", + "illuminate", + "mass", + "math", + "mourn", + "rich", + "rough", + "skip", + "stir", + "student", + "style", + "support", + "thorn", + "tough", + "yard", + "yearn", + "yesterday", + "advice", + "appreciate", + "autumn", + "bank", + "beam", + "bowl", + "capture", + "carve", + "collapse", + "confusion", + "creation", + "dove", + "feather", + "girlfriend", + "glory", + "government", + "harsh", + "hop", + "inner", + "loser", + "moonlight", + "neighbor", + "neither", + "peach", + "pig", + "praise", + "screw", + "shield", + "shimmer", + "sneak", + "stab", + "subject", + "throughout", + "thrown", + "tower", + "twirl", + "wow", + "army", + "arrive", + "bathroom", + "bump", + "cease", + "cookie", + "couch", + "courage", + "dim", + "guilt", + "howl", + "hum", + "husband", + "insult", + "led", + "lunch", + "mock", + "mostly", + "natural", + "nearly", + "needle", + "nerd", + "peaceful", + "perfection", + "pile", + "price", + "remove", + "roam", + "sanctuary", + "serious", + "shiny", + "shook", + "sob", + "stolen", + "tap", + "vain", + "void", + "warrior", + "wrinkle", + "affection", + "apologize", + "blossom", + "bounce", + "bridge", + "cheap", + "crumble", + "decision", + "descend", + "desperately", + "dig", + "dot", + "flip", + "frighten", + "heartbeat", + "huge", + "lazy", + "lick", + "odd", + "opinion", + "process", + "puzzle", + "quietly", + "retreat", + "score", + "sentence", + "separate", + "situation", + "skill", + "soak", + "square", + "stray", + "taint", + "task", + "tide", + "underneath", + "veil", + "whistle", + "anywhere", + "bedroom", + "bid", + "bloody", + "burden", + "careful", + "compare", + "concern", + "curtain", + "decay", + "defeat", + "describe", + "double", + "dreamer", + "driver", + "dwell", + "evening", + "flare", + "flicker", + "grandma", + "guitar", + "harm", + "horrible", + "hungry", + "indeed", + "lace", + "melody", + "monkey", + "nation", + "object", + "obviously", + "rainbow", + "salt", + "scratch", + "shown", + "shy", + "stage", + "stun", + "third", + "tickle", + "useless", + "weakness", + "worship", + "worthless", + "afternoon", + "beard", + "boyfriend", + "bubble", + "busy", + "certain", + "chin", + "concrete", + "desk", + "diamond", + "doom", + "drawn", + "due", + "felicity", + "freeze", + "frost", + "garden", + "glide", + "harmony", + "hopefully", + "hunt", + "jealous", + "lightning", + "mama", + "mercy", + "peel", + "physical", + "position", + "pulse", + "punch", + "quit", + "rant", + "respond", + "salty", + "sane", + "satisfy", + "savior", + "sheep", + "slept", + "social", + "sport", + "tuck", + "utter", + "valley", + "wolf", + "aim", + "alas", + "alter", + "arrow", + "awaken", + "beaten", + "belief", + "brand", + "ceiling", + "cheese", + "clue", + "confidence", + "connection", + "daily", + "disguise", + "eager", + "erase", + "essence", + "everytime", + "expression", + "fan", + "flag", + "flirt", + "foul", + "fur", + "giggle", + "glorious", + "ignorance", + "law", + "lifeless", + "measure", + "mighty", + "muse", + "north", + "opposite", + "paradise", + "patience", + "patient", + "pencil", + "petal", + "plate", + "ponder", + "possibly", + "practice", + "slice", + "spell", + "stock", + "strife", + "strip", + "suffocate", + "suit", + "tender", + "tool", + "trade", + "velvet", + "verse", + "waist", + "witch", + "aunt", + "bench", + "bold", + "cap", + "certainly", + "click", + "companion", + "creator", + "dart", + "delicate", + "determine", + "dish", + "dragon", + "drama", + "drum", + "dude", + "everybody", + "feast", + "forehead", + "former", + "fright", + "fully", + "gas", + "hook", + "hurl", + "invite", + "juice", + "manage", + "moral", + "possess", + "raw", + "rebel", + "royal", + "scale", + "scary", + "several", + "slight", + "stubborn", + "swell", + "talent", + "tea", + "terrible", + "thread", + "torment", + "trickle", + "usually", + "vast", + "violence", + "weave", + "acid", + "agony", + "ashamed", + "awe", + "belly", + "blend", + "blush", + "character", + "cheat", + "common", + "company", + "coward", + "creak", + "danger", + "deadly", + "defense", + "define", + "depend", + "desperate", + "destination", + "dew", + "duck", + "dusty", + "embarrass", + "engine", + "example", + "explore", + "foe", + "freely", + "frustrate", + "generation", + "glove", + "guilty", + "health", + "hurry", + "idiot", + "impossible", + "inhale", + "jaw", + "kingdom", + "mention", + "mist", + "moan", + "mumble", + "mutter", + "observe", + "ode", + "pathetic", + "pattern", + "pie", + "prefer", + "puff", + "rape", + "rare", + "revenge", + "rude", + "scrape", + "spiral", + "squeeze", + "strain", + "sunset", + "suspend", + "sympathy", + "thigh", + "throne", + "total", + "unseen", + "weapon", + "weary" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "OldEnglish"; + populate_maps(); + } + }; +} + +#endif diff --git a/src/mnemonics/portuguese.h b/src/mnemonics/portuguese.h index 6d0754fd3..06d53f176 100644 --- a/src/mnemonics/portuguese.h +++ b/src/mnemonics/portuguese.h @@ -1,1652 +1,1680 @@ -#ifndef PORTUGUESE_H -#define PORTUGUESE_H - -#include -#include -#include "language_base.h" -#include - -namespace Language -{ - class Portuguese: public Base - { - public: - Portuguese() - { - word_list = new std::vector({ - "abaular", - "abdominal", - "abeto", - "abissinio", - "abjeto", - "ablucao", - "abnegar", - "abotoar", - "abrutalhar", - "absurdo", - "abutre", - "acautelar", - "accessorios", - "acetona", - "achocolatado", - "acirrar", - "acne", - "acovardar", - "acrostico", - "actinomicete", - "acustico", - "adaptavel", - "adeus", - "adivinho", - "adjunto", - "admoestar", - "adnominal", - "adotivo", - "adquirir", - "adriatico", - "adsorcao", - "adutora", - "advogar", - "aerossol", - "afazeres", - "afetuoso", - "afixo", - "afluir", - "afortunar", - "afrouxar", - "aftosa", - "afunilar", - "agentes", - "agito", - "aglutinar", - "aiatola", - "aimore", - "aino", - "aipo", - "airoso", - "ajeitar", - "ajoelhar", - "ajudante", - "ajuste", - "alazao", - "albumina", - "alcunha", - "alegria", - "alexandre", - "alforriar", - "alguns", - "alhures", - "alivio", - "almoxarife", - "alotropico", - "alpiste", - "alquimista", - "alsaciano", - "altura", - "aluviao", - "alvura", - "amazonico", - "ambulatorio", - "ametodico", - "amizades", - "amniotico", - "amovivel", - "amurada", - "anatomico", - "ancorar", - "anexo", - "anfora", - "aniversario", - "anjo", - "anotar", - "ansioso", - "anturio", - "anuviar", - "anverso", - "anzol", - "aonde", - "apaziguar", - "apito", - "aplicavel", - "apoteotico", - "aprimorar", - "aprumo", - "apto", - "apuros", - "aquoso", - "arauto", - "arbusto", - "arduo", - "aresta", - "arfar", - "arguto", - "aritmetico", - "arlequim", - "armisticio", - "aromatizar", - "arpoar", - "arquivo", - "arrumar", - "arsenio", - "arturiano", - "aruaque", - "arvores", - "asbesto", - "ascorbico", - "aspirina", - "asqueroso", - "assustar", - "astuto", - "atazanar", - "ativo", - "atletismo", - "atmosferico", - "atormentar", - "atroz", - "aturdir", - "audivel", - "auferir", - "augusto", - "aula", - "aumento", - "aurora", - "autuar", - "avatar", - "avexar", - "avizinhar", - "avolumar", - "avulso", - "axiomatico", - "azerbaijano", - "azimute", - "azoto", - "azulejo", - "bacteriologista", - "badulaque", - "baforada", - "baixote", - "bajular", - "balzaquiana", - "bambuzal", - "banzo", - "baoba", - "baqueta", - "barulho", - "bastonete", - "batuta", - "bauxita", - "bavaro", - "bazuca", - "bcrepuscular", - "beato", - "beduino", - "begonia", - "behaviorista", - "beisebol", - "belzebu", - "bemol", - "benzido", - "beocio", - "bequer", - "berro", - "besuntar", - "betume", - "bexiga", - "bezerro", - "biatlon", - "biboca", - "bicuspide", - "bidirecional", - "bienio", - "bifurcar", - "bigorna", - "bijuteria", - "bimotor", - "binormal", - "bioxido", - "bipolarizacao", - "biquini", - "birutice", - "bisturi", - "bituca", - "biunivoco", - "bivalve", - "bizarro", - "blasfemo", - "blenorreia", - "blindar", - "bloqueio", - "blusao", - "boazuda", - "bofete", - "bojudo", - "bolso", - "bombordo", - "bonzo", - "botina", - "boquiaberto", - "bostoniano", - "botulismo", - "bourbon", - "bovino", - "boximane", - "bravura", - "brevidade", - "britar", - "broxar", - "bruno", - "bruxuleio", - "bubonico", - "bucolico", - "buda", - "budista", - "bueiro", - "buffer", - "bugre", - "bujao", - "bumerangue", - "burundines", - "busto", - "butique", - "buzios", - "caatinga", - "cabuqui", - "cacunda", - "cafuzo", - "cajueiro", - "camurca", - "canudo", - "caquizeiro", - "carvoeiro", - "casulo", - "catuaba", - "cauterizar", - "cebolinha", - "cedula", - "ceifeiro", - "celulose", - "cerzir", - "cesto", - "cetro", - "ceus", - "cevar", - "chavena", - "cheroqui", - "chita", - "chovido", - "chuvoso", - "ciatico", - "cibernetico", - "cicuta", - "cidreira", - "cientistas", - "cifrar", - "cigarro", - "cilio", - "cimo", - "cinzento", - "cioso", - "cipriota", - "cirurgico", - "cisto", - "citrico", - "ciumento", - "civismo", - "clavicula", - "clero", - "clitoris", - "cluster", - "coaxial", - "cobrir", - "cocota", - "codorniz", - "coexistir", - "cogumelo", - "coito", - "colusao", - "compaixao", - "comutativo", - "contentamento", - "convulsivo", - "coordenativa", - "coquetel", - "correto", - "corvo", - "costureiro", - "cotovia", - "covil", - "cozinheiro", - "cretino", - "cristo", - "crivo", - "crotalo", - "cruzes", - "cubo", - "cucuia", - "cueiro", - "cuidar", - "cujo", - "cultural", - "cunilingua", - "cupula", - "curvo", - "custoso", - "cutucar", - "czarismo", - "dablio", - "dacota", - "dados", - "daguerreotipo", - "daiquiri", - "daltonismo", - "damista", - "dantesco", - "daquilo", - "darwinista", - "dasein", - "dativo", - "deao", - "debutantes", - "decurso", - "deduzir", - "defunto", - "degustar", - "dejeto", - "deltoide", - "demover", - "denunciar", - "deputado", - "deque", - "dervixe", - "desvirtuar", - "deturpar", - "deuteronomio", - "devoto", - "dextrose", - "dezoito", - "diatribe", - "dicotomico", - "didatico", - "dietista", - "difuso", - "digressao", - "diluvio", - "diminuto", - "dinheiro", - "dinossauro", - "dioxido", - "diplomatico", - "dique", - "dirimivel", - "disturbio", - "diurno", - "divulgar", - "dizivel", - "doar", - "dobro", - "docura", - "dodoi", - "doer", - "dogue", - "doloso", - "domo", - "donzela", - "doping", - "dorsal", - "dossie", - "dote", - "doutro", - "doze", - "dravidico", - "dreno", - "driver", - "dropes", - "druso", - "dubnio", - "ducto", - "dueto", - "dulija", - "dundum", - "duodeno", - "duquesa", - "durou", - "duvidoso", - "duzia", - "ebano", - "ebrio", - "eburneo", - "echarpe", - "eclusa", - "ecossistema", - "ectoplasma", - "ecumenismo", - "eczema", - "eden", - "editorial", - "edredom", - "edulcorar", - "efetuar", - "efigie", - "efluvio", - "egiptologo", - "egresso", - "egua", - "einsteiniano", - "eira", - "eivar", - "eixos", - "ejetar", - "elastomero", - "eldorado", - "elixir", - "elmo", - "eloquente", - "elucidativo", - "emaranhar", - "embutir", - "emerito", - "emfa", - "emitir", - "emotivo", - "empuxo", - "emulsao", - "enamorar", - "encurvar", - "enduro", - "enevoar", - "enfurnar", - "enguico", - "enho", - "enigmista", - "enlutar", - "enormidade", - "enpreendimento", - "enquanto", - "enriquecer", - "enrugar", - "entusiastico", - "enunciar", - "envolvimento", - "enxuto", - "enzimatico", - "eolico", - "epiteto", - "epoxi", - "epura", - "equivoco", - "erario", - "erbio", - "ereto", - "erguido", - "erisipela", - "ermo", - "erotizar", - "erros", - "erupcao", - "ervilha", - "esburacar", - "escutar", - "esfuziante", - "esguio", - "esloveno", - "esmurrar", - "esoterismo", - "esperanca", - "espirito", - "espurio", - "essencialmente", - "esturricar", - "esvoacar", - "etario", - "eterno", - "etiquetar", - "etnologo", - "etos", - "etrusco", - "euclidiano", - "euforico", - "eugenico", - "eunuco", - "europio", - "eustaquio", - "eutanasia", - "evasivo", - "eventualidade", - "evitavel", - "evoluir", - "exaustor", - "excursionista", - "exercito", - "exfoliado", - "exito", - "exotico", - "expurgo", - "exsudar", - "extrusora", - "exumar", - "fabuloso", - "facultativo", - "fado", - "fagulha", - "faixas", - "fajuto", - "faltoso", - "famoso", - "fanzine", - "fapesp", - "faquir", - "fartura", - "fastio", - "faturista", - "fausto", - "favorito", - "faxineira", - "fazer", - "fealdade", - "febril", - "fecundo", - "fedorento", - "feerico", - "feixe", - "felicidade", - "felipe", - "feltro", - "femur", - "fenotipo", - "fervura", - "festivo", - "feto", - "feudo", - "fevereiro", - "fezinha", - "fiasco", - "fibra", - "ficticio", - "fiduciario", - "fiesp", - "fifa", - "figurino", - "fijiano", - "filtro", - "finura", - "fiorde", - "fiquei", - "firula", - "fissurar", - "fitoteca", - "fivela", - "fixo", - "flavio", - "flexor", - "flibusteiro", - "flotilha", - "fluxograma", - "fobos", - "foco", - "fofura", - "foguista", - "foie", - "foliculo", - "fominha", - "fonte", - "forum", - "fosso", - "fotossintese", - "foxtrote", - "fraudulento", - "frevo", - "frivolo", - "frouxo", - "frutose", - "fuba", - "fucsia", - "fugitivo", - "fuinha", - "fujao", - "fulustreco", - "fumo", - "funileiro", - "furunculo", - "fustigar", - "futurologo", - "fuxico", - "fuzue", - "gabriel", - "gado", - "gaelico", - "gafieira", - "gaguejo", - "gaivota", - "gajo", - "galvanoplastico", - "gamo", - "ganso", - "garrucha", - "gastronomo", - "gatuno", - "gaussiano", - "gaviao", - "gaxeta", - "gazeteiro", - "gear", - "geiser", - "geminiano", - "generoso", - "genuino", - "geossinclinal", - "gerundio", - "gestual", - "getulista", - "gibi", - "gigolo", - "gilete", - "ginseng", - "giroscopio", - "glaucio", - "glacial", - "gleba", - "glifo", - "glote", - "glutonia", - "gnostico", - "goela", - "gogo", - "goitaca", - "golpista", - "gomo", - "gonzo", - "gorro", - "gostou", - "goticula", - "gourmet", - "governo", - "gozo", - "graxo", - "grevista", - "grito", - "grotesco", - "gruta", - "guaxinim", - "gude", - "gueto", - "guizo", - "guloso", - "gume", - "guru", - "gustativo", - "gustavo", - "gutural", - "habitue", - "haitiano", - "halterofilista", - "hamburguer", - "hanseniase", - "happening", - "harpista", - "hastear", - "haveres", - "hebreu", - "hectometro", - "hedonista", - "hegira", - "helena", - "helminto", - "hemorroidas", - "henrique", - "heptassilabo", - "hertziano", - "hesitar", - "heterossexual", - "heuristico", - "hexagono", - "hiato", - "hibrido", - "hidrostatico", - "hieroglifo", - "hifenizar", - "higienizar", - "hilario", - "himen", - "hino", - "hippie", - "hirsuto", - "historiografia", - "hitlerista", - "hodometro", - "hoje", - "holograma", - "homus", - "honroso", - "hoquei", - "horto", - "hostilizar", - "hotentote", - "huguenote", - "humilde", - "huno", - "hurra", - "hutu", - "iaia", - "ialorixa", - "iambico", - "iansa", - "iaque", - "iara", - "iatista", - "iberico", - "ibis", - "icar", - "iceberg", - "icosagono", - "idade", - "ideologo", - "idiotice", - "idoso", - "iemenita", - "iene", - "igarape", - "iglu", - "ignorar", - "igreja", - "iguaria", - "iidiche", - "ilativo", - "iletrado", - "ilharga", - "ilimitado", - "ilogismo", - "ilustrissimo", - "imaturo", - "imbuzeiro", - "imerso", - "imitavel", - "imovel", - "imputar", - "imutavel", - "inaveriguavel", - "incutir", - "induzir", - "inextricavel", - "infusao", - "ingua", - "inhame", - "iniquo", - "injusto", - "inning", - "inoxidavel", - "inquisitorial", - "insustentavel", - "intumescimento", - "inutilizavel", - "invulneravel", - "inzoneiro", - "iodo", - "iogurte", - "ioio", - "ionosfera", - "ioruba", - "iota", - "ipsilon", - "irascivel", - "iris", - "irlandes", - "irmaos", - "iroques", - "irrupcao", - "isca", - "isento", - "islandes", - "isotopo", - "isqueiro", - "israelita", - "isso", - "isto", - "iterbio", - "itinerario", - "itrio", - "iuane", - "iugoslavo", - "jabuticabeira", - "jacutinga", - "jade", - "jagunco", - "jainista", - "jaleco", - "jambo", - "jantarada", - "japones", - "jaqueta", - "jarro", - "jasmim", - "jato", - "jaula", - "javel", - "jazz", - "jegue", - "jeitoso", - "jejum", - "jenipapo", - "jeova", - "jequitiba", - "jersei", - "jesus", - "jetom", - "jiboia", - "jihad", - "jilo", - "jingle", - "jipe", - "jocoso", - "joelho", - "joguete", - "joio", - "jojoba", - "jorro", - "jota", - "joule", - "joviano", - "jubiloso", - "judoca", - "jugular", - "juizo", - "jujuba", - "juliano", - "jumento", - "junto", - "jururu", - "justo", - "juta", - "juventude", - "labutar", - "laguna", - "laico", - "lajota", - "lanterninha", - "lapso", - "laquear", - "lastro", - "lauto", - "lavrar", - "laxativo", - "lazer", - "leasing", - "lebre", - "lecionar", - "ledo", - "leguminoso", - "leitura", - "lele", - "lemure", - "lento", - "leonardo", - "leopardo", - "lepton", - "leque", - "leste", - "letreiro", - "leucocito", - "levitico", - "lexicologo", - "lhama", - "lhufas", - "liame", - "licoroso", - "lidocaina", - "liliputiano", - "limusine", - "linotipo", - "lipoproteina", - "liquidos", - "lirismo", - "lisura", - "liturgico", - "livros", - "lixo", - "lobulo", - "locutor", - "lodo", - "logro", - "lojista", - "lombriga", - "lontra", - "loop", - "loquaz", - "lorota", - "losango", - "lotus", - "louvor", - "luar", - "lubrificavel", - "lucros", - "lugubre", - "luis", - "luminoso", - "luneta", - "lustroso", - "luto", - "luvas", - "luxuriante", - "luzeiro", - "maduro", - "maestro", - "mafioso", - "magro", - "maiuscula", - "majoritario", - "malvisto", - "mamute", - "manutencao", - "mapoteca", - "maquinista", - "marzipa", - "masturbar", - "matuto", - "mausoleu", - "mavioso", - "maxixe", - "mazurca", - "meandro", - "mecha", - "medusa", - "mefistofelico", - "megera", - "meirinho", - "melro", - "memorizar", - "menu", - "mequetrefe", - "mertiolate", - "mestria", - "metroviario", - "mexilhao", - "mezanino", - "miau", - "microssegundo", - "midia", - "migratorio", - "mimosa", - "minuto", - "miosotis", - "mirtilo", - "misturar", - "mitzvah", - "miudos", - "mixuruca", - "mnemonico", - "moagem", - "mobilizar", - "modulo", - "moer", - "mofo", - "mogno", - "moita", - "molusco", - "monumento", - "moqueca", - "morubixaba", - "mostruario", - "motriz", - "mouse", - "movivel", - "mozarela", - "muarra", - "muculmano", - "mudo", - "mugir", - "muitos", - "mumunha", - "munir", - "muon", - "muquira", - "murros", - "musselina", - "nacoes", - "nado", - "naftalina", - "nago", - "naipe", - "naja", - "nalgum", - "namoro", - "nanquim", - "napolitano", - "naquilo", - "nascimento", - "nautilo", - "navios", - "nazista", - "nebuloso", - "nectarina", - "nefrologo", - "negus", - "nelore", - "nenufar", - "nepotismo", - "nervura", - "neste", - "netuno", - "neutron", - "nevoeiro", - "newtoniano", - "nexo", - "nhenhenhem", - "nhoque", - "nigeriano", - "niilista", - "ninho", - "niobio", - "niponico", - "niquelar", - "nirvana", - "nisto", - "nitroglicerina", - "nivoso", - "nobreza", - "nocivo", - "noel", - "nogueira", - "noivo", - "nojo", - "nominativo", - "nonuplo", - "noruegues", - "nostalgico", - "noturno", - "nouveau", - "nuanca", - "nublar", - "nucleotideo", - "nudista", - "nulo", - "numismatico", - "nunquinha", - "nupcias", - "nutritivo", - "nuvens", - "oasis", - "obcecar", - "obeso", - "obituario", - "objetos", - "oblongo", - "obnoxio", - "obrigatorio", - "obstruir", - "obtuso", - "obus", - "obvio", - "ocaso", - "occipital", - "oceanografo", - "ocioso", - "oclusivo", - "ocorrer", - "ocre", - "octogono", - "odalisca", - "odisseia", - "odorifico", - "oersted", - "oeste", - "ofertar", - "ofidio", - "oftalmologo", - "ogiva", - "ogum", - "oigale", - "oitavo", - "oitocentos", - "ojeriza", - "olaria", - "oleoso", - "olfato", - "olhos", - "oliveira", - "olmo", - "olor", - "olvidavel", - "ombudsman", - "omeleteira", - "omitir", - "omoplata", - "onanismo", - "ondular", - "oneroso", - "onomatopeico", - "ontologico", - "onus", - "onze", - "opalescente", - "opcional", - "operistico", - "opio", - "oposto", - "oprobrio", - "optometrista", - "opusculo", - "oratorio", - "orbital", - "orcar", - "orfao", - "orixa", - "orla", - "ornitologo", - "orquidea", - "ortorrombico", - "orvalho", - "osculo", - "osmotico", - "ossudo", - "ostrogodo", - "otario", - "otite", - "ouro", - "ousar", - "outubro", - "ouvir", - "ovario", - "overnight", - "oviparo", - "ovni", - "ovoviviparo", - "ovulo", - "oxala", - "oxente", - "oxiuro", - "oxossi", - "ozonizar", - "paciente", - "pactuar", - "padronizar", - "paete", - "pagodeiro", - "paixao", - "pajem", - "paludismo", - "pampas", - "panturrilha", - "papudo", - "paquistanes", - "pastoso", - "patua", - "paulo", - "pauzinhos", - "pavoroso", - "paxa", - "pazes", - "peao", - "pecuniario", - "pedunculo", - "pegaso", - "peixinho", - "pejorativo", - "pelvis", - "penuria", - "pequno", - "petunia", - "pezada", - "piauiense", - "pictorico", - "pierro", - "pigmeu", - "pijama", - "pilulas", - "pimpolho", - "pintura", - "piorar", - "pipocar", - "piqueteiro", - "pirulito", - "pistoleiro", - "pituitaria", - "pivotar", - "pixote", - "pizzaria", - "plistoceno", - "plotar", - "pluviometrico", - "pneumonico", - "poco", - "podridao", - "poetisa", - "pogrom", - "pois", - "polvorosa", - "pomposo", - "ponderado", - "pontudo", - "populoso", - "poquer", - "porvir", - "posudo", - "potro", - "pouso", - "povoar", - "prazo", - "prezar", - "privilegios", - "proximo", - "prussiano", - "pseudopode", - "psoriase", - "pterossauros", - "ptialina", - "ptolemaico", - "pudor", - "pueril", - "pufe", - "pugilista", - "puir", - "pujante", - "pulverizar", - "pumba", - "punk", - "purulento", - "pustula", - "putsch", - "puxe", - "quatrocentos", - "quetzal", - "quixotesco", - "quotizavel", - "rabujice", - "racista", - "radonio", - "rafia", - "ragu", - "rajado", - "ralo", - "rampeiro", - "ranzinza", - "raptor", - "raquitismo", - "raro", - "rasurar", - "ratoeira", - "ravioli", - "razoavel", - "reavivar", - "rebuscar", - "recusavel", - "reduzivel", - "reexposicao", - "refutavel", - "regurgitar", - "reivindicavel", - "rejuvenescimento", - "relva", - "remuneravel", - "renunciar", - "reorientar", - "repuxo", - "requisito", - "resumo", - "returno", - "reutilizar", - "revolvido", - "rezonear", - "riacho", - "ribossomo", - "ricota", - "ridiculo", - "rifle", - "rigoroso", - "rijo", - "rimel", - "rins", - "rios", - "riqueza", - "riquixa", - "rissole", - "ritualistico", - "rivalizar", - "rixa", - "robusto", - "rococo", - "rodoviario", - "roer", - "rogo", - "rojao", - "rolo", - "rompimento", - "ronronar", - "roqueiro", - "rorqual", - "rosto", - "rotundo", - "rouxinol", - "roxo", - "royal", - "ruas", - "rucula", - "rudimentos", - "ruela", - "rufo", - "rugoso", - "ruivo", - "rule", - "rumoroso", - "runico", - "ruptura", - "rural", - "rustico", - "rutilar", - "saariano", - "sabujo", - "sacudir", - "sadomasoquista", - "safra", - "sagui", - "sais", - "samurai", - "santuario", - "sapo", - "saquear", - "sartriano", - "saturno", - "saude", - "sauva", - "saveiro", - "saxofonista", - "sazonal", - "scherzo", - "script", - "seara", - "seborreia", - "secura", - "seduzir", - "sefardim", - "seguro", - "seja", - "selvas", - "sempre", - "senzala", - "sepultura", - "sequoia", - "sestercio", - "setuplo", - "seus", - "seviciar", - "sezonismo", - "shalom", - "siames", - "sibilante", - "sicrano", - "sidra", - "sifilitico", - "signos", - "silvo", - "simultaneo", - "sinusite", - "sionista", - "sirio", - "sisudo", - "situar", - "sivan", - "slide", - "slogan", - "soar", - "sobrio", - "socratico", - "sodomizar", - "soerguer", - "software", - "sogro", - "soja", - "solver", - "somente", - "sonso", - "sopro", - "soquete", - "sorveteiro", - "sossego", - "soturno", - "sousafone", - "sovinice", - "sozinho", - "suavizar", - "subverter", - "sucursal", - "sudoriparo", - "sufragio", - "sugestoes", - "suite", - "sujo", - "sultao", - "sumula", - "suntuoso", - "suor", - "supurar", - "suruba", - "susto", - "suturar", - "suvenir", - "tabuleta", - "taco", - "tadjique", - "tafeta", - "tagarelice", - "taitiano", - "talvez", - "tampouco", - "tanzaniano", - "taoista", - "tapume", - "taquion", - "tarugo", - "tascar", - "tatuar", - "tautologico", - "tavola", - "taxionomista", - "tchecoslovaco", - "teatrologo", - "tectonismo", - "tedioso", - "teflon", - "tegumento", - "teixo", - "telurio", - "temporas", - "tenue", - "teosofico", - "tepido", - "tequila", - "terrorista", - "testosterona", - "tetrico", - "teutonico", - "teve", - "texugo", - "tiara", - "tibia", - "tiete", - "tifoide", - "tigresa", - "tijolo", - "tilintar", - "timpano", - "tintureiro", - "tiquete", - "tiroteio", - "tisico", - "titulos", - "tive", - "toar", - "toboga", - "tofu", - "togoles", - "toicinho", - "tolueno", - "tomografo", - "tontura", - "toponimo", - "toquio", - "torvelinho", - "tostar", - "toto", - "touro", - "toxina", - "trazer", - "trezentos", - "trivialidade", - "trovoar", - "truta", - "tuaregue", - "tubular", - "tucano", - "tudo", - "tufo", - "tuiste", - "tulipa", - "tumultuoso", - "tunisino", - "tupiniquim", - "turvo", - "tutu", - "ucraniano", - "udenista", - "ufanista", - "ufologo", - "ugaritico", - "uiste", - "uivo", - "ulceroso", - "ulema", - "ultravioleta", - "umbilical", - "umero", - "umido", - "umlaut", - "unanimidade", - "unesco", - "ungulado", - "unheiro", - "univoco", - "untuoso", - "urano", - "urbano", - "urdir", - "uretra", - "urgente", - "urinol", - "urna", - "urologo", - "urro", - "ursulina", - "urtiga", - "urupe", - "usavel", - "usbeque", - "usei", - "usineiro", - "usurpar", - "utero", - "utilizar", - "utopico", - "uvular", - "uxoricidio", - "vacuo", - "vadio", - "vaguear", - "vaivem", - "valvula", - "vampiro", - "vantajoso", - "vaporoso", - "vaquinha", - "varziano", - "vasto", - "vaticinio", - "vaudeville", - "vazio", - "veado", - "vedico", - "veemente", - "vegetativo", - "veio", - "veja", - "veludo", - "venusiano", - "verdade", - "verve", - "vestuario", - "vetusto", - "vexatorio", - "vezes", - "viavel", - "vibratorio", - "victor", - "vicunha", - "vidros", - "vietnamita", - "vigoroso", - "vilipendiar", - "vime", - "vintem", - "violoncelo", - "viquingue", - "virus", - "visualizar", - "vituperio", - "viuvo", - "vivo", - "vizir", - "voar", - "vociferar", - "vodu", - "vogar", - "voile", - "volver", - "vomito", - "vontade", - "vortice", - "vosso", - "voto", - "vovozinha", - "voyeuse", - "vozes", - "vulva", - "vupt", - "western", - "xadrez", - "xale", - "xampu", - "xango", - "xarope", - "xaual", - "xavante", - "xaxim", - "xenonio", - "xepa", - "xerox", - "xicara", - "xifopago", - "xiita", - "xilogravura", - "xinxim", - "xistoso", - "xixi", - "xodo", - "xogum", - "xucro", - "zabumba", - "zagueiro", - "zambiano", - "zanzar", - "zarpar", - "zebu", - "zefiro", - "zeloso", - "zenite", - "zumbi" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "Portuguese"; - populate_maps(); - } - }; -} - -#endif +// Copyright (c) 2014, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef PORTUGUESE_H +#define PORTUGUESE_H + +#include +#include +#include "language_base.h" +#include + +namespace Language +{ + class Portuguese: public Base + { + public: + Portuguese() + { + word_list = new std::vector({ + "abaular", + "abdominal", + "abeto", + "abissinio", + "abjeto", + "ablucao", + "abnegar", + "abotoar", + "abrutalhar", + "absurdo", + "abutre", + "acautelar", + "accessorios", + "acetona", + "achocolatado", + "acirrar", + "acne", + "acovardar", + "acrostico", + "actinomicete", + "acustico", + "adaptavel", + "adeus", + "adivinho", + "adjunto", + "admoestar", + "adnominal", + "adotivo", + "adquirir", + "adriatico", + "adsorcao", + "adutora", + "advogar", + "aerossol", + "afazeres", + "afetuoso", + "afixo", + "afluir", + "afortunar", + "afrouxar", + "aftosa", + "afunilar", + "agentes", + "agito", + "aglutinar", + "aiatola", + "aimore", + "aino", + "aipo", + "airoso", + "ajeitar", + "ajoelhar", + "ajudante", + "ajuste", + "alazao", + "albumina", + "alcunha", + "alegria", + "alexandre", + "alforriar", + "alguns", + "alhures", + "alivio", + "almoxarife", + "alotropico", + "alpiste", + "alquimista", + "alsaciano", + "altura", + "aluviao", + "alvura", + "amazonico", + "ambulatorio", + "ametodico", + "amizades", + "amniotico", + "amovivel", + "amurada", + "anatomico", + "ancorar", + "anexo", + "anfora", + "aniversario", + "anjo", + "anotar", + "ansioso", + "anturio", + "anuviar", + "anverso", + "anzol", + "aonde", + "apaziguar", + "apito", + "aplicavel", + "apoteotico", + "aprimorar", + "aprumo", + "apto", + "apuros", + "aquoso", + "arauto", + "arbusto", + "arduo", + "aresta", + "arfar", + "arguto", + "aritmetico", + "arlequim", + "armisticio", + "aromatizar", + "arpoar", + "arquivo", + "arrumar", + "arsenio", + "arturiano", + "aruaque", + "arvores", + "asbesto", + "ascorbico", + "aspirina", + "asqueroso", + "assustar", + "astuto", + "atazanar", + "ativo", + "atletismo", + "atmosferico", + "atormentar", + "atroz", + "aturdir", + "audivel", + "auferir", + "augusto", + "aula", + "aumento", + "aurora", + "autuar", + "avatar", + "avexar", + "avizinhar", + "avolumar", + "avulso", + "axiomatico", + "azerbaijano", + "azimute", + "azoto", + "azulejo", + "bacteriologista", + "badulaque", + "baforada", + "baixote", + "bajular", + "balzaquiana", + "bambuzal", + "banzo", + "baoba", + "baqueta", + "barulho", + "bastonete", + "batuta", + "bauxita", + "bavaro", + "bazuca", + "bcrepuscular", + "beato", + "beduino", + "begonia", + "behaviorista", + "beisebol", + "belzebu", + "bemol", + "benzido", + "beocio", + "bequer", + "berro", + "besuntar", + "betume", + "bexiga", + "bezerro", + "biatlon", + "biboca", + "bicuspide", + "bidirecional", + "bienio", + "bifurcar", + "bigorna", + "bijuteria", + "bimotor", + "binormal", + "bioxido", + "bipolarizacao", + "biquini", + "birutice", + "bisturi", + "bituca", + "biunivoco", + "bivalve", + "bizarro", + "blasfemo", + "blenorreia", + "blindar", + "bloqueio", + "blusao", + "boazuda", + "bofete", + "bojudo", + "bolso", + "bombordo", + "bonzo", + "botina", + "boquiaberto", + "bostoniano", + "botulismo", + "bourbon", + "bovino", + "boximane", + "bravura", + "brevidade", + "britar", + "broxar", + "bruno", + "bruxuleio", + "bubonico", + "bucolico", + "buda", + "budista", + "bueiro", + "buffer", + "bugre", + "bujao", + "bumerangue", + "burundines", + "busto", + "butique", + "buzios", + "caatinga", + "cabuqui", + "cacunda", + "cafuzo", + "cajueiro", + "camurca", + "canudo", + "caquizeiro", + "carvoeiro", + "casulo", + "catuaba", + "cauterizar", + "cebolinha", + "cedula", + "ceifeiro", + "celulose", + "cerzir", + "cesto", + "cetro", + "ceus", + "cevar", + "chavena", + "cheroqui", + "chita", + "chovido", + "chuvoso", + "ciatico", + "cibernetico", + "cicuta", + "cidreira", + "cientistas", + "cifrar", + "cigarro", + "cilio", + "cimo", + "cinzento", + "cioso", + "cipriota", + "cirurgico", + "cisto", + "citrico", + "ciumento", + "civismo", + "clavicula", + "clero", + "clitoris", + "cluster", + "coaxial", + "cobrir", + "cocota", + "codorniz", + "coexistir", + "cogumelo", + "coito", + "colusao", + "compaixao", + "comutativo", + "contentamento", + "convulsivo", + "coordenativa", + "coquetel", + "correto", + "corvo", + "costureiro", + "cotovia", + "covil", + "cozinheiro", + "cretino", + "cristo", + "crivo", + "crotalo", + "cruzes", + "cubo", + "cucuia", + "cueiro", + "cuidar", + "cujo", + "cultural", + "cunilingua", + "cupula", + "curvo", + "custoso", + "cutucar", + "czarismo", + "dablio", + "dacota", + "dados", + "daguerreotipo", + "daiquiri", + "daltonismo", + "damista", + "dantesco", + "daquilo", + "darwinista", + "dasein", + "dativo", + "deao", + "debutantes", + "decurso", + "deduzir", + "defunto", + "degustar", + "dejeto", + "deltoide", + "demover", + "denunciar", + "deputado", + "deque", + "dervixe", + "desvirtuar", + "deturpar", + "deuteronomio", + "devoto", + "dextrose", + "dezoito", + "diatribe", + "dicotomico", + "didatico", + "dietista", + "difuso", + "digressao", + "diluvio", + "diminuto", + "dinheiro", + "dinossauro", + "dioxido", + "diplomatico", + "dique", + "dirimivel", + "disturbio", + "diurno", + "divulgar", + "dizivel", + "doar", + "dobro", + "docura", + "dodoi", + "doer", + "dogue", + "doloso", + "domo", + "donzela", + "doping", + "dorsal", + "dossie", + "dote", + "doutro", + "doze", + "dravidico", + "dreno", + "driver", + "dropes", + "druso", + "dubnio", + "ducto", + "dueto", + "dulija", + "dundum", + "duodeno", + "duquesa", + "durou", + "duvidoso", + "duzia", + "ebano", + "ebrio", + "eburneo", + "echarpe", + "eclusa", + "ecossistema", + "ectoplasma", + "ecumenismo", + "eczema", + "eden", + "editorial", + "edredom", + "edulcorar", + "efetuar", + "efigie", + "efluvio", + "egiptologo", + "egresso", + "egua", + "einsteiniano", + "eira", + "eivar", + "eixos", + "ejetar", + "elastomero", + "eldorado", + "elixir", + "elmo", + "eloquente", + "elucidativo", + "emaranhar", + "embutir", + "emerito", + "emfa", + "emitir", + "emotivo", + "empuxo", + "emulsao", + "enamorar", + "encurvar", + "enduro", + "enevoar", + "enfurnar", + "enguico", + "enho", + "enigmista", + "enlutar", + "enormidade", + "enpreendimento", + "enquanto", + "enriquecer", + "enrugar", + "entusiastico", + "enunciar", + "envolvimento", + "enxuto", + "enzimatico", + "eolico", + "epiteto", + "epoxi", + "epura", + "equivoco", + "erario", + "erbio", + "ereto", + "erguido", + "erisipela", + "ermo", + "erotizar", + "erros", + "erupcao", + "ervilha", + "esburacar", + "escutar", + "esfuziante", + "esguio", + "esloveno", + "esmurrar", + "esoterismo", + "esperanca", + "espirito", + "espurio", + "essencialmente", + "esturricar", + "esvoacar", + "etario", + "eterno", + "etiquetar", + "etnologo", + "etos", + "etrusco", + "euclidiano", + "euforico", + "eugenico", + "eunuco", + "europio", + "eustaquio", + "eutanasia", + "evasivo", + "eventualidade", + "evitavel", + "evoluir", + "exaustor", + "excursionista", + "exercito", + "exfoliado", + "exito", + "exotico", + "expurgo", + "exsudar", + "extrusora", + "exumar", + "fabuloso", + "facultativo", + "fado", + "fagulha", + "faixas", + "fajuto", + "faltoso", + "famoso", + "fanzine", + "fapesp", + "faquir", + "fartura", + "fastio", + "faturista", + "fausto", + "favorito", + "faxineira", + "fazer", + "fealdade", + "febril", + "fecundo", + "fedorento", + "feerico", + "feixe", + "felicidade", + "felipe", + "feltro", + "femur", + "fenotipo", + "fervura", + "festivo", + "feto", + "feudo", + "fevereiro", + "fezinha", + "fiasco", + "fibra", + "ficticio", + "fiduciario", + "fiesp", + "fifa", + "figurino", + "fijiano", + "filtro", + "finura", + "fiorde", + "fiquei", + "firula", + "fissurar", + "fitoteca", + "fivela", + "fixo", + "flavio", + "flexor", + "flibusteiro", + "flotilha", + "fluxograma", + "fobos", + "foco", + "fofura", + "foguista", + "foie", + "foliculo", + "fominha", + "fonte", + "forum", + "fosso", + "fotossintese", + "foxtrote", + "fraudulento", + "frevo", + "frivolo", + "frouxo", + "frutose", + "fuba", + "fucsia", + "fugitivo", + "fuinha", + "fujao", + "fulustreco", + "fumo", + "funileiro", + "furunculo", + "fustigar", + "futurologo", + "fuxico", + "fuzue", + "gabriel", + "gado", + "gaelico", + "gafieira", + "gaguejo", + "gaivota", + "gajo", + "galvanoplastico", + "gamo", + "ganso", + "garrucha", + "gastronomo", + "gatuno", + "gaussiano", + "gaviao", + "gaxeta", + "gazeteiro", + "gear", + "geiser", + "geminiano", + "generoso", + "genuino", + "geossinclinal", + "gerundio", + "gestual", + "getulista", + "gibi", + "gigolo", + "gilete", + "ginseng", + "giroscopio", + "glaucio", + "glacial", + "gleba", + "glifo", + "glote", + "glutonia", + "gnostico", + "goela", + "gogo", + "goitaca", + "golpista", + "gomo", + "gonzo", + "gorro", + "gostou", + "goticula", + "gourmet", + "governo", + "gozo", + "graxo", + "grevista", + "grito", + "grotesco", + "gruta", + "guaxinim", + "gude", + "gueto", + "guizo", + "guloso", + "gume", + "guru", + "gustativo", + "gustavo", + "gutural", + "habitue", + "haitiano", + "halterofilista", + "hamburguer", + "hanseniase", + "happening", + "harpista", + "hastear", + "haveres", + "hebreu", + "hectometro", + "hedonista", + "hegira", + "helena", + "helminto", + "hemorroidas", + "henrique", + "heptassilabo", + "hertziano", + "hesitar", + "heterossexual", + "heuristico", + "hexagono", + "hiato", + "hibrido", + "hidrostatico", + "hieroglifo", + "hifenizar", + "higienizar", + "hilario", + "himen", + "hino", + "hippie", + "hirsuto", + "historiografia", + "hitlerista", + "hodometro", + "hoje", + "holograma", + "homus", + "honroso", + "hoquei", + "horto", + "hostilizar", + "hotentote", + "huguenote", + "humilde", + "huno", + "hurra", + "hutu", + "iaia", + "ialorixa", + "iambico", + "iansa", + "iaque", + "iara", + "iatista", + "iberico", + "ibis", + "icar", + "iceberg", + "icosagono", + "idade", + "ideologo", + "idiotice", + "idoso", + "iemenita", + "iene", + "igarape", + "iglu", + "ignorar", + "igreja", + "iguaria", + "iidiche", + "ilativo", + "iletrado", + "ilharga", + "ilimitado", + "ilogismo", + "ilustrissimo", + "imaturo", + "imbuzeiro", + "imerso", + "imitavel", + "imovel", + "imputar", + "imutavel", + "inaveriguavel", + "incutir", + "induzir", + "inextricavel", + "infusao", + "ingua", + "inhame", + "iniquo", + "injusto", + "inning", + "inoxidavel", + "inquisitorial", + "insustentavel", + "intumescimento", + "inutilizavel", + "invulneravel", + "inzoneiro", + "iodo", + "iogurte", + "ioio", + "ionosfera", + "ioruba", + "iota", + "ipsilon", + "irascivel", + "iris", + "irlandes", + "irmaos", + "iroques", + "irrupcao", + "isca", + "isento", + "islandes", + "isotopo", + "isqueiro", + "israelita", + "isso", + "isto", + "iterbio", + "itinerario", + "itrio", + "iuane", + "iugoslavo", + "jabuticabeira", + "jacutinga", + "jade", + "jagunco", + "jainista", + "jaleco", + "jambo", + "jantarada", + "japones", + "jaqueta", + "jarro", + "jasmim", + "jato", + "jaula", + "javel", + "jazz", + "jegue", + "jeitoso", + "jejum", + "jenipapo", + "jeova", + "jequitiba", + "jersei", + "jesus", + "jetom", + "jiboia", + "jihad", + "jilo", + "jingle", + "jipe", + "jocoso", + "joelho", + "joguete", + "joio", + "jojoba", + "jorro", + "jota", + "joule", + "joviano", + "jubiloso", + "judoca", + "jugular", + "juizo", + "jujuba", + "juliano", + "jumento", + "junto", + "jururu", + "justo", + "juta", + "juventude", + "labutar", + "laguna", + "laico", + "lajota", + "lanterninha", + "lapso", + "laquear", + "lastro", + "lauto", + "lavrar", + "laxativo", + "lazer", + "leasing", + "lebre", + "lecionar", + "ledo", + "leguminoso", + "leitura", + "lele", + "lemure", + "lento", + "leonardo", + "leopardo", + "lepton", + "leque", + "leste", + "letreiro", + "leucocito", + "levitico", + "lexicologo", + "lhama", + "lhufas", + "liame", + "licoroso", + "lidocaina", + "liliputiano", + "limusine", + "linotipo", + "lipoproteina", + "liquidos", + "lirismo", + "lisura", + "liturgico", + "livros", + "lixo", + "lobulo", + "locutor", + "lodo", + "logro", + "lojista", + "lombriga", + "lontra", + "loop", + "loquaz", + "lorota", + "losango", + "lotus", + "louvor", + "luar", + "lubrificavel", + "lucros", + "lugubre", + "luis", + "luminoso", + "luneta", + "lustroso", + "luto", + "luvas", + "luxuriante", + "luzeiro", + "maduro", + "maestro", + "mafioso", + "magro", + "maiuscula", + "majoritario", + "malvisto", + "mamute", + "manutencao", + "mapoteca", + "maquinista", + "marzipa", + "masturbar", + "matuto", + "mausoleu", + "mavioso", + "maxixe", + "mazurca", + "meandro", + "mecha", + "medusa", + "mefistofelico", + "megera", + "meirinho", + "melro", + "memorizar", + "menu", + "mequetrefe", + "mertiolate", + "mestria", + "metroviario", + "mexilhao", + "mezanino", + "miau", + "microssegundo", + "midia", + "migratorio", + "mimosa", + "minuto", + "miosotis", + "mirtilo", + "misturar", + "mitzvah", + "miudos", + "mixuruca", + "mnemonico", + "moagem", + "mobilizar", + "modulo", + "moer", + "mofo", + "mogno", + "moita", + "molusco", + "monumento", + "moqueca", + "morubixaba", + "mostruario", + "motriz", + "mouse", + "movivel", + "mozarela", + "muarra", + "muculmano", + "mudo", + "mugir", + "muitos", + "mumunha", + "munir", + "muon", + "muquira", + "murros", + "musselina", + "nacoes", + "nado", + "naftalina", + "nago", + "naipe", + "naja", + "nalgum", + "namoro", + "nanquim", + "napolitano", + "naquilo", + "nascimento", + "nautilo", + "navios", + "nazista", + "nebuloso", + "nectarina", + "nefrologo", + "negus", + "nelore", + "nenufar", + "nepotismo", + "nervura", + "neste", + "netuno", + "neutron", + "nevoeiro", + "newtoniano", + "nexo", + "nhenhenhem", + "nhoque", + "nigeriano", + "niilista", + "ninho", + "niobio", + "niponico", + "niquelar", + "nirvana", + "nisto", + "nitroglicerina", + "nivoso", + "nobreza", + "nocivo", + "noel", + "nogueira", + "noivo", + "nojo", + "nominativo", + "nonuplo", + "noruegues", + "nostalgico", + "noturno", + "nouveau", + "nuanca", + "nublar", + "nucleotideo", + "nudista", + "nulo", + "numismatico", + "nunquinha", + "nupcias", + "nutritivo", + "nuvens", + "oasis", + "obcecar", + "obeso", + "obituario", + "objetos", + "oblongo", + "obnoxio", + "obrigatorio", + "obstruir", + "obtuso", + "obus", + "obvio", + "ocaso", + "occipital", + "oceanografo", + "ocioso", + "oclusivo", + "ocorrer", + "ocre", + "octogono", + "odalisca", + "odisseia", + "odorifico", + "oersted", + "oeste", + "ofertar", + "ofidio", + "oftalmologo", + "ogiva", + "ogum", + "oigale", + "oitavo", + "oitocentos", + "ojeriza", + "olaria", + "oleoso", + "olfato", + "olhos", + "oliveira", + "olmo", + "olor", + "olvidavel", + "ombudsman", + "omeleteira", + "omitir", + "omoplata", + "onanismo", + "ondular", + "oneroso", + "onomatopeico", + "ontologico", + "onus", + "onze", + "opalescente", + "opcional", + "operistico", + "opio", + "oposto", + "oprobrio", + "optometrista", + "opusculo", + "oratorio", + "orbital", + "orcar", + "orfao", + "orixa", + "orla", + "ornitologo", + "orquidea", + "ortorrombico", + "orvalho", + "osculo", + "osmotico", + "ossudo", + "ostrogodo", + "otario", + "otite", + "ouro", + "ousar", + "outubro", + "ouvir", + "ovario", + "overnight", + "oviparo", + "ovni", + "ovoviviparo", + "ovulo", + "oxala", + "oxente", + "oxiuro", + "oxossi", + "ozonizar", + "paciente", + "pactuar", + "padronizar", + "paete", + "pagodeiro", + "paixao", + "pajem", + "paludismo", + "pampas", + "panturrilha", + "papudo", + "paquistanes", + "pastoso", + "patua", + "paulo", + "pauzinhos", + "pavoroso", + "paxa", + "pazes", + "peao", + "pecuniario", + "pedunculo", + "pegaso", + "peixinho", + "pejorativo", + "pelvis", + "penuria", + "pequno", + "petunia", + "pezada", + "piauiense", + "pictorico", + "pierro", + "pigmeu", + "pijama", + "pilulas", + "pimpolho", + "pintura", + "piorar", + "pipocar", + "piqueteiro", + "pirulito", + "pistoleiro", + "pituitaria", + "pivotar", + "pixote", + "pizzaria", + "plistoceno", + "plotar", + "pluviometrico", + "pneumonico", + "poco", + "podridao", + "poetisa", + "pogrom", + "pois", + "polvorosa", + "pomposo", + "ponderado", + "pontudo", + "populoso", + "poquer", + "porvir", + "posudo", + "potro", + "pouso", + "povoar", + "prazo", + "prezar", + "privilegios", + "proximo", + "prussiano", + "pseudopode", + "psoriase", + "pterossauros", + "ptialina", + "ptolemaico", + "pudor", + "pueril", + "pufe", + "pugilista", + "puir", + "pujante", + "pulverizar", + "pumba", + "punk", + "purulento", + "pustula", + "putsch", + "puxe", + "quatrocentos", + "quetzal", + "quixotesco", + "quotizavel", + "rabujice", + "racista", + "radonio", + "rafia", + "ragu", + "rajado", + "ralo", + "rampeiro", + "ranzinza", + "raptor", + "raquitismo", + "raro", + "rasurar", + "ratoeira", + "ravioli", + "razoavel", + "reavivar", + "rebuscar", + "recusavel", + "reduzivel", + "reexposicao", + "refutavel", + "regurgitar", + "reivindicavel", + "rejuvenescimento", + "relva", + "remuneravel", + "renunciar", + "reorientar", + "repuxo", + "requisito", + "resumo", + "returno", + "reutilizar", + "revolvido", + "rezonear", + "riacho", + "ribossomo", + "ricota", + "ridiculo", + "rifle", + "rigoroso", + "rijo", + "rimel", + "rins", + "rios", + "riqueza", + "riquixa", + "rissole", + "ritualistico", + "rivalizar", + "rixa", + "robusto", + "rococo", + "rodoviario", + "roer", + "rogo", + "rojao", + "rolo", + "rompimento", + "ronronar", + "roqueiro", + "rorqual", + "rosto", + "rotundo", + "rouxinol", + "roxo", + "royal", + "ruas", + "rucula", + "rudimentos", + "ruela", + "rufo", + "rugoso", + "ruivo", + "rule", + "rumoroso", + "runico", + "ruptura", + "rural", + "rustico", + "rutilar", + "saariano", + "sabujo", + "sacudir", + "sadomasoquista", + "safra", + "sagui", + "sais", + "samurai", + "santuario", + "sapo", + "saquear", + "sartriano", + "saturno", + "saude", + "sauva", + "saveiro", + "saxofonista", + "sazonal", + "scherzo", + "script", + "seara", + "seborreia", + "secura", + "seduzir", + "sefardim", + "seguro", + "seja", + "selvas", + "sempre", + "senzala", + "sepultura", + "sequoia", + "sestercio", + "setuplo", + "seus", + "seviciar", + "sezonismo", + "shalom", + "siames", + "sibilante", + "sicrano", + "sidra", + "sifilitico", + "signos", + "silvo", + "simultaneo", + "sinusite", + "sionista", + "sirio", + "sisudo", + "situar", + "sivan", + "slide", + "slogan", + "soar", + "sobrio", + "socratico", + "sodomizar", + "soerguer", + "software", + "sogro", + "soja", + "solver", + "somente", + "sonso", + "sopro", + "soquete", + "sorveteiro", + "sossego", + "soturno", + "sousafone", + "sovinice", + "sozinho", + "suavizar", + "subverter", + "sucursal", + "sudoriparo", + "sufragio", + "sugestoes", + "suite", + "sujo", + "sultao", + "sumula", + "suntuoso", + "suor", + "supurar", + "suruba", + "susto", + "suturar", + "suvenir", + "tabuleta", + "taco", + "tadjique", + "tafeta", + "tagarelice", + "taitiano", + "talvez", + "tampouco", + "tanzaniano", + "taoista", + "tapume", + "taquion", + "tarugo", + "tascar", + "tatuar", + "tautologico", + "tavola", + "taxionomista", + "tchecoslovaco", + "teatrologo", + "tectonismo", + "tedioso", + "teflon", + "tegumento", + "teixo", + "telurio", + "temporas", + "tenue", + "teosofico", + "tepido", + "tequila", + "terrorista", + "testosterona", + "tetrico", + "teutonico", + "teve", + "texugo", + "tiara", + "tibia", + "tiete", + "tifoide", + "tigresa", + "tijolo", + "tilintar", + "timpano", + "tintureiro", + "tiquete", + "tiroteio", + "tisico", + "titulos", + "tive", + "toar", + "toboga", + "tofu", + "togoles", + "toicinho", + "tolueno", + "tomografo", + "tontura", + "toponimo", + "toquio", + "torvelinho", + "tostar", + "toto", + "touro", + "toxina", + "trazer", + "trezentos", + "trivialidade", + "trovoar", + "truta", + "tuaregue", + "tubular", + "tucano", + "tudo", + "tufo", + "tuiste", + "tulipa", + "tumultuoso", + "tunisino", + "tupiniquim", + "turvo", + "tutu", + "ucraniano", + "udenista", + "ufanista", + "ufologo", + "ugaritico", + "uiste", + "uivo", + "ulceroso", + "ulema", + "ultravioleta", + "umbilical", + "umero", + "umido", + "umlaut", + "unanimidade", + "unesco", + "ungulado", + "unheiro", + "univoco", + "untuoso", + "urano", + "urbano", + "urdir", + "uretra", + "urgente", + "urinol", + "urna", + "urologo", + "urro", + "ursulina", + "urtiga", + "urupe", + "usavel", + "usbeque", + "usei", + "usineiro", + "usurpar", + "utero", + "utilizar", + "utopico", + "uvular", + "uxoricidio", + "vacuo", + "vadio", + "vaguear", + "vaivem", + "valvula", + "vampiro", + "vantajoso", + "vaporoso", + "vaquinha", + "varziano", + "vasto", + "vaticinio", + "vaudeville", + "vazio", + "veado", + "vedico", + "veemente", + "vegetativo", + "veio", + "veja", + "veludo", + "venusiano", + "verdade", + "verve", + "vestuario", + "vetusto", + "vexatorio", + "vezes", + "viavel", + "vibratorio", + "victor", + "vicunha", + "vidros", + "vietnamita", + "vigoroso", + "vilipendiar", + "vime", + "vintem", + "violoncelo", + "viquingue", + "virus", + "visualizar", + "vituperio", + "viuvo", + "vivo", + "vizir", + "voar", + "vociferar", + "vodu", + "vogar", + "voile", + "volver", + "vomito", + "vontade", + "vortice", + "vosso", + "voto", + "vovozinha", + "voyeuse", + "vozes", + "vulva", + "vupt", + "western", + "xadrez", + "xale", + "xampu", + "xango", + "xarope", + "xaual", + "xavante", + "xaxim", + "xenonio", + "xepa", + "xerox", + "xicara", + "xifopago", + "xiita", + "xilogravura", + "xinxim", + "xistoso", + "xixi", + "xodo", + "xogum", + "xucro", + "zabumba", + "zagueiro", + "zambiano", + "zanzar", + "zarpar", + "zebu", + "zefiro", + "zeloso", + "zenite", + "zumbi" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Portuguese"; + populate_maps(); + } + }; +} + +#endif diff --git a/src/mnemonics/singleton.h b/src/mnemonics/singleton.h index 0cefba923..74cc290fc 100644 --- a/src/mnemonics/singleton.h +++ b/src/mnemonics/singleton.h @@ -1,16 +1,44 @@ -namespace Language -{ - template - class Singleton - { - Singleton() {} - Singleton(Singleton &s) {} - Singleton& operator=(const Singleton&) {} - public: - static T* instance() - { - static T* obj = new T; - return obj; - } - }; -} +// Copyright (c) 2014, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +namespace Language +{ + template + class Singleton + { + Singleton() {} + Singleton(Singleton &s) {} + Singleton& operator=(const Singleton&) {} + public: + static T* instance() + { + static T* obj = new T; + return obj; + } + }; +} diff --git a/src/mnemonics/spanish.h b/src/mnemonics/spanish.h index a735fc858..c205adc95 100644 --- a/src/mnemonics/spanish.h +++ b/src/mnemonics/spanish.h @@ -1,2074 +1,1681 @@ -#ifndef SPANISH_H -#define SPANISH_H - -#include -#include -#include "language_base.h" -#include - -namespace Language -{ - class Spanish: public Base - { - public: - Spanish() - { - word_list = new std::vector({ - "ábaco", - "abdomen", - "abeja", - "abierto", - "abogado", - "abono", - "aborto", - "abrazo", - "abrir", - "abuelo", - "abuso", - "acabar", - "academia", - "acceso", - "acción", - "aceite", - "acelga", - "acento", - "aceptar", - "ácido", - "aclarar", - "acné", - "acoger", - "acoso", - "activo", - "acto", - "actriz", - "actuar", - "acudir", - "acuerdo", - "acusar", - "adicto", - "admitir", - "adoptar", - "adorno", - "aduana", - "adulto", - "aéreo", - "afectar", - "afición", - "afinar", - "afirmar", - "ágil", - "agitar", - "agonía", - "agosto", - "agotar", - "agregar", - "agrio", - "agua", - "agudo", - "águila", - "aguja", - "ahogo", - "ahorro", - "aire", - "aislar", - "ajedrez", - "ajeno", - "ajuste", - "alacrán", - "alambre", - "alarma", - "alba", - "álbum", - "alcalde", - "aldea", - "alegre", - "alejar", - "alerta", - "aleta", - "alfiler", - "alga", - "algodón", - "aliado", - "aliento", - "alivio", - "alma", - "almeja", - "almíbar", - "altar", - "alteza", - "altivo", - "alto", - "altura", - "alumno", - "alzar", - "amable", - "amante", - "amapola", - "amargo", - "amasar", - "ámbar", - "ámbito", - "ameno", - "amigo", - "amistad", - "amor", - "amparo", - "amplio", - "ancho", - "anciano", - "ancla", - "andar", - "andén", - "anemia", - "ángulo", - "anillo", - "ánimo", - "anís", - "anotar", - "antena", - "antiguo", - "antojo", - "anual", - "anular", - "anuncio", - "añadir", - "añejo", - "año", - "apagar", - "aparato", - "apetito", - "apio", - "aplicar", - "apodo", - "aporte", - "apoyo", - "aprender", - "aprobar", - "apuesta", - "apuro", - "arado", - "araña", - "arar", - "árbitro", - "árbol", - "arbusto", - "archivo", - "arco", - "arder", - "ardilla", - "arduo", - "área", - "árido", - "aries", - "armonía", - "arnés", - "aroma", - "arpa", - "arpón", - "arreglo", - "arroz", - "arruga", - "arte", - "artista", - "asa", - "asado", - "asalto", - "ascenso", - "asegurar", - "aseo", - "asesor", - "asiento", - "asilo", - "asistir", - "asno", - "asombro", - "áspero", - "astilla", - "astro", - "astuto", - "asumir", - "asunto", - "atajo", - "ataque", - "atar", - "atento", - "ateo", - "ático", - "atleta", - "átomo", - "atraer", - "atroz", - "atún", - "audaz", - "audio", - "auge", - "aula", - "aumento", - "ausente", - "autor", - "aval", - "avance", - "avaro", - "ave", - "avellana", - "avena", - "avestruz", - "avión", - "aviso", - "ayer", - "ayuda", - "ayuno", - "azafrán", - "azar", - "azote", - "azúcar", - "azufre", - "azul", - "baba", - "babor", - "bache", - "bahía", - "baile", - "bajar", - "balanza", - "balcón", - "balde", - "bambú", - "banco", - "banda", - "baño", - "barba", - "barco", - "barniz", - "barro", - "báscula", - "bastón", - "basura", - "batalla", - "batería", - "batir", - "batuta", - "baúl", - "bazar", - "bebé", - "bebida", - "bello", - "besar", - "beso", - "bestia", - "bicho", - "bien", - "bingo", - "blanco", - "bloque", - "blusa", - "boa", - "bobina", - "bobo", - "boca", - "bocina", - "boda", - "bodega", - "boina", - "bola", - "bolero", - "bolsa", - "bomba", - "bondad", - "bonito", - "bono", - "bonsái", - "borde", - "borrar", - "bosque", - "bote", - "botín", - "bóveda", - "bozal", - "bravo", - "brazo", - "brecha", - "breve", - "brillo", - "brinco", - "brisa", - "broca", - "broma", - "bronce", - "brote", - "bruja", - "brusco", - "bruto", - "buceo", - "bucle", - "bueno", - "buey", - "bufanda", - "bufón", - "búho", - "buitre", - "bulto", - "burbuja", - "burla", - "burro", - "buscar", - "butaca", - "buzón", - "caballo", - "cabeza", - "cabina", - "cabra", - "cacao", - "cadáver", - "cadena", - "caer", - "café", - "caída", - "caimán", - "caja", - "cajón", - "cal", - "calamar", - "calcio", - "caldo", - "calidad", - "calle", - "calma", - "calor", - "calvo", - "cama", - "cambio", - "camello", - "camino", - "campo", - "cáncer", - "candil", - "canela", - "canguro", - "canica", - "canto", - "caña", - "cañón", - "caoba", - "caos", - "capaz", - "capitán", - "capote", - "captar", - "capucha", - "cara", - "carbón", - "cárcel", - "careta", - "carga", - "cariño", - "carne", - "carpeta", - "carro", - "carta", - "casa", - "casco", - "casero", - "caspa", - "castor", - "catorce", - "catre", - "caudal", - "causa", - "cazo", - "cebolla", - "ceder", - "cedro", - "celda", - "célebre", - "celoso", - "célula", - "cemento", - "ceniza", - "centro", - "cerca", - "cerdo", - "cereza", - "cero", - "cerrar", - "certeza", - "césped", - "cetro", - "chacal", - "chaleco", - "champú", - "chancla", - "chapa", - "charla", - "chico", - "chiste", - "chivo", - "choque", - "choza", - "chuleta", - "chupar", - "ciclón", - "ciego", - "cielo", - "cien", - "cierto", - "cifra", - "cigarro", - "cima", - "cinco", - "cine", - "cinta", - "ciprés", - "circo", - "ciruela", - "cisne", - "cita", - "ciudad", - "clamor", - "clan", - "claro", - "clase", - "clave", - "cliente", - "clima", - "clínica", - "cobre", - "cocción", - "cochino", - "cocina", - "coco", - "código", - "codo", - "cofre", - "coger", - "cohete", - "cojín", - "cojo", - "cola", - "colcha", - "colegio", - "colgar", - "colina", - "collar", - "colmo", - "columna", - "combate", - "comer", - "comida", - "cómodo", - "compra", - "conde", - "conejo", - "conga", - "conocer", - "consejo", - "contar", - "copa", - "copia", - "corazón", - "corbata", - "corcho", - "cordón", - "corona", - "correr", - "coser", - "cosmos", - "costa", - "cráneo", - "cráter", - "crear", - "crecer", - "creído", - "crema", - "cría", - "crimen", - "cripta", - "crisis", - "cromo", - "crónica", - "croqueta", - "crudo", - "cruz", - "cuadro", - "cuarto", - "cuatro", - "cubo", - "cubrir", - "cuchara", - "cuello", - "cuento", - "cuerda", - "cuesta", - "cueva", - "cuidar", - "culebra", - "culpa", - "culto", - "cumbre", - "cumplir", - "cuna", - "cuneta", - "cuota", - "cupón", - "cúpula", - "curar", - "curioso", - "curso", - "curva", - "cutis", - "dama", - "danza", - "dar", - "dardo", - "dátil", - "deber", - "débil", - "década", - "decir", - "dedo", - "defensa", - "definir", - "dejar", - "delfín", - "delgado", - "delito", - "demora", - "denso", - "dental", - "deporte", - "derecho", - "derrota", - "desayuno", - "deseo", - "desfile", - "desnudo", - "destino", - "desvío", - "detalle", - "detener", - "deuda", - "día", - "diablo", - "diadema", - "diamante", - "diana", - "diario", - "dibujo", - "dictar", - "diente", - "dieta", - "diez", - "difícil", - "digno", - "dilema", - "diluir", - "dinero", - "directo", - "dirigir", - "disco", - "diseño", - "disfraz", - "diva", - "divino", - "doble", - "doce", - "dolor", - "domingo", - "don", - "donar", - "dorado", - "dormir", - "dorso", - "dos", - "dosis", - "dragón", - "droga", - "ducha", - "duda", - "duelo", - "dueño", - "dulce", - "dúo", - "duque", - "durar", - "dureza", - "duro", - "ébano", - "ebrio", - "echar", - "eco", - "ecuador", - "edad", - "edición", - "edificio", - "editor", - "educar", - "efecto", - "eficaz", - "eje", - "ejemplo", - "elefante", - "elegir", - "elemento", - "elevar", - "elipse", - "élite", - "elixir", - "elogio", - "eludir", - "embudo", - "emitir", - "emoción", - "empate", - "empeño", - "empleo", - "empresa", - "enano", - "encargo", - "enchufe", - "encía", - "enemigo", - "enero", - "enfado", - "enfermo", - "engaño", - "enigma", - "enlace", - "enorme", - "enredo", - "ensayo", - "enseñar", - "entero", - "entrar", - "envase", - "envío", - "época", - "equipo", - "erizo", - "escala", - "escena", - "escolar", - "escribir", - "escudo", - "esencia", - "esfera", - "esfuerzo", - "espada", - "espejo", - "espía", - "esposa", - "espuma", - "esquí", - "estar", - "este", - "estilo", - "estufa", - "etapa", - "eterno", - "ética", - "etnia", - "evadir", - "evaluar", - "evento", - "evitar", - "exacto", - "examen", - "exceso", - "excusa", - "exento", - "exigir", - "exilio", - "existir", - "éxito", - "experto", - "explicar", - "exponer", - "extremo", - "fábrica", - "fábula", - "fachada", - "fácil", - "factor", - "faena", - "faja", - "falda", - "fallo", - "falso", - "faltar", - "fama", - "familia", - "famoso", - "faraón", - "farmacia", - "farol", - "farsa", - "fase", - "fatiga", - "fauna", - "favor", - "fax", - "febrero", - "fecha", - "feliz", - "feo", - "feria", - "feroz", - "fértil", - "fervor", - "festín", - "fiable", - "fianza", - "fiar", - "fibra", - "ficción", - "ficha", - "fideo", - "fiebre", - "fiel", - "fiera", - "fiesta", - "figura", - "fijar", - "fijo", - "fila", - "filete", - "filial", - "filtro", - "fin", - "finca", - "fingir", - "finito", - "firma", - "flaco", - "flauta", - "flecha", - "flor", - "flota", - "fluir", - "flujo", - "flúor", - "fobia", - "foca", - "fogata", - "fogón", - "folio", - "folleto", - "fondo", - "forma", - "forro", - "fortuna", - "forzar", - "fosa", - "foto", - "fracaso", - "frágil", - "franja", - "frase", - "fraude", - "freír", - "freno", - "fresa", - "frío", - "frito", - "fruta", - "fuego", - "fuente", - "fuerza", - "fuga", - "fumar", - "función", - "funda", - "furgón", - "furia", - "fusil", - "fútbol", - "futuro", - "gacela", - "gafas", - "gaita", - "gajo", - "gala", - "galería", - "gallo", - "gamba", - "ganar", - "gancho", - "ganga", - "ganso", - "garaje", - "garza", - "gasolina", - "gastar", - "gato", - "gavilán", - "gemelo", - "gemir", - "gen", - "género", - "genio", - "gente", - "geranio", - "gerente", - "germen", - "gesto", - "gigante", - "gimnasio", - "girar", - "giro", - "glaciar", - "globo", - "gloria", - "gol", - "golfo", - "goloso", - "golpe", - "goma", - "gordo", - "gorila", - "gorra", - "gota", - "goteo", - "gozar", - "grada", - "gráfico", - "grano", - "grasa", - "gratis", - "grave", - "grieta", - "grillo", - "gripe", - "gris", - "grito", - "grosor", - "grúa", - "grueso", - "grumo", - "grupo", - "guante", - "guapo", - "guardia", - "guerra", - "guía", - "guiño", - "guion", - "guiso", - "guitarra", - "gusano", - "gustar", - "haber", - "hábil", - "hablar", - "hacer", - "hacha", - "hada", - "hallar", - "hamaca", - "harina", - "haz", - "hazaña", - "hebilla", - "hebra", - "hecho", - "helado", - "helio", - "hembra", - "herir", - "hermano", - "héroe", - "hervir", - "hielo", - "hierro", - "hígado", - "higiene", - "hijo", - "himno", - "historia", - "hocico", - "hogar", - "hoguera", - "hoja", - "hombre", - "hongo", - "honor", - "honra", - "hora", - "hormiga", - "horno", - "hostil", - "hoyo", - "hueco", - "huelga", - "huerta", - "hueso", - "huevo", - "huida", - "huir", - "humano", - "húmedo", - "humilde", - "humo", - "hundir", - "huracán", - "hurto", - "icono", - "ideal", - "idioma", - "ídolo", - "iglesia", - "iglú", - "igual", - "ilegal", - "ilusión", - "imagen", - "imán", - "imitar", - "impar", - "imperio", - "imponer", - "impulso", - "incapaz", - "índice", - "inerte", - "infiel", - "informe", - "ingenio", - "inicio", - "inmenso", - "inmune", - "innato", - "insecto", - "instante", - "interés", - "íntimo", - "intuir", - "inútil", - "invierno", - "ira", - "iris", - "ironía", - "isla", - "islote", - "jabalí", - "jabón", - "jamón", - "jarabe", - "jardín", - "jarra", - "jaula", - "jazmín", - "jefe", - "jeringa", - "jinete", - "jornada", - "joroba", - "joven", - "joya", - "juerga", - "jueves", - "juez", - "jugador", - "jugo", - "juguete", - "juicio", - "junco", - "jungla", - "junio", - "juntar", - "júpiter", - "jurar", - "justo", - "juvenil", - "juzgar", - "kilo", - "koala", - "labio", - "lacio", - "lacra", - "lado", - "ladrón", - "lagarto", - "lágrima", - "laguna", - "laico", - "lamer", - "lámina", - "lámpara", - "lana", - "lancha", - "langosta", - "lanza", - "lápiz", - "largo", - "larva", - "lástima", - "lata", - "látex", - "latir", - "laurel", - "lavar", - "lazo", - "leal", - "lección", - "leche", - "lector", - "leer", - "legión", - "legumbre", - "lejano", - "lengua", - "lento", - "leña", - "león", - "leopardo", - "lesión", - "letal", - "letra", - "leve", - "leyenda", - "libertad", - "libro", - "licor", - "líder", - "lidiar", - "lienzo", - "liga", - "ligero", - "lima", - "límite", - "limón", - "limpio", - "lince", - "lindo", - "línea", - "lingote", - "lino", - "linterna", - "líquido", - "liso", - "lista", - "litera", - "litio", - "litro", - "llaga", - "llama", - "llanto", - "llave", - "llegar", - "llenar", - "llevar", - "llorar", - "llover", - "lluvia", - "lobo", - "loción", - "loco", - "locura", - "lógica", - "logro", - "lombriz", - "lomo", - "lonja", - "lote", - "lucha", - "lucir", - "lugar", - "lujo", - "luna", - "lunes", - "lupa", - "lustro", - "luto", - "luz", - "maceta", - "macho", - "madera", - "madre", - "maduro", - "maestro", - "mafia", - "magia", - "mago", - "maíz", - "maldad", - "maleta", - "malla", - "malo", - "mamá", - "mambo", - "mamut", - "manco", - "mando", - "manejar", - "manga", - "maniquí", - "manjar", - "mano", - "manso", - "manta", - "mañana", - "mapa", - "máquina", - "mar", - "marco", - "marea", - "marfil", - "margen", - "marido", - "mármol", - "marrón", - "martes", - "marzo", - "masa", - "máscara", - "masivo", - "matar", - "materia", - "matiz", - "matriz", - "máximo", - "mayor", - "mazorca", - "mecha", - "medalla", - "medio", - "médula", - "mejilla", - "mejor", - "melena", - "melón", - "memoria", - "menor", - "mensaje", - "mente", - "menú", - "mercado", - "merengue", - "mérito", - "mes", - "mesón", - "meta", - "meter", - "método", - "metro", - "mezcla", - "miedo", - "miel", - "miembro", - "miga", - "mil", - "milagro", - "militar", - "millón", - "mimo", - "mina", - "minero", - "mínimo", - "minuto", - "miope", - "mirar", - "misa", - "miseria", - "misil", - "mismo", - "mitad", - "mito", - "mochila", - "moción", - "moda", - "modelo", - "moho", - "mojar", - "molde", - "moler", - "molino", - "momento", - "momia", - "monarca", - "moneda", - "monja", - "monto", - "moño", - "morada", - "morder", - "moreno", - "morir", - "morro", - "morsa", - "mortal", - "mosca", - "mostrar", - "motivo", - "mover", - "móvil", - "mozo", - "mucho", - "mudar", - "mueble", - "muela", - "muerte", - "muestra", - "mugre", - "mujer", - "mula", - "muleta", - "multa", - "mundo", - "muñeca", - "mural", - "muro", - "músculo", - "museo", - "musgo", - "música", - "muslo", - "nácar", - "nación", - "nadar", - "naipe", - "naranja", - "nariz", - "narrar", - "nasal", - "natal", - "nativo", - "natural", - "náusea", - "naval", - "nave", - "navidad", - "necio", - "néctar", - "negar", - "negocio", - "negro", - "neón", - "nervio", - "neto", - "neutro", - "nevar", - "nevera", - "nicho", - "nido", - "niebla", - "nieto", - "niñez", - "niño", - "nítido", - "nivel", - "nobleza", - "noche", - "nómina", - "noria", - "norma", - "norte", - "nota", - "noticia", - "novato", - "novela", - "novio", - "nube", - "nuca", - "núcleo", - "nudillo", - "nudo", - "nuera", - "nueve", - "nuez", - "nulo", - "número", - "nutria", - "oasis", - "obeso", - "obispo", - "objeto", - "obra", - "obrero", - "observar", - "obtener", - "obvio", - "oca", - "ocaso", - "océano", - "ochenta", - "ocho", - "ocio", - "ocre", - "octavo", - "octubre", - "oculto", - "ocupar", - "ocurrir", - "odiar", - "odio", - "odisea", - "oeste", - "ofensa", - "oferta", - "oficio", - "ofrecer", - "ogro", - "oído", - "oír", - "ojo", - "ola", - "oleada", - "olfato", - "olivo", - "olla", - "olmo", - "olor", - "olvido", - "ombligo", - "onda", - "onza", - "opaco", - "opción", - "ópera", - "opinar", - "oponer", - "optar", - "óptica", - "opuesto", - "oración", - "orador", - "oral", - "órbita", - "orca", - "orden", - "oreja", - "órgano", - "orgía", - "orgullo", - "oriente", - "origen", - "orilla", - "oro", - "orquesta", - "oruga", - "osadía", - "oscuro", - "osezno", - "oso", - "ostra", - "otoño", - "otro", - "oveja", - "óvulo", - "óxido", - "oxígeno", - "oyente", - "ozono", - "pacto", - "padre", - "paella", - "página", - "pago", - "país", - "pájaro", - "palabra", - "palco", - "paleta", - "pálido", - "palma", - "paloma", - "palpar", - "pan", - "panal", - "pánico", - "pantera", - "pañuelo", - "papá", - "papel", - "papilla", - "paquete", - "parar", - "parcela", - "pared", - "parir", - "paro", - "párpado", - "parque", - "párrafo", - "parte", - "pasar", - "paseo", - "pasión", - "paso", - "pasta", - "pata", - "patio", - "patria", - "pausa", - "pauta", - "pavo", - "payaso", - "peatón", - "pecado", - "pecera", - "pecho", - "pedal", - "pedir", - "pegar", - "peine", - "pelar", - "peldaño", - "pelea", - "peligro", - "pellejo", - "pelo", - "peluca", - "pena", - "pensar", - "peñón", - "peón", - "peor", - "pepino", - "pequeño", - "pera", - "percha", - "perder", - "pereza", - "perfil", - "perico", - "perla", - "permiso", - "perro", - "persona", - "pesa", - "pesca", - "pésimo", - "pestaña", - "pétalo", - "petróleo", - "pez", - "pezuña", - "picar", - "pichón", - "pie", - "piedra", - "pierna", - "pieza", - "pijama", - "pilar", - "piloto", - "pimienta", - "pino", - "pintor", - "pinza", - "piña", - "piojo", - "pipa", - "pirata", - "pisar", - "piscina", - "piso", - "pista", - "pitón", - "pizca", - "placa", - "plan", - "plata", - "playa", - "plaza", - "pleito", - "pleno", - "plomo", - "pluma", - "plural", - "pobre", - "poco", - "poder", - "podio", - "poema", - "poesía", - "poeta", - "polen", - "policía", - "pollo", - "polvo", - "pomada", - "pomelo", - "pomo", - "pompa", - "poner", - "porción", - "portal", - "posada", - "poseer", - "posible", - "poste", - "potencia", - "potro", - "pozo", - "prado", - "precoz", - "pregunta", - "premio", - "prensa", - "preso", - "previo", - "primo", - "príncipe", - "prisión", - "privar", - "proa", - "probar", - "proceso", - "producto", - "proeza", - "profesor", - "programa", - "prole", - "promesa", - "pronto", - "propio", - "próximo", - "prueba", - "público", - "puchero", - "pudor", - "pueblo", - "puerta", - "puesto", - "pulga", - "pulir", - "pulmón", - "pulpo", - "pulso", - "puma", - "punto", - "puñal", - "puño", - "pupa", - "pupila", - "puré", - "quedar", - "queja", - "quemar", - "querer", - "queso", - "quieto", - "química", - "quince", - "quitar", - "rábano", - "rabia", - "rabo", - "ración", - "radical", - "raíz", - "rama", - "rampa", - "rancho", - "rango", - "rapaz", - "rápido", - "rapto", - "rasgo", - "raspa", - "rato", - "rayo", - "raza", - "razón", - "reacción", - "realidad", - "rebaño", - "rebote", - "recaer", - "receta", - "rechazo", - "recoger", - "recreo", - "recto", - "recurso", - "red", - "redondo", - "reducir", - "reflejo", - "reforma", - "refrán", - "refugio", - "regalo", - "regir", - "regla", - "regreso", - "rehén", - "reino", - "reír", - "reja", - "relato", - "relevo", - "relieve", - "relleno", - "reloj", - "remar", - "remedio", - "remo", - "rencor", - "rendir", - "renta", - "reparto", - "repetir", - "reposo", - "reptil", - "res", - "rescate", - "resina", - "respeto", - "resto", - "resumen", - "retiro", - "retorno", - "retrato", - "reunir", - "revés", - "revista", - "rey", - "rezar", - "rico", - "riego", - "rienda", - "riesgo", - "rifa", - "rígido", - "rigor", - "rincón", - "riñón", - "río", - "riqueza", - "risa", - "ritmo", - "rito", - "rizo", - "roble", - "roce", - "rociar", - "rodar", - "rodeo", - "rodilla", - "roer", - "rojizo", - "rojo", - "romero", - "romper", - "ron", - "ronco", - "ronda", - "ropa", - "ropero", - "rosa", - "rosca", - "rostro", - "rotar", - "rubí", - "rubor", - "rudo", - "rueda", - "rugir", - "ruido", - "ruina", - "ruleta", - "rulo", - "rumbo", - "rumor", - "ruptura", - "ruta", - "rutina", - "sábado", - "saber", - "sabio", - "sable", - "sacar", - "sagaz", - "sagrado", - "sala", - "saldo", - "salero", - "salir", - "salmón", - "salón", - "salsa", - "salto", - "salud", - "salvar", - "samba", - "sanción", - "sandía", - "sanear", - "sangre", - "sanidad", - "sano", - "santo", - "sapo", - "saque", - "sardina", - "sartén", - "sastre", - "satán", - "sauna", - "saxofón", - "sección", - "seco", - "secreto", - "secta", - "sed", - "seguir", - "seis", - "sello", - "selva", - "semana", - "semilla", - "senda", - "sensor", - "señal", - "señor", - "separar", - "sepia", - "sequía", - "ser", - "serie", - "sermón", - "servir", - "sesenta", - "sesión", - "seta", - "setenta", - "severo", - "sexo", - "sexto", - "sidra", - "siesta", - "siete", - "siglo", - "signo", - "sílaba", - "silbar", - "silencio", - "silla", - "símbolo", - "simio", - "sirena", - "sistema", - "sitio", - "situar", - "sobre", - "socio", - "sodio", - "sol", - "solapa", - "soldado", - "soledad", - "sólido", - "soltar", - "solución", - "sombra", - "sondeo", - "sonido", - "sonoro", - "sonrisa", - "sopa", - "soplar", - "soporte", - "sordo", - "sorpresa", - "sorteo", - "sostén", - "sótano", - "suave", - "subir", - "suceso", - "sudor", - "suegra", - "suelo", - "sueño", - "suerte", - "sufrir", - "sujeto", - "sultán", - "sumar", - "superar", - "suplir", - "suponer", - "supremo", - "sur", - "surco", - "sureño", - "surgir", - "susto", - "sutil", - "tabaco", - "tabique", - "tabla", - "tabú", - "taco", - "tacto", - "tajo", - "talar", - "talco", - "talento", - "talla", - "talón", - "tamaño", - "tambor", - "tango", - "tanque", - "tapa", - "tapete", - "tapia", - "tapón", - "taquilla", - "tarde", - "tarea", - "tarifa", - "tarjeta", - "tarot", - "tarro", - "tarta", - "tatuaje", - "tauro", - "taza", - "tazón", - "teatro", - "techo", - "tecla", - "técnica", - "tejado", - "tejer", - "tejido", - "tela", - "teléfono", - "tema", - "temor", - "templo", - "tenaz", - "tender", - "tener", - "tenis", - "tenso", - "teoría", - "terapia", - "terco", - "término", - "ternura", - "terror", - "tesis", - "tesoro", - "testigo", - "tetera", - "texto", - "tez", - "tibio", - "tiburón", - "tiempo", - "tienda", - "tierra", - "tieso", - "tigre", - "tijera", - "tilde", - "timbre", - "tímido", - "timo", - "tinta", - "tío", - "típico", - "tipo", - "tira", - "tirón", - "titán", - "títere", - "título", - "tiza", - "toalla", - "tobillo", - "tocar", - "tocino", - "todo", - "toga", - "toldo", - "tomar", - "tono", - "tonto", - "topar", - "tope", - "toque", - "tórax", - "torero", - "tormenta", - "torneo", - "toro", - "torpedo", - "torre", - "torso", - "tortuga", - "tos", - "tosco", - "toser", - "tóxico", - "trabajo", - "tractor", - "traer", - "tráfico", - "trago", - "traje", - "tramo", - "trance", - "trato", - "trauma", - "trazar", - "trébol", - "tregua", - "treinta", - "tren", - "trepar", - "tres", - "tribu", - "trigo", - "tripa", - "triste", - "triunfo", - "trofeo", - "trompa", - "tronco", - "tropa", - "trote", - "trozo", - "truco", - "trueno", - "trufa", - "tubería", - "tubo", - "tuerto", - "tumba", - "tumor", - "túnel", - "túnica", - "turbina", - "turismo", - "turno", - "tutor", - "ubicar", - "úlcera", - "umbral", - "unidad", - "unir", - "universo", - "uno", - "untar", - "uña", - "urbano", - "urbe", - "urgente", - "urna", - "usar", - "usuario", - "útil", - "utopía", - "uva", - "vaca", - "vacío", - "vacuna", - "vagar", - "vago", - "vaina", - "vajilla", - "vale", - "válido", - "valle", - "valor", - "válvula", - "vampiro", - "vara", - "variar", - "varón", - "vaso", - "vecino", - "vector", - "vehículo", - "veinte", - "vejez", - "vela", - "velero", - "veloz", - "vena", - "vencer", - "venda", - "veneno", - "vengar", - "venir", - "venta", - "venus", - "ver", - "verano", - "verbo", - "verde", - "vereda", - "verja", - "verso", - "verter", - "vía", - "viaje", - "vibrar", - "vicio", - "víctima", - "vida", - "vídeo", - "vidrio", - "viejo", - "viernes", - "vigor", - "vil", - "villa", - "vinagre", - "vino", - "viñedo", - "violín", - "viral", - "virgo", - "virtud", - "visor", - "víspera", - "vista", - "vitamina", - "viudo", - "vivaz", - "vivero", - "vivir", - "vivo", - "volcán", - "volumen", - "volver", - "voraz", - "votar", - "voto", - "voz", - "vuelo", - "vulgar", - "yacer", - "yate", - "yegua", - "yema", - "yerno", - "yeso", - "yodo", - "yoga", - "yogur", - "zafiro", - "zanja", - "zapato", - "zarza", - "zona", - "zorro", - "zumo", - "zurdo" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "Spanish"; - populate_maps(); - } - }; -} - +// Word list originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin +// Copyright (c) 2014, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef SPANISH_H +#define SPANISH_H + +#include +#include +#include "language_base.h" +#include + +namespace Language +{ + class Spanish: public Base + { + public: + Spanish() + { + word_list = new std::vector({ + "ábaco", + "abdomen", + "abeja", + "abierto", + "abogado", + "abono", + "aborto", + "abrazo", + "abrir", + "abuelo", + "abuso", + "acabar", + "academia", + "acceso", + "acción", + "aceite", + "acelga", + "acento", + "aceptar", + "ácido", + "aclarar", + "acné", + "acoger", + "acoso", + "activo", + "acto", + "actriz", + "actuar", + "acudir", + "acuerdo", + "acusar", + "adicto", + "admitir", + "adoptar", + "adorno", + "aduana", + "adulto", + "aéreo", + "afectar", + "afición", + "afinar", + "afirmar", + "ágil", + "agitar", + "agonía", + "agosto", + "agotar", + "agregar", + "agrio", + "agua", + "agudo", + "águila", + "aguja", + "ahogo", + "ahorro", + "aire", + "aislar", + "ajedrez", + "ajeno", + "ajuste", + "alacrán", + "alambre", + "alarma", + "alba", + "álbum", + "alcalde", + "aldea", + "alegre", + "alejar", + "alerta", + "aleta", + "alfiler", + "alga", + "algodón", + "aliado", + "aliento", + "alivio", + "alma", + "almeja", + "almíbar", + "altar", + "alteza", + "altivo", + "alto", + "altura", + "alumno", + "alzar", + "amable", + "amante", + "amapola", + "amargo", + "amasar", + "ámbar", + "ámbito", + "ameno", + "amigo", + "amistad", + "amor", + "amparo", + "amplio", + "ancho", + "anciano", + "ancla", + "andar", + "andén", + "anemia", + "ángulo", + "anillo", + "ánimo", + "anís", + "anotar", + "antena", + "antiguo", + "antojo", + "anual", + "anular", + "anuncio", + "añadir", + "añejo", + "año", + "apagar", + "aparato", + "apetito", + "apio", + "aplicar", + "apodo", + "aporte", + "apoyo", + "aprender", + "aprobar", + "apuesta", + "apuro", + "arado", + "araña", + "arar", + "árbitro", + "árbol", + "arbusto", + "archivo", + "arco", + "arder", + "ardilla", + "arduo", + "área", + "árido", + "aries", + "armonía", + "arnés", + "aroma", + "arpa", + "arpón", + "arreglo", + "arroz", + "arruga", + "arte", + "artista", + "asa", + "asado", + "asalto", + "ascenso", + "asegurar", + "aseo", + "asesor", + "asiento", + "asilo", + "asistir", + "asno", + "asombro", + "áspero", + "astilla", + "astro", + "astuto", + "asumir", + "asunto", + "atajo", + "ataque", + "atar", + "atento", + "ateo", + "ático", + "atleta", + "átomo", + "atraer", + "atroz", + "atún", + "audaz", + "audio", + "auge", + "aula", + "aumento", + "ausente", + "autor", + "aval", + "avance", + "avaro", + "ave", + "avellana", + "avena", + "avestruz", + "avión", + "aviso", + "ayer", + "ayuda", + "ayuno", + "azafrán", + "azar", + "azote", + "azúcar", + "azufre", + "azul", + "baba", + "babor", + "bache", + "bahía", + "baile", + "bajar", + "balanza", + "balcón", + "balde", + "bambú", + "banco", + "banda", + "baño", + "barba", + "barco", + "barniz", + "barro", + "báscula", + "bastón", + "basura", + "batalla", + "batería", + "batir", + "batuta", + "baúl", + "bazar", + "bebé", + "bebida", + "bello", + "besar", + "beso", + "bestia", + "bicho", + "bien", + "bingo", + "blanco", + "bloque", + "blusa", + "boa", + "bobina", + "bobo", + "boca", + "bocina", + "boda", + "bodega", + "boina", + "bola", + "bolero", + "bolsa", + "bomba", + "bondad", + "bonito", + "bono", + "bonsái", + "borde", + "borrar", + "bosque", + "bote", + "botín", + "bóveda", + "bozal", + "bravo", + "brazo", + "brecha", + "breve", + "brillo", + "brinco", + "brisa", + "broca", + "broma", + "bronce", + "brote", + "bruja", + "brusco", + "bruto", + "buceo", + "bucle", + "bueno", + "buey", + "bufanda", + "bufón", + "búho", + "buitre", + "bulto", + "burbuja", + "burla", + "burro", + "buscar", + "butaca", + "buzón", + "caballo", + "cabeza", + "cabina", + "cabra", + "cacao", + "cadáver", + "cadena", + "caer", + "café", + "caída", + "caimán", + "caja", + "cajón", + "cal", + "calamar", + "calcio", + "caldo", + "calidad", + "calle", + "calma", + "calor", + "calvo", + "cama", + "cambio", + "camello", + "camino", + "campo", + "cáncer", + "candil", + "canela", + "canguro", + "canica", + "canto", + "caña", + "cañón", + "caoba", + "caos", + "capaz", + "capitán", + "capote", + "captar", + "capucha", + "cara", + "carbón", + "cárcel", + "careta", + "carga", + "cariño", + "carne", + "carpeta", + "carro", + "carta", + "casa", + "casco", + "casero", + "caspa", + "castor", + "catorce", + "catre", + "caudal", + "causa", + "cazo", + "cebolla", + "ceder", + "cedro", + "celda", + "célebre", + "celoso", + "célula", + "cemento", + "ceniza", + "centro", + "cerca", + "cerdo", + "cereza", + "cero", + "cerrar", + "certeza", + "césped", + "cetro", + "chacal", + "chaleco", + "champú", + "chancla", + "chapa", + "charla", + "chico", + "chiste", + "chivo", + "choque", + "choza", + "chuleta", + "chupar", + "ciclón", + "ciego", + "cielo", + "cien", + "cierto", + "cifra", + "cigarro", + "cima", + "cinco", + "cine", + "cinta", + "ciprés", + "circo", + "ciruela", + "cisne", + "cita", + "ciudad", + "clamor", + "clan", + "claro", + "clase", + "clave", + "cliente", + "clima", + "clínica", + "cobre", + "cocción", + "cochino", + "cocina", + "coco", + "código", + "codo", + "cofre", + "coger", + "cohete", + "cojín", + "cojo", + "cola", + "colcha", + "colegio", + "colgar", + "colina", + "collar", + "colmo", + "columna", + "combate", + "comer", + "comida", + "cómodo", + "compra", + "conde", + "conejo", + "conga", + "conocer", + "consejo", + "contar", + "copa", + "copia", + "corazón", + "corbata", + "corcho", + "cordón", + "corona", + "correr", + "coser", + "cosmos", + "costa", + "cráneo", + "cráter", + "crear", + "crecer", + "creído", + "crema", + "cría", + "crimen", + "cripta", + "crisis", + "cromo", + "crónica", + "croqueta", + "crudo", + "cruz", + "cuadro", + "cuarto", + "cuatro", + "cubo", + "cubrir", + "cuchara", + "cuello", + "cuento", + "cuerda", + "cuesta", + "cueva", + "cuidar", + "culebra", + "culpa", + "culto", + "cumbre", + "cumplir", + "cuna", + "cuneta", + "cuota", + "cupón", + "cúpula", + "curar", + "curioso", + "curso", + "curva", + "cutis", + "dama", + "danza", + "dar", + "dardo", + "dátil", + "deber", + "débil", + "década", + "decir", + "dedo", + "defensa", + "definir", + "dejar", + "delfín", + "delgado", + "delito", + "demora", + "denso", + "dental", + "deporte", + "derecho", + "derrota", + "desayuno", + "deseo", + "desfile", + "desnudo", + "destino", + "desvío", + "detalle", + "detener", + "deuda", + "día", + "diablo", + "diadema", + "diamante", + "diana", + "diario", + "dibujo", + "dictar", + "diente", + "dieta", + "diez", + "difícil", + "digno", + "dilema", + "diluir", + "dinero", + "directo", + "dirigir", + "disco", + "diseño", + "disfraz", + "diva", + "divino", + "doble", + "doce", + "dolor", + "domingo", + "don", + "donar", + "dorado", + "dormir", + "dorso", + "dos", + "dosis", + "dragón", + "droga", + "ducha", + "duda", + "duelo", + "dueño", + "dulce", + "dúo", + "duque", + "durar", + "dureza", + "duro", + "ébano", + "ebrio", + "echar", + "eco", + "ecuador", + "edad", + "edición", + "edificio", + "editor", + "educar", + "efecto", + "eficaz", + "eje", + "ejemplo", + "elefante", + "elegir", + "elemento", + "elevar", + "elipse", + "élite", + "elixir", + "elogio", + "eludir", + "embudo", + "emitir", + "emoción", + "empate", + "empeño", + "empleo", + "empresa", + "enano", + "encargo", + "enchufe", + "encía", + "enemigo", + "enero", + "enfado", + "enfermo", + "engaño", + "enigma", + "enlace", + "enorme", + "enredo", + "ensayo", + "enseñar", + "entero", + "entrar", + "envase", + "envío", + "época", + "equipo", + "erizo", + "escala", + "escena", + "escolar", + "escribir", + "escudo", + "esencia", + "esfera", + "esfuerzo", + "espada", + "espejo", + "espía", + "esposa", + "espuma", + "esquí", + "estar", + "este", + "estilo", + "estufa", + "etapa", + "eterno", + "ética", + "etnia", + "evadir", + "evaluar", + "evento", + "evitar", + "exacto", + "examen", + "exceso", + "excusa", + "exento", + "exigir", + "exilio", + "existir", + "éxito", + "experto", + "explicar", + "exponer", + "extremo", + "fábrica", + "fábula", + "fachada", + "fácil", + "factor", + "faena", + "faja", + "falda", + "fallo", + "falso", + "faltar", + "fama", + "familia", + "famoso", + "faraón", + "farmacia", + "farol", + "farsa", + "fase", + "fatiga", + "fauna", + "favor", + "fax", + "febrero", + "fecha", + "feliz", + "feo", + "feria", + "feroz", + "fértil", + "fervor", + "festín", + "fiable", + "fianza", + "fiar", + "fibra", + "ficción", + "ficha", + "fideo", + "fiebre", + "fiel", + "fiera", + "fiesta", + "figura", + "fijar", + "fijo", + "fila", + "filete", + "filial", + "filtro", + "fin", + "finca", + "fingir", + "finito", + "firma", + "flaco", + "flauta", + "flecha", + "flor", + "flota", + "fluir", + "flujo", + "flúor", + "fobia", + "foca", + "fogata", + "fogón", + "folio", + "folleto", + "fondo", + "forma", + "forro", + "fortuna", + "forzar", + "fosa", + "foto", + "fracaso", + "frágil", + "franja", + "frase", + "fraude", + "freír", + "freno", + "fresa", + "frío", + "frito", + "fruta", + "fuego", + "fuente", + "fuerza", + "fuga", + "fumar", + "función", + "funda", + "furgón", + "furia", + "fusil", + "fútbol", + "futuro", + "gacela", + "gafas", + "gaita", + "gajo", + "gala", + "galería", + "gallo", + "gamba", + "ganar", + "gancho", + "ganga", + "ganso", + "garaje", + "garza", + "gasolina", + "gastar", + "gato", + "gavilán", + "gemelo", + "gemir", + "gen", + "género", + "genio", + "gente", + "geranio", + "gerente", + "germen", + "gesto", + "gigante", + "gimnasio", + "girar", + "giro", + "glaciar", + "globo", + "gloria", + "gol", + "golfo", + "goloso", + "golpe", + "goma", + "gordo", + "gorila", + "gorra", + "gota", + "goteo", + "gozar", + "grada", + "gráfico", + "grano", + "grasa", + "gratis", + "grave", + "grieta", + "grillo", + "gripe", + "gris", + "grito", + "grosor", + "grúa", + "grueso", + "grumo", + "grupo", + "guante", + "guapo", + "guardia", + "guerra", + "guía", + "guiño", + "guion", + "guiso", + "guitarra", + "gusano", + "gustar", + "haber", + "hábil", + "hablar", + "hacer", + "hacha", + "hada", + "hallar", + "hamaca", + "harina", + "haz", + "hazaña", + "hebilla", + "hebra", + "hecho", + "helado", + "helio", + "hembra", + "herir", + "hermano", + "héroe", + "hervir", + "hielo", + "hierro", + "hígado", + "higiene", + "hijo", + "himno", + "historia", + "hocico", + "hogar", + "hoguera", + "hoja", + "hombre", + "hongo", + "honor", + "honra", + "hora", + "hormiga", + "horno", + "hostil", + "hoyo", + "hueco", + "huelga", + "huerta", + "hueso", + "huevo", + "huida", + "huir", + "humano", + "húmedo", + "humilde", + "humo", + "hundir", + "huracán", + "hurto", + "icono", + "ideal", + "idioma", + "ídolo", + "iglesia", + "iglú", + "igual", + "ilegal", + "ilusión", + "imagen", + "imán", + "imitar", + "impar", + "imperio", + "imponer", + "impulso", + "incapaz", + "índice", + "inerte", + "infiel", + "informe", + "ingenio", + "inicio", + "inmenso", + "inmune", + "innato", + "insecto", + "instante", + "interés", + "íntimo", + "intuir", + "inútil", + "invierno", + "ira", + "iris", + "ironía", + "isla", + "islote", + "jabalí", + "jabón", + "jamón", + "jarabe", + "jardín", + "jarra", + "jaula", + "jazmín", + "jefe", + "jeringa", + "jinete", + "jornada", + "joroba", + "joven", + "joya", + "juerga", + "jueves", + "juez", + "jugador", + "jugo", + "juguete", + "juicio", + "junco", + "jungla", + "junio", + "juntar", + "júpiter", + "jurar", + "justo", + "juvenil", + "juzgar", + "kilo", + "koala", + "labio", + "lacio", + "lacra", + "lado", + "ladrón", + "lagarto", + "lágrima", + "laguna", + "laico", + "lamer", + "lámina", + "lámpara", + "lana", + "lancha", + "langosta", + "lanza", + "lápiz", + "largo", + "larva", + "lástima", + "lata", + "látex", + "latir", + "laurel", + "lavar", + "lazo", + "leal", + "lección", + "leche", + "lector", + "leer", + "legión", + "legumbre", + "lejano", + "lengua", + "lento", + "leña", + "león", + "leopardo", + "lesión", + "letal", + "letra", + "leve", + "leyenda", + "libertad", + "libro", + "licor", + "líder", + "lidiar", + "lienzo", + "liga", + "ligero", + "lima", + "límite", + "limón", + "limpio", + "lince", + "lindo", + "línea", + "lingote", + "lino", + "linterna", + "líquido", + "liso", + "lista", + "litera", + "litio", + "litro", + "llaga", + "llama", + "llanto", + "llave", + "llegar", + "llenar", + "llevar", + "llorar", + "llover", + "lluvia", + "lobo", + "loción", + "loco", + "locura", + "lógica", + "logro", + "lombriz", + "lomo", + "lonja", + "lote", + "lucha", + "lucir", + "lugar", + "lujo", + "luna", + "lunes", + "lupa", + "lustro", + "luto", + "luz", + "maceta", + "macho", + "madera", + "madre", + "maduro", + "maestro", + "mafia", + "magia", + "mago", + "maíz", + "maldad", + "maleta", + "malla", + "malo", + "mamá", + "mambo", + "mamut", + "manco", + "mando", + "manejar", + "manga", + "maniquí", + "manjar", + "mano", + "manso", + "manta", + "mañana", + "mapa", + "máquina", + "mar", + "marco", + "marea", + "marfil", + "margen", + "marido", + "mármol", + "marrón", + "martes", + "marzo", + "masa", + "máscara", + "masivo", + "matar", + "materia", + "matiz", + "matriz", + "máximo", + "mayor", + "mazorca", + "mecha", + "medalla", + "medio", + "médula", + "mejilla", + "mejor", + "melena", + "melón", + "memoria", + "menor", + "mensaje", + "mente", + "menú", + "mercado", + "merengue", + "mérito", + "mes", + "mesón", + "meta", + "meter", + "método", + "metro", + "mezcla", + "miedo", + "miel", + "miembro", + "miga", + "mil", + "milagro", + "militar", + "millón", + "mimo", + "mina", + "minero", + "mínimo", + "minuto", + "miope", + "mirar", + "misa", + "miseria", + "misil", + "mismo", + "mitad", + "mito", + "mochila", + "moción", + "moda", + "modelo", + "moho", + "mojar", + "molde", + "moler", + "molino", + "momento", + "momia", + "monarca", + "moneda", + "monja", + "monto", + "moño", + "morada", + "morder", + "moreno", + "morir", + "morro", + "morsa", + "mortal", + "mosca", + "mostrar", + "motivo", + "mover", + "móvil", + "mozo", + "mucho", + "mudar", + "mueble", + "muela", + "muerte", + "muestra", + "mugre", + "mujer", + "mula", + "muleta", + "multa", + "mundo", + "muñeca", + "mural", + "muro", + "músculo", + "museo", + "musgo", + "música", + "muslo", + "nácar", + "nación", + "nadar", + "naipe", + "naranja", + "nariz", + "narrar", + "nasal", + "natal", + "nativo", + "natural", + "náusea", + "naval", + "nave", + "navidad", + "necio", + "néctar", + "negar", + "negocio", + "negro", + "neón", + "nervio", + "neto", + "neutro", + "nevar", + "nevera", + "nicho", + "nido", + "niebla", + "nieto", + "niñez", + "niño", + "nítido", + "nivel", + "nobleza", + "noche", + "nómina", + "noria", + "norma", + "norte", + "nota", + "noticia", + "novato", + "novela", + "novio", + "nube", + "nuca", + "núcleo", + "nudillo", + "nudo", + "nuera", + "nueve", + "nuez", + "nulo", + "número", + "nutria", + "oasis", + "obeso", + "obispo", + "objeto", + "obra", + "obrero", + "observar", + "obtener", + "obvio", + "oca", + "ocaso", + "océano", + "ochenta", + "ocho", + "ocio", + "ocre", + "octavo", + "octubre", + "oculto", + "ocupar", + "ocurrir", + "odiar", + "odio", + "odisea", + "oeste", + "ofensa", + "oferta", + "oficio", + "ofrecer", + "ogro", + "oído", + "oír", + "ojo", + "ola", + "oleada", + "olfato", + "olivo", + "olla", + "olmo", + "olor", + "olvido", + "ombligo", + "onda", + "onza", + "opaco", + "opción", + "ópera", + "opinar", + "oponer", + "optar", + "óptica", + "opuesto", + "oración", + "orador", + "oral", + "órbita", + "orca", + "orden", + "oreja", + "órgano", + "orgía", + "orgullo", + "oriente", + "origen", + "orilla", + "oro", + "orquesta", + "oruga", + "osadía", + "oscuro", + "osezno", + "oso", + "ostra", + "otoño", + "otro", + "oveja", + "óvulo", + "óxido", + "oxígeno", + "oyente", + "ozono", + "pacto", + "padre", + "paella", + "página", + "pago", + "país", + "pájaro", + "palabra", + "palco", + "paleta", + "pálido", + "palma", + "paloma", + "palpar", + "pan", + "panal", + "pánico", + "pantera", + "pañuelo", + "papá", + "papel", + "papilla", + "paquete", + "parar", + "parcela", + "pared", + "parir", + "paro", + "párpado", + "parque", + "párrafo", + "parte", + "pasar", + "paseo", + "pasión", + "paso", + "pasta", + "pata", + "patio", + "patria", + "pausa", + "pauta", + "pavo", + "payaso", + "peatón", + "pecado", + "pecera", + "pecho", + "pedal", + "pedir", + "pegar", + "peine", + "pelar", + "peldaño", + "pelea", + "peligro", + "pellejo", + "pelo", + "peluca", + "pena", + "pensar", + "peñón", + "peón", + "peor", + "pepino", + "pequeño", + "pera", + "percha", + "perder", + "pereza", + "perfil", + "perico", + "perla", + "permiso", + "perro", + "persona", + "pesa", + "pesca", + "pésimo", + "pestaña", + "pétalo", + "petróleo", + "pez", + "pezuña", + "picar", + "pichón", + "pie", + "piedra", + "pierna", + "pieza", + "pijama", + "pilar", + "piloto", + "pimienta", + "pino", + "pintor", + "pinza", + "piña", + "piojo", + "pipa", + "pirata", + "pisar", + "piscina", + "piso", + "pista", + "pitón", + "pizca", + "placa", + "plan", + "plata", + "playa", + "plaza", + "pleito", + "pleno", + "plomo", + "pluma", + "plural", + "pobre", + "poco", + "poder", + "podio", + "poema", + "poesía", + "poeta", + "polen", + "policía", + "pollo", + "polvo", + "pomada", + "pomelo", + "pomo", + "pompa", + "poner", + "porción", + "portal", + "posada", + "poseer", + "posible", + "poste", + "potencia", + "potro", + "pozo", + "prado", + "precoz", + "pregunta", + "premio", + "prensa", + "preso", + "previo", + "primo", + "príncipe", + "prisión", + "privar", + "proa", + "probar", + "proceso", + "producto", + "proeza", + "profesor", + "programa", + "prole", + "promesa", + "pronto", + "propio", + "próximo", + "prueba", + "público", + "puchero", + "pudor", + "pueblo", + "puerta", + "puesto", + "pulga", + "pulir", + "pulmón", + "pulpo", + "pulso", + "puma", + "punto", + "puñal", + "puño", + "pupa", + "pupila", + "puré", + "quedar", + "queja", + "quemar", + "querer", + "queso", + "quieto", + "química", + "quince", + "quitar", + "rábano", + "rabia", + "rabo", + "ración", + "radical", + "raíz", + "rama", + "rampa", + "rancho", + "rango", + "rapaz", + "rápido", + "rapto", + "rasgo", + "raspa", + "rato", + "rayo", + "raza", + "razón", + "reacción", + "realidad", + "rebaño", + "rebote", + "recaer", + "receta", + "rechazo", + "recoger", + "recreo", + "recto", + "recurso", + "red", + "redondo", + "reducir", + "reflejo", + "reforma", + "refrán", + "refugio", + "regalo", + "regir", + "regla", + "regreso", + "rehén", + "reino", + "reír", + "reja", + "relato", + "relevo", + "relieve", + "relleno", + "reloj", + "remar", + "remedio", + "remo", + "rencor", + "rendir", + "renta", + "reparto", + "repetir", + "reposo", + "reptil", + "res", + "rescate", + "resina", + "respeto", + "resto", + "resumen", + "retiro", + "retorno", + "retrato", + "reunir", + "revés", + "revista", + "rey", + "rezar", + "rico", + "riego", + "rienda", + "riesgo", + "rifa", + "rígido", + "rigor", + "rincón", + "riñón", + "río", + "riqueza", + "risa", + "ritmo", + "rito" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Spanish"; + populate_maps(); + } + }; +} + #endif \ No newline at end of file From d683c8c724b59b2e8d01dcb45698c44b08186813 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 2 Oct 2014 21:35:27 +0530 Subject: [PATCH 21/26] Use reference types on LHS when using language methods --- src/mnemonics/electrum-words.cpp | 10 +++---- src/mnemonics/electrum-words.h | 2 +- src/mnemonics/english.h | 10 +++++++ src/mnemonics/japanese.h | 10 +++++++ src/mnemonics/language_base.h | 48 +++++++++++++++++++++++++++----- src/mnemonics/old_english.h | 10 +++++++ src/mnemonics/portuguese.h | 10 +++++++ src/mnemonics/singleton.h | 18 ++++++++++++ src/mnemonics/spanish.h | 10 +++++++ 9 files changed, 114 insertions(+), 14 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index e644e0cbf..053941194 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -95,14 +95,13 @@ namespace it->substr(0, Language::unique_prefix_length) : *it); } } - std::unordered_map word_map; - std::unordered_map trimmed_word_map; + // Iterate through all the languages and find a match for (std::vector::iterator it1 = language_instances.begin(); it1 != language_instances.end(); it1++) { - word_map = (*it1)->get_word_map(); - trimmed_word_map = (*it1)->get_trimmed_word_map(); + std::unordered_map &word_map = (*it1)->get_word_map(); + std::unordered_map &trimmed_word_map = (*it1)->get_trimmed_word_map(); // To iterate through seed words std::vector::const_iterator it2; // To iterate through trimmed seed words @@ -285,7 +284,6 @@ namespace crypto if (sizeof(src.data) % 4 != 0 || sizeof(src.data) == 0) return false; - std::vector word_list; Language::Base *language; if (language_name == "English") { @@ -307,7 +305,7 @@ namespace crypto { return false; } - word_list = language->get_word_list(); + std::vector &word_list = language->get_word_list(); // To store the words for random access to add the checksum word later. std::vector words_store; diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 1535fff1b..3be4b1ccc 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -81,7 +81,7 @@ namespace crypto /*! * \brief Gets a list of seed languages that are supported. - * \param languages The vector is set to the list of languages. + * \param languages A vector is set to the list of languages. */ void get_language_list(std::vector &languages); diff --git a/src/mnemonics/english.h b/src/mnemonics/english.h index ee2e248d9..e596f7b03 100644 --- a/src/mnemonics/english.h +++ b/src/mnemonics/english.h @@ -27,6 +27,12 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/*! + * \file english.h + * + * \brief English word list and map. + */ + #ifndef ENGLISH_H #define ENGLISH_H @@ -35,6 +41,10 @@ #include "language_base.h" #include +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { class English: public Base diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h index 1c53a808e..2e77aa257 100644 --- a/src/mnemonics/japanese.h +++ b/src/mnemonics/japanese.h @@ -27,6 +27,12 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/*! + * \file japanese.h + * + * \brief Japanese word list and map. + */ + #ifndef JAPANESE_H #define JAPANESE_H @@ -35,6 +41,10 @@ #include "language_base.h" #include +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { class Japanese: public Base diff --git a/src/mnemonics/language_base.h b/src/mnemonics/language_base.h index b8b6a162f..1d08095d7 100644 --- a/src/mnemonics/language_base.h +++ b/src/mnemonics/language_base.h @@ -1,3 +1,9 @@ +/*! + * \file language_base.h + * + * \brief Language Base class for Polymorphism. + */ + #ifndef LANGUAGE_BASE_H #define LANGUAGE_BASE_H @@ -5,16 +11,28 @@ #include #include +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { - const int unique_prefix_length = 4; + const int unique_prefix_length = 4; /*!< Length of the prefix of all words guaranteed to be unique */ + /*! + * \class Base + * \brief A base language class which all languages have to inherit from for + * Polymorphism. + */ class Base { protected: - std::vector *word_list; - std::unordered_map *word_map; - std::unordered_map *trimmed_word_map; - std::string language_name; + std::vector *word_list; /*!< A pointer to the array of words */ + std::unordered_map *word_map; /*!< hash table to find word's index */ + std::unordered_map *trimmed_word_map; /*!< hash table to find word's trimmed index */ + std::string language_name; /*!< Name of language */ + /*! + * \brief Populates the word maps after the list is ready. + */ void populate_maps() { int ii; @@ -22,9 +40,9 @@ namespace Language for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++) { (*word_map)[*it] = ii; - if (it->length() > 4) + if (it->length() > unique_prefix_length) { - (*trimmed_word_map)[it->substr(0, 4)] = ii; + (*trimmed_word_map)[it->substr(0, unique_prefix_length)] = ii; } else { @@ -39,18 +57,34 @@ namespace Language word_map = new std::unordered_map; trimmed_word_map = new std::unordered_map; } + /*! + * \brief Returns a pointer to the word list. + * \return A pointer to the word list. + */ const std::vector& get_word_list() const { return *word_list; } + /*! + * \brief Returns a pointer to the word map. + * \return A pointer to the word map. + */ const std::unordered_map& get_word_map() const { return *word_map; } + /*! + * \brief Returns a pointer to the trimmed word map. + * \return A pointer to the trimmed word map. + */ const std::unordered_map& get_trimmed_word_map() const { return *trimmed_word_map; } + /*! + * \brief Returns the name of the language. + * \return Name of the language. + */ std::string get_language_name() const { return language_name; diff --git a/src/mnemonics/old_english.h b/src/mnemonics/old_english.h index 4e40b1730..21772cdc3 100644 --- a/src/mnemonics/old_english.h +++ b/src/mnemonics/old_english.h @@ -27,6 +27,12 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/*! + * \file old_english.h + * + * \brief Old English word list and map. + */ + #ifndef OLD_ENGLISH_H #define OLD_ENGLISH_H @@ -35,6 +41,10 @@ #include "language_base.h" #include +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { class OldEnglish: public Base diff --git a/src/mnemonics/portuguese.h b/src/mnemonics/portuguese.h index 06d53f176..5b88a0686 100644 --- a/src/mnemonics/portuguese.h +++ b/src/mnemonics/portuguese.h @@ -26,6 +26,12 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/*! + * \file portuguese.h + * + * \brief Portuguese word list and map. + */ + #ifndef PORTUGUESE_H #define PORTUGUESE_H @@ -34,6 +40,10 @@ #include "language_base.h" #include +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { class Portuguese: public Base diff --git a/src/mnemonics/singleton.h b/src/mnemonics/singleton.h index 74cc290fc..5a86c2e7c 100644 --- a/src/mnemonics/singleton.h +++ b/src/mnemonics/singleton.h @@ -26,8 +26,26 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/*! + * \file singleton.h + * + * \brief A singleton helper class based on template. + */ + +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { + /*! + * \class Singleton + * + * \brief Single helper class. + * + * Do Language::Singleton::instance() to create a singleton instance + * of `YourClass`. + */ template class Singleton { diff --git a/src/mnemonics/spanish.h b/src/mnemonics/spanish.h index c205adc95..efa71a202 100644 --- a/src/mnemonics/spanish.h +++ b/src/mnemonics/spanish.h @@ -27,6 +27,12 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/*! + * \file spanish.h + * + * \brief Spanish word list and map. + */ + #ifndef SPANISH_H #define SPANISH_H @@ -35,6 +41,10 @@ #include "language_base.h" #include +/*! + * \namespace Language + * \brief Mnemonic language related namespace. + */ namespace Language { class Spanish: public Base From 4498e9efa019d7e0f0d1276f428d48c3e644aa78 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 2 Oct 2014 21:38:20 +0530 Subject: [PATCH 22/26] Removed old word list file --- src/mnemonics/wordlists/languages/english | 2049 ------------------ src/mnemonics/wordlists/languages/japanese | 2049 ------------------ src/mnemonics/wordlists/languages/portuguese | 1626 -------------- src/mnemonics/wordlists/languages/spanish | 2049 ------------------ src/mnemonics/wordlists/old-word-list | 1626 -------------- 5 files changed, 9399 deletions(-) delete mode 100644 src/mnemonics/wordlists/languages/english delete mode 100644 src/mnemonics/wordlists/languages/japanese delete mode 100644 src/mnemonics/wordlists/languages/portuguese delete mode 100644 src/mnemonics/wordlists/languages/spanish delete mode 100644 src/mnemonics/wordlists/old-word-list diff --git a/src/mnemonics/wordlists/languages/english b/src/mnemonics/wordlists/languages/english deleted file mode 100644 index 714f66dac..000000000 --- a/src/mnemonics/wordlists/languages/english +++ /dev/null @@ -1,2049 +0,0 @@ -# Originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin -abandon -ability -able -about -above -absent -absorb -abstract -absurd -abuse -access -accident -account -accuse -achieve -acid -acoustic -acquire -across -act -action -actor -actress -actual -adapt -add -addict -address -adjust -admit -adult -advance -advice -aerobic -affair -afford -afraid -again -age -agent -agree -ahead -aim -air -airport -aisle -alarm -album -alcohol -alert -alien -all -alley -allow -almost -alone -alpha -already -also -alter -always -amateur -amazing -among -amount -amused -analyst -anchor -ancient -anger -angle -angry -animal -ankle -announce -annual -another -answer -antenna -antique -anxiety -any -apart -apology -appear -apple -approve -april -arch -arctic -area -arena -argue -arm -armed -armor -army -around -arrange -arrest -arrive -arrow -art -artefact -artist -artwork -ask -aspect -assault -asset -assist -assume -asthma -athlete -atom -attack -attend -attitude -attract -auction -audit -august -aunt -author -auto -autumn -average -avocado -avoid -awake -aware -away -awesome -awful -awkward -axis -baby -bachelor -bacon -badge -bag -balance -balcony -ball -bamboo -banana -banner -bar -barely -bargain -barrel -base -basic -basket -battle -beach -bean -beauty -because -become -beef -before -begin -behave -behind -believe -below -belt -bench -benefit -best -betray -better -between -beyond -bicycle -bid -bike -bind -biology -bird -birth -bitter -black -blade -blame -blanket -blast -bleak -bless -blind -blood -blossom -blouse -blue -blur -blush -board -boat -body -boil -bomb -bone -bonus -book -boost -border -boring -borrow -boss -bottom -bounce -box -boy -bracket -brain -brand -brass -brave -bread -breeze -brick -bridge -brief -bright -bring -brisk -broccoli -broken -bronze -broom -brother -brown -brush -bubble -buddy -budget -buffalo -build -bulb -bulk -bullet -bundle -bunker -burden -burger -burst -bus -business -busy -butter -buyer -buzz -cabbage -cabin -cable -cactus -cage -cake -call -calm -camera -camp -can -canal -cancel -candy -cannon -canoe -canvas -canyon -capable -capital -captain -car -carbon -card -cargo -carpet -carry -cart -case -cash -casino -castle -casual -cat -catalog -catch -category -cattle -caught -cause -caution -cave -ceiling -celery -cement -census -century -cereal -certain -chair -chalk -champion -change -chaos -chapter -charge -chase -chat -cheap -check -cheese -chef -cherry -chest -chicken -chief -child -chimney -choice -choose -chronic -chuckle -chunk -churn -cigar -cinnamon -circle -citizen -city -civil -claim -clap -clarify -claw -clay -clean -clerk -clever -click -client -cliff -climb -clinic -clip -clock -clog -close -cloth -cloud -clown -club -clump -cluster -clutch -coach -coast -coconut -code -coffee -coil -coin -collect -color -column -combine -come -comfort -comic -common -company -concert -conduct -confirm -congress -connect -consider -control -convince -cook -cool -copper -copy -coral -core -corn -correct -cost -cotton -couch -country -couple -course -cousin -cover -coyote -crack -cradle -craft -cram -crane -crash -crater -crawl -crazy -cream -credit -creek -crew -cricket -crime -crisp -critic -crop -cross -crouch -crowd -crucial -cruel -cruise -crumble -crunch -crush -cry -crystal -cube -culture -cup -cupboard -curious -current -curtain -curve -cushion -custom -cute -cycle -dad -damage -damp -dance -danger -daring -dash -daughter -dawn -day -deal -debate -debris -decade -december -decide -decline -decorate -decrease -deer -defense -define -defy -degree -delay -deliver -demand -demise -denial -dentist -deny -depart -depend -deposit -depth -deputy -derive -describe -desert -design -desk -despair -destroy -detail -detect -develop -device -devote -diagram -dial -diamond -diary -dice -diesel -diet -differ -digital -dignity -dilemma -dinner -dinosaur -direct -dirt -disagree -discover -disease -dish -dismiss -disorder -display -distance -divert -divide -divorce -dizzy -doctor -document -dog -doll -dolphin -domain -donate -donkey -donor -door -dose -double -dove -draft -dragon -drama -drastic -draw -dream -dress -drift -drill -drink -drip -drive -drop -drum -dry -duck -dumb -dune -during -dust -dutch -duty -dwarf -dynamic -eager -eagle -early -earn -earth -easily -east -easy -echo -ecology -economy -edge -edit -educate -effort -egg -eight -either -elbow -elder -electric -elegant -element -elephant -elevator -elite -else -embark -embody -embrace -emerge -emotion -employ -empower -empty -enable -enact -end -endless -endorse -enemy -energy -enforce -engage -engine -enhance -enjoy -enlist -enough -enrich -enroll -ensure -enter -entire -entry -envelope -episode -equal -equip -era -erase -erode -erosion -error -erupt -escape -essay -essence -estate -eternal -ethics -evidence -evil -evoke -evolve -exact -example -excess -exchange -excite -exclude -excuse -execute -exercise -exhaust -exhibit -exile -exist -exit -exotic -expand -expect -expire -explain -expose -express -extend -extra -eye -eyebrow -fabric -face -faculty -fade -faint -faith -fall -false -fame -family -famous -fan -fancy -fantasy -farm -fashion -fat -fatal -father -fatigue -fault -favorite -feature -february -federal -fee -feed -feel -female -fence -festival -fetch -fever -few -fiber -fiction -field -figure -file -film -filter -final -find -fine -finger -finish -fire -firm -first -fiscal -fish -fit -fitness -fix -flag -flame -flash -flat -flavor -flee -flight -flip -float -flock -floor -flower -fluid -flush -fly -foam -focus -fog -foil -fold -follow -food -foot -force -forest -forget -fork -fortune -forum -forward -fossil -foster -found -fox -fragile -frame -frequent -fresh -friend -fringe -frog -front -frost -frown -frozen -fruit -fuel -fun -funny -furnace -fury -future -gadget -gain -galaxy -gallery -game -gap -garage -garbage -garden -garlic -garment -gas -gasp -gate -gather -gauge -gaze -general -genius -genre -gentle -genuine -gesture -ghost -giant -gift -giggle -ginger -giraffe -girl -give -glad -glance -glare -glass -glide -glimpse -globe -gloom -glory -glove -glow -glue -goat -goddess -gold -good -goose -gorilla -gospel -gossip -govern -gown -grab -grace -grain -grant -grape -grass -gravity -great -green -grid -grief -grit -grocery -group -grow -grunt -guard -guess -guide -guilt -guitar -gun -gym -habit -hair -half -hammer -hamster -hand -happy -harbor -hard -harsh -harvest -hat -have -hawk -hazard -head -health -heart -heavy -hedgehog -height -hello -helmet -help -hen -hero -hidden -high -hill -hint -hip -hire -history -hobby -hockey -hold -hole -holiday -hollow -home -honey -hood -hope -horn -horror -horse -hospital -host -hotel -hour -hover -hub -huge -human -humble -humor -hundred -hungry -hunt -hurdle -hurry -hurt -husband -hybrid -ice -icon -idea -identify -idle -ignore -ill -illegal -illness -image -imitate -immense -immune -impact -impose -improve -impulse -inch -include -income -increase -index -indicate -indoor -industry -infant -inflict -inform -inhale -inherit -initial -inject -injury -inmate -inner -innocent -input -inquiry -insane -insect -inside -inspire -install -intact -interest -into -invest -invite -involve -iron -island -isolate -issue -item -ivory -jacket -jaguar -jar -jazz -jealous -jeans -jelly -jewel -job -join -joke -journey -joy -judge -juice -jump -jungle -junior -junk -just -kangaroo -keen -keep -ketchup -key -kick -kid -kidney -kind -kingdom -kiss -kit -kitchen -kite -kitten -kiwi -knee -knife -knock -know -lab -label -labor -ladder -lady -lake -lamp -language -laptop -large -later -latin -laugh -laundry -lava -law -lawn -lawsuit -layer -lazy -leader -leaf -learn -leave -lecture -left -leg -legal -legend -leisure -lemon -lend -length -lens -leopard -lesson -letter -level -liar -liberty -library -license -life -lift -light -like -limb -limit -link -lion -liquid -list -little -live -lizard -load -loan -lobster -local -lock -logic -lonely -long -loop -lottery -loud -lounge -love -loyal -lucky -luggage -lumber -lunar -lunch -luxury -lyrics -machine -mad -magic -magnet -maid -mail -main -major -make -mammal -man -manage -mandate -mango -mansion -manual -maple -marble -march -margin -marine -market -marriage -mask -mass -master -match -material -math -matrix -matter -maximum -maze -meadow -mean -measure -meat -mechanic -medal -media -melody -melt -member -memory -mention -menu -mercy -merge -merit -merry -mesh -message -metal -method -middle -midnight -milk -million -mimic -mind -minimum -minor -minute -miracle -mirror -misery -miss -mistake -mix -mixed -mixture -mobile -model -modify -mom -moment -monitor -monkey -monster -month -moon -moral -more -morning -mosquito -mother -motion -motor -mountain -mouse -move -movie -much -muffin -mule -multiply -muscle -museum -mushroom -music -must -mutual -myself -mystery -myth -naive -name -napkin -narrow -nasty -nation -nature -near -neck -need -negative -neglect -neither -nephew -nerve -nest -net -network -neutral -never -news -next -nice -night -noble -noise -nominee -noodle -normal -north -nose -notable -note -nothing -notice -novel -now -nuclear -number -nurse -nut -oak -obey -object -oblige -obscure -observe -obtain -obvious -occur -ocean -october -odor -off -offer -office -often -oil -okay -old -olive -olympic -omit -once -one -onion -online -only -open -opera -opinion -oppose -option -orange -orbit -orchard -order -ordinary -organ -orient -original -orphan -ostrich -other -outdoor -outer -output -outside -oval -oven -over -own -owner -oxygen -oyster -ozone -pact -paddle -page -pair -palace -palm -panda -panel -panic -panther -paper -parade -parent -park -parrot -party -pass -patch -path -patient -patrol -pattern -pause -pave -payment -peace -peanut -pear -peasant -pelican -pen -penalty -pencil -people -pepper -perfect -permit -person -pet -phone -photo -phrase -physical -piano -picnic -picture -piece -pig -pigeon -pill -pilot -pink -pioneer -pipe -pistol -pitch -pizza -place -planet -plastic -plate -play -please -pledge -pluck -plug -plunge -poem -poet -point -polar -pole -police -pond -pony -pool -popular -portion -position -possible -post -potato -pottery -poverty -powder -power -practice -praise -predict -prefer -prepare -present -pretty -prevent -price -pride -primary -print -priority -prison -private -prize -problem -process -produce -profit -program -project -promote -proof -property -prosper -protect -proud -provide -public -pudding -pull -pulp -pulse -pumpkin -punch -pupil -puppy -purchase -purity -purpose -purse -push -put -puzzle -pyramid -quality -quantum -quarter -question -quick -quit -quiz -quote -rabbit -raccoon -race -rack -radar -radio -rail -rain -raise -rally -ramp -ranch -random -range -rapid -rare -rate -rather -raven -raw -razor -ready -real -reason -rebel -rebuild -recall -receive -recipe -record -recycle -reduce -reflect -reform -refuse -region -regret -regular -reject -relax -release -relief -rely -remain -remember -remind -remove -render -renew -rent -reopen -repair -repeat -replace -report -require -rescue -resemble -resist -resource -response -result -retire -retreat -return -reunion -reveal -review -reward -rhythm -rib -ribbon -rice -rich -ride -ridge -rifle -right -rigid -ring -riot -ripple -risk -ritual -rival -river -road -roast -robot -robust -rocket -romance -roof -rookie -room -rose -rotate -rough -round -route -royal -rubber -rude -rug -rule -run -runway -rural -sad -saddle -sadness -safe -sail -salad -salmon -salon -salt -salute -same -sample -sand -satisfy -satoshi -sauce -sausage -save -say -scale -scan -scare -scatter -scene -scheme -school -science -scissors -scorpion -scout -scrap -screen -script -scrub -sea -search -season -seat -second -secret -section -security -seed -seek -segment -select -sell -seminar -senior -sense -sentence -series -service -session -settle -setup -seven -shadow -shaft -shallow -share -shed -shell -sheriff -shield -shift -shine -ship -shiver -shock -shoe -shoot -shop -short -shoulder -shove -shrimp -shrug -shuffle -shy -sibling -sick -side -siege -sight -sign -silent -silk -silly -silver -similar -simple -since -sing -siren -sister -situate -six -size -skate -sketch -ski -skill -skin -skirt -skull -slab -slam -sleep -slender -slice -slide -slight -slim -slogan -slot -slow -slush -small -smart -smile -smoke -smooth -snack -snake -snap -sniff -snow -soap -soccer -social -sock -soda -soft -solar -soldier -solid -solution -solve -someone -song -soon -sorry -sort -soul -sound -soup -source -south -space -spare -spatial -spawn -speak -special -speed -spell -spend -sphere -spice -spider -spike -spin -spirit -split -spoil -sponsor -spoon -sport -spot -spray -spread -spring -spy -square -squeeze -squirrel -stable -stadium -staff -stage -stairs -stamp -stand -start -state -stay -steak -steel -stem -step -stereo -stick -still -sting -stock -stomach -stone -stool -story -stove -strategy -street -strike -strong -struggle -student -stuff -stumble -style -subject -submit -subway -success -such -sudden -suffer -sugar -suggest -suit -summer -sun -sunny -sunset -super -supply -supreme -sure -surface -surge -surprise -surround -survey -suspect -sustain -swallow -swamp -swap -swarm -swear -sweet -swift -swim -swing -switch -sword -symbol -symptom -syrup -system -table -tackle -tag -tail -talent -talk -tank -tape -target -task -taste -tattoo -taxi -teach -team -tell -ten -tenant -tennis -tent -term -test -text -thank -that -theme -then -theory -there -they -thing -this -thought -three -thrive -throw -thumb -thunder -ticket -tide -tiger -tilt -timber -time -tiny -tip -tired -tissue -title -toast -tobacco -today -toddler -toe -together -toilet -token -tomato -tomorrow -tone -tongue -tonight -tool -tooth -top -topic -topple -torch -tornado -tortoise -toss -total -tourist -toward -tower -town -toy -track -trade -traffic -tragic -train -transfer -trap -trash -travel -tray -treat -tree -trend -trial -tribe -trick -trigger -trim -trip -trophy -trouble -truck -true -truly -trumpet -trust -truth -try -tube -tuition -tumble -tuna -tunnel -turkey -turn -turtle -twelve -twenty -twice -twin -twist -two -type -typical -ugly -umbrella -unable -unaware -uncle -uncover -under -undo -unfair -unfold -unhappy -uniform -unique -unit -universe -unknown -unlock -until -unusual -unveil -update -upgrade -uphold -upon -upper -upset -urban -urge -usage -use -used -useful -useless -usual -utility -vacant -vacuum -vague -valid -valley -valve -van -vanish -vapor -various -vast -vault -vehicle -velvet -vendor -venture -venue -verb -verify -version -very -vessel -veteran -viable -vibrant -vicious -victory -video -view -village -vintage -violin -virtual -virus -visa -visit -visual -vital -vivid -vocal -voice -void -volcano -volume -vote -voyage -wage -wagon -wait -walk -wall -walnut -want -warfare -warm -warrior -wash -wasp -waste -water -wave -way -wealth -weapon -wear -weasel -weather -web -wedding -weekend -weird -welcome -west -wet -whale -what -wheat -wheel -when -where -whip -whisper -wide -width -wife -wild -will -win -window -wine -wing -wink -winner -winter -wire -wisdom -wise -wish -witness -wolf -woman -wonder -wood -wool -word -work -world -worry -worth -wrap -wreck -wrestle -wrist -write -wrong -yard -year -yellow -you -young -youth -zebra -zero -zone -zoo diff --git a/src/mnemonics/wordlists/languages/japanese b/src/mnemonics/wordlists/languages/japanese deleted file mode 100644 index cb28b89d8..000000000 --- a/src/mnemonics/wordlists/languages/japanese +++ /dev/null @@ -1,2049 +0,0 @@ -# Originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin -あい -あいこくしん -あう -あお -あおぞら -あか -あかちゃん -あき -あきる -あく -あさ -あさひ -あし -あずき -あせ -あそぶ -あたる -あつい -あな -あに -あね -あひる -あまい -あみ -あめ -あめりか -あやまる -あゆむ -あらいぐま -あらし -あり -ある -あれ -あわ -あんこ -いう -いえ -いおん -いか -いがい -いかいよう -いけ -いけん -いこく -いこつ -いさん -いし -いじゅう -いす -いせい -いせえび -いせかい -いせき -いそうろう -いそがしい -いたりあ -いてざ -いてん -いと -いない -いなか -いぬ -いね -いのち -いのる -いはつ -いはん -いびき -いひん -いふく -いへん -いほう -いま -いみ -いみん -いも -いもうと -いもたれ -いもり -いや -いやす -いよかん -いよく -いらい -いらすと -いりぐち -いりょう -いりょうひ -いる -いれい -いれもの -いれる -いろ -いろえんぴつ -いわ -いわう -いわかん -いんげんまめ -うえ -うおざ -うかぶ -うきわ -うく -うくらいな -うくれれ -うけつぐ -うけつけ -うける -うごく -うこん -うさぎ -うし -うしなう -うしろ -うしろがみ -うすい -うすぎ -うせつ -うそ -うた -うちあわせ -うちがわ -うちき -うつ -うなぎ -うなじ -うに -うねる -うのう -うぶげ -うぶごえ -うま -うまれる -うみ -うむ -うめ -うめる -うもう -うやまう -うよく -うら -うらない -うる -うるさい -うれしい -うろこ -うわき -うわさ -えい -えいえん -えいが -えいぎょう -えいご -えおり -えき -えきたい -えくせる -えさ -えしゃく -えすて -えつらん -えと -えのぐ -えび -えほうまき -えほん -えま -えまき -えもじ -えもの -えらい -えらぶ -えり -えりあ -える -えん -えんえん -おきる -おく -おけ -おこる -おしえる -おやゆび -おらんだ -かあつ -かい -かう -かお -かがし -かき -かく -かこ -かさ -かす -かち -かつ -かなざわし -かに -かね -かのう -かほう -かほご -かまぼこ -かみ -かむ -かめれおん -かも -かゆい -からい -かるい -かろう -かわ -かわら -きあい -きあつ -きいろ -ぎいん -きうい -きうん -きえる -きおう -きおく -きおち -きおん -きか -きかい -きかく -きかん -きかんしゃ -きぎ -ききて -きく -きくばり -きくらげ -きけん -きけんせい -きこう -きこえる -きこく -きさい -きさく -きさま -きさらぎ -きし -きしゅ -きす -きすう -きせい -きせき -きせつ -きそ -きそう -きそく -きぞく -ぎそく -きぞん -きた -きたえる -きち -きちょう -きつえん -きつつき -きつね -きてい -きどう -きどく -きない -きなが -きぬ -きぬごし -きねん -きのう -きはく -きびしい -きひん -きふ -ぎふ -きふく -ぎぼ -きほう -きぼう -きほん -きまる -きみ -きみつ -ぎむ -きむずかしい -きめ -きめる -きもだめし -きもち -きやく -きよう -きらい -きらく -きり -きる -きれい -きれつ -きろく -ぎろん -きわめる -ぐあい -くい -くいず -くうかん -くうき -くうぐん -くうこう -くうそう -くうふく -くうぼ -くかん -くき -くきょう -くげん -ぐこう -くさ -くさい -くさき -くさばな -くさる -くし -くしゃみ -くしょう -くすのき -くすり -くすりゆび -くせ -くせげ -くせん -くたびれる -くち -くちこみ -くちさき -くつ -くつした -くつろぐ -くとうてん -くどく -くなん -くに -くねくね -くのう -くふう -くま -くみあわせ -くみたてる -くむ -くめる -くやくしょ -くらす -くり -くれる -くろ -くろう -くわしい -ぐんじょ -けあな -けいけん -けいこ -けいさい -けいさつ -げいのうじん -けいれき -けいれつ -けいれん -けいろ -けおとす -けおりもの -けが -げき -げきか -げきげん -げきだん -げきちん -げきど -げきは -げきやく -げこう -げこくじょう -けさ -げざい -けさき -げざん -けしき -けしごむ -けしょう -けす -げすと -けた -げた -けたば -けち -けちゃっぷ -けちらす -けつ -けつあつ -けつい -けつえき -けっこん -けつじょ -けってい -けつまつ -げつようび -げつれい -けつろん -げどく -けとばす -けとる -けなげ -けなす -けなみ -けぬき -げねつ -けねん -けはい -げひん -けぶかい -げぼく -けまり -けみかる -けむし -けむり -けもの -けらい -ける -げろ -けろけろ -けわしい -けんい -けんえつ -けんお -けんか -げんき -けんきゅう -けんきょ -けんけい -けんけつ -けんげん -けんこう -けんさ -けんさく -けんしゅう -けんしゅつ -けんしん -けんすう -けんそう -げんそう -けんそん -げんち -けんちく -けんてい -げんてい -けんとう -けんない -けんにん -げんぶつ -けんま -けんみん -けんめい -けんらん -けんり -けんりつ -こあくま -こい -ごい -こいびと -こうい -こうえん -こうか -こうかい -こうかん -こうさい -こうさん -こうしん -こうず -こうすい -こうせん -こうそう -こうそく -こうたい -こうちゃ -こうつう -こうてい -こうとうぶ -こうない -こうはい -こうはん -こうもく -こえ -こえる -こおり -ごがつ -こかん -こく -こくご -こくない -こくはく -こけい -こける -ここ -こころ -ごさ -こさめ -こし -こしつ -こす -こすう -こせい -こせき -こぜん -こそだて -こたい -こたえる -こたつ -こちょう -こっか -こつこつ -こつばん -こつぶ -こてい -こてん -こと -ことがら -ことし -こなごな -こねこね -このまま -このみ -このよ -こはん -ごはん -ごび -こひつじ -こふう -こふん -こぼれる -ごま -こまかい -こまつし -こまつな -こまる -こむ -こむぎこ -こめ -こもじ -こもち -こもの -こもん -こや -こやく -こやま -こゆう -こゆび -こよい -こよう -こりる -こる -これくしょん -ころっけ -こわもて -こわれる -こん -こんいん -こんかい -こんき -こんしゅう -こんしゅん -こんすい -こんだて -こんだん -こんとん -こんなん -こんびに -こんぽう -こんぽん -こんまけ -こんや -こんやく -こんれい -こんわく -さいかい -さいがい -さいきん -さいご -さいこん -さいしょ -さうな -さお -さかいし -さかな -さかみち -さき -さく -さくし -さくじょ -さくひん -さくら -さけ -さこく -さこつ -さたん -さつえい -さっか -さっきょく -さつじん -さつたば -さつまいも -さてい -さといも -さとう -さとおや -さとる -さのう -さば -さばく -さべつ -さほう -さほど -さます -さみしい -さみだれ -さむけ -さめ -さめる -さやえんどう -さゆう -さよう -さよく -さら -さらだ -さる -さわやか -さわる -さんいん -さんか -さんきゃく -さんこう -さんさい -さんざん -さんすう -さんせい -さんそ -さんそん -さんち -さんちょう -さんま -さんみ -さんらん -しあい -しあげ -しあさって -しあわせ -しいく -しいん -しうち -しえい -しお -しおけ -しか -しかい -しかく -じかん -した -したぎ -したて -したみ -しちょう -しちょうそん -しちりん -じつじ -してい -してき -してつ -してん -しとう -じどう -しなぎれ -しなもの -しなん -しねま -しねん -しのぐ -しのぶ -しはい -しばかり -しはつ -じはつ -しはらい -しはん -しひょう -じふ -しふく -じぶん -しへい -しほう -しほん -しま -しまう -しまる -しみ -じみ -しみん -じむ -しむける -しめい -しめる -しもん -しゃいん -しゃうん -しゃおん -しゃかい -じゃがいも -しやくしょ -しゃくほう -しゃけん -しゃこ -しゃこう -しゃざい -しゃしん -しゃせん -しゃそう -しゃたい -しゃたく -しゃちょう -しゃっきん -じゃま -じゃり -しゃりょう -しゃりん -しゃれい -しゅうえん -しゅうかい -しゅうきん -しゅうけい -しゅうりょう -しゅらば -しょうか -しょうかい -しょうきん -しょうじき -しょくざい -しょくたく -しょっけん -しょどう -しょもつ -しん -しんか -しんこう -しんせいじ -しんちく -しんりん -すあげ -すあし -すあな -ずあん -すいか -すいとう -すう -すうがく -すうじつ -すうせん -すおどり -すき -すきま -すく -すくう -すくない -すける -すこし -ずさん -すし -すずしい -すすめる -すそ -ずっしり -ずっと -すで -すてき -すてる -すな -すなっく -すなっぷ -すね -すねる -すのこ -すはだ -すばらしい -ずひょう -ずぶぬれ -すぶり -すふれ -すべて -すべる -ずほう -すぼん -すまい -すみ -すむ -すめし -すもう -すやき -すらいす -すらいど -すらすら -すり -する -するめ -すれちがう -すろっと -すわる -すんぜん -すんぽう -せあぶら -せいか -せいかい -せいかつ -せおう -せかい -せかいかん -せかいし -せかいじゅう -せき -せきにん -せきむ -せきゆ -せきらんうん -せけん -せこう -せすじ -せたい -せたけ -せっかい -せっかく -せっき -せっきゃく -せっきょく -せっきん -ぜっく -せっけん -せっこつ -せっさたくま -せつぞく -せつだん -せつでん -せっぱん -せつび -せつぶん -せつめい -せつりつ -せと -せなか -せのび -せはば -せぼね -せまい -せまる -せみ -せめる -せもたれ -せりふ -せわ -せん -ぜんあく -せんい -せんえい -せんか -せんきょ -せんく -せんけつ -せんげん -ぜんご -せんさい -せんし -せんしゅ -せんす -せんすい -せんせい -せんぞ -せんそう -せんたく -せんち -せんちゃ -せんちゃく -せんちょう -せんてい -せんとう -せんぬき -せんねん -ぜんぶ -せんぷうき -せんぷく -ぜんぽう -せんむ -せんめい -せんめんじょ -せんもん -せんやく -せんゆう -せんよう -ぜんら -ぜんりゃく -せんりょく -せんれい -せんろ -そあく -そいとげる -そいね -そう -ぞう -そうがんきょう -そうき -そうご -そうなん -そうび -そうひょう -そうめん -そうり -そうりょ -そえもの -そえん -そかい -そがい -そぐ -そげき -そこう -そこそこ -そざい -そし -そしな -そせい -そせん -そそぐ -そだてる -そつう -そつえん -そっかん -そつぎょう -そっけつ -そっこう -そっせん -そっと -そで -そと -そとがわ -そとづら -そなえる -そなた -そば -そふ -そふぼ -そぼ -そぼく -そぼろ -そまつ -そまる -そむく -そむりえ -そめる -そもそも -そよかぜ -そら -そらまめ -そり -そる -そろう -そんかい -そんけい -そんざい -そんしつ -そんしょう -そんぞく -そんちょう -ぞんび -ぞんぶん -そんみん -たあい -たいいん -たいうん -たいえき -たいおう -だいおう -たいか -たいかい -たいき -たいきけん -たいぐう -たいくつ -たいけい -たいけつ -たいけん -たいこ -たいこう -たいさ -たいさん -たいしゅつ -だいじょうぶ -たいしょく -だいず -だいすき -たいせい -たいせつ -たいせん -たいそう -たいちょう -だいちょう -たいとう -たいない -たいねつ -たいのう -たいは -たいはん -たいひ -たいふう -たいへん -たいほ -たいまつばな -たいまん -たいみんぐ -たいむ -たいめん -たいやき -たいやく -たいよう -たいら -たいりょう -たいりょく -たいる -たいわ -たいわん -たうえ -たえる -たおす -たおる -たかい -たかね -たき -たきび -たくさん -たけ -たこ -たこく -たこやき -たさい -ださい -たしざん -たす -たすける -たそがれ -たたかう -たたく -たちば -たちばな -たつ -だっかい -だっきゃく -だっこ -だっしめん -だっしゅつ -だったい -たて -たてる -たとえる -たな -たにん -たぬき -たね -たのしみ -たはつ -たび -たぶん -たべる -たぼう -たほうめん -たま -たまご -たまる -だむる -ためいき -ためす -ためる -たもつ -たやすい -たよる -たら -たらす -たりきほんがん -たりょう -たりる -たる -たると -たれる -たれんと -たろっと -たわむれる -たん -だんあつ -たんい -たんおん -たんか -たんき -たんけん -たんご -たんさく -たんさん -たんし -たんしゅく -たんじょうび -だんせい -たんそく -たんたい -たんち -だんち -たんちょう -たんてい -たんてき -たんとう -だんな -たんにん -だんねつ -たんのう -たんぴん -たんまつ -たんめい -だんれつ -だんろ -だんわ -ちあい -ちあん -ちい -ちいき -ちいさい -ちえ -ちえん -ちか -ちかい -ちきゅう -ちきん -ちけい -ちけいず -ちけん -ちこく -ちさい -ちしき -ちしりょう -ちず -ちせい -ちそう -ちたい -ちたん -ちちおや -ちつじょ -ちてき -ちてん -ちぬき -ちぬり -ちのう -ちひょう -ちへいせん -ちほう -ちまた -ちみつ -ちみどろ -ちめいど -ちゅうい -ちゅうおう -ちゅうおうく -ちゅうがっこう -ちゅうごく -ちゆりょく -ちょうさ -ちょうし -ちらし -ちらみ -ちり -ちりがみ -ちる -ちるど -ちわわ -ちんたい -ちんもく -ついか -つうか -つうじょう -つうじる -つうはん -つうわ -つえ -つかう -つかれる -つき -つく -つくね -つくる -つけね -つける -つごう -つた -つたえる -つち -つつじ -つとめる -つな -つながる -つなみ -つねづね -つの -つのる -つば -つぶ -つぶす -つぼ -つま -つまらない -つまる -つみ -つみき -つむ -つめたい -つもる -つや -つよい -つり -つるぼ -つるみく -つわもの -つわり -てあし -てあて -てあみ -ていか -ていき -ていけい -ていけつ -ていけつあつ -ていこく -ていさつ -ていし -ていしゃ -ていせい -ていたい -ていど -ていねい -ていひょう -ていへん -ていぼう -てうち -ておくれ -てき -てくび -てこ -てさぎょう -てさげ -でし -てすり -てそう -てちがい -てちょう -てつがく -てつづき -てつや -でぬかえ -てぬき -てぬぐい -てのひら -てはい -てふだ -てほどき -てほん -てま -てまえ -てまきずし -てみじか -てみやげ -てら -てらす -でる -てれび -てろ -てわけ -てわたし -でんあつ -てんい -てんいん -てんかい -てんき -てんぐ -てんけん -でんげん -てんごく -てんさい -てんすう -でんち -てんてき -てんとう -てんない -てんぷ -てんぷら -てんぼうだい -てんめつ -てんらく -てんらんかい -でんりゅう -でんりょく -でんわ -どあ -どあい -といれ -とうむぎ -とおい -とおす -とかい -とかす -ときおり -ときどき -とくい -とくてい -とくてん -とくべつ -とけい -とける -とさか -とし -としょかん -とそう -とたん -とち -とちゅう -とつぜん -とつにゅう -ととのえる -とない -となえる -となり -とのさま -とばす -とぶ -とほ -とほう -どま -とまる -とら -とり -とる -とんかつ -ない -ないか -ないかく -ないこう -ないしょ -ないす -ないせん -ないそう -ないぞう -なおす -なく -なこうど -なさけ -なし -なす -なぜ -なぞ -なたでここ -なつ -なっとう -なつやすみ -ななおし -なにごと -なにもの -なにわ -なは -なび -なふだ -なべ -なまいき -なまえ -なまみ -なみ -なみだ -なめらか -なめる -なやむ -ならぶ -なる -なれる -なわ -なわとび -なわばり -にあう -にいがた -にうけ -におい -にかい -にがて -にきび -にく -にくしみ -にくまん -にげる -にさんかたんそ -にし -にしき -にす -にせもの -にちじ -にちじょう -にちようび -にっか -にっき -にっけい -にっこう -にっさん -にっしょく -にっすう -にっせき -にってい -になう -にほん -にまめ -にもつ -にやり -にゅういん -にゅうか -にゅうし -にゅうしゃ -にゅうだん -にゅうぶ -にら -にりんしゃ -にる -にわ -にわとり -にんい -にんか -にんき -にんげん -にんしき -にんしょう -にんしん -にんずう -にんそう -にんたい -にんち -にんてい -にんにく -にんぷ -にんまり -にんむ -にんめい -にんよう -ぬう -ぬか -ぬく -ぬくもり -ぬし -ぬの -ぬま -ぬめり -ぬらす -ぬる -ぬんちゃく -ねあげ -ねいき -ねいる -ねいろ -ねぎ -ねぐせ -ねくたい -ねくら -ねこ -ねこぜ -ねこむ -ねさげ -ねすごす -ねそべる -ねつい -ねつぞう -ねったい -ねったいぎょ -ねぶそく -ねふだ -ねぼう -ねほりはほり -ねまき -ねまわし -ねみみ -ねむい -ねもと -ねらう -ねる -ねわざ -ねんいり -ねんおし -ねんかん -ねんき -ねんきん -ねんぐ -ねんざ -ねんし -ねんちゃく -ねんちょう -ねんど -ねんぴ -ねんぶつ -ねんまく -ねんまつ -ねんりき -ねんりょう -ねんれい -のいず -のう -のおづま -のがす -のきなみ -のこぎり -のこす -のせる -のぞく -のぞむ -のたまう -のちほど -のっく -のばす -のはら -のべる -のぼる -のむ -のやま -のらいぬ -のらねこ -のり -のる -のれん -のんき -ばあい -はあく -ばあさん -はい -ばいか -ばいく -はいけん -はいご -はいこう -はいし -はいしゅつ -はいしん -はいすい -はいせつ -はいせん -はいそう -はいち -ばいばい -はう -はえ -はえる -はおる -はか -ばか -はかい -はかる -はき -はく -はくしゅ -はけん -はこ -はこぶ -はさみ -はさん -はし -はしご -はしる -ばす -はせる -ぱそこん -はそん -はたん -はち -はちみつ -はっか -はっかく -はっき -はっきり -はっくつ -はっけん -はっこう -はっさん -はっしゃ -はっしん -はったつ -はっちゃく -はっちゅう -はってん -はっぴょう -はっぽう -はて -はな -はなす -はなび -はにかむ -はね -はは -はぶらし -はま -はみがき -はむ -はむかう -はめつ -はやい -はら -はらう -はり -はる -はれ -はろうぃん -はわい -はんい -はんえい -はんえん -はんおん -はんかく -はんかち -はんきょう -はんこ -はんこう -はんしゃ -はんしん -はんすう -はんたい -はんだん -ぱんち -ぱんつ -はんてい -はんてん -はんとし -はんのう -はんぱ -はんぶん -はんぺん -はんぼうき -はんめい -はんめん -はんらん -はんろん -ひいき -ひうん -ひえる -ひかく -ひかり -ひかん -ひく -ひくい -ひけつ -ひこうき -ひこく -ひざ -ぴざ -ひさい -ひさしぶり -ひさん -ひし -ひじ -ひしょ -ひじょう -ひそか -ひそむ -ひたむき -ひたる -ひつぎ -ひっこし -ひっし -ひっす -ひつぜん -ひつよう -ひてい -ひと -ひとごみ -ひな -ひなん -ひねる -ひはん -ひびく -ひひょう -ひふ -ひほう -ひま -ひまん -ひみつ -ひめ -ひめい -ひめじし -ひも -ひやけ -ひやす -ひゆ -ひよう -びょうき -ひらく -ひりつ -ひりょう -ひる -ひれい -ひろい -ひろう -ひわ -ひんかく -ひんけつ -ひんこん -ひんし -ひんしつ -ひんしゅ -ひんそう -ぴんち -ひんぱん -びんぼう -ふあん -ふいうち -ふうけい -ふうせん -ふうとう -ふうふ -ふえ -ふえる -ふおん -ふか -ふかい -ふきん -ふく -ふくざつ -ふこう -ふさい -ふざい -ふしぎ -ふじみ -ふすま -ふせい -ふせぐ -ふそく -ふた -ふたん -ふち -ふちょう -ふつう -ふっかつ -ふっき -ふっきん -ふっこく -ふとる -ふとん -ふね -ふのう -ふはい -ふひょう -ふへん -ふまん -ふみん -ふむ -ふめつ -ふめん -ふゆ -ふよう -ふりこ -ふりる -ふる -ふるい -ふろ -ふんいき -ふんか -ぶんか -ぶんぐ -ふんしつ -ぶんせき -ふんそう -へい -へいき -へいさ -へいわ -へきが -へこむ -へそ -へた -べつ -べっど -ぺっと -へび -へや -へる -へんか -へんかん -へんきゃく -へんきん -へんさい -へんたい -ほあん -ほいく -ほうほう -ほえる -ほおん -ほかん -ほきょう -ぼきん -ほくろ -ほけつ -ほけん -ほこう -ほこる -ほさ -ほし -ほしつ -ほしゅ -ほしょう -ほす -ほせい -ぼせい -ほそい -ほそく -ほたて -ほたる -ぼち -ほっきょく -ほっさ -ほったん -ほとんど -ほめる -ほる -ほんい -ほんき -ほんけ -ほんしつ -まいにち -まう -まかい -まかせる -まく -まける -まこと -まさつ -ますく -まぜる -まち -まつ -まつり -まとめ -まなぶ -まぬけ -まね -まねく -まひ -まほう -まめ -まもる -まゆげ -まよう -まる -まろやか -まわす -まわり -まんが -まんかい -まんきつ -まんぞく -みいら -みうち -みかた -みかん -みぎ -みけん -みこん -みすい -みすえる -みせ -みそ -みち -みてい -みとめる -みなみかさい -みねらる -みのう -みほん -みみ -みもと -みやげ -みらい -みりょく -みる -みわく -むえき -むえん -むかし -むく -むこ -むさぼる -むし -むすこ -むすめ -むせる -むせん -むだ -むち -むなしい -むね -むのう -むやみ -むよう -むら -むり -むりょう -むれ -むろん -もうどうけん -もえる -もぎ -もくし -もくてき -もし -もんく -もんだい -やすい -やすみ -やそう -やたい -やちん -やね -やぶる -やま -やみ -やめる -ややこしい -やよい -やり -やわらかい -ゆけつ -ゆしゅつ -ゆせん -ゆそう -ゆたか -ゆちゃく -ゆでる -ゆび -ゆびわ -ゆめ -ゆれる -よう -よかぜ -よかん -よきん -よくせい -よくぼう -よけい -よさん -よそう -よそく -よち -よてい -よどがわく -よねつ -よむ -よめ -よやく -よゆう -よる -よろこぶ -らいう -らくがき -らくご -らくさつ -らくだ -らくたん -らしんばん -らせん -らぞく -らたい -らち -らっか -らっかせい -られつ -りえき -りか -りかい -りきさく -りきせつ -りく -りくぐん -りくつ -りけん -りこう -りし -りす -りせい -りそう -りそく -りてん -りねん -りゅう -りゆう -りゅうがく -りゅうこう -りゅうし -りゅうねん -りよう -りょうかい -りょうきん -りょうしん -りょうて -りょうど -りょうほう -りょうり -りりく -りれき -りろん -りんご -るいじ -るす -れいかん -れいぎ -れいせい -れいぞうこ -れいとう -れきし -れきだい -れんあい -れんけい -れんけつ -れんこう -れんこん -れんさ -れんさい -れんさく -れんしゃ -れんしゅう -れんぞく -ろうか -ろうご -ろうじん -ろうそく -ろか -ろくが -ろこつ -ろしゅつ -ろせん -ろてん -ろめん -ろれつ -ろんぎ -ろんぱ -ろんぶん -ろんり -わじまし diff --git a/src/mnemonics/wordlists/languages/portuguese b/src/mnemonics/wordlists/languages/portuguese deleted file mode 100644 index 126fd2740..000000000 --- a/src/mnemonics/wordlists/languages/portuguese +++ /dev/null @@ -1,1626 +0,0 @@ -abaular -abdominal -abeto -abissinio -abjeto -ablucao -abnegar -abotoar -abrutalhar -absurdo -abutre -acautelar -accessorios -acetona -achocolatado -acirrar -acne -acovardar -acrostico -actinomicete -acustico -adaptavel -adeus -adivinho -adjunto -admoestar -adnominal -adotivo -adquirir -adriatico -adsorcao -adutora -advogar -aerossol -afazeres -afetuoso -afixo -afluir -afortunar -afrouxar -aftosa -afunilar -agentes -agito -aglutinar -aiatola -aimore -aino -aipo -airoso -ajeitar -ajoelhar -ajudante -ajuste -alazao -albumina -alcunha -alegria -alexandre -alforriar -alguns -alhures -alivio -almoxarife -alotropico -alpiste -alquimista -alsaciano -altura -aluviao -alvura -amazonico -ambulatorio -ametodico -amizades -amniotico -amovivel -amurada -anatomico -ancorar -anexo -anfora -aniversario -anjo -anotar -ansioso -anturio -anuviar -anverso -anzol -aonde -apaziguar -apito -aplicavel -apoteotico -aprimorar -aprumo -apto -apuros -aquoso -arauto -arbusto -arduo -aresta -arfar -arguto -aritmetico -arlequim -armisticio -aromatizar -arpoar -arquivo -arrumar -arsenio -arturiano -aruaque -arvores -asbesto -ascorbico -aspirina -asqueroso -assustar -astuto -atazanar -ativo -atletismo -atmosferico -atormentar -atroz -aturdir -audivel -auferir -augusto -aula -aumento -aurora -autuar -avatar -avexar -avizinhar -avolumar -avulso -axiomatico -azerbaijano -azimute -azoto -azulejo -bacteriologista -badulaque -baforada -baixote -bajular -balzaquiana -bambuzal -banzo -baoba -baqueta -barulho -bastonete -batuta -bauxita -bavaro -bazuca -bcrepuscular -beato -beduino -begonia -behaviorista -beisebol -belzebu -bemol -benzido -beocio -bequer -berro -besuntar -betume -bexiga -bezerro -biatlon -biboca -bicuspide -bidirecional -bienio -bifurcar -bigorna -bijuteria -bimotor -binormal -bioxido -bipolarizacao -biquini -birutice -bisturi -bituca -biunivoco -bivalve -bizarro -blasfemo -blenorreia -blindar -bloqueio -blusao -boazuda -bofete -bojudo -bolso -bombordo -bonzo -botina -boquiaberto -bostoniano -botulismo -bourbon -bovino -boximane -bravura -brevidade -britar -broxar -bruno -bruxuleio -bubonico -bucolico -buda -budista -bueiro -buffer -bugre -bujao -bumerangue -burundines -busto -butique -buzios -caatinga -cabuqui -cacunda -cafuzo -cajueiro -camurca -canudo -caquizeiro -carvoeiro -casulo -catuaba -cauterizar -cebolinha -cedula -ceifeiro -celulose -cerzir -cesto -cetro -ceus -cevar -chavena -cheroqui -chita -chovido -chuvoso -ciatico -cibernetico -cicuta -cidreira -cientistas -cifrar -cigarro -cilio -cimo -cinzento -cioso -cipriota -cirurgico -cisto -citrico -ciumento -civismo -clavicula -clero -clitoris -cluster -coaxial -cobrir -cocota -codorniz -coexistir -cogumelo -coito -colusao -compaixao -comutativo -contentamento -convulsivo -coordenativa -coquetel -correto -corvo -costureiro -cotovia -covil -cozinheiro -cretino -cristo -crivo -crotalo -cruzes -cubo -cucuia -cueiro -cuidar -cujo -cultural -cunilingua -cupula -curvo -custoso -cutucar -czarismo -dablio -dacota -dados -daguerreotipo -daiquiri -daltonismo -damista -dantesco -daquilo -darwinista -dasein -dativo -deao -debutantes -decurso -deduzir -defunto -degustar -dejeto -deltoide -demover -denunciar -deputado -deque -dervixe -desvirtuar -deturpar -deuteronomio -devoto -dextrose -dezoito -diatribe -dicotomico -didatico -dietista -difuso -digressao -diluvio -diminuto -dinheiro -dinossauro -dioxido -diplomatico -dique -dirimivel -disturbio -diurno -divulgar -dizivel -doar -dobro -docura -dodoi -doer -dogue -doloso -domo -donzela -doping -dorsal -dossie -dote -doutro -doze -dravidico -dreno -driver -dropes -druso -dubnio -ducto -dueto -dulija -dundum -duodeno -duquesa -durou -duvidoso -duzia -ebano -ebrio -eburneo -echarpe -eclusa -ecossistema -ectoplasma -ecumenismo -eczema -eden -editorial -edredom -edulcorar -efetuar -efigie -efluvio -egiptologo -egresso -egua -einsteiniano -eira -eivar -eixos -ejetar -elastomero -eldorado -elixir -elmo -eloquente -elucidativo -emaranhar -embutir -emerito -emfa -emitir -emotivo -empuxo -emulsao -enamorar -encurvar -enduro -enevoar -enfurnar -enguico -enho -enigmista -enlutar -enormidade -enpreendimento -enquanto -enriquecer -enrugar -entusiastico -enunciar -envolvimento -enxuto -enzimatico -eolico -epiteto -epoxi -epura -equivoco -erario -erbio -ereto -erguido -erisipela -ermo -erotizar -erros -erupcao -ervilha -esburacar -escutar -esfuziante -esguio -esloveno -esmurrar -esoterismo -esperanca -espirito -espurio -essencialmente -esturricar -esvoacar -etario -eterno -etiquetar -etnologo -etos -etrusco -euclidiano -euforico -eugenico -eunuco -europio -eustaquio -eutanasia -evasivo -eventualidade -evitavel -evoluir -exaustor -excursionista -exercito -exfoliado -exito -exotico -expurgo -exsudar -extrusora -exumar -fabuloso -facultativo -fado -fagulha -faixas -fajuto -faltoso -famoso -fanzine -fapesp -faquir -fartura -fastio -faturista -fausto -favorito -faxineira -fazer -fealdade -febril -fecundo -fedorento -feerico -feixe -felicidade -felipe -feltro -femur -fenotipo -fervura -festivo -feto -feudo -fevereiro -fezinha -fiasco -fibra -ficticio -fiduciario -fiesp -fifa -figurino -fijiano -filtro -finura -fiorde -fiquei -firula -fissurar -fitoteca -fivela -fixo -flavio -flexor -flibusteiro -flotilha -fluxograma -fobos -foco -fofura -foguista -foie -foliculo -fominha -fonte -forum -fosso -fotossintese -foxtrote -fraudulento -frevo -frivolo -frouxo -frutose -fuba -fucsia -fugitivo -fuinha -fujao -fulustreco -fumo -funileiro -furunculo -fustigar -futurologo -fuxico -fuzue -gabriel -gado -gaelico -gafieira -gaguejo -gaivota -gajo -galvanoplastico -gamo -ganso -garrucha -gastronomo -gatuno -gaussiano -gaviao -gaxeta -gazeteiro -gear -geiser -geminiano -generoso -genuino -geossinclinal -gerundio -gestual -getulista -gibi -gigolo -gilete -ginseng -giroscopio -glaucio -glacial -gleba -glifo -glote -glutonia -gnostico -goela -gogo -goitaca -golpista -gomo -gonzo -gorro -gostou -goticula -gourmet -governo -gozo -graxo -grevista -grito -grotesco -gruta -guaxinim -gude -gueto -guizo -guloso -gume -guru -gustativo -gustavo -gutural -habitue -haitiano -halterofilista -hamburguer -hanseniase -happening -harpista -hastear -haveres -hebreu -hectometro -hedonista -hegira -helena -helminto -hemorroidas -henrique -heptassilabo -hertziano -hesitar -heterossexual -heuristico -hexagono -hiato -hibrido -hidrostatico -hieroglifo -hifenizar -higienizar -hilario -himen -hino -hippie -hirsuto -historiografia -hitlerista -hodometro -hoje -holograma -homus -honroso -hoquei -horto -hostilizar -hotentote -huguenote -humilde -huno -hurra -hutu -iaia -ialorixa -iambico -iansa -iaque -iara -iatista -iberico -ibis -icar -iceberg -icosagono -idade -ideologo -idiotice -idoso -iemenita -iene -igarape -iglu -ignorar -igreja -iguaria -iidiche -ilativo -iletrado -ilharga -ilimitado -ilogismo -ilustrissimo -imaturo -imbuzeiro -imerso -imitavel -imovel -imputar -imutavel -inaveriguavel -incutir -induzir -inextricavel -infusao -ingua -inhame -iniquo -injusto -inning -inoxidavel -inquisitorial -insustentavel -intumescimento -inutilizavel -invulneravel -inzoneiro -iodo -iogurte -ioio -ionosfera -ioruba -iota -ipsilon -irascivel -iris -irlandes -irmaos -iroques -irrupcao -isca -isento -islandes -isotopo -isqueiro -israelita -isso -isto -iterbio -itinerario -itrio -iuane -iugoslavo -jabuticabeira -jacutinga -jade -jagunco -jainista -jaleco -jambo -jantarada -japones -jaqueta -jarro -jasmim -jato -jaula -javel -jazz -jegue -jeitoso -jejum -jenipapo -jeova -jequitiba -jersei -jesus -jetom -jiboia -jihad -jilo -jingle -jipe -jocoso -joelho -joguete -joio -jojoba -jorro -jota -joule -joviano -jubiloso -judoca -jugular -juizo -jujuba -juliano -jumento -junto -jururu -justo -juta -juventude -labutar -laguna -laico -lajota -lanterninha -lapso -laquear -lastro -lauto -lavrar -laxativo -lazer -leasing -lebre -lecionar -ledo -leguminoso -leitura -lele -lemure -lento -leonardo -leopardo -lepton -leque -leste -letreiro -leucocito -levitico -lexicologo -lhama -lhufas -liame -licoroso -lidocaina -liliputiano -limusine -linotipo -lipoproteina -liquidos -lirismo -lisura -liturgico -livros -lixo -lobulo -locutor -lodo -logro -lojista -lombriga -lontra -loop -loquaz -lorota -losango -lotus -louvor -luar -lubrificavel -lucros -lugubre -luis -luminoso -luneta -lustroso -luto -luvas -luxuriante -luzeiro -maduro -maestro -mafioso -magro -maiuscula -majoritario -malvisto -mamute -manutencao -mapoteca -maquinista -marzipa -masturbar -matuto -mausoleu -mavioso -maxixe -mazurca -meandro -mecha -medusa -mefistofelico -megera -meirinho -melro -memorizar -menu -mequetrefe -mertiolate -mestria -metroviario -mexilhao -mezanino -miau -microssegundo -midia -migratorio -mimosa -minuto -miosotis -mirtilo -misturar -mitzvah -miudos -mixuruca -mnemonico -moagem -mobilizar -modulo -moer -mofo -mogno -moita -molusco -monumento -moqueca -morubixaba -mostruario -motriz -mouse -movivel -mozarela -muarra -muculmano -mudo -mugir -muitos -mumunha -munir -muon -muquira -murros -musselina -nacoes -nado -naftalina -nago -naipe -naja -nalgum -namoro -nanquim -napolitano -naquilo -nascimento -nautilo -navios -nazista -nebuloso -nectarina -nefrologo -negus -nelore -nenufar -nepotismo -nervura -neste -netuno -neutron -nevoeiro -newtoniano -nexo -nhenhenhem -nhoque -nigeriano -niilista -ninho -niobio -niponico -niquelar -nirvana -nisto -nitroglicerina -nivoso -nobreza -nocivo -noel -nogueira -noivo -nojo -nominativo -nonuplo -noruegues -nostalgico -noturno -nouveau -nuanca -nublar -nucleotideo -nudista -nulo -numismatico -nunquinha -nupcias -nutritivo -nuvens -oasis -obcecar -obeso -obituario -objetos -oblongo -obnoxio -obrigatorio -obstruir -obtuso -obus -obvio -ocaso -occipital -oceanografo -ocioso -oclusivo -ocorrer -ocre -octogono -odalisca -odisseia -odorifico -oersted -oeste -ofertar -ofidio -oftalmologo -ogiva -ogum -oigale -oitavo -oitocentos -ojeriza -olaria -oleoso -olfato -olhos -oliveira -olmo -olor -olvidavel -ombudsman -omeleteira -omitir -omoplata -onanismo -ondular -oneroso -onomatopeico -ontologico -onus -onze -opalescente -opcional -operistico -opio -oposto -oprobrio -optometrista -opusculo -oratorio -orbital -orcar -orfao -orixa -orla -ornitologo -orquidea -ortorrombico -orvalho -osculo -osmotico -ossudo -ostrogodo -otario -otite -ouro -ousar -outubro -ouvir -ovario -overnight -oviparo -ovni -ovoviviparo -ovulo -oxala -oxente -oxiuro -oxossi -ozonizar -paciente -pactuar -padronizar -paete -pagodeiro -paixao -pajem -paludismo -pampas -panturrilha -papudo -paquistanes -pastoso -patua -paulo -pauzinhos -pavoroso -paxa -pazes -peao -pecuniario -pedunculo -pegaso -peixinho -pejorativo -pelvis -penuria -pequno -petunia -pezada -piauiense -pictorico -pierro -pigmeu -pijama -pilulas -pimpolho -pintura -piorar -pipocar -piqueteiro -pirulito -pistoleiro -pituitaria -pivotar -pixote -pizzaria -plistoceno -plotar -pluviometrico -pneumonico -poco -podridao -poetisa -pogrom -pois -polvorosa -pomposo -ponderado -pontudo -populoso -poquer -porvir -posudo -potro -pouso -povoar -prazo -prezar -privilegios -proximo -prussiano -pseudopode -psoriase -pterossauros -ptialina -ptolemaico -pudor -pueril -pufe -pugilista -puir -pujante -pulverizar -pumba -punk -purulento -pustula -putsch -puxe -quatrocentos -quetzal -quixotesco -quotizavel -rabujice -racista -radonio -rafia -ragu -rajado -ralo -rampeiro -ranzinza -raptor -raquitismo -raro -rasurar -ratoeira -ravioli -razoavel -reavivar -rebuscar -recusavel -reduzivel -reexposicao -refutavel -regurgitar -reivindicavel -rejuvenescimento -relva -remuneravel -renunciar -reorientar -repuxo -requisito -resumo -returno -reutilizar -revolvido -rezonear -riacho -ribossomo -ricota -ridiculo -rifle -rigoroso -rijo -rimel -rins -rios -riqueza -riquixa -rissole -ritualistico -rivalizar -rixa -robusto -rococo -rodoviario -roer -rogo -rojao -rolo -rompimento -ronronar -roqueiro -rorqual -rosto -rotundo -rouxinol -roxo -royal -ruas -rucula -rudimentos -ruela -rufo -rugoso -ruivo -rule -rumoroso -runico -ruptura -rural -rustico -rutilar -saariano -sabujo -sacudir -sadomasoquista -safra -sagui -sais -samurai -santuario -sapo -saquear -sartriano -saturno -saude -sauva -saveiro -saxofonista -sazonal -scherzo -script -seara -seborreia -secura -seduzir -sefardim -seguro -seja -selvas -sempre -senzala -sepultura -sequoia -sestercio -setuplo -seus -seviciar -sezonismo -shalom -siames -sibilante -sicrano -sidra -sifilitico -signos -silvo -simultaneo -sinusite -sionista -sirio -sisudo -situar -sivan -slide -slogan -soar -sobrio -socratico -sodomizar -soerguer -software -sogro -soja -solver -somente -sonso -sopro -soquete -sorveteiro -sossego -soturno -sousafone -sovinice -sozinho -suavizar -subverter -sucursal -sudoriparo -sufragio -sugestoes -suite -sujo -sultao -sumula -suntuoso -suor -supurar -suruba -susto -suturar -suvenir -tabuleta -taco -tadjique -tafeta -tagarelice -taitiano -talvez -tampouco -tanzaniano -taoista -tapume -taquion -tarugo -tascar -tatuar -tautologico -tavola -taxionomista -tchecoslovaco -teatrologo -tectonismo -tedioso -teflon -tegumento -teixo -telurio -temporas -tenue -teosofico -tepido -tequila -terrorista -testosterona -tetrico -teutonico -teve -texugo -tiara -tibia -tiete -tifoide -tigresa -tijolo -tilintar -timpano -tintureiro -tiquete -tiroteio -tisico -titulos -tive -toar -toboga -tofu -togoles -toicinho -tolueno -tomografo -tontura -toponimo -toquio -torvelinho -tostar -toto -touro -toxina -trazer -trezentos -trivialidade -trovoar -truta -tuaregue -tubular -tucano -tudo -tufo -tuiste -tulipa -tumultuoso -tunisino -tupiniquim -turvo -tutu -ucraniano -udenista -ufanista -ufologo -ugaritico -uiste -uivo -ulceroso -ulema -ultravioleta -umbilical -umero -umido -umlaut -unanimidade -unesco -ungulado -unheiro -univoco -untuoso -urano -urbano -urdir -uretra -urgente -urinol -urna -urologo -urro -ursulina -urtiga -urupe -usavel -usbeque -usei -usineiro -usurpar -utero -utilizar -utopico -uvular -uxoricidio -vacuo -vadio -vaguear -vaivem -valvula -vampiro -vantajoso -vaporoso -vaquinha -varziano -vasto -vaticinio -vaudeville -vazio -veado -vedico -veemente -vegetativo -veio -veja -veludo -venusiano -verdade -verve -vestuario -vetusto -vexatorio -vezes -viavel -vibratorio -victor -vicunha -vidros -vietnamita -vigoroso -vilipendiar -vime -vintem -violoncelo -viquingue -virus -visualizar -vituperio -viuvo -vivo -vizir -voar -vociferar -vodu -vogar -voile -volver -vomito -vontade -vortice -vosso -voto -vovozinha -voyeuse -vozes -vulva -vupt -western -xadrez -xale -xampu -xango -xarope -xaual -xavante -xaxim -xenonio -xepa -xerox -xicara -xifopago -xiita -xilogravura -xinxim -xistoso -xixi -xodo -xogum -xucro -zabumba -zagueiro -zambiano -zanzar -zarpar -zebu -zefiro -zeloso -zenite -zumbi diff --git a/src/mnemonics/wordlists/languages/spanish b/src/mnemonics/wordlists/languages/spanish deleted file mode 100644 index 29f5b3a73..000000000 --- a/src/mnemonics/wordlists/languages/spanish +++ /dev/null @@ -1,2049 +0,0 @@ -# Originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin -ábaco -abdomen -abeja -abierto -abogado -abono -aborto -abrazo -abrir -abuelo -abuso -acabar -academia -acceso -acción -aceite -acelga -acento -aceptar -ácido -aclarar -acné -acoger -acoso -activo -acto -actriz -actuar -acudir -acuerdo -acusar -adicto -admitir -adoptar -adorno -aduana -adulto -aéreo -afectar -afición -afinar -afirmar -ágil -agitar -agonía -agosto -agotar -agregar -agrio -agua -agudo -águila -aguja -ahogo -ahorro -aire -aislar -ajedrez -ajeno -ajuste -alacrán -alambre -alarma -alba -álbum -alcalde -aldea -alegre -alejar -alerta -aleta -alfiler -alga -algodón -aliado -aliento -alivio -alma -almeja -almíbar -altar -alteza -altivo -alto -altura -alumno -alzar -amable -amante -amapola -amargo -amasar -ámbar -ámbito -ameno -amigo -amistad -amor -amparo -amplio -ancho -anciano -ancla -andar -andén -anemia -ángulo -anillo -ánimo -anís -anotar -antena -antiguo -antojo -anual -anular -anuncio -añadir -añejo -año -apagar -aparato -apetito -apio -aplicar -apodo -aporte -apoyo -aprender -aprobar -apuesta -apuro -arado -araña -arar -árbitro -árbol -arbusto -archivo -arco -arder -ardilla -arduo -área -árido -aries -armonía -arnés -aroma -arpa -arpón -arreglo -arroz -arruga -arte -artista -asa -asado -asalto -ascenso -asegurar -aseo -asesor -asiento -asilo -asistir -asno -asombro -áspero -astilla -astro -astuto -asumir -asunto -atajo -ataque -atar -atento -ateo -ático -atleta -átomo -atraer -atroz -atún -audaz -audio -auge -aula -aumento -ausente -autor -aval -avance -avaro -ave -avellana -avena -avestruz -avión -aviso -ayer -ayuda -ayuno -azafrán -azar -azote -azúcar -azufre -azul -baba -babor -bache -bahía -baile -bajar -balanza -balcón -balde -bambú -banco -banda -baño -barba -barco -barniz -barro -báscula -bastón -basura -batalla -batería -batir -batuta -baúl -bazar -bebé -bebida -bello -besar -beso -bestia -bicho -bien -bingo -blanco -bloque -blusa -boa -bobina -bobo -boca -bocina -boda -bodega -boina -bola -bolero -bolsa -bomba -bondad -bonito -bono -bonsái -borde -borrar -bosque -bote -botín -bóveda -bozal -bravo -brazo -brecha -breve -brillo -brinco -brisa -broca -broma -bronce -brote -bruja -brusco -bruto -buceo -bucle -bueno -buey -bufanda -bufón -búho -buitre -bulto -burbuja -burla -burro -buscar -butaca -buzón -caballo -cabeza -cabina -cabra -cacao -cadáver -cadena -caer -café -caída -caimán -caja -cajón -cal -calamar -calcio -caldo -calidad -calle -calma -calor -calvo -cama -cambio -camello -camino -campo -cáncer -candil -canela -canguro -canica -canto -caña -cañón -caoba -caos -capaz -capitán -capote -captar -capucha -cara -carbón -cárcel -careta -carga -cariño -carne -carpeta -carro -carta -casa -casco -casero -caspa -castor -catorce -catre -caudal -causa -cazo -cebolla -ceder -cedro -celda -célebre -celoso -célula -cemento -ceniza -centro -cerca -cerdo -cereza -cero -cerrar -certeza -césped -cetro -chacal -chaleco -champú -chancla -chapa -charla -chico -chiste -chivo -choque -choza -chuleta -chupar -ciclón -ciego -cielo -cien -cierto -cifra -cigarro -cima -cinco -cine -cinta -ciprés -circo -ciruela -cisne -cita -ciudad -clamor -clan -claro -clase -clave -cliente -clima -clínica -cobre -cocción -cochino -cocina -coco -código -codo -cofre -coger -cohete -cojín -cojo -cola -colcha -colegio -colgar -colina -collar -colmo -columna -combate -comer -comida -cómodo -compra -conde -conejo -conga -conocer -consejo -contar -copa -copia -corazón -corbata -corcho -cordón -corona -correr -coser -cosmos -costa -cráneo -cráter -crear -crecer -creído -crema -cría -crimen -cripta -crisis -cromo -crónica -croqueta -crudo -cruz -cuadro -cuarto -cuatro -cubo -cubrir -cuchara -cuello -cuento -cuerda -cuesta -cueva -cuidar -culebra -culpa -culto -cumbre -cumplir -cuna -cuneta -cuota -cupón -cúpula -curar -curioso -curso -curva -cutis -dama -danza -dar -dardo -dátil -deber -débil -década -decir -dedo -defensa -definir -dejar -delfín -delgado -delito -demora -denso -dental -deporte -derecho -derrota -desayuno -deseo -desfile -desnudo -destino -desvío -detalle -detener -deuda -día -diablo -diadema -diamante -diana -diario -dibujo -dictar -diente -dieta -diez -difícil -digno -dilema -diluir -dinero -directo -dirigir -disco -diseño -disfraz -diva -divino -doble -doce -dolor -domingo -don -donar -dorado -dormir -dorso -dos -dosis -dragón -droga -ducha -duda -duelo -dueño -dulce -dúo -duque -durar -dureza -duro -ébano -ebrio -echar -eco -ecuador -edad -edición -edificio -editor -educar -efecto -eficaz -eje -ejemplo -elefante -elegir -elemento -elevar -elipse -élite -elixir -elogio -eludir -embudo -emitir -emoción -empate -empeño -empleo -empresa -enano -encargo -enchufe -encía -enemigo -enero -enfado -enfermo -engaño -enigma -enlace -enorme -enredo -ensayo -enseñar -entero -entrar -envase -envío -época -equipo -erizo -escala -escena -escolar -escribir -escudo -esencia -esfera -esfuerzo -espada -espejo -espía -esposa -espuma -esquí -estar -este -estilo -estufa -etapa -eterno -ética -etnia -evadir -evaluar -evento -evitar -exacto -examen -exceso -excusa -exento -exigir -exilio -existir -éxito -experto -explicar -exponer -extremo -fábrica -fábula -fachada -fácil -factor -faena -faja -falda -fallo -falso -faltar -fama -familia -famoso -faraón -farmacia -farol -farsa -fase -fatiga -fauna -favor -fax -febrero -fecha -feliz -feo -feria -feroz -fértil -fervor -festín -fiable -fianza -fiar -fibra -ficción -ficha -fideo -fiebre -fiel -fiera -fiesta -figura -fijar -fijo -fila -filete -filial -filtro -fin -finca -fingir -finito -firma -flaco -flauta -flecha -flor -flota -fluir -flujo -flúor -fobia -foca -fogata -fogón -folio -folleto -fondo -forma -forro -fortuna -forzar -fosa -foto -fracaso -frágil -franja -frase -fraude -freír -freno -fresa -frío -frito -fruta -fuego -fuente -fuerza -fuga -fumar -función -funda -furgón -furia -fusil -fútbol -futuro -gacela -gafas -gaita -gajo -gala -galería -gallo -gamba -ganar -gancho -ganga -ganso -garaje -garza -gasolina -gastar -gato -gavilán -gemelo -gemir -gen -género -genio -gente -geranio -gerente -germen -gesto -gigante -gimnasio -girar -giro -glaciar -globo -gloria -gol -golfo -goloso -golpe -goma -gordo -gorila -gorra -gota -goteo -gozar -grada -gráfico -grano -grasa -gratis -grave -grieta -grillo -gripe -gris -grito -grosor -grúa -grueso -grumo -grupo -guante -guapo -guardia -guerra -guía -guiño -guion -guiso -guitarra -gusano -gustar -haber -hábil -hablar -hacer -hacha -hada -hallar -hamaca -harina -haz -hazaña -hebilla -hebra -hecho -helado -helio -hembra -herir -hermano -héroe -hervir -hielo -hierro -hígado -higiene -hijo -himno -historia -hocico -hogar -hoguera -hoja -hombre -hongo -honor -honra -hora -hormiga -horno -hostil -hoyo -hueco -huelga -huerta -hueso -huevo -huida -huir -humano -húmedo -humilde -humo -hundir -huracán -hurto -icono -ideal -idioma -ídolo -iglesia -iglú -igual -ilegal -ilusión -imagen -imán -imitar -impar -imperio -imponer -impulso -incapaz -índice -inerte -infiel -informe -ingenio -inicio -inmenso -inmune -innato -insecto -instante -interés -íntimo -intuir -inútil -invierno -ira -iris -ironía -isla -islote -jabalí -jabón -jamón -jarabe -jardín -jarra -jaula -jazmín -jefe -jeringa -jinete -jornada -joroba -joven -joya -juerga -jueves -juez -jugador -jugo -juguete -juicio -junco -jungla -junio -juntar -júpiter -jurar -justo -juvenil -juzgar -kilo -koala -labio -lacio -lacra -lado -ladrón -lagarto -lágrima -laguna -laico -lamer -lámina -lámpara -lana -lancha -langosta -lanza -lápiz -largo -larva -lástima -lata -látex -latir -laurel -lavar -lazo -leal -lección -leche -lector -leer -legión -legumbre -lejano -lengua -lento -leña -león -leopardo -lesión -letal -letra -leve -leyenda -libertad -libro -licor -líder -lidiar -lienzo -liga -ligero -lima -límite -limón -limpio -lince -lindo -línea -lingote -lino -linterna -líquido -liso -lista -litera -litio -litro -llaga -llama -llanto -llave -llegar -llenar -llevar -llorar -llover -lluvia -lobo -loción -loco -locura -lógica -logro -lombriz -lomo -lonja -lote -lucha -lucir -lugar -lujo -luna -lunes -lupa -lustro -luto -luz -maceta -macho -madera -madre -maduro -maestro -mafia -magia -mago -maíz -maldad -maleta -malla -malo -mamá -mambo -mamut -manco -mando -manejar -manga -maniquí -manjar -mano -manso -manta -mañana -mapa -máquina -mar -marco -marea -marfil -margen -marido -mármol -marrón -martes -marzo -masa -máscara -masivo -matar -materia -matiz -matriz -máximo -mayor -mazorca -mecha -medalla -medio -médula -mejilla -mejor -melena -melón -memoria -menor -mensaje -mente -menú -mercado -merengue -mérito -mes -mesón -meta -meter -método -metro -mezcla -miedo -miel -miembro -miga -mil -milagro -militar -millón -mimo -mina -minero -mínimo -minuto -miope -mirar -misa -miseria -misil -mismo -mitad -mito -mochila -moción -moda -modelo -moho -mojar -molde -moler -molino -momento -momia -monarca -moneda -monja -monto -moño -morada -morder -moreno -morir -morro -morsa -mortal -mosca -mostrar -motivo -mover -móvil -mozo -mucho -mudar -mueble -muela -muerte -muestra -mugre -mujer -mula -muleta -multa -mundo -muñeca -mural -muro -músculo -museo -musgo -música -muslo -nácar -nación -nadar -naipe -naranja -nariz -narrar -nasal -natal -nativo -natural -náusea -naval -nave -navidad -necio -néctar -negar -negocio -negro -neón -nervio -neto -neutro -nevar -nevera -nicho -nido -niebla -nieto -niñez -niño -nítido -nivel -nobleza -noche -nómina -noria -norma -norte -nota -noticia -novato -novela -novio -nube -nuca -núcleo -nudillo -nudo -nuera -nueve -nuez -nulo -número -nutria -oasis -obeso -obispo -objeto -obra -obrero -observar -obtener -obvio -oca -ocaso -océano -ochenta -ocho -ocio -ocre -octavo -octubre -oculto -ocupar -ocurrir -odiar -odio -odisea -oeste -ofensa -oferta -oficio -ofrecer -ogro -oído -oír -ojo -ola -oleada -olfato -olivo -olla -olmo -olor -olvido -ombligo -onda -onza -opaco -opción -ópera -opinar -oponer -optar -óptica -opuesto -oración -orador -oral -órbita -orca -orden -oreja -órgano -orgía -orgullo -oriente -origen -orilla -oro -orquesta -oruga -osadía -oscuro -osezno -oso -ostra -otoño -otro -oveja -óvulo -óxido -oxígeno -oyente -ozono -pacto -padre -paella -página -pago -país -pájaro -palabra -palco -paleta -pálido -palma -paloma -palpar -pan -panal -pánico -pantera -pañuelo -papá -papel -papilla -paquete -parar -parcela -pared -parir -paro -párpado -parque -párrafo -parte -pasar -paseo -pasión -paso -pasta -pata -patio -patria -pausa -pauta -pavo -payaso -peatón -pecado -pecera -pecho -pedal -pedir -pegar -peine -pelar -peldaño -pelea -peligro -pellejo -pelo -peluca -pena -pensar -peñón -peón -peor -pepino -pequeño -pera -percha -perder -pereza -perfil -perico -perla -permiso -perro -persona -pesa -pesca -pésimo -pestaña -pétalo -petróleo -pez -pezuña -picar -pichón -pie -piedra -pierna -pieza -pijama -pilar -piloto -pimienta -pino -pintor -pinza -piña -piojo -pipa -pirata -pisar -piscina -piso -pista -pitón -pizca -placa -plan -plata -playa -plaza -pleito -pleno -plomo -pluma -plural -pobre -poco -poder -podio -poema -poesía -poeta -polen -policía -pollo -polvo -pomada -pomelo -pomo -pompa -poner -porción -portal -posada -poseer -posible -poste -potencia -potro -pozo -prado -precoz -pregunta -premio -prensa -preso -previo -primo -príncipe -prisión -privar -proa -probar -proceso -producto -proeza -profesor -programa -prole -promesa -pronto -propio -próximo -prueba -público -puchero -pudor -pueblo -puerta -puesto -pulga -pulir -pulmón -pulpo -pulso -puma -punto -puñal -puño -pupa -pupila -puré -quedar -queja -quemar -querer -queso -quieto -química -quince -quitar -rábano -rabia -rabo -ración -radical -raíz -rama -rampa -rancho -rango -rapaz -rápido -rapto -rasgo -raspa -rato -rayo -raza -razón -reacción -realidad -rebaño -rebote -recaer -receta -rechazo -recoger -recreo -recto -recurso -red -redondo -reducir -reflejo -reforma -refrán -refugio -regalo -regir -regla -regreso -rehén -reino -reír -reja -relato -relevo -relieve -relleno -reloj -remar -remedio -remo -rencor -rendir -renta -reparto -repetir -reposo -reptil -res -rescate -resina -respeto -resto -resumen -retiro -retorno -retrato -reunir -revés -revista -rey -rezar -rico -riego -rienda -riesgo -rifa -rígido -rigor -rincón -riñón -río -riqueza -risa -ritmo -rito -rizo -roble -roce -rociar -rodar -rodeo -rodilla -roer -rojizo -rojo -romero -romper -ron -ronco -ronda -ropa -ropero -rosa -rosca -rostro -rotar -rubí -rubor -rudo -rueda -rugir -ruido -ruina -ruleta -rulo -rumbo -rumor -ruptura -ruta -rutina -sábado -saber -sabio -sable -sacar -sagaz -sagrado -sala -saldo -salero -salir -salmón -salón -salsa -salto -salud -salvar -samba -sanción -sandía -sanear -sangre -sanidad -sano -santo -sapo -saque -sardina -sartén -sastre -satán -sauna -saxofón -sección -seco -secreto -secta -sed -seguir -seis -sello -selva -semana -semilla -senda -sensor -señal -señor -separar -sepia -sequía -ser -serie -sermón -servir -sesenta -sesión -seta -setenta -severo -sexo -sexto -sidra -siesta -siete -siglo -signo -sílaba -silbar -silencio -silla -símbolo -simio -sirena -sistema -sitio -situar -sobre -socio -sodio -sol -solapa -soldado -soledad -sólido -soltar -solución -sombra -sondeo -sonido -sonoro -sonrisa -sopa -soplar -soporte -sordo -sorpresa -sorteo -sostén -sótano -suave -subir -suceso -sudor -suegra -suelo -sueño -suerte -sufrir -sujeto -sultán -sumar -superar -suplir -suponer -supremo -sur -surco -sureño -surgir -susto -sutil -tabaco -tabique -tabla -tabú -taco -tacto -tajo -talar -talco -talento -talla -talón -tamaño -tambor -tango -tanque -tapa -tapete -tapia -tapón -taquilla -tarde -tarea -tarifa -tarjeta -tarot -tarro -tarta -tatuaje -tauro -taza -tazón -teatro -techo -tecla -técnica -tejado -tejer -tejido -tela -teléfono -tema -temor -templo -tenaz -tender -tener -tenis -tenso -teoría -terapia -terco -término -ternura -terror -tesis -tesoro -testigo -tetera -texto -tez -tibio -tiburón -tiempo -tienda -tierra -tieso -tigre -tijera -tilde -timbre -tímido -timo -tinta -tío -típico -tipo -tira -tirón -titán -títere -título -tiza -toalla -tobillo -tocar -tocino -todo -toga -toldo -tomar -tono -tonto -topar -tope -toque -tórax -torero -tormenta -torneo -toro -torpedo -torre -torso -tortuga -tos -tosco -toser -tóxico -trabajo -tractor -traer -tráfico -trago -traje -tramo -trance -trato -trauma -trazar -trébol -tregua -treinta -tren -trepar -tres -tribu -trigo -tripa -triste -triunfo -trofeo -trompa -tronco -tropa -trote -trozo -truco -trueno -trufa -tubería -tubo -tuerto -tumba -tumor -túnel -túnica -turbina -turismo -turno -tutor -ubicar -úlcera -umbral -unidad -unir -universo -uno -untar -uña -urbano -urbe -urgente -urna -usar -usuario -útil -utopía -uva -vaca -vacío -vacuna -vagar -vago -vaina -vajilla -vale -válido -valle -valor -válvula -vampiro -vara -variar -varón -vaso -vecino -vector -vehículo -veinte -vejez -vela -velero -veloz -vena -vencer -venda -veneno -vengar -venir -venta -venus -ver -verano -verbo -verde -vereda -verja -verso -verter -vía -viaje -vibrar -vicio -víctima -vida -vídeo -vidrio -viejo -viernes -vigor -vil -villa -vinagre -vino -viñedo -violín -viral -virgo -virtud -visor -víspera -vista -vitamina -viudo -vivaz -vivero -vivir -vivo -volcán -volumen -volver -voraz -votar -voto -voz -vuelo -vulgar -yacer -yate -yegua -yema -yerno -yeso -yodo -yoga -yogur -zafiro -zanja -zapato -zarza -zona -zorro -zumo -zurdo diff --git a/src/mnemonics/wordlists/old-word-list b/src/mnemonics/wordlists/old-word-list deleted file mode 100644 index a5184a9ce..000000000 --- a/src/mnemonics/wordlists/old-word-list +++ /dev/null @@ -1,1626 +0,0 @@ -like -just -love -know -never -want -time -out -there -make -look -eye -down -only -think -heart -back -then -into -about -more -away -still -them -take -thing -even -through -long -always -world -too -friend -tell -try -hand -thought -over -here -other -need -smile -again -much -cry -been -night -ever -little -said -end -some -those -around -mind -people -girl -leave -dream -left -turn -myself -give -nothing -really -off -before -something -find -walk -wish -good -once -place -ask -stop -keep -watch -seem -everything -wait -got -yet -made -remember -start -alone -run -hope -maybe -believe -body -hate -after -close -talk -stand -own -each -hurt -help -home -god -soul -new -many -two -inside -should -true -first -fear -mean -better -play -another -gone -change -use -wonder -someone -hair -cold -open -best -any -behind -happen -water -dark -laugh -stay -forever -name -work -show -sky -break -came -deep -door -put -black -together -upon -happy -such -great -white -matter -fill -past -please -burn -cause -enough -touch -moment -soon -voice -scream -anything -stare -sound -red -everyone -hide -kiss -truth -death -beautiful -mine -blood -broken -very -pass -next -forget -tree -wrong -air -mother -understand -lip -hit -wall -memory -sleep -free -high -realize -school -might -skin -sweet -perfect -blue -kill -breath -dance -against -fly -between -grow -strong -under -listen -bring -sometimes -speak -pull -person -become -family -begin -ground -real -small -father -sure -feet -rest -young -finally -land -across -today -different -guy -line -fire -reason -reach -second -slowly -write -eat -smell -mouth -step -learn -three -floor -promise -breathe -darkness -push -earth -guess -save -song -above -along -both -color -house -almost -sorry -anymore -brother -okay -dear -game -fade -already -apart -warm -beauty -heard -notice -question -shine -began -piece -whole -shadow -secret -street -within -finger -point -morning -whisper -child -moon -green -story -glass -kid -silence -since -soft -yourself -empty -shall -angel -answer -baby -bright -dad -path -worry -hour -drop -follow -power -war -half -flow -heaven -act -chance -fact -least -tired -children -near -quite -afraid -rise -sea -taste -window -cover -nice -trust -lot -sad -cool -force -peace -return -blind -easy -ready -roll -rose -drive -held -music -beneath -hang -mom -paint -emotion -quiet -clear -cloud -few -pretty -bird -outside -paper -picture -front -rock -simple -anyone -meant -reality -road -sense -waste -bit -leaf -thank -happiness -meet -men -smoke -truly -decide -self -age -book -form -alive -carry -escape -damn -instead -able -ice -minute -throw -catch -leg -ring -course -goodbye -lead -poem -sick -corner -desire -known -problem -remind -shoulder -suppose -toward -wave -drink -jump -woman -pretend -sister -week -human -joy -crack -grey -pray -surprise -dry -knee -less -search -bleed -caught -clean -embrace -future -king -son -sorrow -chest -hug -remain -sat -worth -blow -daddy -final -parent -tight -also -create -lonely -safe -cross -dress -evil -silent -bone -fate -perhaps -anger -class -scar -snow -tiny -tonight -continue -control -dog -edge -mirror -month -suddenly -comfort -given -loud -quickly -gaze -plan -rush -stone -town -battle -ignore -spirit -stood -stupid -yours -brown -build -dust -hey -kept -pay -phone -twist -although -ball -beyond -hidden -nose -taken -fail -float -pure -somehow -wash -wrap -angry -cheek -creature -forgotten -heat -rip -single -space -special -weak -whatever -yell -anyway -blame -job -choose -country -curse -drift -echo -figure -grew -laughter -neck -suffer -worse -yeah -disappear -foot -forward -knife -mess -somewhere -stomach -storm -beg -idea -lift -offer -breeze -field -five -often -simply -stuck -win -allow -confuse -enjoy -except -flower -seek -strength -calm -grin -gun -heavy -hill -large -ocean -shoe -sigh -straight -summer -tongue -accept -crazy -everyday -exist -grass -mistake -sent -shut -surround -table -ache -brain -destroy -heal -nature -shout -sign -stain -choice -doubt -glance -glow -mountain -queen -stranger -throat -tomorrow -city -either -fish -flame -rather -shape -spin -spread -ash -distance -finish -image -imagine -important -nobody -shatter -warmth -became -feed -flesh -funny -lust -shirt -trouble -yellow -attention -bare -bite -money -protect -amaze -appear -born -choke -completely -daughter -fresh -friendship -gentle -probably -six -deserve -expect -grab -middle -nightmare -river -thousand -weight -worst -wound -barely -bottle -cream -regret -relationship -stick -test -crush -endless -fault -itself -rule -spill -art -circle -join -kick -mask -master -passion -quick -raise -smooth -unless -wander -actually -broke -chair -deal -favorite -gift -note -number -sweat -box -chill -clothes -lady -mark -park -poor -sadness -tie -animal -belong -brush -consume -dawn -forest -innocent -pen -pride -stream -thick -clay -complete -count -draw -faith -press -silver -struggle -surface -taught -teach -wet -bless -chase -climb -enter -letter -melt -metal -movie -stretch -swing -vision -wife -beside -crash -forgot -guide -haunt -joke -knock -plant -pour -prove -reveal -steal -stuff -trip -wood -wrist -bother -bottom -crawl -crowd -fix -forgive -frown -grace -loose -lucky -party -release -surely -survive -teacher -gently -grip -speed -suicide -travel -treat -vein -written -cage -chain -conversation -date -enemy -however -interest -million -page -pink -proud -sway -themselves -winter -church -cruel -cup -demon -experience -freedom -pair -pop -purpose -respect -shoot -softly -state -strange -bar -birth -curl -dirt -excuse -lord -lovely -monster -order -pack -pants -pool -scene -seven -shame -slide -ugly -among -blade -blonde -closet -creek -deny -drug -eternity -gain -grade -handle -key -linger -pale -prepare -swallow -swim -tremble -wheel -won -cast -cigarette -claim -college -direction -dirty -gather -ghost -hundred -loss -lung -orange -present -swear -swirl -twice -wild -bitter -blanket -doctor -everywhere -flash -grown -knowledge -numb -pressure -radio -repeat -ruin -spend -unknown -buy -clock -devil -early -false -fantasy -pound -precious -refuse -sheet -teeth -welcome -add -ahead -block -bury -caress -content -depth -despite -distant -marry -purple -threw -whenever -bomb -dull -easily -grasp -hospital -innocence -normal -receive -reply -rhyme -shade -someday -sword -toe -visit -asleep -bought -center -consider -flat -hero -history -ink -insane -muscle -mystery -pocket -reflection -shove -silently -smart -soldier -spot -stress -train -type -view -whether -bus -energy -explain -holy -hunger -inch -magic -mix -noise -nowhere -prayer -presence -shock -snap -spider -study -thunder -trail -admit -agree -bag -bang -bound -butterfly -cute -exactly -explode -familiar -fold -further -pierce -reflect -scent -selfish -sharp -sink -spring -stumble -universe -weep -women -wonderful -action -ancient -attempt -avoid -birthday -branch -chocolate -core -depress -drunk -especially -focus -fruit -honest -match -palm -perfectly -pillow -pity -poison -roar -shift -slightly -thump -truck -tune -twenty -unable -wipe -wrote -coat -constant -dinner -drove -egg -eternal -flight -flood -frame -freak -gasp -glad -hollow -motion -peer -plastic -root -screen -season -sting -strike -team -unlike -victim -volume -warn -weird -attack -await -awake -built -charm -crave -despair -fought -grant -grief -horse -limit -message -ripple -sanity -scatter -serve -split -string -trick -annoy -blur -boat -brave -clearly -cling -connect -fist -forth -imagination -iron -jock -judge -lesson -milk -misery -nail -naked -ourselves -poet -possible -princess -sail -size -snake -society -stroke -torture -toss -trace -wise -bloom -bullet -cell -check -cost -darling -during -footstep -fragile -hallway -hardly -horizon -invisible -journey -midnight -mud -nod -pause -relax -shiver -sudden -value -youth -abuse -admire -blink -breast -bruise -constantly -couple -creep -curve -difference -dumb -emptiness -gotta -honor -plain -planet -recall -rub -ship -slam -soar -somebody -tightly -weather -adore -approach -bond -bread -burst -candle -coffee -cousin -crime -desert -flutter -frozen -grand -heel -hello -language -level -movement -pleasure -powerful -random -rhythm -settle -silly -slap -sort -spoken -steel -threaten -tumble -upset -aside -awkward -bee -blank -board -button -card -carefully -complain -crap -deeply -discover -drag -dread -effort -entire -fairy -giant -gotten -greet -illusion -jeans -leap -liquid -march -mend -nervous -nine -replace -rope -spine -stole -terror -accident -apple -balance -boom -childhood -collect -demand -depression -eventually -faint -glare -goal -group -honey -kitchen -laid -limb -machine -mere -mold -murder -nerve -painful -poetry -prince -rabbit -shelter -shore -shower -soothe -stair -steady -sunlight -tangle -tease -treasure -uncle -begun -bliss -canvas -cheer -claw -clutch -commit -crimson -crystal -delight -doll -existence -express -fog -football -gay -goose -guard -hatred -illuminate -mass -math -mourn -rich -rough -skip -stir -student -style -support -thorn -tough -yard -yearn -yesterday -advice -appreciate -autumn -bank -beam -bowl -capture -carve -collapse -confusion -creation -dove -feather -girlfriend -glory -government -harsh -hop -inner -loser -moonlight -neighbor -neither -peach -pig -praise -screw -shield -shimmer -sneak -stab -subject -throughout -thrown -tower -twirl -wow -army -arrive -bathroom -bump -cease -cookie -couch -courage -dim -guilt -howl -hum -husband -insult -led -lunch -mock -mostly -natural -nearly -needle -nerd -peaceful -perfection -pile -price -remove -roam -sanctuary -serious -shiny -shook -sob -stolen -tap -vain -void -warrior -wrinkle -affection -apologize -blossom -bounce -bridge -cheap -crumble -decision -descend -desperately -dig -dot -flip -frighten -heartbeat -huge -lazy -lick -odd -opinion -process -puzzle -quietly -retreat -score -sentence -separate -situation -skill -soak -square -stray -taint -task -tide -underneath -veil -whistle -anywhere -bedroom -bid -bloody -burden -careful -compare -concern -curtain -decay -defeat -describe -double -dreamer -driver -dwell -evening -flare -flicker -grandma -guitar -harm -horrible -hungry -indeed -lace -melody -monkey -nation -object -obviously -rainbow -salt -scratch -shown -shy -stage -stun -third -tickle -useless -weakness -worship -worthless -afternoon -beard -boyfriend -bubble -busy -certain -chin -concrete -desk -diamond -doom -drawn -due -felicity -freeze -frost -garden -glide -harmony -hopefully -hunt -jealous -lightning -mama -mercy -peel -physical -position -pulse -punch -quit -rant -respond -salty -sane -satisfy -savior -sheep -slept -social -sport -tuck -utter -valley -wolf -aim -alas -alter -arrow -awaken -beaten -belief -brand -ceiling -cheese -clue -confidence -connection -daily -disguise -eager -erase -essence -everytime -expression -fan -flag -flirt -foul -fur -giggle -glorious -ignorance -law -lifeless -measure -mighty -muse -north -opposite -paradise -patience -patient -pencil -petal -plate -ponder -possibly -practice -slice -spell -stock -strife -strip -suffocate -suit -tender -tool -trade -velvet -verse -waist -witch -aunt -bench -bold -cap -certainly -click -companion -creator -dart -delicate -determine -dish -dragon -drama -drum -dude -everybody -feast -forehead -former -fright -fully -gas -hook -hurl -invite -juice -manage -moral -possess -raw -rebel -royal -scale -scary -several -slight -stubborn -swell -talent -tea -terrible -thread -torment -trickle -usually -vast -violence -weave -acid -agony -ashamed -awe -belly -blend -blush -character -cheat -common -company -coward -creak -danger -deadly -defense -define -depend -desperate -destination -dew -duck -dusty -embarrass -engine -example -explore -foe -freely -frustrate -generation -glove -guilty -health -hurry -idiot -impossible -inhale -jaw -kingdom -mention -mist -moan -mumble -mutter -observe -ode -pathetic -pattern -pie -prefer -puff -rape -rare -revenge -rude -scrape -spiral -squeeze -strain -sunset -suspend -sympathy -thigh -throne -total -unseen -weapon -weary From b80755063e6ed4313141e5fbecce30a0dc802872 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 2 Oct 2014 21:47:49 +0530 Subject: [PATCH 23/26] Stop copying word list files to build directory --- src/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 32115c8f6..527e2bd8f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,8 +43,6 @@ file(GLOB_RECURSE WALLET wallet/*) file(GLOB_RECURSE MINER miner/*) file(GLOB MNEMONICS mnemonics/*) -file(COPY "mnemonics/wordlists/" DESTINATION "${CMAKE_SOURCE_DIR}/build/release/src/wordlists") - source_group(common FILES ${COMMON}) source_group(crypto FILES ${CRYPTO}) source_group(cryptonote_core FILES ${CRYPTONOTE_CORE}) From 3e6b6bad2d731ca778da9c3bcfdb1b1001a85cd7 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Thu, 2 Oct 2014 22:36:02 +0530 Subject: [PATCH 24/26] Had missed const and had to use .at instead of [] --- src/mnemonics/electrum-words.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 053941194..4b1116815 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -100,8 +100,8 @@ namespace for (std::vector::iterator it1 = language_instances.begin(); it1 != language_instances.end(); it1++) { - std::unordered_map &word_map = (*it1)->get_word_map(); - std::unordered_map &trimmed_word_map = (*it1)->get_trimmed_word_map(); + const std::unordered_map &word_map = (*it1)->get_word_map(); + const std::unordered_map &trimmed_word_map = (*it1)->get_trimmed_word_map(); // To iterate through seed words std::vector::const_iterator it2; // To iterate through trimmed seed words @@ -120,7 +120,7 @@ namespace full_match = false; break; } - matched_indices.push_back(trimmed_word_map[*it3]); + matched_indices.push_back(trimmed_word_map.at(*it3)); } else { @@ -129,7 +129,7 @@ namespace full_match = false; break; } - matched_indices.push_back(word_map[*it2]); + matched_indices.push_back(word_map.at(*it2)); } } if (full_match) @@ -305,7 +305,7 @@ namespace crypto { return false; } - std::vector &word_list = language->get_word_list(); + const std::vector &word_list = language->get_word_list(); // To store the words for random access to add the checksum word later. std::vector words_store; From 443d46a6f1569e64b606c921298c4f3bf69d8dd9 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Fri, 3 Oct 2014 16:25:44 +0530 Subject: [PATCH 25/26] Don't show Old English as an available option --- src/mnemonics/electrum-words.cpp | 3 +- src/mnemonics/electrum-words.h | 1 + src/mnemonics/japanese.h | 3278 ++++++++++++++--------------- src/mnemonics/language_base.h | 146 +- src/mnemonics/old_english.h | 3278 ++++++++++++++--------------- src/mnemonics/portuguese.h | 3278 ++++++++++++++--------------- src/mnemonics/singleton.h | 42 +- src/mnemonics/spanish.h | 3278 ++++++++++++++--------------- src/simplewallet/simplewallet.cpp | 2 +- 9 files changed, 6653 insertions(+), 6653 deletions(-) diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 4b1116815..b204e81cf 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -349,8 +349,7 @@ namespace crypto Language::Singleton::instance(), Language::Singleton::instance(), Language::Singleton::instance(), - Language::Singleton::instance(), - Language::Singleton::instance() + Language::Singleton::instance() }); for (std::vector::iterator it = language_instances.begin(); it != language_instances.end(); it++) diff --git a/src/mnemonics/electrum-words.h b/src/mnemonics/electrum-words.h index 3be4b1ccc..b822e7740 100644 --- a/src/mnemonics/electrum-words.h +++ b/src/mnemonics/electrum-words.h @@ -59,6 +59,7 @@ namespace crypto namespace ElectrumWords { + const std::string old_language_name = "OldEnglish"; /*! * \brief Converts seed words to bytes (secret key). * \param words String containing the words separated by spaces. diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h index 2e77aa257..40d99b2a4 100644 --- a/src/mnemonics/japanese.h +++ b/src/mnemonics/japanese.h @@ -47,1645 +47,1645 @@ */ namespace Language { - class Japanese: public Base - { - public: - Japanese() - { - word_list = new std::vector({ - "あい", - "あいこくしん", - "あう", - "あお", - "あおぞら", - "あか", - "あかちゃん", - "あき", - "あきる", - "あく", - "あさ", - "あさひ", - "あし", - "あずき", - "あせ", - "あそぶ", - "あたる", - "あつい", - "あな", - "あに", - "あね", - "あひる", - "あまい", - "あみ", - "あめ", - "あめりか", - "あやまる", - "あゆむ", - "あらいぐま", - "あらし", - "あり", - "ある", - "あれ", - "あわ", - "あんこ", - "いう", - "いえ", - "いおん", - "いか", - "いがい", - "いかいよう", - "いけ", - "いけん", - "いこく", - "いこつ", - "いさん", - "いし", - "いじゅう", - "いす", - "いせい", - "いせえび", - "いせかい", - "いせき", - "いそうろう", - "いそがしい", - "いたりあ", - "いてざ", - "いてん", - "いと", - "いない", - "いなか", - "いぬ", - "いね", - "いのち", - "いのる", - "いはつ", - "いはん", - "いびき", - "いひん", - "いふく", - "いへん", - "いほう", - "いま", - "いみ", - "いみん", - "いも", - "いもうと", - "いもたれ", - "いもり", - "いや", - "いやす", - "いよかん", - "いよく", - "いらい", - "いらすと", - "いりぐち", - "いりょう", - "いりょうひ", - "いる", - "いれい", - "いれもの", - "いれる", - "いろ", - "いろえんぴつ", - "いわ", - "いわう", - "いわかん", - "いんげんまめ", - "うえ", - "うおざ", - "うかぶ", - "うきわ", - "うく", - "うくらいな", - "うくれれ", - "うけつぐ", - "うけつけ", - "うける", - "うごく", - "うこん", - "うさぎ", - "うし", - "うしなう", - "うしろ", - "うしろがみ", - "うすい", - "うすぎ", - "うせつ", - "うそ", - "うた", - "うちあわせ", - "うちがわ", - "うちき", - "うつ", - "うなぎ", - "うなじ", - "うに", - "うねる", - "うのう", - "うぶげ", - "うぶごえ", - "うま", - "うまれる", - "うみ", - "うむ", - "うめ", - "うめる", - "うもう", - "うやまう", - "うよく", - "うら", - "うらない", - "うる", - "うるさい", - "うれしい", - "うろこ", - "うわき", - "うわさ", - "えい", - "えいえん", - "えいが", - "えいぎょう", - "えいご", - "えおり", - "えき", - "えきたい", - "えくせる", - "えさ", - "えしゃく", - "えすて", - "えつらん", - "えと", - "えのぐ", - "えび", - "えほうまき", - "えほん", - "えま", - "えまき", - "えもじ", - "えもの", - "えらい", - "えらぶ", - "えり", - "えりあ", - "える", - "えん", - "えんえん", - "おきる", - "おく", - "おけ", - "おこる", - "おしえる", - "おやゆび", - "おらんだ", - "かあつ", - "かい", - "かう", - "かお", - "かがし", - "かき", - "かく", - "かこ", - "かさ", - "かす", - "かち", - "かつ", - "かなざわし", - "かに", - "かね", - "かのう", - "かほう", - "かほご", - "かまぼこ", - "かみ", - "かむ", - "かめれおん", - "かも", - "かゆい", - "からい", - "かるい", - "かろう", - "かわ", - "かわら", - "きあい", - "きあつ", - "きいろ", - "ぎいん", - "きうい", - "きうん", - "きえる", - "きおう", - "きおく", - "きおち", - "きおん", - "きか", - "きかい", - "きかく", - "きかん", - "きかんしゃ", - "きぎ", - "ききて", - "きく", - "きくばり", - "きくらげ", - "きけん", - "きけんせい", - "きこう", - "きこえる", - "きこく", - "きさい", - "きさく", - "きさま", - "きさらぎ", - "きし", - "きしゅ", - "きす", - "きすう", - "きせい", - "きせき", - "きせつ", - "きそ", - "きそう", - "きそく", - "きぞく", - "ぎそく", - "きぞん", - "きた", - "きたえる", - "きち", - "きちょう", - "きつえん", - "きつつき", - "きつね", - "きてい", - "きどう", - "きどく", - "きない", - "きなが", - "きぬ", - "きぬごし", - "きねん", - "きのう", - "きはく", - "きびしい", - "きひん", - "きふ", - "ぎふ", - "きふく", - "ぎぼ", - "きほう", - "きぼう", - "きほん", - "きまる", - "きみ", - "きみつ", - "ぎむ", - "きむずかしい", - "きめ", - "きめる", - "きもだめし", - "きもち", - "きやく", - "きよう", - "きらい", - "きらく", - "きり", - "きる", - "きれい", - "きれつ", - "きろく", - "ぎろん", - "きわめる", - "ぐあい", - "くい", - "くいず", - "くうかん", - "くうき", - "くうぐん", - "くうこう", - "くうそう", - "くうふく", - "くうぼ", - "くかん", - "くき", - "くきょう", - "くげん", - "ぐこう", - "くさ", - "くさい", - "くさき", - "くさばな", - "くさる", - "くし", - "くしゃみ", - "くしょう", - "くすのき", - "くすり", - "くすりゆび", - "くせ", - "くせげ", - "くせん", - "くたびれる", - "くち", - "くちこみ", - "くちさき", - "くつ", - "くつした", - "くつろぐ", - "くとうてん", - "くどく", - "くなん", - "くに", - "くねくね", - "くのう", - "くふう", - "くま", - "くみあわせ", - "くみたてる", - "くむ", - "くめる", - "くやくしょ", - "くらす", - "くり", - "くれる", - "くろ", - "くろう", - "くわしい", - "ぐんじょ", - "けあな", - "けいけん", - "けいこ", - "けいさい", - "けいさつ", - "げいのうじん", - "けいれき", - "けいれつ", - "けいれん", - "けいろ", - "けおとす", - "けおりもの", - "けが", - "げき", - "げきか", - "げきげん", - "げきだん", - "げきちん", - "げきど", - "げきは", - "げきやく", - "げこう", - "げこくじょう", - "けさ", - "げざい", - "けさき", - "げざん", - "けしき", - "けしごむ", - "けしょう", - "けす", - "げすと", - "けた", - "げた", - "けたば", - "けち", - "けちゃっぷ", - "けちらす", - "けつ", - "けつあつ", - "けつい", - "けつえき", - "けっこん", - "けつじょ", - "けってい", - "けつまつ", - "げつようび", - "げつれい", - "けつろん", - "げどく", - "けとばす", - "けとる", - "けなげ", - "けなす", - "けなみ", - "けぬき", - "げねつ", - "けねん", - "けはい", - "げひん", - "けぶかい", - "げぼく", - "けまり", - "けみかる", - "けむし", - "けむり", - "けもの", - "けらい", - "ける", - "げろ", - "けろけろ", - "けわしい", - "けんい", - "けんえつ", - "けんお", - "けんか", - "げんき", - "けんきゅう", - "けんきょ", - "けんけい", - "けんけつ", - "けんげん", - "けんこう", - "けんさ", - "けんさく", - "けんしゅう", - "けんしゅつ", - "けんしん", - "けんすう", - "けんそう", - "げんそう", - "けんそん", - "げんち", - "けんちく", - "けんてい", - "げんてい", - "けんとう", - "けんない", - "けんにん", - "げんぶつ", - "けんま", - "けんみん", - "けんめい", - "けんらん", - "けんり", - "けんりつ", - "こあくま", - "こい", - "ごい", - "こいびと", - "こうい", - "こうえん", - "こうか", - "こうかい", - "こうかん", - "こうさい", - "こうさん", - "こうしん", - "こうず", - "こうすい", - "こうせん", - "こうそう", - "こうそく", - "こうたい", - "こうちゃ", - "こうつう", - "こうてい", - "こうとうぶ", - "こうない", - "こうはい", - "こうはん", - "こうもく", - "こえ", - "こえる", - "こおり", - "ごがつ", - "こかん", - "こく", - "こくご", - "こくない", - "こくはく", - "こけい", - "こける", - "ここ", - "こころ", - "ごさ", - "こさめ", - "こし", - "こしつ", - "こす", - "こすう", - "こせい", - "こせき", - "こぜん", - "こそだて", - "こたい", - "こたえる", - "こたつ", - "こちょう", - "こっか", - "こつこつ", - "こつばん", - "こつぶ", - "こてい", - "こてん", - "こと", - "ことがら", - "ことし", - "こなごな", - "こねこね", - "このまま", - "このみ", - "このよ", - "こはん", - "ごはん", - "ごび", - "こひつじ", - "こふう", - "こふん", - "こぼれる", - "ごま", - "こまかい", - "こまつし", - "こまつな", - "こまる", - "こむ", - "こむぎこ", - "こめ", - "こもじ", - "こもち", - "こもの", - "こもん", - "こや", - "こやく", - "こやま", - "こゆう", - "こゆび", - "こよい", - "こよう", - "こりる", - "こる", - "これくしょん", - "ころっけ", - "こわもて", - "こわれる", - "こん", - "こんいん", - "こんかい", - "こんき", - "こんしゅう", - "こんしゅん", - "こんすい", - "こんだて", - "こんだん", - "こんとん", - "こんなん", - "こんびに", - "こんぽう", - "こんぽん", - "こんまけ", - "こんや", - "こんやく", - "こんれい", - "こんわく", - "さいかい", - "さいがい", - "さいきん", - "さいご", - "さいこん", - "さいしょ", - "さうな", - "さお", - "さかいし", - "さかな", - "さかみち", - "さき", - "さく", - "さくし", - "さくじょ", - "さくひん", - "さくら", - "さけ", - "さこく", - "さこつ", - "さたん", - "さつえい", - "さっか", - "さっきょく", - "さつじん", - "さつたば", - "さつまいも", - "さてい", - "さといも", - "さとう", - "さとおや", - "さとる", - "さのう", - "さば", - "さばく", - "さべつ", - "さほう", - "さほど", - "さます", - "さみしい", - "さみだれ", - "さむけ", - "さめ", - "さめる", - "さやえんどう", - "さゆう", - "さよう", - "さよく", - "さら", - "さらだ", - "さる", - "さわやか", - "さわる", - "さんいん", - "さんか", - "さんきゃく", - "さんこう", - "さんさい", - "さんざん", - "さんすう", - "さんせい", - "さんそ", - "さんそん", - "さんち", - "さんちょう", - "さんま", - "さんみ", - "さんらん", - "しあい", - "しあげ", - "しあさって", - "しあわせ", - "しいく", - "しいん", - "しうち", - "しえい", - "しお", - "しおけ", - "しか", - "しかい", - "しかく", - "じかん", - "した", - "したぎ", - "したて", - "したみ", - "しちょう", - "しちょうそん", - "しちりん", - "じつじ", - "してい", - "してき", - "してつ", - "してん", - "しとう", - "じどう", - "しなぎれ", - "しなもの", - "しなん", - "しねま", - "しねん", - "しのぐ", - "しのぶ", - "しはい", - "しばかり", - "しはつ", - "じはつ", - "しはらい", - "しはん", - "しひょう", - "じふ", - "しふく", - "じぶん", - "しへい", - "しほう", - "しほん", - "しま", - "しまう", - "しまる", - "しみ", - "じみ", - "しみん", - "じむ", - "しむける", - "しめい", - "しめる", - "しもん", - "しゃいん", - "しゃうん", - "しゃおん", - "しゃかい", - "じゃがいも", - "しやくしょ", - "しゃくほう", - "しゃけん", - "しゃこ", - "しゃこう", - "しゃざい", - "しゃしん", - "しゃせん", - "しゃそう", - "しゃたい", - "しゃたく", - "しゃちょう", - "しゃっきん", - "じゃま", - "じゃり", - "しゃりょう", - "しゃりん", - "しゃれい", - "しゅうえん", - "しゅうかい", - "しゅうきん", - "しゅうけい", - "しゅうりょう", - "しゅらば", - "しょうか", - "しょうかい", - "しょうきん", - "しょうじき", - "しょくざい", - "しょくたく", - "しょっけん", - "しょどう", - "しょもつ", - "しん", - "しんか", - "しんこう", - "しんせいじ", - "しんちく", - "しんりん", - "すあげ", - "すあし", - "すあな", - "ずあん", - "すいか", - "すいとう", - "すう", - "すうがく", - "すうじつ", - "すうせん", - "すおどり", - "すき", - "すきま", - "すく", - "すくう", - "すくない", - "すける", - "すこし", - "ずさん", - "すし", - "すずしい", - "すすめる", - "すそ", - "ずっしり", - "ずっと", - "すで", - "すてき", - "すてる", - "すな", - "すなっく", - "すなっぷ", - "すね", - "すねる", - "すのこ", - "すはだ", - "すばらしい", - "ずひょう", - "ずぶぬれ", - "すぶり", - "すふれ", - "すべて", - "すべる", - "ずほう", - "すぼん", - "すまい", - "すみ", - "すむ", - "すめし", - "すもう", - "すやき", - "すらいす", - "すらいど", - "すらすら", - "すり", - "する", - "するめ", - "すれちがう", - "すろっと", - "すわる", - "すんぜん", - "すんぽう", - "せあぶら", - "せいか", - "せいかい", - "せいかつ", - "せおう", - "せかい", - "せかいかん", - "せかいし", - "せかいじゅう", - "せき", - "せきにん", - "せきむ", - "せきゆ", - "せきらんうん", - "せけん", - "せこう", - "せすじ", - "せたい", - "せたけ", - "せっかい", - "せっかく", - "せっき", - "せっきゃく", - "せっきょく", - "せっきん", - "ぜっく", - "せっけん", - "せっこつ", - "せっさたくま", - "せつぞく", - "せつだん", - "せつでん", - "せっぱん", - "せつび", - "せつぶん", - "せつめい", - "せつりつ", - "せと", - "せなか", - "せのび", - "せはば", - "せぼね", - "せまい", - "せまる", - "せみ", - "せめる", - "せもたれ", - "せりふ", - "せわ", - "せん", - "ぜんあく", - "せんい", - "せんえい", - "せんか", - "せんきょ", - "せんく", - "せんけつ", - "せんげん", - "ぜんご", - "せんさい", - "せんし", - "せんしゅ", - "せんす", - "せんすい", - "せんせい", - "せんぞ", - "せんそう", - "せんたく", - "せんち", - "せんちゃ", - "せんちゃく", - "せんちょう", - "せんてい", - "せんとう", - "せんぬき", - "せんねん", - "ぜんぶ", - "せんぷうき", - "せんぷく", - "ぜんぽう", - "せんむ", - "せんめい", - "せんめんじょ", - "せんもん", - "せんやく", - "せんゆう", - "せんよう", - "ぜんら", - "ぜんりゃく", - "せんりょく", - "せんれい", - "せんろ", - "そあく", - "そいとげる", - "そいね", - "そう", - "ぞう", - "そうがんきょう", - "そうき", - "そうご", - "そうなん", - "そうび", - "そうひょう", - "そうめん", - "そうり", - "そうりょ", - "そえもの", - "そえん", - "そかい", - "そがい", - "そぐ", - "そげき", - "そこう", - "そこそこ", - "そざい", - "そし", - "そしな", - "そせい", - "そせん", - "そそぐ", - "そだてる", - "そつう", - "そつえん", - "そっかん", - "そつぎょう", - "そっけつ", - "そっこう", - "そっせん", - "そっと", - "そで", - "そと", - "そとがわ", - "そとづら", - "そなえる", - "そなた", - "そば", - "そふ", - "そふぼ", - "そぼ", - "そぼく", - "そぼろ", - "そまつ", - "そまる", - "そむく", - "そむりえ", - "そめる", - "そもそも", - "そよかぜ", - "そら", - "そらまめ", - "そり", - "そる", - "そろう", - "そんかい", - "そんけい", - "そんざい", - "そんしつ", - "そんしょう", - "そんぞく", - "そんちょう", - "ぞんび", - "ぞんぶん", - "そんみん", - "たあい", - "たいいん", - "たいうん", - "たいえき", - "たいおう", - "だいおう", - "たいか", - "たいかい", - "たいき", - "たいきけん", - "たいぐう", - "たいくつ", - "たいけい", - "たいけつ", - "たいけん", - "たいこ", - "たいこう", - "たいさ", - "たいさん", - "たいしゅつ", - "だいじょうぶ", - "たいしょく", - "だいず", - "だいすき", - "たいせい", - "たいせつ", - "たいせん", - "たいそう", - "たいちょう", - "だいちょう", - "たいとう", - "たいない", - "たいねつ", - "たいのう", - "たいは", - "たいはん", - "たいひ", - "たいふう", - "たいへん", - "たいほ", - "たいまつばな", - "たいまん", - "たいみんぐ", - "たいむ", - "たいめん", - "たいやき", - "たいやく", - "たいよう", - "たいら", - "たいりょう", - "たいりょく", - "たいる", - "たいわ", - "たいわん", - "たうえ", - "たえる", - "たおす", - "たおる", - "たかい", - "たかね", - "たき", - "たきび", - "たくさん", - "たけ", - "たこ", - "たこく", - "たこやき", - "たさい", - "ださい", - "たしざん", - "たす", - "たすける", - "たそがれ", - "たたかう", - "たたく", - "たちば", - "たちばな", - "たつ", - "だっかい", - "だっきゃく", - "だっこ", - "だっしめん", - "だっしゅつ", - "だったい", - "たて", - "たてる", - "たとえる", - "たな", - "たにん", - "たぬき", - "たね", - "たのしみ", - "たはつ", - "たび", - "たぶん", - "たべる", - "たぼう", - "たほうめん", - "たま", - "たまご", - "たまる", - "だむる", - "ためいき", - "ためす", - "ためる", - "たもつ", - "たやすい", - "たよる", - "たら", - "たらす", - "たりきほんがん", - "たりょう", - "たりる", - "たる", - "たると", - "たれる", - "たれんと", - "たろっと", - "たわむれる", - "たん", - "だんあつ", - "たんい", - "たんおん", - "たんか", - "たんき", - "たんけん", - "たんご", - "たんさく", - "たんさん", - "たんし", - "たんしゅく", - "たんじょうび", - "だんせい", - "たんそく", - "たんたい", - "たんち", - "だんち", - "たんちょう", - "たんてい", - "たんてき", - "たんとう", - "だんな", - "たんにん", - "だんねつ", - "たんのう", - "たんぴん", - "たんまつ", - "たんめい", - "だんれつ", - "だんろ", - "だんわ", - "ちあい", - "ちあん", - "ちい", - "ちいき", - "ちいさい", - "ちえ", - "ちえん", - "ちか", - "ちかい", - "ちきゅう", - "ちきん", - "ちけい", - "ちけいず", - "ちけん", - "ちこく", - "ちさい", - "ちしき", - "ちしりょう", - "ちず", - "ちせい", - "ちそう", - "ちたい", - "ちたん", - "ちちおや", - "ちつじょ", - "ちてき", - "ちてん", - "ちぬき", - "ちぬり", - "ちのう", - "ちひょう", - "ちへいせん", - "ちほう", - "ちまた", - "ちみつ", - "ちみどろ", - "ちめいど", - "ちゅうい", - "ちゅうおう", - "ちゅうおうく", - "ちゅうがっこう", - "ちゅうごく", - "ちゆりょく", - "ちょうさ", - "ちょうし", - "ちらし", - "ちらみ", - "ちり", - "ちりがみ", - "ちる", - "ちるど", - "ちわわ", - "ちんたい", - "ちんもく", - "ついか", - "つうか", - "つうじょう", - "つうじる", - "つうはん", - "つうわ", - "つえ", - "つかう", - "つかれる", - "つき", - "つく", - "つくね", - "つくる", - "つけね", - "つける", - "つごう", - "つた", - "つたえる", - "つち", - "つつじ", - "つとめる", - "つな", - "つながる", - "つなみ", - "つねづね", - "つの", - "つのる", - "つば", - "つぶ", - "つぶす", - "つぼ", - "つま", - "つまらない", - "つまる", - "つみ", - "つみき", - "つむ", - "つめたい", - "つもる", - "つや", - "つよい", - "つり", - "つるぼ", - "つるみく", - "つわもの", - "つわり", - "てあし", - "てあて", - "てあみ", - "ていか", - "ていき", - "ていけい", - "ていけつ", - "ていけつあつ", - "ていこく", - "ていさつ", - "ていし", - "ていしゃ", - "ていせい", - "ていたい", - "ていど", - "ていねい", - "ていひょう", - "ていへん", - "ていぼう", - "てうち", - "ておくれ", - "てき", - "てくび", - "てこ", - "てさぎょう", - "てさげ", - "でし", - "てすり", - "てそう", - "てちがい", - "てちょう", - "てつがく", - "てつづき", - "てつや", - "でぬかえ", - "てぬき", - "てぬぐい", - "てのひら", - "てはい", - "てふだ", - "てほどき", - "てほん", - "てま", - "てまえ", - "てまきずし", - "てみじか", - "てみやげ", - "てら", - "てらす", - "でる", - "てれび", - "てろ", - "てわけ", - "てわたし", - "でんあつ", - "てんい", - "てんいん", - "てんかい", - "てんき", - "てんぐ", - "てんけん", - "でんげん", - "てんごく", - "てんさい", - "てんすう", - "でんち", - "てんてき", - "てんとう", - "てんない", - "てんぷ", - "てんぷら", - "てんぼうだい", - "てんめつ", - "てんらく", - "てんらんかい", - "でんりゅう", - "でんりょく", - "でんわ", - "どあ", - "どあい", - "といれ", - "とうむぎ", - "とおい", - "とおす", - "とかい", - "とかす", - "ときおり", - "ときどき", - "とくい", - "とくてい", - "とくてん", - "とくべつ", - "とけい", - "とける", - "とさか", - "とし", - "としょかん", - "とそう", - "とたん", - "とち", - "とちゅう", - "とつぜん", - "とつにゅう", - "ととのえる", - "とない", - "となえる", - "となり", - "とのさま", - "とばす", - "とぶ", - "とほ", - "とほう", - "どま", - "とまる", - "とら", - "とり", - "とる", - "とんかつ", - "ない", - "ないか", - "ないかく", - "ないこう", - "ないしょ", - "ないす", - "ないせん", - "ないそう", - "ないぞう", - "なおす", - "なく", - "なこうど", - "なさけ", - "なし", - "なす", - "なぜ", - "なぞ", - "なたでここ", - "なつ", - "なっとう", - "なつやすみ", - "ななおし", - "なにごと", - "なにもの", - "なにわ", - "なは", - "なび", - "なふだ", - "なべ", - "なまいき", - "なまえ", - "なまみ", - "なみ", - "なみだ", - "なめらか", - "なめる", - "なやむ", - "ならぶ", - "なる", - "なれる", - "なわ", - "なわとび", - "なわばり", - "にあう", - "にいがた", - "にうけ", - "におい", - "にかい", - "にがて", - "にきび", - "にく", - "にくしみ", - "にくまん", - "にげる", - "にさんかたんそ", - "にし", - "にしき", - "にす", - "にせもの", - "にちじ", - "にちじょう", - "にちようび", - "にっか", - "にっき", - "にっけい", - "にっこう", - "にっさん", - "にっしょく", - "にっすう", - "にっせき", - "にってい", - "になう", - "にほん", - "にまめ", - "にもつ", - "にやり", - "にゅういん", - "にゅうか", - "にゅうし", - "にゅうしゃ", - "にゅうだん", - "にゅうぶ", - "にら", - "にりんしゃ", - "にる", - "にわ", - "にわとり", - "にんい", - "にんか", - "にんき", - "にんげん", - "にんしき", - "にんしょう", - "にんしん", - "にんずう", - "にんそう", - "にんたい", - "にんち", - "にんてい", - "にんにく", - "にんぷ", - "にんまり", - "にんむ", - "にんめい", - "にんよう", - "ぬう", - "ぬか", - "ぬく", - "ぬくもり", - "ぬし", - "ぬの", - "ぬま", - "ぬめり", - "ぬらす", - "ぬる", - "ぬんちゃく", - "ねあげ", - "ねいき", - "ねいる", - "ねいろ", - "ねぎ", - "ねぐせ", - "ねくたい", - "ねくら", - "ねこ", - "ねこぜ", - "ねこむ", - "ねさげ", - "ねすごす", - "ねそべる", - "ねつい", - "ねつぞう", - "ねったい", - "ねったいぎょ", - "ねぶそく", - "ねふだ", - "ねぼう", - "ねほりはほり", - "ねまき", - "ねまわし", - "ねみみ", - "ねむい", - "ねもと", - "ねらう", - "ねる", - "ねわざ", - "ねんいり", - "ねんおし", - "ねんかん", - "ねんき", - "ねんきん", - "ねんぐ", - "ねんざ", - "ねんし", - "ねんちゃく", - "ねんちょう", - "ねんど", - "ねんぴ", - "ねんぶつ", - "ねんまく", - "ねんまつ", - "ねんりき", - "ねんりょう", - "ねんれい", - "のいず", - "のう", - "のおづま", - "のがす", - "のきなみ", - "のこぎり", - "のこす", - "のせる", - "のぞく", - "のぞむ", - "のたまう", - "のちほど", - "のっく", - "のばす", - "のはら", - "のべる", - "のぼる", - "のむ", - "のやま", - "のらいぬ", - "のらねこ", - "のり", - "のる", - "のれん", - "のんき", - "ばあい", - "はあく", - "ばあさん", - "はい", - "ばいか", - "ばいく", - "はいけん", - "はいご", - "はいこう", - "はいし", - "はいしゅつ", - "はいしん", - "はいすい", - "はいせつ", - "はいせん", - "はいそう", - "はいち", - "ばいばい", - "はう", - "はえ", - "はえる", - "はおる", - "はか", - "ばか", - "はかい", - "はかる", - "はき", - "はく", - "はくしゅ", - "はけん", - "はこ", - "はこぶ", - "はさみ", - "はさん", - "はし", - "はしご", - "はしる", - "ばす", - "はせる", - "ぱそこん", - "はそん", - "はたん", - "はち", - "はちみつ", - "はっか", - "はっかく", - "はっき", - "はっきり", - "はっくつ", - "はっけん", - "はっこう", - "はっさん", - "はっしゃ", - "はっしん", - "はったつ", - "はっちゃく", - "はっちゅう", - "はってん", - "はっぴょう", - "はっぽう", - "はて", - "はな", - "はなす", - "はなび", - "はにかむ", - "はね", - "はは", - "はぶらし", - "はま", - "はみがき", - "はむ", - "はむかう", - "はめつ", - "はやい", - "はら", - "はらう", - "はり", - "はる", - "はれ", - "はろうぃん", - "はわい", - "はんい", - "はんえい", - "はんえん", - "はんおん", - "はんかく", - "はんかち", - "はんきょう", - "はんこ", - "はんこう", - "はんしゃ" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "Japanese"; - populate_maps(); - } - }; + class Japanese: public Base + { + public: + Japanese() + { + word_list = new std::vector({ + "あい", + "あいこくしん", + "あう", + "あお", + "あおぞら", + "あか", + "あかちゃん", + "あき", + "あきる", + "あく", + "あさ", + "あさひ", + "あし", + "あずき", + "あせ", + "あそぶ", + "あたる", + "あつい", + "あな", + "あに", + "あね", + "あひる", + "あまい", + "あみ", + "あめ", + "あめりか", + "あやまる", + "あゆむ", + "あらいぐま", + "あらし", + "あり", + "ある", + "あれ", + "あわ", + "あんこ", + "いう", + "いえ", + "いおん", + "いか", + "いがい", + "いかいよう", + "いけ", + "いけん", + "いこく", + "いこつ", + "いさん", + "いし", + "いじゅう", + "いす", + "いせい", + "いせえび", + "いせかい", + "いせき", + "いそうろう", + "いそがしい", + "いたりあ", + "いてざ", + "いてん", + "いと", + "いない", + "いなか", + "いぬ", + "いね", + "いのち", + "いのる", + "いはつ", + "いはん", + "いびき", + "いひん", + "いふく", + "いへん", + "いほう", + "いま", + "いみ", + "いみん", + "いも", + "いもうと", + "いもたれ", + "いもり", + "いや", + "いやす", + "いよかん", + "いよく", + "いらい", + "いらすと", + "いりぐち", + "いりょう", + "いりょうひ", + "いる", + "いれい", + "いれもの", + "いれる", + "いろ", + "いろえんぴつ", + "いわ", + "いわう", + "いわかん", + "いんげんまめ", + "うえ", + "うおざ", + "うかぶ", + "うきわ", + "うく", + "うくらいな", + "うくれれ", + "うけつぐ", + "うけつけ", + "うける", + "うごく", + "うこん", + "うさぎ", + "うし", + "うしなう", + "うしろ", + "うしろがみ", + "うすい", + "うすぎ", + "うせつ", + "うそ", + "うた", + "うちあわせ", + "うちがわ", + "うちき", + "うつ", + "うなぎ", + "うなじ", + "うに", + "うねる", + "うのう", + "うぶげ", + "うぶごえ", + "うま", + "うまれる", + "うみ", + "うむ", + "うめ", + "うめる", + "うもう", + "うやまう", + "うよく", + "うら", + "うらない", + "うる", + "うるさい", + "うれしい", + "うろこ", + "うわき", + "うわさ", + "えい", + "えいえん", + "えいが", + "えいぎょう", + "えいご", + "えおり", + "えき", + "えきたい", + "えくせる", + "えさ", + "えしゃく", + "えすて", + "えつらん", + "えと", + "えのぐ", + "えび", + "えほうまき", + "えほん", + "えま", + "えまき", + "えもじ", + "えもの", + "えらい", + "えらぶ", + "えり", + "えりあ", + "える", + "えん", + "えんえん", + "おきる", + "おく", + "おけ", + "おこる", + "おしえる", + "おやゆび", + "おらんだ", + "かあつ", + "かい", + "かう", + "かお", + "かがし", + "かき", + "かく", + "かこ", + "かさ", + "かす", + "かち", + "かつ", + "かなざわし", + "かに", + "かね", + "かのう", + "かほう", + "かほご", + "かまぼこ", + "かみ", + "かむ", + "かめれおん", + "かも", + "かゆい", + "からい", + "かるい", + "かろう", + "かわ", + "かわら", + "きあい", + "きあつ", + "きいろ", + "ぎいん", + "きうい", + "きうん", + "きえる", + "きおう", + "きおく", + "きおち", + "きおん", + "きか", + "きかい", + "きかく", + "きかん", + "きかんしゃ", + "きぎ", + "ききて", + "きく", + "きくばり", + "きくらげ", + "きけん", + "きけんせい", + "きこう", + "きこえる", + "きこく", + "きさい", + "きさく", + "きさま", + "きさらぎ", + "きし", + "きしゅ", + "きす", + "きすう", + "きせい", + "きせき", + "きせつ", + "きそ", + "きそう", + "きそく", + "きぞく", + "ぎそく", + "きぞん", + "きた", + "きたえる", + "きち", + "きちょう", + "きつえん", + "きつつき", + "きつね", + "きてい", + "きどう", + "きどく", + "きない", + "きなが", + "きぬ", + "きぬごし", + "きねん", + "きのう", + "きはく", + "きびしい", + "きひん", + "きふ", + "ぎふ", + "きふく", + "ぎぼ", + "きほう", + "きぼう", + "きほん", + "きまる", + "きみ", + "きみつ", + "ぎむ", + "きむずかしい", + "きめ", + "きめる", + "きもだめし", + "きもち", + "きやく", + "きよう", + "きらい", + "きらく", + "きり", + "きる", + "きれい", + "きれつ", + "きろく", + "ぎろん", + "きわめる", + "ぐあい", + "くい", + "くいず", + "くうかん", + "くうき", + "くうぐん", + "くうこう", + "くうそう", + "くうふく", + "くうぼ", + "くかん", + "くき", + "くきょう", + "くげん", + "ぐこう", + "くさ", + "くさい", + "くさき", + "くさばな", + "くさる", + "くし", + "くしゃみ", + "くしょう", + "くすのき", + "くすり", + "くすりゆび", + "くせ", + "くせげ", + "くせん", + "くたびれる", + "くち", + "くちこみ", + "くちさき", + "くつ", + "くつした", + "くつろぐ", + "くとうてん", + "くどく", + "くなん", + "くに", + "くねくね", + "くのう", + "くふう", + "くま", + "くみあわせ", + "くみたてる", + "くむ", + "くめる", + "くやくしょ", + "くらす", + "くり", + "くれる", + "くろ", + "くろう", + "くわしい", + "ぐんじょ", + "けあな", + "けいけん", + "けいこ", + "けいさい", + "けいさつ", + "げいのうじん", + "けいれき", + "けいれつ", + "けいれん", + "けいろ", + "けおとす", + "けおりもの", + "けが", + "げき", + "げきか", + "げきげん", + "げきだん", + "げきちん", + "げきど", + "げきは", + "げきやく", + "げこう", + "げこくじょう", + "けさ", + "げざい", + "けさき", + "げざん", + "けしき", + "けしごむ", + "けしょう", + "けす", + "げすと", + "けた", + "げた", + "けたば", + "けち", + "けちゃっぷ", + "けちらす", + "けつ", + "けつあつ", + "けつい", + "けつえき", + "けっこん", + "けつじょ", + "けってい", + "けつまつ", + "げつようび", + "げつれい", + "けつろん", + "げどく", + "けとばす", + "けとる", + "けなげ", + "けなす", + "けなみ", + "けぬき", + "げねつ", + "けねん", + "けはい", + "げひん", + "けぶかい", + "げぼく", + "けまり", + "けみかる", + "けむし", + "けむり", + "けもの", + "けらい", + "ける", + "げろ", + "けろけろ", + "けわしい", + "けんい", + "けんえつ", + "けんお", + "けんか", + "げんき", + "けんきゅう", + "けんきょ", + "けんけい", + "けんけつ", + "けんげん", + "けんこう", + "けんさ", + "けんさく", + "けんしゅう", + "けんしゅつ", + "けんしん", + "けんすう", + "けんそう", + "げんそう", + "けんそん", + "げんち", + "けんちく", + "けんてい", + "げんてい", + "けんとう", + "けんない", + "けんにん", + "げんぶつ", + "けんま", + "けんみん", + "けんめい", + "けんらん", + "けんり", + "けんりつ", + "こあくま", + "こい", + "ごい", + "こいびと", + "こうい", + "こうえん", + "こうか", + "こうかい", + "こうかん", + "こうさい", + "こうさん", + "こうしん", + "こうず", + "こうすい", + "こうせん", + "こうそう", + "こうそく", + "こうたい", + "こうちゃ", + "こうつう", + "こうてい", + "こうとうぶ", + "こうない", + "こうはい", + "こうはん", + "こうもく", + "こえ", + "こえる", + "こおり", + "ごがつ", + "こかん", + "こく", + "こくご", + "こくない", + "こくはく", + "こけい", + "こける", + "ここ", + "こころ", + "ごさ", + "こさめ", + "こし", + "こしつ", + "こす", + "こすう", + "こせい", + "こせき", + "こぜん", + "こそだて", + "こたい", + "こたえる", + "こたつ", + "こちょう", + "こっか", + "こつこつ", + "こつばん", + "こつぶ", + "こてい", + "こてん", + "こと", + "ことがら", + "ことし", + "こなごな", + "こねこね", + "このまま", + "このみ", + "このよ", + "こはん", + "ごはん", + "ごび", + "こひつじ", + "こふう", + "こふん", + "こぼれる", + "ごま", + "こまかい", + "こまつし", + "こまつな", + "こまる", + "こむ", + "こむぎこ", + "こめ", + "こもじ", + "こもち", + "こもの", + "こもん", + "こや", + "こやく", + "こやま", + "こゆう", + "こゆび", + "こよい", + "こよう", + "こりる", + "こる", + "これくしょん", + "ころっけ", + "こわもて", + "こわれる", + "こん", + "こんいん", + "こんかい", + "こんき", + "こんしゅう", + "こんしゅん", + "こんすい", + "こんだて", + "こんだん", + "こんとん", + "こんなん", + "こんびに", + "こんぽう", + "こんぽん", + "こんまけ", + "こんや", + "こんやく", + "こんれい", + "こんわく", + "さいかい", + "さいがい", + "さいきん", + "さいご", + "さいこん", + "さいしょ", + "さうな", + "さお", + "さかいし", + "さかな", + "さかみち", + "さき", + "さく", + "さくし", + "さくじょ", + "さくひん", + "さくら", + "さけ", + "さこく", + "さこつ", + "さたん", + "さつえい", + "さっか", + "さっきょく", + "さつじん", + "さつたば", + "さつまいも", + "さてい", + "さといも", + "さとう", + "さとおや", + "さとる", + "さのう", + "さば", + "さばく", + "さべつ", + "さほう", + "さほど", + "さます", + "さみしい", + "さみだれ", + "さむけ", + "さめ", + "さめる", + "さやえんどう", + "さゆう", + "さよう", + "さよく", + "さら", + "さらだ", + "さる", + "さわやか", + "さわる", + "さんいん", + "さんか", + "さんきゃく", + "さんこう", + "さんさい", + "さんざん", + "さんすう", + "さんせい", + "さんそ", + "さんそん", + "さんち", + "さんちょう", + "さんま", + "さんみ", + "さんらん", + "しあい", + "しあげ", + "しあさって", + "しあわせ", + "しいく", + "しいん", + "しうち", + "しえい", + "しお", + "しおけ", + "しか", + "しかい", + "しかく", + "じかん", + "した", + "したぎ", + "したて", + "したみ", + "しちょう", + "しちょうそん", + "しちりん", + "じつじ", + "してい", + "してき", + "してつ", + "してん", + "しとう", + "じどう", + "しなぎれ", + "しなもの", + "しなん", + "しねま", + "しねん", + "しのぐ", + "しのぶ", + "しはい", + "しばかり", + "しはつ", + "じはつ", + "しはらい", + "しはん", + "しひょう", + "じふ", + "しふく", + "じぶん", + "しへい", + "しほう", + "しほん", + "しま", + "しまう", + "しまる", + "しみ", + "じみ", + "しみん", + "じむ", + "しむける", + "しめい", + "しめる", + "しもん", + "しゃいん", + "しゃうん", + "しゃおん", + "しゃかい", + "じゃがいも", + "しやくしょ", + "しゃくほう", + "しゃけん", + "しゃこ", + "しゃこう", + "しゃざい", + "しゃしん", + "しゃせん", + "しゃそう", + "しゃたい", + "しゃたく", + "しゃちょう", + "しゃっきん", + "じゃま", + "じゃり", + "しゃりょう", + "しゃりん", + "しゃれい", + "しゅうえん", + "しゅうかい", + "しゅうきん", + "しゅうけい", + "しゅうりょう", + "しゅらば", + "しょうか", + "しょうかい", + "しょうきん", + "しょうじき", + "しょくざい", + "しょくたく", + "しょっけん", + "しょどう", + "しょもつ", + "しん", + "しんか", + "しんこう", + "しんせいじ", + "しんちく", + "しんりん", + "すあげ", + "すあし", + "すあな", + "ずあん", + "すいか", + "すいとう", + "すう", + "すうがく", + "すうじつ", + "すうせん", + "すおどり", + "すき", + "すきま", + "すく", + "すくう", + "すくない", + "すける", + "すこし", + "ずさん", + "すし", + "すずしい", + "すすめる", + "すそ", + "ずっしり", + "ずっと", + "すで", + "すてき", + "すてる", + "すな", + "すなっく", + "すなっぷ", + "すね", + "すねる", + "すのこ", + "すはだ", + "すばらしい", + "ずひょう", + "ずぶぬれ", + "すぶり", + "すふれ", + "すべて", + "すべる", + "ずほう", + "すぼん", + "すまい", + "すみ", + "すむ", + "すめし", + "すもう", + "すやき", + "すらいす", + "すらいど", + "すらすら", + "すり", + "する", + "するめ", + "すれちがう", + "すろっと", + "すわる", + "すんぜん", + "すんぽう", + "せあぶら", + "せいか", + "せいかい", + "せいかつ", + "せおう", + "せかい", + "せかいかん", + "せかいし", + "せかいじゅう", + "せき", + "せきにん", + "せきむ", + "せきゆ", + "せきらんうん", + "せけん", + "せこう", + "せすじ", + "せたい", + "せたけ", + "せっかい", + "せっかく", + "せっき", + "せっきゃく", + "せっきょく", + "せっきん", + "ぜっく", + "せっけん", + "せっこつ", + "せっさたくま", + "せつぞく", + "せつだん", + "せつでん", + "せっぱん", + "せつび", + "せつぶん", + "せつめい", + "せつりつ", + "せと", + "せなか", + "せのび", + "せはば", + "せぼね", + "せまい", + "せまる", + "せみ", + "せめる", + "せもたれ", + "せりふ", + "せわ", + "せん", + "ぜんあく", + "せんい", + "せんえい", + "せんか", + "せんきょ", + "せんく", + "せんけつ", + "せんげん", + "ぜんご", + "せんさい", + "せんし", + "せんしゅ", + "せんす", + "せんすい", + "せんせい", + "せんぞ", + "せんそう", + "せんたく", + "せんち", + "せんちゃ", + "せんちゃく", + "せんちょう", + "せんてい", + "せんとう", + "せんぬき", + "せんねん", + "ぜんぶ", + "せんぷうき", + "せんぷく", + "ぜんぽう", + "せんむ", + "せんめい", + "せんめんじょ", + "せんもん", + "せんやく", + "せんゆう", + "せんよう", + "ぜんら", + "ぜんりゃく", + "せんりょく", + "せんれい", + "せんろ", + "そあく", + "そいとげる", + "そいね", + "そう", + "ぞう", + "そうがんきょう", + "そうき", + "そうご", + "そうなん", + "そうび", + "そうひょう", + "そうめん", + "そうり", + "そうりょ", + "そえもの", + "そえん", + "そかい", + "そがい", + "そぐ", + "そげき", + "そこう", + "そこそこ", + "そざい", + "そし", + "そしな", + "そせい", + "そせん", + "そそぐ", + "そだてる", + "そつう", + "そつえん", + "そっかん", + "そつぎょう", + "そっけつ", + "そっこう", + "そっせん", + "そっと", + "そで", + "そと", + "そとがわ", + "そとづら", + "そなえる", + "そなた", + "そば", + "そふ", + "そふぼ", + "そぼ", + "そぼく", + "そぼろ", + "そまつ", + "そまる", + "そむく", + "そむりえ", + "そめる", + "そもそも", + "そよかぜ", + "そら", + "そらまめ", + "そり", + "そる", + "そろう", + "そんかい", + "そんけい", + "そんざい", + "そんしつ", + "そんしょう", + "そんぞく", + "そんちょう", + "ぞんび", + "ぞんぶん", + "そんみん", + "たあい", + "たいいん", + "たいうん", + "たいえき", + "たいおう", + "だいおう", + "たいか", + "たいかい", + "たいき", + "たいきけん", + "たいぐう", + "たいくつ", + "たいけい", + "たいけつ", + "たいけん", + "たいこ", + "たいこう", + "たいさ", + "たいさん", + "たいしゅつ", + "だいじょうぶ", + "たいしょく", + "だいず", + "だいすき", + "たいせい", + "たいせつ", + "たいせん", + "たいそう", + "たいちょう", + "だいちょう", + "たいとう", + "たいない", + "たいねつ", + "たいのう", + "たいは", + "たいはん", + "たいひ", + "たいふう", + "たいへん", + "たいほ", + "たいまつばな", + "たいまん", + "たいみんぐ", + "たいむ", + "たいめん", + "たいやき", + "たいやく", + "たいよう", + "たいら", + "たいりょう", + "たいりょく", + "たいる", + "たいわ", + "たいわん", + "たうえ", + "たえる", + "たおす", + "たおる", + "たかい", + "たかね", + "たき", + "たきび", + "たくさん", + "たけ", + "たこ", + "たこく", + "たこやき", + "たさい", + "ださい", + "たしざん", + "たす", + "たすける", + "たそがれ", + "たたかう", + "たたく", + "たちば", + "たちばな", + "たつ", + "だっかい", + "だっきゃく", + "だっこ", + "だっしめん", + "だっしゅつ", + "だったい", + "たて", + "たてる", + "たとえる", + "たな", + "たにん", + "たぬき", + "たね", + "たのしみ", + "たはつ", + "たび", + "たぶん", + "たべる", + "たぼう", + "たほうめん", + "たま", + "たまご", + "たまる", + "だむる", + "ためいき", + "ためす", + "ためる", + "たもつ", + "たやすい", + "たよる", + "たら", + "たらす", + "たりきほんがん", + "たりょう", + "たりる", + "たる", + "たると", + "たれる", + "たれんと", + "たろっと", + "たわむれる", + "たん", + "だんあつ", + "たんい", + "たんおん", + "たんか", + "たんき", + "たんけん", + "たんご", + "たんさく", + "たんさん", + "たんし", + "たんしゅく", + "たんじょうび", + "だんせい", + "たんそく", + "たんたい", + "たんち", + "だんち", + "たんちょう", + "たんてい", + "たんてき", + "たんとう", + "だんな", + "たんにん", + "だんねつ", + "たんのう", + "たんぴん", + "たんまつ", + "たんめい", + "だんれつ", + "だんろ", + "だんわ", + "ちあい", + "ちあん", + "ちい", + "ちいき", + "ちいさい", + "ちえ", + "ちえん", + "ちか", + "ちかい", + "ちきゅう", + "ちきん", + "ちけい", + "ちけいず", + "ちけん", + "ちこく", + "ちさい", + "ちしき", + "ちしりょう", + "ちず", + "ちせい", + "ちそう", + "ちたい", + "ちたん", + "ちちおや", + "ちつじょ", + "ちてき", + "ちてん", + "ちぬき", + "ちぬり", + "ちのう", + "ちひょう", + "ちへいせん", + "ちほう", + "ちまた", + "ちみつ", + "ちみどろ", + "ちめいど", + "ちゅうい", + "ちゅうおう", + "ちゅうおうく", + "ちゅうがっこう", + "ちゅうごく", + "ちゆりょく", + "ちょうさ", + "ちょうし", + "ちらし", + "ちらみ", + "ちり", + "ちりがみ", + "ちる", + "ちるど", + "ちわわ", + "ちんたい", + "ちんもく", + "ついか", + "つうか", + "つうじょう", + "つうじる", + "つうはん", + "つうわ", + "つえ", + "つかう", + "つかれる", + "つき", + "つく", + "つくね", + "つくる", + "つけね", + "つける", + "つごう", + "つた", + "つたえる", + "つち", + "つつじ", + "つとめる", + "つな", + "つながる", + "つなみ", + "つねづね", + "つの", + "つのる", + "つば", + "つぶ", + "つぶす", + "つぼ", + "つま", + "つまらない", + "つまる", + "つみ", + "つみき", + "つむ", + "つめたい", + "つもる", + "つや", + "つよい", + "つり", + "つるぼ", + "つるみく", + "つわもの", + "つわり", + "てあし", + "てあて", + "てあみ", + "ていか", + "ていき", + "ていけい", + "ていけつ", + "ていけつあつ", + "ていこく", + "ていさつ", + "ていし", + "ていしゃ", + "ていせい", + "ていたい", + "ていど", + "ていねい", + "ていひょう", + "ていへん", + "ていぼう", + "てうち", + "ておくれ", + "てき", + "てくび", + "てこ", + "てさぎょう", + "てさげ", + "でし", + "てすり", + "てそう", + "てちがい", + "てちょう", + "てつがく", + "てつづき", + "てつや", + "でぬかえ", + "てぬき", + "てぬぐい", + "てのひら", + "てはい", + "てふだ", + "てほどき", + "てほん", + "てま", + "てまえ", + "てまきずし", + "てみじか", + "てみやげ", + "てら", + "てらす", + "でる", + "てれび", + "てろ", + "てわけ", + "てわたし", + "でんあつ", + "てんい", + "てんいん", + "てんかい", + "てんき", + "てんぐ", + "てんけん", + "でんげん", + "てんごく", + "てんさい", + "てんすう", + "でんち", + "てんてき", + "てんとう", + "てんない", + "てんぷ", + "てんぷら", + "てんぼうだい", + "てんめつ", + "てんらく", + "てんらんかい", + "でんりゅう", + "でんりょく", + "でんわ", + "どあ", + "どあい", + "といれ", + "とうむぎ", + "とおい", + "とおす", + "とかい", + "とかす", + "ときおり", + "ときどき", + "とくい", + "とくてい", + "とくてん", + "とくべつ", + "とけい", + "とける", + "とさか", + "とし", + "としょかん", + "とそう", + "とたん", + "とち", + "とちゅう", + "とつぜん", + "とつにゅう", + "ととのえる", + "とない", + "となえる", + "となり", + "とのさま", + "とばす", + "とぶ", + "とほ", + "とほう", + "どま", + "とまる", + "とら", + "とり", + "とる", + "とんかつ", + "ない", + "ないか", + "ないかく", + "ないこう", + "ないしょ", + "ないす", + "ないせん", + "ないそう", + "ないぞう", + "なおす", + "なく", + "なこうど", + "なさけ", + "なし", + "なす", + "なぜ", + "なぞ", + "なたでここ", + "なつ", + "なっとう", + "なつやすみ", + "ななおし", + "なにごと", + "なにもの", + "なにわ", + "なは", + "なび", + "なふだ", + "なべ", + "なまいき", + "なまえ", + "なまみ", + "なみ", + "なみだ", + "なめらか", + "なめる", + "なやむ", + "ならぶ", + "なる", + "なれる", + "なわ", + "なわとび", + "なわばり", + "にあう", + "にいがた", + "にうけ", + "におい", + "にかい", + "にがて", + "にきび", + "にく", + "にくしみ", + "にくまん", + "にげる", + "にさんかたんそ", + "にし", + "にしき", + "にす", + "にせもの", + "にちじ", + "にちじょう", + "にちようび", + "にっか", + "にっき", + "にっけい", + "にっこう", + "にっさん", + "にっしょく", + "にっすう", + "にっせき", + "にってい", + "になう", + "にほん", + "にまめ", + "にもつ", + "にやり", + "にゅういん", + "にゅうか", + "にゅうし", + "にゅうしゃ", + "にゅうだん", + "にゅうぶ", + "にら", + "にりんしゃ", + "にる", + "にわ", + "にわとり", + "にんい", + "にんか", + "にんき", + "にんげん", + "にんしき", + "にんしょう", + "にんしん", + "にんずう", + "にんそう", + "にんたい", + "にんち", + "にんてい", + "にんにく", + "にんぷ", + "にんまり", + "にんむ", + "にんめい", + "にんよう", + "ぬう", + "ぬか", + "ぬく", + "ぬくもり", + "ぬし", + "ぬの", + "ぬま", + "ぬめり", + "ぬらす", + "ぬる", + "ぬんちゃく", + "ねあげ", + "ねいき", + "ねいる", + "ねいろ", + "ねぎ", + "ねぐせ", + "ねくたい", + "ねくら", + "ねこ", + "ねこぜ", + "ねこむ", + "ねさげ", + "ねすごす", + "ねそべる", + "ねつい", + "ねつぞう", + "ねったい", + "ねったいぎょ", + "ねぶそく", + "ねふだ", + "ねぼう", + "ねほりはほり", + "ねまき", + "ねまわし", + "ねみみ", + "ねむい", + "ねもと", + "ねらう", + "ねる", + "ねわざ", + "ねんいり", + "ねんおし", + "ねんかん", + "ねんき", + "ねんきん", + "ねんぐ", + "ねんざ", + "ねんし", + "ねんちゃく", + "ねんちょう", + "ねんど", + "ねんぴ", + "ねんぶつ", + "ねんまく", + "ねんまつ", + "ねんりき", + "ねんりょう", + "ねんれい", + "のいず", + "のう", + "のおづま", + "のがす", + "のきなみ", + "のこぎり", + "のこす", + "のせる", + "のぞく", + "のぞむ", + "のたまう", + "のちほど", + "のっく", + "のばす", + "のはら", + "のべる", + "のぼる", + "のむ", + "のやま", + "のらいぬ", + "のらねこ", + "のり", + "のる", + "のれん", + "のんき", + "ばあい", + "はあく", + "ばあさん", + "はい", + "ばいか", + "ばいく", + "はいけん", + "はいご", + "はいこう", + "はいし", + "はいしゅつ", + "はいしん", + "はいすい", + "はいせつ", + "はいせん", + "はいそう", + "はいち", + "ばいばい", + "はう", + "はえ", + "はえる", + "はおる", + "はか", + "ばか", + "はかい", + "はかる", + "はき", + "はく", + "はくしゅ", + "はけん", + "はこ", + "はこぶ", + "はさみ", + "はさん", + "はし", + "はしご", + "はしる", + "ばす", + "はせる", + "ぱそこん", + "はそん", + "はたん", + "はち", + "はちみつ", + "はっか", + "はっかく", + "はっき", + "はっきり", + "はっくつ", + "はっけん", + "はっこう", + "はっさん", + "はっしゃ", + "はっしん", + "はったつ", + "はっちゃく", + "はっちゅう", + "はってん", + "はっぴょう", + "はっぽう", + "はて", + "はな", + "はなす", + "はなび", + "はにかむ", + "はね", + "はは", + "はぶらし", + "はま", + "はみがき", + "はむ", + "はむかう", + "はめつ", + "はやい", + "はら", + "はらう", + "はり", + "はる", + "はれ", + "はろうぃん", + "はわい", + "はんい", + "はんえい", + "はんえん", + "はんおん", + "はんかく", + "はんかち", + "はんきょう", + "はんこ", + "はんこう", + "はんしゃ" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Japanese"; + populate_maps(); + } + }; } #endif diff --git a/src/mnemonics/language_base.h b/src/mnemonics/language_base.h index 1d08095d7..5c988a436 100644 --- a/src/mnemonics/language_base.h +++ b/src/mnemonics/language_base.h @@ -17,79 +17,79 @@ */ namespace Language { - const int unique_prefix_length = 4; /*!< Length of the prefix of all words guaranteed to be unique */ - /*! - * \class Base - * \brief A base language class which all languages have to inherit from for - * Polymorphism. - */ - class Base - { - protected: - std::vector *word_list; /*!< A pointer to the array of words */ - std::unordered_map *word_map; /*!< hash table to find word's index */ - std::unordered_map *trimmed_word_map; /*!< hash table to find word's trimmed index */ - std::string language_name; /*!< Name of language */ - /*! - * \brief Populates the word maps after the list is ready. - */ - void populate_maps() - { - int ii; - std::vector::iterator it; - for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++) - { - (*word_map)[*it] = ii; - if (it->length() > unique_prefix_length) - { - (*trimmed_word_map)[it->substr(0, unique_prefix_length)] = ii; - } - else - { - (*trimmed_word_map)[*it] = ii; - } - } - } - public: - Base() - { - word_list = new std::vector; - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - } - /*! - * \brief Returns a pointer to the word list. - * \return A pointer to the word list. - */ - const std::vector& get_word_list() const - { - return *word_list; - } - /*! - * \brief Returns a pointer to the word map. - * \return A pointer to the word map. - */ - const std::unordered_map& get_word_map() const - { - return *word_map; - } - /*! - * \brief Returns a pointer to the trimmed word map. - * \return A pointer to the trimmed word map. - */ - const std::unordered_map& get_trimmed_word_map() const - { - return *trimmed_word_map; - } - /*! - * \brief Returns the name of the language. - * \return Name of the language. - */ - std::string get_language_name() const - { - return language_name; - } - }; + const int unique_prefix_length = 4; /*!< Length of the prefix of all words guaranteed to be unique */ + /*! + * \class Base + * \brief A base language class which all languages have to inherit from for + * Polymorphism. + */ + class Base + { + protected: + std::vector *word_list; /*!< A pointer to the array of words */ + std::unordered_map *word_map; /*!< hash table to find word's index */ + std::unordered_map *trimmed_word_map; /*!< hash table to find word's trimmed index */ + std::string language_name; /*!< Name of language */ + /*! + * \brief Populates the word maps after the list is ready. + */ + void populate_maps() + { + int ii; + std::vector::iterator it; + for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++) + { + (*word_map)[*it] = ii; + if (it->length() > unique_prefix_length) + { + (*trimmed_word_map)[it->substr(0, unique_prefix_length)] = ii; + } + else + { + (*trimmed_word_map)[*it] = ii; + } + } + } + public: + Base() + { + word_list = new std::vector; + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + } + /*! + * \brief Returns a pointer to the word list. + * \return A pointer to the word list. + */ + const std::vector& get_word_list() const + { + return *word_list; + } + /*! + * \brief Returns a pointer to the word map. + * \return A pointer to the word map. + */ + const std::unordered_map& get_word_map() const + { + return *word_map; + } + /*! + * \brief Returns a pointer to the trimmed word map. + * \return A pointer to the trimmed word map. + */ + const std::unordered_map& get_trimmed_word_map() const + { + return *trimmed_word_map; + } + /*! + * \brief Returns the name of the language. + * \return Name of the language. + */ + std::string get_language_name() const + { + return language_name; + } + }; } #endif diff --git a/src/mnemonics/old_english.h b/src/mnemonics/old_english.h index 21772cdc3..f62e3edeb 100644 --- a/src/mnemonics/old_english.h +++ b/src/mnemonics/old_english.h @@ -47,1645 +47,1645 @@ */ namespace Language { - class OldEnglish: public Base - { - public: - OldEnglish() - { - word_list = new std::vector({ - "like", - "just", - "love", - "know", - "never", - "want", - "time", - "out", - "there", - "make", - "look", - "eye", - "down", - "only", - "think", - "heart", - "back", - "then", - "into", - "about", - "more", - "away", - "still", - "them", - "take", - "thing", - "even", - "through", - "long", - "always", - "world", - "too", - "friend", - "tell", - "try", - "hand", - "thought", - "over", - "here", - "other", - "need", - "smile", - "again", - "much", - "cry", - "been", - "night", - "ever", - "little", - "said", - "end", - "some", - "those", - "around", - "mind", - "people", - "girl", - "leave", - "dream", - "left", - "turn", - "myself", - "give", - "nothing", - "really", - "off", - "before", - "something", - "find", - "walk", - "wish", - "good", - "once", - "place", - "ask", - "stop", - "keep", - "watch", - "seem", - "everything", - "wait", - "got", - "yet", - "made", - "remember", - "start", - "alone", - "run", - "hope", - "maybe", - "believe", - "body", - "hate", - "after", - "close", - "talk", - "stand", - "own", - "each", - "hurt", - "help", - "home", - "god", - "soul", - "new", - "many", - "two", - "inside", - "should", - "true", - "first", - "fear", - "mean", - "better", - "play", - "another", - "gone", - "change", - "use", - "wonder", - "someone", - "hair", - "cold", - "open", - "best", - "any", - "behind", - "happen", - "water", - "dark", - "laugh", - "stay", - "forever", - "name", - "work", - "show", - "sky", - "break", - "came", - "deep", - "door", - "put", - "black", - "together", - "upon", - "happy", - "such", - "great", - "white", - "matter", - "fill", - "past", - "please", - "burn", - "cause", - "enough", - "touch", - "moment", - "soon", - "voice", - "scream", - "anything", - "stare", - "sound", - "red", - "everyone", - "hide", - "kiss", - "truth", - "death", - "beautiful", - "mine", - "blood", - "broken", - "very", - "pass", - "next", - "forget", - "tree", - "wrong", - "air", - "mother", - "understand", - "lip", - "hit", - "wall", - "memory", - "sleep", - "free", - "high", - "realize", - "school", - "might", - "skin", - "sweet", - "perfect", - "blue", - "kill", - "breath", - "dance", - "against", - "fly", - "between", - "grow", - "strong", - "under", - "listen", - "bring", - "sometimes", - "speak", - "pull", - "person", - "become", - "family", - "begin", - "ground", - "real", - "small", - "father", - "sure", - "feet", - "rest", - "young", - "finally", - "land", - "across", - "today", - "different", - "guy", - "line", - "fire", - "reason", - "reach", - "second", - "slowly", - "write", - "eat", - "smell", - "mouth", - "step", - "learn", - "three", - "floor", - "promise", - "breathe", - "darkness", - "push", - "earth", - "guess", - "save", - "song", - "above", - "along", - "both", - "color", - "house", - "almost", - "sorry", - "anymore", - "brother", - "okay", - "dear", - "game", - "fade", - "already", - "apart", - "warm", - "beauty", - "heard", - "notice", - "question", - "shine", - "began", - "piece", - "whole", - "shadow", - "secret", - "street", - "within", - "finger", - "point", - "morning", - "whisper", - "child", - "moon", - "green", - "story", - "glass", - "kid", - "silence", - "since", - "soft", - "yourself", - "empty", - "shall", - "angel", - "answer", - "baby", - "bright", - "dad", - "path", - "worry", - "hour", - "drop", - "follow", - "power", - "war", - "half", - "flow", - "heaven", - "act", - "chance", - "fact", - "least", - "tired", - "children", - "near", - "quite", - "afraid", - "rise", - "sea", - "taste", - "window", - "cover", - "nice", - "trust", - "lot", - "sad", - "cool", - "force", - "peace", - "return", - "blind", - "easy", - "ready", - "roll", - "rose", - "drive", - "held", - "music", - "beneath", - "hang", - "mom", - "paint", - "emotion", - "quiet", - "clear", - "cloud", - "few", - "pretty", - "bird", - "outside", - "paper", - "picture", - "front", - "rock", - "simple", - "anyone", - "meant", - "reality", - "road", - "sense", - "waste", - "bit", - "leaf", - "thank", - "happiness", - "meet", - "men", - "smoke", - "truly", - "decide", - "self", - "age", - "book", - "form", - "alive", - "carry", - "escape", - "damn", - "instead", - "able", - "ice", - "minute", - "throw", - "catch", - "leg", - "ring", - "course", - "goodbye", - "lead", - "poem", - "sick", - "corner", - "desire", - "known", - "problem", - "remind", - "shoulder", - "suppose", - "toward", - "wave", - "drink", - "jump", - "woman", - "pretend", - "sister", - "week", - "human", - "joy", - "crack", - "grey", - "pray", - "surprise", - "dry", - "knee", - "less", - "search", - "bleed", - "caught", - "clean", - "embrace", - "future", - "king", - "son", - "sorrow", - "chest", - "hug", - "remain", - "sat", - "worth", - "blow", - "daddy", - "final", - "parent", - "tight", - "also", - "create", - "lonely", - "safe", - "cross", - "dress", - "evil", - "silent", - "bone", - "fate", - "perhaps", - "anger", - "class", - "scar", - "snow", - "tiny", - "tonight", - "continue", - "control", - "dog", - "edge", - "mirror", - "month", - "suddenly", - "comfort", - "given", - "loud", - "quickly", - "gaze", - "plan", - "rush", - "stone", - "town", - "battle", - "ignore", - "spirit", - "stood", - "stupid", - "yours", - "brown", - "build", - "dust", - "hey", - "kept", - "pay", - "phone", - "twist", - "although", - "ball", - "beyond", - "hidden", - "nose", - "taken", - "fail", - "float", - "pure", - "somehow", - "wash", - "wrap", - "angry", - "cheek", - "creature", - "forgotten", - "heat", - "rip", - "single", - "space", - "special", - "weak", - "whatever", - "yell", - "anyway", - "blame", - "job", - "choose", - "country", - "curse", - "drift", - "echo", - "figure", - "grew", - "laughter", - "neck", - "suffer", - "worse", - "yeah", - "disappear", - "foot", - "forward", - "knife", - "mess", - "somewhere", - "stomach", - "storm", - "beg", - "idea", - "lift", - "offer", - "breeze", - "field", - "five", - "often", - "simply", - "stuck", - "win", - "allow", - "confuse", - "enjoy", - "except", - "flower", - "seek", - "strength", - "calm", - "grin", - "gun", - "heavy", - "hill", - "large", - "ocean", - "shoe", - "sigh", - "straight", - "summer", - "tongue", - "accept", - "crazy", - "everyday", - "exist", - "grass", - "mistake", - "sent", - "shut", - "surround", - "table", - "ache", - "brain", - "destroy", - "heal", - "nature", - "shout", - "sign", - "stain", - "choice", - "doubt", - "glance", - "glow", - "mountain", - "queen", - "stranger", - "throat", - "tomorrow", - "city", - "either", - "fish", - "flame", - "rather", - "shape", - "spin", - "spread", - "ash", - "distance", - "finish", - "image", - "imagine", - "important", - "nobody", - "shatter", - "warmth", - "became", - "feed", - "flesh", - "funny", - "lust", - "shirt", - "trouble", - "yellow", - "attention", - "bare", - "bite", - "money", - "protect", - "amaze", - "appear", - "born", - "choke", - "completely", - "daughter", - "fresh", - "friendship", - "gentle", - "probably", - "six", - "deserve", - "expect", - "grab", - "middle", - "nightmare", - "river", - "thousand", - "weight", - "worst", - "wound", - "barely", - "bottle", - "cream", - "regret", - "relationship", - "stick", - "test", - "crush", - "endless", - "fault", - "itself", - "rule", - "spill", - "art", - "circle", - "join", - "kick", - "mask", - "master", - "passion", - "quick", - "raise", - "smooth", - "unless", - "wander", - "actually", - "broke", - "chair", - "deal", - "favorite", - "gift", - "note", - "number", - "sweat", - "box", - "chill", - "clothes", - "lady", - "mark", - "park", - "poor", - "sadness", - "tie", - "animal", - "belong", - "brush", - "consume", - "dawn", - "forest", - "innocent", - "pen", - "pride", - "stream", - "thick", - "clay", - "complete", - "count", - "draw", - "faith", - "press", - "silver", - "struggle", - "surface", - "taught", - "teach", - "wet", - "bless", - "chase", - "climb", - "enter", - "letter", - "melt", - "metal", - "movie", - "stretch", - "swing", - "vision", - "wife", - "beside", - "crash", - "forgot", - "guide", - "haunt", - "joke", - "knock", - "plant", - "pour", - "prove", - "reveal", - "steal", - "stuff", - "trip", - "wood", - "wrist", - "bother", - "bottom", - "crawl", - "crowd", - "fix", - "forgive", - "frown", - "grace", - "loose", - "lucky", - "party", - "release", - "surely", - "survive", - "teacher", - "gently", - "grip", - "speed", - "suicide", - "travel", - "treat", - "vein", - "written", - "cage", - "chain", - "conversation", - "date", - "enemy", - "however", - "interest", - "million", - "page", - "pink", - "proud", - "sway", - "themselves", - "winter", - "church", - "cruel", - "cup", - "demon", - "experience", - "freedom", - "pair", - "pop", - "purpose", - "respect", - "shoot", - "softly", - "state", - "strange", - "bar", - "birth", - "curl", - "dirt", - "excuse", - "lord", - "lovely", - "monster", - "order", - "pack", - "pants", - "pool", - "scene", - "seven", - "shame", - "slide", - "ugly", - "among", - "blade", - "blonde", - "closet", - "creek", - "deny", - "drug", - "eternity", - "gain", - "grade", - "handle", - "key", - "linger", - "pale", - "prepare", - "swallow", - "swim", - "tremble", - "wheel", - "won", - "cast", - "cigarette", - "claim", - "college", - "direction", - "dirty", - "gather", - "ghost", - "hundred", - "loss", - "lung", - "orange", - "present", - "swear", - "swirl", - "twice", - "wild", - "bitter", - "blanket", - "doctor", - "everywhere", - "flash", - "grown", - "knowledge", - "numb", - "pressure", - "radio", - "repeat", - "ruin", - "spend", - "unknown", - "buy", - "clock", - "devil", - "early", - "false", - "fantasy", - "pound", - "precious", - "refuse", - "sheet", - "teeth", - "welcome", - "add", - "ahead", - "block", - "bury", - "caress", - "content", - "depth", - "despite", - "distant", - "marry", - "purple", - "threw", - "whenever", - "bomb", - "dull", - "easily", - "grasp", - "hospital", - "innocence", - "normal", - "receive", - "reply", - "rhyme", - "shade", - "someday", - "sword", - "toe", - "visit", - "asleep", - "bought", - "center", - "consider", - "flat", - "hero", - "history", - "ink", - "insane", - "muscle", - "mystery", - "pocket", - "reflection", - "shove", - "silently", - "smart", - "soldier", - "spot", - "stress", - "train", - "type", - "view", - "whether", - "bus", - "energy", - "explain", - "holy", - "hunger", - "inch", - "magic", - "mix", - "noise", - "nowhere", - "prayer", - "presence", - "shock", - "snap", - "spider", - "study", - "thunder", - "trail", - "admit", - "agree", - "bag", - "bang", - "bound", - "butterfly", - "cute", - "exactly", - "explode", - "familiar", - "fold", - "further", - "pierce", - "reflect", - "scent", - "selfish", - "sharp", - "sink", - "spring", - "stumble", - "universe", - "weep", - "women", - "wonderful", - "action", - "ancient", - "attempt", - "avoid", - "birthday", - "branch", - "chocolate", - "core", - "depress", - "drunk", - "especially", - "focus", - "fruit", - "honest", - "match", - "palm", - "perfectly", - "pillow", - "pity", - "poison", - "roar", - "shift", - "slightly", - "thump", - "truck", - "tune", - "twenty", - "unable", - "wipe", - "wrote", - "coat", - "constant", - "dinner", - "drove", - "egg", - "eternal", - "flight", - "flood", - "frame", - "freak", - "gasp", - "glad", - "hollow", - "motion", - "peer", - "plastic", - "root", - "screen", - "season", - "sting", - "strike", - "team", - "unlike", - "victim", - "volume", - "warn", - "weird", - "attack", - "await", - "awake", - "built", - "charm", - "crave", - "despair", - "fought", - "grant", - "grief", - "horse", - "limit", - "message", - "ripple", - "sanity", - "scatter", - "serve", - "split", - "string", - "trick", - "annoy", - "blur", - "boat", - "brave", - "clearly", - "cling", - "connect", - "fist", - "forth", - "imagination", - "iron", - "jock", - "judge", - "lesson", - "milk", - "misery", - "nail", - "naked", - "ourselves", - "poet", - "possible", - "princess", - "sail", - "size", - "snake", - "society", - "stroke", - "torture", - "toss", - "trace", - "wise", - "bloom", - "bullet", - "cell", - "check", - "cost", - "darling", - "during", - "footstep", - "fragile", - "hallway", - "hardly", - "horizon", - "invisible", - "journey", - "midnight", - "mud", - "nod", - "pause", - "relax", - "shiver", - "sudden", - "value", - "youth", - "abuse", - "admire", - "blink", - "breast", - "bruise", - "constantly", - "couple", - "creep", - "curve", - "difference", - "dumb", - "emptiness", - "gotta", - "honor", - "plain", - "planet", - "recall", - "rub", - "ship", - "slam", - "soar", - "somebody", - "tightly", - "weather", - "adore", - "approach", - "bond", - "bread", - "burst", - "candle", - "coffee", - "cousin", - "crime", - "desert", - "flutter", - "frozen", - "grand", - "heel", - "hello", - "language", - "level", - "movement", - "pleasure", - "powerful", - "random", - "rhythm", - "settle", - "silly", - "slap", - "sort", - "spoken", - "steel", - "threaten", - "tumble", - "upset", - "aside", - "awkward", - "bee", - "blank", - "board", - "button", - "card", - "carefully", - "complain", - "crap", - "deeply", - "discover", - "drag", - "dread", - "effort", - "entire", - "fairy", - "giant", - "gotten", - "greet", - "illusion", - "jeans", - "leap", - "liquid", - "march", - "mend", - "nervous", - "nine", - "replace", - "rope", - "spine", - "stole", - "terror", - "accident", - "apple", - "balance", - "boom", - "childhood", - "collect", - "demand", - "depression", - "eventually", - "faint", - "glare", - "goal", - "group", - "honey", - "kitchen", - "laid", - "limb", - "machine", - "mere", - "mold", - "murder", - "nerve", - "painful", - "poetry", - "prince", - "rabbit", - "shelter", - "shore", - "shower", - "soothe", - "stair", - "steady", - "sunlight", - "tangle", - "tease", - "treasure", - "uncle", - "begun", - "bliss", - "canvas", - "cheer", - "claw", - "clutch", - "commit", - "crimson", - "crystal", - "delight", - "doll", - "existence", - "express", - "fog", - "football", - "gay", - "goose", - "guard", - "hatred", - "illuminate", - "mass", - "math", - "mourn", - "rich", - "rough", - "skip", - "stir", - "student", - "style", - "support", - "thorn", - "tough", - "yard", - "yearn", - "yesterday", - "advice", - "appreciate", - "autumn", - "bank", - "beam", - "bowl", - "capture", - "carve", - "collapse", - "confusion", - "creation", - "dove", - "feather", - "girlfriend", - "glory", - "government", - "harsh", - "hop", - "inner", - "loser", - "moonlight", - "neighbor", - "neither", - "peach", - "pig", - "praise", - "screw", - "shield", - "shimmer", - "sneak", - "stab", - "subject", - "throughout", - "thrown", - "tower", - "twirl", - "wow", - "army", - "arrive", - "bathroom", - "bump", - "cease", - "cookie", - "couch", - "courage", - "dim", - "guilt", - "howl", - "hum", - "husband", - "insult", - "led", - "lunch", - "mock", - "mostly", - "natural", - "nearly", - "needle", - "nerd", - "peaceful", - "perfection", - "pile", - "price", - "remove", - "roam", - "sanctuary", - "serious", - "shiny", - "shook", - "sob", - "stolen", - "tap", - "vain", - "void", - "warrior", - "wrinkle", - "affection", - "apologize", - "blossom", - "bounce", - "bridge", - "cheap", - "crumble", - "decision", - "descend", - "desperately", - "dig", - "dot", - "flip", - "frighten", - "heartbeat", - "huge", - "lazy", - "lick", - "odd", - "opinion", - "process", - "puzzle", - "quietly", - "retreat", - "score", - "sentence", - "separate", - "situation", - "skill", - "soak", - "square", - "stray", - "taint", - "task", - "tide", - "underneath", - "veil", - "whistle", - "anywhere", - "bedroom", - "bid", - "bloody", - "burden", - "careful", - "compare", - "concern", - "curtain", - "decay", - "defeat", - "describe", - "double", - "dreamer", - "driver", - "dwell", - "evening", - "flare", - "flicker", - "grandma", - "guitar", - "harm", - "horrible", - "hungry", - "indeed", - "lace", - "melody", - "monkey", - "nation", - "object", - "obviously", - "rainbow", - "salt", - "scratch", - "shown", - "shy", - "stage", - "stun", - "third", - "tickle", - "useless", - "weakness", - "worship", - "worthless", - "afternoon", - "beard", - "boyfriend", - "bubble", - "busy", - "certain", - "chin", - "concrete", - "desk", - "diamond", - "doom", - "drawn", - "due", - "felicity", - "freeze", - "frost", - "garden", - "glide", - "harmony", - "hopefully", - "hunt", - "jealous", - "lightning", - "mama", - "mercy", - "peel", - "physical", - "position", - "pulse", - "punch", - "quit", - "rant", - "respond", - "salty", - "sane", - "satisfy", - "savior", - "sheep", - "slept", - "social", - "sport", - "tuck", - "utter", - "valley", - "wolf", - "aim", - "alas", - "alter", - "arrow", - "awaken", - "beaten", - "belief", - "brand", - "ceiling", - "cheese", - "clue", - "confidence", - "connection", - "daily", - "disguise", - "eager", - "erase", - "essence", - "everytime", - "expression", - "fan", - "flag", - "flirt", - "foul", - "fur", - "giggle", - "glorious", - "ignorance", - "law", - "lifeless", - "measure", - "mighty", - "muse", - "north", - "opposite", - "paradise", - "patience", - "patient", - "pencil", - "petal", - "plate", - "ponder", - "possibly", - "practice", - "slice", - "spell", - "stock", - "strife", - "strip", - "suffocate", - "suit", - "tender", - "tool", - "trade", - "velvet", - "verse", - "waist", - "witch", - "aunt", - "bench", - "bold", - "cap", - "certainly", - "click", - "companion", - "creator", - "dart", - "delicate", - "determine", - "dish", - "dragon", - "drama", - "drum", - "dude", - "everybody", - "feast", - "forehead", - "former", - "fright", - "fully", - "gas", - "hook", - "hurl", - "invite", - "juice", - "manage", - "moral", - "possess", - "raw", - "rebel", - "royal", - "scale", - "scary", - "several", - "slight", - "stubborn", - "swell", - "talent", - "tea", - "terrible", - "thread", - "torment", - "trickle", - "usually", - "vast", - "violence", - "weave", - "acid", - "agony", - "ashamed", - "awe", - "belly", - "blend", - "blush", - "character", - "cheat", - "common", - "company", - "coward", - "creak", - "danger", - "deadly", - "defense", - "define", - "depend", - "desperate", - "destination", - "dew", - "duck", - "dusty", - "embarrass", - "engine", - "example", - "explore", - "foe", - "freely", - "frustrate", - "generation", - "glove", - "guilty", - "health", - "hurry", - "idiot", - "impossible", - "inhale", - "jaw", - "kingdom", - "mention", - "mist", - "moan", - "mumble", - "mutter", - "observe", - "ode", - "pathetic", - "pattern", - "pie", - "prefer", - "puff", - "rape", - "rare", - "revenge", - "rude", - "scrape", - "spiral", - "squeeze", - "strain", - "sunset", - "suspend", - "sympathy", - "thigh", - "throne", - "total", - "unseen", - "weapon", - "weary" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "OldEnglish"; - populate_maps(); - } - }; + class OldEnglish: public Base + { + public: + OldEnglish() + { + word_list = new std::vector({ + "like", + "just", + "love", + "know", + "never", + "want", + "time", + "out", + "there", + "make", + "look", + "eye", + "down", + "only", + "think", + "heart", + "back", + "then", + "into", + "about", + "more", + "away", + "still", + "them", + "take", + "thing", + "even", + "through", + "long", + "always", + "world", + "too", + "friend", + "tell", + "try", + "hand", + "thought", + "over", + "here", + "other", + "need", + "smile", + "again", + "much", + "cry", + "been", + "night", + "ever", + "little", + "said", + "end", + "some", + "those", + "around", + "mind", + "people", + "girl", + "leave", + "dream", + "left", + "turn", + "myself", + "give", + "nothing", + "really", + "off", + "before", + "something", + "find", + "walk", + "wish", + "good", + "once", + "place", + "ask", + "stop", + "keep", + "watch", + "seem", + "everything", + "wait", + "got", + "yet", + "made", + "remember", + "start", + "alone", + "run", + "hope", + "maybe", + "believe", + "body", + "hate", + "after", + "close", + "talk", + "stand", + "own", + "each", + "hurt", + "help", + "home", + "god", + "soul", + "new", + "many", + "two", + "inside", + "should", + "true", + "first", + "fear", + "mean", + "better", + "play", + "another", + "gone", + "change", + "use", + "wonder", + "someone", + "hair", + "cold", + "open", + "best", + "any", + "behind", + "happen", + "water", + "dark", + "laugh", + "stay", + "forever", + "name", + "work", + "show", + "sky", + "break", + "came", + "deep", + "door", + "put", + "black", + "together", + "upon", + "happy", + "such", + "great", + "white", + "matter", + "fill", + "past", + "please", + "burn", + "cause", + "enough", + "touch", + "moment", + "soon", + "voice", + "scream", + "anything", + "stare", + "sound", + "red", + "everyone", + "hide", + "kiss", + "truth", + "death", + "beautiful", + "mine", + "blood", + "broken", + "very", + "pass", + "next", + "forget", + "tree", + "wrong", + "air", + "mother", + "understand", + "lip", + "hit", + "wall", + "memory", + "sleep", + "free", + "high", + "realize", + "school", + "might", + "skin", + "sweet", + "perfect", + "blue", + "kill", + "breath", + "dance", + "against", + "fly", + "between", + "grow", + "strong", + "under", + "listen", + "bring", + "sometimes", + "speak", + "pull", + "person", + "become", + "family", + "begin", + "ground", + "real", + "small", + "father", + "sure", + "feet", + "rest", + "young", + "finally", + "land", + "across", + "today", + "different", + "guy", + "line", + "fire", + "reason", + "reach", + "second", + "slowly", + "write", + "eat", + "smell", + "mouth", + "step", + "learn", + "three", + "floor", + "promise", + "breathe", + "darkness", + "push", + "earth", + "guess", + "save", + "song", + "above", + "along", + "both", + "color", + "house", + "almost", + "sorry", + "anymore", + "brother", + "okay", + "dear", + "game", + "fade", + "already", + "apart", + "warm", + "beauty", + "heard", + "notice", + "question", + "shine", + "began", + "piece", + "whole", + "shadow", + "secret", + "street", + "within", + "finger", + "point", + "morning", + "whisper", + "child", + "moon", + "green", + "story", + "glass", + "kid", + "silence", + "since", + "soft", + "yourself", + "empty", + "shall", + "angel", + "answer", + "baby", + "bright", + "dad", + "path", + "worry", + "hour", + "drop", + "follow", + "power", + "war", + "half", + "flow", + "heaven", + "act", + "chance", + "fact", + "least", + "tired", + "children", + "near", + "quite", + "afraid", + "rise", + "sea", + "taste", + "window", + "cover", + "nice", + "trust", + "lot", + "sad", + "cool", + "force", + "peace", + "return", + "blind", + "easy", + "ready", + "roll", + "rose", + "drive", + "held", + "music", + "beneath", + "hang", + "mom", + "paint", + "emotion", + "quiet", + "clear", + "cloud", + "few", + "pretty", + "bird", + "outside", + "paper", + "picture", + "front", + "rock", + "simple", + "anyone", + "meant", + "reality", + "road", + "sense", + "waste", + "bit", + "leaf", + "thank", + "happiness", + "meet", + "men", + "smoke", + "truly", + "decide", + "self", + "age", + "book", + "form", + "alive", + "carry", + "escape", + "damn", + "instead", + "able", + "ice", + "minute", + "throw", + "catch", + "leg", + "ring", + "course", + "goodbye", + "lead", + "poem", + "sick", + "corner", + "desire", + "known", + "problem", + "remind", + "shoulder", + "suppose", + "toward", + "wave", + "drink", + "jump", + "woman", + "pretend", + "sister", + "week", + "human", + "joy", + "crack", + "grey", + "pray", + "surprise", + "dry", + "knee", + "less", + "search", + "bleed", + "caught", + "clean", + "embrace", + "future", + "king", + "son", + "sorrow", + "chest", + "hug", + "remain", + "sat", + "worth", + "blow", + "daddy", + "final", + "parent", + "tight", + "also", + "create", + "lonely", + "safe", + "cross", + "dress", + "evil", + "silent", + "bone", + "fate", + "perhaps", + "anger", + "class", + "scar", + "snow", + "tiny", + "tonight", + "continue", + "control", + "dog", + "edge", + "mirror", + "month", + "suddenly", + "comfort", + "given", + "loud", + "quickly", + "gaze", + "plan", + "rush", + "stone", + "town", + "battle", + "ignore", + "spirit", + "stood", + "stupid", + "yours", + "brown", + "build", + "dust", + "hey", + "kept", + "pay", + "phone", + "twist", + "although", + "ball", + "beyond", + "hidden", + "nose", + "taken", + "fail", + "float", + "pure", + "somehow", + "wash", + "wrap", + "angry", + "cheek", + "creature", + "forgotten", + "heat", + "rip", + "single", + "space", + "special", + "weak", + "whatever", + "yell", + "anyway", + "blame", + "job", + "choose", + "country", + "curse", + "drift", + "echo", + "figure", + "grew", + "laughter", + "neck", + "suffer", + "worse", + "yeah", + "disappear", + "foot", + "forward", + "knife", + "mess", + "somewhere", + "stomach", + "storm", + "beg", + "idea", + "lift", + "offer", + "breeze", + "field", + "five", + "often", + "simply", + "stuck", + "win", + "allow", + "confuse", + "enjoy", + "except", + "flower", + "seek", + "strength", + "calm", + "grin", + "gun", + "heavy", + "hill", + "large", + "ocean", + "shoe", + "sigh", + "straight", + "summer", + "tongue", + "accept", + "crazy", + "everyday", + "exist", + "grass", + "mistake", + "sent", + "shut", + "surround", + "table", + "ache", + "brain", + "destroy", + "heal", + "nature", + "shout", + "sign", + "stain", + "choice", + "doubt", + "glance", + "glow", + "mountain", + "queen", + "stranger", + "throat", + "tomorrow", + "city", + "either", + "fish", + "flame", + "rather", + "shape", + "spin", + "spread", + "ash", + "distance", + "finish", + "image", + "imagine", + "important", + "nobody", + "shatter", + "warmth", + "became", + "feed", + "flesh", + "funny", + "lust", + "shirt", + "trouble", + "yellow", + "attention", + "bare", + "bite", + "money", + "protect", + "amaze", + "appear", + "born", + "choke", + "completely", + "daughter", + "fresh", + "friendship", + "gentle", + "probably", + "six", + "deserve", + "expect", + "grab", + "middle", + "nightmare", + "river", + "thousand", + "weight", + "worst", + "wound", + "barely", + "bottle", + "cream", + "regret", + "relationship", + "stick", + "test", + "crush", + "endless", + "fault", + "itself", + "rule", + "spill", + "art", + "circle", + "join", + "kick", + "mask", + "master", + "passion", + "quick", + "raise", + "smooth", + "unless", + "wander", + "actually", + "broke", + "chair", + "deal", + "favorite", + "gift", + "note", + "number", + "sweat", + "box", + "chill", + "clothes", + "lady", + "mark", + "park", + "poor", + "sadness", + "tie", + "animal", + "belong", + "brush", + "consume", + "dawn", + "forest", + "innocent", + "pen", + "pride", + "stream", + "thick", + "clay", + "complete", + "count", + "draw", + "faith", + "press", + "silver", + "struggle", + "surface", + "taught", + "teach", + "wet", + "bless", + "chase", + "climb", + "enter", + "letter", + "melt", + "metal", + "movie", + "stretch", + "swing", + "vision", + "wife", + "beside", + "crash", + "forgot", + "guide", + "haunt", + "joke", + "knock", + "plant", + "pour", + "prove", + "reveal", + "steal", + "stuff", + "trip", + "wood", + "wrist", + "bother", + "bottom", + "crawl", + "crowd", + "fix", + "forgive", + "frown", + "grace", + "loose", + "lucky", + "party", + "release", + "surely", + "survive", + "teacher", + "gently", + "grip", + "speed", + "suicide", + "travel", + "treat", + "vein", + "written", + "cage", + "chain", + "conversation", + "date", + "enemy", + "however", + "interest", + "million", + "page", + "pink", + "proud", + "sway", + "themselves", + "winter", + "church", + "cruel", + "cup", + "demon", + "experience", + "freedom", + "pair", + "pop", + "purpose", + "respect", + "shoot", + "softly", + "state", + "strange", + "bar", + "birth", + "curl", + "dirt", + "excuse", + "lord", + "lovely", + "monster", + "order", + "pack", + "pants", + "pool", + "scene", + "seven", + "shame", + "slide", + "ugly", + "among", + "blade", + "blonde", + "closet", + "creek", + "deny", + "drug", + "eternity", + "gain", + "grade", + "handle", + "key", + "linger", + "pale", + "prepare", + "swallow", + "swim", + "tremble", + "wheel", + "won", + "cast", + "cigarette", + "claim", + "college", + "direction", + "dirty", + "gather", + "ghost", + "hundred", + "loss", + "lung", + "orange", + "present", + "swear", + "swirl", + "twice", + "wild", + "bitter", + "blanket", + "doctor", + "everywhere", + "flash", + "grown", + "knowledge", + "numb", + "pressure", + "radio", + "repeat", + "ruin", + "spend", + "unknown", + "buy", + "clock", + "devil", + "early", + "false", + "fantasy", + "pound", + "precious", + "refuse", + "sheet", + "teeth", + "welcome", + "add", + "ahead", + "block", + "bury", + "caress", + "content", + "depth", + "despite", + "distant", + "marry", + "purple", + "threw", + "whenever", + "bomb", + "dull", + "easily", + "grasp", + "hospital", + "innocence", + "normal", + "receive", + "reply", + "rhyme", + "shade", + "someday", + "sword", + "toe", + "visit", + "asleep", + "bought", + "center", + "consider", + "flat", + "hero", + "history", + "ink", + "insane", + "muscle", + "mystery", + "pocket", + "reflection", + "shove", + "silently", + "smart", + "soldier", + "spot", + "stress", + "train", + "type", + "view", + "whether", + "bus", + "energy", + "explain", + "holy", + "hunger", + "inch", + "magic", + "mix", + "noise", + "nowhere", + "prayer", + "presence", + "shock", + "snap", + "spider", + "study", + "thunder", + "trail", + "admit", + "agree", + "bag", + "bang", + "bound", + "butterfly", + "cute", + "exactly", + "explode", + "familiar", + "fold", + "further", + "pierce", + "reflect", + "scent", + "selfish", + "sharp", + "sink", + "spring", + "stumble", + "universe", + "weep", + "women", + "wonderful", + "action", + "ancient", + "attempt", + "avoid", + "birthday", + "branch", + "chocolate", + "core", + "depress", + "drunk", + "especially", + "focus", + "fruit", + "honest", + "match", + "palm", + "perfectly", + "pillow", + "pity", + "poison", + "roar", + "shift", + "slightly", + "thump", + "truck", + "tune", + "twenty", + "unable", + "wipe", + "wrote", + "coat", + "constant", + "dinner", + "drove", + "egg", + "eternal", + "flight", + "flood", + "frame", + "freak", + "gasp", + "glad", + "hollow", + "motion", + "peer", + "plastic", + "root", + "screen", + "season", + "sting", + "strike", + "team", + "unlike", + "victim", + "volume", + "warn", + "weird", + "attack", + "await", + "awake", + "built", + "charm", + "crave", + "despair", + "fought", + "grant", + "grief", + "horse", + "limit", + "message", + "ripple", + "sanity", + "scatter", + "serve", + "split", + "string", + "trick", + "annoy", + "blur", + "boat", + "brave", + "clearly", + "cling", + "connect", + "fist", + "forth", + "imagination", + "iron", + "jock", + "judge", + "lesson", + "milk", + "misery", + "nail", + "naked", + "ourselves", + "poet", + "possible", + "princess", + "sail", + "size", + "snake", + "society", + "stroke", + "torture", + "toss", + "trace", + "wise", + "bloom", + "bullet", + "cell", + "check", + "cost", + "darling", + "during", + "footstep", + "fragile", + "hallway", + "hardly", + "horizon", + "invisible", + "journey", + "midnight", + "mud", + "nod", + "pause", + "relax", + "shiver", + "sudden", + "value", + "youth", + "abuse", + "admire", + "blink", + "breast", + "bruise", + "constantly", + "couple", + "creep", + "curve", + "difference", + "dumb", + "emptiness", + "gotta", + "honor", + "plain", + "planet", + "recall", + "rub", + "ship", + "slam", + "soar", + "somebody", + "tightly", + "weather", + "adore", + "approach", + "bond", + "bread", + "burst", + "candle", + "coffee", + "cousin", + "crime", + "desert", + "flutter", + "frozen", + "grand", + "heel", + "hello", + "language", + "level", + "movement", + "pleasure", + "powerful", + "random", + "rhythm", + "settle", + "silly", + "slap", + "sort", + "spoken", + "steel", + "threaten", + "tumble", + "upset", + "aside", + "awkward", + "bee", + "blank", + "board", + "button", + "card", + "carefully", + "complain", + "crap", + "deeply", + "discover", + "drag", + "dread", + "effort", + "entire", + "fairy", + "giant", + "gotten", + "greet", + "illusion", + "jeans", + "leap", + "liquid", + "march", + "mend", + "nervous", + "nine", + "replace", + "rope", + "spine", + "stole", + "terror", + "accident", + "apple", + "balance", + "boom", + "childhood", + "collect", + "demand", + "depression", + "eventually", + "faint", + "glare", + "goal", + "group", + "honey", + "kitchen", + "laid", + "limb", + "machine", + "mere", + "mold", + "murder", + "nerve", + "painful", + "poetry", + "prince", + "rabbit", + "shelter", + "shore", + "shower", + "soothe", + "stair", + "steady", + "sunlight", + "tangle", + "tease", + "treasure", + "uncle", + "begun", + "bliss", + "canvas", + "cheer", + "claw", + "clutch", + "commit", + "crimson", + "crystal", + "delight", + "doll", + "existence", + "express", + "fog", + "football", + "gay", + "goose", + "guard", + "hatred", + "illuminate", + "mass", + "math", + "mourn", + "rich", + "rough", + "skip", + "stir", + "student", + "style", + "support", + "thorn", + "tough", + "yard", + "yearn", + "yesterday", + "advice", + "appreciate", + "autumn", + "bank", + "beam", + "bowl", + "capture", + "carve", + "collapse", + "confusion", + "creation", + "dove", + "feather", + "girlfriend", + "glory", + "government", + "harsh", + "hop", + "inner", + "loser", + "moonlight", + "neighbor", + "neither", + "peach", + "pig", + "praise", + "screw", + "shield", + "shimmer", + "sneak", + "stab", + "subject", + "throughout", + "thrown", + "tower", + "twirl", + "wow", + "army", + "arrive", + "bathroom", + "bump", + "cease", + "cookie", + "couch", + "courage", + "dim", + "guilt", + "howl", + "hum", + "husband", + "insult", + "led", + "lunch", + "mock", + "mostly", + "natural", + "nearly", + "needle", + "nerd", + "peaceful", + "perfection", + "pile", + "price", + "remove", + "roam", + "sanctuary", + "serious", + "shiny", + "shook", + "sob", + "stolen", + "tap", + "vain", + "void", + "warrior", + "wrinkle", + "affection", + "apologize", + "blossom", + "bounce", + "bridge", + "cheap", + "crumble", + "decision", + "descend", + "desperately", + "dig", + "dot", + "flip", + "frighten", + "heartbeat", + "huge", + "lazy", + "lick", + "odd", + "opinion", + "process", + "puzzle", + "quietly", + "retreat", + "score", + "sentence", + "separate", + "situation", + "skill", + "soak", + "square", + "stray", + "taint", + "task", + "tide", + "underneath", + "veil", + "whistle", + "anywhere", + "bedroom", + "bid", + "bloody", + "burden", + "careful", + "compare", + "concern", + "curtain", + "decay", + "defeat", + "describe", + "double", + "dreamer", + "driver", + "dwell", + "evening", + "flare", + "flicker", + "grandma", + "guitar", + "harm", + "horrible", + "hungry", + "indeed", + "lace", + "melody", + "monkey", + "nation", + "object", + "obviously", + "rainbow", + "salt", + "scratch", + "shown", + "shy", + "stage", + "stun", + "third", + "tickle", + "useless", + "weakness", + "worship", + "worthless", + "afternoon", + "beard", + "boyfriend", + "bubble", + "busy", + "certain", + "chin", + "concrete", + "desk", + "diamond", + "doom", + "drawn", + "due", + "felicity", + "freeze", + "frost", + "garden", + "glide", + "harmony", + "hopefully", + "hunt", + "jealous", + "lightning", + "mama", + "mercy", + "peel", + "physical", + "position", + "pulse", + "punch", + "quit", + "rant", + "respond", + "salty", + "sane", + "satisfy", + "savior", + "sheep", + "slept", + "social", + "sport", + "tuck", + "utter", + "valley", + "wolf", + "aim", + "alas", + "alter", + "arrow", + "awaken", + "beaten", + "belief", + "brand", + "ceiling", + "cheese", + "clue", + "confidence", + "connection", + "daily", + "disguise", + "eager", + "erase", + "essence", + "everytime", + "expression", + "fan", + "flag", + "flirt", + "foul", + "fur", + "giggle", + "glorious", + "ignorance", + "law", + "lifeless", + "measure", + "mighty", + "muse", + "north", + "opposite", + "paradise", + "patience", + "patient", + "pencil", + "petal", + "plate", + "ponder", + "possibly", + "practice", + "slice", + "spell", + "stock", + "strife", + "strip", + "suffocate", + "suit", + "tender", + "tool", + "trade", + "velvet", + "verse", + "waist", + "witch", + "aunt", + "bench", + "bold", + "cap", + "certainly", + "click", + "companion", + "creator", + "dart", + "delicate", + "determine", + "dish", + "dragon", + "drama", + "drum", + "dude", + "everybody", + "feast", + "forehead", + "former", + "fright", + "fully", + "gas", + "hook", + "hurl", + "invite", + "juice", + "manage", + "moral", + "possess", + "raw", + "rebel", + "royal", + "scale", + "scary", + "several", + "slight", + "stubborn", + "swell", + "talent", + "tea", + "terrible", + "thread", + "torment", + "trickle", + "usually", + "vast", + "violence", + "weave", + "acid", + "agony", + "ashamed", + "awe", + "belly", + "blend", + "blush", + "character", + "cheat", + "common", + "company", + "coward", + "creak", + "danger", + "deadly", + "defense", + "define", + "depend", + "desperate", + "destination", + "dew", + "duck", + "dusty", + "embarrass", + "engine", + "example", + "explore", + "foe", + "freely", + "frustrate", + "generation", + "glove", + "guilty", + "health", + "hurry", + "idiot", + "impossible", + "inhale", + "jaw", + "kingdom", + "mention", + "mist", + "moan", + "mumble", + "mutter", + "observe", + "ode", + "pathetic", + "pattern", + "pie", + "prefer", + "puff", + "rape", + "rare", + "revenge", + "rude", + "scrape", + "spiral", + "squeeze", + "strain", + "sunset", + "suspend", + "sympathy", + "thigh", + "throne", + "total", + "unseen", + "weapon", + "weary" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "OldEnglish"; + populate_maps(); + } + }; } #endif diff --git a/src/mnemonics/portuguese.h b/src/mnemonics/portuguese.h index 5b88a0686..c040a0415 100644 --- a/src/mnemonics/portuguese.h +++ b/src/mnemonics/portuguese.h @@ -46,1645 +46,1645 @@ */ namespace Language { - class Portuguese: public Base - { - public: - Portuguese() - { - word_list = new std::vector({ - "abaular", - "abdominal", - "abeto", - "abissinio", - "abjeto", - "ablucao", - "abnegar", - "abotoar", - "abrutalhar", - "absurdo", - "abutre", - "acautelar", - "accessorios", - "acetona", - "achocolatado", - "acirrar", - "acne", - "acovardar", - "acrostico", - "actinomicete", - "acustico", - "adaptavel", - "adeus", - "adivinho", - "adjunto", - "admoestar", - "adnominal", - "adotivo", - "adquirir", - "adriatico", - "adsorcao", - "adutora", - "advogar", - "aerossol", - "afazeres", - "afetuoso", - "afixo", - "afluir", - "afortunar", - "afrouxar", - "aftosa", - "afunilar", - "agentes", - "agito", - "aglutinar", - "aiatola", - "aimore", - "aino", - "aipo", - "airoso", - "ajeitar", - "ajoelhar", - "ajudante", - "ajuste", - "alazao", - "albumina", - "alcunha", - "alegria", - "alexandre", - "alforriar", - "alguns", - "alhures", - "alivio", - "almoxarife", - "alotropico", - "alpiste", - "alquimista", - "alsaciano", - "altura", - "aluviao", - "alvura", - "amazonico", - "ambulatorio", - "ametodico", - "amizades", - "amniotico", - "amovivel", - "amurada", - "anatomico", - "ancorar", - "anexo", - "anfora", - "aniversario", - "anjo", - "anotar", - "ansioso", - "anturio", - "anuviar", - "anverso", - "anzol", - "aonde", - "apaziguar", - "apito", - "aplicavel", - "apoteotico", - "aprimorar", - "aprumo", - "apto", - "apuros", - "aquoso", - "arauto", - "arbusto", - "arduo", - "aresta", - "arfar", - "arguto", - "aritmetico", - "arlequim", - "armisticio", - "aromatizar", - "arpoar", - "arquivo", - "arrumar", - "arsenio", - "arturiano", - "aruaque", - "arvores", - "asbesto", - "ascorbico", - "aspirina", - "asqueroso", - "assustar", - "astuto", - "atazanar", - "ativo", - "atletismo", - "atmosferico", - "atormentar", - "atroz", - "aturdir", - "audivel", - "auferir", - "augusto", - "aula", - "aumento", - "aurora", - "autuar", - "avatar", - "avexar", - "avizinhar", - "avolumar", - "avulso", - "axiomatico", - "azerbaijano", - "azimute", - "azoto", - "azulejo", - "bacteriologista", - "badulaque", - "baforada", - "baixote", - "bajular", - "balzaquiana", - "bambuzal", - "banzo", - "baoba", - "baqueta", - "barulho", - "bastonete", - "batuta", - "bauxita", - "bavaro", - "bazuca", - "bcrepuscular", - "beato", - "beduino", - "begonia", - "behaviorista", - "beisebol", - "belzebu", - "bemol", - "benzido", - "beocio", - "bequer", - "berro", - "besuntar", - "betume", - "bexiga", - "bezerro", - "biatlon", - "biboca", - "bicuspide", - "bidirecional", - "bienio", - "bifurcar", - "bigorna", - "bijuteria", - "bimotor", - "binormal", - "bioxido", - "bipolarizacao", - "biquini", - "birutice", - "bisturi", - "bituca", - "biunivoco", - "bivalve", - "bizarro", - "blasfemo", - "blenorreia", - "blindar", - "bloqueio", - "blusao", - "boazuda", - "bofete", - "bojudo", - "bolso", - "bombordo", - "bonzo", - "botina", - "boquiaberto", - "bostoniano", - "botulismo", - "bourbon", - "bovino", - "boximane", - "bravura", - "brevidade", - "britar", - "broxar", - "bruno", - "bruxuleio", - "bubonico", - "bucolico", - "buda", - "budista", - "bueiro", - "buffer", - "bugre", - "bujao", - "bumerangue", - "burundines", - "busto", - "butique", - "buzios", - "caatinga", - "cabuqui", - "cacunda", - "cafuzo", - "cajueiro", - "camurca", - "canudo", - "caquizeiro", - "carvoeiro", - "casulo", - "catuaba", - "cauterizar", - "cebolinha", - "cedula", - "ceifeiro", - "celulose", - "cerzir", - "cesto", - "cetro", - "ceus", - "cevar", - "chavena", - "cheroqui", - "chita", - "chovido", - "chuvoso", - "ciatico", - "cibernetico", - "cicuta", - "cidreira", - "cientistas", - "cifrar", - "cigarro", - "cilio", - "cimo", - "cinzento", - "cioso", - "cipriota", - "cirurgico", - "cisto", - "citrico", - "ciumento", - "civismo", - "clavicula", - "clero", - "clitoris", - "cluster", - "coaxial", - "cobrir", - "cocota", - "codorniz", - "coexistir", - "cogumelo", - "coito", - "colusao", - "compaixao", - "comutativo", - "contentamento", - "convulsivo", - "coordenativa", - "coquetel", - "correto", - "corvo", - "costureiro", - "cotovia", - "covil", - "cozinheiro", - "cretino", - "cristo", - "crivo", - "crotalo", - "cruzes", - "cubo", - "cucuia", - "cueiro", - "cuidar", - "cujo", - "cultural", - "cunilingua", - "cupula", - "curvo", - "custoso", - "cutucar", - "czarismo", - "dablio", - "dacota", - "dados", - "daguerreotipo", - "daiquiri", - "daltonismo", - "damista", - "dantesco", - "daquilo", - "darwinista", - "dasein", - "dativo", - "deao", - "debutantes", - "decurso", - "deduzir", - "defunto", - "degustar", - "dejeto", - "deltoide", - "demover", - "denunciar", - "deputado", - "deque", - "dervixe", - "desvirtuar", - "deturpar", - "deuteronomio", - "devoto", - "dextrose", - "dezoito", - "diatribe", - "dicotomico", - "didatico", - "dietista", - "difuso", - "digressao", - "diluvio", - "diminuto", - "dinheiro", - "dinossauro", - "dioxido", - "diplomatico", - "dique", - "dirimivel", - "disturbio", - "diurno", - "divulgar", - "dizivel", - "doar", - "dobro", - "docura", - "dodoi", - "doer", - "dogue", - "doloso", - "domo", - "donzela", - "doping", - "dorsal", - "dossie", - "dote", - "doutro", - "doze", - "dravidico", - "dreno", - "driver", - "dropes", - "druso", - "dubnio", - "ducto", - "dueto", - "dulija", - "dundum", - "duodeno", - "duquesa", - "durou", - "duvidoso", - "duzia", - "ebano", - "ebrio", - "eburneo", - "echarpe", - "eclusa", - "ecossistema", - "ectoplasma", - "ecumenismo", - "eczema", - "eden", - "editorial", - "edredom", - "edulcorar", - "efetuar", - "efigie", - "efluvio", - "egiptologo", - "egresso", - "egua", - "einsteiniano", - "eira", - "eivar", - "eixos", - "ejetar", - "elastomero", - "eldorado", - "elixir", - "elmo", - "eloquente", - "elucidativo", - "emaranhar", - "embutir", - "emerito", - "emfa", - "emitir", - "emotivo", - "empuxo", - "emulsao", - "enamorar", - "encurvar", - "enduro", - "enevoar", - "enfurnar", - "enguico", - "enho", - "enigmista", - "enlutar", - "enormidade", - "enpreendimento", - "enquanto", - "enriquecer", - "enrugar", - "entusiastico", - "enunciar", - "envolvimento", - "enxuto", - "enzimatico", - "eolico", - "epiteto", - "epoxi", - "epura", - "equivoco", - "erario", - "erbio", - "ereto", - "erguido", - "erisipela", - "ermo", - "erotizar", - "erros", - "erupcao", - "ervilha", - "esburacar", - "escutar", - "esfuziante", - "esguio", - "esloveno", - "esmurrar", - "esoterismo", - "esperanca", - "espirito", - "espurio", - "essencialmente", - "esturricar", - "esvoacar", - "etario", - "eterno", - "etiquetar", - "etnologo", - "etos", - "etrusco", - "euclidiano", - "euforico", - "eugenico", - "eunuco", - "europio", - "eustaquio", - "eutanasia", - "evasivo", - "eventualidade", - "evitavel", - "evoluir", - "exaustor", - "excursionista", - "exercito", - "exfoliado", - "exito", - "exotico", - "expurgo", - "exsudar", - "extrusora", - "exumar", - "fabuloso", - "facultativo", - "fado", - "fagulha", - "faixas", - "fajuto", - "faltoso", - "famoso", - "fanzine", - "fapesp", - "faquir", - "fartura", - "fastio", - "faturista", - "fausto", - "favorito", - "faxineira", - "fazer", - "fealdade", - "febril", - "fecundo", - "fedorento", - "feerico", - "feixe", - "felicidade", - "felipe", - "feltro", - "femur", - "fenotipo", - "fervura", - "festivo", - "feto", - "feudo", - "fevereiro", - "fezinha", - "fiasco", - "fibra", - "ficticio", - "fiduciario", - "fiesp", - "fifa", - "figurino", - "fijiano", - "filtro", - "finura", - "fiorde", - "fiquei", - "firula", - "fissurar", - "fitoteca", - "fivela", - "fixo", - "flavio", - "flexor", - "flibusteiro", - "flotilha", - "fluxograma", - "fobos", - "foco", - "fofura", - "foguista", - "foie", - "foliculo", - "fominha", - "fonte", - "forum", - "fosso", - "fotossintese", - "foxtrote", - "fraudulento", - "frevo", - "frivolo", - "frouxo", - "frutose", - "fuba", - "fucsia", - "fugitivo", - "fuinha", - "fujao", - "fulustreco", - "fumo", - "funileiro", - "furunculo", - "fustigar", - "futurologo", - "fuxico", - "fuzue", - "gabriel", - "gado", - "gaelico", - "gafieira", - "gaguejo", - "gaivota", - "gajo", - "galvanoplastico", - "gamo", - "ganso", - "garrucha", - "gastronomo", - "gatuno", - "gaussiano", - "gaviao", - "gaxeta", - "gazeteiro", - "gear", - "geiser", - "geminiano", - "generoso", - "genuino", - "geossinclinal", - "gerundio", - "gestual", - "getulista", - "gibi", - "gigolo", - "gilete", - "ginseng", - "giroscopio", - "glaucio", - "glacial", - "gleba", - "glifo", - "glote", - "glutonia", - "gnostico", - "goela", - "gogo", - "goitaca", - "golpista", - "gomo", - "gonzo", - "gorro", - "gostou", - "goticula", - "gourmet", - "governo", - "gozo", - "graxo", - "grevista", - "grito", - "grotesco", - "gruta", - "guaxinim", - "gude", - "gueto", - "guizo", - "guloso", - "gume", - "guru", - "gustativo", - "gustavo", - "gutural", - "habitue", - "haitiano", - "halterofilista", - "hamburguer", - "hanseniase", - "happening", - "harpista", - "hastear", - "haveres", - "hebreu", - "hectometro", - "hedonista", - "hegira", - "helena", - "helminto", - "hemorroidas", - "henrique", - "heptassilabo", - "hertziano", - "hesitar", - "heterossexual", - "heuristico", - "hexagono", - "hiato", - "hibrido", - "hidrostatico", - "hieroglifo", - "hifenizar", - "higienizar", - "hilario", - "himen", - "hino", - "hippie", - "hirsuto", - "historiografia", - "hitlerista", - "hodometro", - "hoje", - "holograma", - "homus", - "honroso", - "hoquei", - "horto", - "hostilizar", - "hotentote", - "huguenote", - "humilde", - "huno", - "hurra", - "hutu", - "iaia", - "ialorixa", - "iambico", - "iansa", - "iaque", - "iara", - "iatista", - "iberico", - "ibis", - "icar", - "iceberg", - "icosagono", - "idade", - "ideologo", - "idiotice", - "idoso", - "iemenita", - "iene", - "igarape", - "iglu", - "ignorar", - "igreja", - "iguaria", - "iidiche", - "ilativo", - "iletrado", - "ilharga", - "ilimitado", - "ilogismo", - "ilustrissimo", - "imaturo", - "imbuzeiro", - "imerso", - "imitavel", - "imovel", - "imputar", - "imutavel", - "inaveriguavel", - "incutir", - "induzir", - "inextricavel", - "infusao", - "ingua", - "inhame", - "iniquo", - "injusto", - "inning", - "inoxidavel", - "inquisitorial", - "insustentavel", - "intumescimento", - "inutilizavel", - "invulneravel", - "inzoneiro", - "iodo", - "iogurte", - "ioio", - "ionosfera", - "ioruba", - "iota", - "ipsilon", - "irascivel", - "iris", - "irlandes", - "irmaos", - "iroques", - "irrupcao", - "isca", - "isento", - "islandes", - "isotopo", - "isqueiro", - "israelita", - "isso", - "isto", - "iterbio", - "itinerario", - "itrio", - "iuane", - "iugoslavo", - "jabuticabeira", - "jacutinga", - "jade", - "jagunco", - "jainista", - "jaleco", - "jambo", - "jantarada", - "japones", - "jaqueta", - "jarro", - "jasmim", - "jato", - "jaula", - "javel", - "jazz", - "jegue", - "jeitoso", - "jejum", - "jenipapo", - "jeova", - "jequitiba", - "jersei", - "jesus", - "jetom", - "jiboia", - "jihad", - "jilo", - "jingle", - "jipe", - "jocoso", - "joelho", - "joguete", - "joio", - "jojoba", - "jorro", - "jota", - "joule", - "joviano", - "jubiloso", - "judoca", - "jugular", - "juizo", - "jujuba", - "juliano", - "jumento", - "junto", - "jururu", - "justo", - "juta", - "juventude", - "labutar", - "laguna", - "laico", - "lajota", - "lanterninha", - "lapso", - "laquear", - "lastro", - "lauto", - "lavrar", - "laxativo", - "lazer", - "leasing", - "lebre", - "lecionar", - "ledo", - "leguminoso", - "leitura", - "lele", - "lemure", - "lento", - "leonardo", - "leopardo", - "lepton", - "leque", - "leste", - "letreiro", - "leucocito", - "levitico", - "lexicologo", - "lhama", - "lhufas", - "liame", - "licoroso", - "lidocaina", - "liliputiano", - "limusine", - "linotipo", - "lipoproteina", - "liquidos", - "lirismo", - "lisura", - "liturgico", - "livros", - "lixo", - "lobulo", - "locutor", - "lodo", - "logro", - "lojista", - "lombriga", - "lontra", - "loop", - "loquaz", - "lorota", - "losango", - "lotus", - "louvor", - "luar", - "lubrificavel", - "lucros", - "lugubre", - "luis", - "luminoso", - "luneta", - "lustroso", - "luto", - "luvas", - "luxuriante", - "luzeiro", - "maduro", - "maestro", - "mafioso", - "magro", - "maiuscula", - "majoritario", - "malvisto", - "mamute", - "manutencao", - "mapoteca", - "maquinista", - "marzipa", - "masturbar", - "matuto", - "mausoleu", - "mavioso", - "maxixe", - "mazurca", - "meandro", - "mecha", - "medusa", - "mefistofelico", - "megera", - "meirinho", - "melro", - "memorizar", - "menu", - "mequetrefe", - "mertiolate", - "mestria", - "metroviario", - "mexilhao", - "mezanino", - "miau", - "microssegundo", - "midia", - "migratorio", - "mimosa", - "minuto", - "miosotis", - "mirtilo", - "misturar", - "mitzvah", - "miudos", - "mixuruca", - "mnemonico", - "moagem", - "mobilizar", - "modulo", - "moer", - "mofo", - "mogno", - "moita", - "molusco", - "monumento", - "moqueca", - "morubixaba", - "mostruario", - "motriz", - "mouse", - "movivel", - "mozarela", - "muarra", - "muculmano", - "mudo", - "mugir", - "muitos", - "mumunha", - "munir", - "muon", - "muquira", - "murros", - "musselina", - "nacoes", - "nado", - "naftalina", - "nago", - "naipe", - "naja", - "nalgum", - "namoro", - "nanquim", - "napolitano", - "naquilo", - "nascimento", - "nautilo", - "navios", - "nazista", - "nebuloso", - "nectarina", - "nefrologo", - "negus", - "nelore", - "nenufar", - "nepotismo", - "nervura", - "neste", - "netuno", - "neutron", - "nevoeiro", - "newtoniano", - "nexo", - "nhenhenhem", - "nhoque", - "nigeriano", - "niilista", - "ninho", - "niobio", - "niponico", - "niquelar", - "nirvana", - "nisto", - "nitroglicerina", - "nivoso", - "nobreza", - "nocivo", - "noel", - "nogueira", - "noivo", - "nojo", - "nominativo", - "nonuplo", - "noruegues", - "nostalgico", - "noturno", - "nouveau", - "nuanca", - "nublar", - "nucleotideo", - "nudista", - "nulo", - "numismatico", - "nunquinha", - "nupcias", - "nutritivo", - "nuvens", - "oasis", - "obcecar", - "obeso", - "obituario", - "objetos", - "oblongo", - "obnoxio", - "obrigatorio", - "obstruir", - "obtuso", - "obus", - "obvio", - "ocaso", - "occipital", - "oceanografo", - "ocioso", - "oclusivo", - "ocorrer", - "ocre", - "octogono", - "odalisca", - "odisseia", - "odorifico", - "oersted", - "oeste", - "ofertar", - "ofidio", - "oftalmologo", - "ogiva", - "ogum", - "oigale", - "oitavo", - "oitocentos", - "ojeriza", - "olaria", - "oleoso", - "olfato", - "olhos", - "oliveira", - "olmo", - "olor", - "olvidavel", - "ombudsman", - "omeleteira", - "omitir", - "omoplata", - "onanismo", - "ondular", - "oneroso", - "onomatopeico", - "ontologico", - "onus", - "onze", - "opalescente", - "opcional", - "operistico", - "opio", - "oposto", - "oprobrio", - "optometrista", - "opusculo", - "oratorio", - "orbital", - "orcar", - "orfao", - "orixa", - "orla", - "ornitologo", - "orquidea", - "ortorrombico", - "orvalho", - "osculo", - "osmotico", - "ossudo", - "ostrogodo", - "otario", - "otite", - "ouro", - "ousar", - "outubro", - "ouvir", - "ovario", - "overnight", - "oviparo", - "ovni", - "ovoviviparo", - "ovulo", - "oxala", - "oxente", - "oxiuro", - "oxossi", - "ozonizar", - "paciente", - "pactuar", - "padronizar", - "paete", - "pagodeiro", - "paixao", - "pajem", - "paludismo", - "pampas", - "panturrilha", - "papudo", - "paquistanes", - "pastoso", - "patua", - "paulo", - "pauzinhos", - "pavoroso", - "paxa", - "pazes", - "peao", - "pecuniario", - "pedunculo", - "pegaso", - "peixinho", - "pejorativo", - "pelvis", - "penuria", - "pequno", - "petunia", - "pezada", - "piauiense", - "pictorico", - "pierro", - "pigmeu", - "pijama", - "pilulas", - "pimpolho", - "pintura", - "piorar", - "pipocar", - "piqueteiro", - "pirulito", - "pistoleiro", - "pituitaria", - "pivotar", - "pixote", - "pizzaria", - "plistoceno", - "plotar", - "pluviometrico", - "pneumonico", - "poco", - "podridao", - "poetisa", - "pogrom", - "pois", - "polvorosa", - "pomposo", - "ponderado", - "pontudo", - "populoso", - "poquer", - "porvir", - "posudo", - "potro", - "pouso", - "povoar", - "prazo", - "prezar", - "privilegios", - "proximo", - "prussiano", - "pseudopode", - "psoriase", - "pterossauros", - "ptialina", - "ptolemaico", - "pudor", - "pueril", - "pufe", - "pugilista", - "puir", - "pujante", - "pulverizar", - "pumba", - "punk", - "purulento", - "pustula", - "putsch", - "puxe", - "quatrocentos", - "quetzal", - "quixotesco", - "quotizavel", - "rabujice", - "racista", - "radonio", - "rafia", - "ragu", - "rajado", - "ralo", - "rampeiro", - "ranzinza", - "raptor", - "raquitismo", - "raro", - "rasurar", - "ratoeira", - "ravioli", - "razoavel", - "reavivar", - "rebuscar", - "recusavel", - "reduzivel", - "reexposicao", - "refutavel", - "regurgitar", - "reivindicavel", - "rejuvenescimento", - "relva", - "remuneravel", - "renunciar", - "reorientar", - "repuxo", - "requisito", - "resumo", - "returno", - "reutilizar", - "revolvido", - "rezonear", - "riacho", - "ribossomo", - "ricota", - "ridiculo", - "rifle", - "rigoroso", - "rijo", - "rimel", - "rins", - "rios", - "riqueza", - "riquixa", - "rissole", - "ritualistico", - "rivalizar", - "rixa", - "robusto", - "rococo", - "rodoviario", - "roer", - "rogo", - "rojao", - "rolo", - "rompimento", - "ronronar", - "roqueiro", - "rorqual", - "rosto", - "rotundo", - "rouxinol", - "roxo", - "royal", - "ruas", - "rucula", - "rudimentos", - "ruela", - "rufo", - "rugoso", - "ruivo", - "rule", - "rumoroso", - "runico", - "ruptura", - "rural", - "rustico", - "rutilar", - "saariano", - "sabujo", - "sacudir", - "sadomasoquista", - "safra", - "sagui", - "sais", - "samurai", - "santuario", - "sapo", - "saquear", - "sartriano", - "saturno", - "saude", - "sauva", - "saveiro", - "saxofonista", - "sazonal", - "scherzo", - "script", - "seara", - "seborreia", - "secura", - "seduzir", - "sefardim", - "seguro", - "seja", - "selvas", - "sempre", - "senzala", - "sepultura", - "sequoia", - "sestercio", - "setuplo", - "seus", - "seviciar", - "sezonismo", - "shalom", - "siames", - "sibilante", - "sicrano", - "sidra", - "sifilitico", - "signos", - "silvo", - "simultaneo", - "sinusite", - "sionista", - "sirio", - "sisudo", - "situar", - "sivan", - "slide", - "slogan", - "soar", - "sobrio", - "socratico", - "sodomizar", - "soerguer", - "software", - "sogro", - "soja", - "solver", - "somente", - "sonso", - "sopro", - "soquete", - "sorveteiro", - "sossego", - "soturno", - "sousafone", - "sovinice", - "sozinho", - "suavizar", - "subverter", - "sucursal", - "sudoriparo", - "sufragio", - "sugestoes", - "suite", - "sujo", - "sultao", - "sumula", - "suntuoso", - "suor", - "supurar", - "suruba", - "susto", - "suturar", - "suvenir", - "tabuleta", - "taco", - "tadjique", - "tafeta", - "tagarelice", - "taitiano", - "talvez", - "tampouco", - "tanzaniano", - "taoista", - "tapume", - "taquion", - "tarugo", - "tascar", - "tatuar", - "tautologico", - "tavola", - "taxionomista", - "tchecoslovaco", - "teatrologo", - "tectonismo", - "tedioso", - "teflon", - "tegumento", - "teixo", - "telurio", - "temporas", - "tenue", - "teosofico", - "tepido", - "tequila", - "terrorista", - "testosterona", - "tetrico", - "teutonico", - "teve", - "texugo", - "tiara", - "tibia", - "tiete", - "tifoide", - "tigresa", - "tijolo", - "tilintar", - "timpano", - "tintureiro", - "tiquete", - "tiroteio", - "tisico", - "titulos", - "tive", - "toar", - "toboga", - "tofu", - "togoles", - "toicinho", - "tolueno", - "tomografo", - "tontura", - "toponimo", - "toquio", - "torvelinho", - "tostar", - "toto", - "touro", - "toxina", - "trazer", - "trezentos", - "trivialidade", - "trovoar", - "truta", - "tuaregue", - "tubular", - "tucano", - "tudo", - "tufo", - "tuiste", - "tulipa", - "tumultuoso", - "tunisino", - "tupiniquim", - "turvo", - "tutu", - "ucraniano", - "udenista", - "ufanista", - "ufologo", - "ugaritico", - "uiste", - "uivo", - "ulceroso", - "ulema", - "ultravioleta", - "umbilical", - "umero", - "umido", - "umlaut", - "unanimidade", - "unesco", - "ungulado", - "unheiro", - "univoco", - "untuoso", - "urano", - "urbano", - "urdir", - "uretra", - "urgente", - "urinol", - "urna", - "urologo", - "urro", - "ursulina", - "urtiga", - "urupe", - "usavel", - "usbeque", - "usei", - "usineiro", - "usurpar", - "utero", - "utilizar", - "utopico", - "uvular", - "uxoricidio", - "vacuo", - "vadio", - "vaguear", - "vaivem", - "valvula", - "vampiro", - "vantajoso", - "vaporoso", - "vaquinha", - "varziano", - "vasto", - "vaticinio", - "vaudeville", - "vazio", - "veado", - "vedico", - "veemente", - "vegetativo", - "veio", - "veja", - "veludo", - "venusiano", - "verdade", - "verve", - "vestuario", - "vetusto", - "vexatorio", - "vezes", - "viavel", - "vibratorio", - "victor", - "vicunha", - "vidros", - "vietnamita", - "vigoroso", - "vilipendiar", - "vime", - "vintem", - "violoncelo", - "viquingue", - "virus", - "visualizar", - "vituperio", - "viuvo", - "vivo", - "vizir", - "voar", - "vociferar", - "vodu", - "vogar", - "voile", - "volver", - "vomito", - "vontade", - "vortice", - "vosso", - "voto", - "vovozinha", - "voyeuse", - "vozes", - "vulva", - "vupt", - "western", - "xadrez", - "xale", - "xampu", - "xango", - "xarope", - "xaual", - "xavante", - "xaxim", - "xenonio", - "xepa", - "xerox", - "xicara", - "xifopago", - "xiita", - "xilogravura", - "xinxim", - "xistoso", - "xixi", - "xodo", - "xogum", - "xucro", - "zabumba", - "zagueiro", - "zambiano", - "zanzar", - "zarpar", - "zebu", - "zefiro", - "zeloso", - "zenite", - "zumbi" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "Portuguese"; - populate_maps(); - } - }; + class Portuguese: public Base + { + public: + Portuguese() + { + word_list = new std::vector({ + "abaular", + "abdominal", + "abeto", + "abissinio", + "abjeto", + "ablucao", + "abnegar", + "abotoar", + "abrutalhar", + "absurdo", + "abutre", + "acautelar", + "accessorios", + "acetona", + "achocolatado", + "acirrar", + "acne", + "acovardar", + "acrostico", + "actinomicete", + "acustico", + "adaptavel", + "adeus", + "adivinho", + "adjunto", + "admoestar", + "adnominal", + "adotivo", + "adquirir", + "adriatico", + "adsorcao", + "adutora", + "advogar", + "aerossol", + "afazeres", + "afetuoso", + "afixo", + "afluir", + "afortunar", + "afrouxar", + "aftosa", + "afunilar", + "agentes", + "agito", + "aglutinar", + "aiatola", + "aimore", + "aino", + "aipo", + "airoso", + "ajeitar", + "ajoelhar", + "ajudante", + "ajuste", + "alazao", + "albumina", + "alcunha", + "alegria", + "alexandre", + "alforriar", + "alguns", + "alhures", + "alivio", + "almoxarife", + "alotropico", + "alpiste", + "alquimista", + "alsaciano", + "altura", + "aluviao", + "alvura", + "amazonico", + "ambulatorio", + "ametodico", + "amizades", + "amniotico", + "amovivel", + "amurada", + "anatomico", + "ancorar", + "anexo", + "anfora", + "aniversario", + "anjo", + "anotar", + "ansioso", + "anturio", + "anuviar", + "anverso", + "anzol", + "aonde", + "apaziguar", + "apito", + "aplicavel", + "apoteotico", + "aprimorar", + "aprumo", + "apto", + "apuros", + "aquoso", + "arauto", + "arbusto", + "arduo", + "aresta", + "arfar", + "arguto", + "aritmetico", + "arlequim", + "armisticio", + "aromatizar", + "arpoar", + "arquivo", + "arrumar", + "arsenio", + "arturiano", + "aruaque", + "arvores", + "asbesto", + "ascorbico", + "aspirina", + "asqueroso", + "assustar", + "astuto", + "atazanar", + "ativo", + "atletismo", + "atmosferico", + "atormentar", + "atroz", + "aturdir", + "audivel", + "auferir", + "augusto", + "aula", + "aumento", + "aurora", + "autuar", + "avatar", + "avexar", + "avizinhar", + "avolumar", + "avulso", + "axiomatico", + "azerbaijano", + "azimute", + "azoto", + "azulejo", + "bacteriologista", + "badulaque", + "baforada", + "baixote", + "bajular", + "balzaquiana", + "bambuzal", + "banzo", + "baoba", + "baqueta", + "barulho", + "bastonete", + "batuta", + "bauxita", + "bavaro", + "bazuca", + "bcrepuscular", + "beato", + "beduino", + "begonia", + "behaviorista", + "beisebol", + "belzebu", + "bemol", + "benzido", + "beocio", + "bequer", + "berro", + "besuntar", + "betume", + "bexiga", + "bezerro", + "biatlon", + "biboca", + "bicuspide", + "bidirecional", + "bienio", + "bifurcar", + "bigorna", + "bijuteria", + "bimotor", + "binormal", + "bioxido", + "bipolarizacao", + "biquini", + "birutice", + "bisturi", + "bituca", + "biunivoco", + "bivalve", + "bizarro", + "blasfemo", + "blenorreia", + "blindar", + "bloqueio", + "blusao", + "boazuda", + "bofete", + "bojudo", + "bolso", + "bombordo", + "bonzo", + "botina", + "boquiaberto", + "bostoniano", + "botulismo", + "bourbon", + "bovino", + "boximane", + "bravura", + "brevidade", + "britar", + "broxar", + "bruno", + "bruxuleio", + "bubonico", + "bucolico", + "buda", + "budista", + "bueiro", + "buffer", + "bugre", + "bujao", + "bumerangue", + "burundines", + "busto", + "butique", + "buzios", + "caatinga", + "cabuqui", + "cacunda", + "cafuzo", + "cajueiro", + "camurca", + "canudo", + "caquizeiro", + "carvoeiro", + "casulo", + "catuaba", + "cauterizar", + "cebolinha", + "cedula", + "ceifeiro", + "celulose", + "cerzir", + "cesto", + "cetro", + "ceus", + "cevar", + "chavena", + "cheroqui", + "chita", + "chovido", + "chuvoso", + "ciatico", + "cibernetico", + "cicuta", + "cidreira", + "cientistas", + "cifrar", + "cigarro", + "cilio", + "cimo", + "cinzento", + "cioso", + "cipriota", + "cirurgico", + "cisto", + "citrico", + "ciumento", + "civismo", + "clavicula", + "clero", + "clitoris", + "cluster", + "coaxial", + "cobrir", + "cocota", + "codorniz", + "coexistir", + "cogumelo", + "coito", + "colusao", + "compaixao", + "comutativo", + "contentamento", + "convulsivo", + "coordenativa", + "coquetel", + "correto", + "corvo", + "costureiro", + "cotovia", + "covil", + "cozinheiro", + "cretino", + "cristo", + "crivo", + "crotalo", + "cruzes", + "cubo", + "cucuia", + "cueiro", + "cuidar", + "cujo", + "cultural", + "cunilingua", + "cupula", + "curvo", + "custoso", + "cutucar", + "czarismo", + "dablio", + "dacota", + "dados", + "daguerreotipo", + "daiquiri", + "daltonismo", + "damista", + "dantesco", + "daquilo", + "darwinista", + "dasein", + "dativo", + "deao", + "debutantes", + "decurso", + "deduzir", + "defunto", + "degustar", + "dejeto", + "deltoide", + "demover", + "denunciar", + "deputado", + "deque", + "dervixe", + "desvirtuar", + "deturpar", + "deuteronomio", + "devoto", + "dextrose", + "dezoito", + "diatribe", + "dicotomico", + "didatico", + "dietista", + "difuso", + "digressao", + "diluvio", + "diminuto", + "dinheiro", + "dinossauro", + "dioxido", + "diplomatico", + "dique", + "dirimivel", + "disturbio", + "diurno", + "divulgar", + "dizivel", + "doar", + "dobro", + "docura", + "dodoi", + "doer", + "dogue", + "doloso", + "domo", + "donzela", + "doping", + "dorsal", + "dossie", + "dote", + "doutro", + "doze", + "dravidico", + "dreno", + "driver", + "dropes", + "druso", + "dubnio", + "ducto", + "dueto", + "dulija", + "dundum", + "duodeno", + "duquesa", + "durou", + "duvidoso", + "duzia", + "ebano", + "ebrio", + "eburneo", + "echarpe", + "eclusa", + "ecossistema", + "ectoplasma", + "ecumenismo", + "eczema", + "eden", + "editorial", + "edredom", + "edulcorar", + "efetuar", + "efigie", + "efluvio", + "egiptologo", + "egresso", + "egua", + "einsteiniano", + "eira", + "eivar", + "eixos", + "ejetar", + "elastomero", + "eldorado", + "elixir", + "elmo", + "eloquente", + "elucidativo", + "emaranhar", + "embutir", + "emerito", + "emfa", + "emitir", + "emotivo", + "empuxo", + "emulsao", + "enamorar", + "encurvar", + "enduro", + "enevoar", + "enfurnar", + "enguico", + "enho", + "enigmista", + "enlutar", + "enormidade", + "enpreendimento", + "enquanto", + "enriquecer", + "enrugar", + "entusiastico", + "enunciar", + "envolvimento", + "enxuto", + "enzimatico", + "eolico", + "epiteto", + "epoxi", + "epura", + "equivoco", + "erario", + "erbio", + "ereto", + "erguido", + "erisipela", + "ermo", + "erotizar", + "erros", + "erupcao", + "ervilha", + "esburacar", + "escutar", + "esfuziante", + "esguio", + "esloveno", + "esmurrar", + "esoterismo", + "esperanca", + "espirito", + "espurio", + "essencialmente", + "esturricar", + "esvoacar", + "etario", + "eterno", + "etiquetar", + "etnologo", + "etos", + "etrusco", + "euclidiano", + "euforico", + "eugenico", + "eunuco", + "europio", + "eustaquio", + "eutanasia", + "evasivo", + "eventualidade", + "evitavel", + "evoluir", + "exaustor", + "excursionista", + "exercito", + "exfoliado", + "exito", + "exotico", + "expurgo", + "exsudar", + "extrusora", + "exumar", + "fabuloso", + "facultativo", + "fado", + "fagulha", + "faixas", + "fajuto", + "faltoso", + "famoso", + "fanzine", + "fapesp", + "faquir", + "fartura", + "fastio", + "faturista", + "fausto", + "favorito", + "faxineira", + "fazer", + "fealdade", + "febril", + "fecundo", + "fedorento", + "feerico", + "feixe", + "felicidade", + "felipe", + "feltro", + "femur", + "fenotipo", + "fervura", + "festivo", + "feto", + "feudo", + "fevereiro", + "fezinha", + "fiasco", + "fibra", + "ficticio", + "fiduciario", + "fiesp", + "fifa", + "figurino", + "fijiano", + "filtro", + "finura", + "fiorde", + "fiquei", + "firula", + "fissurar", + "fitoteca", + "fivela", + "fixo", + "flavio", + "flexor", + "flibusteiro", + "flotilha", + "fluxograma", + "fobos", + "foco", + "fofura", + "foguista", + "foie", + "foliculo", + "fominha", + "fonte", + "forum", + "fosso", + "fotossintese", + "foxtrote", + "fraudulento", + "frevo", + "frivolo", + "frouxo", + "frutose", + "fuba", + "fucsia", + "fugitivo", + "fuinha", + "fujao", + "fulustreco", + "fumo", + "funileiro", + "furunculo", + "fustigar", + "futurologo", + "fuxico", + "fuzue", + "gabriel", + "gado", + "gaelico", + "gafieira", + "gaguejo", + "gaivota", + "gajo", + "galvanoplastico", + "gamo", + "ganso", + "garrucha", + "gastronomo", + "gatuno", + "gaussiano", + "gaviao", + "gaxeta", + "gazeteiro", + "gear", + "geiser", + "geminiano", + "generoso", + "genuino", + "geossinclinal", + "gerundio", + "gestual", + "getulista", + "gibi", + "gigolo", + "gilete", + "ginseng", + "giroscopio", + "glaucio", + "glacial", + "gleba", + "glifo", + "glote", + "glutonia", + "gnostico", + "goela", + "gogo", + "goitaca", + "golpista", + "gomo", + "gonzo", + "gorro", + "gostou", + "goticula", + "gourmet", + "governo", + "gozo", + "graxo", + "grevista", + "grito", + "grotesco", + "gruta", + "guaxinim", + "gude", + "gueto", + "guizo", + "guloso", + "gume", + "guru", + "gustativo", + "gustavo", + "gutural", + "habitue", + "haitiano", + "halterofilista", + "hamburguer", + "hanseniase", + "happening", + "harpista", + "hastear", + "haveres", + "hebreu", + "hectometro", + "hedonista", + "hegira", + "helena", + "helminto", + "hemorroidas", + "henrique", + "heptassilabo", + "hertziano", + "hesitar", + "heterossexual", + "heuristico", + "hexagono", + "hiato", + "hibrido", + "hidrostatico", + "hieroglifo", + "hifenizar", + "higienizar", + "hilario", + "himen", + "hino", + "hippie", + "hirsuto", + "historiografia", + "hitlerista", + "hodometro", + "hoje", + "holograma", + "homus", + "honroso", + "hoquei", + "horto", + "hostilizar", + "hotentote", + "huguenote", + "humilde", + "huno", + "hurra", + "hutu", + "iaia", + "ialorixa", + "iambico", + "iansa", + "iaque", + "iara", + "iatista", + "iberico", + "ibis", + "icar", + "iceberg", + "icosagono", + "idade", + "ideologo", + "idiotice", + "idoso", + "iemenita", + "iene", + "igarape", + "iglu", + "ignorar", + "igreja", + "iguaria", + "iidiche", + "ilativo", + "iletrado", + "ilharga", + "ilimitado", + "ilogismo", + "ilustrissimo", + "imaturo", + "imbuzeiro", + "imerso", + "imitavel", + "imovel", + "imputar", + "imutavel", + "inaveriguavel", + "incutir", + "induzir", + "inextricavel", + "infusao", + "ingua", + "inhame", + "iniquo", + "injusto", + "inning", + "inoxidavel", + "inquisitorial", + "insustentavel", + "intumescimento", + "inutilizavel", + "invulneravel", + "inzoneiro", + "iodo", + "iogurte", + "ioio", + "ionosfera", + "ioruba", + "iota", + "ipsilon", + "irascivel", + "iris", + "irlandes", + "irmaos", + "iroques", + "irrupcao", + "isca", + "isento", + "islandes", + "isotopo", + "isqueiro", + "israelita", + "isso", + "isto", + "iterbio", + "itinerario", + "itrio", + "iuane", + "iugoslavo", + "jabuticabeira", + "jacutinga", + "jade", + "jagunco", + "jainista", + "jaleco", + "jambo", + "jantarada", + "japones", + "jaqueta", + "jarro", + "jasmim", + "jato", + "jaula", + "javel", + "jazz", + "jegue", + "jeitoso", + "jejum", + "jenipapo", + "jeova", + "jequitiba", + "jersei", + "jesus", + "jetom", + "jiboia", + "jihad", + "jilo", + "jingle", + "jipe", + "jocoso", + "joelho", + "joguete", + "joio", + "jojoba", + "jorro", + "jota", + "joule", + "joviano", + "jubiloso", + "judoca", + "jugular", + "juizo", + "jujuba", + "juliano", + "jumento", + "junto", + "jururu", + "justo", + "juta", + "juventude", + "labutar", + "laguna", + "laico", + "lajota", + "lanterninha", + "lapso", + "laquear", + "lastro", + "lauto", + "lavrar", + "laxativo", + "lazer", + "leasing", + "lebre", + "lecionar", + "ledo", + "leguminoso", + "leitura", + "lele", + "lemure", + "lento", + "leonardo", + "leopardo", + "lepton", + "leque", + "leste", + "letreiro", + "leucocito", + "levitico", + "lexicologo", + "lhama", + "lhufas", + "liame", + "licoroso", + "lidocaina", + "liliputiano", + "limusine", + "linotipo", + "lipoproteina", + "liquidos", + "lirismo", + "lisura", + "liturgico", + "livros", + "lixo", + "lobulo", + "locutor", + "lodo", + "logro", + "lojista", + "lombriga", + "lontra", + "loop", + "loquaz", + "lorota", + "losango", + "lotus", + "louvor", + "luar", + "lubrificavel", + "lucros", + "lugubre", + "luis", + "luminoso", + "luneta", + "lustroso", + "luto", + "luvas", + "luxuriante", + "luzeiro", + "maduro", + "maestro", + "mafioso", + "magro", + "maiuscula", + "majoritario", + "malvisto", + "mamute", + "manutencao", + "mapoteca", + "maquinista", + "marzipa", + "masturbar", + "matuto", + "mausoleu", + "mavioso", + "maxixe", + "mazurca", + "meandro", + "mecha", + "medusa", + "mefistofelico", + "megera", + "meirinho", + "melro", + "memorizar", + "menu", + "mequetrefe", + "mertiolate", + "mestria", + "metroviario", + "mexilhao", + "mezanino", + "miau", + "microssegundo", + "midia", + "migratorio", + "mimosa", + "minuto", + "miosotis", + "mirtilo", + "misturar", + "mitzvah", + "miudos", + "mixuruca", + "mnemonico", + "moagem", + "mobilizar", + "modulo", + "moer", + "mofo", + "mogno", + "moita", + "molusco", + "monumento", + "moqueca", + "morubixaba", + "mostruario", + "motriz", + "mouse", + "movivel", + "mozarela", + "muarra", + "muculmano", + "mudo", + "mugir", + "muitos", + "mumunha", + "munir", + "muon", + "muquira", + "murros", + "musselina", + "nacoes", + "nado", + "naftalina", + "nago", + "naipe", + "naja", + "nalgum", + "namoro", + "nanquim", + "napolitano", + "naquilo", + "nascimento", + "nautilo", + "navios", + "nazista", + "nebuloso", + "nectarina", + "nefrologo", + "negus", + "nelore", + "nenufar", + "nepotismo", + "nervura", + "neste", + "netuno", + "neutron", + "nevoeiro", + "newtoniano", + "nexo", + "nhenhenhem", + "nhoque", + "nigeriano", + "niilista", + "ninho", + "niobio", + "niponico", + "niquelar", + "nirvana", + "nisto", + "nitroglicerina", + "nivoso", + "nobreza", + "nocivo", + "noel", + "nogueira", + "noivo", + "nojo", + "nominativo", + "nonuplo", + "noruegues", + "nostalgico", + "noturno", + "nouveau", + "nuanca", + "nublar", + "nucleotideo", + "nudista", + "nulo", + "numismatico", + "nunquinha", + "nupcias", + "nutritivo", + "nuvens", + "oasis", + "obcecar", + "obeso", + "obituario", + "objetos", + "oblongo", + "obnoxio", + "obrigatorio", + "obstruir", + "obtuso", + "obus", + "obvio", + "ocaso", + "occipital", + "oceanografo", + "ocioso", + "oclusivo", + "ocorrer", + "ocre", + "octogono", + "odalisca", + "odisseia", + "odorifico", + "oersted", + "oeste", + "ofertar", + "ofidio", + "oftalmologo", + "ogiva", + "ogum", + "oigale", + "oitavo", + "oitocentos", + "ojeriza", + "olaria", + "oleoso", + "olfato", + "olhos", + "oliveira", + "olmo", + "olor", + "olvidavel", + "ombudsman", + "omeleteira", + "omitir", + "omoplata", + "onanismo", + "ondular", + "oneroso", + "onomatopeico", + "ontologico", + "onus", + "onze", + "opalescente", + "opcional", + "operistico", + "opio", + "oposto", + "oprobrio", + "optometrista", + "opusculo", + "oratorio", + "orbital", + "orcar", + "orfao", + "orixa", + "orla", + "ornitologo", + "orquidea", + "ortorrombico", + "orvalho", + "osculo", + "osmotico", + "ossudo", + "ostrogodo", + "otario", + "otite", + "ouro", + "ousar", + "outubro", + "ouvir", + "ovario", + "overnight", + "oviparo", + "ovni", + "ovoviviparo", + "ovulo", + "oxala", + "oxente", + "oxiuro", + "oxossi", + "ozonizar", + "paciente", + "pactuar", + "padronizar", + "paete", + "pagodeiro", + "paixao", + "pajem", + "paludismo", + "pampas", + "panturrilha", + "papudo", + "paquistanes", + "pastoso", + "patua", + "paulo", + "pauzinhos", + "pavoroso", + "paxa", + "pazes", + "peao", + "pecuniario", + "pedunculo", + "pegaso", + "peixinho", + "pejorativo", + "pelvis", + "penuria", + "pequno", + "petunia", + "pezada", + "piauiense", + "pictorico", + "pierro", + "pigmeu", + "pijama", + "pilulas", + "pimpolho", + "pintura", + "piorar", + "pipocar", + "piqueteiro", + "pirulito", + "pistoleiro", + "pituitaria", + "pivotar", + "pixote", + "pizzaria", + "plistoceno", + "plotar", + "pluviometrico", + "pneumonico", + "poco", + "podridao", + "poetisa", + "pogrom", + "pois", + "polvorosa", + "pomposo", + "ponderado", + "pontudo", + "populoso", + "poquer", + "porvir", + "posudo", + "potro", + "pouso", + "povoar", + "prazo", + "prezar", + "privilegios", + "proximo", + "prussiano", + "pseudopode", + "psoriase", + "pterossauros", + "ptialina", + "ptolemaico", + "pudor", + "pueril", + "pufe", + "pugilista", + "puir", + "pujante", + "pulverizar", + "pumba", + "punk", + "purulento", + "pustula", + "putsch", + "puxe", + "quatrocentos", + "quetzal", + "quixotesco", + "quotizavel", + "rabujice", + "racista", + "radonio", + "rafia", + "ragu", + "rajado", + "ralo", + "rampeiro", + "ranzinza", + "raptor", + "raquitismo", + "raro", + "rasurar", + "ratoeira", + "ravioli", + "razoavel", + "reavivar", + "rebuscar", + "recusavel", + "reduzivel", + "reexposicao", + "refutavel", + "regurgitar", + "reivindicavel", + "rejuvenescimento", + "relva", + "remuneravel", + "renunciar", + "reorientar", + "repuxo", + "requisito", + "resumo", + "returno", + "reutilizar", + "revolvido", + "rezonear", + "riacho", + "ribossomo", + "ricota", + "ridiculo", + "rifle", + "rigoroso", + "rijo", + "rimel", + "rins", + "rios", + "riqueza", + "riquixa", + "rissole", + "ritualistico", + "rivalizar", + "rixa", + "robusto", + "rococo", + "rodoviario", + "roer", + "rogo", + "rojao", + "rolo", + "rompimento", + "ronronar", + "roqueiro", + "rorqual", + "rosto", + "rotundo", + "rouxinol", + "roxo", + "royal", + "ruas", + "rucula", + "rudimentos", + "ruela", + "rufo", + "rugoso", + "ruivo", + "rule", + "rumoroso", + "runico", + "ruptura", + "rural", + "rustico", + "rutilar", + "saariano", + "sabujo", + "sacudir", + "sadomasoquista", + "safra", + "sagui", + "sais", + "samurai", + "santuario", + "sapo", + "saquear", + "sartriano", + "saturno", + "saude", + "sauva", + "saveiro", + "saxofonista", + "sazonal", + "scherzo", + "script", + "seara", + "seborreia", + "secura", + "seduzir", + "sefardim", + "seguro", + "seja", + "selvas", + "sempre", + "senzala", + "sepultura", + "sequoia", + "sestercio", + "setuplo", + "seus", + "seviciar", + "sezonismo", + "shalom", + "siames", + "sibilante", + "sicrano", + "sidra", + "sifilitico", + "signos", + "silvo", + "simultaneo", + "sinusite", + "sionista", + "sirio", + "sisudo", + "situar", + "sivan", + "slide", + "slogan", + "soar", + "sobrio", + "socratico", + "sodomizar", + "soerguer", + "software", + "sogro", + "soja", + "solver", + "somente", + "sonso", + "sopro", + "soquete", + "sorveteiro", + "sossego", + "soturno", + "sousafone", + "sovinice", + "sozinho", + "suavizar", + "subverter", + "sucursal", + "sudoriparo", + "sufragio", + "sugestoes", + "suite", + "sujo", + "sultao", + "sumula", + "suntuoso", + "suor", + "supurar", + "suruba", + "susto", + "suturar", + "suvenir", + "tabuleta", + "taco", + "tadjique", + "tafeta", + "tagarelice", + "taitiano", + "talvez", + "tampouco", + "tanzaniano", + "taoista", + "tapume", + "taquion", + "tarugo", + "tascar", + "tatuar", + "tautologico", + "tavola", + "taxionomista", + "tchecoslovaco", + "teatrologo", + "tectonismo", + "tedioso", + "teflon", + "tegumento", + "teixo", + "telurio", + "temporas", + "tenue", + "teosofico", + "tepido", + "tequila", + "terrorista", + "testosterona", + "tetrico", + "teutonico", + "teve", + "texugo", + "tiara", + "tibia", + "tiete", + "tifoide", + "tigresa", + "tijolo", + "tilintar", + "timpano", + "tintureiro", + "tiquete", + "tiroteio", + "tisico", + "titulos", + "tive", + "toar", + "toboga", + "tofu", + "togoles", + "toicinho", + "tolueno", + "tomografo", + "tontura", + "toponimo", + "toquio", + "torvelinho", + "tostar", + "toto", + "touro", + "toxina", + "trazer", + "trezentos", + "trivialidade", + "trovoar", + "truta", + "tuaregue", + "tubular", + "tucano", + "tudo", + "tufo", + "tuiste", + "tulipa", + "tumultuoso", + "tunisino", + "tupiniquim", + "turvo", + "tutu", + "ucraniano", + "udenista", + "ufanista", + "ufologo", + "ugaritico", + "uiste", + "uivo", + "ulceroso", + "ulema", + "ultravioleta", + "umbilical", + "umero", + "umido", + "umlaut", + "unanimidade", + "unesco", + "ungulado", + "unheiro", + "univoco", + "untuoso", + "urano", + "urbano", + "urdir", + "uretra", + "urgente", + "urinol", + "urna", + "urologo", + "urro", + "ursulina", + "urtiga", + "urupe", + "usavel", + "usbeque", + "usei", + "usineiro", + "usurpar", + "utero", + "utilizar", + "utopico", + "uvular", + "uxoricidio", + "vacuo", + "vadio", + "vaguear", + "vaivem", + "valvula", + "vampiro", + "vantajoso", + "vaporoso", + "vaquinha", + "varziano", + "vasto", + "vaticinio", + "vaudeville", + "vazio", + "veado", + "vedico", + "veemente", + "vegetativo", + "veio", + "veja", + "veludo", + "venusiano", + "verdade", + "verve", + "vestuario", + "vetusto", + "vexatorio", + "vezes", + "viavel", + "vibratorio", + "victor", + "vicunha", + "vidros", + "vietnamita", + "vigoroso", + "vilipendiar", + "vime", + "vintem", + "violoncelo", + "viquingue", + "virus", + "visualizar", + "vituperio", + "viuvo", + "vivo", + "vizir", + "voar", + "vociferar", + "vodu", + "vogar", + "voile", + "volver", + "vomito", + "vontade", + "vortice", + "vosso", + "voto", + "vovozinha", + "voyeuse", + "vozes", + "vulva", + "vupt", + "western", + "xadrez", + "xale", + "xampu", + "xango", + "xarope", + "xaual", + "xavante", + "xaxim", + "xenonio", + "xepa", + "xerox", + "xicara", + "xifopago", + "xiita", + "xilogravura", + "xinxim", + "xistoso", + "xixi", + "xodo", + "xogum", + "xucro", + "zabumba", + "zagueiro", + "zambiano", + "zanzar", + "zarpar", + "zebu", + "zefiro", + "zeloso", + "zenite", + "zumbi" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Portuguese"; + populate_maps(); + } + }; } #endif diff --git a/src/mnemonics/singleton.h b/src/mnemonics/singleton.h index 5a86c2e7c..74e121e4e 100644 --- a/src/mnemonics/singleton.h +++ b/src/mnemonics/singleton.h @@ -38,25 +38,25 @@ */ namespace Language { - /*! - * \class Singleton - * - * \brief Single helper class. - * - * Do Language::Singleton::instance() to create a singleton instance - * of `YourClass`. - */ - template - class Singleton - { - Singleton() {} - Singleton(Singleton &s) {} - Singleton& operator=(const Singleton&) {} - public: - static T* instance() - { - static T* obj = new T; - return obj; - } - }; + /*! + * \class Singleton + * + * \brief Single helper class. + * + * Do Language::Singleton::instance() to create a singleton instance + * of `YourClass`. + */ + template + class Singleton + { + Singleton() {} + Singleton(Singleton &s) {} + Singleton& operator=(const Singleton&) {} + public: + static T* instance() + { + static T* obj = new T; + return obj; + } + }; } diff --git a/src/mnemonics/spanish.h b/src/mnemonics/spanish.h index efa71a202..36fcf74da 100644 --- a/src/mnemonics/spanish.h +++ b/src/mnemonics/spanish.h @@ -47,1645 +47,1645 @@ */ namespace Language { - class Spanish: public Base - { - public: - Spanish() - { - word_list = new std::vector({ - "ábaco", - "abdomen", - "abeja", - "abierto", - "abogado", - "abono", - "aborto", - "abrazo", - "abrir", - "abuelo", - "abuso", - "acabar", - "academia", - "acceso", - "acción", - "aceite", - "acelga", - "acento", - "aceptar", - "ácido", - "aclarar", - "acné", - "acoger", - "acoso", - "activo", - "acto", - "actriz", - "actuar", - "acudir", - "acuerdo", - "acusar", - "adicto", - "admitir", - "adoptar", - "adorno", - "aduana", - "adulto", - "aéreo", - "afectar", - "afición", - "afinar", - "afirmar", - "ágil", - "agitar", - "agonía", - "agosto", - "agotar", - "agregar", - "agrio", - "agua", - "agudo", - "águila", - "aguja", - "ahogo", - "ahorro", - "aire", - "aislar", - "ajedrez", - "ajeno", - "ajuste", - "alacrán", - "alambre", - "alarma", - "alba", - "álbum", - "alcalde", - "aldea", - "alegre", - "alejar", - "alerta", - "aleta", - "alfiler", - "alga", - "algodón", - "aliado", - "aliento", - "alivio", - "alma", - "almeja", - "almíbar", - "altar", - "alteza", - "altivo", - "alto", - "altura", - "alumno", - "alzar", - "amable", - "amante", - "amapola", - "amargo", - "amasar", - "ámbar", - "ámbito", - "ameno", - "amigo", - "amistad", - "amor", - "amparo", - "amplio", - "ancho", - "anciano", - "ancla", - "andar", - "andén", - "anemia", - "ángulo", - "anillo", - "ánimo", - "anís", - "anotar", - "antena", - "antiguo", - "antojo", - "anual", - "anular", - "anuncio", - "añadir", - "añejo", - "año", - "apagar", - "aparato", - "apetito", - "apio", - "aplicar", - "apodo", - "aporte", - "apoyo", - "aprender", - "aprobar", - "apuesta", - "apuro", - "arado", - "araña", - "arar", - "árbitro", - "árbol", - "arbusto", - "archivo", - "arco", - "arder", - "ardilla", - "arduo", - "área", - "árido", - "aries", - "armonía", - "arnés", - "aroma", - "arpa", - "arpón", - "arreglo", - "arroz", - "arruga", - "arte", - "artista", - "asa", - "asado", - "asalto", - "ascenso", - "asegurar", - "aseo", - "asesor", - "asiento", - "asilo", - "asistir", - "asno", - "asombro", - "áspero", - "astilla", - "astro", - "astuto", - "asumir", - "asunto", - "atajo", - "ataque", - "atar", - "atento", - "ateo", - "ático", - "atleta", - "átomo", - "atraer", - "atroz", - "atún", - "audaz", - "audio", - "auge", - "aula", - "aumento", - "ausente", - "autor", - "aval", - "avance", - "avaro", - "ave", - "avellana", - "avena", - "avestruz", - "avión", - "aviso", - "ayer", - "ayuda", - "ayuno", - "azafrán", - "azar", - "azote", - "azúcar", - "azufre", - "azul", - "baba", - "babor", - "bache", - "bahía", - "baile", - "bajar", - "balanza", - "balcón", - "balde", - "bambú", - "banco", - "banda", - "baño", - "barba", - "barco", - "barniz", - "barro", - "báscula", - "bastón", - "basura", - "batalla", - "batería", - "batir", - "batuta", - "baúl", - "bazar", - "bebé", - "bebida", - "bello", - "besar", - "beso", - "bestia", - "bicho", - "bien", - "bingo", - "blanco", - "bloque", - "blusa", - "boa", - "bobina", - "bobo", - "boca", - "bocina", - "boda", - "bodega", - "boina", - "bola", - "bolero", - "bolsa", - "bomba", - "bondad", - "bonito", - "bono", - "bonsái", - "borde", - "borrar", - "bosque", - "bote", - "botín", - "bóveda", - "bozal", - "bravo", - "brazo", - "brecha", - "breve", - "brillo", - "brinco", - "brisa", - "broca", - "broma", - "bronce", - "brote", - "bruja", - "brusco", - "bruto", - "buceo", - "bucle", - "bueno", - "buey", - "bufanda", - "bufón", - "búho", - "buitre", - "bulto", - "burbuja", - "burla", - "burro", - "buscar", - "butaca", - "buzón", - "caballo", - "cabeza", - "cabina", - "cabra", - "cacao", - "cadáver", - "cadena", - "caer", - "café", - "caída", - "caimán", - "caja", - "cajón", - "cal", - "calamar", - "calcio", - "caldo", - "calidad", - "calle", - "calma", - "calor", - "calvo", - "cama", - "cambio", - "camello", - "camino", - "campo", - "cáncer", - "candil", - "canela", - "canguro", - "canica", - "canto", - "caña", - "cañón", - "caoba", - "caos", - "capaz", - "capitán", - "capote", - "captar", - "capucha", - "cara", - "carbón", - "cárcel", - "careta", - "carga", - "cariño", - "carne", - "carpeta", - "carro", - "carta", - "casa", - "casco", - "casero", - "caspa", - "castor", - "catorce", - "catre", - "caudal", - "causa", - "cazo", - "cebolla", - "ceder", - "cedro", - "celda", - "célebre", - "celoso", - "célula", - "cemento", - "ceniza", - "centro", - "cerca", - "cerdo", - "cereza", - "cero", - "cerrar", - "certeza", - "césped", - "cetro", - "chacal", - "chaleco", - "champú", - "chancla", - "chapa", - "charla", - "chico", - "chiste", - "chivo", - "choque", - "choza", - "chuleta", - "chupar", - "ciclón", - "ciego", - "cielo", - "cien", - "cierto", - "cifra", - "cigarro", - "cima", - "cinco", - "cine", - "cinta", - "ciprés", - "circo", - "ciruela", - "cisne", - "cita", - "ciudad", - "clamor", - "clan", - "claro", - "clase", - "clave", - "cliente", - "clima", - "clínica", - "cobre", - "cocción", - "cochino", - "cocina", - "coco", - "código", - "codo", - "cofre", - "coger", - "cohete", - "cojín", - "cojo", - "cola", - "colcha", - "colegio", - "colgar", - "colina", - "collar", - "colmo", - "columna", - "combate", - "comer", - "comida", - "cómodo", - "compra", - "conde", - "conejo", - "conga", - "conocer", - "consejo", - "contar", - "copa", - "copia", - "corazón", - "corbata", - "corcho", - "cordón", - "corona", - "correr", - "coser", - "cosmos", - "costa", - "cráneo", - "cráter", - "crear", - "crecer", - "creído", - "crema", - "cría", - "crimen", - "cripta", - "crisis", - "cromo", - "crónica", - "croqueta", - "crudo", - "cruz", - "cuadro", - "cuarto", - "cuatro", - "cubo", - "cubrir", - "cuchara", - "cuello", - "cuento", - "cuerda", - "cuesta", - "cueva", - "cuidar", - "culebra", - "culpa", - "culto", - "cumbre", - "cumplir", - "cuna", - "cuneta", - "cuota", - "cupón", - "cúpula", - "curar", - "curioso", - "curso", - "curva", - "cutis", - "dama", - "danza", - "dar", - "dardo", - "dátil", - "deber", - "débil", - "década", - "decir", - "dedo", - "defensa", - "definir", - "dejar", - "delfín", - "delgado", - "delito", - "demora", - "denso", - "dental", - "deporte", - "derecho", - "derrota", - "desayuno", - "deseo", - "desfile", - "desnudo", - "destino", - "desvío", - "detalle", - "detener", - "deuda", - "día", - "diablo", - "diadema", - "diamante", - "diana", - "diario", - "dibujo", - "dictar", - "diente", - "dieta", - "diez", - "difícil", - "digno", - "dilema", - "diluir", - "dinero", - "directo", - "dirigir", - "disco", - "diseño", - "disfraz", - "diva", - "divino", - "doble", - "doce", - "dolor", - "domingo", - "don", - "donar", - "dorado", - "dormir", - "dorso", - "dos", - "dosis", - "dragón", - "droga", - "ducha", - "duda", - "duelo", - "dueño", - "dulce", - "dúo", - "duque", - "durar", - "dureza", - "duro", - "ébano", - "ebrio", - "echar", - "eco", - "ecuador", - "edad", - "edición", - "edificio", - "editor", - "educar", - "efecto", - "eficaz", - "eje", - "ejemplo", - "elefante", - "elegir", - "elemento", - "elevar", - "elipse", - "élite", - "elixir", - "elogio", - "eludir", - "embudo", - "emitir", - "emoción", - "empate", - "empeño", - "empleo", - "empresa", - "enano", - "encargo", - "enchufe", - "encía", - "enemigo", - "enero", - "enfado", - "enfermo", - "engaño", - "enigma", - "enlace", - "enorme", - "enredo", - "ensayo", - "enseñar", - "entero", - "entrar", - "envase", - "envío", - "época", - "equipo", - "erizo", - "escala", - "escena", - "escolar", - "escribir", - "escudo", - "esencia", - "esfera", - "esfuerzo", - "espada", - "espejo", - "espía", - "esposa", - "espuma", - "esquí", - "estar", - "este", - "estilo", - "estufa", - "etapa", - "eterno", - "ética", - "etnia", - "evadir", - "evaluar", - "evento", - "evitar", - "exacto", - "examen", - "exceso", - "excusa", - "exento", - "exigir", - "exilio", - "existir", - "éxito", - "experto", - "explicar", - "exponer", - "extremo", - "fábrica", - "fábula", - "fachada", - "fácil", - "factor", - "faena", - "faja", - "falda", - "fallo", - "falso", - "faltar", - "fama", - "familia", - "famoso", - "faraón", - "farmacia", - "farol", - "farsa", - "fase", - "fatiga", - "fauna", - "favor", - "fax", - "febrero", - "fecha", - "feliz", - "feo", - "feria", - "feroz", - "fértil", - "fervor", - "festín", - "fiable", - "fianza", - "fiar", - "fibra", - "ficción", - "ficha", - "fideo", - "fiebre", - "fiel", - "fiera", - "fiesta", - "figura", - "fijar", - "fijo", - "fila", - "filete", - "filial", - "filtro", - "fin", - "finca", - "fingir", - "finito", - "firma", - "flaco", - "flauta", - "flecha", - "flor", - "flota", - "fluir", - "flujo", - "flúor", - "fobia", - "foca", - "fogata", - "fogón", - "folio", - "folleto", - "fondo", - "forma", - "forro", - "fortuna", - "forzar", - "fosa", - "foto", - "fracaso", - "frágil", - "franja", - "frase", - "fraude", - "freír", - "freno", - "fresa", - "frío", - "frito", - "fruta", - "fuego", - "fuente", - "fuerza", - "fuga", - "fumar", - "función", - "funda", - "furgón", - "furia", - "fusil", - "fútbol", - "futuro", - "gacela", - "gafas", - "gaita", - "gajo", - "gala", - "galería", - "gallo", - "gamba", - "ganar", - "gancho", - "ganga", - "ganso", - "garaje", - "garza", - "gasolina", - "gastar", - "gato", - "gavilán", - "gemelo", - "gemir", - "gen", - "género", - "genio", - "gente", - "geranio", - "gerente", - "germen", - "gesto", - "gigante", - "gimnasio", - "girar", - "giro", - "glaciar", - "globo", - "gloria", - "gol", - "golfo", - "goloso", - "golpe", - "goma", - "gordo", - "gorila", - "gorra", - "gota", - "goteo", - "gozar", - "grada", - "gráfico", - "grano", - "grasa", - "gratis", - "grave", - "grieta", - "grillo", - "gripe", - "gris", - "grito", - "grosor", - "grúa", - "grueso", - "grumo", - "grupo", - "guante", - "guapo", - "guardia", - "guerra", - "guía", - "guiño", - "guion", - "guiso", - "guitarra", - "gusano", - "gustar", - "haber", - "hábil", - "hablar", - "hacer", - "hacha", - "hada", - "hallar", - "hamaca", - "harina", - "haz", - "hazaña", - "hebilla", - "hebra", - "hecho", - "helado", - "helio", - "hembra", - "herir", - "hermano", - "héroe", - "hervir", - "hielo", - "hierro", - "hígado", - "higiene", - "hijo", - "himno", - "historia", - "hocico", - "hogar", - "hoguera", - "hoja", - "hombre", - "hongo", - "honor", - "honra", - "hora", - "hormiga", - "horno", - "hostil", - "hoyo", - "hueco", - "huelga", - "huerta", - "hueso", - "huevo", - "huida", - "huir", - "humano", - "húmedo", - "humilde", - "humo", - "hundir", - "huracán", - "hurto", - "icono", - "ideal", - "idioma", - "ídolo", - "iglesia", - "iglú", - "igual", - "ilegal", - "ilusión", - "imagen", - "imán", - "imitar", - "impar", - "imperio", - "imponer", - "impulso", - "incapaz", - "índice", - "inerte", - "infiel", - "informe", - "ingenio", - "inicio", - "inmenso", - "inmune", - "innato", - "insecto", - "instante", - "interés", - "íntimo", - "intuir", - "inútil", - "invierno", - "ira", - "iris", - "ironía", - "isla", - "islote", - "jabalí", - "jabón", - "jamón", - "jarabe", - "jardín", - "jarra", - "jaula", - "jazmín", - "jefe", - "jeringa", - "jinete", - "jornada", - "joroba", - "joven", - "joya", - "juerga", - "jueves", - "juez", - "jugador", - "jugo", - "juguete", - "juicio", - "junco", - "jungla", - "junio", - "juntar", - "júpiter", - "jurar", - "justo", - "juvenil", - "juzgar", - "kilo", - "koala", - "labio", - "lacio", - "lacra", - "lado", - "ladrón", - "lagarto", - "lágrima", - "laguna", - "laico", - "lamer", - "lámina", - "lámpara", - "lana", - "lancha", - "langosta", - "lanza", - "lápiz", - "largo", - "larva", - "lástima", - "lata", - "látex", - "latir", - "laurel", - "lavar", - "lazo", - "leal", - "lección", - "leche", - "lector", - "leer", - "legión", - "legumbre", - "lejano", - "lengua", - "lento", - "leña", - "león", - "leopardo", - "lesión", - "letal", - "letra", - "leve", - "leyenda", - "libertad", - "libro", - "licor", - "líder", - "lidiar", - "lienzo", - "liga", - "ligero", - "lima", - "límite", - "limón", - "limpio", - "lince", - "lindo", - "línea", - "lingote", - "lino", - "linterna", - "líquido", - "liso", - "lista", - "litera", - "litio", - "litro", - "llaga", - "llama", - "llanto", - "llave", - "llegar", - "llenar", - "llevar", - "llorar", - "llover", - "lluvia", - "lobo", - "loción", - "loco", - "locura", - "lógica", - "logro", - "lombriz", - "lomo", - "lonja", - "lote", - "lucha", - "lucir", - "lugar", - "lujo", - "luna", - "lunes", - "lupa", - "lustro", - "luto", - "luz", - "maceta", - "macho", - "madera", - "madre", - "maduro", - "maestro", - "mafia", - "magia", - "mago", - "maíz", - "maldad", - "maleta", - "malla", - "malo", - "mamá", - "mambo", - "mamut", - "manco", - "mando", - "manejar", - "manga", - "maniquí", - "manjar", - "mano", - "manso", - "manta", - "mañana", - "mapa", - "máquina", - "mar", - "marco", - "marea", - "marfil", - "margen", - "marido", - "mármol", - "marrón", - "martes", - "marzo", - "masa", - "máscara", - "masivo", - "matar", - "materia", - "matiz", - "matriz", - "máximo", - "mayor", - "mazorca", - "mecha", - "medalla", - "medio", - "médula", - "mejilla", - "mejor", - "melena", - "melón", - "memoria", - "menor", - "mensaje", - "mente", - "menú", - "mercado", - "merengue", - "mérito", - "mes", - "mesón", - "meta", - "meter", - "método", - "metro", - "mezcla", - "miedo", - "miel", - "miembro", - "miga", - "mil", - "milagro", - "militar", - "millón", - "mimo", - "mina", - "minero", - "mínimo", - "minuto", - "miope", - "mirar", - "misa", - "miseria", - "misil", - "mismo", - "mitad", - "mito", - "mochila", - "moción", - "moda", - "modelo", - "moho", - "mojar", - "molde", - "moler", - "molino", - "momento", - "momia", - "monarca", - "moneda", - "monja", - "monto", - "moño", - "morada", - "morder", - "moreno", - "morir", - "morro", - "morsa", - "mortal", - "mosca", - "mostrar", - "motivo", - "mover", - "móvil", - "mozo", - "mucho", - "mudar", - "mueble", - "muela", - "muerte", - "muestra", - "mugre", - "mujer", - "mula", - "muleta", - "multa", - "mundo", - "muñeca", - "mural", - "muro", - "músculo", - "museo", - "musgo", - "música", - "muslo", - "nácar", - "nación", - "nadar", - "naipe", - "naranja", - "nariz", - "narrar", - "nasal", - "natal", - "nativo", - "natural", - "náusea", - "naval", - "nave", - "navidad", - "necio", - "néctar", - "negar", - "negocio", - "negro", - "neón", - "nervio", - "neto", - "neutro", - "nevar", - "nevera", - "nicho", - "nido", - "niebla", - "nieto", - "niñez", - "niño", - "nítido", - "nivel", - "nobleza", - "noche", - "nómina", - "noria", - "norma", - "norte", - "nota", - "noticia", - "novato", - "novela", - "novio", - "nube", - "nuca", - "núcleo", - "nudillo", - "nudo", - "nuera", - "nueve", - "nuez", - "nulo", - "número", - "nutria", - "oasis", - "obeso", - "obispo", - "objeto", - "obra", - "obrero", - "observar", - "obtener", - "obvio", - "oca", - "ocaso", - "océano", - "ochenta", - "ocho", - "ocio", - "ocre", - "octavo", - "octubre", - "oculto", - "ocupar", - "ocurrir", - "odiar", - "odio", - "odisea", - "oeste", - "ofensa", - "oferta", - "oficio", - "ofrecer", - "ogro", - "oído", - "oír", - "ojo", - "ola", - "oleada", - "olfato", - "olivo", - "olla", - "olmo", - "olor", - "olvido", - "ombligo", - "onda", - "onza", - "opaco", - "opción", - "ópera", - "opinar", - "oponer", - "optar", - "óptica", - "opuesto", - "oración", - "orador", - "oral", - "órbita", - "orca", - "orden", - "oreja", - "órgano", - "orgía", - "orgullo", - "oriente", - "origen", - "orilla", - "oro", - "orquesta", - "oruga", - "osadía", - "oscuro", - "osezno", - "oso", - "ostra", - "otoño", - "otro", - "oveja", - "óvulo", - "óxido", - "oxígeno", - "oyente", - "ozono", - "pacto", - "padre", - "paella", - "página", - "pago", - "país", - "pájaro", - "palabra", - "palco", - "paleta", - "pálido", - "palma", - "paloma", - "palpar", - "pan", - "panal", - "pánico", - "pantera", - "pañuelo", - "papá", - "papel", - "papilla", - "paquete", - "parar", - "parcela", - "pared", - "parir", - "paro", - "párpado", - "parque", - "párrafo", - "parte", - "pasar", - "paseo", - "pasión", - "paso", - "pasta", - "pata", - "patio", - "patria", - "pausa", - "pauta", - "pavo", - "payaso", - "peatón", - "pecado", - "pecera", - "pecho", - "pedal", - "pedir", - "pegar", - "peine", - "pelar", - "peldaño", - "pelea", - "peligro", - "pellejo", - "pelo", - "peluca", - "pena", - "pensar", - "peñón", - "peón", - "peor", - "pepino", - "pequeño", - "pera", - "percha", - "perder", - "pereza", - "perfil", - "perico", - "perla", - "permiso", - "perro", - "persona", - "pesa", - "pesca", - "pésimo", - "pestaña", - "pétalo", - "petróleo", - "pez", - "pezuña", - "picar", - "pichón", - "pie", - "piedra", - "pierna", - "pieza", - "pijama", - "pilar", - "piloto", - "pimienta", - "pino", - "pintor", - "pinza", - "piña", - "piojo", - "pipa", - "pirata", - "pisar", - "piscina", - "piso", - "pista", - "pitón", - "pizca", - "placa", - "plan", - "plata", - "playa", - "plaza", - "pleito", - "pleno", - "plomo", - "pluma", - "plural", - "pobre", - "poco", - "poder", - "podio", - "poema", - "poesía", - "poeta", - "polen", - "policía", - "pollo", - "polvo", - "pomada", - "pomelo", - "pomo", - "pompa", - "poner", - "porción", - "portal", - "posada", - "poseer", - "posible", - "poste", - "potencia", - "potro", - "pozo", - "prado", - "precoz", - "pregunta", - "premio", - "prensa", - "preso", - "previo", - "primo", - "príncipe", - "prisión", - "privar", - "proa", - "probar", - "proceso", - "producto", - "proeza", - "profesor", - "programa", - "prole", - "promesa", - "pronto", - "propio", - "próximo", - "prueba", - "público", - "puchero", - "pudor", - "pueblo", - "puerta", - "puesto", - "pulga", - "pulir", - "pulmón", - "pulpo", - "pulso", - "puma", - "punto", - "puñal", - "puño", - "pupa", - "pupila", - "puré", - "quedar", - "queja", - "quemar", - "querer", - "queso", - "quieto", - "química", - "quince", - "quitar", - "rábano", - "rabia", - "rabo", - "ración", - "radical", - "raíz", - "rama", - "rampa", - "rancho", - "rango", - "rapaz", - "rápido", - "rapto", - "rasgo", - "raspa", - "rato", - "rayo", - "raza", - "razón", - "reacción", - "realidad", - "rebaño", - "rebote", - "recaer", - "receta", - "rechazo", - "recoger", - "recreo", - "recto", - "recurso", - "red", - "redondo", - "reducir", - "reflejo", - "reforma", - "refrán", - "refugio", - "regalo", - "regir", - "regla", - "regreso", - "rehén", - "reino", - "reír", - "reja", - "relato", - "relevo", - "relieve", - "relleno", - "reloj", - "remar", - "remedio", - "remo", - "rencor", - "rendir", - "renta", - "reparto", - "repetir", - "reposo", - "reptil", - "res", - "rescate", - "resina", - "respeto", - "resto", - "resumen", - "retiro", - "retorno", - "retrato", - "reunir", - "revés", - "revista", - "rey", - "rezar", - "rico", - "riego", - "rienda", - "riesgo", - "rifa", - "rígido", - "rigor", - "rincón", - "riñón", - "río", - "riqueza", - "risa", - "ritmo", - "rito" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "Spanish"; - populate_maps(); - } - }; + class Spanish: public Base + { + public: + Spanish() + { + word_list = new std::vector({ + "ábaco", + "abdomen", + "abeja", + "abierto", + "abogado", + "abono", + "aborto", + "abrazo", + "abrir", + "abuelo", + "abuso", + "acabar", + "academia", + "acceso", + "acción", + "aceite", + "acelga", + "acento", + "aceptar", + "ácido", + "aclarar", + "acné", + "acoger", + "acoso", + "activo", + "acto", + "actriz", + "actuar", + "acudir", + "acuerdo", + "acusar", + "adicto", + "admitir", + "adoptar", + "adorno", + "aduana", + "adulto", + "aéreo", + "afectar", + "afición", + "afinar", + "afirmar", + "ágil", + "agitar", + "agonía", + "agosto", + "agotar", + "agregar", + "agrio", + "agua", + "agudo", + "águila", + "aguja", + "ahogo", + "ahorro", + "aire", + "aislar", + "ajedrez", + "ajeno", + "ajuste", + "alacrán", + "alambre", + "alarma", + "alba", + "álbum", + "alcalde", + "aldea", + "alegre", + "alejar", + "alerta", + "aleta", + "alfiler", + "alga", + "algodón", + "aliado", + "aliento", + "alivio", + "alma", + "almeja", + "almíbar", + "altar", + "alteza", + "altivo", + "alto", + "altura", + "alumno", + "alzar", + "amable", + "amante", + "amapola", + "amargo", + "amasar", + "ámbar", + "ámbito", + "ameno", + "amigo", + "amistad", + "amor", + "amparo", + "amplio", + "ancho", + "anciano", + "ancla", + "andar", + "andén", + "anemia", + "ángulo", + "anillo", + "ánimo", + "anís", + "anotar", + "antena", + "antiguo", + "antojo", + "anual", + "anular", + "anuncio", + "añadir", + "añejo", + "año", + "apagar", + "aparato", + "apetito", + "apio", + "aplicar", + "apodo", + "aporte", + "apoyo", + "aprender", + "aprobar", + "apuesta", + "apuro", + "arado", + "araña", + "arar", + "árbitro", + "árbol", + "arbusto", + "archivo", + "arco", + "arder", + "ardilla", + "arduo", + "área", + "árido", + "aries", + "armonía", + "arnés", + "aroma", + "arpa", + "arpón", + "arreglo", + "arroz", + "arruga", + "arte", + "artista", + "asa", + "asado", + "asalto", + "ascenso", + "asegurar", + "aseo", + "asesor", + "asiento", + "asilo", + "asistir", + "asno", + "asombro", + "áspero", + "astilla", + "astro", + "astuto", + "asumir", + "asunto", + "atajo", + "ataque", + "atar", + "atento", + "ateo", + "ático", + "atleta", + "átomo", + "atraer", + "atroz", + "atún", + "audaz", + "audio", + "auge", + "aula", + "aumento", + "ausente", + "autor", + "aval", + "avance", + "avaro", + "ave", + "avellana", + "avena", + "avestruz", + "avión", + "aviso", + "ayer", + "ayuda", + "ayuno", + "azafrán", + "azar", + "azote", + "azúcar", + "azufre", + "azul", + "baba", + "babor", + "bache", + "bahía", + "baile", + "bajar", + "balanza", + "balcón", + "balde", + "bambú", + "banco", + "banda", + "baño", + "barba", + "barco", + "barniz", + "barro", + "báscula", + "bastón", + "basura", + "batalla", + "batería", + "batir", + "batuta", + "baúl", + "bazar", + "bebé", + "bebida", + "bello", + "besar", + "beso", + "bestia", + "bicho", + "bien", + "bingo", + "blanco", + "bloque", + "blusa", + "boa", + "bobina", + "bobo", + "boca", + "bocina", + "boda", + "bodega", + "boina", + "bola", + "bolero", + "bolsa", + "bomba", + "bondad", + "bonito", + "bono", + "bonsái", + "borde", + "borrar", + "bosque", + "bote", + "botín", + "bóveda", + "bozal", + "bravo", + "brazo", + "brecha", + "breve", + "brillo", + "brinco", + "brisa", + "broca", + "broma", + "bronce", + "brote", + "bruja", + "brusco", + "bruto", + "buceo", + "bucle", + "bueno", + "buey", + "bufanda", + "bufón", + "búho", + "buitre", + "bulto", + "burbuja", + "burla", + "burro", + "buscar", + "butaca", + "buzón", + "caballo", + "cabeza", + "cabina", + "cabra", + "cacao", + "cadáver", + "cadena", + "caer", + "café", + "caída", + "caimán", + "caja", + "cajón", + "cal", + "calamar", + "calcio", + "caldo", + "calidad", + "calle", + "calma", + "calor", + "calvo", + "cama", + "cambio", + "camello", + "camino", + "campo", + "cáncer", + "candil", + "canela", + "canguro", + "canica", + "canto", + "caña", + "cañón", + "caoba", + "caos", + "capaz", + "capitán", + "capote", + "captar", + "capucha", + "cara", + "carbón", + "cárcel", + "careta", + "carga", + "cariño", + "carne", + "carpeta", + "carro", + "carta", + "casa", + "casco", + "casero", + "caspa", + "castor", + "catorce", + "catre", + "caudal", + "causa", + "cazo", + "cebolla", + "ceder", + "cedro", + "celda", + "célebre", + "celoso", + "célula", + "cemento", + "ceniza", + "centro", + "cerca", + "cerdo", + "cereza", + "cero", + "cerrar", + "certeza", + "césped", + "cetro", + "chacal", + "chaleco", + "champú", + "chancla", + "chapa", + "charla", + "chico", + "chiste", + "chivo", + "choque", + "choza", + "chuleta", + "chupar", + "ciclón", + "ciego", + "cielo", + "cien", + "cierto", + "cifra", + "cigarro", + "cima", + "cinco", + "cine", + "cinta", + "ciprés", + "circo", + "ciruela", + "cisne", + "cita", + "ciudad", + "clamor", + "clan", + "claro", + "clase", + "clave", + "cliente", + "clima", + "clínica", + "cobre", + "cocción", + "cochino", + "cocina", + "coco", + "código", + "codo", + "cofre", + "coger", + "cohete", + "cojín", + "cojo", + "cola", + "colcha", + "colegio", + "colgar", + "colina", + "collar", + "colmo", + "columna", + "combate", + "comer", + "comida", + "cómodo", + "compra", + "conde", + "conejo", + "conga", + "conocer", + "consejo", + "contar", + "copa", + "copia", + "corazón", + "corbata", + "corcho", + "cordón", + "corona", + "correr", + "coser", + "cosmos", + "costa", + "cráneo", + "cráter", + "crear", + "crecer", + "creído", + "crema", + "cría", + "crimen", + "cripta", + "crisis", + "cromo", + "crónica", + "croqueta", + "crudo", + "cruz", + "cuadro", + "cuarto", + "cuatro", + "cubo", + "cubrir", + "cuchara", + "cuello", + "cuento", + "cuerda", + "cuesta", + "cueva", + "cuidar", + "culebra", + "culpa", + "culto", + "cumbre", + "cumplir", + "cuna", + "cuneta", + "cuota", + "cupón", + "cúpula", + "curar", + "curioso", + "curso", + "curva", + "cutis", + "dama", + "danza", + "dar", + "dardo", + "dátil", + "deber", + "débil", + "década", + "decir", + "dedo", + "defensa", + "definir", + "dejar", + "delfín", + "delgado", + "delito", + "demora", + "denso", + "dental", + "deporte", + "derecho", + "derrota", + "desayuno", + "deseo", + "desfile", + "desnudo", + "destino", + "desvío", + "detalle", + "detener", + "deuda", + "día", + "diablo", + "diadema", + "diamante", + "diana", + "diario", + "dibujo", + "dictar", + "diente", + "dieta", + "diez", + "difícil", + "digno", + "dilema", + "diluir", + "dinero", + "directo", + "dirigir", + "disco", + "diseño", + "disfraz", + "diva", + "divino", + "doble", + "doce", + "dolor", + "domingo", + "don", + "donar", + "dorado", + "dormir", + "dorso", + "dos", + "dosis", + "dragón", + "droga", + "ducha", + "duda", + "duelo", + "dueño", + "dulce", + "dúo", + "duque", + "durar", + "dureza", + "duro", + "ébano", + "ebrio", + "echar", + "eco", + "ecuador", + "edad", + "edición", + "edificio", + "editor", + "educar", + "efecto", + "eficaz", + "eje", + "ejemplo", + "elefante", + "elegir", + "elemento", + "elevar", + "elipse", + "élite", + "elixir", + "elogio", + "eludir", + "embudo", + "emitir", + "emoción", + "empate", + "empeño", + "empleo", + "empresa", + "enano", + "encargo", + "enchufe", + "encía", + "enemigo", + "enero", + "enfado", + "enfermo", + "engaño", + "enigma", + "enlace", + "enorme", + "enredo", + "ensayo", + "enseñar", + "entero", + "entrar", + "envase", + "envío", + "época", + "equipo", + "erizo", + "escala", + "escena", + "escolar", + "escribir", + "escudo", + "esencia", + "esfera", + "esfuerzo", + "espada", + "espejo", + "espía", + "esposa", + "espuma", + "esquí", + "estar", + "este", + "estilo", + "estufa", + "etapa", + "eterno", + "ética", + "etnia", + "evadir", + "evaluar", + "evento", + "evitar", + "exacto", + "examen", + "exceso", + "excusa", + "exento", + "exigir", + "exilio", + "existir", + "éxito", + "experto", + "explicar", + "exponer", + "extremo", + "fábrica", + "fábula", + "fachada", + "fácil", + "factor", + "faena", + "faja", + "falda", + "fallo", + "falso", + "faltar", + "fama", + "familia", + "famoso", + "faraón", + "farmacia", + "farol", + "farsa", + "fase", + "fatiga", + "fauna", + "favor", + "fax", + "febrero", + "fecha", + "feliz", + "feo", + "feria", + "feroz", + "fértil", + "fervor", + "festín", + "fiable", + "fianza", + "fiar", + "fibra", + "ficción", + "ficha", + "fideo", + "fiebre", + "fiel", + "fiera", + "fiesta", + "figura", + "fijar", + "fijo", + "fila", + "filete", + "filial", + "filtro", + "fin", + "finca", + "fingir", + "finito", + "firma", + "flaco", + "flauta", + "flecha", + "flor", + "flota", + "fluir", + "flujo", + "flúor", + "fobia", + "foca", + "fogata", + "fogón", + "folio", + "folleto", + "fondo", + "forma", + "forro", + "fortuna", + "forzar", + "fosa", + "foto", + "fracaso", + "frágil", + "franja", + "frase", + "fraude", + "freír", + "freno", + "fresa", + "frío", + "frito", + "fruta", + "fuego", + "fuente", + "fuerza", + "fuga", + "fumar", + "función", + "funda", + "furgón", + "furia", + "fusil", + "fútbol", + "futuro", + "gacela", + "gafas", + "gaita", + "gajo", + "gala", + "galería", + "gallo", + "gamba", + "ganar", + "gancho", + "ganga", + "ganso", + "garaje", + "garza", + "gasolina", + "gastar", + "gato", + "gavilán", + "gemelo", + "gemir", + "gen", + "género", + "genio", + "gente", + "geranio", + "gerente", + "germen", + "gesto", + "gigante", + "gimnasio", + "girar", + "giro", + "glaciar", + "globo", + "gloria", + "gol", + "golfo", + "goloso", + "golpe", + "goma", + "gordo", + "gorila", + "gorra", + "gota", + "goteo", + "gozar", + "grada", + "gráfico", + "grano", + "grasa", + "gratis", + "grave", + "grieta", + "grillo", + "gripe", + "gris", + "grito", + "grosor", + "grúa", + "grueso", + "grumo", + "grupo", + "guante", + "guapo", + "guardia", + "guerra", + "guía", + "guiño", + "guion", + "guiso", + "guitarra", + "gusano", + "gustar", + "haber", + "hábil", + "hablar", + "hacer", + "hacha", + "hada", + "hallar", + "hamaca", + "harina", + "haz", + "hazaña", + "hebilla", + "hebra", + "hecho", + "helado", + "helio", + "hembra", + "herir", + "hermano", + "héroe", + "hervir", + "hielo", + "hierro", + "hígado", + "higiene", + "hijo", + "himno", + "historia", + "hocico", + "hogar", + "hoguera", + "hoja", + "hombre", + "hongo", + "honor", + "honra", + "hora", + "hormiga", + "horno", + "hostil", + "hoyo", + "hueco", + "huelga", + "huerta", + "hueso", + "huevo", + "huida", + "huir", + "humano", + "húmedo", + "humilde", + "humo", + "hundir", + "huracán", + "hurto", + "icono", + "ideal", + "idioma", + "ídolo", + "iglesia", + "iglú", + "igual", + "ilegal", + "ilusión", + "imagen", + "imán", + "imitar", + "impar", + "imperio", + "imponer", + "impulso", + "incapaz", + "índice", + "inerte", + "infiel", + "informe", + "ingenio", + "inicio", + "inmenso", + "inmune", + "innato", + "insecto", + "instante", + "interés", + "íntimo", + "intuir", + "inútil", + "invierno", + "ira", + "iris", + "ironía", + "isla", + "islote", + "jabalí", + "jabón", + "jamón", + "jarabe", + "jardín", + "jarra", + "jaula", + "jazmín", + "jefe", + "jeringa", + "jinete", + "jornada", + "joroba", + "joven", + "joya", + "juerga", + "jueves", + "juez", + "jugador", + "jugo", + "juguete", + "juicio", + "junco", + "jungla", + "junio", + "juntar", + "júpiter", + "jurar", + "justo", + "juvenil", + "juzgar", + "kilo", + "koala", + "labio", + "lacio", + "lacra", + "lado", + "ladrón", + "lagarto", + "lágrima", + "laguna", + "laico", + "lamer", + "lámina", + "lámpara", + "lana", + "lancha", + "langosta", + "lanza", + "lápiz", + "largo", + "larva", + "lástima", + "lata", + "látex", + "latir", + "laurel", + "lavar", + "lazo", + "leal", + "lección", + "leche", + "lector", + "leer", + "legión", + "legumbre", + "lejano", + "lengua", + "lento", + "leña", + "león", + "leopardo", + "lesión", + "letal", + "letra", + "leve", + "leyenda", + "libertad", + "libro", + "licor", + "líder", + "lidiar", + "lienzo", + "liga", + "ligero", + "lima", + "límite", + "limón", + "limpio", + "lince", + "lindo", + "línea", + "lingote", + "lino", + "linterna", + "líquido", + "liso", + "lista", + "litera", + "litio", + "litro", + "llaga", + "llama", + "llanto", + "llave", + "llegar", + "llenar", + "llevar", + "llorar", + "llover", + "lluvia", + "lobo", + "loción", + "loco", + "locura", + "lógica", + "logro", + "lombriz", + "lomo", + "lonja", + "lote", + "lucha", + "lucir", + "lugar", + "lujo", + "luna", + "lunes", + "lupa", + "lustro", + "luto", + "luz", + "maceta", + "macho", + "madera", + "madre", + "maduro", + "maestro", + "mafia", + "magia", + "mago", + "maíz", + "maldad", + "maleta", + "malla", + "malo", + "mamá", + "mambo", + "mamut", + "manco", + "mando", + "manejar", + "manga", + "maniquí", + "manjar", + "mano", + "manso", + "manta", + "mañana", + "mapa", + "máquina", + "mar", + "marco", + "marea", + "marfil", + "margen", + "marido", + "mármol", + "marrón", + "martes", + "marzo", + "masa", + "máscara", + "masivo", + "matar", + "materia", + "matiz", + "matriz", + "máximo", + "mayor", + "mazorca", + "mecha", + "medalla", + "medio", + "médula", + "mejilla", + "mejor", + "melena", + "melón", + "memoria", + "menor", + "mensaje", + "mente", + "menú", + "mercado", + "merengue", + "mérito", + "mes", + "mesón", + "meta", + "meter", + "método", + "metro", + "mezcla", + "miedo", + "miel", + "miembro", + "miga", + "mil", + "milagro", + "militar", + "millón", + "mimo", + "mina", + "minero", + "mínimo", + "minuto", + "miope", + "mirar", + "misa", + "miseria", + "misil", + "mismo", + "mitad", + "mito", + "mochila", + "moción", + "moda", + "modelo", + "moho", + "mojar", + "molde", + "moler", + "molino", + "momento", + "momia", + "monarca", + "moneda", + "monja", + "monto", + "moño", + "morada", + "morder", + "moreno", + "morir", + "morro", + "morsa", + "mortal", + "mosca", + "mostrar", + "motivo", + "mover", + "móvil", + "mozo", + "mucho", + "mudar", + "mueble", + "muela", + "muerte", + "muestra", + "mugre", + "mujer", + "mula", + "muleta", + "multa", + "mundo", + "muñeca", + "mural", + "muro", + "músculo", + "museo", + "musgo", + "música", + "muslo", + "nácar", + "nación", + "nadar", + "naipe", + "naranja", + "nariz", + "narrar", + "nasal", + "natal", + "nativo", + "natural", + "náusea", + "naval", + "nave", + "navidad", + "necio", + "néctar", + "negar", + "negocio", + "negro", + "neón", + "nervio", + "neto", + "neutro", + "nevar", + "nevera", + "nicho", + "nido", + "niebla", + "nieto", + "niñez", + "niño", + "nítido", + "nivel", + "nobleza", + "noche", + "nómina", + "noria", + "norma", + "norte", + "nota", + "noticia", + "novato", + "novela", + "novio", + "nube", + "nuca", + "núcleo", + "nudillo", + "nudo", + "nuera", + "nueve", + "nuez", + "nulo", + "número", + "nutria", + "oasis", + "obeso", + "obispo", + "objeto", + "obra", + "obrero", + "observar", + "obtener", + "obvio", + "oca", + "ocaso", + "océano", + "ochenta", + "ocho", + "ocio", + "ocre", + "octavo", + "octubre", + "oculto", + "ocupar", + "ocurrir", + "odiar", + "odio", + "odisea", + "oeste", + "ofensa", + "oferta", + "oficio", + "ofrecer", + "ogro", + "oído", + "oír", + "ojo", + "ola", + "oleada", + "olfato", + "olivo", + "olla", + "olmo", + "olor", + "olvido", + "ombligo", + "onda", + "onza", + "opaco", + "opción", + "ópera", + "opinar", + "oponer", + "optar", + "óptica", + "opuesto", + "oración", + "orador", + "oral", + "órbita", + "orca", + "orden", + "oreja", + "órgano", + "orgía", + "orgullo", + "oriente", + "origen", + "orilla", + "oro", + "orquesta", + "oruga", + "osadía", + "oscuro", + "osezno", + "oso", + "ostra", + "otoño", + "otro", + "oveja", + "óvulo", + "óxido", + "oxígeno", + "oyente", + "ozono", + "pacto", + "padre", + "paella", + "página", + "pago", + "país", + "pájaro", + "palabra", + "palco", + "paleta", + "pálido", + "palma", + "paloma", + "palpar", + "pan", + "panal", + "pánico", + "pantera", + "pañuelo", + "papá", + "papel", + "papilla", + "paquete", + "parar", + "parcela", + "pared", + "parir", + "paro", + "párpado", + "parque", + "párrafo", + "parte", + "pasar", + "paseo", + "pasión", + "paso", + "pasta", + "pata", + "patio", + "patria", + "pausa", + "pauta", + "pavo", + "payaso", + "peatón", + "pecado", + "pecera", + "pecho", + "pedal", + "pedir", + "pegar", + "peine", + "pelar", + "peldaño", + "pelea", + "peligro", + "pellejo", + "pelo", + "peluca", + "pena", + "pensar", + "peñón", + "peón", + "peor", + "pepino", + "pequeño", + "pera", + "percha", + "perder", + "pereza", + "perfil", + "perico", + "perla", + "permiso", + "perro", + "persona", + "pesa", + "pesca", + "pésimo", + "pestaña", + "pétalo", + "petróleo", + "pez", + "pezuña", + "picar", + "pichón", + "pie", + "piedra", + "pierna", + "pieza", + "pijama", + "pilar", + "piloto", + "pimienta", + "pino", + "pintor", + "pinza", + "piña", + "piojo", + "pipa", + "pirata", + "pisar", + "piscina", + "piso", + "pista", + "pitón", + "pizca", + "placa", + "plan", + "plata", + "playa", + "plaza", + "pleito", + "pleno", + "plomo", + "pluma", + "plural", + "pobre", + "poco", + "poder", + "podio", + "poema", + "poesía", + "poeta", + "polen", + "policía", + "pollo", + "polvo", + "pomada", + "pomelo", + "pomo", + "pompa", + "poner", + "porción", + "portal", + "posada", + "poseer", + "posible", + "poste", + "potencia", + "potro", + "pozo", + "prado", + "precoz", + "pregunta", + "premio", + "prensa", + "preso", + "previo", + "primo", + "príncipe", + "prisión", + "privar", + "proa", + "probar", + "proceso", + "producto", + "proeza", + "profesor", + "programa", + "prole", + "promesa", + "pronto", + "propio", + "próximo", + "prueba", + "público", + "puchero", + "pudor", + "pueblo", + "puerta", + "puesto", + "pulga", + "pulir", + "pulmón", + "pulpo", + "pulso", + "puma", + "punto", + "puñal", + "puño", + "pupa", + "pupila", + "puré", + "quedar", + "queja", + "quemar", + "querer", + "queso", + "quieto", + "química", + "quince", + "quitar", + "rábano", + "rabia", + "rabo", + "ración", + "radical", + "raíz", + "rama", + "rampa", + "rancho", + "rango", + "rapaz", + "rápido", + "rapto", + "rasgo", + "raspa", + "rato", + "rayo", + "raza", + "razón", + "reacción", + "realidad", + "rebaño", + "rebote", + "recaer", + "receta", + "rechazo", + "recoger", + "recreo", + "recto", + "recurso", + "red", + "redondo", + "reducir", + "reflejo", + "reforma", + "refrán", + "refugio", + "regalo", + "regir", + "regla", + "regreso", + "rehén", + "reino", + "reír", + "reja", + "relato", + "relevo", + "relieve", + "relleno", + "reloj", + "remar", + "remedio", + "remo", + "rencor", + "rendir", + "renta", + "reparto", + "repetir", + "reposo", + "reptil", + "res", + "rescate", + "resina", + "respeto", + "resto", + "resumen", + "retiro", + "retorno", + "retrato", + "reunir", + "revés", + "revista", + "rey", + "rezar", + "rico", + "riego", + "rienda", + "riesgo", + "rifa", + "rígido", + "rigor", + "rincón", + "riñón", + "río", + "riqueza", + "risa", + "ritmo", + "rito" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "Spanish"; + populate_maps(); + } + }; } #endif \ No newline at end of file diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 4b1fb07cd..780cf5daa 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -507,7 +507,7 @@ bool simple_wallet::new_wallet(const std::string &wallet_file, const std::string // convert rng value to electrum-style word list std::string electrum_words; - bool was_deprecated_wallet = (old_language == "OldEnglish") || + bool was_deprecated_wallet = (old_language == crypto::ElectrumWords::old_language_name) || crypto::ElectrumWords::get_is_old_style_seed(m_electrum_seed); std::string mnemonic_language = old_language; From 41948fa2ec845116110a07bee4a35dbb421d1f3e Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Sun, 5 Oct 2014 02:41:15 +0530 Subject: [PATCH 26/26] Uses new Japanese file. Gives credit to dabura667. English file indentation tabs to spaces. --- src/mnemonics/english.h | 3278 +++++++++++++++++++------------------- src/mnemonics/japanese.h | 914 +++++------ 2 files changed, 2096 insertions(+), 2096 deletions(-) diff --git a/src/mnemonics/english.h b/src/mnemonics/english.h index e596f7b03..1b08e08d5 100644 --- a/src/mnemonics/english.h +++ b/src/mnemonics/english.h @@ -47,1645 +47,1645 @@ */ namespace Language { - class English: public Base - { - public: - English() - { - word_list = new std::vector({ - "abandon", - "ability", - "able", - "about", - "above", - "absent", - "absorb", - "abstract", - "absurd", - "abuse", - "access", - "accident", - "account", - "accuse", - "achieve", - "acid", - "acoustic", - "acquire", - "across", - "act", - "action", - "actor", - "actress", - "actual", - "adapt", - "add", - "addict", - "address", - "adjust", - "admit", - "adult", - "advance", - "advice", - "aerobic", - "affair", - "afford", - "afraid", - "again", - "age", - "agent", - "agree", - "ahead", - "aim", - "air", - "airport", - "aisle", - "alarm", - "album", - "alcohol", - "alert", - "alien", - "all", - "alley", - "allow", - "almost", - "alone", - "alpha", - "already", - "also", - "alter", - "always", - "amateur", - "amazing", - "among", - "amount", - "amused", - "analyst", - "anchor", - "ancient", - "anger", - "angle", - "angry", - "animal", - "ankle", - "announce", - "annual", - "another", - "answer", - "antenna", - "antique", - "anxiety", - "any", - "apart", - "apology", - "appear", - "apple", - "approve", - "april", - "arch", - "arctic", - "area", - "arena", - "argue", - "arm", - "armed", - "armor", - "army", - "around", - "arrange", - "arrest", - "arrive", - "arrow", - "art", - "artefact", - "artist", - "artwork", - "ask", - "aspect", - "assault", - "asset", - "assist", - "assume", - "asthma", - "athlete", - "atom", - "attack", - "attend", - "attitude", - "attract", - "auction", - "audit", - "august", - "aunt", - "author", - "auto", - "autumn", - "average", - "avocado", - "avoid", - "awake", - "aware", - "away", - "awesome", - "awful", - "awkward", - "axis", - "baby", - "bachelor", - "bacon", - "badge", - "bag", - "balance", - "balcony", - "ball", - "bamboo", - "banana", - "banner", - "bar", - "barely", - "bargain", - "barrel", - "base", - "basic", - "basket", - "battle", - "beach", - "bean", - "beauty", - "because", - "become", - "beef", - "before", - "begin", - "behave", - "behind", - "believe", - "below", - "belt", - "bench", - "benefit", - "best", - "betray", - "better", - "between", - "beyond", - "bicycle", - "bid", - "bike", - "bind", - "biology", - "bird", - "birth", - "bitter", - "black", - "blade", - "blame", - "blanket", - "blast", - "bleak", - "bless", - "blind", - "blood", - "blossom", - "blouse", - "blue", - "blur", - "blush", - "board", - "boat", - "body", - "boil", - "bomb", - "bone", - "bonus", - "book", - "boost", - "border", - "boring", - "borrow", - "boss", - "bottom", - "bounce", - "box", - "boy", - "bracket", - "brain", - "brand", - "brass", - "brave", - "bread", - "breeze", - "brick", - "bridge", - "brief", - "bright", - "bring", - "brisk", - "broccoli", - "broken", - "bronze", - "broom", - "brother", - "brown", - "brush", - "bubble", - "buddy", - "budget", - "buffalo", - "build", - "bulb", - "bulk", - "bullet", - "bundle", - "bunker", - "burden", - "burger", - "burst", - "bus", - "business", - "busy", - "butter", - "buyer", - "buzz", - "cabbage", - "cabin", - "cable", - "cactus", - "cage", - "cake", - "call", - "calm", - "camera", - "camp", - "can", - "canal", - "cancel", - "candy", - "cannon", - "canoe", - "canvas", - "canyon", - "capable", - "capital", - "captain", - "car", - "carbon", - "card", - "cargo", - "carpet", - "carry", - "cart", - "case", - "cash", - "casino", - "castle", - "casual", - "cat", - "catalog", - "catch", - "category", - "cattle", - "caught", - "cause", - "caution", - "cave", - "ceiling", - "celery", - "cement", - "census", - "century", - "cereal", - "certain", - "chair", - "chalk", - "champion", - "change", - "chaos", - "chapter", - "charge", - "chase", - "chat", - "cheap", - "check", - "cheese", - "chef", - "cherry", - "chest", - "chicken", - "chief", - "child", - "chimney", - "choice", - "choose", - "chronic", - "chuckle", - "chunk", - "churn", - "cigar", - "cinnamon", - "circle", - "citizen", - "city", - "civil", - "claim", - "clap", - "clarify", - "claw", - "clay", - "clean", - "clerk", - "clever", - "click", - "client", - "cliff", - "climb", - "clinic", - "clip", - "clock", - "clog", - "close", - "cloth", - "cloud", - "clown", - "club", - "clump", - "cluster", - "clutch", - "coach", - "coast", - "coconut", - "code", - "coffee", - "coil", - "coin", - "collect", - "color", - "column", - "combine", - "come", - "comfort", - "comic", - "common", - "company", - "concert", - "conduct", - "confirm", - "congress", - "connect", - "consider", - "control", - "convince", - "cook", - "cool", - "copper", - "copy", - "coral", - "core", - "corn", - "correct", - "cost", - "cotton", - "couch", - "country", - "couple", - "course", - "cousin", - "cover", - "coyote", - "crack", - "cradle", - "craft", - "cram", - "crane", - "crash", - "crater", - "crawl", - "crazy", - "cream", - "credit", - "creek", - "crew", - "cricket", - "crime", - "crisp", - "critic", - "crop", - "cross", - "crouch", - "crowd", - "crucial", - "cruel", - "cruise", - "crumble", - "crunch", - "crush", - "cry", - "crystal", - "cube", - "culture", - "cup", - "cupboard", - "curious", - "current", - "curtain", - "curve", - "cushion", - "custom", - "cute", - "cycle", - "dad", - "damage", - "damp", - "dance", - "danger", - "daring", - "dash", - "daughter", - "dawn", - "day", - "deal", - "debate", - "debris", - "decade", - "december", - "decide", - "decline", - "decorate", - "decrease", - "deer", - "defense", - "define", - "defy", - "degree", - "delay", - "deliver", - "demand", - "demise", - "denial", - "dentist", - "deny", - "depart", - "depend", - "deposit", - "depth", - "deputy", - "derive", - "describe", - "desert", - "design", - "desk", - "despair", - "destroy", - "detail", - "detect", - "develop", - "device", - "devote", - "diagram", - "dial", - "diamond", - "diary", - "dice", - "diesel", - "diet", - "differ", - "digital", - "dignity", - "dilemma", - "dinner", - "dinosaur", - "direct", - "dirt", - "disagree", - "discover", - "disease", - "dish", - "dismiss", - "disorder", - "display", - "distance", - "divert", - "divide", - "divorce", - "dizzy", - "doctor", - "document", - "dog", - "doll", - "dolphin", - "domain", - "donate", - "donkey", - "donor", - "door", - "dose", - "double", - "dove", - "draft", - "dragon", - "drama", - "drastic", - "draw", - "dream", - "dress", - "drift", - "drill", - "drink", - "drip", - "drive", - "drop", - "drum", - "dry", - "duck", - "dumb", - "dune", - "during", - "dust", - "dutch", - "duty", - "dwarf", - "dynamic", - "eager", - "eagle", - "early", - "earn", - "earth", - "easily", - "east", - "easy", - "echo", - "ecology", - "economy", - "edge", - "edit", - "educate", - "effort", - "egg", - "eight", - "either", - "elbow", - "elder", - "electric", - "elegant", - "element", - "elephant", - "elevator", - "elite", - "else", - "embark", - "embody", - "embrace", - "emerge", - "emotion", - "employ", - "empower", - "empty", - "enable", - "enact", - "end", - "endless", - "endorse", - "enemy", - "energy", - "enforce", - "engage", - "engine", - "enhance", - "enjoy", - "enlist", - "enough", - "enrich", - "enroll", - "ensure", - "enter", - "entire", - "entry", - "envelope", - "episode", - "equal", - "equip", - "era", - "erase", - "erode", - "erosion", - "error", - "erupt", - "escape", - "essay", - "essence", - "estate", - "eternal", - "ethics", - "evidence", - "evil", - "evoke", - "evolve", - "exact", - "example", - "excess", - "exchange", - "excite", - "exclude", - "excuse", - "execute", - "exercise", - "exhaust", - "exhibit", - "exile", - "exist", - "exit", - "exotic", - "expand", - "expect", - "expire", - "explain", - "expose", - "express", - "extend", - "extra", - "eye", - "eyebrow", - "fabric", - "face", - "faculty", - "fade", - "faint", - "faith", - "fall", - "false", - "fame", - "family", - "famous", - "fan", - "fancy", - "fantasy", - "farm", - "fashion", - "fat", - "fatal", - "father", - "fatigue", - "fault", - "favorite", - "feature", - "february", - "federal", - "fee", - "feed", - "feel", - "female", - "fence", - "festival", - "fetch", - "fever", - "few", - "fiber", - "fiction", - "field", - "figure", - "file", - "film", - "filter", - "final", - "find", - "fine", - "finger", - "finish", - "fire", - "firm", - "first", - "fiscal", - "fish", - "fit", - "fitness", - "fix", - "flag", - "flame", - "flash", - "flat", - "flavor", - "flee", - "flight", - "flip", - "float", - "flock", - "floor", - "flower", - "fluid", - "flush", - "fly", - "foam", - "focus", - "fog", - "foil", - "fold", - "follow", - "food", - "foot", - "force", - "forest", - "forget", - "fork", - "fortune", - "forum", - "forward", - "fossil", - "foster", - "found", - "fox", - "fragile", - "frame", - "frequent", - "fresh", - "friend", - "fringe", - "frog", - "front", - "frost", - "frown", - "frozen", - "fruit", - "fuel", - "fun", - "funny", - "furnace", - "fury", - "future", - "gadget", - "gain", - "galaxy", - "gallery", - "game", - "gap", - "garage", - "garbage", - "garden", - "garlic", - "garment", - "gas", - "gasp", - "gate", - "gather", - "gauge", - "gaze", - "general", - "genius", - "genre", - "gentle", - "genuine", - "gesture", - "ghost", - "giant", - "gift", - "giggle", - "ginger", - "giraffe", - "girl", - "give", - "glad", - "glance", - "glare", - "glass", - "glide", - "glimpse", - "globe", - "gloom", - "glory", - "glove", - "glow", - "glue", - "goat", - "goddess", - "gold", - "good", - "goose", - "gorilla", - "gospel", - "gossip", - "govern", - "gown", - "grab", - "grace", - "grain", - "grant", - "grape", - "grass", - "gravity", - "great", - "green", - "grid", - "grief", - "grit", - "grocery", - "group", - "grow", - "grunt", - "guard", - "guess", - "guide", - "guilt", - "guitar", - "gun", - "gym", - "habit", - "hair", - "half", - "hammer", - "hamster", - "hand", - "happy", - "harbor", - "hard", - "harsh", - "harvest", - "hat", - "have", - "hawk", - "hazard", - "head", - "health", - "heart", - "heavy", - "hedgehog", - "height", - "hello", - "helmet", - "help", - "hen", - "hero", - "hidden", - "high", - "hill", - "hint", - "hip", - "hire", - "history", - "hobby", - "hockey", - "hold", - "hole", - "holiday", - "hollow", - "home", - "honey", - "hood", - "hope", - "horn", - "horror", - "horse", - "hospital", - "host", - "hotel", - "hour", - "hover", - "hub", - "huge", - "human", - "humble", - "humor", - "hundred", - "hungry", - "hunt", - "hurdle", - "hurry", - "hurt", - "husband", - "hybrid", - "ice", - "icon", - "idea", - "identify", - "idle", - "ignore", - "ill", - "illegal", - "illness", - "image", - "imitate", - "immense", - "immune", - "impact", - "impose", - "improve", - "impulse", - "inch", - "include", - "income", - "increase", - "index", - "indicate", - "indoor", - "industry", - "infant", - "inflict", - "inform", - "inhale", - "inherit", - "initial", - "inject", - "injury", - "inmate", - "inner", - "innocent", - "input", - "inquiry", - "insane", - "insect", - "inside", - "inspire", - "install", - "intact", - "interest", - "into", - "invest", - "invite", - "involve", - "iron", - "island", - "isolate", - "issue", - "item", - "ivory", - "jacket", - "jaguar", - "jar", - "jazz", - "jealous", - "jeans", - "jelly", - "jewel", - "job", - "join", - "joke", - "journey", - "joy", - "judge", - "juice", - "jump", - "jungle", - "junior", - "junk", - "just", - "kangaroo", - "keen", - "keep", - "ketchup", - "key", - "kick", - "kid", - "kidney", - "kind", - "kingdom", - "kiss", - "kit", - "kitchen", - "kite", - "kitten", - "kiwi", - "knee", - "knife", - "knock", - "know", - "lab", - "label", - "labor", - "ladder", - "lady", - "lake", - "lamp", - "language", - "laptop", - "large", - "later", - "latin", - "laugh", - "laundry", - "lava", - "law", - "lawn", - "lawsuit", - "layer", - "lazy", - "leader", - "leaf", - "learn", - "leave", - "lecture", - "left", - "leg", - "legal", - "legend", - "leisure", - "lemon", - "lend", - "length", - "lens", - "leopard", - "lesson", - "letter", - "level", - "liar", - "liberty", - "library", - "license", - "life", - "lift", - "light", - "like", - "limb", - "limit", - "link", - "lion", - "liquid", - "list", - "little", - "live", - "lizard", - "load", - "loan", - "lobster", - "local", - "lock", - "logic", - "lonely", - "long", - "loop", - "lottery", - "loud", - "lounge", - "love", - "loyal", - "lucky", - "luggage", - "lumber", - "lunar", - "lunch", - "luxury", - "lyrics", - "machine", - "mad", - "magic", - "magnet", - "maid", - "mail", - "main", - "major", - "make", - "mammal", - "man", - "manage", - "mandate", - "mango", - "mansion", - "manual", - "maple", - "marble", - "march", - "margin", - "marine", - "market", - "marriage", - "mask", - "mass", - "master", - "match", - "material", - "math", - "matrix", - "matter", - "maximum", - "maze", - "meadow", - "mean", - "measure", - "meat", - "mechanic", - "medal", - "media", - "melody", - "melt", - "member", - "memory", - "mention", - "menu", - "mercy", - "merge", - "merit", - "merry", - "mesh", - "message", - "metal", - "method", - "middle", - "midnight", - "milk", - "million", - "mimic", - "mind", - "minimum", - "minor", - "minute", - "miracle", - "mirror", - "misery", - "miss", - "mistake", - "mix", - "mixed", - "mixture", - "mobile", - "model", - "modify", - "mom", - "moment", - "monitor", - "monkey", - "monster", - "month", - "moon", - "moral", - "more", - "morning", - "mosquito", - "mother", - "motion", - "motor", - "mountain", - "mouse", - "move", - "movie", - "much", - "muffin", - "mule", - "multiply", - "muscle", - "museum", - "mushroom", - "music", - "must", - "mutual", - "myself", - "mystery", - "myth", - "naive", - "name", - "napkin", - "narrow", - "nasty", - "nation", - "nature", - "near", - "neck", - "need", - "negative", - "neglect", - "neither", - "nephew", - "nerve", - "nest", - "net", - "network", - "neutral", - "never", - "news", - "next", - "nice", - "night", - "noble", - "noise", - "nominee", - "noodle", - "normal", - "north", - "nose", - "notable", - "note", - "nothing", - "notice", - "novel", - "now", - "nuclear", - "number", - "nurse", - "nut", - "oak", - "obey", - "object", - "oblige", - "obscure", - "observe", - "obtain", - "obvious", - "occur", - "ocean", - "october", - "odor", - "off", - "offer", - "office", - "often", - "oil", - "okay", - "old", - "olive", - "olympic", - "omit", - "once", - "one", - "onion", - "online", - "only", - "open", - "opera", - "opinion", - "oppose", - "option", - "orange", - "orbit", - "orchard", - "order", - "ordinary", - "organ", - "orient", - "original", - "orphan", - "ostrich", - "other", - "outdoor", - "outer", - "output", - "outside", - "oval", - "oven", - "over", - "own", - "owner", - "oxygen", - "oyster", - "ozone", - "pact", - "paddle", - "page", - "pair", - "palace", - "palm", - "panda", - "panel", - "panic", - "panther", - "paper", - "parade", - "parent", - "park", - "parrot", - "party", - "pass", - "patch", - "path", - "patient", - "patrol", - "pattern", - "pause", - "pave", - "payment", - "peace", - "peanut", - "pear", - "peasant", - "pelican", - "pen", - "penalty", - "pencil", - "people", - "pepper", - "perfect", - "permit", - "person", - "pet", - "phone", - "photo", - "phrase", - "physical", - "piano", - "picnic", - "picture", - "piece", - "pig", - "pigeon", - "pill", - "pilot", - "pink", - "pioneer", - "pipe", - "pistol", - "pitch", - "pizza", - "place", - "planet", - "plastic", - "plate", - "play", - "please", - "pledge", - "pluck", - "plug", - "plunge", - "poem", - "poet", - "point", - "polar", - "pole", - "police", - "pond", - "pony", - "pool", - "popular", - "portion", - "position", - "possible", - "post", - "potato", - "pottery", - "poverty", - "powder", - "power", - "practice", - "praise", - "predict", - "prefer", - "prepare", - "present", - "pretty", - "prevent", - "price", - "pride", - "primary", - "print", - "priority", - "prison", - "private", - "prize", - "problem", - "process", - "produce", - "profit", - "program", - "project", - "promote", - "proof", - "property", - "prosper", - "protect", - "proud", - "provide", - "public", - "pudding", - "pull", - "pulp", - "pulse", - "pumpkin", - "punch", - "pupil", - "puppy", - "purchase", - "purity", - "purpose", - "purse", - "push", - "put", - "puzzle", - "pyramid", - "quality", - "quantum", - "quarter", - "question", - "quick", - "quit", - "quiz", - "quote", - "rabbit", - "raccoon", - "race", - "rack", - "radar", - "radio", - "rail", - "rain", - "raise", - "rally", - "ramp", - "ranch", - "random", - "range", - "rapid", - "rare", - "rate", - "rather", - "raven", - "raw", - "razor", - "ready", - "real", - "reason", - "rebel", - "rebuild", - "recall", - "receive", - "recipe", - "record", - "recycle", - "reduce", - "reflect", - "reform", - "refuse", - "region", - "regret", - "regular", - "reject", - "relax", - "release", - "relief", - "rely", - "remain", - "remember", - "remind", - "remove", - "render", - "renew", - "rent", - "reopen", - "repair", - "repeat", - "replace", - "report", - "require", - "rescue", - "resemble", - "resist", - "resource", - "response", - "result", - "retire", - "retreat", - "return", - "reunion", - "reveal", - "review", - "reward", - "rhythm", - "rib", - "ribbon", - "rice", - "rich", - "ride", - "ridge", - "rifle", - "right", - "rigid", - "ring", - "riot", - "ripple", - "risk", - "ritual", - "rival", - "river", - "road", - "roast", - "robot", - "robust", - "rocket", - "romance", - "roof", - "rookie", - "room", - "rose", - "rotate", - "rough", - "round", - "route", - "royal", - "rubber", - "rude", - "rug", - "rule", - "run", - "runway", - "rural", - "sad", - "saddle", - "sadness", - "safe", - "sail", - "salad", - "salmon", - "salon", - "salt", - "salute", - "same", - "sample", - "sand", - "satisfy", - "satoshi", - "sauce", - "sausage", - "save", - "say", - "scale", - "scan", - "scare", - "scatter", - "scene", - "scheme", - "school", - "science", - "scissors", - "scorpion", - "scout", - "scrap", - "screen", - "script", - "scrub", - "sea", - "search", - "season", - "seat", - "second", - "secret", - "section", - "security", - "seed", - "seek", - "segment", - "select", - "sell", - "seminar", - "senior", - "sense", - "sentence", - "series", - "service", - "session", - "settle", - "setup", - "seven", - "shadow", - "shaft", - "shallow", - "share", - "shed", - "shell", - "sheriff", - "shield", - "shift", - "shine", - "ship", - "shiver", - "shock", - "shoe", - "shoot", - "shop", - "short", - "shoulder", - "shove", - "shrimp", - "shrug", - "shuffle", - "shy", - "sibling", - "sick", - "side", - "siege", - "sight", - "sign", - "silent", - "silk", - "silly", - "silver", - "similar", - "simple", - "since", - "sing", - "siren", - "sister", - "situate", - "six", - "size", - "skate", - "sketch", - "ski", - "skill", - "skin", - "skirt", - "skull", - "slab", - "slam", - "sleep" - }); - word_map = new std::unordered_map; - trimmed_word_map = new std::unordered_map; - language_name = "English"; - populate_maps(); - } - }; + class English: public Base + { + public: + English() + { + word_list = new std::vector({ + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep" + }); + word_map = new std::unordered_map; + trimmed_word_map = new std::unordered_map; + language_name = "English"; + populate_maps(); + } + }; } #endif diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h index 40d99b2a4..84d7f56f5 100644 --- a/src/mnemonics/japanese.h +++ b/src/mnemonics/japanese.h @@ -1,4 +1,4 @@ -// Word list originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin +// Word list originally created by dabura667, // Copyright (c) 2014, The Monero Project // // All rights reserved. @@ -53,86 +53,132 @@ namespace Language Japanese() { word_list = new std::vector({ - "あい", "あいこくしん", - "あう", - "あお", + "あいさつ", + "あいだ", "あおぞら", - "あか", "あかちゃん", - "あき", "あきる", - "あく", - "あさ", + "あけがた", + "あける", + "あこがれる", + "あさい", "あさひ", - "あし", + "あしあと", + "あじわう", + "あずかる", "あずき", - "あせ", "あそぶ", + "あたえる", + "あたためる", + "あたりまえ", "あたる", "あつい", - "あな", - "あに", - "あね", + "あつかう", + "あっしゅく", + "あつまり", + "あつめる", + "あてな", + "あてはまる", "あひる", + "あぶら", + "あぶる", + "あふれる", "あまい", - "あみ", - "あめ", + "あまど", + "あまやかす", + "あまり", + "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま", "あらし", - "あり", - "ある", - "あれ", - "あわ", + "あらすじ", + "あらためる", + "あらゆる", + "あらわす", + "ありがとう", + "あわせる", + "あわてる", + "あんい", + "あんがい", "あんこ", - "いう", - "いえ", + "あんぜん", + "あんてい", + "あんない", + "あんまり", + "いいだす", "いおん", - "いか", "いがい", - "いかいよう", - "いけ", + "いがく", + "いきおい", + "いきなり", + "いきもの", + "いきる", + "いくじ", + "いくぶん", + "いけばな", "いけん", + "いこう", "いこく", "いこつ", + "いさましい", "いさん", - "いし", + "いしき", "いじゅう", - "いす", + "いじょう", + "いじわる", + "いずみ", + "いずれ", "いせい", "いせえび", "いせかい", "いせき", + "いぜん", "いそうろう", "いそがしい", + "いだい", + "いだく", + "いたずら", + "いたみ", "いたりあ", + "いちおう", + "いちじ", + "いちど", + "いちば", + "いちぶ", + "いちりゅう", + "いつか", + "いっしゅん", + "いっせい", + "いっそう", + "いったん", + "いっち", + "いってい", + "いっぽう", "いてざ", "いてん", - "いと", + "いどう", + "いとこ", "いない", "いなか", - "いぬ", - "いね", + "いねむり", "いのち", "いのる", "いはつ", + "いばる", "いはん", "いびき", "いひん", "いふく", "いへん", "いほう", - "いま", - "いみ", "いみん", - "いも", "いもうと", "いもたれ", "いもり", - "いや", + "いやがる", "いやす", "いよかん", "いよく", @@ -140,132 +186,248 @@ namespace Language "いらすと", "いりぐち", "いりょう", - "いりょうひ", - "いる", "いれい", "いれもの", "いれる", - "いろ", "いろえんぴつ", - "いわ", + "いわい", "いわう", "いわかん", + "いわば", + "いわゆる", "いんげんまめ", - "うえ", + "いんさつ", + "いんしょう", + "いんよう", + "うえき", + "うえる", "うおざ", + "うがい", "うかぶ", + "うかべる", "うきわ", - "うく", "うくらいな", "うくれれ", - "うけつぐ", + "うけたまわる", "うけつけ", + "うけとる", + "うけもつ", "うける", + "うごかす", "うごく", "うこん", "うさぎ", - "うし", "うしなう", - "うしろ", "うしろがみ", "うすい", "うすぎ", + "うすぐらい", + "うすめる", "うせつ", - "うそ", - "うた", "うちあわせ", "うちがわ", "うちき", - "うつ", + "うちゅう", + "うっかり", + "うつくしい", + "うったえる", + "うつる", + "うどん", "うなぎ", "うなじ", - "うに", + "うなずく", + "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", - "うま", "うまれる", - "うみ", - "うむ", - "うめ", "うめる", "うもう", "うやまう", "うよく", - "うら", + "うらがえす", + "うらぐち", "うらない", - "うる", + "うりあげ", + "うりきれ", "うるさい", "うれしい", + "うれゆき", + "うれる", "うろこ", "うわき", "うわさ", - "えい", + "うんこう", + "うんちん", + "うんてん", + "うんどう", "えいえん", "えいが", - "えいぎょう", + "えいきょう", "えいご", + "えいせい", + "えいぶん", + "えいよう", + "えいわ", "えおり", - "えき", + "えがお", + "えがく", "えきたい", "えくせる", - "えさ", "えしゃく", "えすて", "えつらん", - "えと", "えのぐ", - "えび", "えほうまき", "えほん", - "えま", "えまき", "えもじ", "えもの", "えらい", "えらぶ", - "えり", "えりあ", - "える", - "えん", "えんえん", + "えんかい", + "えんぎ", + "えんげき", + "えんしゅう", + "えんぜつ", + "えんそく", + "えんちょう", + "えんとつ", + "おいかける", + "おいこす", + "おいしい", + "おいつく", + "おうえん", + "おうさま", + "おうじ", + "おうせつ", + "おうたい", + "おうふく", + "おうべい", + "おうよう", + "おえる", + "おおい", + "おおう", + "おおどおり", + "おおや", + "おおよそ", + "おかえり", + "おかず", + "おがむ", + "おかわり", + "おぎなう", "おきる", - "おく", - "おけ", + "おくさま", + "おくじょう", + "おくりがな", + "おくる", + "おくれる", + "おこす", + "おこなう", "おこる", + "おさえる", + "おさない", + "おさめる", + "おしいれ", "おしえる", + "おじぎ", + "おじさん", + "おしゃれ", + "おそらく", + "おそわる", + "おたがい", + "おたく", + "おだやか", + "おちつく", + "おっと", + "おつり", + "おでかけ", + "おとしもの", + "おとなしい", + "おどり", + "おどろかす", + "おばさん", + "おまいり", + "おめでとう", + "おもいで", + "おもう", + "おもたい", + "おもちゃ", + "おやつ", "おやゆび", + "およぼす", "おらんだ", + "おろす", + "おんがく", + "おんけい", + "おんしゃ", + "おんせん", + "おんだん", + "おんちゅう", + "おんどけい", "かあつ", - "かい", - "かう", - "かお", + "かいが", + "がいき", + "がいけん", + "がいこう", + "かいさつ", + "かいしゃ", + "かいすいよく", + "かいぜん", + "かいぞうど", + "かいつう", + "かいてん", + "かいとう", + "かいふく", + "がいへき", + "かいほう", + "かいよう", + "がいらい", + "かいわ", + "かえる", + "かおり", + "かかえる", + "かがく", "かがし", - "かき", - "かく", - "かこ", - "かさ", - "かす", - "かち", - "かつ", + "かがみ", + "かくご", + "かくとく", + "かざる", + "がぞう", + "かたい", + "かたち", + "がちょう", + "がっきゅう", + "がっこう", + "がっさん", + "がっしょう", "かなざわし", - "かに", - "かね", "かのう", + "がはく", + "かぶか", "かほう", "かほご", + "かまう", "かまぼこ", - "かみ", - "かむ", "かめれおん", - "かも", "かゆい", + "かようび", "からい", "かるい", "かろう", - "かわ", + "かわく", "かわら", + "がんか", + "かんけい", + "かんこう", + "かんしゃ", + "かんそう", + "かんたん", + "かんち", + "がんばる", "きあい", "きあつ", "きいろ", @@ -277,17 +439,12 @@ namespace Language "きおく", "きおち", "きおん", - "きか", "きかい", "きかく", - "きかん", "きかんしゃ", - "きぎ", "ききて", - "きく", "きくばり", "きくらげ", - "きけん", "きけんせい", "きこう", "きこえる", @@ -296,24 +453,22 @@ namespace Language "きさく", "きさま", "きさらぎ", - "きし", - "きしゅ", - "きす", + "ぎじかがく", + "ぎしき", + "ぎじたいけん", + "ぎじにってい", + "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", - "きそ", "きそう", - "きそく", "きぞく", - "ぎそく", "きぞん", - "きた", "きたえる", - "きち", "きちょう", "きつえん", + "ぎっちり", "きつつき", "きつね", "きてい", @@ -321,140 +476,132 @@ namespace Language "きどく", "きない", "きなが", - "きぬ", + "きなこ", "きぬごし", "きねん", "きのう", + "きのした", "きはく", "きびしい", "きひん", - "きふ", - "ぎふ", "きふく", - "ぎぼ", - "きほう", + "きぶん", "きぼう", "きほん", "きまる", - "きみ", "きみつ", - "ぎむ", "きむずかしい", - "きめ", "きめる", "きもだめし", "きもち", + "きもの", + "きゃく", "きやく", + "ぎゅうにく", "きよう", + "きょうりゅう", "きらい", "きらく", - "きり", - "きる", + "きりん", "きれい", "きれつ", "きろく", "ぎろん", "きわめる", + "ぎんいろ", + "きんかくじ", + "きんじょ", + "きんようび", "ぐあい", - "くい", "くいず", "くうかん", "くうき", "くうぐん", "くうこう", + "ぐうせい", "くうそう", + "ぐうたら", "くうふく", "くうぼ", "くかん", - "くき", "くきょう", "くげん", "ぐこう", - "くさ", "くさい", "くさき", "くさばな", "くさる", - "くし", "くしゃみ", "くしょう", "くすのき", - "くすり", "くすりゆび", - "くせ", "くせげ", "くせん", + "ぐたいてき", + "くださる", "くたびれる", - "くち", "くちこみ", "くちさき", - "くつ", "くつした", + "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", - "くに", "くねくね", "くのう", "くふう", - "くま", "くみあわせ", "くみたてる", - "くむ", "くめる", "くやくしょ", "くらす", - "くり", + "くらべる", + "くるま", "くれる", - "くろ", "くろう", "くわしい", - "ぐんじょ", + "ぐんかん", + "ぐんしょく", + "ぐんたい", + "ぐんて", "けあな", + "けいかく", "けいけん", "けいこ", - "けいさい", "けいさつ", + "げいじゅつ", + "けいたい", "げいのうじん", "けいれき", - "けいれつ", - "けいれん", "けいろ", "けおとす", "けおりもの", - "けが", - "げき", "げきか", "げきげん", "げきだん", "げきちん", - "げきど", + "げきとつ", "げきは", "げきやく", "げこう", "げこくじょう", - "けさ", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", - "けす", "げすと", - "けた", - "げた", "けたば", - "けち", "けちゃっぷ", "けちらす", - "けつ", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", + "けっせき", "けってい", "けつまつ", "げつようび", @@ -479,8 +626,6 @@ namespace Language "けむり", "けもの", "けらい", - "ける", - "げろ", "けろけろ", "けわしい", "けんい", @@ -488,25 +633,14 @@ namespace Language "けんお", "けんか", "げんき", - "けんきゅう", - "けんきょ", - "けんけい", - "けんけつ", "けんげん", "けんこう", - "けんさ", "けんさく", "けんしゅう", - "けんしゅつ", - "けんしん", "けんすう", - "けんそう", "げんそう", - "けんそん", - "げんち", "けんちく", "けんてい", - "げんてい", "けんとう", "けんない", "けんにん", @@ -516,51 +650,49 @@ namespace Language "けんめい", "けんらん", "けんり", - "けんりつ", "こあくま", - "こい", - "ごい", + "こいぬ", "こいびと", - "こうい", + "ごうい", "こうえん", - "こうか", - "こうかい", + "こうおん", "こうかん", + "ごうきゅう", + "ごうけい", + "こうこう", "こうさい", - "こうさん", - "こうしん", - "こうず", + "こうじ", "こうすい", - "こうせん", - "こうそう", + "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", - "こうとうぶ", + "こうどう", "こうない", "こうはい", - "こうはん", + "ごうほう", + "ごうまん", "こうもく", - "こえ", + "こうりつ", "こえる", "こおり", + "ごかい", "ごがつ", - "こかん", - "こく", + "ごかん", "こくご", + "こくさい", + "こくとう", "こくない", "こくはく", + "こぐま", "こけい", "こける", - "ここ", + "ここのか", "こころ", - "ごさ", "こさめ", - "こし", "こしつ", - "こす", "こすう", "こせい", "こせき", @@ -576,34 +708,30 @@ namespace Language "こつぶ", "こてい", "こてん", - "こと", "ことがら", "ことし", + "ことば", + "ことり", "こなごな", "こねこね", "このまま", "このみ", "このよ", - "こはん", "ごはん", - "ごび", "こひつじ", "こふう", "こふん", "こぼれる", - "ごま", + "ごまあぶら", "こまかい", - "こまつし", + "ごますり", "こまつな", "こまる", - "こむ", "こむぎこ", - "こめ", "こもじ", "こもち", "こもの", "こもん", - "こや", "こやく", "こやま", "こゆう", @@ -611,65 +739,69 @@ namespace Language "こよい", "こよう", "こりる", - "こる", "これくしょん", "ころっけ", "こわもて", "こわれる", - "こん", "こんいん", "こんかい", "こんき", "こんしゅう", - "こんしゅん", "こんすい", "こんだて", - "こんだん", "こんとん", "こんなん", "こんびに", - "こんぽう", "こんぽん", "こんまけ", "こんや", - "こんやく", "こんれい", "こんわく", + "ざいえき", "さいかい", - "さいがい", "さいきん", - "さいご", - "さいこん", + "ざいげん", + "ざいこ", "さいしょ", + "さいせい", + "ざいたく", + "ざいちゅう", + "さいてき", + "ざいりょう", "さうな", - "さお", "さかいし", + "さがす", "さかな", "さかみち", - "さき", - "さく", + "さがる", + "さぎょう", "さくし", - "さくじょ", "さくひん", "さくら", - "さけ", "さこく", "さこつ", + "さずかる", + "ざせき", "さたん", "さつえい", - "さっか", + "ざつおん", + "ざっか", + "ざつがく", "さっきょく", + "ざっし", "さつじん", + "ざっそう", "さつたば", "さつまいも", "さてい", "さといも", "さとう", "さとおや", + "さとし", "さとる", "さのう", - "さば", "さばく", + "さびしい", "さべつ", "さほう", "さほど", @@ -677,15 +809,13 @@ namespace Language "さみしい", "さみだれ", "さむけ", - "さめ", "さめる", "さやえんどう", "さゆう", "さよう", "さよく", - "さら", "さらだ", - "さる", + "ざるそば", "さわやか", "さわる", "さんいん", @@ -693,13 +823,11 @@ namespace Language "さんきゃく", "さんこう", "さんさい", - "さんざん", + "ざんしょ", "さんすう", "さんせい", "さんそ", - "さんそん", "さんち", - "さんちょう", "さんま", "さんみ", "さんらん", @@ -711,25 +839,26 @@ namespace Language "しいん", "しうち", "しえい", - "しお", "しおけ", - "しか", "しかい", "しかく", "じかん", - "した", + "しごと", + "しすう", + "じだい", + "したうけ", "したぎ", "したて", "したみ", "しちょう", - "しちょうそん", "しちりん", - "じつじ", + "しっかり", + "しつじ", + "しつもん", "してい", "してき", "してつ", - "してん", - "しとう", + "じてん", "じどう", "しなぎれ", "しなもの", @@ -741,68 +870,58 @@ namespace Language "しはい", "しばかり", "しはつ", - "じはつ", "しはらい", "しはん", "しひょう", - "じふ", "しふく", "じぶん", "しへい", "しほう", "しほん", - "しま", "しまう", "しまる", - "しみ", - "じみ", "しみん", - "じむ", "しむける", + "じむしょ", "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", - "しゃかい", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん", "しゃこ", - "しゃこう", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", - "しゃたく", "しゃちょう", "しゃっきん", "じゃま", - "じゃり", - "しゃりょう", "しゃりん", "しゃれい", - "しゅうえん", - "しゅうかい", - "しゅうきん", - "しゅうけい", - "しゅうりょう", + "じゆう", + "じゅうしょ", + "しゅくはく", + "じゅしん", + "しゅっせき", + "しゅみ", "しゅらば", - "しょうか", + "じゅんばん", "しょうかい", - "しょうきん", - "しょうじき", - "しょくざい", "しょくたく", "しょっけん", "しょどう", "しょもつ", - "しん", + "しらせる", + "しらべる", "しんか", "しんこう", + "じんじゃ", "しんせいじ", "しんちく", "しんりん", @@ -810,34 +929,30 @@ namespace Language "すあし", "すあな", "ずあん", + "すいえい", "すいか", "すいとう", - "すう", + "ずいぶん", + "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", - "すき", "すきま", - "すく", "すくう", "すくない", "すける", + "すごい", "すこし", "ずさん", - "すし", "すずしい", + "すすむ", "すすめる", - "すそ", + "すっかり", "ずっしり", "ずっと", - "すで", "すてき", "すてる", - "すな", - "すなっく", - "すなっぷ", - "すね", "すねる", "すのこ", "すはだ", @@ -851,16 +966,10 @@ namespace Language "ずほう", "すぼん", "すまい", - "すみ", - "すむ", "すめし", "すもう", "すやき", - "すらいす", - "すらいど", "すらすら", - "すり", - "する", "するめ", "すれちがう", "すろっと", @@ -868,15 +977,12 @@ namespace Language "すんぜん", "すんぽう", "せあぶら", - "せいか", - "せいかい", "せいかつ", + "せいげん", + "せいじ", + "せいよう", "せおう", - "せかい", "せかいかん", - "せかいし", - "せかいじゅう", - "せき", "せきにん", "せきむ", "せきゆ", @@ -886,12 +992,8 @@ namespace Language "せすじ", "せたい", "せたけ", - "せっかい", "せっかく", - "せっき", "せっきゃく", - "せっきょく", - "せっきん", "ぜっく", "せっけん", "せっこつ", @@ -904,51 +1006,39 @@ namespace Language "せつぶん", "せつめい", "せつりつ", - "せと", "せなか", "せのび", "せはば", + "せびろ", "せぼね", "せまい", "せまる", - "せみ", "せめる", "せもたれ", "せりふ", - "せわ", - "せん", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", - "せんけつ", "せんげん", "ぜんご", "せんさい", - "せんし", "せんしゅ", - "せんす", "せんすい", "せんせい", "せんぞ", - "せんそう", "せんたく", - "せんち", - "せんちゃ", - "せんちゃく", "せんちょう", "せんてい", "せんとう", "せんぬき", "せんねん", + "せんぱい", "ぜんぶ", - "せんぷうき", - "せんぷく", "ぜんぽう", "せんむ", - "せんめい", "せんめんじょ", "せんもん", "せんやく", @@ -956,33 +1046,27 @@ namespace Language "せんよう", "ぜんら", "ぜんりゃく", - "せんりょく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", - "そう", - "ぞう", "そうがんきょう", "そうき", "そうご", + "そうしん", + "そうだん", "そうなん", "そうび", - "そうひょう", "そうめん", "そうり", - "そうりょ", "そえもの", "そえん", - "そかい", "そがい", - "そぐ", "そげき", "そこう", "そこそこ", "そざい", - "そし", "そしな", "そせい", "そせん", @@ -996,16 +1080,11 @@ namespace Language "そっこう", "そっせん", "そっと", - "そで", - "そと", "そとがわ", "そとづら", "そなえる", "そなた", - "そば", - "そふ", "そふぼ", - "そぼ", "そぼく", "そぼろ", "そまつ", @@ -1015,16 +1094,12 @@ namespace Language "そめる", "そもそも", "そよかぜ", - "そら", "そらまめ", - "そり", - "そる", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", - "そんしょう", "そんぞく", "そんちょう", "ぞんび", @@ -1035,100 +1110,75 @@ namespace Language "たいうん", "たいえき", "たいおう", - "だいおう", - "たいか", - "たいかい", + "だいがく", "たいき", - "たいきけん", "たいぐう", - "たいくつ", - "たいけい", - "たいけつ", "たいけん", "たいこ", - "たいこう", - "たいさ", - "たいさん", - "たいしゅつ", + "たいざい", "だいじょうぶ", - "たいしょく", - "だいず", "だいすき", - "たいせい", "たいせつ", - "たいせん", "たいそう", + "だいたい", "たいちょう", - "だいちょう", - "たいとう", + "たいてい", + "だいどころ", "たいない", "たいねつ", "たいのう", - "たいは", "たいはん", - "たいひ", + "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな", - "たいまん", "たいみんぐ", "たいむ", "たいめん", "たいやき", - "たいやく", "たいよう", "たいら", - "たいりょう", "たいりょく", "たいる", - "たいわ", "たいわん", "たうえ", "たえる", "たおす", "たおる", + "たおれる", "たかい", "たかね", - "たき", "たきび", "たくさん", - "たけ", - "たこ", "たこく", "たこやき", "たさい", - "ださい", "たしざん", - "たす", + "だじゃれ", "たすける", + "たずさわる", "たそがれ", "たたかう", "たたく", - "たちば", + "ただしい", + "たたみ", "たちばな", - "たつ", "だっかい", "だっきゃく", "だっこ", - "だっしめん", "だっしゅつ", "だったい", - "たて", "たてる", "たとえる", - "たな", + "たなばた", "たにん", "たぬき", - "たね", "たのしみ", "たはつ", - "たび", "たぶん", "たべる", "たぼう", - "たほうめん", - "たま", "たまご", "たまる", "だむる", @@ -1138,18 +1188,15 @@ namespace Language "たもつ", "たやすい", "たよる", - "たら", "たらす", "たりきほんがん", "たりょう", "たりる", - "たる", "たると", "たれる", "たれんと", "たろっと", "たわむれる", - "たん", "だんあつ", "たんい", "たんおん", @@ -1157,25 +1204,20 @@ namespace Language "たんき", "たんけん", "たんご", - "たんさく", "たんさん", - "たんし", - "たんしゅく", "たんじょうび", "だんせい", "たんそく", "たんたい", - "たんち", "だんち", - "たんちょう", "たんてい", - "たんてき", "たんとう", "だんな", "たんにん", "だんねつ", "たんのう", "たんぴん", + "だんぼう", "たんまつ", "たんめい", "だんれつ", @@ -1183,23 +1225,19 @@ namespace Language "だんわ", "ちあい", "ちあん", - "ちい", "ちいき", "ちいさい", - "ちえ", "ちえん", - "ちか", "ちかい", + "ちから", "ちきゅう", "ちきん", - "ちけい", "ちけいず", "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", - "ちず", "ちせい", "ちそう", "ちたい", @@ -1218,65 +1256,49 @@ namespace Language "ちみつ", "ちみどろ", "ちめいど", + "ちゃんこなべ", "ちゅうい", - "ちゅうおう", - "ちゅうおうく", - "ちゅうがっこう", - "ちゅうごく", "ちゆりょく", - "ちょうさ", "ちょうし", + "ちょさくけん", "ちらし", "ちらみ", - "ちり", "ちりがみ", - "ちる", + "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", + "ついたち", "つうか", "つうじょう", - "つうじる", "つうはん", "つうわ", - "つえ", "つかう", "つかれる", - "つき", - "つく", "つくね", "つくる", "つけね", "つける", "つごう", - "つた", "つたえる", - "つち", + "つづく", "つつじ", + "つつむ", "つとめる", - "つな", "つながる", "つなみ", "つねづね", - "つの", "つのる", - "つば", - "つぶ", "つぶす", - "つぼ", - "つま", "つまらない", "つまる", - "つみ", "つみき", - "つむ", "つめたい", + "つもり", "つもる", - "つや", "つよい", - "つり", "つるぼ", "つるみく", "つわもの", @@ -1284,15 +1306,13 @@ namespace Language "てあし", "てあて", "てあみ", + "ていおん", "ていか", "ていき", "ていけい", - "ていけつ", - "ていけつあつ", "ていこく", "ていさつ", "ていし", - "ていしゃ", "ていせい", "ていたい", "ていど", @@ -1302,144 +1322,139 @@ namespace Language "ていぼう", "てうち", "ておくれ", - "てき", + "てきとう", "てくび", - "てこ", + "でこぼこ", "てさぎょう", "てさげ", - "でし", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき", + "でっぱ", + "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", + "てぶくろ", "てふだ", "てほどき", "てほん", - "てま", "てまえ", "てまきずし", "てみじか", "てみやげ", - "てら", "てらす", - "でる", "てれび", - "てろ", "てわけ", "てわたし", "でんあつ", - "てんい", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", - "でんげん", "てんごく", "てんさい", + "てんし", "てんすう", "でんち", "てんてき", "てんとう", "てんない", - "てんぷ", "てんぷら", "てんぼうだい", "てんめつ", - "てんらく", "てんらんかい", - "でんりゅう", "でんりょく", "でんわ", - "どあ", "どあい", "といれ", + "どうかん", + "とうきゅう", + "どうぐ", + "とうし", "とうむぎ", "とおい", + "とおか", + "とおく", "とおす", + "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", - "とくてい", + "とくしゅう", "とくてん", + "とくに", "とくべつ", "とけい", "とける", + "とこや", "とさか", - "とし", "としょかん", "とそう", "とたん", - "とち", "とちゅう", + "とっきゅう", + "とっくん", "とつぜん", "とつにゅう", + "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす", - "とぶ", - "とほ", + "どぶがわ", "とほう", - "どま", "とまる", - "とら", - "とり", - "とる", + "とめる", + "ともだち", + "ともる", + "どようび", + "とらえる", "とんかつ", - "ない", - "ないか", + "どんぶり", "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", - "ないぞう", "なおす", - "なく", + "ながい", + "なくす", + "なげる", "なこうど", "なさけ", - "なし", - "なす", - "なぜ", - "なぞ", "なたでここ", - "なつ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", - "なは", - "なび", + "なのか", "なふだ", - "なべ", "なまいき", "なまえ", "なまみ", - "なみ", "なみだ", "なめらか", "なめる", "なやむ", + "ならう", + "ならび", "ならぶ", - "なる", "なれる", - "なわ", "なわとび", "なわばり", "にあう", @@ -1449,16 +1464,12 @@ namespace Language "にかい", "にがて", "にきび", - "にく", "にくしみ", "にくまん", "にげる", "にさんかたんそ", - "にし", "にしき", - "にす", "にせもの", - "にちじ", "にちじょう", "にちようび", "にっか", @@ -1476,23 +1487,13 @@ namespace Language "にもつ", "にやり", "にゅういん", - "にゅうか", - "にゅうし", - "にゅうしゃ", - "にゅうだん", - "にゅうぶ", - "にら", "にりんしゃ", - "にる", - "にわ", "にわとり", "にんい", "にんか", "にんき", "にんげん", "にんしき", - "にんしょう", - "にんしん", "にんずう", "にんそう", "にんたい", @@ -1504,34 +1505,32 @@ namespace Language "にんむ", "にんめい", "にんよう", - "ぬう", - "ぬか", - "ぬく", + "ぬいくぎ", + "ぬかす", + "ぬぐいとる", + "ぬぐう", "ぬくもり", - "ぬし", - "ぬの", - "ぬま", + "ぬすむ", + "ぬまえび", "ぬめり", "ぬらす", - "ぬる", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", - "ねぎ", "ねぐせ", "ねくたい", "ねくら", - "ねこ", "ねこぜ", "ねこむ", "ねさげ", "ねすごす", "ねそべる", + "ねだん", "ねつい", + "ねっしん", "ねつぞう", - "ねったい", "ねったいぎょ", "ねぶそく", "ねふだ", @@ -1541,35 +1540,31 @@ namespace Language "ねまわし", "ねみみ", "ねむい", + "ねむたい", "ねもと", "ねらう", - "ねる", "ねわざ", "ねんいり", "ねんおし", "ねんかん", - "ねんき", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", - "ねんちょう", "ねんど", "ねんぴ", "ねんぶつ", - "ねんまく", "ねんまつ", - "ねんりき", "ねんりょう", "ねんれい", "のいず", - "のう", "のおづま", "のがす", "のきなみ", "のこぎり", "のこす", + "のこる", "のせる", "のぞく", "のぞむ", @@ -1580,105 +1575,110 @@ namespace Language "のはら", "のべる", "のぼる", - "のむ", + "のみもの", "のやま", "のらいぬ", "のらねこ", - "のり", - "のる", + "のりもの", + "のりゆき", "のれん", "のんき", "ばあい", "はあく", "ばあさん", - "はい", "ばいか", "ばいく", "はいけん", "はいご", - "はいこう", - "はいし", - "はいしゅつ", "はいしん", "はいすい", - "はいせつ", "はいせん", "はいそう", "はいち", "ばいばい", - "はう", - "はえ", + "はいれつ", "はえる", "はおる", - "はか", - "ばか", "はかい", + "ばかり", "はかる", - "はき", - "はく", "はくしゅ", "はけん", - "はこ", "はこぶ", "はさみ", "はさん", - "はし", "はしご", + "ばしょ", "はしる", - "ばす", "はせる", "ぱそこん", "はそん", "はたん", - "はち", "はちみつ", - "はっか", + "はつおん", "はっかく", - "はっき", + "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん", - "はっしゃ", "はっしん", "はったつ", - "はっちゃく", "はっちゅう", "はってん", "はっぴょう", "はっぽう", - "はて", - "はな", "はなす", "はなび", "はにかむ", - "はね", - "はは", "はぶらし", - "はま", "はみがき", - "はむ", "はむかう", "はめつ", "はやい", - "はら", + "はやし", "はらう", - "はり", - "はる", - "はれ", "はろうぃん", "はわい", "はんい", "はんえい", - "はんえん", "はんおん", "はんかく", - "はんかち", "はんきょう", + "ばんぐみ", "はんこ", - "はんこう", - "はんしゃ" + "はんしゃ", + "はんすう", + "はんだん", + "ぱんち", + "ぱんつ", + "はんてい", + "はんとし", + "はんのう", + "はんぱ", + "はんぶん", + "はんぺん", + "はんぼうき", + "はんめい", + "はんらん", + "はんろん", + "ひいき", + "ひうん", + "ひえる", + "ひかく", + "ひかり", + "ひかる", + "ひかん", + "ひくい", + "ひけつ", + "ひこうき", + "ひこく", + "ひさい", + "ひさしぶり", + "ひさん", + "びじゅつかん", + "ひしょ" }); word_map = new std::unordered_map; trimmed_word_map = new std::unordered_map;