code: def parse_int_string(int_string: str) -> List[int]:
      cleaned = " ".join(int_string.strip().split())
      cleaned = cleaned.replace(" - ", "-")
      cleaned = cleaned.replace(",", " ")
      tokens = cleaned.split(" ")
      indices: Set[int] = set()
      for token in tokens:
          if "-" in token:
              endpoints = token.split("-")
              if len(endpoints) != 2:
                  LOG.info(f"Dropping '{token}' as invalid - weird range.")
                  continue
              start = int(endpoints[0])
              end = int(endpoints[1]) + 1
              indices = indices.union(indices, set(range(start, end)))
          else:
              try:
                  indices.add(int(token))
              except ValueError:
                  LOG.info(f"Dropping '{token}' as invalid - not an int.")
      return list(indices)