code: def clean_ip(ip):
      
      theip = normalize_ip(ip)
      segments = ['%x' % int(s, 16) for s in theip.split(':')]
  
      # Find the longest consecutive sequence of zeroes.
      seq = {0: 0}
      start = None
      count = 0
      for n, segment in enumerate(segments):
          if segment != '0':
              start = None
              count = 0
              continue
          if start is None:
              start = n
          count += 1
          seq[count] = start
  
      # Replace those zeroes by a double colon.
      count = max(seq)
      start = seq[count]
      result = []
      for n, segment in enumerate(segments):
          if n == start and count > 1:
              if n == 0:
                  result.append('')
              result.append('')
              if n == 7:
                  result.append('')
              continue
          elif start < n < start + count:
              if n == 7:
                  result.append('')
              continue
          result.append(segment)
      return ':'.join(result)
docs: Cleans the ip address up, useful for removing leading zeros, e.g.::
  
          1234:0:01:02:: -> 1234:0:1:2::
          1234:0000:0000:0000:0000:0000:0000:000A -> 1234::a
          1234:0000:0000:0000:0001:0000:0000:0000 -> 1234:0:0:0:1::
          0000:0000:0000:0000:0001:0000:0000:0000 -> ::1:0:0:0
  
      :type  ip: string
      :param ip: An IP address.
      :rtype:  string
      :return: The cleaned up IP.