private Collection<ToolTemplate> mergeDefaultToolsIntoExisting(Set<ToolTemplate> defaultTools,
			Set<ToolTemplate> userTools) {

		if (userTools.isEmpty()) {
			// no previous tools--use default tools
			return new HashSet<>(defaultTools);
		}

		LOG.debug("Found the following default tools: ");
		for (ToolTemplate tool : defaultTools) {
			LOG.debug("-" + tool);
		}

		LOG.debug("Found existing tools; merging existing tools: ");
		for (ToolTemplate tool : userTools) {
			LOG.debug("-" + tool);
		}

		//@formatter:off
		Map<String, ToolTemplate> allTools = new HashMap<>();
		Map<String, ToolTemplate> defaultMap =
			defaultTools.stream()
						.collect(Collectors.toMap(t -> t.getName(), Function.identity()))
						;
		Map<String, ToolTemplate> userMap =
			userTools.stream()
					 .collect(Collectors.toMap(t -> t.getName(), Function.identity()))
					 ;
		allTools.putAll(defaultMap);
		allTools.putAll(userMap); // user tools last, overwriting the defaults; they are preferred 
		//@formatter:on

		return allTools.values();
	}
Add the default tools to the given tool chest.  This method does not attempt to merge the
user's previous tools, as does {@link #installTools(ToolChest)}.

@param toolChest tool chest which to add the default tools
Ghidra/Framework/Project/src/main/java/ghidra/framework/project/DefaultProjectManager.java