@Override
		protected ULongSpanSet readUninitializedFromBacking(ULongSpanSet uninitialized) {
			if (uninitialized.isEmpty()) {
				return uninitialized;
			}
			// TODO: Warn or bail when reading UNKNOWN bytes
			// NOTE: Read without regard to gaps
			// NOTE: Cannot write those gaps, though!!!
			AddressSetView knownButUninit = intersectViewKnown(addrSet(uninitialized));
			if (knownButUninit.isEmpty()) {
				return uninitialized;
			}
			AddressRange knownBound = new AddressRangeImpl(
				knownButUninit.getMinAddress(),
				knownButUninit.getMaxAddress());
			ByteBuffer buf = ByteBuffer.allocate((int) knownBound.getLength());
			backing.getBytes(knownBound.getMinAddress(), buf);
			for (AddressRange range : knownButUninit) {
				bytes.putData(range.getMinAddress().getOffset(), buf.array(),
					(int) (range.getMinAddress().subtract(knownBound.getMinAddress())),
					(int) range.getLength());
			}
			ULongSpan uninitBound = uninitialized.bound();
			return bytes.getUninitialized(uninitBound.min(), uninitBound.max());
		}
A state piece which reads bytes from a trace, but caches writes internally.

<p>
This provides for "read-only" emulation on a trace. Writes do not affect the source trace, but
rather are cached in this state. If desired, those cached writes can be written back out at a
later time.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/pcode/exec/trace/BytesTracePcodeExecutorStatePiece.java