aboutsummaryrefslogtreecommitdiff
path: root/challenge-166
diff options
context:
space:
mode:
authorPaulo Custodio <pauloscustodio@gmail.com>2023-03-29 19:00:19 +0100
committerPaulo Custodio <pauloscustodio@gmail.com>2023-03-29 19:00:19 +0100
commit45a5b2b46fc08d6e7451b9b16f43118a752ecfb3 (patch)
treebf32148345ab107adeac8c335165622dc4947a31 /challenge-166
parenta16398b126525aa3b942fb9df28be52e558b1d1c (diff)
downloadperlweeklychallenge-club-45a5b2b46fc08d6e7451b9b16f43118a752ecfb3.tar.gz
perlweeklychallenge-club-45a5b2b46fc08d6e7451b9b16f43118a752ecfb3.tar.bz2
perlweeklychallenge-club-45a5b2b46fc08d6e7451b9b16f43118a752ecfb3.zip
Add Perl solution
Diffstat (limited to 'challenge-166')
-rw-r--r--challenge-166/paulo-custodio/perl/ch-1.pl45
-rw-r--r--challenge-166/paulo-custodio/perl/ch-2.pl97
-rw-r--r--challenge-166/paulo-custodio/t/dir_a/Arial.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_a/Comic_Sans.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_a/Georgia.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_a/Helvetica.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_a/Impact.otf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_a/Verdana.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Arial.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Comic_Sans.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Courier_New.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Helvetica.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Impact.otf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Tahoma.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_b/Verdana.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_c/Arial.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_c/Courier_New.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_c/Helvetica.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_c/Impact.otf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_c/Monaco.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/dir_c/Verdana.ttf0
-rw-r--r--challenge-166/paulo-custodio/t/test-1.yaml1005
-rw-r--r--challenge-166/paulo-custodio/t/test-2.yaml13
23 files changed, 1160 insertions, 0 deletions
diff --git a/challenge-166/paulo-custodio/perl/ch-1.pl b/challenge-166/paulo-custodio/perl/ch-1.pl
new file mode 100644
index 0000000000..8e6f78001a
--- /dev/null
+++ b/challenge-166/paulo-custodio/perl/ch-1.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+
+# Challenge 166
+#
+# Task 1: Hexadecimal Words
+# Submitted by: Ryan J Thompson
+#
+# As an old systems programmer, whenever I needed to come up with a 32-bit
+# number, I would reach for the tired old examples like 0xDeadBeef and
+# 0xC0dedBad. I want more!
+#
+# Write a program that will read from a dictionary and find 2- to 8-letter
+# words that can be “spelled” in hexadecimal, with the addition of the following
+# letter substitutions:
+#
+# o -> 0 (e.g., 0xf00d = “food”)
+# l -> 1
+# i -> 1
+# s -> 5
+# t -> 7
+#
+# You can use your own dictionary or you can simply open
+# ../../../data/dictionary.txt (relative to your script’s location in our GitHub
+# repository) to access the dictionary of common words from Week #161.
+#
+# Optional Extras (for an 0xAddedFee, of course!)
+#
+# Limit the number of “special” letter substitutions in any one result to
+# keep that result at least somewhat comprehensible. (0x51105010 is an
+# actual example from my sample solution you may wish to avoid!)
+#
+# Find phrases of words that total 8 characters in length
+# (e.g., 0xFee1Face), rather than just individual words.
+
+use Modern::Perl;
+
+@ARGV==1 or die "usage: ch-1.pl words.txt\n";
+while (<>) {
+ chomp;
+ if (/^[a-f0list]{2,8}$/i) {
+ my $word=$_;
+ $word=~tr/olist/01157/;
+ say "0x".uc($word);
+ }
+}
diff --git a/challenge-166/paulo-custodio/perl/ch-2.pl b/challenge-166/paulo-custodio/perl/ch-2.pl
new file mode 100644
index 0000000000..f65656bcab
--- /dev/null
+++ b/challenge-166/paulo-custodio/perl/ch-2.pl
@@ -0,0 +1,97 @@
+#!/usr/bin/perl
+
+# Challenge 166
+#
+# Task 2: K-Directory Diff
+# Submitted by: Ryan J Thompson
+#
+# Given a few (three or more) directories (non-recursively), display a
+# side-by-side difference of files that are missing from at least one of the
+# directories. Do not display files that exist in every directory.
+#
+# Since the task is non-recursive, if you encounter a subdirectory, append a /,
+# but otherwise treat it the same as a regular file.
+# Example
+#
+# Given the following directory structure:
+#
+# dir_a:
+# Arial.ttf Comic_Sans.ttf Georgia.ttf Helvetica.ttf Impact.otf Verdana.ttf
+# Old_Fonts/
+#
+# dir_b:
+# Arial.ttf Comic_Sans.ttf Courier_New.ttf Helvetica.ttf Impact.otf
+# Tahoma.ttf Verdana.ttf
+#
+# dir_c:
+# Arial.ttf Courier_New.ttf Helvetica.ttf Impact.otf Monaco.ttf Verdana.ttf
+#
+# The output should look similar to the following:
+#
+# dir_a | dir_b | dir_c
+# -------------- | --------------- | ---------------
+# Comic_Sans.ttf | Comic_Sans.ttf |
+# | Courier_New.ttf | Courier_New.ttf
+# Georgia.ttf | |
+# | | Monaco.ttf
+# Old_Fonts/ | |
+# | Tahoma.ttf |
+
+use Modern::Perl;
+
+use constant WIDTH => 16;
+
+sub read_dir {
+ my($dir)=@_;
+ opendir(my $d, $dir) or die "opendir $dir: $!";
+ return sort
+ map {-d "$dir/$_" ? "$_/" : $_ }
+ grep {$_ ne "." && $_ ne ".."} readdir($d);
+}
+
+sub read_dirs {
+ my(@dirs)=@_;
+ return map {[read_dir($_)]} @dirs;
+}
+
+sub print_line {
+ my(@cells)=@_;
+ for my $i (0..$#cells) {
+ printf("%-*s", WIDTH, $cells[$i]);
+ print " | " if $i!=$#cells;
+ }
+ print "\n";
+}
+
+sub print_diff {
+ my($dirs, @contents)=@_;
+
+ # print header
+ print_line(@$dirs);
+ print_line(("-" x WIDTH) x scalar(@$dirs));
+
+ # collect files
+ my %files;
+ my %files_dir;
+ for my $i (0..$#$dirs) {
+ my $dir=$dirs->[$i];
+ my @files=@{$contents[$i]};
+ for my $file (@files) {
+ $files{$file}++;
+ $files_dir{$file}{$dir}++;
+ }
+ }
+
+ # print rows
+ for my $file (sort keys %files) {
+ my @row;
+ for my $i (0..$#$dirs) {
+ my $dir=$dirs->[$i];
+ push @row, $files_dir{$file}{$dir} ? $file : "";
+ }
+ print_line(@row) if grep {$_ eq ""} @row;
+ }
+}
+
+@ARGV>1 or die "usage: ch-1.pl dir...\n";
+print_diff(\@ARGV, read_dirs(@ARGV));
diff --git a/challenge-166/paulo-custodio/t/dir_a/Arial.ttf b/challenge-166/paulo-custodio/t/dir_a/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_a/Arial.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_a/Comic_Sans.ttf b/challenge-166/paulo-custodio/t/dir_a/Comic_Sans.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_a/Comic_Sans.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_a/Georgia.ttf b/challenge-166/paulo-custodio/t/dir_a/Georgia.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_a/Georgia.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_a/Helvetica.ttf b/challenge-166/paulo-custodio/t/dir_a/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_a/Helvetica.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_a/Impact.otf b/challenge-166/paulo-custodio/t/dir_a/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_a/Impact.otf
diff --git a/challenge-166/paulo-custodio/t/dir_a/Verdana.ttf b/challenge-166/paulo-custodio/t/dir_a/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_a/Verdana.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Arial.ttf b/challenge-166/paulo-custodio/t/dir_b/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Arial.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Comic_Sans.ttf b/challenge-166/paulo-custodio/t/dir_b/Comic_Sans.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Comic_Sans.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Courier_New.ttf b/challenge-166/paulo-custodio/t/dir_b/Courier_New.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Courier_New.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Helvetica.ttf b/challenge-166/paulo-custodio/t/dir_b/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Helvetica.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Impact.otf b/challenge-166/paulo-custodio/t/dir_b/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Impact.otf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Tahoma.ttf b/challenge-166/paulo-custodio/t/dir_b/Tahoma.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Tahoma.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_b/Verdana.ttf b/challenge-166/paulo-custodio/t/dir_b/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_b/Verdana.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_c/Arial.ttf b/challenge-166/paulo-custodio/t/dir_c/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_c/Arial.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_c/Courier_New.ttf b/challenge-166/paulo-custodio/t/dir_c/Courier_New.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_c/Courier_New.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_c/Helvetica.ttf b/challenge-166/paulo-custodio/t/dir_c/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_c/Helvetica.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_c/Impact.otf b/challenge-166/paulo-custodio/t/dir_c/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_c/Impact.otf
diff --git a/challenge-166/paulo-custodio/t/dir_c/Monaco.ttf b/challenge-166/paulo-custodio/t/dir_c/Monaco.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_c/Monaco.ttf
diff --git a/challenge-166/paulo-custodio/t/dir_c/Verdana.ttf b/challenge-166/paulo-custodio/t/dir_c/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/dir_c/Verdana.ttf
diff --git a/challenge-166/paulo-custodio/t/test-1.yaml b/challenge-166/paulo-custodio/t/test-1.yaml
new file mode 100644
index 0000000000..b8e53f68ca
--- /dev/null
+++ b/challenge-166/paulo-custodio/t/test-1.yaml
@@ -0,0 +1,1005 @@
+- setup:
+ cleanup:
+ args: ../../data/dictionary.txt
+ input:
+ output: |
+ |0xABA7E
+ |0xABA7ED
+ |0xABA7E5
+ |0xABD1CA7E
+ |0xABE7
+ |0xABE75
+ |0xABE77ED
+ |0xAB1DE
+ |0xAB1DE5
+ |0xAB1E
+ |0xAB1E57
+ |0xAB5CE55
+ |0xACCEDE
+ |0xACCEDED
+ |0xACCEDE5
+ |0xACCE55
+ |0xACCE55ED
+ |0xACCE55E5
+ |0xACE
+ |0xACED
+ |0xACE5
+ |0xAC1D
+ |0xAC1D5
+ |0xAC7
+ |0xAC7ED
+ |0xAC75
+ |0xAD
+ |0xADD
+ |0xADDED
+ |0xADD1C7
+ |0xADD1C7ED
+ |0xADD1C75
+ |0xADD5
+ |0xAD5
+ |0xAFFAB1E
+ |0xAFFEC7
+ |0xAFFEC7ED
+ |0xAFFEC75
+ |0xAFF11C7
+ |0xAFF11C75
+ |0xAF1E1D
+ |0xA1D
+ |0xA1DE
+ |0xA1DED
+ |0xA1DE5
+ |0xA1D5
+ |0xA11
+ |0xA11ED
+ |0xA115
+ |0xA151E
+ |0xA151E5
+ |0xA1A5
+ |0xA1BE17
+ |0xA1E
+ |0xA1E5
+ |0xA11A5
+ |0xA11A5ED
+ |0xA11A5E5
+ |0xA11B1
+ |0xA11B1ED
+ |0xA11B15
+ |0xA11
+ |0xA111ED
+ |0xA111E5
+ |0xA5
+ |0xA5CE71C
+ |0xA5CE71C5
+ |0xA51DE
+ |0xA51DE5
+ |0xA55
+ |0xA55A11
+ |0xA55A11ED
+ |0xA55A115
+ |0xA55E5
+ |0xA55E55
+ |0xA55E55ED
+ |0xA55E55E5
+ |0xA55E7
+ |0xA55E75
+ |0xA55157
+ |0xA55157ED
+ |0xA551575
+ |0xA7
+ |0xA7E
+ |0xA71A5
+ |0xA71A5E5
+ |0xA77E57
+ |0xA77E57ED
+ |0xA77E575
+ |0xA771C
+ |0xA771C5
+ |0xBABB1E
+ |0xBABB1ED
+ |0xBABB1E5
+ |0xBABE
+ |0xBABE5
+ |0xBAB1ED
+ |0xBAB1E5
+ |0xBAB1E57
+ |0xBAD
+ |0xBADDE57
+ |0xBADE
+ |0xBAFF1E
+ |0xBAFF1ED
+ |0xBAFF1E5
+ |0xBA11
+ |0xBA11ED
+ |0xBA115
+ |0xBA17
+ |0xBA17ED
+ |0xBA175
+ |0xBA1D
+ |0xBA1DED
+ |0xBA1DE57
+ |0xBA1D5
+ |0xBA1E
+ |0xBA1ED
+ |0xBA1E5
+ |0xBA11
+ |0xBA11AD
+ |0xBA11AD5
+ |0xBA11A57
+ |0xBA11A575
+ |0xBA11ED
+ |0xBA11E7
+ |0xBA11E75
+ |0xBA115
+ |0xBA5E
+ |0xBA5EBA11
+ |0xBA5ED
+ |0xBA5E5
+ |0xBA5E57
+ |0xBA51C
+ |0xBA51C5
+ |0xBA511
+ |0xBA515
+ |0xBA55
+ |0xBA55E5
+ |0xBA57E
+ |0xBA57ED
+ |0xBA57E5
+ |0xBA7
+ |0xBA75
+ |0xBA77ED
+ |0xBA771E
+ |0xBA771ED
+ |0xBA771E5
+ |0xBE
+ |0xBEAD
+ |0xBEADED
+ |0xBEAD1E57
+ |0xBEAD5
+ |0xBEA57
+ |0xBEA575
+ |0xBEA7
+ |0xBEA75
+ |0xBED
+ |0xBEDDED
+ |0xBED5
+ |0xBED51DE
+ |0xBED51DE5
+ |0xBEE
+ |0xBEEF
+ |0xBEEFED
+ |0xBEEF1E57
+ |0xBEEF5
+ |0xBEE5
+ |0xBEE7
+ |0xBEE71E
+ |0xBEE71ED
+ |0xBEE71E5
+ |0xBEE75
+ |0xBEFA11
+ |0xBEFA115
+ |0xBEFE11
+ |0xBEF17
+ |0xBEF175
+ |0xBEF177ED
+ |0xBE1A7ED
+ |0xBE11E
+ |0xBE11ED
+ |0xBE11EF
+ |0xBE11EF5
+ |0xBE11E5
+ |0xBE11771E
+ |0xBE11
+ |0xBE11ED
+ |0xBE111ED
+ |0xBE111E5
+ |0xBE115
+ |0xBE17
+ |0xBE17ED
+ |0xBE175
+ |0xBE5E7
+ |0xBE5E75
+ |0xBE51DE
+ |0xBE51DE5
+ |0xBE57
+ |0xBE57ED
+ |0xBE571A1
+ |0xBE575
+ |0xBE7
+ |0xBE7A
+ |0xBE75
+ |0xB1A5
+ |0xB1A5ED
+ |0xB1A5E5
+ |0xB1B
+ |0xB1B1E
+ |0xB1B11CA1
+ |0xB1B5
+ |0xB1D
+ |0xB1DE
+ |0xB1DE5
+ |0xB1D5
+ |0xB11E
+ |0xB111
+ |0xB111ED
+ |0xB1115
+ |0xB15EC7
+ |0xB15EC7ED
+ |0xB15EC75
+ |0xB17
+ |0xB17E
+ |0xB17E5
+ |0xB175
+ |0xB1AB
+ |0xB1ABBED
+ |0xB1AB5
+ |0xB1ADE
+ |0xB1ADE5
+ |0xB1A57
+ |0xB1A57ED
+ |0xB1A575
+ |0xB1EA7
+ |0xB1EA7ED
+ |0xB1EA75
+ |0xB1ED
+ |0xB1EED
+ |0xB1EED5
+ |0xB1E55
+ |0xB1E55ED
+ |0xB1E55E5
+ |0xB1155
+ |0xCAB
+ |0xCABBED
+ |0xCAB1E
+ |0xCAB1ED
+ |0xCAB1E5
+ |0xCAB5
+ |0xCAC71
+ |0xCAD
+ |0xCADD1E
+ |0xCADD1ED
+ |0xCADD1E5
+ |0xCADE7
+ |0xCADE75
+ |0xCA1F
+ |0xCA11
+ |0xCA11AB1E
+ |0xCA11ED
+ |0xCA115
+ |0xCA5CADE
+ |0xCA5CADED
+ |0xCA5CADE5
+ |0xCA5E
+ |0xCA5ED
+ |0xCA5E5
+ |0xCA55E77E
+ |0xCA57
+ |0xCA57E
+ |0xCA57E5
+ |0xCA571E
+ |0xCA571ED
+ |0xCA571E5
+ |0xCA575
+ |0xCA7
+ |0xCA7CA11
+ |0xCA7CA115
+ |0xCA75
+ |0xCA771E
+ |0xCC
+ |0xCEA5E
+ |0xCEA5ED
+ |0xCEA5E5
+ |0xCEDE
+ |0xCEDED
+ |0xCEDE5
+ |0xCE11BA7E
+ |0xCE11
+ |0xCE11157
+ |0xCE111575
+ |0xCE115
+ |0xC17E
+ |0xC17ED
+ |0xC17E5
+ |0xC171E5
+ |0xC1AD
+ |0xC1A55
+ |0xC1A55ED
+ |0xC1A55E5
+ |0xC1A551C
+ |0xC1A551C5
+ |0xC1EA7
+ |0xC1EA75
+ |0xC1EF
+ |0xC1EF5
+ |0xC1EF7
+ |0xC1EF75
+ |0xC11FF
+ |0xC11FF5
+ |0xC111
+ |0xC5
+ |0xDAB
+ |0xDABBED
+ |0xDABB1E
+ |0xDABB1ED
+ |0xDABB1E5
+ |0xDAB5
+ |0xDAD
+ |0xDADD1E5
+ |0xDAD5
+ |0xDAF7
+ |0xDA111E5
+ |0xDA15
+ |0xDA15E5
+ |0xDA151E5
+ |0xDA111ED
+ |0xDA111E5
+ |0xDA7A
+ |0xDA7ABA5E
+ |0xDA7E
+ |0xDA7ED
+ |0xDA7E5
+ |0xDEAD
+ |0xDEADE57
+ |0xDEAF
+ |0xDEAFE57
+ |0xDEA1
+ |0xDEA15
+ |0xDEA17
+ |0xDEBA5E
+ |0xDEBA5ED
+ |0xDEBA5E5
+ |0xDEBA7E
+ |0xDEBA7ED
+ |0xDEBA7E5
+ |0xDEB17
+ |0xDEB17ED
+ |0xDEB175
+ |0xDEB7
+ |0xDEB75
+ |0xDECADE
+ |0xDECADE5
+ |0xDECEA5E
+ |0xDECEA5ED
+ |0xDECEA5E5
+ |0xDECE17
+ |0xDECE175
+ |0xDEC1BE1
+ |0xDEC1BE15
+ |0xDEC1DE
+ |0xDEC1DED
+ |0xDEC1DE5
+ |0xDED1CA7E
+ |0xDEED
+ |0xDEEDED
+ |0xDEED5
+ |0xDEFACE
+ |0xDEFACED
+ |0xDEFACE5
+ |0xDEFEA7
+ |0xDEFEA7ED
+ |0xDEFEA75
+ |0xDEFECA7E
+ |0xDEFEC7
+ |0xDEFEC7ED
+ |0xDEFEC75
+ |0xDEF1C17
+ |0xDEF1C175
+ |0xDEF1ED
+ |0xDEF1E5
+ |0xDEF11E
+ |0xDEF11ED
+ |0xDEF11E5
+ |0xDEF1A7E
+ |0xDEF1A7ED
+ |0xDEF1A7E5
+ |0xDEF1EC7
+ |0xDEF1EC75
+ |0xDEF7
+ |0xDEF7E57
+ |0xDE1F1ED
+ |0xDE1F1E5
+ |0xDE171E5
+ |0xDE1E7E
+ |0xDE1E7ED
+ |0xDE1E7E5
+ |0xDE11
+ |0xDE11CA7E
+ |0xDE115
+ |0xDE17A
+ |0xDE17A5
+ |0xDE5157
+ |0xDE5157ED
+ |0xDE51575
+ |0xDE7A11
+ |0xDE7A11ED
+ |0xDE7A115
+ |0xDE7EC7
+ |0xDE7EC7ED
+ |0xDE7EC75
+ |0xDE7E57
+ |0xDE7E57ED
+ |0xDE7E575
+ |0xD1ABE7E5
+ |0xD1ABE71C
+ |0xD1A1
+ |0xD1A1EC7
+ |0xD1A1EC75
+ |0xD1A1ED
+ |0xD1A15
+ |0xD1CE
+ |0xD1CED
+ |0xD1CE5
+ |0xD1C7A7E
+ |0xD1C7A7ED
+ |0xD1C7A7E5
+ |0xD1D
+ |0xD1E
+ |0xD1ED
+ |0xD1E5
+ |0xD1E5E1
+ |0xD1E5E1ED
+ |0xD1E5E15
+ |0xD1E7
+ |0xD1E7ED
+ |0xD1E75
+ |0xD11A7E
+ |0xD11A7ED
+ |0xD11A7E5
+ |0xD111
+ |0xD1115
+ |0xD15AB1E
+ |0xD15AB1ED
+ |0xD15AB1E5
+ |0xD15C
+ |0xD15C5
+ |0xD15EA5E
+ |0xD15EA5ED
+ |0xD15EA5E5
+ |0xD155EC7
+ |0xD155EC75
+ |0xD157A57E
+ |0xD157111
+ |0xD1571115
+ |0xD1771E5
+ |0xEA5E
+ |0xEA5ED
+ |0xEA5E1
+ |0xEA5E15
+ |0xEA5E5
+ |0xEA51E57
+ |0xEA57
+ |0xEA7
+ |0xEA75
+ |0xEBB
+ |0xEBBED
+ |0xEBB5
+ |0xEC1EC71C
+ |0xEC57A71C
+ |0xEDD1ED
+ |0xEDD1E5
+ |0xED1B1E
+ |0xED1B1E5
+ |0xED1C7
+ |0xED1C75
+ |0xED1F1CE
+ |0xED1F1CE5
+ |0xED17
+ |0xED17ED
+ |0xED175
+ |0xEE1
+ |0xEE15
+ |0xEFFEC7
+ |0xEFFEC7ED
+ |0xEFFEC75
+ |0xE1A571C
+ |0xE1A571C5
+ |0xE1DE57
+ |0xE1EC7
+ |0xE1EC7ED
+ |0xE1EC75
+ |0xE1F
+ |0xE11C17
+ |0xE11C17ED
+ |0xE11C175
+ |0xE117E
+ |0xE117E5
+ |0xE117157
+ |0xE15E
+ |0xE5CA1A7E
+ |0xE57A7E
+ |0xE57A7E5
+ |0xFAB1E
+ |0xFAB1E5
+ |0xFACADE
+ |0xFACADE5
+ |0xFACE
+ |0xFACED
+ |0xFACE1E55
+ |0xFACE5
+ |0xFACE7
+ |0xFACE7ED
+ |0xFACE75
+ |0xFAC1A1
+ |0xFAC1A15
+ |0xFAC11E
+ |0xFAC7
+ |0xFAC75
+ |0xFAD
+ |0xFADE
+ |0xFADED
+ |0xFADE5
+ |0xFAD5
+ |0xFA11
+ |0xFA11ED
+ |0xFA115
+ |0xFA11
+ |0xFA111B1E
+ |0xFA115
+ |0xFA15E
+ |0xFA15E57
+ |0xFA5C157
+ |0xFA5C1575
+ |0xFA57
+ |0xFA57ED
+ |0xFA57E57
+ |0xFA575
+ |0xFA7
+ |0xFA7A1
+ |0xFA7E
+ |0xFA7ED
+ |0xFA7E5
+ |0xFA75
+ |0xFA77E57
+ |0xFA771E5
+ |0xFA771E57
+ |0xFEA51B1E
+ |0xFEA57
+ |0xFEA57ED
+ |0xFEA575
+ |0xFEA7
+ |0xFEA75
+ |0xFECE5
+ |0xFED
+ |0xFED5
+ |0xFEE
+ |0xFEEB1E
+ |0xFEEB1E57
+ |0xFEED
+ |0xFEED5
+ |0xFEE1
+ |0xFEE15
+ |0xFEE5
+ |0xFEE7
+ |0xFE11
+ |0xFE11ED
+ |0xFE11E57
+ |0xFE115
+ |0xFE17
+ |0xFE17ED
+ |0xFE175
+ |0xFE7A1
+ |0xFE7ED
+ |0xFE71D
+ |0xF1B
+ |0xF1BBED
+ |0xF1B5
+ |0xF1DD1E
+ |0xF1DD1ED
+ |0xF1DD1E5
+ |0xF1E1D
+ |0xF1E1DED
+ |0xF1E1D5
+ |0xF1E57A
+ |0xF1E57A5
+ |0xF1F71E5
+ |0xF11E
+ |0xF11ED
+ |0xF11E5
+ |0xF11E7
+ |0xF111
+ |0xF111ED
+ |0xF111E7
+ |0xF111E7ED
+ |0xF111E75
+ |0xF1111E5
+ |0xF1115
+ |0xF15CA1
+ |0xF15CA15
+ |0xF157
+ |0xF1575
+ |0xF17
+ |0xF175
+ |0xF177ED
+ |0xF177E57
+ |0xF1A11
+ |0xF1A11ED
+ |0xF1A115
+ |0xF1A7
+ |0xF1A75
+ |0xF1A77ED
+ |0xF1A77E57
+ |0xF1EA
+ |0xF1EA5
+ |0xF1ED
+ |0xF1EE
+ |0xF1EECE
+ |0xF1EECED
+ |0xF1EECE5
+ |0xF1EE5
+ |0xF1EE7
+ |0xF1EE7ED
+ |0xF1EE7E57
+ |0xF1EE75
+ |0xF11ED
+ |0xF11E5
+ |0xF11E57
+ |0xF117
+ |0xF1175
+ |0xF1177ED
+ |0xFE7E
+ |0xFE7E5
+ |0x1CE
+ |0x1CED
+ |0x1CE5
+ |0x1C1C1E
+ |0x1C1C1E5
+ |0x1C1E57
+ |0x1D
+ |0x1DEA
+ |0x1DEA1
+ |0x1DEA1157
+ |0x1DEA15
+ |0x1DEA5
+ |0x1D1E
+ |0x1D1ED
+ |0x1D1E5
+ |0x1D1E57
+ |0x1F
+ |0x1F5
+ |0x11
+ |0x111
+ |0x111
+ |0x1111C17
+ |0x1115
+ |0x15
+ |0x151E
+ |0x151E5
+ |0x17
+ |0x17A11C
+ |0x17A11C5
+ |0x175
+ |0x175E1F
+ |0x1AB
+ |0x1ABE1
+ |0x1ABE1ED
+ |0x1ABE15
+ |0x1AB5
+ |0x1ACE
+ |0x1ACED
+ |0x1ACE5
+ |0x1AC1E57
+ |0x1AD
+ |0x1ADE
+ |0x1ADED
+ |0x1ADE5
+ |0x1AD1E5
+ |0x1AD1E
+ |0x1AD1ED
+ |0x1AD1E5
+ |0x1AD5
+ |0x1A1D
+ |0x1A55
+ |0x1A55E5
+ |0x1A57
+ |0x1A57ED
+ |0x1A575
+ |0x1A7E
+ |0x1A7E57
+ |0x1A771CE
+