code: def _read_mode_utopt(self, size, kind):
          
          temp = self._read_fileng(size)
  
          data = dict(
              kind=kind,
              length=size,
              granularity='minutes' if int(temp[0]) else 'seconds',
              timeout=bytes(chr(int(temp[0:], base=2)), encoding='utf-8'),
          )
  
          return data
docs: Read User Timeout option.
  
          Positional arguments:
              * size - int, length of option
              * kind - int, 28 (User Timeout Option)
  
          Returns:
              * dict -- extracted User Timeout (TIMEOUT) option
  
          Structure of TCP TIMEOUT [RFC 5482]:
               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 = 28   |   Length = 4  |G|        User Timeout         |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
              Octets      Bits        Name                    Description
                0           0     tcp.timeout.kind        Kind (28)
                1           8     tcp.timeout.length      Length (4)
                2          16     tcp.timeout.granularity Granularity
                2          17     tcp.timeout.timeout     User Timeout