code: func (i *IANA) UnmarshalBinary(p []byte) error {
  	// IANA must contain at least an IAID, T1, and T2.
  	b := buffer.New(p)
  	if b.Len() < 12 {
  		return io.ErrUnexpectedEOF
  	}
  
  	b.ReadBytes(i.IAID[:])
  	i.T1 = time.Duration(b.Read32()) * time.Second
  	i.T2 = time.Duration(b.Read32()) * time.Second
  
  	return (&i.Options).UnmarshalBinary(b.Remaining())
  }
docs: // UnmarshalBinary unmarshals a raw byte slice into a IANA.
  //
  // If the byte slice does not contain enough data to form a valid IANA,
  // io.ErrUnexpectedEOF is returned.