; find digits with parity 0 0 0 z r 0 ; find digits with parity 1 0 1 g r 1s 0 2 h r 1s 0 4 j r 1s 0 8 n r 1s ; find digits with parity 2 0 3 i r 2s 0 5 k r 2s 0 6 l r 2s 0 9 o r 2s 0 A a r 2s 0 C c r 2s ; find digits with parity 3 0 7 m r 3s 0 B b r 3s 0 D d r 3s 0 E e r 3s ; find digits with parity 4 0 F f r 4s ; seek to end of tape for blank line 1s * * r 1s 2s * * r 2s 3s * * r 3s 4s * * r 4s ; apply brackets 1s _ ) r 1a 2s _ ) r 1s 3s _ ) r 2s 4s _ ) r 3s ; seek back to next non-crossed char 1a * * l 1a ; found crossed char, move back 1a a * r 0 1a b * r 0 1a c * r 0 1a d * r 0 1a e * r 0 1a f * r 0 1a g * r 0 1a h * r 0 1a i * r 0 1a j * r 0 1a k * r 0 1a l * r 0 1a m * r 0 1a n * r 0 1a o * r 0 1a z * r 0 ; if 0 and bracket or blank, change to the reverse angle 0 ) * l 02 0 _ * l 02 ;;;;;;;;;;;;;;;;;;;;;;;;;; ; now do everything again ; find digits with parity 0 02 z 0 l 02 ; find digits with parity 1 02 g 1 l 1s2 02 h 2 l 1s2 02 j 4 l 1s2 02 n 8 l 1s2 ; find digits with parity 2 02 i 3 l 2s2 02 k 5 l 2s2 02 l 6 l 2s2 02 o 9 l 2s2 02 a A l 2s2 02 c C l 2s2 ; find digits with parity 3 02 m 7 l 3s2 02 b B l 3s2 02 d D l 3s2 02 e E l 3s2 ; find digits with parity 4 02 f F l 4s2 ; seek to end of tape for blank line 1s2 * * l 1s2 2s2 * * l 2s2 3s2 * * l 3s2 4s2 * * l 4s2 ; apply brackets 1s2 _ ( l 1a2 2s2 _ ( l 1s2 3s2 _ ( l 2s2 4s2 _ ( l 3s2 ; seek back to next non-crossed char 1a2 * * r 1a2 ; found crossed char, move back 1a2 A * l 02 1a2 B * l 02 1a2 C * l 02 1a2 D * l 02 1a2 E * l 02 1a2 F * l 02 1a2 1 * l 02 1a2 2 * l 02 1a2 3 * l 02 1a2 4 * l 02 1a2 5 * l 02 1a2 6 * l 02 1a2 7 * l 02 1a2 8 * l 02 1a2 9 * l 02 1a2 0 * l 02 ; if 02 and blank or bracket accept 02 ( * r halt-accept 02 _ * r halt-accept