docs: public static String encode(byte[] input) {
        if (input.length == 0) {
           return "";
        }
        input = copyOfRange(input, 0, input.length);
        // Count leading zeroes.
        int zeroCount = 0;
        while (zeroCount < input.length && input[zeroCount] == 0) {
           ++zeroCount;
        }
        // The actual encoding.
        byte[] temp = new byte[input.length * 2];
        int j = temp.length;
  
        int startAt = zeroCount;
        while (startAt < input.length) {
           byte mod = divmod58(input, startAt);
           if (input[startAt] == 0) {
              ++startAt;
           }
           temp[--j] = (byte) ALPHABET[mod];
        }
  
        // Strip extra '1' if there are some after decoding.
        while (j < temp.length && temp[j] == ALPHABET[0]) {
           ++j;
        }
        // Add as many leading '1' as there were leading zeros.
        while (--zeroCount >= 0) {
           temp[--j] = (byte) ALPHABET[0];
        }
  
        byte[] output = copyOfRange(temp, j, temp.length);
        try {
           return new String(output, "US-ASCII");
        } catch (UnsupportedEncodingException e) {
           throw new RuntimeException(e); // Cannot happen.
        }
     }