public static Namespace createNameSpaceFromMangledClassName(Program program,
			Namespace parentNamespace, String className) throws InvalidInputException {
		SymbolTable symbolTable = program.getSymbolTable();
		if (className.startsWith("L") && className.endsWith(";")) {
			String str = className.substring(1, className.length() - 1);
			StringTokenizer tokenizer = new StringTokenizer(str, "/");
			while (tokenizer.hasMoreTokens()) {
				String token = tokenizer.nextToken();

				Namespace ns = symbolTable.getNamespace(token, parentNamespace);
				if (ns != null) {
					parentNamespace = ns;
					continue;
				}

				try {
					if (tokenizer.hasMoreElements()) { // package name
						parentNamespace = symbolTable.createNameSpace(parentNamespace, token,
							SourceType.ANALYSIS);
					}
					else { // last token should be the class name
						parentNamespace =
							symbolTable.createClass(parentNamespace, token, SourceType.ANALYSIS);
					}
				}
				catch (DuplicateNameException e) {
					// Should never reach here because we already checked for the symbol name
					return null;
				}
			}
		}
		return parentNamespace;
	}
Converts the mangled namespace into a namespace hierarchy,
@param program the program containing the namespaces
@param parentNamespace the parent namespace
@param className the mangled classname
@return the child namespace
@throws InvalidInputException if an invalid character exists in the className
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/dex/util/DexUtil.java