** input loop
** memory layout: mdt_dt_d~dt_*
* m: the highest digit marker
* d: each digits
* *: terminater
m->d,+[
>t+++++++[-<d------->t]
>>d,+ (slide)]
*-<+[-<+]m
** halving loop
** memory layout:
** M_mn__n__n~__n__*p
** ~Rh_rhn~__n__*p
** ~Rh_*P_p
** M: new highest marker
** hr: result of d divmod 2
** R: left r
** pP: popcount ( previous and new )
m>n+[-
** set a new marker
<<<M-
** n loop
>>>n+[-
** borrow
R<<<<[->>>>n++++++++++<<<<R]
** divmod by 2
>>>>n[<r[-<h+>>>_]>n_?[n<h+>>>_]<<n-]
>>>n+ (slide)]
** move p to P and add R ( the last R )
>p[-<<P+>>p]<<<<<R[->>>P+<<<R]
** set a new terminater and return to the marker
>>*-<+[-<+]M
** shrink if the highest digit is zero
>[<<<]>>>h
hn+ (slide)]
** divmod loop **
>p[
** divmod by 10
>++++++++++
<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]
>[-]>+
>]
** output loop **
<[-
** convert a number to a character code
>++++++[-<++++++++>]
<.
<<<]
KiogaW5wdXQgbG9vcAoqKiBtZW1vcnkgbGF5b3V0OiBtZHRfZHRfZH5kdF8qCiogICBtOiB0aGUgaGlnaGVzdCBkaWdpdCBtYXJrZXIKKiAgIGQ6IGVhY2ggZGlnaXRzCiogICAqOiB0ZXJtaW5hdGVyCm0tPmQsK1sKID50KysrKysrK1stPGQtLS0tLS0tPnRdCj4+ZCwrIChzbGlkZSldCiotPCtbLTwrXW0KKiogaGFsdmluZyBsb29wCioqIG1lbW9yeSBsYXlvdXQ6CioqICAgTV9tbl9fbl9fbn5fX25fXypwCioqICAgICAgflJoX3Jobn5fX25fXypwCioqICAgICAgICAgICAgIH5SaF8qUF9wCioqIE06IG5ldyBoaWdoZXN0IG1hcmtlcgoqKiBocjogcmVzdWx0IG9mIGQgZGl2bW9kIDIKKiogUjogbGVmdCByCioqIHBQOiBwb3Bjb3VudCAoIHByZXZpb3VzIGFuZCBuZXcgKQptPm4rWy0KICoqIHNldCBhIG5ldyBtYXJrZXIKIDw8PE0tCiAqKiBuIGxvb3AKID4+Pm4rWy0KICAqKiBib3Jyb3cKICBSPDw8PFstPj4+Pm4rKysrKysrKysrPDw8PFJdCiAgKiogZGl2bW9kIGJ5IDIKICA+Pj4+bls8clstPGgrPj4+X10+bl8/W248aCs+Pj5fXTw8bi1dCiA+Pj5uKyAoc2xpZGUpXQogKiogbW92ZSBwIHRvIFAgYW5kIGFkZCBSICggdGhlIGxhc3QgUiApCiA+cFstPDxQKz4+cF08PDw8PFJbLT4+PlArPDw8Ul0KICoqIHNldCBhIG5ldyB0ZXJtaW5hdGVyIGFuZCByZXR1cm4gdG8gdGhlIG1hcmtlcgogPj4qLTwrWy08K11NCiAqKiBzaHJpbmsgaWYgdGhlIGhpZ2hlc3QgZGlnaXQgaXMgemVybwogPls8PDxdPj4+aApobisgKHNsaWRlKV0KCioqIGRpdm1vZCBsb29wICoqCj5wWwogKiogZGl2bW9kIGJ5IDEwCiA+KysrKysrKysrKwogPFstPi1bPis+Pl0+WytbLTwrPl0+Kz4+XTw8PDw8XQogPlstXT4rCj5dCioqIG91dHB1dCBsb29wICoqCjxbLQogKiogY29udmVydCBhIG51bWJlciB0byBhIGNoYXJhY3RlciBjb2RlCiA+KysrKysrWy08KysrKysrKys+XQogPC4KPDw8XQo=