# think geek pillow

dull_0 = (
    "010100000100100101"
    "001100010011000100"
    "111101010111010100"
    "000100100101001100"
    "010011000100111101"
    "010111010100000100"
    )

bright = (
    "0101000001001001"
    "0100110001001100"
    "0100111101010111"
    )

dull_1 = (
    "100101001100010011"
    "000100111101010111"
    )

shirt = (
    "0100100100100000"
    "0111001101101000"
    "0110111101110000"
    "0110010101100100"
    "0010000001100001"
    "0111010000100000"
    "0101010001101000"
    "0110100101101110"
    "0110101101000111"
    "0110010101100101"
    "0110101100101110"
    "0110001101101111"
    "0110110100100000"
    "0110111101101110"
    "0010000001000001"
    "0111000001110010"
    "0110100101101100"
    "0010000001000110"
    "0110111101101111"
    "0110110000100111"
    "0111001100100000"
    "0110010001100001"
    "0111100100101100"
    "0010000001100001"
    "0110111001100100"
    "0010000001100001"
    "0110110001101100"
    "0010000001001001"
    "0010000001100111"
    "0110111101110100"
    "0010000001110111"
    "0110000101110011"
    "0010000001110100"
    "0110100001101001"
    "0111001100100000"
    "0110110001101111"
    "0111010101110011"
    "0111100100100000"
    "0101010000101101"
    "0111001101101000"
    "0110100101110010"
    "0111010000100001"
    )


def decode_nibble (s):
    n = 0
    for ch in s:
        n <<= 1
        c = {'0':0,'1':1}[ch]
        print 'c=',c
        n |= c
    return n

def decode_bits (bits):
    result = []
    for i in range (0, len (bits), 8):
        n0 = decode_nibble (bits[i:i+4])
        n1 = decode_nibble (bits[i+4:i+8])
        ch = (n0 << 4) | n1
        result.append (chr(ch))
    return ''.join (result)


#print decode_bits (dull_0)
#print decode_bits (bright)
#print decode_bits (dull_1)
print decode_bits (shirt)
