github.com/bytom/bytom@v1.1.2-0.20221014091027-bbcba3df6075/wallet/mnemonic/mnemonic_test.go (about)

     1  package mnemonic
     2  
     3  import (
     4  	"crypto/rand"
     5  	"encoding/hex"
     6  	"testing"
     7  )
     8  
     9  type vector struct {
    10  	entropy                string
    11  	mnemChineseSimplified  string
    12  	mnemChineseTraditional string
    13  	mnemEnglish            string
    14  	mnemItalian            string
    15  	mnemJapanese           string
    16  	mnemKorean             string
    17  	mnemSpanish            string
    18  	seedChineseSimplified  string
    19  	seedChineseTraditional string
    20  	seedEnglish            string
    21  	seedItalian            string
    22  	seedJapanese           string
    23  	seedKorean             string
    24  	seedSpanish            string
    25  }
    26  
    27  func TestNewMnemonic(t *testing.T) {
    28  	for _, vector := range testVectors() {
    29  		testMnem := map[string]string{
    30  			"zh_CN": vector.mnemChineseSimplified,
    31  			"zh_TW": vector.mnemChineseTraditional,
    32  			"en":    vector.mnemEnglish,
    33  			"it":    vector.mnemItalian,
    34  			"ja":    vector.mnemJapanese,
    35  			"ko":    vector.mnemKorean,
    36  			"es":    vector.mnemSpanish,
    37  		}
    38  		testSeed := map[string]string{
    39  			"zh_CN": vector.seedChineseSimplified,
    40  			"zh_TW": vector.seedChineseTraditional,
    41  			"en":    vector.seedEnglish,
    42  			"it":    vector.seedItalian,
    43  			"ja":    vector.seedJapanese,
    44  			"ko":    vector.seedKorean,
    45  			"es":    vector.seedSpanish,
    46  		}
    47  		for key, _ := range wordList {
    48  			entropy, err := hex.DecodeString(vector.entropy)
    49  			assertNil(t, err)
    50  
    51  			mnemonic, err := NewMnemonic(entropy, key)
    52  			assertNil(t, err)
    53  			assertEqualString(t, testMnem[key], mnemonic)
    54  
    55  			_, err = NewSeedWithErrorChecking(mnemonic, "TREZOR", key)
    56  			assertNil(t, err)
    57  
    58  			seed := NewSeed(mnemonic, "TREZOR")
    59  			assertEqualString(t, testSeed[key], hex.EncodeToString(seed))
    60  		}
    61  	}
    62  }
    63  
    64  func TestNewMnemonicInvalidEntropy(t *testing.T) {
    65  	_, err := NewMnemonic([]byte{}, "en")
    66  	assertNotNil(t, err)
    67  }
    68  
    69  func TestNewSeedWithErrorCheckingInvalidMnemonics(t *testing.T) {
    70  	for _, vector := range badMnemonicSentences() {
    71  		_, err := NewSeedWithErrorChecking(vector.mnemEnglish, "TREZOR", "en")
    72  		assertNotNil(t, err)
    73  	}
    74  }
    75  
    76  func TestIsMnemonicValid(t *testing.T) {
    77  	for _, vector := range badMnemonicSentences() {
    78  		assertFalse(t, IsMnemonicValid(vector.mnemEnglish, "en"))
    79  	}
    80  
    81  	for _, vector := range testVectors() {
    82  		assertTrue(t, IsMnemonicValid(vector.mnemEnglish, "en"))
    83  	}
    84  }
    85  
    86  func TestInvalidMnemonicFails(t *testing.T) {
    87  	for _, vector := range badMnemonicSentences() {
    88  		_, err := MnemonicToByteArray(vector.mnemEnglish, "en")
    89  		assertNotNil(t, err)
    90  	}
    91  
    92  	_, err := MnemonicToByteArray("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon yellow", "en")
    93  	assertNotNil(t, err)
    94  	assertEqual(t, err, ErrChecksumIncorrect)
    95  }
    96  
    97  func TestNewEntropy(t *testing.T) {
    98  	// Good tests.
    99  	for i := 128; i <= 256; i += 32 {
   100  		_, err := NewEntropy(i)
   101  		assertNil(t, err)
   102  	}
   103  	// Bad Values
   104  	for i := 0; i <= 256; i++ {
   105  		if i%8 != 0 {
   106  			_, err := NewEntropy(i)
   107  			assertNotNil(t, err)
   108  		}
   109  	}
   110  }
   111  
   112  func TestMnemonicToByteArrayForDifferentArrayLangths(t *testing.T) {
   113  	max := 1000
   114  	for i := 0; i < max; i++ {
   115  		//16, 20, 24, 28, 32
   116  		length := 16 + (i%5)*4
   117  		seed := make([]byte, length)
   118  		if n, err := rand.Read(seed); err != nil {
   119  			t.Errorf("%v", err)
   120  		} else if n != length {
   121  			t.Errorf("Wrong number of bytes read: %d", n)
   122  		}
   123  
   124  		mnemonic, err := NewMnemonic(seed, "en")
   125  		if err != nil {
   126  			t.Errorf("%v", err)
   127  		}
   128  
   129  		_, err = MnemonicToByteArray(mnemonic, "en")
   130  		if err != nil {
   131  			t.Errorf("Failed for %x - %v", seed, mnemonic)
   132  		}
   133  	}
   134  }
   135  func TestPadByteSlice(t *testing.T) {
   136  	assertEqualByteSlices(t, []byte{0}, padByteSlice([]byte{}, 1))
   137  	assertEqualByteSlices(t, []byte{0, 1}, padByteSlice([]byte{1}, 2))
   138  	assertEqualByteSlices(t, []byte{1, 1}, padByteSlice([]byte{1, 1}, 2))
   139  	assertEqualByteSlices(t, []byte{1, 1, 1}, padByteSlice([]byte{1, 1, 1}, 2))
   140  }
   141  
   142  func TestCompareByteSlices(t *testing.T) {
   143  	assertTrue(t, compareByteSlices([]byte{}, []byte{}))
   144  	assertTrue(t, compareByteSlices([]byte{1}, []byte{1}))
   145  	assertFalse(t, compareByteSlices([]byte{1}, []byte{0}))
   146  	assertFalse(t, compareByteSlices([]byte{1}, []byte{}))
   147  	assertFalse(t, compareByteSlices([]byte{1}, nil))
   148  }
   149  
   150  func assertNil(t *testing.T, object interface{}) {
   151  	if object != nil {
   152  		t.Errorf("Expected nil, got %v", object)
   153  	}
   154  }
   155  
   156  func assertNotNil(t *testing.T, object interface{}) {
   157  	if object == nil {
   158  		t.Error("Expected not nil")
   159  	}
   160  }
   161  
   162  func assertTrue(t *testing.T, a bool) {
   163  	if !a {
   164  		t.Error("Expected true, got false")
   165  	}
   166  }
   167  
   168  func assertFalse(t *testing.T, a bool) {
   169  	if a {
   170  		t.Error("Expected false, got true")
   171  	}
   172  }
   173  
   174  func assertEqual(t *testing.T, a, b interface{}) {
   175  	if a != b {
   176  		t.Errorf("Objects not equal, expected `%s` and got `%s`", a, b)
   177  	}
   178  }
   179  
   180  func assertEqualString(t *testing.T, a, b string) {
   181  	if a != b {
   182  		t.Errorf("Strings not equal, expected `%s` and got `%s`", a, b)
   183  	}
   184  }
   185  
   186  func assertEqualByteSlices(t *testing.T, a, b []byte) {
   187  	if len(a) != len(b) {
   188  		t.Errorf("Byte slices not equal, expected %v and got %v", a, b)
   189  		return
   190  	}
   191  	for i := range a {
   192  		if a[i] != b[i] {
   193  			t.Errorf("Byte slices not equal, expected %v and got %v", a, b)
   194  			return
   195  		}
   196  	}
   197  }
   198  
   199  func TestMnemonicToByteArrayForZeroLeadingSeeds(t *testing.T) {
   200  	ms := []string{
   201  		"00000000000000000000000000000000",
   202  		"00a84c51041d49acca66e6160c1fa999",
   203  		"00ca45df1673c76537a2020bfed1dafd",
   204  		"0019d5871c7b81fd83d474ef1c1e1dae",
   205  		"00dcb021afb35ffcdd1d032d2056fc86",
   206  		"0062be7bd09a27288b6cf0eb565ec739",
   207  		"00dc705b5efa0adf25b9734226ba60d4",
   208  		"0017747418d54c6003fa64fade83374b",
   209  		"000d44d3ee7c3dfa45e608c65384431b",
   210  		"008241c1ef976b0323061affe5bf24b9",
   211  		"00a6aec77e4d16bea80b50a34991aaba",
   212  		"0011527b8c6ddecb9d0c20beccdeb58d",
   213  		"001c938c503c8f5a2bba2248ff621546",
   214  		"0002f90aaf7a8327698f0031b6317c36",
   215  		"00bff43071ed7e07f77b14f615993bac",
   216  		"00da143e00ef17fc63b6fb22dcc2c326",
   217  		"00ffc6764fb32a354cab1a3ddefb015d",
   218  		"0062ef47e0985e8953f24760b7598cdd",
   219  		"003bf9765064f71d304908d906c065f5",
   220  		"00993851503471439d154b3613947474",
   221  		"007ad0ffe9eae753a483a76af06dfa67",
   222  		"00091824db9ec19e663bee51d64c83cc",
   223  		"00f48ac621f7e3cb39b2012ac3121543",
   224  		"0072917415cdca24dfa66c4a92c885b4",
   225  		"0027ced2b279ea8a91d29364487cdbf4",
   226  		"00b9c0d37fb10ba272e55842ad812583",
   227  		"004b3d0d2b9285946c687a5350479c8c",
   228  		"00c7c12a37d3a7f8c1532b17c89b724c",
   229  		"00f400c5545f06ae17ad00f3041e4e26",
   230  		"001e290be10df4d209f247ac5878662b",
   231  		"00bf0f74568e582a7dd1ee64f792ec8b",
   232  		"00d2e43ecde6b72b847db1539ed89e23",
   233  		"00cecba6678505bb7bfec8ed307251f6",
   234  		"000aeed1a9edcbb4bc88f610d3ce84eb",
   235  		"00d06206aadfc25c2b21805d283f15ae",
   236  		"00a31789a2ab2d54f8fadd5331010287",
   237  		"003493c5f520e8d5c0483e895a121dc9",
   238  		"004706112800b76001ece2e268bc830e",
   239  		"00ab31e28bb5305be56e38337dbfa486",
   240  		"006872fe85df6b0fa945248e6f9379d1",
   241  		"00717e5e375da6934e3cfdf57edaf3bd",
   242  		"007f1b46e7b9c4c76e77c434b9bccd6b",
   243  		"00dc93735aa35def3b9a2ff676560205",
   244  		"002cd5dcd881a49c7b87714c6a570a76",
   245  		"0013b5af9e13fac87e0c505686cfb6bf",
   246  		"007ab1ec9526b0bc04b64ae65fd42631",
   247  		"00abb4e11d8385c1cca905a6a65e9144",
   248  		"00574fc62a0501ad8afada2e246708c3",
   249  		"005207e0a815bb2da6b4c35ec1f2bf52",
   250  		"00f3460f136fb9700080099cbd62bc18",
   251  		"007a591f204c03ca7b93981237112526",
   252  		"00cfe0befd428f8e5f83a5bfc801472e",
   253  		"00987551ac7a879bf0c09b8bc474d9af",
   254  		"00cadd3ce3d78e49fbc933a85682df3f",
   255  		"00bfbf2e346c855ccc360d03281455a1",
   256  		"004cdf55d429d028f715544ce22d4f31",
   257  		"0075c84a7d15e0ac85e1e41025eed23b",
   258  		"00807dddd61f71725d336cab844d2cb5",
   259  		"00422f21b77fe20e367467ed98c18410",
   260  		"00b44d0ac622907119c626c850a462fd",
   261  		"00363f5e7f22fc49f3cd662a28956563",
   262  		"000fe5837e68397bbf58db9f221bdc4e",
   263  		"0056af33835c888ef0c22599686445d3",
   264  		"00790a8647fd3dfb38b7e2b6f578f2c6",
   265  		"00da8d9009675cb7beec930e263014fb",
   266  		"00d4b384540a5bb54aa760edaa4fb2fe",
   267  		"00be9b1479ed680fdd5d91a41eb926d0",
   268  		"009182347502af97077c40a6e74b4b5c",
   269  		"00f5c90ee1c67fa77fd821f8e9fab4f1",
   270  		"005568f9a2dd6b0c0cc2f5ba3d9cac38",
   271  		"008b481f8678577d9cf6aa3f6cd6056b",
   272  		"00c4323ece5e4fe3b6cd4c5c932931af",
   273  		"009791f7550c3798c5a214cb2d0ea773",
   274  		"008a7baab22481f0ad8167dd9f90d55c",
   275  		"00f0e601519aafdc8ff94975e64c946d",
   276  		"0083b61e0daa9219df59d697c270cd31",
   277  	}
   278  
   279  	for _, m := range ms {
   280  		seed, _ := hex.DecodeString(m)
   281  
   282  		mnemonic, err := NewMnemonic(seed, "en")
   283  		if err != nil {
   284  			t.Errorf("%v", err)
   285  		}
   286  
   287  		_, err = MnemonicToByteArray(mnemonic, "en")
   288  		if err != nil {
   289  			t.Errorf("Failed for %x - %v", seed, mnemonic)
   290  		}
   291  	}
   292  }
   293  
   294  func badMnemonicSentences() []vector {
   295  	return []vector{
   296  		{mnemEnglish: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon"},
   297  		{mnemEnglish: "legal winner thank year wave sausage worth useful legal winner thank yellow yellow"},
   298  		{mnemEnglish: "letter advice cage absurd amount doctor acoustic avoid letter advice caged above"},
   299  		{mnemEnglish: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo, wrong"},
   300  		{mnemEnglish: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon"},
   301  		{mnemEnglish: "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will will will"},
   302  		{mnemEnglish: "letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always."},
   303  		{mnemEnglish: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo why"},
   304  		{mnemEnglish: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art art"},
   305  		{mnemEnglish: "legal winner thank year wave sausage worth useful legal winner thanks year wave worth useful legal winner thank year wave sausage worth title"},
   306  		{mnemEnglish: "letter advice cage absurd amount doctor acoustic avoid letters advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless"},
   307  		{mnemEnglish: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo voted"},
   308  		{mnemEnglish: "jello better achieve collect unaware mountain thought cargo oxygen act hood bridge"},
   309  		{mnemEnglish: "renew, stay, biology, evidence, goat, welcome, casual, join, adapt, armor, shuffle, fault, little, machine, walk, stumble, urge, swap"},
   310  		{mnemEnglish: "dignity pass list indicate nasty"},
   311  	}
   312  }
   313  
   314  func testVectors() []vector {
   315  	return []vector{
   316  		{
   317  			entropy:                "00000000000000000000000000000000",
   318  			mnemEnglish:            "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
   319  			mnemChineseSimplified:  "的 的 的 的 的 的 的 的 的 的 的 在",
   320  			mnemChineseTraditional: "的 的 的 的 的 的 的 的 的 的 的 在",
   321  			mnemItalian:            "abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abete",
   322  			mnemJapanese:           "あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あおぞら",
   323  			mnemKorean:             "가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가능",
   324  			mnemSpanish:            "ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco abierto",
   325  			seedEnglish:            "c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04",
   326  			seedChineseSimplified:  "7f7c7f91ef81f0fb6a3b95b346c50e6472c1d554f8ba90637bad8afce4a4de87c322c1acafa2f6f5e9a8f9b2d2c40e9d389efdc2adbe4445c21a0939fb39e91f",
   327  			seedChineseTraditional: "7f7c7f91ef81f0fb6a3b95b346c50e6472c1d554f8ba90637bad8afce4a4de87c322c1acafa2f6f5e9a8f9b2d2c40e9d389efdc2adbe4445c21a0939fb39e91f",
   328  			seedItalian:            "d2ae4bbd4efc4aba345b66dc2bfa4ea280d85810945ba4e100707694d5731c5a42ac0d0308ba9ad176966879328f1aa014fbcbeb46d671d9475c38254bf1eeb7",
   329  			seedJapanese:           "5a6c23b5abdd5c3e1f7d77ad25ecd715647bdafb44dab324c730a76a45d7421daccee1a4ff0739715a2c56a8a9f1e527a5e3496224d91293bfcd9b5393bfff83",
   330  			seedKorean:             "a253d07f616223e337b6fa257632a2cc37e1ba36ff0bc7cf5a943366fa1b9ef02d6aa0333da51c17902951634b8aa81b6692a194b07f4f8c542335d73c96aad3",
   331  			seedSpanish:            "29a2ee16de47d07025de37e7d9c596869439f9bcd26a702d2bae64db2bf0f68383841c5444b5b3bd39dd720d2ebe59969e110e5955c8e6d32c6c3294fd87439b",
   332  		},
   333  		{
   334  			entropy:                "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
   335  			mnemEnglish:            "legal winner thank year wave sausage worth useful legal winner thank yellow",
   336  			mnemChineseSimplified:  "枪 疫 霉 尝 俩 闹 饿 贤 枪 疫 霉 卿",
   337  			mnemChineseTraditional: "槍 疫 黴 嘗 倆 鬧 餓 賢 槍 疫 黴 卿",
   338  			mnemItalian:            "mimosa vita sussurro zinco vero saltare zattera ulisse mimosa vita sussurro zircone",
   339  			mnemJapanese:           "そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかめ",
   340  			mnemKorean:             "실장 활동 큰절 흔적 형제 제대로 훈련 한글 실장 활동 큰절 흔히",
   341  			mnemSpanish:            "ligero vista talar yogur venta queso yacer trozo ligero vista talar zafiro",
   342  			seedEnglish:            "2e8905819b8723fe2c1d161860e5ee1830318dbf49a83bd451cfb8440c28bd6fa457fe1296106559a3c80937a1c1069be3a3a5bd381ee6260e8d9739fce1f607",
   343  			seedChineseSimplified:  "816a69d6866891b246b4d33f54d6d2be624470141754396205d039bdd8003949fec4340253dde4c8e11437a181ad992f56d5b976eb9fbe48f4c5e5fec60a27e1",
   344  			seedChineseTraditional: "f38af46f6bc3222b0f5aa14dd5b8b506e51131510f2450ec9fb52c28617cfa59d436055fe542e25dfa01415639d2171e41796f169f8bbc18516941dfdee8fb72",
   345  			seedItalian:            "f8c609647319a50116e9b7d1a0ec5535c6d08d6c958911fd2c8b2dfd55a61e63e9c6c60c22b5c3aec725acb41980e63cb3ed75fb80648092dee1bbbeab476a6d",
   346  			seedJapanese:           "9d269b22155b3c915b09abfefd4e1104573c528f6977cde89c6a68152c3c714dc6c7e0e62f221c322f3f76e4d0bcca66c06e3d2f6a8d70d612c87dd6dee63976",
   347  			seedKorean:             "e6995bf885f5c64932ca28bbb00bc100a6b89cb6edc987bb05f05f99ae7caf78329029c189834c1cca938000bcf08423da011558a60cf3d90c9035eaaf241b9e",
   348  			seedSpanish:            "1580aa5d5d67057b3a0a12253c283b93921851555529d0bbe9634349d641029216f791ddce3527819d44d833a0df3500b15fd8ba4cae7ca24e1464b9167de633",
   349  		},
   350  		{
   351  			entropy:                "80808080808080808080808080808080",
   352  			mnemEnglish:            "letter advice cage absurd amount doctor acoustic avoid letter advice cage above",
   353  			mnemChineseSimplified:  "壤 对 据 人 三 谈 我 表 壤 对 据 不",
   354  			mnemChineseTraditional: "壤 對 據 人 三 談 我 表 壤 對 據 不",
   355  			mnemItalian:            "misurare afoso bravura accadere alogeno dottore acrilico arazzo misurare afoso bravura abisso",
   356  			mnemJapanese:           "そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あかちゃん",
   357  			mnemKorean:             "실현 감소 기법 가상 걱정 무슨 가족 공간 실현 감소 기법 가득",
   358  			mnemSpanish:            "lino admitir bolero abrir álbum dejar acelga aprender lino admitir bolero abogado",
   359  			seedEnglish:            "d71de856f81a8acc65e6fc851a38d4d7ec216fd0796d0a6827a3ad6ed5511a30fa280f12eb2e47ed2ac03b5c462a0358d18d69fe4f985ec81778c1b370b652a8",
   360  			seedChineseSimplified:  "07b6eada2601141ef9748bdf5af296a134f0f9215a946813b84338dcfba93c8247b0c3429a91e0a1b85a93bd9f1275a9524acecadc9b516c3cf4c8990f44052c",
   361  			seedChineseTraditional: "33f373da1a6b4300dad5cc70d2329ed614512e3c8a423673c294110521326ca66753b9663bdd7c844f17d81609a410a61809dd5113823009f729e2f2f940cab9",
   362  			seedItalian:            "4025269bc4f7550bbc3c61592944946b0d4ac855a5e4582bf86069cc0c9429455cc40d84ba215ed1cec28e27ffc88460c38b9c4e8c486ae878d7c85e95b222bf",
   363  			seedJapanese:           "17914bd3fe4b9e1224c968ec6b967fc6144a5795adbb2636a17f77da9b6b118200ad788672fd06096ca62683940523f5178f6ce3845c967cbd4ad2b3643cc660",
   364  			seedKorean:             "1bb52039a6cc288cf806740836002abce493724edac3d3b9458e3581427df76414b422171ef115d823a01c6b39fa68bd0fed20bf5e64dec008fcb22e4b7f26bb",
   365  			seedSpanish:            "a89366f7f9c4bd98afca8edf1242507506562b8eb8a3a60468cafcb6f3037aba1e4d9a7497f6d49fa94aca87c95703873741441a719325af371f8eda9b59dc83",
   366  		},
   367  		{
   368  			entropy:                "ffffffffffffffffffffffffffffffff",
   369  			mnemEnglish:            "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong",
   370  			mnemChineseSimplified:  "歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 逻",
   371  			mnemChineseTraditional: "歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 邏",
   372  			mnemItalian:            "zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zerbino",
   373  			mnemJapanese:           "われる われる われる われる われる われる われる われる われる われる われる ろんぶん",
   374  			mnemKorean:             "힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 흑백",
   375  			mnemSpanish:            "zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo yodo",
   376  			seedEnglish:            "ac27495480225222079d7be181583751e86f571027b0497b5b5d11218e0a8a13332572917f0f8e5a589620c6f15b11c61dee327651a14c34e18231052e48c069",
   377  			seedChineseSimplified:  "08ac5d9bed9441013b32bc317aaddeb8310011f219b48239faa4adeeb8b79cb0a3e4d1cb460d2dd37888c0a19bef6edd90ced0fd613d48899eab9ee649d77fcd",
   378  			seedChineseTraditional: "cfd5f4fa6f2a422811951739b1dad9f5291f9cbc977a14ae9dd35dc8ab17aeec9ee6f1455b20f881838f4f945850765dd002a9abcdbe7be002ffcdaf6f63fdaa",
   379  			seedItalian:            "24182cf43f956410b5def9df90e3db0d6f3199c2ebd26e7ddef888ee3bece9101d132e449bb9e1c23dd9ccc6131d2f649c021ee591e88cef8d17cb434ef69efb",
   380  			seedJapanese:           "4bd21b75de4f262b0771a97d6fc877ee19329236ced6e974c4c81a094a5f896758033f7eae270216d727539eee3bc9ba5cad21132a1c6e41a50820e0ac928e83",
   381  			seedKorean:             "b6eb986d6aaf7d0cd0eae2a667ff8bde68c8780fb5a728cf500e29119ce99c9b079a4217836879c1e73b8a85422a85b564d819699a4310a1d007b5be24c24b6d",
   382  			seedSpanish:            "a9d1f751178872cc53fc5433e9b2a97526448adc4b824cedeadd8a127c2416481345dfbef2bfc78275f3498e40b4e8e2e00560100e543aba3f324e752f032bc9",
   383  		},
   384  		{
   385  			entropy:                "000000000000000000000000000000000000000000000000",
   386  			mnemEnglish:            "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent",
   387  			mnemChineseSimplified:  "的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 动",
   388  			mnemChineseTraditional: "的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 動",
   389  			mnemItalian:            "abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco agitare",
   390  			mnemJapanese:           "あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あらいぐま",
   391  			mnemKorean:             "가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 강도",
   392  			mnemSpanish:            "ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco afición",
   393  			seedEnglish:            "035895f2f481b1b0f01fcf8c289c794660b289981a78f8106447707fdd9666ca06da5a9a565181599b79f53b844d8a71dd9f439c52a3d7b3e8a79c906ac845fa",
   394  			seedChineseSimplified:  "b8fb8047e84951d846dbfbbce3edd0c9e316dc40f35b39f03a837db85f5587ac209088e883b5d924a0a43ad154a636fb65df28fdae821226f0f014a49e773356",
   395  			seedChineseTraditional: "717f4f70c7550da57e42c6b49ac47b5bad3249605ed2f869900596c2de7653a8528380e5c31709ed9c2d19b868bc530158712e97276886b4863d036177bcab33",
   396  			seedItalian:            "2161a4b869f98778b6321714e2502adb11ea120c12163b46fa34e36442ad1981b911a2f9ec82b497e7cd206fa7af2f21a94bb6e4a90159965854784e1558658b",
   397  			seedJapanese:           "a59401a14bb821cce86ec32add8f273a3e07e9c8b1ed430d5d1a06dbf3c083ff2ffb4bb26a384b8faecb58f6cb4c07cfbf2c91108385f6773f2fefd1581926b5",
   398  			seedKorean:             "f40a8db48df9a7fdd73a7b3ceb45f668e4eff098f275a0a5cd739d31572c90aa92bc08b9043d0adf059a945e47e2fdbc26c89dcc15b3893a2a705e4539523ae3",
   399  			seedSpanish:            "6c9f21d46c56f723cd734e308f10ebf44b5b92a2e0d80fd66a2952b8d37af5219e0b93c59e1d8e63b47ac657ec2c524e5fb951d87cac824f84a3ac6264b7aaac",
   400  		},
   401  		{
   402  			entropy:                "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
   403  			mnemEnglish:            "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will",
   404  			mnemChineseSimplified:  "枪 疫 霉 尝 俩 闹 饿 贤 枪 疫 霉 尝 俩 闹 饿 贤 枪 殿",
   405  			mnemChineseTraditional: "槍 疫 黴 嘗 倆 鬧 餓 賢 槍 疫 黴 嘗 倆 鬧 餓 賢 槍 殿",
   406  			mnemItalian:            "mimosa vita sussurro zinco vero saltare zattera ulisse mimosa vita sussurro zinco vero saltare zattera ulisse mimosa virulento",
   407  			mnemJapanese:           "そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れいぎ",
   408  			mnemKorean:             "실장 활동 큰절 흔적 형제 제대로 훈련 한글 실장 활동 큰절 흔적 형제 제대로 훈련 한글 실장 환갑",
   409  			mnemSpanish:            "ligero vista talar yogur venta queso yacer trozo ligero vista talar yogur venta queso yacer trozo ligero violín",
   410  			seedEnglish:            "f2b94508732bcbacbcc020faefecfc89feafa6649a5491b8c952cede496c214a0c7b3c392d168748f2d4a612bada0753b52a1c7ac53c1e93abd5c6320b9e95dd",
   411  			seedChineseSimplified:  "74187bbdce2dba25eed3b9aebdc65dcb7c61e74c58591451d47f9c7b7b17545a527880640bfb9cab36989eba1edddf57bfce7340697926de7f0b9ec1e0345c38",
   412  			seedChineseTraditional: "2b219a8be0a8e27a6b50d0a74eb42175bd23e22cf4081518c9a74cbfe2cbace46f0adad8d390f8a2ac30feb26226db14fbc545d18ba0e56a853cbf103c92539e",
   413  			seedItalian:            "d9a6205a985fde8c2337f6cc6acf77a93d6ec7dc792551c01400f5d9aaa86aa943416c99fe60be141ca27ab333d9f96648b40b266d6b2d6a6e5b07c8939568be",
   414  			seedJapanese:           "809861f80877e3adc842b0204e401d5aeac1d16d24072f387107f9cf95b639d0a76141ab25d3dc90752472787307a7d8b1a534bea237c2bb348faac973e17488",
   415  			seedKorean:             "3162bc17e0f2f01ee571022444d2c5fbddf6a68dedfe734c319fb574592e9c0328f6526116b3b0b025b23391781d0bef8f43bc8ddc2b054b9f52e1fd6a88e3d2",
   416  			seedSpanish:            "f73b28d7e180e0a92c57276a29489c10a992c8a465ab61be0ade4708543436a682b2a3c22de57c48736ae6f29bebf3e506779c74bc1a835ad6b9f4e174126ca8",
   417  		},
   418  		{
   419  			entropy:                "808080808080808080808080808080808080808080808080",
   420  			mnemEnglish:            "letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always",
   421  			mnemChineseSimplified:  "壤 对 据 人 三 谈 我 表 壤 对 据 人 三 谈 我 表 壤 民",
   422  			mnemChineseTraditional: "壤 對 據 人 三 談 我 表 壤 對 據 人 三 談 我 表 壤 民",
   423  			mnemItalian:            "misurare afoso bravura accadere alogeno dottore acrilico arazzo misurare afoso bravura accadere alogeno dottore acrilico arazzo misurare allievo",
   424  			mnemJapanese:           "そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら いきなり",
   425  			mnemKorean:             "실현 감소 기법 가상 걱정 무슨 가족 공간 실현 감소 기법 가상 걱정 무슨 가족 공간 실현 거액",
   426  			mnemSpanish:            "lino admitir bolero abrir álbum dejar acelga aprender lino admitir bolero abrir álbum dejar acelga aprender lino alacrán",
   427  			seedEnglish:            "107d7c02a5aa6f38c58083ff74f04c607c2d2c0ecc55501dadd72d025b751bc27fe913ffb796f841c49b1d33b610cf0e91d3aa239027f5e99fe4ce9e5088cd65",
   428  			seedChineseSimplified:  "e3629a601f4b87101c4bb36496e3dbd146063351f5e47c048211faddab78efdb91910f0eea5c8e53cfb851aa3e156b0bb5c501b83baaf5f5d4a1679a5bb7d885",
   429  			seedChineseTraditional: "d29225f73231521784d98820ebf0ae4d827c5a9e0c0f8845fd63866cdc70b3a40a2281f3f6c6181c5a53e440528dbf83947a4b2056749cb9cc9c83dcd5c91b0f",
   430  			seedItalian:            "cfb1f800cd5a0f7a8cffb12231fc61739f5f87c963ead5e205dd48221c3417eb1173d3209d9a8ffc4f00ab291bc22c1480b4a0a4fdeef9a1f3916d0ccbed5591",
   431  			seedJapanese:           "01187da93480d0369fff3fc5331284ad6a60cd3ce1f60dbec60899191afa2a2b807cd030038a93ddaf14d4f75d6de4a0e049ee58c92197eb9ca995770b558486",
   432  			seedKorean:             "9fa92e4524e0f7412935b2deea23593c0955f9679d3285e3b955f5cdd2a659ee005ee99bd385f63d82cbdb54a3849229fc9a700e198b65a1452b511884b543eb",
   433  			seedSpanish:            "f799e5c2782b50d0eb1d25b5f94984c5b4037ade236c6aa3b48b3df01b703d8ede5f94555f4e78f87a642a9676ba052865418c469c5739b3e93acc528fad30b7",
   434  		},
   435  		{
   436  			entropy:                "ffffffffffffffffffffffffffffffffffffffffffffffff",
   437  			mnemEnglish:            "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when",
   438  			mnemChineseSimplified:  "歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 裕",
   439  			mnemChineseTraditional: "歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 裕",
   440  			mnemItalian:            "zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa vile",
   441  			mnemJapanese:           "われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる りんご",
   442  			mnemKorean:             "힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 화살",
   443  			mnemSpanish:            "zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo viejo",
   444  			seedEnglish:            "0cd6e5d827bb62eb8fc1e262254223817fd068a74b5b449cc2f667c3f1f985a76379b43348d952e2265b4cd129090758b3e3c2c49103b5051aac2eaeb890a528",
   445  			seedChineseSimplified:  "013c8d6868537176fac7bfa966e6219830008f03b650b0f18a12fd67d9ebf871c400c5f980aa073ddd1b23d60846e357aee193ce7644b574bf65e04cf913e39c",
   446  			seedChineseTraditional: "013c8d6868537176fac7bfa966e6219830008f03b650b0f18a12fd67d9ebf871c400c5f980aa073ddd1b23d60846e357aee193ce7644b574bf65e04cf913e39c",
   447  			seedItalian:            "05a43b9c258f6e83f4073fe4a66d6309e94610fe12dd5d598f4725e4e85ff1fde5ff5b1e61b40e09a481a98953f9dc818342172a460e5e6d17d9ab14874447e2",
   448  			seedJapanese:           "a1385ef66f20a905bbfc70f8be6ecfec341ff76d208e89e1a400ccea34313c99e93f4fba9c6f0729397b9002972af93179dc9dd8af7704fa3d28e656248274dc",
   449  			seedKorean:             "2543a88c8a31570dc9ee868a7b153f7f2e42700778bae7a3aba7017357e708b5cea97e0d9753c9226abc90b83c76ae369d74515ac64102c51a5fd0f809cf8b92",
   450  			seedSpanish:            "2fd3964ac77c52232dc0eb2ab237fea2de9b7509005214101ecbbaeb40f34bce7735e848fca6339f76f289904c6db959fa573fc0aa607d969ac256693b4fb7af",
   451  		},
   452  		{
   453  			entropy:                "0000000000000000000000000000000000000000000000000000000000000000",
   454  			mnemEnglish:            "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
   455  			mnemChineseSimplified:  "的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 性",
   456  			mnemChineseTraditional: "的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 性",
   457  			mnemItalian:            "abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco angelo",
   458  			mnemJapanese:           "あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん いってい",
   459  			mnemKorean:             "가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 가격 계단",
   460  			mnemSpanish:            "ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ábaco ancla",
   461  			seedEnglish:            "bda85446c68413707090a52022edd26a1c9462295029f2e60cd7c4f2bbd3097170af7a4d73245cafa9c3cca8d561a7c3de6f5d4a10be8ed2a5e608d68f92fcc8",
   462  			seedChineseSimplified:  "1981c3e3ddfd80f6e9ee1c5ef27ba2697df3d1468496f1d56ae3d8e0b3f0677bbbdfca954e48eb86fe6a36fc0f597bf18ea00248757a01e82182badff94abbbd",
   463  			seedChineseTraditional: "1981c3e3ddfd80f6e9ee1c5ef27ba2697df3d1468496f1d56ae3d8e0b3f0677bbbdfca954e48eb86fe6a36fc0f597bf18ea00248757a01e82182badff94abbbd",
   464  			seedItalian:            "84055239f41c182bbfe6ede6db2e8bc4a97cf86746643b7ea6910c71d67bb2a678a97ecd378cfbf59e30db720b1cfde0faaee73afd3c5deef2188e307d04442c",
   465  			seedJapanese:           "c91afc204a8b098524c5e2134bf4955b9a9ddd5d4bb78c2184bb4378a306e851b60f3e4032fc910ecb48acfb9e441dd3ceaaab9e14700b11396b94e27e8ac2da",
   466  			seedKorean:             "edb71011bc0c227103ba8a769cc36ba609e5407a771727fc0c8cba1b5a44d21ab9163d9deaa37427ccc579864e21f08d0fdd3a53a6be258d3c73b898a01ce2b2",
   467  			seedSpanish:            "f600536eca941ed937318828e9ebab24b3b571558250e7a8342fc3cf16c458b2d7b36c36155a86cc308f7bef6d87b05d5dbe347f1a83c3dfbabd89e9c45b7883",
   468  		},
   469  		{
   470  			entropy:                "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
   471  			mnemEnglish:            "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title",
   472  			mnemChineseSimplified:  "枪 疫 霉 尝 俩 闹 饿 贤 枪 疫 霉 尝 俩 闹 饿 贤 枪 疫 霉 尝 俩 闹 饿 搭",
   473  			mnemChineseTraditional: "槍 疫 黴 嘗 倆 鬧 餓 賢 槍 疫 黴 嘗 倆 鬧 餓 賢 槍 疫 黴 嘗 倆 鬧 餓 搭",
   474  			mnemItalian:            "mimosa vita sussurro zinco vero saltare zattera ulisse mimosa vita sussurro zinco vero saltare zattera ulisse mimosa vita sussurro zinco vero saltare zattera tarpare",
   475  			mnemJapanese:           "そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかす りくつ ばいか ろせん まんきつ",
   476  			mnemKorean:             "실장 활동 큰절 흔적 형제 제대로 훈련 한글 실장 활동 큰절 흔적 형제 제대로 훈련 한글 실장 활동 큰절 흔적 형제 제대로 훈련 통로",
   477  			mnemSpanish:            "ligero vista talar yogur venta queso yacer trozo ligero vista talar yogur venta queso yacer trozo ligero vista talar yogur venta queso yacer teatro",
   478  			seedEnglish:            "bc09fca1804f7e69da93c2f2028eb238c227f2e9dda30cd63699232578480a4021b146ad717fbb7e451ce9eb835f43620bf5c514db0f8add49f5d121449d3e87",
   479  			seedChineseSimplified:  "b1eb831927f1c488e233725f9c409dd9bdb9342324393fa56d958e8842623d222510c322f5ba2899428ae08ece8bd87788748c67bdfa73588669ab816c5f3555",
   480  			seedChineseTraditional: "fd50ad67903b2046356e67e55d67309b6f0ccd7c23bfefd049a5b8a40d56c507d73a5517e2d2785f024a7794854594aaad845dd0fbd0432c25a96f2a7181a2cc",
   481  			seedItalian:            "f0e226efcd929216020a9e8f879f06b146d28fecd2856bd401a62ecc0ece8bc6ea717e3f9df523a6a00bd4ca8965e0498d63e779e3156dbf174ebac74ad7be31",
   482  			seedJapanese:           "79aff5bc7868b9054f6c35bb3fa286c72a6931d5999c6c45a029ad31da550b71c8db72e594875e1d61788371b31a03b70fe1d9484840d403e56a1a2783bf9d7e",
   483  			seedKorean:             "dbd640cc9d3e99939bb0fc4473738571e314c29468f01fa85f57e296cf6e8e269d6e32434e46aaa63384930cae83728623195a932a48ccb71a9ea247720d9371",
   484  			seedSpanish:            "3d2a3aec779195f2628e800879d600cfaf2d7fcfa998657068db53906a00608fcc94fc78ceab8c97d6191389c4e468815ea0d11ffa4280c34c3cf17721a27c73",
   485  		},
   486  		{
   487  			entropy:                "8080808080808080808080808080808080808080808080808080808080808080",
   488  			mnemEnglish:            "letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless",
   489  			mnemChineseSimplified:  "壤 对 据 人 三 谈 我 表 壤 对 据 人 三 谈 我 表 壤 对 据 人 三 谈 我 五",
   490  			mnemChineseTraditional: "壤 對 據 人 三 談 我 表 壤 對 據 人 三 談 我 表 壤 對 據 人 三 談 我 五",
   491  			mnemItalian:            "misurare afoso bravura accadere alogeno dottore acrilico arazzo misurare afoso bravura accadere alogeno dottore acrilico arazzo misurare afoso bravura accadere alogeno dottore acrilico baco",
   492  			mnemJapanese:           "そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あこがれる いくぶん けいけん あたえる うめる",
   493  			mnemKorean:             "실현 감소 기법 가상 걱정 무슨 가족 공간 실현 감소 기법 가상 걱정 무슨 가족 공간 실현 감소 기법 가상 걱정 무슨 가족 구속",
   494  			mnemSpanish:            "lino admitir bolero abrir álbum dejar acelga aprender lino admitir bolero abrir álbum dejar acelga aprender lino admitir bolero abrir álbum dejar acelga aumento",
   495  			seedEnglish:            "c0c519bd0e91a2ed54357d9d1ebef6f5af218a153624cf4f2da911a0ed8f7a09e2ef61af0aca007096df430022f7a2b6fb91661a9589097069720d015e4e982f",
   496  			seedChineseSimplified:  "470e61f7e976fa18c7d559e842ba7f39849b2f72ef15428f4276c5160002f36416cd22c2a86bb686d69f6b91818538aa57ae1aab27b3181b92132c59be2b329b",
   497  			seedChineseTraditional: "d029fc9737b801cb4f9aadf5feed02a117b76ead7058e055cc39cb44864023eb492e6a15c68569d6a03a5b11bf15a456c64e1781a553589b47ab569801239a00",
   498  			seedItalian:            "ef549c1e44a7b183031b41f9f692795406de605e43ecc628911a38d7c92f392660c48313a08cf1a055a420d4a8c6b12bef7ff354c903303bc3a5dc12948ff5be",
   499  			seedJapanese:           "0f46c02350b3f1227c3566dea2ff0f2caf716495a95725b320a31a3058d5d62596fdb816be75909d2c5f7094beb171dc504ea8ea60f5e2e40bd8aa0d9339aab0",
   500  			seedKorean:             "9a0ec04a48287ae628d61428f921de5f40fc1035f21883798e05c36f9705b2525a00ebd6bb89fcae9b8af8e9861d0083de331199d6b85b24cff598609a49b305",
   501  			seedSpanish:            "dd095dddb50de059f5cb6932d529ad37dd32d40f72da3d0c7671ffc6bd967b4392fe233e5e9a4d9e5e60413160ae215e34375db85e95ccbab4fd4712f32216ab",
   502  		},
   503  		{
   504  			entropy:                "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
   505  			mnemEnglish:            "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote",
   506  			mnemChineseSimplified:  "歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 佳",
   507  			mnemChineseTraditional: "歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 歇 佳",
   508  			mnemItalian:            "zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa zuppa vedetta",
   509  			mnemJapanese:           "われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる らいう",
   510  			mnemKorean:             "힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 힘껏 허용",
   511  			mnemSpanish:            "zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo zurdo varón",
   512  			seedEnglish:            "dd48c104698c30cfe2b6142103248622fb7bb0ff692eebb00089b32d22484e1613912f0a5b694407be899ffd31ed3992c456cdf60f5d4564b8ba3f05a69890ad",
   513  			seedChineseSimplified:  "8e6607a07fa664d6e4ead23fcc08caf72216d6f078c3b2e5be94e4b6e8d64c784d36bf9b70144fa05840e9a49899128111be5093a2b552b6ab76c0906e9b0e65",
   514  			seedChineseTraditional: "8e6607a07fa664d6e4ead23fcc08caf72216d6f078c3b2e5be94e4b6e8d64c784d36bf9b70144fa05840e9a49899128111be5093a2b552b6ab76c0906e9b0e65",
   515  			seedItalian:            "5089f33aee7852d86a01e8afbfdc8a0ad5af51538e62e3f007d098fa4fc9817ddc990fa87b7235273798e2df52228b62738df923bc2d711fed9cc0558b3ebfec",
   516  			seedJapanese:           "a0705c2feebefb61509dcc49c57586c35379c1981c688fc1d452da44443d9a651a374f1ad2ee3d7847b50655cf9241d7e607be436c0df7c8bac42f2a82985a79",
   517  			seedKorean:             "340bd57209e54e8bde6ca750147933f7e44995047da87b61f64f70f26f289a377e25a65f5efb11f9e651917ec9866d54846516ae0fba956f5f536422bb47d91c",
   518  			seedSpanish:            "deea21c6902df5ef4a8efab8e14de53004c68817ea3de421cdd184f4159a6e9947376ed794c3ce67534f37f80b46674e85335555b5c53f44fdfef27991fedc0e",
   519  		},
   520  		{
   521  			entropy:                "77c2b00716cec7213839159e404db50d",
   522  			mnemEnglish:            "jelly better achieve collect unaware mountain thought cargo oxygen act hood bridge",
   523  			mnemChineseSimplified:  "课 军 个 群 汁 揭 涌 东 滚 他 背 统",
   524  			mnemChineseTraditional: "課 軍 個 群 汁 揭 湧 東 滾 他 背 統",
   525  			mnemItalian:            "malgrado ausilio acqua clinica trincea omissione svista burrasca pervaso adagio istituto bere",
   526  			mnemJapanese:           "せまい うちがわ あずき かろう めずらしい だんち ますく おさめる ていぼう あたる すあな えしゃく",
   527  			mnemKorean:             "시각 교문 가장 달력 하드웨어 연출 태권도 김치 웃음 각자 소용 그룹",
   528  			mnemSpanish:            "jungla asumir acción cedro tóxico mismo tapa brisa obispo ácido hombre baño",
   529  			seedEnglish:            "b5b6d0127db1a9d2226af0c3346031d77af31e918dba64287a1b44b8ebf63cdd52676f672a290aae502472cf2d602c051f3e6f18055e84e4c43897fc4e51a6ff",
   530  			seedChineseSimplified:  "0c510ef7585a9e506ef92152955ecda644398f475dc40ce642e0fabd3cc4dad74d0f42a224c557c66b2d90fef60fd7c58c73fade3ea261c612325c37d7cfe11b",
   531  			seedChineseTraditional: "bf346a4b09f31be3b6d0aa4e840d7d8e6a6420ee50fce7348e7312e89ce4ea8536c2d1b5969d5e9e77f7ff269df126e6edf9d40a937a72799fb31a8ee0860613",
   532  			seedItalian:            "25d048482d5ce15a5b2c412f23e8ae1ea4fbd19bcd5002b5a18bf045ac8ec6fa4ba95c34af1ff667602d28a51906ab7fa0cefc19b67bc2e780dbd21c244857f7",
   533  			seedJapanese:           "b7f5478674839a3487a271014f066059490161a381ec57e9a00de0a3c7311ab51f20b53989c7bcbc923f956b5a16556bc6a4c143265e280769f12792d0e0913e",
   534  			seedKorean:             "62392a9144379952afbcdd70c7e68f1a8ab06cc6fec4f0fe22915b8b26b0939061f31ae0c761579681bc0b3619fca8c8a27dcd9f964ab694068cac04f26de6ac",
   535  			seedSpanish:            "338e1ee586e109e80a53af2294bca03f4a5a7e9d089f04d1f02b30dde370c8ae4268a37909bd278c21e29fc24e2a3f30104eb8dd153192eda5646415dbc21fc0",
   536  		},
   537  		{
   538  			entropy:                "b63a9c59a6e641f288ebc103017f1da9f8290b3da6bdef7b",
   539  			mnemEnglish:            "renew stay biology evidence goat welcome casual join adapt armor shuffle fault little machine walk stumble urge swap",
   540  			mnemChineseSimplified:  "芽 碗 想 富 训 粪 争 额 生 使 怒 阿 折 泥 剑 勾 傅 浇",
   541  			mnemChineseTraditional: "芽 碗 想 富 訓 糞 爭 額 生 使 怒 阿 折 泥 劍 勾 傅 澆",
   542  			mnemItalian:            "rimbalzo solubile avvenire fanfara idra vicenda calibro malto adipe anatra scuderia focaccia monetario mummia velcro spatola uditivo staffa",
   543  			mnemJapanese:           "ぬすむ ふっかつ うどん こうりつ しつじ りょうり おたがい せもたれ あつめる いちりゅう はんしゃ ごますり そんけい たいちょう らしんばん ぶんせき やすみ ほいく",
   544  			mnemKorean:             "재정 체온 교통 번역 새벽 홀로 꽃잎 시금치 간접 경제 중반 본사 아시아 알코올 현상 최선 학위 치약",
   545  			mnemSpanish:            "pleito semana ático ensayo giro viaje buceo júpiter activo amigo repetir fábula llover madera veinte siete trompa soplar",
   546  			seedEnglish:            "9248d83e06f4cd98debf5b6f010542760df925ce46cf38a1bdb4e4de7d21f5c39366941c69e1bdbf2966e0f6e6dbece898a0e2f0a4c2b3e640953dfe8b7bbdc5",
   547  			seedChineseSimplified:  "4e62ea1e33462a4b756e1a1c9fdd921906e3a92e7a6d8b3aadef46ab0a6a1401af4ab6ee76588567505d110b8baa9098a162613c1329efdc6fa119ba61d413d0",
   548  			seedChineseTraditional: "73f34390a71ce9d84c2bcd5137fc39520a1ddaa77db53601211fea7e217a971be45fe41d52ff94f8974ffc1179056d7d6b36916f4f9820acc58f3dec97b65732",
   549  			seedItalian:            "f988c804b5adc0dda6bfc42343cc22f1a3bb53fa41a7b0cae7f059d759549f2b2911caa32c66a1a04b2bccc50cf669336af82491741a816b8595aa9cc97dbadc",
   550  			seedJapanese:           "a5fe510d0485f7d74dec53fbc1aeb7bf3d527075dcc5ef657e0b3a8ff613554228099faa1cc9332f9a1dde264cefa6493f70ca3828c514781e78dd7c5e39877d",
   551  			seedKorean:             "84a175cbea67eeb84bde6fc217eaa323059b1514be1fa2981dfee7faf0f2de8d5158a9e12c3e562a1d27eb740ccecdd128ddec83483e4690018a3b9d95632a5c",
   552  			seedSpanish:            "12e9454bfe0cb26cb91db194f7be1297ea0f0ff07038f9f70fc3364a85f4196991b01c7ec84ebc91f0611597c8b346cd20e2623ce8c0af8e4040cf7bc05f2218",
   553  		},
   554  		{
   555  			entropy:                "3e141609b97933b66a060dcddc71fad1d91677db872031e85f4c015c5e7e8982",
   556  			mnemEnglish:            "dignity pass list indicate nasty swamp pool script soccer toe leaf photo multiply desk host tomato cradle drill spread actor shine dismiss champion exotic",
   557  			mnemChineseSimplified:  "严 勒 伸 销 男 佛 锋 忍 啥 弓 横 泡 综 圆 概 坑 断 台 鸟 来 簧 尔 美 初",
   558  			mnemChineseTraditional: "嚴 勒 伸 銷 男 佛 鋒 忍 啥 弓 橫 泡 綜 圓 概 坑 斷 台 鳥 來 簧 爾 美 初",
   559  			mnemItalian:            "disumano pigro mondina lingua ornativo stacco prenotare saziato sfratto tavolata microbo podismo operato digitale lacca telefono coricato educare snellire addome sclerare dolce cappero feltro",
   560  			mnemJapanese:           "くのう てぬぐい そんかい すろっと ちきゅう ほあん とさか はくしゅ ひびく みえる そざい てんすう たんぴん くしょう すいようび みけん きさらぎ げざん ふくざつ あつかう はやい くろう おやゆび こすう",
   561  			mnemKorean:             "목사 위협 아스팔트 수준 영향 취향 이전 조명 질서 통제 실력 의견 열심히 명의 소풍 퇴근 대합실 물질 천둥 간부 주전자 몸짓 낭비 변신",
   562  			mnemSpanish:            "cúpula odiar llorar inicio moreno sopa ozono rápido rotar tejer libro opción moho cubrir horno tema cigarro diadema sardina acné relato dátil cacao espejo",
   563  			seedEnglish:            "ff7f3184df8696d8bef94b6c03114dbee0ef89ff938712301d27ed8336ca89ef9635da20af07d4175f2bf5f3de130f39c9d9e8dd0472489c19b1a020a940da67",
   564  			seedChineseSimplified:  "1e6a232b629f0708abbc19d92d7bda1f9ec659003c42769f62f38d1336bea5f0a3ed77475f8c0e75170980b12b7a782aec799ba8c24821f5872ac60a94177f50",
   565  			seedChineseTraditional: "f4728e7f4c8664bf908dd073a8ad025b492cf65a15500d471497d8644daf08cf7179a91523654a2a0c0872065b89d33b1cbe811a731ca365ee8a4c2405e34a58",
   566  			seedItalian:            "41d464af9fb1f2222011ac4fa96777be87ac121b28e3dd3aaedfa243a68b2b8c3e131c5643c344e0c967adc39145683480da53a33ff138383cddd67a68d061f7",
   567  			seedJapanese:           "3ca539f28db49e01d56b8dca1b513131dcd57833e961caabad88b7bbf2347ce5ece844c025bc88bd7a90fe4069a5ce2115f5571da9021af64e782539267fc687",
   568  			seedKorean:             "ed4535b5e5f0d8bebc65c817fc9791787f21ef9f2870f25e3e21bc7643fcfbf76a540508d910fe82c4d7666abcf4d90e6dd1fccbb8f2713ae7c4abb60f05e3bb",
   569  			seedSpanish:            "acb2b4e604937ce8bbd1048577fc9cc4f864551d28772f572068b6749ddbd38a9afcb189a62453ceae15542cc1af7e9e5372e62d113a6db88d5250ab6afce4f1",
   570  		},
   571  		{
   572  			entropy:                "0460ef47585604c5660618db2e6a7e7f",
   573  			mnemEnglish:            "afford alter spike radar gate glance object seek swamp infant panel yellow",
   574  			mnemChineseSimplified:  "可 所 筹 铝 货 纸 嘴 乳 佛 居 旅 卿",
   575  			mnemChineseTraditional: "可 所 籌 鋁 貨 紙 嘴 乳 佛 居 旅 卿",
   576  			mnemItalian:            "agente allegro slogatura reddito gommone guadagno palesare sbrinare stacco lirica pianta zircone",
   577  			mnemJapanese:           "あみもの いきおい ふいうち にげる ざんしょ じかん ついか はたん ほあん すんぽう てちがい わかめ",
   578  			mnemKorean:             "감정 거실 채널 자정 사흘 상식 온갖 졸음 취향 수컷 월드컵 흔히",
   579  			mnemSpanish:            "aduana ajuste samba perder gafas gen natal rebote sopa innato ochenta zafiro",
   580  			seedEnglish:            "65f93a9f36b6c85cbe634ffc1f99f2b82cbb10b31edc7f087b4f6cb9e976e9faf76ff41f8f27c99afdf38f7a303ba1136ee48a4c1e7fcd3dba7aa876113a36e4",
   581  			seedChineseSimplified:  "0ecc4917f75f06bf73bddb4064fab59a3ed15af37b0d0e6fb89f27b974b8d0311a60c9b2c09115eb2f4ba8c49a3fcf7b792b7f20a5de2ad22c2597c23abc29e8",
   582  			seedChineseTraditional: "1ffaf0e925cf9a8fd7e9392324a7e3e25bb77c0af38ba8782ce878275b452694cac9993f758b673233a9fca1d336ab5a39ff29ec53bb526bed7b8dd30c2b94c1",
   583  			seedItalian:            "a11334b5645da8c9eaa166429c1bfee321f80eaf02b7e055224fdb65f0f2fa72d07be9237130ee5e1bda51be02305afa9460e6c030c8495b5985d84dbda59dda",
   584  			seedJapanese:           "1bd33e347a219ff2ff2dbacc0c6149a97d09e20f7dd4951552e1516eb865710387dc011c22b256270661094ff9bfb080b939eb6dd1cb8705afabe0f38cf3b74d",
   585  			seedKorean:             "fd9f965f624b20b10b4c5e38cd237bfce5a1be914032ce084c5072357a755055107ede64918ba2a3a5845484513f3e5c8e3d5ee89edaed5668b350a8f13ce5f7",
   586  			seedSpanish:            "fbeec9484d0ba972601190f2201049c522c1b24b8a3584478f2ca11dd58683c232241df21dca593f0beb1c9842323f81c9fd53d19d9af1be7686424c746711b6",
   587  		},
   588  		{
   589  			entropy:                "72f60ebac5dd8add8d2a25a797102c3ce21bc029c200076f",
   590  			mnemEnglish:            "indicate race push merry suffer human cruise dwarf pole review arch keep canvas theme poem divorce alter left",
   591  			mnemChineseSimplified:  "销 仿 喊 忽 姆 皇 感 供 授 隆 量 岩 造 岗 泵 推 所 堂",
   592  			mnemChineseTraditional: "銷 仿 喊 忽 姆 皇 感 供 授 隆 量 岩 造 崗 泵 推 所 堂",
   593  			mnemItalian:            "lingua recondito rapato nucleo spessore lampo croce elsa prefisso rischio ampio maratona bubbone svagare prassi dormire allegro milano",
   594  			mnemJapanese:           "すろっと にくしみ なやむ たとえる へいこう すくう きない けってい とくべつ ねっしん いたみ せんせい おくりがな まかい とくい けあな いきおい そそぐ",
   595  			mnemKorean:             "수준 자율 입시 에너지 추측 손길 동화책 민주 이웃 적응 경력 시인 기준 클럽 이성 무덤 거실 실습",
   596  			mnemSpanish:            "inicio pera pelar medio simio hueso cocina directo óvulo pompa amante lágrima bóveda talento ostra defensa ajuste lienzo",
   597  			seedEnglish:            "3bbf9daa0dfad8229786ace5ddb4e00fa98a044ae4c4975ffd5e094dba9e0bb289349dbe2091761f30f382d4e35c4a670ee8ab50758d2c55881be69e327117ba",
   598  			seedChineseSimplified:  "402b0348f2c1cfb2bed9f1b35038b3858fdef84fcf1b5145aee02bd95f2fa5d8a8fe5591100fa3e13df296de9479b78cd2a256d674b7659c52658c25b10901ac",
   599  			seedChineseTraditional: "049a53d601580da9c0050a2c2972bdc12ba3e5c73642f84c415cdb9f4f4b077fac754567e286adfc55d4fe99ba861eddc4837d5365c62a18e580c1d0167a4708",
   600  			seedItalian:            "5b6891b038e178a92117b8ac854e6cfd2d482916fd2f2990eadc6de885614e1b8ffd118586afc7ffea78e680399acfafa9f8db8430be7160cebc80451629c077",
   601  			seedJapanese:           "37a76adf17a8330e495ea6e8b41cbb590ae7672a48bbcae709483b4a0b1b5104cacc5c5df6595a9de22c0116a33138233d15ede90c4fc7ba7cb97488d168c137",
   602  			seedKorean:             "bdaf23a011e1ac722308c543ac64e2f126a52f685975044185e972965c674d8e96dffb30dca5448c1e27f3742bfb54700f70c809eda5c6fd8a31f242b19d47ab",
   603  			seedSpanish:            "26ec835839a0556796cb2f483ea6965cfa845a059867df950a8314d0d7edca4eacb1076e4aa7977d321ae90da1a29893c2025e2f585d4839637fefed3abc1f26",
   604  		},
   605  		{
   606  			entropy:                "2c85efc7f24ee4573d2b81a6ec66cee209b2dcbd09d8eddc51e0215b0b68e416",
   607  			mnemEnglish:            "clutch control vehicle tonight unusual clog visa ice plunge glimpse recipe series open hour vintage deposit universe tip job dress radar refuse motion taste",
   608  			mnemChineseSimplified:  "况 越 慌 叙 斑 信 缆 扬 忘 吗 抱 舰 抵 怕 闷 状 宴 煮 胡 告 铝 寄 尘 孤",
   609  			mnemChineseTraditional: "況 越 慌 敘 斑 信 纜 揚 忘 嗎 抱 艦 抵 怕 悶 狀 宴 煮 胡 告 鋁 寄 塵 孤",
   610  			mnemItalian:            "circa commando urgenza tendone tunisia chirurgo vangare lavoro pranzo gufo ribelle scapola peccato lacrima valoroso devoto tubatura tardivo malsano edile reddito ricordo ombra stufo",
   611  			mnemJapanese:           "かほご きうい ゆたか みすえる もらう がっこう よそう ずっと ときどき したうけ にんか はっこう つみき すうじつ よけい くげん もくてき まわり せめる げざい にげる にんたい たんそく ほそく",
   612  			mnemKorean:             "단위 대단히 할인 트럭 학력 다이어트 햇살 솜씨 이상 상점 장례 좌석 왼손 속담 핵심 며느리 학교 토요일 시골 물리학 자정 장비 연장 콘서트",
   613  			mnemSpanish:            "castor cetro úlcera tender tren carne vaina icono oso geranio piloto red nivel hoyo vacío croqueta trazar tauro juntar día perder piojo miseria sur",
   614  			seedEnglish:            "fe908f96f46668b2d5b37d82f558c77ed0d69dd0e7e043a5b0511c48c2f1064694a956f86360c93dd04052a8899497ce9e985ebe0c8c52b955e6ae86d4ff4449",
   615  			seedChineseSimplified:  "bd5c11fbf4dadb6098691ad9aa111879fb6ac5452aa56988d1623f08b5533be6d3cd1f192cb78574168f885e514d702e626b465bc011e7539c75fa36914ddc92",
   616  			seedChineseTraditional: "245c0079ed3f521170d2680b0195459eb69cd1e11715b657eeca71480d234c0e8ba412f4b2de0388e9a16e7df8dbbfcd17634a9fe362232369f01b81ee0804f7",
   617  			seedItalian:            "bdceb85bbe1da2c2fe44dff7ff67aa58899c2c78dce4521e9d23bcb65231345ee25bb3ab5182b6c4325d0d9a946cb96a7c1649e27f8d1ab8e824aaa825d8e8c9",
   618  			seedJapanese:           "ba369b6718743db50a501ca4bc452763b9230370e923063cd7be7fafaf537c7fadd677cfd2066f78c752f5d5830fb3794983b7e896d58722d559e26060b44309",
   619  			seedKorean:             "3f387663035d904317f4dea874874db2c56614d71a566a9af698738b0f822a745e02afdb567980f2154b64ab5a0ff9cd94007354b3da5f4c43801254c93f5c95",
   620  			seedSpanish:            "e030c576214c756d847e79429be634d2054cb489f37f01d892a7393cc368927bd6af4203c96aa34e237fcb96365b7d4ed02e20c518818a12944efde5fc6e6ea4",
   621  		},
   622  		{
   623  			entropy:                "eaebabb2383351fd31d703840b32e9e2",
   624  			mnemEnglish:            "turtle front uncle idea crush write shrug there lottery flower risk shell",
   625  			mnemChineseSimplified:  "惩 若 呵 希 团 曰 隙 盗 塔 友 牵 牌",
   626  			mnemChineseTraditional: "懲 若 呵 希 團 曰 隙 盜 塔 友 牽 牌",
   627  			mnemItalian:            "trapano genotipo trio leggero cruciale zenzero scrutinio svelare motto furgone rivincita scindere",
   628  			mnemJapanese:           "めいえん さのう めだつ すてる きぬごし ろんぱ はんこ まける たいおう さかいし ねんいり はぶらし",
   629  			mnemKorean:             "플라스틱 사계절 하룻밤 송이 딸아이 흐름 중독 타자기 악몽 불안 전주 주식",
   630  			mnemSpanish:            "tórax fracaso trabajo idioma codo yeso reparto tamaño lucha fila prensa rehén",
   631  			seedEnglish:            "bdfb76a0759f301b0b899a1e3985227e53b3f51e67e3f2a65363caedf3e32fde42a66c404f18d7b05818c95ef3ca1e5146646856c461c073169467511680876c",
   632  			seedChineseSimplified:  "41516e14e79ebe65e726c50e3aa42ec9d5ecf621a526ad49eb7dc18d8b85058f27a620d6ee9e3037f7ad936651a43f73659158d09c108c926419161932d9f1d3",
   633  			seedChineseTraditional: "15d6cbca0bcd6e687ea7c68f3a573418bd94e4e1d4221d2bce7185af7f913b71146312aeecb599fc981813c46d4abecf86d2cc1e607d423ec5822300effb7625",
   634  			seedItalian:            "9357d82a70821589215d4a150d9a75e9be4c765cd9eeb530a78911bd42e647eed1a5b3f6a88344e94067c92dd788293b07827e69f88e03b03c14572c1c6c4d14",
   635  			seedJapanese:           "065cfeac3b160a68307b6a4d5879b6c8f7ed6c9de396abb8bbd26f4dde61c4b45f5977187bd69a228cd521fd0d901a80df90df07a8115c3de05831e549b14b4a",
   636  			seedKorean:             "0358feefe6fd5dac8688aaf52090b1e1696c83e2844f640341c02f74d7183849b3b9300b86e95aecaaf197c046da8e95012cfa8cae1ee992cf4a8e8210af798a",
   637  			seedSpanish:            "a5083e544700dc9933be40a727afdd373a4e417b4ec97b1382c2758836320a8b3d16d06a4d649d8173544867bb59cd89528024a14aac0a40dc6026502bd96020",
   638  		},
   639  		{
   640  			entropy:                "7ac45cfe7722ee6c7ba84fbc2d5bd61b45cb2fe5eb65aa78",
   641  			mnemEnglish:            "kiss carry display unusual confirm curtain upgrade antique rotate hello void custom frequent obey nut hole price segment",
   642  			mnemChineseSimplified:  "探 器 讲 斑 叫 构 醇 自 矩 弦 柄 太 央 筒 婚 松 怪 邓",
   643  			mnemChineseTraditional: "探 器 講 斑 叫 構 醇 自 矩 弦 柄 太 央 筒 婚 松 怪 鄧",
   644  			mnemItalian:            "materasso busta domenica tunisia coltivato curvo tuta ameba rompere intasato varcato dado gemello palazzina paga irrigato prova sbruffone",
   645  			mnemJapanese:           "せんぱい おしえる ぐんかん もらう きあい きぼう やおや いせえび のいず じゅしん よゆう きみつ さといも ちんもく ちわわ しんせいじ とめる はちみつ",
   646  			mnemKorean:             "시집 깍두기 몹시 학력 당연히 마요네즈 학비 결론 점원 세금 향상 마이크 빛깔 옥수수 오히려 소망 인종 종교",
   647  			mnemSpanish:            "langosta broma débil tren cero colgar tribu almíbar prole hebra vampiro colmo forro nasal nariz historia pañuelo recaer",
   648  			seedEnglish:            "ed56ff6c833c07982eb7119a8f48fd363c4a9b1601cd2de736b01045c5eb8ab4f57b079403485d1c4924f0790dc10a971763337cb9f9c62226f64fff26397c79",
   649  			seedChineseSimplified:  "47fda4426598bc3c9b274d01c314c99cd391652813475d0005699c1c93f0205e50b4c38a96c436fd60a4aa58ee14f88e627569c4341fc9f30c496da2e7465cf1",
   650  			seedChineseTraditional: "cc7e9efb7ec3e190ee600e574b0434a268c4bd229c81e8adae1e0a89f8ed957fe270b841309e77faeffa2562bd305b171a7b1e7ae6a272b0cf6eced201db8bac",
   651  			seedItalian:            "67f58f2f0ecf0fb099d7edaa0c289b374d95a2ea100de1637af11a3b30bcb5639a8b5527235bc4400466333c687924593b87dfc2f15dd60d22cdc972395511c7",
   652  			seedJapanese:           "a3e06b761cd1ddde4f652856c495b53c67f84e23a545f0a97b79f94e84ebcab5999439124275e2e118cb03d34772f5b03bb2d3d048a532e019aa6e7121b39b9c",
   653  			seedKorean:             "6938637bd9580bf4aa776502e21ed4563f1a627127feb4ec18b08eb25eeebd55a4b641b3f96b425938892544cd62455a36e95c8df2c1fde82bcca6545b41b694",
   654  			seedSpanish:            "be98fe494599826bd0056d02596eccee914ead5b8bd6387920663e813d3965ae1d9f0ca0c2eba3f888a2ddd41736cb2dc25ea5ee625e09b69e067edc2a0729fb",
   655  		},
   656  		{
   657  			entropy:                "4fa1a8bc3e6d80ee1316050e862c1812031493212b7ec3f3bb1b08f168cabeef",
   658  			mnemEnglish:            "exile ask congress lamp submit jacket era scheme attend cousin alcohol catch course end lucky hurt sentence oven short ball bird grab wing top",
   659  			mnemChineseSimplified:  "升 它 且 归 蒋 剧 修 伐 天 商 产 油 际 护 旋 尼 乌 墙 洛 明 已 脱 酱 罐",
   660  			mnemChineseTraditional: "昇 它 且 歸 蔣 劇 修 伐 天 商 產 油 際 護 旋 尼 烏 牆 洛 明 已 脫 醬 罐",
   661  			mnemItalian:            "fede annegare colza mensola specie magico europa sarto apparire coppia albo cambusa copione esercito mucosa latino scandalo perno scossone arso avviso imballo vissuto tentacolo",
   662  			mnemJapanese:           "こころ いどう きあつ そうがんきょう へいあん せつりつ ごうせい はいち いびき きこく あんい おちつく きこえる けんとう たいこ すすめる はっけん ていど はんおん いんさつ うなぎ しねま れいぼう みつかる",
   663  			mnemKorean:             "변경 계약 당장 신고 최종 습기 배달 제주도 고민 대충 강제 나머지 대출 발톱 안내 손톱 종합 울산 중계방송 공짜 교환 생일 환자 특성",
   664  			mnemSpanish:            "esfera ángulo cerrar leer sílaba juez encargo ración anuncio cielo agrio buey ciego educar lunes hundir recurso número remo área atleta gorila visor tenso",
   665  			seedEnglish:            "095ee6f817b4c2cb30a5a797360a81a40ab0f9a4e25ecd672a3f58a0b5ba0687c096a6b14d2c0deb3bdefce4f61d01ae07417d502429352e27695163f7447a8c",
   666  			seedChineseSimplified:  "137a41c649798f8dcb9a46378bf74c67ebfffbd8fcea04b34721fa5bc89eed726c46a1af50825dfb14196362814568a5be8bb418680b64a6213309e2bc6d5bc3",
   667  			seedChineseTraditional: "7b18d49c2bcc8cbbd8ff869162a0c3ca7a0f0855ef6e8a29fa55ff8181827657ff6b8b30bae395aaa5073adcebde22dc5e65dfaadd9431bfd32088c59882c46c",
   668  			seedItalian:            "759e5b5b4b2810c8314ed23166e733cd879f4d81c3ddd0e02ae54bb1eae3938b9637fffc02f3a20064a2a9ccb8581e576c4f9e6d41f301d9cddfbbcb727de717",
   669  			seedJapanese:           "37ed8facbb2fcad238893671e9e12fe25f612f1ec5c39c38f3c0b332d6e5b9fb38902dfc9b3e664029a13adab9e8a1ed5869ed9d0a5854974dd5f608676064b7",
   670  			seedKorean:             "6fd7ad6ed0712293a9d3c3bd8d78941db619e3541e0ae8f5dc7d9d192b9c72e55a197bad0c05abc99db58144e5a614e31c1dde2086baabb2e16c17d5ddc150c8",
   671  			seedSpanish:            "337858f949a2f0fe56c0d9995c768af0237036751e2b7b09e9c60a6f5263e2499319f5702b3bdeb19e7a424f2ebe42d2f3746faf26520ae7a2173d623b4a2581",
   672  		},
   673  		{
   674  			entropy:                "18ab19a9f54a9274f03e5209a2ac8a91",
   675  			mnemEnglish:            "board flee heavy tunnel powder denial science ski answer betray cargo cat",
   676  			mnemChineseSimplified:  "常 诉 握 仗 窗 层 疗 赏 化 系 东 济",
   677  			mnemChineseTraditional: "常 訴 握 仗 窗 層 療 賞 化 系 東 濟",
   678  			mnemItalian:            "ballata fumetto insieme tralcio procura descritto satellite senso ambito attuale burrasca calmo",
   679  			mnemJapanese:           "うりきれ さいせい じゆう むろん とどける ぐうたら はいれつ ひけつ いずれ うちあわせ おさめる おたく",
   680  			mnemKorean:             "국립 불과 성적 풍습 인근 먹이 제품 지름길 결과 교과서 김치 나들이",
   681  			mnemSpanish:            "avena fiel haz topar palco crimen raíz rigor alma astuto brisa bucle",
   682  			seedEnglish:            "6eff1bb21562918509c73cb990260db07c0ce34ff0e3cc4a8cb3276129fbcb300bddfe005831350efd633909f476c45c88253276d9fd0df6ef48609e8bb7dca8",
   683  			seedChineseSimplified:  "b14c71e5c6fececc7ee482bacbf4e5b3f1861c425378db96fd893e7002ac7a01108e8933a03a317f7f0bc1a48474e21291c899b149c35b3dc9555401be7858ef",
   684  			seedChineseTraditional: "03477bcacf4e289bbdd0fc8924cc8491dd5011df3b91c5b4a7cfb3fc44944422ed0294a05a889252351ff41095a3fcc1c5696b10bf33ff02cc769e8a4a99c661",
   685  			seedItalian:            "90fb045633be02430f26492f543c91fcef606a5c80d85774897244cf9ca10a6148a76af2f8562b555326d0c91e299f273d53b1e34953774854b343023c562aba",
   686  			seedJapanese:           "db0b8914d12023ea9c2ffacca9e98cde2afd22aa636811c1043ec5df842c8f8f71a5425b7c2d579d88e214f5c27f4a24b940666c6c8542b5b46414ad8e023930",
   687  			seedKorean:             "3f91644673d1ce366b5e83378ddab52ea73922a4eee0acb6d559ff8f24093aa4280f4e7a1eaa4ab166304ed2a3a3b281a3ae0e872a15f94cc540300bf514d090",
   688  			seedSpanish:            "805b75dfa5021feb4212af6508364acb71bc26f3ae3e1b04d46997da276ffb3698b55986d20eaf26d60d8ab4a57fbebb6caed0d63cd68e5f2ce523880e5082df",
   689  		},
   690  		{
   691  			entropy:                "18a2e1d81b8ecfb2a333adcb0c17a5b9eb76cc5d05db91a4",
   692  			mnemEnglish:            "board blade invite damage undo sun mimic interest slam gaze truly inherit resist great inject rocket museum chief",
   693  			mnemChineseSimplified:  "常 直 顾 号 雅 雕 粗 乡 浙 阻 脆 呼 虎 渐 景 诚 吴 安",
   694  			mnemChineseTraditional: "常 直 顧 號 雅 雕 粗 鄉 浙 阻 脆 呼 虎 漸 景 誠 吳 安",
   695  			mnemItalian:            "ballata azzimo lusinga daniela trivella spillato obbligo lungo sereno governo tortora livrea rinuncia impacco lode rodaggio opposto cassone",
   696  			mnemJapanese:           "うりきれ うねる せっさたくま きもち めんきょ へいたく たまご ぜっく びじゅつかん さんそ むせる せいじ ねくたい しはらい せおう ねんど たんまつ がいけん",
   697  			mnemKorean:             "국립 구멍 스위치 마찰 하순 출근 여덟 스스로 지우개 산업 포함 수화기 저렇게 서양 숙소 절반 열차 노동",
   698  			mnemSpanish:            "avena atún jeringa comida tráfico sobre mente jaula ritmo gala tobillo íntimo poesía grano inútil probar molde calle",
   699  			seedEnglish:            "f84521c777a13b61564234bf8f8b62b3afce27fc4062b51bb5e62bdfecb23864ee6ecf07c1d5a97c0834307c5c852d8ceb88e7c97923c0a3b496bedd4e5f88a9",
   700  			seedChineseSimplified:  "ba4fc6c54ff8e226b9932394b8278d0a8cca13361a4e2feb33a2d77ece70915c26b430b4736d87db4f52c10a8abc0ad3bf9b93daf058fbbb44346acb765eb745",
   701  			seedChineseTraditional: "d63c03f4b9d417421724e458a93e486981f514e9114013cc7259711c47150d7977fa2afdf2e965d3b4540a594e0f001fd9fa7bcf70b674305fb7ef4762a8a077",
   702  			seedItalian:            "b317b7e1cd3bfe131bacf41eb596e6b68ec368484692163ed24c1c8db75391e3eeec4bc9f6acc540e30aa0c09015d320c0eba571951804945b9944c773e81d3d",
   703  			seedJapanese:           "6a6436f5a2353a9fc8f091d49bedc6f51ca23987dc32ea9798786a2d94191146f36604aecffd8494db8c5eac7e858e7e17e1e2eeae8b7dead483e02ea9c939a6",
   704  			seedKorean:             "1460fd60cf80eeb543d336d7ca1e272ddb9ccb78a5815274bc9074f7a0c3c858756144df9d2daacc60ea1c79dbb17d4eebea9af3afc2fd03c9a89444e55e89a8",
   705  			seedSpanish:            "82509727ea09696854191b68976f202411fcf6cfa26187bbf5bf3fe966f12fe2d13629ed71eafed0624db2a5b2214b80b3394c910d87801b7f6844b29c9e901d",
   706  		},
   707  		{
   708  			entropy:                "15da872c95a13dd738fbf50e427583ad61f18fd99f628c417a61cf8343c90419",
   709  			mnemEnglish:            "beyond stage sleep clip because twist token leaf atom beauty genius food business side grid unable middle armed observe pair crouch tonight away coconut",
   710  			mnemChineseSimplified:  "情 韩 貌 科 此 飘 杰 横 前 命 普 混 干 肩 欢 烷 愈 当 朗 柱 约 叙 与 温",
   711  			mnemChineseTraditional: "情 韓 貌 科 此 飄 傑 橫 前 命 普 混 幹 肩 歡 烷 愈 當 朗 柱 約 敘 與 溫",
   712  			mnemItalian:            "autista sogno serio chimera assurdo treccia tecnico microbo apertura assoluto grado gamma bordo scusare impiego trillo nuvola anarchia palude pettine criceto tendone ardito cittadino",
   713  			mnemJapanese:           "うちゅう ふそく ひしょ がちょう うけもつ めいそう みかん そざい いばる うけとる さんま さこつ おうさま ぱんつ しひょう めした たはつ いちぶ つうじょう てさぎょう きつね みすえる いりぐち かめれおん",
   714  			mnemKorean:             "교실 청년 지원 다양성 관람 필수 통화 실력 고등학생 관념 살림 비만 긍정적 중순 서적 하늘 여관 경쟁 온종일 원인 독립 트럭 공군 단추",
   715  			mnemSpanish:            "atajo secta rito carga asalto torpedo teléfono libro anual asado gallo flauta boa rescate gratis toser melón ameno náusea obvio clínica tender apuro caudal",
   716  			seedEnglish:            "b15509eaa2d09d3efd3e006ef42151b30367dc6e3aa5e44caba3fe4d3e352e65101fbdb86a96776b91946ff06f8eac594dc6ee1d3e82a42dfe1b40fef6bcc3fd",
   717  			seedChineseSimplified:  "01204593c1558eb4701c18c476c5fa27cd8076bd218a11d848a87417a7012b02404320b132f891c8ea9108a366a6ab383ce2958d9a426d1474a1fbdade6e9ce9",
   718  			seedChineseTraditional: "94fcad39535a29ef0b6024ff78c18933f721c285651d52d13e026ad91ae7608491d579da0c7dace3ea5b17aeb16d9c9e1ad8b9647c9bf3968441d775c15aaf51",
   719  			seedItalian:            "457df84d1553fded17969444f8cee1ccce9cf3306cd23d79f8c0c9025960688abca3e413eded27776de38208393efda567078809d5f67569a10e5ff0d9d7d6c2",
   720  			seedJapanese:           "37ff351d26601c20cab59aed72ba7cdff4bd485fdb70fc2bb25c96d6815ce6c506468cc3fc4bd233cd67affa04bd759c29d61ac3e18db0a4301ef28ef230e792",
   721  			seedKorean:             "59d50acbde7a5802b9c9136a24529cb7b65906656c1868c17a95e7fcd1ca6d8d84ed6e87d77eb6c4226e9313e36e53766b3a995408431bb87c77aeacea8a5606",
   722  			seedSpanish:            "9f99ae125b87b67703d85562f90a95c2f72066a3bc39e7b4578c7f79856949f3fd4acf976743b9be9cac0e2e1063e7bc86ca8ddffcc2b67efcc8b31d69adc067",
   723  		},
   724  	}
   725  }
   726  
   727  func TestEntropyFromMnemonic_128(t *testing.T) {
   728  	testEntropyFromMnemonic(t, 128)
   729  }
   730  
   731  func TestEntropyFromMnemonic_160(t *testing.T) {
   732  	testEntropyFromMnemonic(t, 160)
   733  }
   734  
   735  func TestEntropyFromMnemonic_192(t *testing.T) {
   736  	testEntropyFromMnemonic(t, 192)
   737  }
   738  
   739  func TestEntropyFromMnemonic_224(t *testing.T) {
   740  	testEntropyFromMnemonic(t, 224)
   741  }
   742  
   743  func TestEntropyFromMnemonic_256(t *testing.T) {
   744  	testEntropyFromMnemonic(t, 256)
   745  }
   746  
   747  func testEntropyFromMnemonic(t *testing.T, bitSize int) {
   748  	for i := 0; i < 512; i++ {
   749  		entropy, err := NewEntropy(bitSize)
   750  		assertNil(t, err)
   751  		assertTrue(t, len(entropy) != 0)
   752  
   753  		mnemonic, err := NewMnemonic(entropy, "en")
   754  		assertNil(t, err)
   755  		assertTrue(t, len(mnemonic) != 0)
   756  
   757  		outEntropy, err := EntropyFromMnemonic(mnemonic, "en")
   758  		assertNil(t, err)
   759  		assertEqualByteSlices(t, entropy, outEntropy)
   760  	}
   761  }