code: func DecodeVarint(b []byte) ([]byte, int64, error) {
  	v, n := binary.Varint(b)
  	if n > 0 {
  		return b[n:], v, nil
  	}
  	if n < 0 {
  		return nil, 0, errors.New("value larger than 64 bits")
  	}
  	return nil, 0, errors.New("insufficient bytes to decode value")
  }
docs: // DecodeVarint decodes value encoded by EncodeVarint before.
  // It returns the leftover un-decoded slice, decoded value if no error.