private void processExternalAddConflicts(final int chosenConflictOption,
			final TaskMonitor monitor) throws CancelledException {
		// Handle Add Conflicts
		// These will ask the user KEEP_LATEST, KEEP_MY, KEEP_BOTH, or MERGE_BOTH.
		long[] addConflictIDs = externalAddConflicts.getKeys();
		for (long myExternalSymbolID : addConflictIDs) {
			try {
				long latestExternalSymbolID = externalAddConflicts.get(myExternalSymbolID);
				handleExternalAddConflict(latestExternalSymbolID, myExternalSymbolID,
					chosenConflictOption, monitor);
				monitor.setProgress(conflictIndex++);
				conflictInfoPanel.setConflictInfo(conflictIndex, totalConflicts);
			}
			catch (NoValueException e) {
				Msg.error(this,
					"Couldn't get merge conflict for external that was added. " + e.getMessage());
			}
		}
	}
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