-
Notifications
You must be signed in to change notification settings - Fork 1
/
BIP39-XOR.sh
4857 lines (4772 loc) · 102 KB
/
BIP39-XOR.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/bin/bash
unset HISTFILE # workaround for Git Bash bug that copies script content to bash's command history on Windows.
# BIP39-XOR.sh: encrypt or decrypt 12, 15, 18, 21 or 24 BIP39 codewords array (so-called "seed phrase") using exclusive OR (XOR)/Vernam cipher (a.k.a. One Time Pad). If not input by a user, an encryption key is automatically generated at random. Encryption with such a key preserves integrity of BIP-39 checksums of all keys (that's distinct while also compatible with SeedXOR implementation).
# Examples:
# $ bash BIP39-XOR.sh time until select then return void float true false case catch depart
# $ bash BIP39-XOR.sh time until select then return void float true false case catch depart XOR age age age age age age age age age age age used
# $ bash BIP39-XOR.sh -s romance wink lottery autumn shop bring dawn tongue range crater truth ability XOR online gaze whisper orbit once title room ritual magnet cheese forest travel
# $ bash BIP39-XOR.sh time until select then return void float true false case catch depart XOR age age age age age age age age age age age used > BIP39_codewords.txt
# $ bash BIP39-XOR.sh time until select then return void float true false case catch depart XOR $(< twelve_BIP39_codewords.txt)
# $ bash BIP39-XOR.sh zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo party XOR zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo party
# $ output_variable=$( ./BIP39-XOR.sh time until select then return void float true false case catch depart ) && encryption_key1=${output_variable%%XOR*} && encryption_key2=${output_variable##*XOR}
# $ ./BIP39-XOR.sh age age age age age age age age age age age used XOR $( ./BIP39-XOR.sh animal loan slim stamp heavy airport carry rotate found pigeon cage shield XOR agree sorry quote park intact palm torch tiger script tomorrow jacket dolphin | tail -n 1)
helptext_show () {
printf "Usage: BIP39-XOR.sh [-s] [codewords...] [XOR] [codewords...]\n"
printf " BIP39-XOR.sh [--auto-input]\n\n"
printf "BIP39-XOR: encrypt a BIP39 codewords array (so-called \"seed phrase\") into two complementary ones (\"encryption keys\") or decrypt.\n\n"
printf " -s, substitute BIP-39 checksum\n"
printf " -h, --help display this help and exit\n\n"
printf "EXAMPLES:\n\n"
printf "$ bash BIP39-XOR.sh time until select then return void float true false case catch depart\n"
printf "Encrypt into and output two complementary encryption keys encoded in BIP39 codewords.\n\n"
printf "$ bash BIP39-XOR.sh time until select then return void float true false case catch depart XOR age age age age age age age age age age age used\n"
printf "Use input keys to decrypt and output a key. Or, equivalently, encrypt an input key with another one and output two complementary encryption keys in BIP39 format.\n\n"
printf "$ bash BIP39-XOR.sh -s romance wink lottery autumn shop bring dawn tongue range crater truth ability XOR online gaze whisper orbit once title room ritual magnet cheese forest travel\n"
printf "Same as above except the BIP-39 checksum is substituted (the last codeword is changed as a result).\n\n"
printf "$ bash BIP39-XOR.sh --auto-input\n"
printf "Generate input BIP-39 twelve codewords randomly and output two complementary encryption keys encoded in BIP39 codewords.\n\n"
echo "This is the 6.0.0 version. Release date: 20240919T182000Z. Author: Greg Tonoski <[email protected]>."
}
INPUT_CODEWORDS_ARRAY1=""
INPUT_CODEWORDS_ARRAY2=""
OPTION_FLAG_S=""
INPUT_CODEWORDS_ARRAY1_AS_HEX=""
INPUT_CODEWORDS_ARRAY2_AS_HEX=""
ENTROPY_HEX=""
CANDIDATE_KEY=""
ENCRYPTION_KEY1=""
ENCRYPTION_KEY1=""
ENTROPY_CHECKSUM_BIP39=0
ENCRYPTION_KEY1_CHECKSUM_BIP39=0
ENCRYPTION_KEY2_CHECKSUM_BIP39=0
readonly BITS_IN_WORD=11
readonly BITS_IN_NIBBLE=4
readonly BITS_IN_SRANDOM=32
readonly BITS_IN_RANDOM=16
BIP39_CHECKSUM_BITS_COUNT=0
FN_ENG_WORDS_TO_HEX_RESULT=""
FN_BIP39_CHECKSUM_RESULT=0
BIP39_WORDS=""
bits_to_shift=0
last_bits_value=0
first_bits_value=0
i=0
FN_RIGHT_ROTATE_32_RESULT=0
FN_RIGHT_SHIFT_32_RESULT=0
FN_SHA256_RESULT=""
FN_POWER_RESULT=0
fn_power () {
i=0
FN_POWER_RESULT=1
while [ ${i} -lt ${1} ] ; do
FN_POWER_RESULT=$(( FN_POWER_RESULT * 2 ))
i=$(( ${i} + 1 ))
done
}
fn_eng_words_to_hex () {
hex_abandon=0x000
hex_ability=0x001
hex_able=0x002
hex_about=0x003
hex_above=0x004
hex_absent=0x005
hex_absorb=0x006
hex_abstract=0x007
hex_absurd=0x008
hex_abuse=0x009
hex_access=0x00A
hex_accident=0x00B
hex_account=0x00C
hex_accuse=0x00D
hex_achieve=0x00E
hex_acid=0x00F
hex_acoustic=0x010
hex_acquire=0x011
hex_across=0x012
hex_act=0x013
hex_action=0x014
hex_actor=0x015
hex_actress=0x016
hex_actual=0x017
hex_adapt=0x018
hex_add=0x019
hex_addict=0x01A
hex_address=0x01B
hex_adjust=0x01C
hex_admit=0x01D
hex_adult=0x01E
hex_advance=0x01F
hex_advice=0x020
hex_aerobic=0x021
hex_affair=0x022
hex_afford=0x023
hex_afraid=0x024
hex_again=0x025
hex_age=0x026
hex_agent=0x027
hex_agree=0x028
hex_ahead=0x029
hex_aim=0x02A
hex_air=0x02B
hex_airport=0x02C
hex_aisle=0x02D
hex_alarm=0x02E
hex_album=0x02F
hex_alcohol=0x030
hex_alert=0x031
hex_alien=0x032
hex_all=0x033
hex_alley=0x034
hex_allow=0x035
hex_almost=0x036
hex_alone=0x037
hex_alpha=0x038
hex_already=0x039
hex_also=0x03A
hex_alter=0x03B
hex_always=0x03C
hex_amateur=0x03D
hex_amazing=0x03E
hex_among=0x03F
hex_amount=0x040
hex_amused=0x041
hex_analyst=0x042
hex_anchor=0x043
hex_ancient=0x044
hex_anger=0x045
hex_angle=0x046
hex_angry=0x047
hex_animal=0x048
hex_ankle=0x049
hex_announce=0x04A
hex_annual=0x04B
hex_another=0x04C
hex_answer=0x04D
hex_antenna=0x04E
hex_antique=0x04F
hex_anxiety=0x050
hex_any=0x051
hex_apart=0x052
hex_apology=0x053
hex_appear=0x054
hex_apple=0x055
hex_approve=0x056
hex_april=0x057
hex_arch=0x058
hex_arctic=0x059
hex_area=0x05A
hex_arena=0x05B
hex_argue=0x05C
hex_arm=0x05D
hex_armed=0x05E
hex_armor=0x05F
hex_army=0x060
hex_around=0x061
hex_arrange=0x062
hex_arrest=0x063
hex_arrive=0x064
hex_arrow=0x065
hex_art=0x066
hex_artefact=0x067
hex_artist=0x068
hex_artwork=0x069
hex_ask=0x06A
hex_aspect=0x06B
hex_assault=0x06C
hex_asset=0x06D
hex_assist=0x06E
hex_assume=0x06F
hex_asthma=0x070
hex_athlete=0x071
hex_atom=0x072
hex_attack=0x073
hex_attend=0x074
hex_attitude=0x075
hex_attract=0x076
hex_auction=0x077
hex_audit=0x078
hex_august=0x079
hex_aunt=0x07A
hex_author=0x07B
hex_auto=0x07C
hex_autumn=0x07D
hex_average=0x07E
hex_avocado=0x07F
hex_avoid=0x080
hex_awake=0x081
hex_aware=0x082
hex_away=0x083
hex_awesome=0x084
hex_awful=0x085
hex_awkward=0x086
hex_axis=0x087
hex_baby=0x088
hex_bachelor=0x089
hex_bacon=0x08A
hex_badge=0x08B
hex_bag=0x08C
hex_balance=0x08D
hex_balcony=0x08E
hex_ball=0x08F
hex_bamboo=0x090
hex_banana=0x091
hex_banner=0x092
hex_bar=0x093
hex_barely=0x094
hex_bargain=0x095
hex_barrel=0x096
hex_base=0x097
hex_basic=0x098
hex_basket=0x099
hex_battle=0x09A
hex_beach=0x09B
hex_bean=0x09C
hex_beauty=0x09D
hex_because=0x09E
hex_become=0x09F
hex_beef=0x0A0
hex_before=0x0A1
hex_begin=0x0A2
hex_behave=0x0A3
hex_behind=0x0A4
hex_believe=0x0A5
hex_below=0x0A6
hex_belt=0x0A7
hex_bench=0x0A8
hex_benefit=0x0A9
hex_best=0x0AA
hex_betray=0x0AB
hex_better=0x0AC
hex_between=0x0AD
hex_beyond=0x0AE
hex_bicycle=0x0AF
hex_bid=0x0B0
hex_bike=0x0B1
hex_bind=0x0B2
hex_biology=0x0B3
hex_bird=0x0B4
hex_birth=0x0B5
hex_bitter=0x0B6
hex_black=0x0B7
hex_blade=0x0B8
hex_blame=0x0B9
hex_blanket=0x0BA
hex_blast=0x0BB
hex_bleak=0x0BC
hex_bless=0x0BD
hex_blind=0x0BE
hex_blood=0x0BF
hex_blossom=0x0C0
hex_blouse=0x0C1
hex_blue=0x0C2
hex_blur=0x0C3
hex_blush=0x0C4
hex_board=0x0C5
hex_boat=0x0C6
hex_body=0x0C7
hex_boil=0x0C8
hex_bomb=0x0C9
hex_bone=0x0CA
hex_bonus=0x0CB
hex_book=0x0CC
hex_boost=0x0CD
hex_border=0x0CE
hex_boring=0x0CF
hex_borrow=0x0D0
hex_boss=0x0D1
hex_bottom=0x0D2
hex_bounce=0x0D3
hex_box=0x0D4
hex_boy=0x0D5
hex_bracket=0x0D6
hex_brain=0x0D7
hex_brand=0x0D8
hex_brass=0x0D9
hex_brave=0x0DA
hex_bread=0x0DB
hex_breeze=0x0DC
hex_brick=0x0DD
hex_bridge=0x0DE
hex_brief=0x0DF
hex_bright=0x0E0
hex_bring=0x0E1
hex_brisk=0x0E2
hex_broccoli=0x0E3
hex_broken=0x0E4
hex_bronze=0x0E5
hex_broom=0x0E6
hex_brother=0x0E7
hex_brown=0x0E8
hex_brush=0x0E9
hex_bubble=0x0EA
hex_buddy=0x0EB
hex_budget=0x0EC
hex_buffalo=0x0ED
hex_build=0x0EE
hex_bulb=0x0EF
hex_bulk=0x0F0
hex_bullet=0x0F1
hex_bundle=0x0F2
hex_bunker=0x0F3
hex_burden=0x0F4
hex_burger=0x0F5
hex_burst=0x0F6
hex_bus=0x0F7
hex_business=0x0F8
hex_busy=0x0F9
hex_butter=0x0FA
hex_buyer=0x0FB
hex_buzz=0x0FC
hex_cabbage=0x0FD
hex_cabin=0x0FE
hex_cable=0x0FF
hex_cactus=0x100
hex_cage=0x101
hex_cake=0x102
hex_call=0x103
hex_calm=0x104
hex_camera=0x105
hex_camp=0x106
hex_can=0x107
hex_canal=0x108
hex_cancel=0x109
hex_candy=0x10A
hex_cannon=0x10B
hex_canoe=0x10C
hex_canvas=0x10D
hex_canyon=0x10E
hex_capable=0x10F
hex_capital=0x110
hex_captain=0x111
hex_car=0x112
hex_carbon=0x113
hex_card=0x114
hex_cargo=0x115
hex_carpet=0x116
hex_carry=0x117
hex_cart=0x118
hex_case=0x119
hex_cash=0x11A
hex_casino=0x11B
hex_castle=0x11C
hex_casual=0x11D
hex_cat=0x11E
hex_catalog=0x11F
hex_catch=0x120
hex_category=0x121
hex_cattle=0x122
hex_caught=0x123
hex_cause=0x124
hex_caution=0x125
hex_cave=0x126
hex_ceiling=0x127
hex_celery=0x128
hex_cement=0x129
hex_census=0x12A
hex_century=0x12B
hex_cereal=0x12C
hex_certain=0x12D
hex_chair=0x12E
hex_chalk=0x12F
hex_champion=0x130
hex_change=0x131
hex_chaos=0x132
hex_chapter=0x133
hex_charge=0x134
hex_chase=0x135
hex_chat=0x136
hex_cheap=0x137
hex_check=0x138
hex_cheese=0x139
hex_chef=0x13A
hex_cherry=0x13B
hex_chest=0x13C
hex_chicken=0x13D
hex_chief=0x13E
hex_child=0x13F
hex_chimney=0x140
hex_choice=0x141
hex_choose=0x142
hex_chronic=0x143
hex_chuckle=0x144
hex_chunk=0x145
hex_churn=0x146
hex_cigar=0x147
hex_cinnamon=0x148
hex_circle=0x149
hex_citizen=0x14A
hex_city=0x14B
hex_civil=0x14C
hex_claim=0x14D
hex_clap=0x14E
hex_clarify=0x14F
hex_claw=0x150
hex_clay=0x151
hex_clean=0x152
hex_clerk=0x153
hex_clever=0x154
hex_click=0x155
hex_client=0x156
hex_cliff=0x157
hex_climb=0x158
hex_clinic=0x159
hex_clip=0x15A
hex_clock=0x15B
hex_clog=0x15C
hex_close=0x15D
hex_cloth=0x15E
hex_cloud=0x15F
hex_clown=0x160
hex_club=0x161
hex_clump=0x162
hex_cluster=0x163
hex_clutch=0x164
hex_coach=0x165
hex_coast=0x166
hex_coconut=0x167
hex_code=0x168
hex_coffee=0x169
hex_coil=0x16A
hex_coin=0x16B
hex_collect=0x16C
hex_color=0x16D
hex_column=0x16E
hex_combine=0x16F
hex_come=0x170
hex_comfort=0x171
hex_comic=0x172
hex_common=0x173
hex_company=0x174
hex_concert=0x175
hex_conduct=0x176
hex_confirm=0x177
hex_congress=0x178
hex_connect=0x179
hex_consider=0x17A
hex_control=0x17B
hex_convince=0x17C
hex_cook=0x17D
hex_cool=0x17E
hex_copper=0x17F
hex_copy=0x180
hex_coral=0x181
hex_core=0x182
hex_corn=0x183
hex_correct=0x184
hex_cost=0x185
hex_cotton=0x186
hex_couch=0x187
hex_country=0x188
hex_couple=0x189
hex_course=0x18A
hex_cousin=0x18B
hex_cover=0x18C
hex_coyote=0x18D
hex_crack=0x18E
hex_cradle=0x18F
hex_craft=0x190
hex_cram=0x191
hex_crane=0x192
hex_crash=0x193
hex_crater=0x194
hex_crawl=0x195
hex_crazy=0x196
hex_cream=0x197
hex_credit=0x198
hex_creek=0x199
hex_crew=0x19A
hex_cricket=0x19B
hex_crime=0x19C
hex_crisp=0x19D
hex_critic=0x19E
hex_crop=0x19F
hex_cross=0x1A0
hex_crouch=0x1A1
hex_crowd=0x1A2
hex_crucial=0x1A3
hex_cruel=0x1A4
hex_cruise=0x1A5
hex_crumble=0x1A6
hex_crunch=0x1A7
hex_crush=0x1A8
hex_cry=0x1A9
hex_crystal=0x1AA
hex_cube=0x1AB
hex_culture=0x1AC
hex_cup=0x1AD
hex_cupboard=0x1AE
hex_curious=0x1AF
hex_current=0x1B0
hex_curtain=0x1B1
hex_curve=0x1B2
hex_cushion=0x1B3
hex_custom=0x1B4
hex_cute=0x1B5
hex_cycle=0x1B6
hex_dad=0x1B7
hex_damage=0x1B8
hex_damp=0x1B9
hex_dance=0x1BA
hex_danger=0x1BB
hex_daring=0x1BC
hex_dash=0x1BD
hex_daughter=0x1BE
hex_dawn=0x1BF
hex_day=0x1C0
hex_deal=0x1C1
hex_debate=0x1C2
hex_debris=0x1C3
hex_decade=0x1C4
hex_december=0x1C5
hex_decide=0x1C6
hex_decline=0x1C7
hex_decorate=0x1C8
hex_decrease=0x1C9
hex_deer=0x1CA
hex_defense=0x1CB
hex_define=0x1CC
hex_defy=0x1CD
hex_degree=0x1CE
hex_delay=0x1CF
hex_deliver=0x1D0
hex_demand=0x1D1
hex_demise=0x1D2
hex_denial=0x1D3
hex_dentist=0x1D4
hex_deny=0x1D5
hex_depart=0x1D6
hex_depend=0x1D7
hex_deposit=0x1D8
hex_depth=0x1D9
hex_deputy=0x1DA
hex_derive=0x1DB
hex_describe=0x1DC
hex_desert=0x1DD
hex_design=0x1DE
hex_desk=0x1DF
hex_despair=0x1E0
hex_destroy=0x1E1
hex_detail=0x1E2
hex_detect=0x1E3
hex_develop=0x1E4
hex_device=0x1E5
hex_devote=0x1E6
hex_diagram=0x1E7
hex_dial=0x1E8
hex_diamond=0x1E9
hex_diary=0x1EA
hex_dice=0x1EB
hex_diesel=0x1EC
hex_diet=0x1ED
hex_differ=0x1EE
hex_digital=0x1EF
hex_dignity=0x1F0
hex_dilemma=0x1F1
hex_dinner=0x1F2
hex_dinosaur=0x1F3
hex_direct=0x1F4
hex_dirt=0x1F5
hex_disagree=0x1F6
hex_discover=0x1F7
hex_disease=0x1F8
hex_dish=0x1F9
hex_dismiss=0x1FA
hex_disorder=0x1FB
hex_display=0x1FC
hex_distance=0x1FD
hex_divert=0x1FE
hex_divide=0x1FF
hex_divorce=0x200
hex_dizzy=0x201
hex_doctor=0x202
hex_document=0x203
hex_dog=0x204
hex_doll=0x205
hex_dolphin=0x206
hex_domain=0x207
hex_donate=0x208
hex_donkey=0x209
hex_donor=0x20A
hex_door=0x20B
hex_dose=0x20C
hex_double=0x20D
hex_dove=0x20E
hex_draft=0x20F
hex_dragon=0x210
hex_drama=0x211
hex_drastic=0x212
hex_draw=0x213
hex_dream=0x214
hex_dress=0x215
hex_drift=0x216
hex_drill=0x217
hex_drink=0x218
hex_drip=0x219
hex_drive=0x21A
hex_drop=0x21B
hex_drum=0x21C
hex_dry=0x21D
hex_duck=0x21E
hex_dumb=0x21F
hex_dune=0x220
hex_during=0x221
hex_dust=0x222
hex_dutch=0x223
hex_duty=0x224
hex_dwarf=0x225
hex_dynamic=0x226
hex_eager=0x227
hex_eagle=0x228
hex_early=0x229
hex_earn=0x22A
hex_earth=0x22B
hex_easily=0x22C
hex_east=0x22D
hex_easy=0x22E
hex_echo=0x22F
hex_ecology=0x230
hex_economy=0x231
hex_edge=0x232
hex_edit=0x233
hex_educate=0x234
hex_effort=0x235
hex_egg=0x236
hex_eight=0x237
hex_either=0x238
hex_elbow=0x239
hex_elder=0x23A
hex_electric=0x23B
hex_elegant=0x23C
hex_element=0x23D
hex_elephant=0x23E
hex_elevator=0x23F
hex_elite=0x240
hex_else=0x241
hex_embark=0x242
hex_embody=0x243
hex_embrace=0x244
hex_emerge=0x245
hex_emotion=0x246
hex_employ=0x247
hex_empower=0x248
hex_empty=0x249
hex_enable=0x24A
hex_enact=0x24B
hex_end=0x24C
hex_endless=0x24D
hex_endorse=0x24E
hex_enemy=0x24F
hex_energy=0x250
hex_enforce=0x251
hex_engage=0x252
hex_engine=0x253
hex_enhance=0x254
hex_enjoy=0x255
hex_enlist=0x256
hex_enough=0x257
hex_enrich=0x258
hex_enroll=0x259
hex_ensure=0x25A
hex_enter=0x25B
hex_entire=0x25C
hex_entry=0x25D
hex_envelope=0x25E
hex_episode=0x25F
hex_equal=0x260
hex_equip=0x261
hex_era=0x262
hex_erase=0x263
hex_erode=0x264
hex_erosion=0x265
hex_error=0x266
hex_erupt=0x267
hex_escape=0x268
hex_essay=0x269
hex_essence=0x26A
hex_estate=0x26B
hex_eternal=0x26C
hex_ethics=0x26D
hex_evidence=0x26E
hex_evil=0x26F
hex_evoke=0x270
hex_evolve=0x271
hex_exact=0x272
hex_example=0x273
hex_excess=0x274
hex_exchange=0x275
hex_excite=0x276
hex_exclude=0x277
hex_excuse=0x278
hex_execute=0x279
hex_exercise=0x27A
hex_exhaust=0x27B
hex_exhibit=0x27C
hex_exile=0x27D
hex_exist=0x27E
hex_exit=0x27F
hex_exotic=0x280
hex_expand=0x281
hex_expect=0x282
hex_expire=0x283
hex_explain=0x284
hex_expose=0x285
hex_express=0x286
hex_extend=0x287
hex_extra=0x288
hex_eye=0x289
hex_eyebrow=0x28A
hex_fabric=0x28B
hex_face=0x28C
hex_faculty=0x28D
hex_fade=0x28E
hex_faint=0x28F
hex_faith=0x290
hex_fall=0x291
hex_false=0x292
hex_fame=0x293
hex_family=0x294
hex_famous=0x295
hex_fan=0x296
hex_fancy=0x297
hex_fantasy=0x298
hex_farm=0x299
hex_fashion=0x29A
hex_fat=0x29B
hex_fatal=0x29C
hex_father=0x29D
hex_fatigue=0x29E
hex_fault=0x29F
hex_favorite=0x2A0
hex_feature=0x2A1
hex_february=0x2A2
hex_federal=0x2A3
hex_fee=0x2A4
hex_feed=0x2A5
hex_feel=0x2A6
hex_female=0x2A7
hex_fence=0x2A8
hex_festival=0x2A9
hex_fetch=0x2AA
hex_fever=0x2AB
hex_few=0x2AC
hex_fiber=0x2AD
hex_fiction=0x2AE
hex_field=0x2AF
hex_figure=0x2B0
hex_file=0x2B1
hex_film=0x2B2
hex_filter=0x2B3
hex_final=0x2B4
hex_find=0x2B5
hex_fine=0x2B6
hex_finger=0x2B7
hex_finish=0x2B8
hex_fire=0x2B9
hex_firm=0x2BA
hex_first=0x2BB
hex_fiscal=0x2BC
hex_fish=0x2BD
hex_fit=0x2BE
hex_fitness=0x2BF
hex_fix=0x2C0
hex_flag=0x2C1
hex_flame=0x2C2
hex_flash=0x2C3
hex_flat=0x2C4
hex_flavor=0x2C5
hex_flee=0x2C6
hex_flight=0x2C7
hex_flip=0x2C8
hex_float=0x2C9
hex_flock=0x2CA
hex_floor=0x2CB
hex_flower=0x2CC
hex_fluid=0x2CD
hex_flush=0x2CE
hex_fly=0x2CF
hex_foam=0x2D0
hex_focus=0x2D1
hex_fog=0x2D2
hex_foil=0x2D3
hex_fold=0x2D4
hex_follow=0x2D5
hex_food=0x2D6
hex_foot=0x2D7
hex_force=0x2D8
hex_forest=0x2D9
hex_forget=0x2DA
hex_fork=0x2DB
hex_fortune=0x2DC
hex_forum=0x2DD
hex_forward=0x2DE
hex_fossil=0x2DF
hex_foster=0x2E0
hex_found=0x2E1
hex_fox=0x2E2
hex_fragile=0x2E3
hex_frame=0x2E4
hex_frequent=0x2E5
hex_fresh=0x2E6
hex_friend=0x2E7
hex_fringe=0x2E8
hex_frog=0x2E9
hex_front=0x2EA
hex_frost=0x2EB
hex_frown=0x2EC
hex_frozen=0x2ED
hex_fruit=0x2EE
hex_fuel=0x2EF
hex_fun=0x2F0
hex_funny=0x2F1
hex_furnace=0x2F2
hex_fury=0x2F3
hex_future=0x2F4
hex_gadget=0x2F5
hex_gain=0x2F6
hex_galaxy=0x2F7
hex_gallery=0x2F8
hex_game=0x2F9
hex_gap=0x2FA
hex_garage=0x2FB
hex_garbage=0x2FC
hex_garden=0x2FD
hex_garlic=0x2FE
hex_garment=0x2FF
hex_gas=0x300
hex_gasp=0x301
hex_gate=0x302
hex_gather=0x303
hex_gauge=0x304
hex_gaze=0x305
hex_general=0x306
hex_genius=0x307
hex_genre=0x308
hex_gentle=0x309
hex_genuine=0x30A
hex_gesture=0x30B
hex_ghost=0x30C
hex_giant=0x30D
hex_gift=0x30E
hex_giggle=0x30F
hex_ginger=0x310
hex_giraffe=0x311
hex_girl=0x312
hex_give=0x313
hex_glad=0x314
hex_glance=0x315
hex_glare=0x316
hex_glass=0x317
hex_glide=0x318
hex_glimpse=0x319
hex_globe=0x31A
hex_gloom=0x31B
hex_glory=0x31C
hex_glove=0x31D
hex_glow=0x31E
hex_glue=0x31F
hex_goat=0x320
hex_goddess=0x321
hex_gold=0x322
hex_good=0x323
hex_goose=0x324
hex_gorilla=0x325
hex_gospel=0x326
hex_gossip=0x327
hex_govern=0x328
hex_gown=0x329
hex_grab=0x32A
hex_grace=0x32B
hex_grain=0x32C
hex_grant=0x32D
hex_grape=0x32E
hex_grass=0x32F
hex_gravity=0x330
hex_great=0x331
hex_green=0x332
hex_grid=0x333
hex_grief=0x334
hex_grit=0x335
hex_grocery=0x336
hex_group=0x337
hex_grow=0x338
hex_grunt=0x339
hex_guard=0x33A
hex_guess=0x33B
hex_guide=0x33C
hex_guilt=0x33D
hex_guitar=0x33E
hex_gun=0x33F
hex_gym=0x340
hex_habit=0x341
hex_hair=0x342
hex_half=0x343
hex_hammer=0x344
hex_hamster=0x345
hex_hand=0x346
hex_happy=0x347
hex_harbor=0x348
hex_hard=0x349
hex_harsh=0x34A
hex_harvest=0x34B
hex_hat=0x34C
hex_have=0x34D
hex_hawk=0x34E
hex_hazard=0x34F
hex_head=0x350
hex_health=0x351
hex_heart=0x352
hex_heavy=0x353
hex_hedgehog=0x354
hex_height=0x355
hex_hello=0x356
hex_helmet=0x357
hex_help=0x358
hex_hen=0x359
hex_hero=0x35A
hex_hidden=0x35B
hex_high=0x35C
hex_hill=0x35D
hex_hint=0x35E
hex_hip=0x35F
hex_hire=0x360
hex_history=0x361
hex_hobby=0x362
hex_hockey=0x363
hex_hold=0x364
hex_hole=0x365
hex_holiday=0x366
hex_hollow=0x367
hex_home=0x368
hex_honey=0x369
hex_hood=0x36A
hex_hope=0x36B
hex_horn=0x36C
hex_horror=0x36D
hex_horse=0x36E
hex_hospital=0x36F
hex_host=0x370
hex_hotel=0x371
hex_hour=0x372
hex_hover=0x373
hex_hub=0x374
hex_huge=0x375
hex_human=0x376
hex_humble=0x377
hex_humor=0x378
hex_hundred=0x379
hex_hungry=0x37A
hex_hunt=0x37B
hex_hurdle=0x37C
hex_hurry=0x37D
hex_hurt=0x37E
hex_husband=0x37F
hex_hybrid=0x380
hex_ice=0x381
hex_icon=0x382
hex_idea=0x383
hex_identify=0x384
hex_idle=0x385
hex_ignore=0x386
hex_ill=0x387
hex_illegal=0x388
hex_illness=0x389
hex_image=0x38A
hex_imitate=0x38B
hex_immense=0x38C
hex_immune=0x38D
hex_impact=0x38E
hex_impose=0x38F
hex_improve=0x390
hex_impulse=0x391
hex_inch=0x392
hex_include=0x393
hex_income=0x394
hex_increase=0x395
hex_index=0x396
hex_indicate=0x397
hex_indoor=0x398
hex_industry=0x399
hex_infant=0x39A
hex_inflict=0x39B
hex_inform=0x39C
hex_inhale=0x39D