private int readDMGServerMemoryConfigValue(int defaultValue) {
		ResourceFile dmgModule = Application.getModuleRootDir(DMG_MODULE_NAME);
		ResourceFile serverMemoryCfgFile = new ResourceFile(dmgModule, "data/server_memory.cfg");
		try {
			List<String> lines = FileUtilities.getLines(serverMemoryCfgFile);
			int result = (lines.size() > 0)
					? Math.max(Integer.parseInt(lines.get(0)), MIN_DMG_SERVER_MEMORY_MB)
					: defaultValue;
			return result;
		}
		catch (NumberFormatException | IOException e) {
			// ignore
		}
		return defaultValue;
	}
Sends a command to the DMG server process.
<p>
ExpectedResults can be positive (ie. N result lines will be read from the
server process),
<li>0 (no result lines will be read),
<li>{@link Cmd#UNKNOWN_RESPONSE_COUNT UNKNOWN_RESPONSE_COUNT} const value
that indicates that the first response from the command will be the
number of following lines,
<li>or negative, meaning that an variable number of responses of size
abs(N) will be read from the server, where the first response from the
command is the variable number. In all, abs(N) * (first_response_int)
will be the total number of result lines returned.

@param cmdStr
@param expectedResults
@return
@throws IOException
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ios/dmg/DmgServerProcessManager.java