@Override
  public BytesInput getBytes() {
    // The Page Header should include: blockSizeInValues, numberOfMiniBlocks, totalValueCount
    if (deltaValuesToFlush != 0) {
      flushBlockBuffer();
    }
    return BytesInput.concat(
            config.toBytesInput(),
            BytesInput.fromUnsignedVarInt(totalValueCount),
            BytesInput.fromZigZagVarLong(firstValue),
            BytesInput.from(baos));
  }
@Override
  public BytesInput getBytes() {
    
    if (deltaValuesToFlush != 0) {
      flushBlockBuffer();
    }
    return BytesInput.concat(
            config.toBytesInput(),
            BytesInput.fromUnsignedVarInt(totalValueCount),
            BytesInput.fromZigZagVarLong(firstValue),
            BytesInput.from(baos));
  }
@ Override public BytesInput getBytes ( ) { // The Page Header should include: blockSizeInValues, numberOfMiniBlocks, totalValueCount if ( deltaValuesToFlush != 0 ) { flushBlockBuffer ( ) ; } return BytesInput . concat ( config . toBytesInput ( ) , BytesInput . fromUnsignedVarInt ( totalValueCount ) , BytesInput . fromZigZagVarLong ( firstValue ) , BytesInput . from ( baos ) ) ; }
getBytes will trigger flushing block buffer, DO NOT write after getBytes() is called without calling reset()

@return a BytesInput that contains the encoded page data
getBytes will trigger flushing block buffer DO NOT write after getBytes () is called without calling reset ()