code: private Entry parseEntry(String line) throws IOException {
      line = StringUtils.trimToEmpty(line);
      if (line.startsWith("#")) {
        return null;
      }
  
      int colonIndex = line.indexOf(":");
      if (colonIndex < 0) {
        return null;
      }
  
      String key = StringUtils.trimToNull(line.substring(0, colonIndex));
      if (key == null) {
        return null;
      }
  
      String rest = line.substring(colonIndex + 1, line.length());
      int hashIndex = rest.indexOf("#");
  
      String value = StringUtils.trimToEmpty(hashIndex >= 0 ? rest.substring(0, hashIndex) : rest);
  
      value = decode(value);
  
      return new Entry(line, key, value);
    }
docs: Parses line into entry.
  <p>
  Skip empty lines. Skip comments. Skip invalid lines.
  
  @param line line to parse
  @return entry or <code>null</code> if skipped
  @throws IOException parsing line fails