private int[] getTransactionDurationSegments(Transaction t) {
    String data = t.getData().toString();

    if (data.startsWith("_m=")) {
      int pos = data.indexOf('&');
      String str;

      if (pos < 0) {
        str = data.substring(3);
      } else {
        str = data.substring(3, pos);
      }

      List<String> parts = Splitters.by(',').split(str);
      int len = parts.size();
      int[] segments = new int[len];

      for (int i = 0; i < len; i++) {
        String part = parts.get(i);

        try {
          segments[i] = Integer.parseInt(part) * 1000;
        } catch (Exception e) {
          // ignore it
        }
      }

      return segments;
    } else if (data.startsWith("_u=")) {
      int pos = data.indexOf('&');
      String str;

      if (pos < 0) {
        str = data.substring(3);
      } else {
        str = data.substring(3, pos);
      }

      List<String> parts = Splitters.by(',').split(str);
      int len = parts.size();
      int[] segments = new int[len];

      for (int i = 0; i < len; i++) {
        String part = parts.get(i);

        try {
          segments[i] = Integer.parseInt(part);
        } catch (Exception e) {
          // ignore it
        }
      }

      return segments;
    } else {
      return null;
    }
  }