code: protected void processRemaining(ByteBuffer bb) {
      bb.position(bb.limit()); // move at the end
      bb.limit(chunkSize + 7); // get ready to pad with longs
      while (bb.position() < chunkSize) {
        bb.putLong(0);
      }
      bb.limit(chunkSize);
      bb.flip();
      process(bb);
    }
docs: This is invoked for the last bytes of the input, which are not enough to fill a whole chunk.
  The passed {@code ByteBuffer} is guaranteed to be non-empty.
  
  <p>This implementation simply pads with zeros and delegates to {@link #process(ByteBuffer)}.