code: func (d *Decoder) DecodeOpaque() (rv []byte, err error) {
  	dataLen, err := d.DecodeUint()
  	if err != nil {
  		return
  	}
  	if uint(dataLen) > uint(maxInt) {
  		err = unmarshalError("DecodeOpaque", ErrOverflow, errMaxSlice, dataLen)
  		return
  	}
  	return d.DecodeFixedOpaque(int32(dataLen))
  }
docs: // DecodeOpaque treats the next bytes as variable length XDR encoded opaque
  // data and returns the result as a byte slice.
  //
  // An UnmarshalError is returned if there are insufficient bytes remaining or
  // the opaque data is larger than the max length of a Go slice.
  //
  // Reference:
  // 	RFC Section 4.10 - Variable-Length Opaque Data
  // 	Unsigned integer length followed by fixed opaque data of that length