code: public static void deepCopy(Map<?, ?> m, Obj o) {
  		for (Entry<?, ?> e : m.entrySet()) {
  			String key = (String)e.getKey();
  			Object v = e.getValue();
  			if (v == null) {
  				o.put(key, null);
  			} else if (v instanceof Map<?, ?>) {
  				Obj tobj = o.putObj(key);
  				deepCopy((Map<?,?>)v, tobj);
  			} else if (v instanceof Collection<?>) {
  				Arr tarr = o.putArr(key);
  				deepCopy((Collection<?>)v, tarr);
  			} else {
  				o.put(key, v);
  			}
  		}
  	}
docs: private