code: func (d *digest) Sum(in []byte) []byte {
  	// Make a copy of the original hash so that caller can keep writing and summing.
  	dup := *d
  	dup.finalize()
  	return dup.squeeze(in, dup.outputSize)
  }
docs: // Sum applies padding to the hash state and then squeezes out the desired nubmer of output bytes.