/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.HexLogger
 */
package com.l7tech.server.tomcat;

import com.l7tech.common.io.HexLogger;
import java.nio.ByteBuffer;
import java.util.logging.Logger;

public class TraceChannel {
    private static final Logger a;
    private static final Logger b;
    private final HexLogger c;

    public TraceChannel(String string, boolean bl2) {
        this.c = bl2 ? new HexLogger(a, string) : new HexLogger(b, string);
    }

    public void close() {
        this.c.close();
    }

    public int[] positions(ByteBuffer[] byteBufferArray) {
        int[] nArray = new int[byteBufferArray.length];
        for (int i2 = 0; i2 < nArray.length; ++i2) {
            nArray[i2] = byteBufferArray[i2].position();
        }
        return nArray;
    }

    public boolean traceEnabled() {
        return this.c.traceEnabled();
    }

    public int trace(ByteBuffer byteBuffer, int n2, int n3) {
        if (this.c.traceEnabled() && n3 > 0 && byteBuffer.hasArray()) {
            this.c.trace(byteBuffer.array(), byteBuffer.arrayOffset() + n2, n3);
        }
        return n3;
    }

    public long trace(ByteBuffer[] byteBufferArray, int[] nArray, long l2) {
        return this.trace(byteBufferArray, 0, byteBufferArray.length, nArray, l2);
    }

    public long trace(ByteBuffer[] byteBufferArray, int n2, int n3, int[] nArray, long l2) {
        if (this.c.traceEnabled() && l2 > 0L) {
            for (int i2 = n2; i2 < n3; ++i2) {
                ByteBuffer byteBuffer = byteBufferArray[i2];
                int n4 = nArray[i2];
                if (!byteBuffer.hasArray() || n4 >= byteBuffer.position()) continue;
                this.c.trace(byteBuffer.array(), byteBuffer.arrayOffset() + n4, byteBuffer.position() - n4);
            }
        }
        return l2;
    }

    /*
     * Enabled aggressive block sorting
     */
    static {
        String[] stringArray = new String[2];
        int n2 = 0;
        String string = "e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u00030\\0t\u000fY\u0016&e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u0003m\u00066g\r_";
        int n3 = "e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u00030\\0t\u000fY\u0016&e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u0003m\u00066g\r_".length();
        int n4 = 39;
        int n5 = -1;
        while (true) {
            int n6 = ++n5;
            stringArray[n2++] = TraceChannel.a(66, TraceChannel.a(string.substring(n6, n6 + n4)));
            if ((n5 += n4) >= n3) {
                a = Logger.getLogger(stringArray[0]);
                b = Logger.getLogger(stringArray[1]);
                return;
            }
            n4 = string.charAt(n5);
        }
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 6);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 68;
                    case 1 -> 44;
                    case 2 -> 120;
                    case 3 -> 49;
                    case 4 -> 1;
                    case 5 -> 48;
                    default -> 6;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

