@Override
	public DataType toDataType() throws DuplicateNameException, IOException {
		Structure structure = new StructureDataType("header_item", 0);
		structure.add(UTF8, 8, "magic", null);
		structure.add(DWORD, "checksum", "adler-32");
		String comment = "SHA1:" + NumericUtilities.convertBytesToString(signature);
		structure.add(new ArrayDataType(BYTE, 20, BYTE.getLength()), "signature", comment);
		structure.add(DWORD, "fileSize", null);
		structure.add(DWORD, "headerSize", null);
		structure.add(DWORD, "endianTag", null);
		structure.add(DWORD, "linkSize", null);
		structure.add(DWORD, "linkOffset", null);
		structure.add(DWORD, "mapOffset", null);
		structure.add(DWORD, "stringIdsSize", null);
		structure.add(DWORD, "stringIdsOffset", null);
		structure.add(DWORD, "typeIdsSize", null);
		structure.add(DWORD, "typeIdsOffset", null);
		structure.add(DWORD, "protoIdsSize", null);
		structure.add(DWORD, "protoIdsOffset", null);
		structure.add(DWORD, "fieldIdsSize", null);
		structure.add(DWORD, "fieldIdsOffset", null);
		structure.add(DWORD, "methodIdsSize", null);
		structure.add(DWORD, "methodIdsOffset", null);
		structure.add(DWORD, "classDefsIdsSize", null);
		structure.add(DWORD, "classDefsIdsOffset", null);
		structure.add(DWORD, "dataSize", null);
		structure.add(DWORD, "dataOffset", null);
		structure.setCategoryPath(new CategoryPath("/dex"));
		return structure;
	}
According to dex_file.h, the map offset is relative to data offset
<br>
https://android.googlesource.com/platform/art/+/refs/heads/master/libdexfile/dex/dex_file.h
<br>
<code>
uint32_t map_off_ = 0;  // map list offset from data_off_
</code>
but it appears to only be true when dealing with compact dex files!
@return true if offsets in this DEX file are relative
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/dex/format/DexHeader.java