+use 5.014;
use utf8;
use List::Util qw( pairs );
)
],
'<abbr title="Royal Mail 4-State Customer Code">RM4SCC</abbr>' => [
- map { sprintf
- '<svg width="20" height="20" viewBox="0 0 8 6">'
- . '<path d="M1%s"/></svg>',
- join ' m2',
- map { sprintf ',%dv%dm0,-%d',
- ($_ & 1 ? 0 : 2), 2 + ($_ & 2) + ($_ & 1) * 2,
- ($_ & 1 ? 0 : 2) + 2 + ($_ & 2) + ($_ & 1) * 2,
- }
- split //
+ map {
+ my $len = length $_;
+ !$len ? '' : sprintf(
+ '<svg width="%d" height="20" viewBox="0 0 %d 6">'
+ . '<path d="M1%s"/></svg>',
+ $len * 5, $len * 2,
+ join ' m2',
+ map { sprintf ',%dv%dm0,-%d',
+ ($_ & 1 ? 0 : 2), 2 + ($_ & 2) + ($_ & 1) * 2,
+ ($_ & 1 ? 0 : 2) + 2 + ($_ & 2) + ($_ & 1) * 2,
+ }
+ split //
+ );
}
qw(
2121 2301
1032 1212 1230 3012 3030 3210
1122 1302 1320 3102 3120 3300
0033
- ) # 0 for space
+ ), # 0 for space
+ '', 1, 3 # start/end
+],
+"D'ni" => [
+ map {
+ state $window = 'M-.5,-.5H12.5V12.5H-.5Z';
+ state $v = [
+ '',
+ 'M0,6 12,6',
+ 'M0,12 Q6,6 12,12',
+ 'M0,6 6,12 12,6',
+ 'M3,0 3,6 12,6',
+ 'M0,0 12,12 M0,12 12,0', # cross
+ 'M5.5,6 h1', # dot
+ ];
+ state $h = [
+ '',
+ 'M6,0 6,12',
+ 'M0,0 Q6,6 0,12',
+ 'M6,-.5 0,6 6,12.5',
+ 'M6,12 6,3 12,3',
+ ];
+ sprintf '<svg width="20" height="20" viewBox="-.5 -.5 13 13"><path d="%s"/></svg>',
+ $window . ($h->[$_ % 5] . $v->[$_ / 5] || $v->[6]);
+ } 0 .. 5*5
],
'Pigpen' => [
map {