@Nonnull
	public UncheckedFunction<byte[], ZipArchive> mapping() {
		ZipStrategy strategy = zipStrategy.getValue();
		if (strategy == ZipStrategy.JVM)
			return input -> ZipIO.read(input, new JvmZipReader(skipRevisitedCenToLocalLinks.getValue(),
					allowBasicJvmBaseOffsetZeroCheck.getValue()));
		if (strategy == ZipStrategy.STANDARD)
			return ZipIO::readStandard;
		return input -> {
			ZipArchive archive = ZipIO.readNaive(input);
			if (ignoreNaiveFileLengths.getValue()) {
				List<LocalFileHeader> items = archive.getLocalFiles();
				for (int i = 0; i < items.size(); i++) {
					LocalFileHeader lfh = items.get(i);
					long nextStart = i < items.size() - 1 ?
							items.get(i + 1).offset() :
							input.length;
					long expectedEnd = lfh.offset() + lfh.length();
					if (expectedEnd < nextStart) {
						// TODO: Subtract nextStart here if data-descriptor is present
						lfh.setFileDataEndOffset(nextStart);
					}
				}
			}
			return archive;
		};
	}
@return Mapping of input bytes to a ZIP archive model.
recaf-core/src/main/java/software/coley/recaf/services/workspace/io/ResourceImporterConfig.java