code: def decode_uvarint(data):
      '''Decode a variable-length integer.
  
      Reads a sequence of unsigned integer byte and decodes them into an integer
      in variable-length format and returns it and the length read.
      '''
      n = 0
      shift = 0
      length = 0
      for b in data:
          if not isinstance(b, int):
              b = six.byte2int(b)
          n |= (b & 0x7f) << shift
          length += 1
          if (b & 0x80) == 0:
              break
          shift += 7
      return n, lengtf decode_uvarint(data):
      '''Decode a variable-length integer.
  
      Reads a sequence of unsigned integer byte and decodes them into an integer
      in variable-length format and returns it and the length read.
      '''
      n = 0
      shift = 0
      length = 0
      for b in data:
          if not isinstance(b, int):
              b = six.byte2int(b)
          n |= (b & 0x7f) << shift
          length += 1
          if (b & 0x80) == 0:
              break
          shift += 7
      return n, length
docs: Decode a variable-length integer.
  
      Reads a sequence of unsigned integer byte and decodes them into an integer
      in variable-length format and returns it and the length read.