9 s/^.*? -> b\n/3176 -> b\n/m;
13 if (s/^(\d+) -> (\w+)\n//m) {
14 ($wire, $val) = ($2, $1);
15 } elsif (s/^NOT (\d+) -> (\w+)\n//m) {
16 ($wire, $val) = ($2, $1 ^ 0xFFFF);
17 } elsif (s/^(\d+) AND (\d+) -> (\w+)\n//m) {
18 ($wire, $val) = ($3, $1 & $2);
19 } elsif (s/^(\d+) OR (\d+) -> (\w+)\n//m) {
20 ($wire, $val) = ($3, $1 | $2);
21 } elsif (s/^(\d+) RSHIFT (\d+) -> (\w+)\n//m) {
22 ($wire, $val) = ($3, $1 >> $2);
23 } elsif (s/^(\d+) LSHIFT (\d+) -> (\w+)\n//m) {
24 ($wire, $val) = ($3, ($1 << $2) & 0xFFFF);
31 # say "$wire => $val";
32 last if $val !~ /\A\d+\z/;