docs: protected String getCpuInfo(String target) throws IOException, InterruptedException, UnsupportedOperationException {
          // if the CPU data has not been previously acquired, then acquire it now
          if (cpuInfo == null) {
              cpuInfo = new HashMap<>();
  
              try(BufferedReader br = new BufferedReader(new FileReader("/proc/cpuinfo"))) {
                  for(String line; (line = br.readLine()) != null; ) {
                      String parts[] = line.split(":", 2);
                      if (parts.length >= 2 && !parts[0].trim().isEmpty() && !parts[1].trim().isEmpty()) {
                          String cpuKey = parts[0].trim();
                          cpuInfo.put(cpuKey, parts[1].trim());
                      }
                  }
              }
          }
          if (cpuInfo.containsKey(target)) {
              return cpuInfo.get(target);
          }
          throw new UnsupportedOperationException("Invalid target: " + target);
      }