def ascii85decode(data):
 n = b = 0
 out = ''
 for c in data:
  if (('!' <= c) and (c <= 'u')):
   n += 1
   b = ((b * 85) + (ord(c) - 33))
   if (n == 5):
    out += struct.pack('>L', b)
    n = b = 0
  elif (c == 'z'):
   assert (n == 0)
   out += '\x00\x00\x00\x00'
  elif (c == '~'):
   if n:
    for _ in range((5 - n)):
     b = ((b * 85) + 84)
    out += struct.pack('>L', b)[:(n - 1)]
   break
 return out

def ascii85decode ( data ) : n = b = 0 out = '' for c in data : if ( ( '!' <= c ) and ( c <= 'u' ) ) : n += 1 b = ( ( b * 85 ) + ( ord ( c ) - 33 ) ) if ( n == 5 ) : out += struct . pack ( '>L' , b ) n = b = 0 elif ( c == 'z' ) : assert ( n == 0 ) out += '\x00\x00\x00\x00' elif ( c == '~' ) : if n : for _ in range ( ( 5 - n ) ) : b = ( ( b * 85 ) + 84 ) out += struct . pack ( '>L' , b ) [ : ( n - 1 ) ] break return out
in ascii85 encoding .