code: func (r *reader) readVarUint32() uint32 {
  	var x, s uint32
  	for {
  		b := uint32(r.readByte())
  		x |= (b & 0x7F) << s
  		s += 7
  		if ((b & 0x80) == 0) || (s == 35) {
  			break
  		}
  	}
  
  	return x
  }
docs: // readVarUint64 reads an unsigned 32-bit varint