@Override
	public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log,
			NTHeader ntHeader) throws DuplicateNameException, CodeUnitInsertionException,
			IOException, MemoryAccessException {
		Address start = program.getImageBase().add(getRva());
		try {
			program.getSymbolTable().createLabel(start, NAME, SourceType.ANALYSIS);
		}
		catch (InvalidInputException e) {
			Msg.warn(this, "Invalid symbol name: \"" + NAME + "\"");
		}

		// Markup streams.  Must markup Metadata stream last.
		for (CliStreamHeader header : streamHeaderMap.values()) {
			if (header != metadataHeader) {
				header.markup(program, isBinary, monitor, log, ntHeader);
			}
		}
		if (metadataHeader != null) {
			metadataHeader.markup(program, isBinary, monitor, log, ntHeader);
		}
	}
Constructs a new CLI Metadata Root datatype. Matches ISO 23271 II.24.2.

@param reader A binary reader set to start reading at the start of this header.
@param rva The RVA of this header.
@throws IOException if there is a problem reading the header.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/cli/CliMetadataRoot.java