private void processExternalFunctionVsDataTypeConflicts(final int chosenConflictOption,
			final TaskMonitor monitor) throws CancelledException {
		// Handle External Function versus Data Type Conflicts
		AddressIterator functionVsDataTypeAddresses =
			externalFunctionVersusDataTypeConflicts.getAddresses(true);
		while (functionVsDataTypeAddresses.hasNext()) {
			Address myAddress = functionVsDataTypeAddresses.next();
			ExternalLocation[] externalLocations = getExternalLocationsForMyAddress(myAddress);
			handleExternalFunctionVersusDataTypeConflict(externalLocations, chosenConflictOption,
				monitor);
			monitor.setProgress(conflictIndex++);
			conflictInfoPanel.setConflictInfo(conflictIndex, totalConflicts);
		}
	}
Performs a manual merge of external program conflicts.
@param chosenConflictOption ASK_USER means interactively resolve conflicts.
JUnit testing also allows setting this to LATEST, MY, or ORIGINAL to force
selection of a particular version change.
@param monitor task monitor for informing the user of progress.
@throws CancelledException if the user cancels the merge.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalFunctionMerger.java