protected void chooseUserDefined(final Address addr, final String property, final int option)
			throws Exception {
		waitForPrompting();
		ListingMergePanel comp = getMergePanel();
		assertNotNull(comp);
		Window window = SwingUtilities.getWindowAncestor(comp);
		ConflictInfoPanel infoComp = findComponent(comp, ConflictInfoPanel.class);
		assertNotNull(infoComp);
		assertEquals("User Defined Property", infoComp.getConflictType());
		assertEquals(addr.toString(), infoComp.getAddress().toString());
		if (option == CANCELED) {
			pressButtonByText(window, "Cancel", false);
			return;
		}

		AbstractButton button;
		if ((option & KEEP_LATEST) != 0) {
			button = (AbstractButton) findComponentByName(comp, LATEST_BUTTON);
			assertNotNull(button);
			pressButton(button, false);
		}
		if ((option & KEEP_MY) != 0) {
			button = (AbstractButton) findComponentByName(comp, MY_BUTTON);
			assertNotNull(button);
			pressButton(button, false);
		}
		if ((option & KEEP_ORIGINAL) != 0) {
			button = (AbstractButton) findComponentByName(comp, ORIGINAL_BUTTON);
			assertNotNull(button);
			pressButton(button, false);
		}

		waitForApply(true);
		pressButtonByText(window, "Apply");
		waitForApply(false);
	}
Verifies the address matches the one i the conflict information panel.
Makes a user choice as indicated by option. This is equivalent to the user
clicking a mouse on a radio button indicating which program version to choose.
It can also be used to press the Cancel button on the merge.
@param addr the expected address of the conflict
@param property the name of the property (Not currently used)
@param option indicates the button to choose.
<br>One of:
<ul>
<li>KEEP_LATEST</li>
<li>KEEP_MY</li>
<li>CANCEL</li>
</ul>
@throws Exception if panel not available as expected
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/AbstractListingMergeManagerTest.java