void mergeBookmarks(AddressSetView originAddressSet, TaskMonitor monitor)
			throws CancelledException, UnsupportedOperationException {

		if (!originToResultTranslator.isOneForOneTranslator()) {
			String message = originToResultTranslator.getClass().getName() +
				" is not a one for one translator and can't merge bookmarks.";
			throw new UnsupportedOperationException(message);
		}
		monitor.setMessage("Applying Bookmarks...");
		if (originAddressSet.isEmpty()) {
			return;
		}

		// Get the addresses in the set.
		AddressIterator originIter = originAddressSet.getAddresses(true);
		// Get each address in the address set and change the bookmark.
		for (long count = 0; originIter.hasNext() && !monitor.isCancelled(); count++) {
			monitor.checkCancelled();
			Address originAddress = originIter.next();
			if (count == PROGRESS_COUNTER_GRANULARITY) {
				monitor.setMessage("Applying Bookmarks...   " + originAddress.toString(true));
				count = 0;
			}
			mergeBookmarksAtAddress(originAddress);
		}
	}
<CODE>mergeBookmarks</CODE> merges bookmark differences from the origin program to the
result program
 within the specified address set.

@param originAddressSet the addresses in the origin program where bookmarks are to be
merged to the equivalent address in the result program.

@param monitor the task monitor for notifying the user of this merge's
progress.
@throws CancelledException if user cancels via the monitor.
@throws UnsupportedOperationException if the ProgramMerge translator is not a
"one for one translator".
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramMerge.java