Started working on mymonero seed support.
M committed
Sep 24, 2020 at 17:03 UTC
e4b5bcf07ef89262f71c64a6eb73c3bcd4421f36
1 file changed
+1689
lib/monero/mymonero.dart
new
+1689
@@ -0,0 +1,1689 @@
1
+const prefixLength = 3;
2
+
3
+String swapEndianBytes(String original) {
4
+ if (original.length != 8) {
5
+ return '';
6
+ }
7
+
8
+ return original[6] +
9
+ original[7] +
10
+ original[4] +
11
+ original[5] +
12
+ original[2] +
13
+ original[3] +
14
+ original[0] +
15
+ original[1];
16
+}
17
+
18
+List<String> tructWords(List<String> wordSet) {
19
+ final start = 0;
20
+ final end = prefixLength;
21
+
22
+ return wordSet.map((word) => word.substring(start, end)).toList();
23
+}
24
+
25
+String mnemonicDecode(String seed) {
26
+ final n = englistWordSet.length;
27
+ var out = '';
28
+ var wlist = seed.split(' ');
29
+ wlist.removeLast();
30
+
31
+ for (var i = 0; i < wlist.length; i += 3) {
32
+ final w1 =
33
+ tructWords(englistWordSet).indexOf(wlist[i].substring(0, prefixLength));
34
+ final w2 = tructWords(englistWordSet)
35
+ .indexOf(wlist[i + 1].substring(0, prefixLength));
36
+ final w3 = tructWords(englistWordSet)
37
+ .indexOf(wlist[i + 2].substring(0, prefixLength));
38
+
39
+ if (w1 == -1 || w2 == -1 || w3 == -1) {
40
+ print("invalid word in mnemonic");
41
+ return '';
42
+ }
43
+
44
+ final x = w1 + n * (((n - w1) + w2) % n) + n * n * (((n - w2) + w3) % n);
45
+
46
+ if (x % n != w1) {
47
+ print("Something went wrong when decoding your private key, please try again");
48
+ return '';
49
+ }
50
+
51
+ final _res = '0000000' + x.toRadixString(16);
52
+ final start = _res.length - 8;
53
+ final end = _res.length;
54
+ final res = _res.substring(start, end);
55
+
56
+ out += swapEndianBytes(res);
57
+ }
58
+
59
+ return out;
60
+}
61
+
62
+final englistWordSet = [
63
+ "abbey",
64
+ "abducts",
65
+ "ability",
66
+ "ablaze",
67
+ "abnormal",
68
+ "abort",
69
+ "abrasive",
70
+ "absorb",
71
+ "abyss",
72
+ "academy",
73
+ "aces",
74
+ "aching",
75
+ "acidic",
76
+ "acoustic",
77
+ "acquire",
78
+ "across",
79
+ "actress",
80
+ "acumen",
81
+ "adapt",
82
+ "addicted",
83
+ "adept",
84
+ "adhesive",
85
+ "adjust",
86
+ "adopt",
87
+ "adrenalin",
88
+ "adult",
89
+ "adventure",
90
+ "aerial",
91
+ "afar",
92
+ "affair",
93
+ "afield",
94
+ "afloat",
95
+ "afoot",
96
+ "afraid",
97
+ "after",
98
+ "against",
99
+ "agenda",
100
+ "aggravate",
101
+ "agile",
102
+ "aglow",
103
+ "agnostic",
104
+ "agony",
105
+ "agreed",
106
+ "ahead",
107
+ "aided",
108
+ "ailments",
109
+ "aimless",
110
+ "airport",
111
+ "aisle",
112
+ "ajar",
113
+ "akin",
114
+ "alarms",
115
+ "album",
116
+ "alchemy",
117
+ "alerts",
118
+ "algebra",
119
+ "alkaline",
120
+ "alley",
121
+ "almost",
122
+ "aloof",
123
+ "alpine",
124
+ "already",
125
+ "also",
126
+ "altitude",
127
+ "alumni",
128
+ "always",
129
+ "amaze",
130
+ "ambush",
131
+ "amended",
132
+ "amidst",
133
+ "ammo",
134
+ "amnesty",
135
+ "among",
136
+ "amply",
137
+ "amused",
138
+ "anchor",
139
+ "android",
140
+ "anecdote",
141
+ "angled",
142
+ "ankle",
143
+ "annoyed",
144
+ "answers",
145
+ "antics",
146
+ "anvil",
147
+ "anxiety",
148
+ "anybody",
149
+ "apart",
150
+ "apex",
151
+ "aphid",
152
+ "aplomb",
153
+ "apology",
154
+ "apply",
155
+ "apricot",
156
+ "aptitude",
157
+ "aquarium",
158
+ "arbitrary",
159
+ "archer",
160
+ "ardent",
161
+ "arena",
162
+ "argue",
163
+ "arises",
164
+ "army",
165
+ "around",
166
+ "arrow",
167
+ "arsenic",
168
+ "artistic",
169
+ "ascend",
170
+ "ashtray",
171
+ "aside",
172
+ "asked",
173
+ "asleep",
174
+ "aspire",
175
+ "assorted",
176
+ "asylum",
177
+ "athlete",
178
+ "atlas",
179
+ "atom",
180
+ "atrium",
181
+ "attire",
182
+ "auburn",
183
+ "auctions",
184
+ "audio",
185
+ "august",
186
+ "aunt",
187
+ "austere",
188
+ "autumn",
189
+ "avatar",
190
+ "avidly",
191
+ "avoid",
192
+ "awakened",
193
+ "awesome",
194
+ "awful",
195
+ "awkward",
196
+ "awning",
197
+ "awoken",
198
+ "axes",
199
+ "axis",
200
+ "axle",
201
+ "aztec",
202
+ "azure",
203
+ "baby",
204
+ "bacon",
205
+ "badge",
206
+ "baffles",
207
+ "bagpipe",
208
+ "bailed",
209
+ "bakery",
210
+ "balding",
211
+ "bamboo",
212
+ "banjo",
213
+ "baptism",
214
+ "basin",
215
+ "batch",
216
+ "bawled",
217
+ "bays",
218
+ "because",
219
+ "beer",
220
+ "befit",
221
+ "begun",
222
+ "behind",
223
+ "being",
224
+ "below",
225
+ "bemused",
226
+ "benches",
227
+ "berries",
228
+ "bested",
229
+ "betting",
230
+ "bevel",
231
+ "beware",
232
+ "beyond",
233
+ "bias",
234
+ "bicycle",
235
+ "bids",
236
+ "bifocals",
237
+ "biggest",
238
+ "bikini",
239
+ "bimonthly",
240
+ "binocular",
241
+ "biology",
242
+ "biplane",
243
+ "birth",
244
+ "biscuit",
245
+ "bite",
246
+ "biweekly",
247
+ "blender",
248
+ "blip",
249
+ "bluntly",
250
+ "boat",
251
+ "bobsled",
252
+ "bodies",
253
+ "bogeys",
254
+ "boil",
255
+ "boldly",
256
+ "bomb",
257
+ "border",
258
+ "boss",
259
+ "both",
260
+ "bounced",
261
+ "bovine",
262
+ "bowling",
263
+ "boxes",
264
+ "boyfriend",
265
+ "broken",
266
+ "brunt",
267
+ "bubble",
268
+ "buckets",
269
+ "budget",
270
+ "buffet",
271
+ "bugs",
272
+ "building",
273
+ "bulb",
274
+ "bumper",
275
+ "bunch",
276
+ "business",
277
+ "butter",
278
+ "buying",
279
+ "buzzer",
280
+ "bygones",
281
+ "byline",
282
+ "bypass",
283
+ "cabin",
284
+ "cactus",
285
+ "cadets",
286
+ "cafe",
287
+ "cage",
288
+ "cajun",
289
+ "cake",
290
+ "calamity",
291
+ "camp",
292
+ "candy",
293
+ "casket",
294
+ "catch",
295
+ "cause",
296
+ "cavernous",
297
+ "cease",
298
+ "cedar",
299
+ "ceiling",
300
+ "cell",
301
+ "cement",
302
+ "cent",
303
+ "certain",
304
+ "chlorine",
305
+ "chrome",
306
+ "cider",
307
+ "cigar",
308
+ "cinema",
309
+ "circle",
310
+ "cistern",
311
+ "citadel",
312
+ "civilian",
313
+ "claim",
314
+ "click",
315
+ "clue",
316
+ "coal",
317
+ "cobra",
318
+ "cocoa",
319
+ "code",
320
+ "coexist",
321
+ "coffee",
322
+ "cogs",
323
+ "cohesive",
324
+ "coils",
325
+ "colony",
326
+ "comb",
327
+ "cool",
328
+ "copy",
329
+ "corrode",
330
+ "costume",
331
+ "cottage",
332
+ "cousin",
333
+ "cowl",
334
+ "criminal",
335
+ "cube",
336
+ "cucumber",
337
+ "cuddled",
338
+ "cuffs",
339
+ "cuisine",
340
+ "cunning",
341
+ "cupcake",
342
+ "custom",
343
+ "cycling",
344
+ "cylinder",
345
+ "cynical",
346
+ "dabbing",
347
+ "dads",
348
+ "daft",
349
+ "dagger",
350
+ "daily",
351
+ "damp",
352
+ "dangerous",
353
+ "dapper",
354
+ "darted",
355
+ "dash",
356
+ "dating",
357
+ "dauntless",
358
+ "dawn",
359
+ "daytime",
360
+ "dazed",
361
+ "debut",
362
+ "decay",
363
+ "dedicated",
364
+ "deepest",
365
+ "deftly",
366
+ "degrees",
367
+ "dehydrate",
368
+ "deity",
369
+ "dejected",
370
+ "delayed",
371
+ "demonstrate",
372
+ "dented",
373
+ "deodorant",
374
+ "depth",
375
+ "desk",
376
+ "devoid",
377
+ "dewdrop",
378
+ "dexterity",
379
+ "dialect",
380
+ "dice",
381
+ "diet",
382
+ "different",
383
+ "digit",
384
+ "dilute",
385
+ "dime",
386
+ "dinner",
387
+ "diode",
388
+ "diplomat",
389
+ "directed",
390
+ "distance",
391
+ "ditch",
392
+ "divers",
393
+ "dizzy",
394
+ "doctor",
395
+ "dodge",
396
+ "does",
397
+ "dogs",
398
+ "doing",
399
+ "dolphin",
400
+ "domestic",
401
+ "donuts",
402
+ "doorway",
403
+ "dormant",
404
+ "dosage",
405
+ "dotted",
406
+ "double",
407
+ "dove",
408
+ "down",
409
+ "dozen",
410
+ "dreams",
411
+ "drinks",
412
+ "drowning",
413
+ "drunk",
414
+ "drying",
415
+ "dual",
416
+ "dubbed",
417
+ "duckling",
418
+ "dude",
419
+ "duets",
420
+ "duke",
421
+ "dullness",
422
+ "dummy",
423
+ "dunes",
424
+ "duplex",
425
+ "duration",
426
+ "dusted",
427
+ "duties",
428
+ "dwarf",
429
+ "dwelt",
430
+ "dwindling",
431
+ "dying",
432
+ "dynamite",
433
+ "dyslexic",
434
+ "each",
435
+ "eagle",
436
+ "earth",
437
+ "easy",
438
+ "eating",
439
+ "eavesdrop",
440
+ "eccentric",
441
+ "echo",
442
+ "eclipse",
443
+ "economics",
444
+ "ecstatic",
445
+ "eden",
446
+ "edgy",
447
+ "edited",
448
+ "educated",
449
+ "eels",
450
+ "efficient",
451
+ "eggs",
452
+ "egotistic",
453
+ "eight",
454
+ "either",
455
+ "eject",
456
+ "elapse",
457
+ "elbow",
458
+ "eldest",
459
+ "eleven",
460
+ "elite",
461
+ "elope",
462
+ "else",
463
+ "eluded",
464
+ "emails",
465
+ "ember",
466
+ "emerge",
467
+ "emit",
468
+ "emotion",
469
+ "empty",
470
+ "emulate",
471
+ "energy",
472
+ "enforce",
473
+ "enhanced",
474
+ "enigma",
475
+ "enjoy",
476
+ "enlist",
477
+ "enmity",
478
+ "enough",
479
+ "enraged",
480
+ "ensign",
481
+ "entrance",
482
+ "envy",
483
+ "epoxy",
484
+ "equip",
485
+ "erase",
486
+ "erected",
487
+ "erosion",
488
+ "error",
489
+ "eskimos",
490
+ "espionage",
491
+ "essential",
492
+ "estate",
493
+ "etched",
494
+ "eternal",
495
+ "ethics",
496
+ "etiquette",
497
+ "evaluate",
498
+ "evenings",
499
+ "evicted",
500
+ "evolved",
501
+ "examine",
502
+ "excess",
503
+ "exhale",
504
+ "exit",
505
+ "exotic",
506
+ "exquisite",
507
+ "extra",
508
+ "exult",
509
+ "fabrics",
510
+ "factual",
511
+ "fading",
512
+ "fainted",
513
+ "faked",
514
+ "fall",
515
+ "family",
516
+ "fancy",
517
+ "farming",
518
+ "fatal",
519
+ "faulty",
520
+ "fawns",
521
+ "faxed",
522
+ "fazed",
523
+ "feast",
524
+ "february",
525
+ "federal",
526
+ "feel",
527
+ "feline",
528
+ "females",
529
+ "fences",
530
+ "ferry",
531
+ "festival",
532
+ "fetches",
533
+ "fever",
534
+ "fewest",
535
+ "fiat",
536
+ "fibula",
537
+ "fictional",
538
+ "fidget",
539
+ "fierce",
540
+ "fifteen",
541
+ "fight",
542
+ "films",
543
+ "firm",
544
+ "fishing",
545
+ "fitting",
546
+ "five",
547
+ "fixate",
548
+ "fizzle",
549
+ "fleet",
550
+ "flippant",
551
+ "flying",
552
+ "foamy",
553
+ "focus",
554
+ "foes",
555
+ "foggy",
556
+ "foiled",
557
+ "folding",
558
+ "fonts",
559
+ "foolish",
560
+ "fossil",
561
+ "fountain",
562
+ "fowls",
563
+ "foxes",
564
+ "foyer",
565
+ "framed",
566
+ "friendly",
567
+ "frown",
568
+ "fruit",
569
+ "frying",
570
+ "fudge",
571
+ "fuel",
572
+ "fugitive",
573
+ "fully",
574
+ "fuming",
575
+ "fungal",
576
+ "furnished",
577
+ "fuselage",
578
+ "future",
579
+ "fuzzy",
580
+ "gables",
581
+ "gadget",
582
+ "gags",
583
+ "gained",
584
+ "galaxy",
585
+ "gambit",
586
+ "gang",
587
+ "gasp",
588
+ "gather",
589
+ "gauze",
590
+ "gave",
591
+ "gawk",
592
+ "gaze",
593
+ "gearbox",
594
+ "gecko",
595
+ "geek",
596
+ "gels",
597
+ "gemstone",
598
+ "general",
599
+ "geometry",
600
+ "germs",
601
+ "gesture",
602
+ "getting",
603
+ "geyser",
604
+ "ghetto",
605
+ "ghost",
606
+ "giant",
607
+ "giddy",
608
+ "gifts",
609
+ "gigantic",
610
+ "gills",
611
+ "gimmick",
612
+ "ginger",
613
+ "girth",
614
+ "giving",
615
+ "glass",
616
+ "gleeful",
617
+ "glide",
618
+ "gnaw",
619
+ "gnome",
620
+ "goat",
621
+ "goblet",
622
+ "godfather",
623
+ "goes",
624
+ "goggles",
625
+ "going",
626
+ "goldfish",
627
+ "gone",
628
+ "goodbye",
629
+ "gopher",
630
+ "gorilla",
631
+ "gossip",
632
+ "gotten",
633
+ "gourmet",
634
+ "governing",
635
+ "gown",
636
+ "greater",
637
+ "grunt",
638
+ "guarded",
639
+ "guest",
640
+ "guide",
641
+ "gulp",
642
+ "gumball",
643
+ "guru",
644
+ "gusts",
645
+ "gutter",
646
+ "guys",
647
+ "gymnast",
648
+ "gypsy",
649
+ "gyrate",
650
+ "habitat",
651
+ "hacksaw",
652
+ "haggled",
653
+ "hairy",
654
+ "hamburger",
655
+ "happens",
656
+ "hashing",
657
+ "hatchet",
658
+ "haunted",
659
+ "having",
660
+ "hawk",
661
+ "haystack",
662
+ "hazard",
663
+ "hectare",
664
+ "hedgehog",
665
+ "heels",
666
+ "hefty",
667
+ "height",
668
+ "hemlock",
669
+ "hence",
670
+ "heron",
671
+ "hesitate",
672
+ "hexagon",
673
+ "hickory",
674
+ "hiding",
675
+ "highway",
676
+ "hijack",
677
+ "hiker",
678
+ "hills",
679
+ "himself",
680
+ "hinder",
681
+ "hippo",
682
+ "hire",
683
+ "history",
684
+ "hitched",
685
+ "hive",
686
+ "hoax",
687
+ "hobby",
688
+ "hockey",
689
+ "hoisting",
690
+ "hold",
691
+ "honked",
692
+ "hookup",
693
+ "hope",
694
+ "hornet",
695
+ "hospital",
696
+ "hotel",
697
+ "hounded",
698
+ "hover",
699
+ "howls",
700
+ "hubcaps",
701
+ "huddle",
702
+ "huge",
703
+ "hull",
704
+ "humid",
705
+ "hunter",
706
+ "hurried",
707
+ "husband",
708
+ "huts",
709
+ "hybrid",
710
+ "hydrogen",
711
+ "hyper",
712
+ "iceberg",
713
+ "icing",
714
+ "icon",
715
+ "identity",
716
+ "idiom",
717
+ "idled",
718
+ "idols",
719
+ "igloo",
720
+ "ignore",
721
+ "iguana",
722
+ "illness",
723
+ "imagine",
724
+ "imbalance",
725
+ "imitate",
726
+ "impel",
727
+ "inactive",
728
+ "inbound",
729
+ "incur",
730
+ "industrial",
731
+ "inexact",
732
+ "inflamed",
733
+ "ingested",
734
+ "initiate",
735
+ "injury",
736
+ "inkling",
737
+ "inline",
738
+ "inmate",
739
+ "innocent",
740
+ "inorganic",
741
+ "input",
742
+ "inquest",
743
+ "inroads",
744
+ "insult",
745
+ "intended",
746
+ "inundate",
747
+ "invoke",
748
+ "inwardly",
749
+ "ionic",
750
+ "irate",
751
+ "iris",
752
+ "irony",
753
+ "irritate",
754
+ "island",
755
+ "isolated",
756
+ "issued",
757
+ "italics",
758
+ "itches",
759
+ "items",
760
+ "itinerary",
761
+ "itself",
762
+ "ivory",
763
+ "jabbed",
764
+ "jackets",
765
+ "jaded",
766
+ "jagged",
767
+ "jailed",
768
+ "jamming",
769
+ "january",
770
+ "jargon",
771
+ "jaunt",
772
+ "javelin",
773
+ "jaws",
774
+ "jazz",
775
+ "jeans",
776
+ "jeers",
777
+ "jellyfish",
778
+ "jeopardy",
779
+ "jerseys",
780
+ "jester",
781
+ "jetting",
782
+ "jewels",
783
+ "jigsaw",
784
+ "jingle",
785
+ "jittery",
786
+ "jive",
787
+ "jobs",
788
+ "jockey",
789
+ "jogger",
790
+ "joining",
791
+ "joking",
792
+ "jolted",
793
+ "jostle",
794
+ "journal",
795
+ "joyous",
796
+ "jubilee",
797
+ "judge",
798
+ "juggled",
799
+ "juicy",
800
+ "jukebox",
801
+ "july",
802
+ "jump",
803
+ "junk",
804
+ "jury",
805
+ "justice",
806
+ "juvenile",
807
+ "kangaroo",
808
+ "karate",
809
+ "keep",
810
+ "kennel",
811
+ "kept",
812
+ "kernels",
813
+ "kettle",
814
+ "keyboard",
815
+ "kickoff",
816
+ "kidneys",
817
+ "king",
818
+ "kiosk",
819
+ "kisses",
820
+ "kitchens",
821
+ "kiwi",
822
+ "knapsack",
823
+ "knee",
824
+ "knife",
825
+ "knowledge",
826
+ "knuckle",
827
+ "koala",
828
+ "laboratory",
829
+ "ladder",
830
+ "lagoon",
831
+ "lair",
832
+ "lakes",
833
+ "lamb",
834
+ "language",
835
+ "laptop",
836
+ "large",
837
+ "last",
838
+ "later",
839
+ "launching",
840
+ "lava",
841
+ "lawsuit",
842
+ "layout",
843
+ "lazy",
844
+ "lectures",
845
+ "ledge",
846
+ "leech",
847
+ "left",
848
+ "legion",
849
+ "leisure",
850
+ "lemon",
851
+ "lending",
852
+ "leopard",
853
+ "lesson",
854
+ "lettuce",
855
+ "lexicon",
856
+ "liar",
857
+ "library",
858
+ "licks",
859
+ "lids",
860
+ "lied",
861
+ "lifestyle",
862
+ "light",
863
+ "likewise",
864
+ "lilac",
865
+ "limits",
866
+ "linen",
867
+ "lion",
868
+ "lipstick",
869
+ "liquid",
870
+ "listen",
871
+ "lively",
872
+ "loaded",
873
+ "lobster",
874
+ "locker",
875
+ "lodge",
876
+ "lofty",
877
+ "logic",
878
+ "loincloth",
879
+ "long",
880
+ "looking",
881
+ "lopped",
882
+ "lordship",
883
+ "losing",
884
+ "lottery",
885
+ "loudly",
886
+ "love",
887
+ "lower",
888
+ "loyal",
889
+ "lucky",
890
+ "luggage",
891
+ "lukewarm",
892
+ "lullaby",
893
+ "lumber",
894
+ "lunar",
895
+ "lurk",
896
+ "lush",
897
+ "luxury",
898
+ "lymph",
899
+ "lynx",
900
+ "lyrics",
901
+ "macro",
902
+ "madness",
903
+ "magically",
904
+ "mailed",
905
+ "major",
906
+ "makeup",
907
+ "malady",
908
+ "mammal",
909
+ "maps",
910
+ "masterful",
911
+ "match",
912
+ "maul",
913
+ "maverick",
914
+ "maximum",
915
+ "mayor",
916
+ "maze",
917
+ "meant",
918
+ "mechanic",
919
+ "medicate",
920
+ "meeting",
921
+ "megabyte",
922
+ "melting",
923
+ "memoir",
924
+ "menu",
925
+ "merger",
926
+ "mesh",
927
+ "metro",
928
+ "mews",
929
+ "mice",
930
+ "midst",
931
+ "mighty",
932
+ "mime",
933
+ "mirror",
934
+ "misery",
935
+ "mittens",
936
+ "mixture",
937
+ "moat",
938
+ "mobile",
939
+ "mocked",
940
+ "mohawk",
941
+ "moisture",
942
+ "molten",
943
+ "moment",
944
+ "money",
945
+ "moon",
946
+ "mops",
947
+ "morsel",
948
+ "mostly",
949
+ "motherly",
950
+ "mouth",
951
+ "movement",
952
+ "mowing",
953
+ "much",
954
+ "muddy",
955
+ "muffin",
956
+ "mugged",
957
+ "mullet",
958
+ "mumble",
959
+ "mundane",
960
+ "muppet",
961
+ "mural",
962
+ "musical",
963
+ "muzzle",
964
+ "myriad",
965
+ "mystery",
966
+ "myth",
967
+ "nabbing",
968
+ "nagged",
969
+ "nail",
970
+ "names",
971
+ "nanny",
972
+ "napkin",
973
+ "narrate",
974
+ "nasty",
975
+ "natural",
976
+ "nautical",
977
+ "navy",
978
+ "nearby",
979
+ "necklace",
980
+ "needed",
981
+ "negative",
982
+ "neither",
983
+ "neon",
984
+ "nephew",
985
+ "nerves",
986
+ "nestle",
987
+ "network",
988
+ "neutral",
989
+ "never",
990
+ "newt",
991
+ "nexus",
992
+ "nibs",
993
+ "niche",
994
+ "niece",
995
+ "nifty",
996
+ "nightly",
997
+ "nimbly",
998
+ "nineteen",
999
+ "nirvana",
1000
+ "nitrogen",
1001
+ "nobody",
1002
+ "nocturnal",
1003
+ "nodes",
1004
+ "noises",
1005
+ "nomad",
1006
+ "noodles",
1007
+ "northern",
1008
+ "nostril",
1009
+ "noted",
1010
+ "nouns",
1011
+ "novelty",
1012
+ "nowhere",
1013
+ "nozzle",
1014
+ "nuance",
1015
+ "nucleus",
1016
+ "nudged",
1017
+ "nugget",
1018
+ "nuisance",
1019
+ "null",
1020
+ "number",
1021
+ "nuns",
1022
+ "nurse",
1023
+ "nutshell",
1024
+ "nylon",
1025
+ "oaks",
1026
+ "oars",
1027
+ "oasis",
1028
+ "oatmeal",
1029
+ "obedient",
1030
+ "object",
1031
+ "obliged",
1032
+ "obnoxious",
1033
+ "observant",
1034
+ "obtains",
1035
+ "obvious",
1036
+ "occur",
1037
+ "ocean",
1038
+ "october",
1039
+ "odds",
1040
+ "odometer",
1041
+ "offend",
1042
+ "often",
1043
+ "oilfield",
1044
+ "ointment",
1045
+ "okay",
1046
+ "older",
1047
+ "olive",
1048
+ "olympics",
1049
+ "omega",
1050
+ "omission",
1051
+ "omnibus",
1052
+ "onboard",
1053
+ "oncoming",
1054
+ "oneself",
1055
+ "ongoing",
1056
+ "onion",
1057
+ "online",
1058
+ "onslaught",
1059
+ "onto",
1060
+ "onward",
1061
+ "oozed",
1062
+ "opacity",
1063
+ "opened",
1064
+ "opposite",
1065
+ "optical",
1066
+ "opus",
1067
+ "orange",
1068
+ "orbit",
1069
+ "orchid",
1070
+ "orders",
1071
+ "organs",
1072
+ "origin",
1073
+ "ornament",
1074
+ "orphans",
1075
+ "oscar",
1076
+ "ostrich",
1077
+ "otherwise",
1078
+ "otter",
1079
+ "ouch",
1080
+ "ought",
1081
+ "ounce",
1082
+ "ourselves",
1083
+ "oust",
1084
+ "outbreak",
1085
+ "oval",
1086
+ "oven",
1087
+ "owed",
1088
+ "owls",
1089
+ "owner",
1090
+ "oxidant",
1091
+ "oxygen",
1092
+ "oyster",
1093
+ "ozone",
1094
+ "pact",
1095
+ "paddles",
1096
+ "pager",
1097
+ "pairing",
1098
+ "palace",
1099
+ "pamphlet",
1100
+ "pancakes",
1101
+ "paper",
1102
+ "paradise",
1103
+ "pastry",
1104
+ "patio",
1105
+ "pause",
1106
+ "pavements",
1107
+ "pawnshop",
1108
+ "payment",
1109
+ "peaches",
1110
+ "pebbles",
1111
+ "peculiar",
1112
+ "pedantic",
1113
+ "peeled",
1114
+ "pegs",
1115
+ "pelican",
1116
+ "pencil",
1117
+ "people",
1118
+ "pepper",
1119
+ "perfect",
1120
+ "pests",
1121
+ "petals",
1122
+ "phase",
1123
+ "pheasants",
1124
+ "phone",
1125
+ "phrases",
1126
+ "physics",
1127
+ "piano",
1128
+ "picked",
1129
+ "pierce",
1130
+ "pigment",
1131
+ "piloted",
1132
+ "pimple",
1133
+ "pinched",
1134
+ "pioneer",
1135
+ "pipeline",
1136
+ "pirate",
1137
+ "pistons",
1138
+ "pitched",
1139
+ "pivot",
1140
+ "pixels",
1141
+ "pizza",
1142
+ "playful",
1143
+ "pledge",
1144
+ "pliers",
1145
+ "plotting",
1146
+ "plus",
1147
+ "plywood",
1148
+ "poaching",
1149
+ "pockets",
1150
+ "podcast",
1151
+ "poetry",
1152
+ "point",
1153
+ "poker",
1154
+ "polar",
1155
+ "ponies",
1156
+ "pool",
1157
+ "popular",
1158
+ "portents",
1159
+ "possible",
1160
+ "potato",
1161
+ "pouch",
1162
+ "poverty",
1163
+ "powder",
1164
+ "pram",
1165
+ "present",
1166
+ "pride",
1167
+ "problems",
1168
+ "pruned",
1169
+ "prying",
1170
+ "psychic",
1171
+ "public",
1172
+ "puck",
1173
+ "puddle",
1174
+ "puffin",
1175
+ "pulp",
1176
+ "pumpkins",
1177
+ "punch",
1178
+ "puppy",
1179
+ "purged",
1180
+ "push",
1181
+ "putty",
1182
+ "puzzled",
1183
+ "pylons",
1184
+ "pyramid",
1185
+ "python",
1186
+ "queen",
1187
+ "quick",
1188
+ "quote",
1189
+ "rabbits",
1190
+ "racetrack",
1191
+ "radar",
1192
+ "rafts",
1193
+ "rage",
1194
+ "railway",
1195
+ "raking",
1196
+ "rally",
1197
+ "ramped",
1198
+ "randomly",
1199
+ "rapid",
1200
+ "rarest",
1201
+ "rash",
1202
+ "rated",
1203
+ "ravine",
1204
+ "rays",
1205
+ "razor",
1206
+ "react",
1207
+ "rebel",
1208
+ "recipe",
1209
+ "reduce",
1210
+ "reef",
1211
+ "refer",
1212
+ "regular",
1213
+ "reheat",
1214
+ "reinvest",
1215
+ "rejoices",
1216
+ "rekindle",
1217
+ "relic",
1218
+ "remedy",
1219
+ "renting",
1220
+ "reorder",
1221
+ "repent",
1222
+ "request",
1223
+ "reruns",
1224
+ "rest",
1225
+ "return",
1226
+ "reunion",
1227
+ "revamp",
1228
+ "rewind",
1229
+ "rhino",
1230
+ "rhythm",
1231
+ "ribbon",
1232
+ "richly",
1233
+ "ridges",
1234
+ "rift",
1235
+ "rigid",
1236
+ "rims",
1237
+ "ringing",
1238
+ "riots",
1239
+ "ripped",
1240
+ "rising",
1241
+ "ritual",
1242
+ "river",
1243
+ "roared",
1244
+ "robot",
1245
+ "rockets",
1246
+ "rodent",
1247
+ "rogue",
1248
+ "roles",
1249
+ "romance",
1250
+ "roomy",
1251
+ "roped",
1252
+ "roster",
1253
+ "rotate",
1254
+ "rounded",
1255
+ "rover",
1256
+ "rowboat",
1257
+ "royal",
1258
+ "ruby",
1259
+ "rudely",
1260
+ "ruffled",
1261
+ "rugged",
1262
+ "ruined",
1263
+ "ruling",
1264
+ "rumble",
1265
+ "runway",
1266
+ "rural",
1267
+ "rustled",
1268
+ "ruthless",
1269
+ "sabotage",
1270
+ "sack",
1271
+ "sadness",
1272
+ "safety",
1273
+ "saga",
1274
+ "sailor",
1275
+ "sake",
1276
+ "salads",
1277
+ "sample",
1278
+ "sanity",
1279
+ "sapling",
1280
+ "sarcasm",
1281
+ "sash",
1282
+ "satin",
1283
+ "saucepan",
1284
+ "saved",
1285
+ "sawmill",
1286
+ "saxophone",
1287
+ "sayings",
1288
+ "scamper",
1289
+ "scenic",
1290
+ "school",
1291
+ "science",
1292
+ "scoop",
1293
+ "scrub",
1294
+ "scuba",
1295
+ "seasons",
1296
+ "second",
1297
+ "sedan",
1298
+ "seeded",
1299
+ "segments",
1300
+ "seismic",
1301
+ "selfish",
1302
+ "semifinal",
1303
+ "sensible",
1304
+ "september",
1305
+ "sequence",
1306
+ "serving",
1307
+ "session",
1308
+ "setup",
1309
+ "seventh",
1310
+ "sewage",
1311
+ "shackles",
1312
+ "shelter",
1313
+ "shipped",
1314
+ "shocking",
1315
+ "shrugged",
1316
+ "shuffled",
1317
+ "shyness",
1318
+ "siblings",
1319
+ "sickness",
1320
+ "sidekick",
1321
+ "sieve",
1322
+ "sifting",
1323
+ "sighting",
1324
+ "silk",
1325
+ "simplest",
1326
+ "sincerely",
1327
+ "sipped",
1328
+ "siren",
1329
+ "situated",
1330
+ "sixteen",
1331
+ "sizes",
1332
+ "skater",
1333
+ "skew",
1334
+ "skirting",
1335
+ "skulls",
1336
+ "skydive",
1337
+ "slackens",
1338
+ "sleepless",
1339
+ "slid",
1340
+ "slower",
1341
+ "slug",
1342
+ "smash",
1343
+ "smelting",
1344
+ "smidgen",
1345
+ "smog",
1346
+ "smuggled",
1347
+ "snake",
1348
+ "sneeze",
1349
+ "sniff",
1350
+ "snout",
1351
+ "snug",
1352
+ "soapy",
1353
+ "sober",
1354
+ "soccer",
1355
+ "soda",
1356
+ "software",
1357
+ "soggy",
1358
+ "soil",
1359
+ "solved",
1360
+ "somewhere",
1361
+ "sonic",
1362
+ "soothe",
1363
+ "soprano",
1364
+ "sorry",
1365
+ "southern",
1366
+ "sovereign",
1367
+ "sowed",
1368
+ "soya",
1369
+ "space",
1370
+ "speedy",
1371
+ "sphere",
1372
+ "spiders",
1373
+ "splendid",
1374
+ "spout",
1375
+ "sprig",
1376
+ "spud",
1377
+ "spying",
1378
+ "square",
1379
+ "stacking",
1380
+ "stellar",
1381
+ "stick",
1382
+ "stockpile",
1383
+ "strained",
1384
+ "stunning",
1385
+ "stylishly",
1386
+ "subtly",
1387
+ "succeed",
1388
+ "suddenly",
1389
+ "suede",
1390
+ "suffice",
1391
+ "sugar",
1392
+ "suitcase",
1393
+ "sulking",
1394
+ "summon",
1395
+ "sunken",
1396
+ "superior",
1397
+ "surfer",
1398
+ "sushi",
1399
+ "suture",
1400
+ "swagger",
1401
+ "swept",
1402
+ "swiftly",
1403
+ "sword",
1404
+ "swung",
1405
+ "syllabus",
1406
+ "symptoms",
1407
+ "syndrome",
1408
+ "syringe",
1409
+ "system",
1410
+ "taboo",
1411
+ "tacit",
1412
+ "tadpoles",
1413
+ "tagged",
1414
+ "tail",
1415
+ "taken",
1416
+ "talent",
1417
+ "tamper",
1418
+ "tanks",
1419
+ "tapestry",
1420
+ "tarnished",
1421
+ "tasked",
1422
+ "tattoo",
1423
+ "taunts",
1424
+ "tavern",
1425
+ "tawny",
1426
+ "taxi",
1427
+ "teardrop",
1428
+ "technical",
1429
+ "tedious",
1430
+ "teeming",
1431
+ "tell",
1432
+ "template",
1433
+ "tender",
1434
+ "tepid",
1435
+ "tequila",
1436
+ "terminal",
1437
+ "testing",
1438
+ "tether",
1439
+ "textbook",
1440
+ "thaw",
1441
+ "theatrics",
1442
+ "thirsty",
1443
+ "thorn",
1444
+ "threaten",
1445
+ "thumbs",
1446
+ "thwart",
1447
+ "ticket",
1448
+ "tidy",
1449
+ "tiers",
1450
+ "tiger",
1451
+ "tilt",
1452
+ "timber",
1453
+ "tinted",
1454
+ "tipsy",
1455
+ "tirade",
1456
+ "tissue",
1457
+ "titans",
1458
+ "toaster",
1459
+ "tobacco",
1460
+ "today",
1461
+ "toenail",
1462
+ "toffee",
1463
+ "together",
1464
+ "toilet",
1465
+ "token",
1466
+ "tolerant",
1467
+ "tomorrow",
1468
+ "tonic",
1469
+ "toolbox",
1470
+ "topic",
1471
+ "torch",
1472
+ "tossed",
1473
+ "total",
1474
+ "touchy",
1475
+ "towel",
1476
+ "toxic",
1477
+ "toyed",
1478
+ "trash",
1479
+ "trendy",
1480
+ "tribal",
1481
+ "trolling",
1482
+ "truth",
1483
+ "trying",
1484
+ "tsunami",
1485
+ "tubes",
1486
+ "tucks",
1487
+ "tudor",
1488
+ "tuesday",
1489
+ "tufts",
1490
+ "tugs",
1491
+ "tuition",
1492
+ "tulips",
1493
+ "tumbling",
1494
+ "tunnel",
1495
+ "turnip",
1496
+ "tusks",
1497
+ "tutor",
1498
+ "tuxedo",
1499
+ "twang",
1500
+ "tweezers",
1501
+ "twice",
1502
+ "twofold",
1503
+ "tycoon",
1504
+ "typist",
1505
+ "tyrant",
1506
+ "ugly",
1507
+ "ulcers",
1508
+ "ultimate",
1509
+ "umbrella",
1510
+ "umpire",
1511
+ "unafraid",
1512
+ "unbending",
1513
+ "uncle",
1514
+ "under",
1515
+ "uneven",
1516
+ "unfit",
1517
+ "ungainly",
1518
+ "unhappy",
1519
+ "union",
1520
+ "unjustly",
1521
+ "unknown",
1522
+ "unlikely",
1523
+ "unmask",
1524
+ "unnoticed",
1525
+ "unopened",
1526
+ "unplugs",
1527
+ "unquoted",
1528
+ "unrest",
1529
+ "unsafe",
1530
+ "until",
1531
+ "unusual",
1532
+ "unveil",
1533
+ "unwind",
1534
+ "unzip",
1535
+ "upbeat",
1536
+ "upcoming",
1537
+ "update",
1538
+ "upgrade",
1539
+ "uphill",
1540
+ "upkeep",
1541
+ "upload",
1542
+ "upon",
1543
+ "upper",
1544
+ "upright",
1545
+ "upstairs",
1546
+ "uptight",
1547
+ "upwards",
1548
+ "urban",
1549
+ "urchins",
1550
+ "urgent",
1551
+ "usage",
1552
+ "useful",
1553
+ "usher",
1554
+ "using",
1555
+ "usual",
1556
+ "utensils",
1557
+ "utility",
1558
+ "utmost",
1559
+ "utopia",
1560
+ "uttered",
1561
+ "vacation",
1562
+ "vague",
1563
+ "vain",
1564
+ "value",
1565
+ "vampire",
1566
+ "vane",
1567
+ "vapidly",
1568
+ "vary",
1569
+ "vastness",
1570
+ "vats",
1571
+ "vaults",
1572
+ "vector",
1573
+ "veered",
1574
+ "vegan",
1575
+ "vehicle",
1576
+ "vein",
1577
+ "velvet",
1578
+ "venomous",
1579
+ "verification",
1580
+ "vessel",
1581
+ "veteran",
1582
+ "vexed",
1583
+ "vials",
1584
+ "vibrate",
1585
+ "victim",
1586
+ "video",
1587
+ "viewpoint",
1588
+ "vigilant",
1589
+ "viking",
1590
+ "village",
1591
+ "vinegar",
1592
+ "violin",
1593
+ "vipers",
1594
+ "virtual",
1595
+ "visited",
1596
+ "vitals",
1597
+ "vivid",
1598
+ "vixen",
1599
+ "vocal",
1600
+ "vogue",
1601
+ "voice",
1602
+ "volcano",
1603
+ "vortex",
1604
+ "voted",
1605
+ "voucher",
1606
+ "vowels",
1607
+ "voyage",
1608
+ "vulture",
1609
+ "wade",
1610
+ "waffle",
1611
+ "wagtail",
1612
+ "waist",
1613
+ "waking",
1614
+ "wallets",
1615
+ "wanted",
1616
+ "warped",
1617
+ "washing",
1618
+ "water",
1619
+ "waveform",
1620
+ "waxing",
1621
+ "wayside",
1622
+ "weavers",
1623
+ "website",
1624
+ "wedge",
1625
+ "weekday",
1626
+ "weird",
1627
+ "welders",
1628
+ "went",
1629
+ "wept",
1630
+ "were",
1631
+ "western",
1632
+ "wetsuit",
1633
+ "whale",
1634
+ "when",
1635
+ "whipped",
1636
+ "whole",
1637
+ "wickets",
1638
+ "width",
1639
+ "wield",
1640
+ "wife",
1641
+ "wiggle",
1642
+ "wildly",
1643
+ "winter",
1644
+ "wipeout",
1645
+ "wiring",
1646
+ "wise",
1647
+ "withdrawn",
1648
+ "wives",
1649
+ "wizard",
1650
+ "wobbly",
1651
+ "woes",
1652
+ "woken",
1653
+ "wolf",
1654
+ "womanly",
1655
+ "wonders",
1656
+ "woozy",
1657
+ "worry",
1658
+ "wounded",
1659
+ "woven",
1660
+ "wrap",
1661
+ "wrist",
1662
+ "wrong",
1663
+ "yacht",
1664
+ "yahoo",
1665
+ "yanks",
1666
+ "yard",
1667
+ "yawning",
1668
+ "yearbook",
1669
+ "yellow",
1670
+ "yesterday",
1671
+ "yeti",
1672
+ "yields",
1673
+ "yodel",
1674
+ "yoga",
1675
+ "younger",
1676
+ "yoyo",
1677
+ "zapped",
1678
+ "zeal",
1679
+ "zebra",
1680
+ "zero",
1681
+ "zesty",
1682
+ "zigzags",
1683
+ "zinger",
1684
+ "zippers",
1685
+ "zodiac",
1686
+ "zombie",
1687
+ "zones",
1688
+ "zoom"
1689
+];