code: def target_to_ipv6_cidr(target):
      
  
      splitted = target.split('/')
      if len(splitted) != 2:
          return None
      try:
          start_packed = inet_pton(socket.AF_INET6, splitted[0])
          block = int(splitted[1])
      except (socket.error, ValueError):
          return None
      if block <= 0 or block > 126:
          return None
      start_value = int(binascii.hexlify(start_packed), 16) >> (128 - block)
      start_value = (start_value << (128 - block)) + 1
      end_value = (start_value | (int('ff' * 16, 16) >> block)) - 1
      high = start_value >> 64
      low = start_value & ((1 << 64) - 1)
      start_packed = struct.pack('!QQ', high, low)
      high = end_value >> 64
      low = end_value & ((1 << 64) - 1)
      end_packed = struct.pack('!QQ', high, low)
      return ipv6_range_to_list(start_packed, end_packed)
docs: Attempt to return a IPv6 CIDR list from a target string.