text: public override int FillFields(byte[] data, int offset, IEscherRecordFactory recordFactory){int bytesRemaining = ReadHeader(data, offset);int bytesWritten = 8;offset += 8;while (bytesRemaining > 0 && offset < data.Length){EscherRecord child = recordFactory.CreateRecord(data, offset);int childBytesWritten = child.FillFields(data, offset, recordFactory);bytesWritten += childBytesWritten;offset += childBytesWritten;bytesRemaining -= childBytesWritten;AddChildRecord(child);if (offset >= data.Length && bytesRemaining > 0){_remainingLength = bytesRemaining;log.Log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left");}}return bytesWritten;}