$ 'dup' (a -- a a) \ \-(!store!)--(store)-(store)-# $ 'is_all_zero_list' (a -- b) \ | /-------------\ |/ | | / \ /-~-< \-{dup}nq< \-(!a!)-0-# \ \-(!a!)-1-# $ 'is_all_zero' (a -- b) \ /-1c(!a!)(!b!)(a){is_all_zero}-# | /-{dup}0{get_str_i}< \-{dup}[]q--< \-(!a!)0-# \-(!a!)1-# $ 'get_str_i' (a b -- c) \ \-c1c(!c!)(!c!)(!e!)(c)-# $ 'set_str_i' (a b c -- d) \ \-(!c!)c1c(!d!)(!e!)(c)p(d)p-# $ 'input' (-- a) \ | /--\ | / >-g0(n)(!n!)-\ | | #-/ | | \ | | \-----\ | | \ | \-[100](!n!)[]-ip(n)1s-/ $ 'o' (a -- a) \ \-{dup}o[\n\]o-# $ 'main' \ \-{input}(!bin!)-\ /-(!ced!)o~(ced)-\ | | | /-------(!ced!)n--/ \ / | /--(dec)-------nq< \--0(!j!)(bin){is_all_zero}---0q< \-# / \ | \-0(!rem!)--(rem)2m(bin)---(j)---{get_str_i}a(!rem!)(bin)(j)(rem)[10]d-\ | / | | | | | \ | | >g(j)[001](!j!)a1(j)(!mer!)r[01](mer)(!nib!)---{i_rts_tes}--/ \-(!ced!):(mer)(ced)-----------------------/