code: public Map<String, OriginTrackedValue> load(boolean expandLists) throws IOException {
  		try (CharacterReader reader = new CharacterReader(this.resource)) {
  			Map<String, OriginTrackedValue> result = new LinkedHashMap<>();
  			StringBuilder buffer = new StringBuilder();
  			while (reader.read()) {
  				String key = loadKey(buffer, reader).trim();
  				if (expandLists && key.endsWith("[]")) {
  					key = key.substring(0, key.length() - 2);
  					int index = 0;
  					do {
  						OriginTrackedValue value = loadValue(buffer, reader, true);
  						put(result, key + "[" + (index++) + "]", value);
  						if (!reader.isEndOfLine()) {
  							reader.read();
  						}
  					}
  					while (!reader.isEndOfLine());
  				}
  				else {
  					OriginTrackedValue value = loadValue(buffer, reader, false);
  					put(result, key, value);
  				}
  			}
  			return result;
  		}
  	}
docs: Load {@code .properties} data and return a map of {@code String} ->
  {@link OriginTrackedValue}.
  @param expandLists if list {@code name[]=a,b,c} shortcuts should be expanded
  @return the loaded properties
  @throws IOException on read error