docs: public Map<Long, Map<String, ClientStats>> getCompleteStats() {
          Map<Long, Map<String, ClientStats>> retval =
                  new TreeMap<Long, Map<String, ClientStats>>();
  
          for (Entry<Long, Map<String, ClientStats>> e : m_current.entrySet()) {
              if (m_baseline.containsKey(e.getKey())) {
                  retval.put(e.getKey(), diff(e.getValue(), m_baseline.get(e.getKey())));
              }
              else {
                  retval.put(e.getKey(), dup(e.getValue()));
              }
          }
  
          // reset the timestamp fields to reflect the difference
          for (Entry<Long, Map<String, ClientStats>> e : retval.entrySet()) {
              for (Entry<String, ClientStats> e2 : e.getValue().entrySet()) {
                  ClientStats cs = e2.getValue();
                  cs.m_startTS = m_baselineTS;
                  cs.m_endTS = m_currentTS;
                  assert(cs.m_startTS != Long.MAX_VALUE);
                  assert(cs.m_endTS != Long.MIN_VALUE);
              }
          }
  
          return retval;
      }