// Path: src/main/java/uk/org/okapibarcode/util/Arrays.java
// public static int positionOf(char value, char[] array) {
//     for (int i = 0; i < array.length; i++) {
//         if (value == array[i]) {
//             return i;
//         }
//     }
//     throw new OkapiException("Unable to find character '" + value + "' in character array.");
// }


import static uk.org.okapibarcode.util.Arrays.positionOf;

     * Sets an optional start/stop delimiter to be shown in the human-readable text (defaults to <code>null</code>).
     *
     * @param startStopDelimiter an optional start/stop delimiter to be shown in the human-readable text
     */
    public void setStartStopDelimiter(Character startStopDelimiter) {
        this.startStopDelimiter = startStopDelimiter;
    }

    /**
     * Returns the optional start/stop delimiter to be shown in the human-readable text.
     *
     * @return the optional start/stop delimiter to be shown in the human-readable text
     */
    public Character getStartStopDelimiter() {
        return startStopDelimiter;
    }

    /** {@inheritDoc} */
    @Override
    protected void encode() {

        char[] controlChars = toControlChars(content);
        int l = controlChars.length;

        if (!content.matches("[\u0000-\u007F]+")) {
            throw new OkapiException("Invalid characters in input data");
        }

        int[] values = new int[controlChars.length + 2];
        for (int i = 0; i < l; i++) {

// Path: src/main/java/uk/org/okapibarcode/util/Arrays.java
// public static int positionOf(char value, char[] array) {
//     for (int i = 0; i < array.length; i++) {
//         if (value == array[i]) {
//             return i;
//         }
//     }
//     throw new OkapiException("Unable to find character '" + value + "' in character array.");
// }


// Path: src/main/java/uk/org/okapibarcode/backend/Code93.java
import static uk.org.okapibarcode.util.Arrays.positionOf;

     * Sets an optional start/stop delimiter to be shown in the human-readable text (defaults to <code>null</code>).
     *
     * @param startStopDelimiter an optional start/stop delimiter to be shown in the human-readable text
     */
    public void setStartStopDelimiter(Character startStopDelimiter) {
        this.startStopDelimiter = startStopDelimiter;
    }

    /**
     * Returns the optional start/stop delimiter to be shown in the human-readable text.
     *
     * @return the optional start/stop delimiter to be shown in the human-readable text
     */
    public Character getStartStopDelimiter() {
        return startStopDelimiter;
    }

    /** {@inheritDoc} */
    @Override
    protected void encode() {

        char[] controlChars = toControlChars(content);
        int l = controlChars.length;

        if (!content.matches("[\u0000-\u007F]+")) {
            throw new OkapiException("Invalid characters in input data");
        }

        int[] values = new int[controlChars.length + 2];
        for (int i = 0; i < l; i++) {

            values[i] = positionOf(controlChars[i], CODE_93_LOOKUP);
