docs: public static String addPaths(String segment1, String segment2) {
          if (segment1 == null || segment1.length() == 0) {
              if (segment1 != null && segment2 == null) {
                  return segment1;
              }
              return segment2;
          }
          if (segment2 == null || segment2.length() == 0) {
              return segment1;
          }
  
          int split = segment1.indexOf(';');
          if (split < 0) {
              split = segment1.indexOf('?');
          }
          if (split == 0) {
              return segment2 + segment1;
          }
          if (split < 0) {
              split = segment1.length();
          }
  
          StringBuilder buf = new StringBuilder(segment1.length() + segment2.length() + 2);
          buf.append(segment1);
  
          if (buf.charAt(split - 1) == '/') {
              if (segment2.startsWith(SLASH)) {
                  buf.deleteCharAt(split - 1);
                  buf.insert(split - 1, segment2);
              } else {
                  buf.insert(split, segment2);
              }
          } else {
              if (segment2.startsWith(SLASH)) {
                  buf.insert(split, segment2);
              } else {
                  buf.insert(split, '/');
                  buf.insert(split + 1, segment2);
              }
          }
  
          return buf.toString();
      }