forked from denisenes/Haskell-Malbolge-interpreter
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cat.mb
138 lines (138 loc) · 10.7 KB
/
cat.mb
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
bP&A@?>=<;:9876543210/.-,+*)('&%$T"!~}|;]yxwvutslUSRQ.yx+i)J9edFb4`_^]\yxwRQ)(
TSRQ]m!G0KJIyxFvDa%_@?"=<5:98765.-2+*/.-,+*)('&%$#"!~}|utyrqvutsrqjonmPkjihgfe
dc\DDYAA\>>Y;;V886L5322G//D,,G))>&&A##!7~5:{y7xvuu,10/.-,+*)('&%$#"yb}|{zyxwvu
tmVqSohmOOjihafeHcEa`YAA\[ZYRW:U7SLKP3NMLK-I,GFED&%%@?>=6;|9y70/4u210/o-n+k)"!
gg$#"!x}`{zyxZvYtsrqSoRmlkjLhKfedcEaD_^]\>Z=XWVU7S6QPON0LKDI,GFEDCBA#?"=};438y
6543s1r/o-&%*k('&%e#d!~}|^z]xwvuWsVqponPlOjihgIeHcba`B^A\[ZY;W:UTSR4PI2MLKJ,,A
FE(&B;:?"~<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\xwvoXsrqpRnmfkjMKg`_GG\aDB^A?[><X;
9U86R53ONM0KJC,+FEDC&A@?!!6||3876w4-tr*/.-&+*)('&%$e"!~}|utyxwvutWlkponmlOjchg
`edGba`_XW\?ZYRQVOT7RQPINML/JIHAFEDC&A@?>!<;{98yw5.-ss*/pn,+lj(!~ff{"ca}`^z][w
ZXtWUqTRnQOkNLhgfIdcFaZ_^A\[Z<XW:U8SRQPOHML/JIHG*ED=%%:?>=~;:{876w43210/(-,+*)
('h%$d"ca}|_z\rqYYnsVTpoRPledLLafIGcbE`BXW??TY<:V97S64P31M0.J-+G*(DCB%@?"=<;|9
8765.3210p.-n+$)i'h%${"!~}|{zyxwvuXVlkpSQmlOjLbafIGcbE`BXW??TY<:V97S64P31M0.J-
+G*(D'%A@?"=<}:98y6543,1r/.o,+*)j'&%eez!~a|^tsx[YutWUqjinQOkjMhJ`_dGEaDB^A?[><
X;9U86R53O20LKJ-HG*ED'BA@?>7~;:{y7x5.3210q.-n+*)jh&%$#"c~}`{z]rwvutWrkpohmPkji
hafI^cba`_^A\[>YXW:UTS5QP3NM0KJ-HGF?D'BA:?>=~;:z8765v32s0/.-nl$#(ig%fd"ca}|_]y
rqvYWsVTpSQmPNjMKgJHdGEa`_B]\?ZY<WVUTMR5PO20LK.IHA))>CB%#?87}}49zx6wu3tr0qo-nl
*ki'hf$ec!~}`{^yxwvotsrUponQlkMihKIe^]EEZ_B@\?=Y<:V97S64P31M0.J-+GFE(C&A@?8=<;
:{876w43s10qo-&%kk"'hf$ec!b`|_]y\ZvYWsVTpSQmlkNiLgf_dcba`C^]\?ZY;WV97SLK33HM0.
J-+G*(D'%A$">!};|z8yw543t1r/(-,+*)(i&%fd"!~}|_t]xwvutslqTonmPkjLhKIeHFbaD_AWV[
><XW:U7MLQ42N1/K.,++@ED'%A:9>!};|z8yw5vt2sq/.-n%*k('&%fdzy~a_{^\x[YutWrTjinQOk
NLhKIeHFba`CBW@>>=XQV9TSRQ4ON0L/-IH+)E>=B%#?>!<|438yw5vt21r/o'&+lj(ig%fd"ca}`^
z][wZXWWlqpoRQlejMhgfeHcbaCCX@@UZYX;:UTM6443NMLEJ-HGFE(CBA##8~~5:98yx543,1r/.-
,m*)(hh}eez!~}`_zyxwpYWWVqponmfkNihgfIdcbDDYAAV[ZY<;VUTSRKP3NMLK.IH*FE(C%;:?"~
<}{98y6v.-2sq/pn,mk)jh&ge#"c~`vu]]rwvuXWrqponmfOMMLgfedcbaZ_B]\[>YXWVU86RKJO20
LK.I+A@E(&BA$?!76;|z8yw5vtss*/.o,l$#(ig%fd"ca}`^zy\ZvonsrqTSnmlkjihafIdcFDZY^A
?[><X;9U8655JON1/KDCH+)E(&BA$?!76;|z8yw5vt21r/o'&+lj('&gf#"!~}|{zs\wvutsUkponm
OeNchg`ed]bECCBW\?ZYX;VU7S64P31ML/-IBAF)'C&$@#!=~|:{y7xv4usrr).-,ml#(i&%f#"!~}
`^zsrZZotsrUTohQOONihafIdcbECYX]@>==RWV9T6LKP31M0.JI,G)?>C&$@#!=~|:{y7xv4us1rp
.-,ml)(!&g$#d!~}__tyx[vXnmrqpSRmlkdMKKJedcb[`C^]\?ZY;W:8T75Q42NM0K-CBG*(DC&$@9
8=~|:9z7w/.3tr0qo-nl*ki'hf$ecbbw|{z]\wvutmrUSSRmlkjihafIdcbE`_A]@>Z=;WV9T6LKP3
100EJI,*F?>C&$@#!=~|:{y7xvuu,10/po,+*)('~%fddc~}|{zyxqZutsVqpoQQfkjMKg`_dGEa`C
^@VUZ=;::OTS64PIHM0.JI,*F?>C&$@#!=~|:{y7xv4us1rp.-,ml)('&%$#zcaa`{zyxwvutmrUpo
RmlkMMbJJ_dcbED_^]\[ZYXQV9TSRQP2HMLKJ,B+@EDC<A:?"~~}4{876w43s1rpoo&+*k(h~}$ec!
b`|_]y\ZvYWsVTpSQmPNjihKJ_HFFE`Y^A\[>YXWVU86RKJO20//DIH+F(>=B%#?"~<}{9zx6wu3tr
0qo-nl*kihh}$#"cb}v{^yx[vutVVkpoRmOedihgJIdc\ECCB]\[TY<WVU86LKP31ML/-IBAF)'C&$
@#!=~|:9z7w/.3tr0qo-nl*kihh}$#"cb}|{zs\ZZYtsrqpinQlkNihJII^cbEC_XW\?=Y<:V97S64
P31M0.J-+G*(D'%A@?"!<;:9816w432s0/o-nl*ki'&g$dzy~a_{^\xwZXtmlqTRnQOkNLhKIeHFbE
C_B@\[Z=<WVUTSRK4221LKJIHGF?D'BA$?>=<;|z8105vtss*/.o,l$#(ig%fd"ca}`^z][wZXtWUq
TRnQONNchgfIHcba`_^]V[>YX;VUT66KPO2M/EDIHG*)DCBA@?>=6}:9876v.3210p(o&+*)"'~%fd
dcx}`{z]xwvXtsVUjoRPPOjcLgfeHcbD`CA@@UZY<W9ONS64P31M0.J-+G*(D'%A$">!};:9zy6/vt
ts0/(-n+*k('gff{"!b`|uty\ZvYWsVTpSQmPNjMKgJHdGEaDB^]\?>YXQV9TSR5PO1M0.JI,*F?>C
&$@#!=~|:{y7xv4us1rp.omll#('&gf#"!xa|{zy\ZpotWUqpSnPfejMKgJHdGEaDB^A?[><X;9U86
R53ONM0/JIHGF?(&&%@?>=<;49z7654u21q/pnmm$)(i&f|{"ca}|_]yrqvYWVVkpoRmOediLJfIGc
FD`CA]@>Z=;W:877LQPO21LKJIHG@E(CB%@?>=<}{9216wutt+0/p-m%$)jh&ge#db~a_{^\x[YuXV
rUSoRPOOdihgJIdcba`_^W@>>=XWVUTSRQJO2ML/JIH**?DC&A#98=<;|{87654321*/p-,+*)i!&%
$#cybw|{tyxqvYtsVTponmlONcLJJId]bE`_^A?UTY<:V97SR5P2HGL/-,,AFE(C%;:?"~<}{9zx6w
u3tr0qo-,+lk(!&g$#"c~}|^^sxwZXtmlqpoRQlkdMKKJedc\aD_^A?UZYXW:9TSRKP3NML/JIH**?
DC&A#98=~|{{276wu3,+0qo-nl*ki'&ge#zy~a_{^\x[YuXVrUSoRPOOdihgJIdcbaZCAA@[ZYXWPU
8SR5PO100EJI,*F?>C&$@#!=~|:{y7xv4us1rp.om+lj('&gf#"!~}v{^yxwZutVrUSoRPlkNLha`e
HFbEC_B@\?=Y<:V97S64PO2M/EDI,*FED'&A@?>=<5|zzy6543210).o,+l)('&%fd"yx}`^]]rwvY
tVlkpSQmPNjMKgJHdGEaDB^A?[><X;988MRQP32MLKJIHG@E(CB%@?>~~5:9z7w/.321rq.-,+*)('
~g$#"!~`v{zyxZpYnsrqjohmPNNMbgJedcFa`_AAV[Z=X:POT75Q42NM0K-CBG*(''<A@#>~65:{y7
xv4us1rpoo&+*)ji&}fddc~}v{^yxwZutVrUSonQlNdchKIeHFbEC_B@\?=Y<:V97SR53OHGLKJ-,G
F?D'%%$?>=6}{9z705432sr/.-&mkkj'&%${"c~}|_]srZZotsrUTonmlejMhgfIdcbDDY^]@>ZSRW
VU87RQPONG0KJ-+GFEDC&%@?>=<;49zxxw43210/.'n+*)j'&f$#d!awv{^\xwZXtmlqTRnQOkjMKg
`_dGEaDB^A?[><X;9U8655JON1L.DCH+)((=BA@#"=<;:9870wuut10/.-,+*#(i&%f#"baav{z][w
potWUqTRnQOkNLhKIeHFbEC_B@\?=YXW:9TSRQPONMFK.IHGFE'=BA@?!7~5:9816/4u210q.-,+*k
i'~}$ec!b`|_]\\qvuXsUkjoRPlOMiLJfIGcFD`_B@\UTYXW:9N7RQPO2MLK--BGF)'C<;@#!=<}:z
216wu3tr0qo-nl*ki'hf$ec!b`|_]\\qvutWVqponmleNihgfIdcEaDB^A?>>SXW:8TMLQ42N1/K.,
H+)E(&B%#?"~<;:{z7654321*/p-,+*)i!&%$#cybwv{zyxqvYtsrqTRhglOMiLJfeHcE[Z_B@??TY
X;V8NMR53O20L/-I,*F)'CB%@"87}}4987xw4-trrq.-&+l)('&g$#c!b`__tyx[YunmrUSonQlNdc
hKIeHFbEC_B@\?=Y<:99NSRQ43NMFK.IH+FEDCB%#?87}}4987xw432+rppo,+*)"'h%$e"!a}|_z\
rqvYWsVTpSQmPNjMKgJHdGEaDB^A?>>SXWV98SRQPIN1LK.IHG))>CB%@"87<;:{z76543,sqqp-,+
*)(!&g$#d!~}_{z]\wvutsrkpSnmlOMcbgJHdGEa`C^@VUZ=;::OTS6Q3IHM0.J-+G*(D'%A$">!};
|z876wv3210/.-&mkkj'&%$#"!~w|_zy\wvXWWlqpSQmfejMKgJHdGEaDB^A?[><X;9U86R53ONM0/
JIHGFEDC<A$?>=<;{38765u-t+0/.',%*k('&g$#"bbw|{^\xqpuXVUUjonQOkdchKIeHFbaDB^WV[
><X;9U86R53O20L/-I,*))>CBA$#8!<;:9z76543tr0)(-nl*kihh}$#db~wv{^\[[putWrTjinQOk
NLhKIeHFbEC_B@\?=<<QVUT76QPONMLKJC,GFEDC%;@?>=}5|3876/4-2sqqp',m*)('hf|{"ca}`^
]]rwvYtVlkpSQmPNjMKgJHdGEaDB^A?[><;;PUTS65JO2MLKJ-HG)((=BA$">76;|z8yw5vt2sq/pn
,mk)jh&ge#"ca}vu]]rwvuXWrkTonmlOjiKJJ_dcFD`YX]@>==RWV9T6LKP31M0.J-+G*(D'%A@#!=
65{{2765vu21*/p-,m*)('&ge#zyaav{zy\[vutmVTTSnmlkdiLgfIdcEa`C^@VUZ=;W:8T75Q42N1
/K.,H+)E(&B%#""7<;:{z7654-2s0/p-,+kk"'&g$dzy~}|_^yxwvunWUUTonmlkjchKfedGE[Z_B@
\[>Y;QPU86R53ON1L.DCH+)ED'B$:9>!};|z8yw5vt210qp-,+*)('~geed!~}|{zyxqvYtsrUponP
PejiLJf_^cbaDC^]\[ZYXWPU8SRQPO1GLKJI+A*?DC<A@9>!}}|927x54u210/.om+$#(ig%$ec!xw
|_]y\ZvYWsVTpSQmPNjMKgJHdGEa`_BA\UZ=XWV9TSR44INM0K-CBG*(''<A@#!=65:{y76w4t,+0q
o-nl*ki'hf$ec!b`|_]y\ZYYnsrqTSnmfOMMLgfe^cFa`_B]\>Z=;WV9T6LKP3100EJI,*F?>C&$@?
"=}549zx6wu3tr0qo-,+lk('&}$e"!~a|{]y\ZvuXVrkjoRPlOMihKfH^]bECBBW\[>Y;QPU86R53O
20L/-I,*F)'C&$@?>!~;:981xvvu210/.',m*)(i&%e#"c~`vuz][wZXtWUqpSnPfejMKgJHdGEaDB
^A?[><XWV98SRQPOHM0KJI,GF(DC&A#98=~|:{y7xv4us10q.n&%*kihh}$#"cb}|{zyxqZXXWrqpo
nmlejMhgfIdcEaDB^A?[Z=X:POT7544INM0K-CBG*(D'%A$">!}||3876wv3210/.-&+ljji&%$#"!
~}v_zy\wvXtsVqSihmPNMMbgfIGc\[`CA]@>==RWV9T6LKP31M0.J-+G*(D'%A$"!!6;:9zy654321
0/(o,+*)(h~%$#"bxav{zyrwpuXVVUjoRmlkNihgII^cbEC_XW\?=<<QVU86RKJO20L/-IH+)E>=B%
#?"~<}{9zx6wu3tr0qonn%*)(ih}$e"!~a_uty\ZvuXsUkjoRPlOMihKfH^]bEC_^A\>TSX;9U86R5
3O20LKJ-,G@)''&A@9>!<;:{87wvv-21rp.'&+lj(ig%fd"ca}`^z][wZXtWUqTRnmlONihafIdcFa
`B^A?>>SXW:U7MLQ42N1/..CHG*(D=<A$">!};|z8yw5vt2sq/.-nm*)(!hffe"!~}v{^yx[vutVVk
poRmOedihgJIdcbaZ_B@@?ZYXWVUNS6QPO2ML.J-+G*(DC&A#98=~|:{y7xv43tr0)(-nl*ki'hf$e
c!b`|{z]\wvutsrkpSQQPkjihgfe^Gba`C^]?[><X;9U86RQ4O1GFK.,H+)E(&BA$">76;|z8yw5vt
21r/o'&+lj(igff{"!~a`{zyxwvunWUUTonmlkjihafIdcbE`_^@@U==RWVU87RQPONMLKDI,GFEDC
%;@?>=}5|3876/4-2s0/p-,+*)jh&}|#db~a_{z]xZpotWUqTRQQfkjMhJ`_dGEaDB^A?[><X;9U86
RQP32G0..-HAF)DC&A@?!!6;:{8x0/4usrr).-nl*#"'hf$#d!awv{^\x[YXXmrqTRngfkNLhKIeHF
bEC_B@\?=<<QVUT76QJO2MLK.IH*F)'C&$@#!=<}:z216wu32s0p(',mk)jh&ge#db~a_{^\xwvYXs
rkTRRQlkjchKfeHcba`_B@\UT<<QVUT76QPOHM0KJI,*@?D'%$$9>=<}|9876/vtts0/.-,%*k('&g
$#"!~a_{tsx[YuXVrUSRRglkNLha`eHFbEC_^A?[TSX;9U86R53O20L/-IHG*)DCBA@9>!<;:{87w5
vt2sqpp',+l)i!~%fd"ca}|_z\rqvYWsVTpSQmPNjMKJJ_dcbED_^]\[ZS<::9TSRQPONGL/JIH+FE
'CB%@"87<}{9zx6wu32s0p(',mk)jh&ge#db~a_{^\xwvYXsrqponmfkNLLKfedcba`_XA\[Z=XW98
8MRQ42NGFK.,HG*(D=<A$">=~;{327xv43tr0)(-nl*ki'hf$ec!b`|{^y[qputsVUponmlkjibKfe
dcbDZ_^]\>T=RWVOTSLQ4221FK.IHG*ED&%%:?>!<|438ywvv-21r/o'&+lj('h%e{z!b`|_]\\qvu
XsUkjoRPlOMiLJII^cbaDCX]@[ZY<WVU77LQP31MFEJ-+G*(DC&$@98=~|:{yxx/43tr0)(-nl*ki'
hf$ec!b`|_]\\qvutWVqjSQQPkjchKfedGbaC_^A\>TSX;988MRQ4O1GFK.,HG*E'=<A$">!};|z8y
w5vt2sqpp',+lj(!~%$#dc~}v{^yxwZutVUUjonQlNdchKIedGEaZY^A?[><X;988MRQ4O1GFK.,H+
)E(&%%:?>=~}:981xvvu210/(-n+*)j'&f$#d!awv{^\[[putWrTjinQOkNLhKIeHFbEC_B@\?=Y<:
99NSRQ43NMLKDI,**)DCBA@9"=<;|987ww.32sq/(',mk)(ig%|{"ca}`^zy\wYonsVTpSQmPNjMKg
JHdGEDDY^]@>ZSRWVU87RQPONG0..-HGFEDC<A$?>=~;:zyy054u2r*).om+lj(ig%$e"bxw|_]y\Z
vYWsVTpSQmPNMMbgfIdF\[`CA@@UZYX;:UTSRQPIN1//.IHGFEDC<%@?>!<;{98y6v.-2sq/.o,l$#
(ig%fd"ca}`^z][wZXtWUqTRnmPkMcbgJHGG\a`_BA\[ZYXWVO8665PONMLKJIBG*EDC&A@?!!6;:{
y70/4us10qo-&%*ki'&g$dzy~a_{^\x[YXXmrqTRngfkNLhKIeHFbEC_B@\[Z=<WVUTSRQPIN1LKJI
H*@EDCB$:#8=<;4927xvvu,s0/.o,+*jj!&%f#cyx}`^z][wvYtVlkpSQmPNjMKJJ_dcFaCYX]@>Z=
;W:8T75Q4211FKJI,+@)''&A:?"=<;|98x65v3s+*/pn,mk)jh&ge#db~a_{^\x[YuXVUUjonmPOjc
hKfedGbaC_B@\[><XQPU86RQ4O1GFK.,H+)E(&B%#?"~<}{987xw43,sqqp-,+$)j'&%f#"b~}`^zs
rwZXtWUqpSnPfejMKgfIGc\[`CA]@>Z=;W:8T75Q42N1/..CHGF)(CBA:?"~~}:9870w43t10p.-n+
k#"'hfeez!~a_{tsx[YuXVUUjonQlNdchKIeHFbEC_B@\?=Y<:99NSRQ43NMLKD-++*EDCBA:?"=<;
|98x6wu32sq/(',mk)jh&%f#cyx}`^z][wZXtWUqTRnQOkjiLKfedcb[`C^]@[Z<;;PUT75QJIN1/K
.,++@ED'%A:9>!}||387xv4-,1rp.om+lj(ig%fd"ca}|{^]xwvutslUpoRPfeMMbgfeHGba`_^]\[
T=XWVUT6LQPON0F/DIHG@E>C&$$#8=~;:9z76vuu,10qo-&%*kihh}$#d!awv{^\[[putWrTjinQOk
NLhKIeHFbEC_B@\?=YXW:9NS6QP3NM/K.,H+)ED'B$:9>!};|z8yw54u2r*).omll#('h%e{z!~}`_
zs\ZZYtslqTonmPkjLhKIeHFbaD_AWV[><XW:U7MLQ42N1/K.,H+)((=BA$">76;:9zy65.3trrq.-
,%l)(i&%$#"ca}vuz][ZZotsVqSihmPNMMbgfIGc\[`CA]@>==RWV9T6LKP31M0.J-+G*(D'%A$"!!
6;:9zy654-trrq.-,+$)j'&%f#"b~}`{]srwZXtWUqpSnPfejMKgJHdGEaDB^A?[><X;9UTS65PONM
FK.IH+)?>C&$@?"~<549zx6wu32s0p(',mk)(ig%|{"ca}`^z][ZZotsrUTonmlkdMhgJH^]EEZ_^]
@?ZYXWVUTM6443NMLKJIHG@E(CB%@?!=~|:{y7xv4us1rp.-n+k#"'hf$ec!b`|{^y[qpuXVUUjonm
POjihgfedc\aD_^]\[=SXWVU7M6KPINMLEJ-HGF)DCB$$9>=~;{327xv4us1rp.om+*k(h~}$ec!b`
|_]y\ZvYWsrUpRhglkjMLaJedcbaCY^]\[=S<QVUTMRKP3NMLK.IH*F)'C&$@#!=<}:z216wutt+0/
pn,%$)jh&ge#db~a_{^\xwZuWmlqTRnQOkNLhgfIHc\E`_^]@[Z<X;9U8655JON1/KDCH+)ED'B$:9
>!};|z8yw5vt2sq/pnmm$)('hg$#z!b}|{z][qpuXVrUSonQlNdchKIHH]baD_AWV[><X;9U86R53O
20LK.I+A@((=BA@#"=<;:92ywwv3210/.',m*)('h%$d"ca``uzy\ZvonsVTpoRmOediLJfIGcFD`C
A]@>Z=;::OTSR54ONMLKJCH+FE(&BA@?>!6}:98765.3t10/pn&%*ki'hf$ec!b`|{^y[qpuXVrUSo
RPlOMiLJfIGcbaDY^A\[ZY<WVUTS64PIHM0.J-+**?DC&$@98=~|{{276w4t,+0qo-nl*ki'hf$ec!
b`|_]\\qvutWVkTonmlOjiKgJHdGEDDY^]@>ZSRW:8T75Q42N1/K.,H+)E(&BA@#"=6;|9876wu-,1
rp.om+*k(h~}$ecbbw|{^y[qpuXVrUSoRPlOMiLJfeHcE[ZBBW\[Z=<WVUTM6443NMLKJCH+FEDC&A
@">!}||387xv4-,1rp.-n+k#"'hf$ec!b`|_]y\ZvYWVVkponQPkjihg`eHcbEC_^]\[>S<WVUTSRK
P3NML/JI+GF)D&<;@#!=<}:z21654u,1r/.-,m*)(hh}eez!~}`_t]xwZXtsrqpShQlkjihg`eHFbE
`Y^]\[>SX;998MRQ4ONMLK.IHGFE(&B;:?"~<}{zz165vt2+*/pnmm$)(i&f|{"ca}`^z][wZXtWUq
TRnQONNchgfIH]baD_AAV[>YXWV9TSR44I11FKJI,+@E(CBA$">=<;:{2y654321*/p-,+lj"!&ge#
"c~`vuz][ZZotsVTpihmPNjiLgI_^cFD`CA]@>Z=;W:8T7544INML/D-HGFEDC&_@?>=<;:9876543
210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDP
BA@?>=<;:9876543210/.-,JH)('&%$#"!~}|{zyxJ6utsrqponmlkjihgJ%dF"a`_^]\[ZYXWVUTS
RQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgJ%dc
ba`_^]\[ZYRQ