OSDN Git Service

new repo
[bytom/vapor.git] / wallet / mnemonic / mnemonic_test.go
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 }