docs: private static void unescapePercentEncoding(final String path, final int startIdx, final int endIdx,
              final StringBuilder buf) {
          if (endIdx - startIdx == 3 && path.charAt(startIdx + 1) == '2' && path.charAt(startIdx + 2) == '0') {
              // Fast path for "%20"
              buf.append(' ');
          } else {
              final byte[] bytes = new byte[(endIdx - startIdx) / 3];
              for (int i = startIdx, j = 0; i < endIdx; i += 3, j++) {
                  final char c1 = path.charAt(i + 1);
                  final char c2 = path.charAt(i + 2);
                  final int digit1 = hexCharToInt(c1);
                  final int digit2 = hexCharToInt(c2);
                  bytes[j] = (byte) ((digit1 << 4) | digit2);
              }
              // Decode UTF-8 bytes
              String str = new String(bytes, StandardCharsets.UTF_8);
              // Turn forward slash / backslash back into %-encoding
              str = str.replace("/", "%2F").replace("\\", "%5C");
              buf.append(str);
          }
      }