6 sprintf('<small style="line-height:2ex">%s</small> ',
8 join "<br>\n", '•' x $2, '•' x $3,
13 my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20);
16 latnuc => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }],
17 latnlc => [qw{ a b c d e f g h i j k l m n o p q r s t u v w x y z }],
18 latfsuet => [qw{ a b c d e f g h i j k l m n o p q r ſ s t u v w x y z }],
20 map { pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
21 8F7a9c 847a9c 86Da9c 801a9c 84Aa9c
22 8CEa9c 8F0 815aa2 892a9c 892a9c9A2aac
24 819a9c 876a9c 840a9caA1 8F0a9caA1 81Aa9c
25 903a9c 8FBa9c 815a9c 80Ea9c 887a9c
26 806a9c 89Aa9c 800a9c945aaa
28 brai => [qw{ ⠁ ⠃ ⠉ ⠙ ⠑ ⠋ ⠛ ⠓ ⠊ ⠚ ⠅ ⠇ ⠍ ⠝ ⠕ ⠏ ⠟ ⠗ ⠎ ⠞ ⠥ ⠧ ⠺ ⠭ ⠽ ⠵ }],
29 morse => [map {tr/.-/‧‑/r} qw{
30 .- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. --
31 -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --..
34 11 12 13 14 15 21 22 23 24 -24 25 31 32
35 33 34 35 41 42 43 44 45 51 52 53 54 55
38 11 12 13 14 21 22 23 24 31 -31 -13 32 33
39 34 41 42 -13 43 44 15 51 52 53 -25 -31 54
42 map { '<svg width="20" height="20" viewBox="0 0 30 30">'.$_.'</svg>' }
44 <path fill="$C{blue}" d="M0,0 h30 l-7.5,15 7.5,15 h-30 z"/>
45 <path fill="white" d="M0,0 h15 v30 h-15"/>
47 <path fill="$C{red}" d="M0,0 h30 l-7.5,15 7.5,15 h-30 z"/>
49 <path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
50 <path fill="white" d="M0,6 h30 v18 h-30" />
51 <path fill="$C{red}" d="M0,12 h30 v6 h-30" />
53 <path fill="$C{yellow}" d="M0,0 h30v30 h-30z"/>
54 <path fill="$C{blue}" d="M0,6 h30 v18 h-30"/>
56 <path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
57 <path fill="$C{blue}" d="M0,0 h30 v15 h-30"/>
59 <path fill="white" d="M0,0 h30v30 h-30z"/>
60 <path fill="$C{red}" d="M15,0 l15,15 -15,15 -15,-15"/>
62 <path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
63 <path fill="$C{yellow}" d="M 0,0 h5 v30 h-5"/>
64 <path fill="$C{yellow}" d="M10,0 h5 v30 h-5"/>
65 <path fill="$C{yellow}" d="M20,0 h5 v30 h-5"/>
67 <path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
68 <path fill="white" d="M0,0 h15 v30 h-15"/>
70 <path fill="$C{yellow}" d="M0,0 h30v30 h-30z"/>
71 <circle fill="black" r="7.5" cx="15" cy="15"/>
73 <path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
74 <path fill="white" d="M0,10 h30 v10 h-30"/>
76 <path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
77 <path fill="$C{yellow}" d="M0,0 h15 v30 h-15"/>
79 <path fill="$C{black}" d="M0,0 h30v30 h-30z"/>
80 <path fill="$C{yellow}" d="M0,0 h15 v15 h-15 M15,15 h15 v15 h-15"/>
82 <path fill="white" d="M0,0 h30v30 h-30z"/>
83 <path fill="$C{blue}" d="M4,0h22l-11,11 M4,30h22l-11,-11 M0,4v22l11,-11 M30,4v22l-11,-11"/>
84 <!--path fill="$C{blue}" d="M3,0h24l-12,12 M3,30h24l-12,-12 M0,3v24l12,-12 M30,3v24l-12,-12"/-->
86 <path fill="white" d="M0,0 h30v30 h-30z"/>
87 <path fill="$C{blue}" d="
88 M0,0 h7.5v7.5h-7.5 m0,7.5h7.5v7.5h-7.5
89 m7.5,-15 h7.5v7.5h-7.5 m0,7.5h7.5v7.5h-7.5
90 m7.5,-30 h7.5v7.5h-7.5 m0,7.5h7.5v7.5h-7.5
91 m7.5,-15 h7.5v7.5h-7.5 m0,7.5h7.5v7.5h-7.5
94 <path fill="$C{yellow}" d="M0,0 h30v30 h-30z"/>
95 <path fill="$C{red}" d="M0,0 h30 v30"/>
97 <path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
98 <path fill="white" d="M10,10 h10 v10 h-10"/>
100 <path fill="$C{yellow}" d="M0,0 h30v30 h-30z"/>
102 <path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
103 <path fill="$C{yellow}" d="M12.5,0 v30 h5 v-30"/>
104 <path fill="$C{yellow}" d="M0,12.5 h30 v5 h-30"/>
106 <path fill="white" d="M0,0 h30v30 h-30z"/>
107 <path fill="$C{blue}" d="M10,10 h10 v10 h-10"/>
109 <path fill="white" d="M0,0 h30v30 h-30z"/>
110 <path fill="$C{red}" d="M0,0 h10 v30 h-10"/>
111 <path fill="$C{blue}" d="M20,0 h10 v30 h-10"/>
113 <path fill="white" d="M0,0 h30v30 h-30z"/>
114 <path fill="$C{red}" d="M0,0 h15 v15 h-15 M15,15 h15 v15 h-15"/>
116 <path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
117 <path fill="white" d="M4,0h22l-11,11 M4,30h22l-11,-11 M0,4v22l11,-11 M30,4v22l-11,-11"/>
119 <path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
120 <path fill="white" d="M5,5 h20 v20 h-20"/>
121 <path fill="$C{red}" d="M10,10 h10 v10 h-10"/>
123 <path fill="white" d="M0,0 h30v30 h-30z"/>
124 <path fill="$C{blue}" d="M12.5,0 v30 h5 v-30"/>
125 <path fill="$C{blue}" d="M0,12.5 h30 v5 h-30"/>
127 <path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
128 <path fill="$C{yellow}" d="M0,0h6l-6,6 M12,0h6l-18,18v-6 M24,0h6l-30,30v-6
129 M30,6v6l-18,18h-6 M30,18v6l-6,6h-6"/>
131 <path fill="$C{black}" d="M0,0 h30v30 h-30z"/>
132 <path fill="$C{blue}" d="M30,0 v31 l-15,-15"/>
133 <path fill="$C{yellow}" d="M0,0 h31 l-15,15"/>
134 <path fill="$C{red}" d="M0,30 h31 l-15,-15"/>
140 s/[1-4]\K(?=[4-9])/ /;
142 s{(.)(?=.)}{<span style="position:absolute">$1</span>}
143 or s/^/<span>/ and $_ .= '</span>';
147 1 2 3 4 5 6 7 21 31 46 14 15 16 17 23
148 24 25 26 27 34 35 47 56 57 36 67
151 code39 => [map { tr/012/ ❘❙/r } qw{
152 211012 121012 221011 112012 212011 122011 111022 211021 121021 112021
153 211102 121102 221101 112102 212101 122101 111202 211201 121201 112201
154 201112 102112 202111 101212 201211 102211
158 '<svg width="20" height="20" viewBox="0 0 8 6">'
159 . '<path stroke="black" d="M1%s"/></svg>',
161 map { sprintf ',%dv%dm0,-%d',
162 ($_ & 1 ? 0 : 2), 2 + ($_ & 2) + ($_ & 1) * 2,
163 ($_ & 1 ? 0 : 2) + 2 + ($_ & 2) + ($_ & 1) * 2,
169 0132 0312 0330 2112 2130 2310
170 1023 1203 1221 3003 3021 3201
171 1032 1212 1230 3012 3030 3210
172 1122 1302 1320 3102 3120 3300
175 pigpen => [qw( ᒧ ᑌ ᒪ ᑐ □ ᑕ ᒣ ᑎ ᒥ ᒲ ᕫ ᒷ ᕭ 🞔 ᕮ ᒬ ᕬ ᒯ ᐯ ᐳ ᐸ ᐱ ᐁ ᐅ ᐊ ᐃ )],
176 wingdings => [qw{ ✌ 👌 👍 👎 ☜ ☞ ☝ ☟ ✋ ☺ 😐 ☹ 💣 ☠ ⚐ 🏱 ✈ ☼ 💧 ❄ 🕆 ✞ 🕈 ✠ ✡ ☪ }],
178 map { sprintf '<span style="background:#%s" title="%s">%s</span>', split(/:/, $_), chr(8195) }
180 F0A3FF:Amethyst 0075DC:Blue 993F00:Caramel 4C005C:Damson 191919:Ebony
181 005C31:Forest 2BCE48:Green FFCC99:Honeydew 808080:Iron 94FFB5:Jade
182 8F7C00:Khaki 9DCC00:Lime C20088:Mallow
183 003380:Navy FFA405:Orpiment FFA8BB:Pink 426600:Quagmire FF0010:Red
184 5EF1F2:Sky 00998F:Turquoise E0FF66:Uranium 740AFF:Violet 990000:Wine
185 FFFF80:Xanthin FFFF00:Yellow FF5005:Zinnia