private void addResourceReferences(HashMap<Address, Long> constLocs, String resourceName,
			boolean printScriptMsgs, boolean createBookmarks) throws CancelledException {
		Set<Address> keys;
		keys = constLocs.keySet();
		for (Address loc : keys) {
			monitor.checkCancelled();

			Instruction instr = currentProgram.getListing().getInstructionAt(loc);
			long rsrcID = constLocs.get(loc);
			Address rsrcAddr = findResource(resourceName + "_" + Long.toHexString(rsrcID), 0);

			if (rsrcAddr != null) {
				//Get the full symbol name including constant digits
				String symName = getSymbolAt(rsrcAddr).getName();
				//Match on the name without the constant  digit values
				String pattern = "([a-z]|[A-Z])*_?([a-z]|[A-Z])*(_[A-Z]+[a-z]+)?";
				Pattern r = Pattern.compile(pattern);
				Matcher m = r.matcher(symName);
				//Default to resourceName argument passed in unless found better match below
				String rsrcName = resourceName;
				if (m.find()) {
					rsrcName = m.group();
				}

				instr.addMnemonicReference(rsrcAddr, RefType.DATA, SourceType.ANALYSIS);
				if (createBookmarks) {
					currentProgram.getBookmarkManager()
							.setBookmark(instr.getMinAddress(), BookmarkType.ANALYSIS,
								"WindowsResourceReference", "Added Resource Reference");
				}
				if (printScriptMsgs) {
					println("        " + instr.getMinAddress().toString() + " : Found " + rsrcName +
						" reference");
				}

			}
		}
	}
Prints out the address of a found resource along with the name of
the resource.
@param constLocs - Address value pairs of the resource function
@param resourceName - name of the resource
@param printScriptMsgs - if true, print output; if false, do not print any output;
@param createBookmarks - if true, create bookmarks where references are found; if false, do not create any bookmarks;
@throws CancelledException
Ghidra/Features/Decompiler/ghidra_scripts/WindowsResourceReference.java