class ROTP::Base32

def decode(str)

def decode(str)
  buffer = 0
  idx = 0
  bits_left = 0
  str = str.tr('=', '').upcase
  result = []
  str.split('').each do |char|
    buffer = buffer << SHIFT
    buffer = buffer | (decode_quint(char) & MASK)
    bits_left = bits_left + SHIFT
    if bits_left >= 8
      result[idx] = (buffer >> (bits_left - 8)) & 255
      idx = idx + 1
      bits_left = bits_left - 8
    end
  end
  result.pack('c*')
end