def _process_response(self, response):
<EOL>rsp_lines = response.rstrip('<STR_LIT:\r\n>').split('<STR_LIT:\r>')<EOL>if len(rsp_lines) > <NUM_LIT:0>:<EOL><INDENT>echoed_command = rsp_lines[<NUM_LIT:0>]<EOL>del rsp_lines[<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>echoed_command = None<EOL><DEDENT>if len(rsp_lines) > <NUM_LIT:0> andrsp_lines[<NUM_LIT:0>] in ('<STR_LIT>', '<STR_LIT>','<STR_LIT>', '<STR_LIT>','<STR_LIT>'):<EOL><INDENT>err = rsp_lines[<NUM_LIT:0>][<NUM_LIT:1>:]<EOL>del rsp_lines[<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>err = None<EOL><DEDENT>return [response, echoed_command, err, rsp_lines]<EOL>
Processes a response from the drive.

        Processes the response returned from the drive. It is broken
        down into the echoed command (drive echoes it back), any error
        returned by the drive (leading '*' is stripped), and the
        different lines of the response.

        Parameters
        ----------
        response : str
            The response returned by the drive.

        Returns
        -------
        processed_response : list
            A 4-element ``list``. The elements, in order, are `response`
            (``str``), the echoed command (``str``), any error response
            (``None`` if none, or the ``str`` of the error), and the
            lines of the response that are not the echo or error line
            (``list`` of ``str`` with newlines stripped).