<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def local_qvm() -> Iterator[Tuple[subprocess.Popen, subprocess.Popen]]: """A context manager for the Rigetti local QVM and QUIL compiler. You must first have installed the `qvm` and `quilc` executables from the forest SDK. [https://www.rigetti.com/forest] This context manager will start up external processes for both the compiler and virtual machine, and then terminate them when the context is exited. If `qvm` (or `quilc`) is already running, then the existing process will be used, and will not terminated at exit. :raises: FileNotFoundError: If either executable is not installed. """

    # Enter. Acquire resource
    qvm = subprocess.Popen(['qvm', '-S'],
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE)

    quilc = subprocess.Popen(['quilc', '-RP'],
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)

    # Return context
    try:
        yield (qvm, quilc)

    finally:
        # Exit. Release resource
        qvm.terminate()
        quilc.terminate()