docs: public void load(InputStream stream, String separator) throws IOException, PropertiesException {
  		 
  		try(DataInputStream data = new DataInputStream(stream); Reader reader = new InputStreamReader(data); BufferedReader br = new BufferedReader(reader)) {
  			String line;
  			StringBuilder buffer = new StringBuilder();
  			while ((line = br.readLine()) != null)   {
  				if(Strings.trimRight(line).startsWith(LINE_COMMENT_START)) {
  					// comment line, skip!
  					continue;
  				} else {					
  					// now check if multi-line property
  					if(line.endsWith(CONTINUE_ON_NEW_LINE)) {
  						// middle line in multi-line, add and skip parsing
  						buffer.append(line.replaceFirst("\\\\$", ""));
  						continue;
  					} else {
  						// ordinary line, or end of multi-line: add and parse
  						buffer.append(line);
  					}
  				}
  				line = buffer.toString().trim();
  				buffer.setLength(0);
  				int index = -1;
  				if(line.length() > 0 && (index = line.lastIndexOf(separator)) != -1) {
  					String key = line.substring(0, index).trim();
  					String value = line.substring(index + separator.length()).trim();
  					if("@".equals(key)) {
  						logger.trace("including and overriding values defined so far with file '{}'", value);
  						load(value, separator);
  					} else {
  						logger.trace("adding '{}' => '{}'", key, value);
  						this.put(key.trim(), value.trim());
  					}
  				}
  			}
  			if(buffer.length() > 0) {
  				logger.warn("multi-line property '{}' is not properly terminated", buffer);
  			}
  		}
  	}