code: async def _call(cmd: List[str]) -> Tuple[str, str]:
      
      to_exec = [quote(c) for c in ['nmcli'] + cmd]
      cmd_str = ' '.join(to_exec)
      # We have to use a shell invocation here because nmcli will not accept
      # secrets specified on the command line unless it’s in a shell. The other
      # option is editing the connection configuration file in /etc/ afterwards
      # (or using d-bus and pretending to be an auth agent)
      proc = await as_subprocess.create_subprocess_shell(
          cmd_str,
          stdout=as_subprocess.PIPE, stderr=as_subprocess.PIPE)
      out, err = await proc.communicate()
      out_str, err_str = out.decode().strip(), err.decode().strip()
      sanitized = sanitize_args(to_exec)
      log.debug('{}: stdout={}'.format(' '.join(sanitized), out_str))
      if err_str:
          log.info('{}: stderr={}'.format(' '.join(sanitized), err_str))
      return out_str, err_str
docs: Runs the command in a subprocess and returns the captured stdout output.
      :param cmd: a list of arguments to nmcli. Should not include nmcli itself.
  
      :return: (stdout, stderr)