System.out.println("find and resolve macro "+name);
	public String findAndResolveMacro(String name) {		System.out.println("find and resolve macro "+name);				String value = "$("+name+")";				if (macroMap.containsKey(name)) {			if (macroMap.get(name) == cycleFlag) {				System.out.println("Cycle!");				addMacro(name, value);			}			return (String)macroMap.get(name);		}				macroMap.put(name, cycleFlag); // flag visited						if (templateInstance!=null) {			String val = (String)templateInstance.getProperties().get(name);			if (val!=null) value = resolveMacro(name, val);			else {				if (Settings.getInstance().getGlobalMacros() && getParent()!=null) 							value = getParent().findAndResolveMacro(name);					}		}										addMacro(name, value);						return value;	}