<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _read_mode_qsopt(self, size, kind):
 """Read Quick-Start Response option. Positional arguments: * size - int, length of option * kind - int, 27 (Quick-Start Response) Returns: * dict -- extracted Quick-Start Response (QS) option Structure of TCP QSopt [RFC 4782]: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Kind | Length=8 | Resv. | Rate | TTL Diff | | | | |Request| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | R | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Octets Bits Name Description 0 0 tcp.qs.kind Kind (27) 1 8 tcp.qs.length Length (8) 2 16 - Reserved (must be zero) 2 20 tcp.qs.req_rate Request Rate 3 24 tcp.qs.ttl_diff TTL Difference 4 32 tcp.qs.nounce QS Nounce 7 62 - Reserved (must be zero) """

        rvrr = self._read_binary(1)
        ttld = self._read_unpack(1)
        noun = self._read_fileng(4)

        data = dict(
            kind=kind,
            length=size,
            req_rate=int(rvrr[4:], base=2),
            ttl_diff=ttld,
            nounce=noun[:-2],
        )

        return data