docs: def encode_varint_1(num):
      """ Encode an integer to a varint presentation. See
      https://developers.google.com/protocol-buffers/docs/encoding?csw=1#varints
      on how those can be produced.
  
          Arguments:
              num (int): Value to encode
  
          Returns:
              bytearray: Encoded presentation of integer with length from 1 to 10
                   bytes
      """
      # Shift sign to the end of number
      num = (num << 1) ^ (num >> 63)
      # Max 10 bytes. We assert those are allocated
      buf = bytearray(10)
  
      for i in range(10):
          # 7 lowest bits from the number and set 8th if we still have pending
          # bits left to encode
          buf[i] = num & 0x7f | (0x80 if num > 0x7f else 0)
          num = num >> 7
          if num == 0:
              break
      else:
          # Max size of endcoded double is 10 bytes for unsigned values
          raise ValueError("Out of double range")
      return buf[:i + 1]