/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.DigestZipOutputStream
 *  com.l7tech.common.io.XmlUtil
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.MessagesUtil
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.security.cert.KeyUsageActivity
 *  com.l7tech.security.cert.KeyUsageChecker
 *  com.l7tech.security.token.SecurityTokenType
 *  com.l7tech.security.xml.DsigUtil
 *  com.l7tech.security.xml.SignatureCreationContext$Builder
 *  com.l7tech.security.xml.SignatureCreationContext$ElementReference
 *  com.l7tech.util.BuildInfo
 *  com.l7tech.util.Charsets
 *  com.l7tech.util.Config
 *  com.l7tech.util.DomUtils
 *  com.l7tech.util.HexUtils
 *  com.l7tech.util.ISO8601Date
 *  com.l7tech.util.ResourceUtils
 *  com.l7tech.util.ValidatedConfig
 *  org.hibernate.HibernateException
 *  org.hibernate.Session
 *  org.hibernate.internal.SessionImpl
 *  org.springframework.orm.hibernate5.support.HibernateDaoSupport
 *  org.springframework.transaction.annotation.Propagation
 *  org.springframework.transaction.annotation.Transactional
 */
package com.l7tech.server.audit;

import com.l7tech.common.io.DigestZipOutputStream;
import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.MessagesUtil;
import com.l7tech.objectmodel.Goid;
import com.l7tech.security.cert.KeyUsageActivity;
import com.l7tech.security.cert.KeyUsageChecker;
import com.l7tech.security.token.SecurityTokenType;
import com.l7tech.security.xml.DsigUtil;
import com.l7tech.security.xml.SignatureCreationContext;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.server.audit.AuditExporter;
import com.l7tech.server.audit.t;
import com.l7tech.server.util.CompressedStringType;
import com.l7tech.util.BuildInfo;
import com.l7tech.util.Charsets;
import com.l7tech.util.Config;
import com.l7tech.util.DomUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.ISO8601Date;
import com.l7tech.util.ResourceUtils;
import com.l7tech.util.ValidatedConfig;
import java.io.Closeable;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.SignatureException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.internal.SessionImpl;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

@Transactional(propagation=Propagation.REQUIRED, rollbackFor={Throwable.class})
public class AuditExporterImpl
extends HibernateDaoSupport
implements AuditExporter {
    private static final Logger a;
    private static final String b;
    private static final String c;
    private static final String d;
    private static final String e;
    private static final int f = Integer.MIN_VALUE;
    private static final int g = 1024;
    private static final char h = ':';
    private static final String i;
    private static final String j;
    private static final List<String> k;
    private static final String l;
    private static final String m;
    private static final String n;
    private static final Pattern o;
    private static AtomicBoolean p;
    private Dialect q = Dialect.MYSQL;
    private long r;
    private volatile long s = 0L;
    private volatile long t = 1L;
    private Config u;
    private static final String v;
    private static final int w = 0;
    private static final String[][] x;
    private static final String y;
    private static final String z;
    private static final String[] A;

    public AuditExporterImpl() {
    }

    public AuditExporterImpl(Dialect dialect) {
        this.setDialect(dialect);
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    protected void initDao() throws Exception {
        block8: {
            try {
                if (this.q != Dialect.DERBY || !p.compareAndSet(false, true)) break block8;
            }
            catch (SQLException sQLException) {
                throw AuditExporterImpl.a(sQLException);
            }
            String[] stringArray = A;
            String string = stringArray[60] + AuditExporterImpl.class.getName() + stringArray[51];
            Connection connection = null;
            Statement statement = null;
            Session session = null;
            try {
                session = this.getSessionFactory().openSession();
                connection = this.getConnectionForExport(session);
                statement = connection.createStatement();
                statement.executeUpdate(string);
                a.config(stringArray[78]);
            }
            catch (SQLException sQLException) {
                block10: {
                    try {
                        block9: {
                            try {
                                if (!A[1].equals(sQLException.getSQLState())) break block9;
                                a.fine(A[35]);
                                break block10;
                            }
                            catch (SQLException sQLException2) {
                                throw AuditExporterImpl.a(sQLException2);
                            }
                        }
                        throw sQLException;
                    }
                    catch (Throwable throwable) {
                        ResourceUtils.closeQuietly(statement);
                        ResourceUtils.closeQuietly(connection);
                        this.releaseSessionForExport(session);
                        throw throwable;
                    }
                }
                ResourceUtils.closeQuietly((Statement)statement);
                ResourceUtils.closeQuietly((Connection)connection);
                this.releaseSessionForExport(session);
            }
            ResourceUtils.closeQuietly((Statement)statement);
            ResourceUtils.closeQuietly((Connection)connection);
            this.releaseSessionForExport(session);
        }
    }

    static String a(String string) {
        return o.matcher(string).replaceAll(A[8]);
    }

    static String a(Dialect dialect, String string) {
        return MessageFormat.format(x[dialect.ordinal()][0], string);
    }

    static String a(long l2, long l3, Goid[] goidArray) {
        StringBuilder stringBuilder;
        block9: {
            block8: {
                String[] stringArray = A;
                stringBuilder = new StringBuilder(stringArray[46]);
                try {
                    try {
                        if (goidArray == null || goidArray.length <= 0) break block8;
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditExporterImpl.a(numberFormatException);
                    }
                    stringBuilder.append(A[23]);
                }
                catch (NumberFormatException numberFormatException) {
                    throw AuditExporterImpl.a(numberFormatException);
                }
            }
            try {
                try {
                    stringBuilder.append(AuditExporterImpl.b(l2, l3, goidArray));
                    if (goidArray == null || goidArray.length <= 0) break block9;
                }
                catch (NumberFormatException numberFormatException) {
                    throw AuditExporterImpl.a(numberFormatException);
                }
                stringBuilder.append(A[48]);
            }
            catch (NumberFormatException numberFormatException) {
                throw AuditExporterImpl.a(numberFormatException);
            }
        }
        return stringBuilder.toString();
    }

    static String a(long l2, long l3) {
        StringBuilder stringBuilder = new StringBuilder(A[14]);
        stringBuilder.append(AuditExporterImpl.b(l2, l3));
        return stringBuilder.toString();
    }

    static String b(long l2, long l3, Goid[] goidArray) {
        StringBuilder stringBuilder;
        block23: {
            String[] stringArray;
            block24: {
                block21: {
                    block22: {
                        stringBuilder = new StringBuilder();
                        try {
                            if (l2 != -1L) {
                                stringBuilder.append(A[28]);
                                stringBuilder.append(l2);
                            }
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditExporterImpl.a(numberFormatException);
                        }
                        try {
                            try {
                                if (l3 == -1L) break block21;
                                if (stringBuilder.length() <= 0) break block22;
                            }
                            catch (NumberFormatException numberFormatException) {
                                throw AuditExporterImpl.a(numberFormatException);
                            }
                            stringBuilder.append(A[54]);
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditExporterImpl.a(numberFormatException);
                        }
                    }
                    stringArray = A;
                    stringBuilder.append(stringArray[40]);
                    stringBuilder.append(l3);
                }
                try {
                    try {
                        try {
                            if (goidArray == null || goidArray.length <= 0) break block23;
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditExporterImpl.a(numberFormatException);
                        }
                        if (stringBuilder.length() <= 0) break block24;
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditExporterImpl.a(numberFormatException);
                    }
                    stringBuilder.append(A[54]);
                }
                catch (NumberFormatException numberFormatException) {
                    throw AuditExporterImpl.a(numberFormatException);
                }
            }
            stringArray = A;
            stringBuilder.append(stringArray[86]);
            int n2 = 0;
            while (true) {
                block25: {
                    try {
                        try {
                            if (n2 >= goidArray.length) break;
                            if (n2 == 0) break block25;
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditExporterImpl.a(numberFormatException);
                        }
                        stringBuilder.append(A[21]);
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditExporterImpl.a(numberFormatException);
                    }
                }
                stringArray = A;
                stringBuilder.append(stringArray[32]);
                stringBuilder.append(goidArray[n2].toString());
                stringBuilder.append("'");
                ++n2;
            }
            stringBuilder.append(")");
        }
        try {
            if (stringBuilder.length() > 0) {
                stringBuilder.insert(0, A[3]);
            }
        }
        catch (NumberFormatException numberFormatException) {
            throw AuditExporterImpl.a(numberFormatException);
        }
        return stringBuilder.toString();
    }

    static String b(long l2, long l3) {
        StringBuilder stringBuilder = new StringBuilder();
        String[] stringArray = A;
        stringBuilder.append(stringArray[68]);
        stringBuilder.append(l2);
        stringBuilder.append(stringArray[34]);
        stringBuilder.append(stringArray[53]);
        stringBuilder.append(l3);
        return stringBuilder.toString();
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public synchronized long getHighestTime() {
        return this.r;
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public synchronized long getNumExportedSoFar() {
        return this.s;
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public synchronized long getApproxNumToExport() {
        return this.t;
    }

    public void setConfig(Config config) {
        ValidatedConfig validatedConfig = new ValidatedConfig(config, a);
        this.u = validatedConfig;
        validatedConfig.setMinimumValue(A[22], (Number)1024);
    }

    protected Session getSessionForExport() {
        return HibernateEntityManager.useCurrentOrOpenNewSession(this.getSessionFactory());
    }

    protected void releaseSessionForExport(Session session) {
        HibernateEntityManager.closeNewSession(session);
    }

    protected Connection getConnectionForExport(Session session) throws SQLException {
        return ((SessionImpl)session).connection();
    }

    protected void setDialect(Dialect dialect) {
        dialect.ordinal();
        this.q = dialect;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Unable to fully structure code
     * Could not resolve type clashes
     */
    private AuditExporter.ExportedInfo a(String var1_1, String var2_2, DigestZipOutputStream var3_3, long var4_4, AuditExporter.ExportedInfo var6_5) throws SQLException, IOException, HibernateException, InterruptedException {
        block90: {
            var7_6 = System.currentTimeMillis();
            var10_7 = null;
            var11_8 = null;
            var12_9 = null;
            var13_10 = false;
            var14_11 = null;
            try {
                var47_12 = AuditExporterImpl.A;
                var15_13 = new PrintStream((OutputStream)var3_3, false, var47_12[69]);
                var12_9 = this.getSessionForExport();
                var9_14 = this.getConnectionForExport(var12_9);
                var10_7 = var9_14.createStatement(1003, 1007, 2);
                if (this.q == Dialect.MYSQL) {
                    var10_7.setFetchSize(-2147483648);
                    var11_8 = var10_7.executeQuery(var47_12[77]);
                    try {
                        if (var11_8 == null) {
                            throw new SQLException(var47_12[11]);
                        }
                    }
                    catch (SQLException v0) {
                        throw AuditExporterImpl.a(v0);
                    }
                    var11_8.next();
                    var47_12 = AuditExporterImpl.A;
                    var14_11 = var11_8.getInt(var47_12[4]);
                    var11_8.close();
                    var11_8 = null;
                    var16_15 = this.u.getIntProperty(var47_12[55], 0x100000);
                    if (var16_15 != var14_11) {
                        var17_17 = var47_12[30] + var16_15;
                        var10_7.execute(var17_17);
                        var13_10 = true;
                    }
                }
                try {
                    if (AuditExporterImpl.a.isLoggable(Level.FINE)) {
                        AuditExporterImpl.a.fine(AuditExporterImpl.A[67] + var1_1);
                    }
                }
                catch (SQLException v1) {
                    throw AuditExporterImpl.a(v1);
                }
                var11_8 = var10_7.executeQuery(var1_1);
                try {
                    if (var11_8 == null) {
                        throw new SQLException(AuditExporterImpl.A[73] + var1_1);
                    }
                }
                catch (SQLException v2) {
                    throw AuditExporterImpl.a(v2);
                }
                var11_8.next();
                var16_16 = var11_8.getLong(1);
                var11_8.close();
                var11_8 = null;
                var18_18 = this;
                synchronized (var18_18) {
                    this.t = var16_16;
                }
                try {
                    if (AuditExporterImpl.a.isLoggable(Level.FINE)) {
                        AuditExporterImpl.a.fine(AuditExporterImpl.A[20] + var2_2);
                    }
                }
                catch (SQLException v3) {
                    throw AuditExporterImpl.a(v3);
                }
                var11_8 = var10_7.executeQuery(var2_2);
                try {
                    if (var11_8 == null) {
                        throw new SQLException(AuditExporterImpl.A[26] + var2_2);
                    }
                }
                catch (SQLException v4) {
                    throw AuditExporterImpl.a(v4);
                }
                var18_18 = var11_8.getMetaData();
                var19_20 = 3;
                var20_21 = -1;
                var21_22 = -1;
                var22_23 = var18_18.getColumnCount();
                var23_24 = new boolean[var22_23];
                var24_25 = new boolean[var22_23];
                for (var25_26 = 1; var25_26 <= var22_23; ++var25_26) {
                    block85: {
                        block96: {
                            block95: {
                                block84: {
                                    block94: {
                                        block93: {
                                            block92: {
                                                var47_12 = AuditExporterImpl.A;
                                                var26_27 = AuditExporterImpl.a(var18_18.getColumnName(var25_26));
                                                if (!var47_12[70].equalsIgnoreCase(var26_27)) break block92;
                                                var19_20 = var25_26;
                                                break block85;
                                            }
                                            var47_12 = AuditExporterImpl.A;
                                            if (!var47_12[74].equalsIgnoreCase(var26_27)) break block93;
                                            var20_21 = var25_26;
                                            break block85;
                                        }
                                        var47_12 = AuditExporterImpl.A;
                                        if (!var47_12[50].equalsIgnoreCase(var26_27)) break block94;
                                        var21_22 = var25_26;
                                        break block85;
                                    }
                                    try {
                                        if (var26_27.indexOf(AuditExporterImpl.A[85]) <= -1) break block84;
                                        var23_24[var25_26 - 1] = true;
                                        break block85;
                                    }
                                    catch (SQLException v5) {
                                        throw AuditExporterImpl.a(v5);
                                    }
                                }
                                if (AuditExporterImpl.A[75].equalsIgnoreCase(var26_27)) ** GOTO lbl122
                                if (AuditExporterImpl.A[13].equalsIgnoreCase(var26_27)) ** GOTO lbl122
                                break block95;
                                catch (SQLException v6) {
                                    throw AuditExporterImpl.a(v6);
                                }
                            }
                            if (AuditExporterImpl.A[62].equalsIgnoreCase(var26_27)) ** GOTO lbl122
                            break block96;
                            catch (SQLException v7) {
                                throw AuditExporterImpl.a(v7);
                            }
                        }
                        try {
                            block97: {
                                if (!AuditExporterImpl.A[12].equalsIgnoreCase(var26_27)) break block85;
                                break block97;
                                catch (SQLException v8) {
                                    throw AuditExporterImpl.a(v8);
                                }
                            }
                            var24_25[var25_26 - 1] = true;
                        }
                        catch (SQLException v9) {
                            throw AuditExporterImpl.a(v9);
                        }
                    }
                    try {
                        var15_13.print(var26_27.toLowerCase());
                        if (var25_26 >= var22_23) continue;
                        var15_13.print(':');
                        continue;
                    }
                    catch (SQLException v10) {
                        throw AuditExporterImpl.a(v10);
                    }
                }
                var15_13.print("\n");
                var25_26 = 1;
                var26_28 = 0x7FFFFFFFFFFFFFFFL;
                var28_29 = -9223372036854775808L;
                var30_30 = this;
                synchronized (var30_30) {
                    this.s = 0L;
                }
                try {
                    v11 = var6_5 != null ? var6_5.getRecordsExported() : 0L;
                }
                catch (SQLException v12) {
                    throw AuditExporterImpl.a(v12);
                }
                var31_33 = v11;
                while (true) {
                    block86: {
                        var30_31 = var11_8.next();
                        try {
                            if (!var30_31) break;
                            if (var4_4 <= 0L) break block86;
                        }
                        catch (SQLException v13) {
                            throw AuditExporterImpl.a(v13);
                        }
                        var33_35 = 0L;
                        for (var35_40 = 1; var35_40 <= var22_23; ++var35_40) {
                            var36_43 = var11_8.getClob(var35_40);
                            if (var36_43 == null) continue;
                            var33_35 += var36_43.length();
                        }
                        try {
                            if ((double)(var4_4 - var3_3.getZippedByteCount()) < (double)(2L * var33_35) / var3_3.getCompressionRatio()) {
                                break;
                            }
                        }
                        catch (SQLException v14) {
                            throw AuditExporterImpl.a(v14);
                        }
                    }
                    var33_36 = this;
                    synchronized (var33_36) {
                        ++this.s;
                    }
                    try {
                        if (Thread.currentThread().isInterrupted()) {
                            throw new InterruptedException();
                        }
                    }
                    catch (SQLException v15) {
                        throw AuditExporterImpl.a(v15);
                    }
                    var33_34 = 1;
                    while (true) {
                        block88: {
                            block100: {
                                block89: {
                                    block99: {
                                        block98: {
                                            block87: {
                                                try {
                                                    if (var33_34 > var22_23) break;
                                                    if (!var23_24[var33_34 - 1]) break block87;
                                                }
                                                catch (SQLException v16) {
                                                    throw AuditExporterImpl.a(v16);
                                                }
                                                var34_39 /* !! */  = var11_8.getBytes(var33_34);
                                                try {
                                                    if (var34_39 /* !! */  == null) ** GOTO lbl235
                                                    var15_13.print(AuditExporterImpl.a(CompressedStringType.decompress(var34_39 /* !! */ )));
                                                }
                                                catch (SQLException v17) {
                                                    throw AuditExporterImpl.a(v17);
                                                }
                                            }
                                            if (!var24_25[var33_34 - 1]) break block98;
                                            var34_39 /* !! */  = var11_8.getBytes(var33_34);
                                            try {
                                                if (var34_39 /* !! */  == null) ** GOTO lbl235
                                                var15_13.print(HexUtils.hexDump((byte[])var34_39 /* !! */ ));
                                            }
                                            catch (SQLException v18) {
                                                throw AuditExporterImpl.a(v18);
                                            }
                                        }
                                        if (var33_34 != var21_22) break block99;
                                        var34_39 /* !! */  = (byte[])var11_8.getString(var33_34);
                                        if (var34_39 /* !! */  != null) {
                                            var34_39 /* !! */  = (byte[])AuditExporterImpl.b((String)var34_39 /* !! */ );
                                            var15_13.print((String)var34_39 /* !! */ );
                                        }
                                        break block88;
                                    }
                                    var34_39 /* !! */  = (byte[])var11_8.getString(var33_34);
                                    try {
                                        if (var34_39 /* !! */  == null) break block88;
                                        if (var33_34 != var19_20) break block89;
                                    }
                                    catch (SQLException v19) {
                                        throw AuditExporterImpl.a(v19);
                                    }
                                    var35_41 = var11_8.getLong(var33_34);
                                    if (var35_41 > var28_29) {
                                        var28_29 = var35_41;
                                    }
                                    if (var35_41 < var26_28) {
                                        var26_28 = var35_41;
                                    }
                                    break block100;
                                }
                                if (var33_34 == var20_21) {
                                    var34_39 /* !! */  = (byte[])SecurityTokenType.getByNum((int)var11_8.getInt(var33_34)).toString();
                                }
                            }
                            var15_13.print(AuditExporterImpl.a((String)var34_39 /* !! */ ));
                        }
                        try {
                            if (var33_34 < var22_23) {
                                var15_13.print(':');
                            }
                        }
                        catch (SQLException v20) {
                            throw AuditExporterImpl.a(v20);
                        }
                        ++var33_34;
                    }
                    var15_13.print("\n");
                    ++var31_33;
                    if (var25_26 == 0) continue;
                    var15_13.flush();
                    var25_26 = 0;
                }
                var15_13.flush();
                var33_37 = this;
                synchronized (var33_37) {
                    this.r = var28_29;
                }
                var33_38 = var26_28;
                var35_42 = var28_29;
                try {
                    v21 = var30_31 == false;
                }
                catch (SQLException v22) {
                    throw AuditExporterImpl.a(v22);
                }
                var37_45 = v21;
                var38_47 = var31_33;
                var40_48 = var3_3;
                var41_49 = new t(this, var33_38, var35_42, var37_45, var40_48, var38_47, var6_5, var7_6);
            }
            catch (Throwable var44_52) {
                block91: {
                    try {
                        try {
                            if (var14_11 == null || !var13_10) break block91;
                        }
                        catch (SQLException v23) {
                            throw AuditExporterImpl.a(v23);
                        }
                        var45_53 = AuditExporterImpl.A[9] + var14_11;
                        var10_7.execute(var45_53);
                    }
                    finally {
                        Thread.interrupted();
                        ResourceUtils.closeQuietly(var11_8);
                        ResourceUtils.closeQuietly(var10_7);
                        this.releaseSessionForExport(var12_9);
                    }
                }
                throw var44_52;
            }
            try {
                try {
                    if (var14_11 == null || !var13_10) break block90;
                }
                catch (SQLException v24) {
                    throw AuditExporterImpl.a(v24);
                }
                var47_12 = AuditExporterImpl.A;
                var42_50 = var47_12[9] + var14_11;
                var10_7.execute(var42_50);
            }
            finally {
                Thread.interrupted();
                ResourceUtils.closeQuietly((ResultSet)var11_8);
                ResourceUtils.closeQuietly((Statement)var10_7);
                this.releaseSessionForExport(var12_9);
            }
        }
        return var41_49;
    }

    private static String b(String string) {
        StringBuffer stringBuffer = new StringBuffer();
        String[] stringArray = A;
        if (string.startsWith(stringArray[52])) {
            block19: {
                ArrayList<String> arrayList;
                String string2;
                block20: {
                    stringBuffer.append("[");
                    boolean bl2 = true;
                    String[] stringArray2 = string.split(stringArray[61]);
                    string2 = null;
                    arrayList = new ArrayList<String>();
                    for (String string3 : stringArray2) {
                        stringArray = A;
                        if (string3.startsWith(stringArray[52])) {
                            block16: {
                                ArrayList<String> arrayList2;
                                block18: {
                                    block17: {
                                        arrayList2 = new ArrayList<String>();
                                        try {
                                            try {
                                                arrayList2.addAll(arrayList);
                                                arrayList.clear();
                                                if (string2 == null) break block16;
                                                if (bl2) break block17;
                                            }
                                            catch (NumberFormatException numberFormatException) {
                                                throw AuditExporterImpl.a(numberFormatException);
                                            }
                                            stringBuffer.append(",");
                                            break block18;
                                        }
                                        catch (NumberFormatException numberFormatException) {
                                            throw AuditExporterImpl.a(numberFormatException);
                                        }
                                    }
                                    bl2 = false;
                                }
                                stringBuffer.append(string2);
                                stringArray = A;
                                stringBuffer.append(stringArray[83]);
                                stringBuffer.append("'" + AuditExporterImpl.a(AuditExporterImpl.a(string2, arrayList2.toArray())) + "'");
                                stringBuffer.append(":");
                                StringBuffer stringBuffer2 = new StringBuffer();
                                for (String string4 : arrayList2) {
                                    try {
                                        if (!string4.equals("")) {
                                            stringBuffer2.append(string4);
                                            stringBuffer2.append(":");
                                        }
                                    }
                                    catch (NumberFormatException numberFormatException) {
                                        throw AuditExporterImpl.a(numberFormatException);
                                    }
                                    stringBuffer.append(AuditExporterImpl.a(stringBuffer2.toString()));
                                }
                            }
                            stringArray = A;
                            string2 = string3.substring(stringArray[52].length());
                            continue;
                        }
                        arrayList.add(string3);
                    }
                    try {
                        try {
                            if (string2 == null) break block19;
                            if (bl2) break block20;
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditExporterImpl.a(numberFormatException);
                        }
                        stringBuffer.append(",");
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditExporterImpl.a(numberFormatException);
                    }
                }
                stringBuffer.append(string2);
                stringBuffer.append(A[19]);
                stringBuffer.append("'" + AuditExporterImpl.a(AuditExporterImpl.a(string2, arrayList.toArray())) + "'");
                stringBuffer.append(":");
                StringBuffer stringBuffer3 = new StringBuffer();
                for (String string5 : arrayList) {
                    stringBuffer3.append(string5);
                    stringBuffer3.append(":");
                }
                stringBuffer.append(AuditExporterImpl.a(stringBuffer3.toString()));
            }
            stringBuffer.append("]");
        }
        return stringBuffer.toString();
    }

    private static String a(String string, Object[] objectArray) {
        try {
            int n2 = Integer.parseInt(string);
            AuditDetailMessage auditDetailMessage = MessagesUtil.getAuditDetailMessageById((int)n2);
            String string2 = MessageFormat.format(auditDetailMessage.getMessage(), objectArray);
            return string2;
        }
        catch (NumberFormatException numberFormatException) {
            return null;
        }
    }

    private static void a(Element element, String string, String string2, String string3, String string4, String string5) {
        element.appendChild(DomUtils.createTextNode((Node)element, (String)string));
        Element element2 = DomUtils.createAndAppendElementNS((Node)element, (String)string4, (String)string2, (String)string3);
        element2.appendChild(DomUtils.createTextNode((Node)element2, (String)string5));
        element.appendChild(DomUtils.createTextNode((Node)element, (String)"\n"));
    }

    @Override
    public void addXmlSignature(DigestZipOutputStream digestZipOutputStream, AuditExporter.ExportedInfo exportedInfo, X509Certificate x509Certificate, PrivateKey privateKey) throws SignatureException {
        try {
            if (digestZipOutputStream == null) {
                a.warning(A[7]);
                return;
            }
        }
        catch (SignatureException signatureException) {
            throw AuditExporterImpl.a(signatureException);
        }
        try {
            if (exportedInfo == null) {
                a.warning(A[41]);
                return;
            }
        }
        catch (SignatureException signatureException) {
            throw AuditExporterImpl.a(signatureException);
        }
        try {
            if (x509Certificate == null) {
                a.warning(A[71]);
                return;
            }
        }
        catch (SignatureException signatureException) {
            throw AuditExporterImpl.a(signatureException);
        }
        try {
            if (privateKey == null) {
                a.warning(A[57]);
                return;
            }
        }
        catch (SignatureException signatureException) {
            throw AuditExporterImpl.a(signatureException);
        }
        try {
            String string = ISO8601Date.format((java.util.Date)new Date(exportedInfo.getExportStartTime()));
            String string2 = ISO8601Date.format((java.util.Date)new Date(exportedInfo.getExportEndTime()));
            String[] stringArray = A;
            Document document = XmlUtil.stringToDocument((String)stringArray[45]);
            Element element = document.getDocumentElement();
            String string3 = element.getNamespaceURI();
            String string4 = element.getPrefix();
            element.appendChild(DomUtils.createTextNode((Node)element, (String)"\n"));
            String string5 = stringArray[76];
            AuditExporterImpl.a(element, stringArray[72], string3, string4, stringArray[81], string);
            AuditExporterImpl.a(element, stringArray[72], string3, string4, stringArray[47], String.valueOf(exportedInfo.getExportStartTime()));
            element.appendChild(DomUtils.createTextNode((Node)element, (String)"\n"));
            AuditExporterImpl.a(element, stringArray[72], string3, string4, stringArray[38], string2);
            AuditExporterImpl.a(element, stringArray[72], string3, string4, stringArray[31], String.valueOf(exportedInfo.getExportEndTime()));
            element.appendChild(DomUtils.createTextNode((Node)element, (String)stringArray[24]));
            Element element2 = DomUtils.createAndAppendElementNS((Node)element, (String)stringArray[25], (String)string3, (String)string4);
            element2.setAttribute(stringArray[0], stringArray[65]);
            element2.appendChild(DomUtils.createTextNode((Node)element, (String)"\n"));
            element.appendChild(DomUtils.createTextNode((Node)element, (String)"\n"));
            String string6 = stringArray[56];
            AuditExporterImpl.a(element2, stringArray[29], string3, string4, stringArray[36], ISO8601Date.format((java.util.Date)new Date(exportedInfo.getEarliestTime())));
            AuditExporterImpl.a(element2, stringArray[29], string3, string4, stringArray[18], String.valueOf(exportedInfo.getEarliestTime()));
            element2.appendChild(DomUtils.createTextNode((Node)element2, (String)"\n"));
            AuditExporterImpl.a(element2, stringArray[29], string3, string4, stringArray[15], ISO8601Date.format((java.util.Date)new Date(exportedInfo.getLatestTime())));
            AuditExporterImpl.a(element2, stringArray[29], string3, string4, stringArray[10], String.valueOf(exportedInfo.getLatestTime()));
            element2.appendChild(DomUtils.createTextNode((Node)element2, (String)"\n"));
            AuditExporterImpl.a(element2, stringArray[29], string3, string4, stringArray[39], HexUtils.hexDump((byte[])digestZipOutputStream.getDigest(stringArray[2])));
            AuditExporterImpl.a(element2, stringArray[29], string3, string4, stringArray[44], HexUtils.hexDump((byte[])digestZipOutputStream.getDigest(stringArray[66])));
            element2.appendChild(DomUtils.createTextNode((Node)element2, (String)stringArray[72]));
            SignatureCreationContext.Builder builder = new SignatureCreationContext.Builder().setSigningKey((Key)privateKey).setX509CertificateChain(new X509Certificate[]{x509Certificate}).setEnvelopeElement(element).includeEnvelopedTransform(true);
            String string7 = DsigUtil.getIdAttribute((Element)element);
            String string8 = DsigUtil.getIdValue((Element)element, (String)string7);
            builder.setElementReferenceList(List.of(new SignatureCreationContext.ElementReference(element, null, string7, string8)));
            this.a(x509Certificate, privateKey);
            builder.build().createSignature();
            digestZipOutputStream.putNextEntry(new ZipEntry(stringArray[49]));
            byte[] byArray = XmlUtil.nodeToString((Node)document).getBytes(Charsets.UTF8);
            digestZipOutputStream.write(byArray);
            digestZipOutputStream.flush();
        }
        catch (SAXException sAXException) {
            throw new RuntimeException(sAXException);
        }
        catch (IOException iOException) {
            throw new SignatureException(iOException);
        }
    }

    private void a(X509Certificate x509Certificate, Key key) throws SignatureException {
        try {
            KeyUsageChecker.requireActivityForKey((KeyUsageActivity)KeyUsageActivity.signXml, (X509Certificate)x509Certificate, (Key)key);
        }
        catch (CertificateException certificateException) {
            throw new SignatureException(certificateException);
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void a(String string, String string2, OutputStream outputStream, X509Certificate x509Certificate, PrivateKey privateKey) throws IOException, SQLException, HibernateException, SignatureException, InterruptedException {
        DigestZipOutputStream digestZipOutputStream = null;
        try {
            digestZipOutputStream = this.newAuditExportOutputStream(outputStream);
            AuditExporter.ExportedInfo exportedInfo = this.a(string, string2, digestZipOutputStream, -1L, null);
            this.addXmlSignature(digestZipOutputStream, exportedInfo, x509Certificate, privateKey);
        }
        finally {
            Thread.interrupted();
            ResourceUtils.closeQuietly((Closeable)digestZipOutputStream);
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public static String getAuditDetails(byte[] byArray) throws SQLException {
        StringBuilder stringBuilder = new StringBuilder();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            String[] stringArray = A;
            connection = DriverManager.getConnection(stringArray[33]);
            preparedStatement = connection.prepareStatement(stringArray[27]);
            preparedStatement.setBytes(1, byArray);
            resultSet = preparedStatement.executeQuery();
            int n2 = Integer.MIN_VALUE;
            boolean bl2 = true;
            while (resultSet.next()) {
                int n3 = resultSet.getInt(1);
                if (n3 != n2) {
                    n2 = n3;
                    if (bl2) {
                        bl2 = false;
                    } else {
                        stringArray = A;
                        stringBuilder.append(stringArray[17]);
                    }
                    stringArray = A;
                    stringBuilder.append(stringArray[42]);
                    stringBuilder.append(n3);
                }
                stringBuilder.append(A[61]);
                stringBuilder.append(resultSet.getString(2));
            }
        }
        catch (Throwable throwable) {
            ResourceUtils.closeQuietly(resultSet);
            ResourceUtils.closeQuietly(preparedStatement);
            ResourceUtils.closeQuietly((Connection)connection);
            throw throwable;
        }
        ResourceUtils.closeQuietly((ResultSet)resultSet);
        ResourceUtils.closeQuietly((Statement)preparedStatement);
        ResourceUtils.closeQuietly((Connection)connection);
        return stringBuilder.toString();
    }

    @Override
    @Transactional(propagation=Propagation.REQUIRED, readOnly=true, rollbackFor={}, noRollbackFor={Throwable.class})
    public void exportAuditsAsZipFile(long l2, long l3, Goid[] goidArray, OutputStream outputStream, X509Certificate x509Certificate, PrivateKey privateKey) throws IOException, SQLException, HibernateException, SignatureException, InterruptedException {
        this.a(AuditExporterImpl.a(l2, l3, goidArray), AuditExporterImpl.a(this.q, AuditExporterImpl.b(l2, l3, goidArray)), outputStream, x509Certificate, privateKey);
    }

    @Override
    @Transactional(propagation=Propagation.REQUIRED, readOnly=true, rollbackFor={}, noRollbackFor={Throwable.class})
    public AuditExporter.ExportedInfo exportAudits(long l2, long l3, DigestZipOutputStream digestZipOutputStream, long l4, AuditExporter.ExportedInfo exportedInfo) throws IOException, SQLException, InterruptedException {
        return this.a(AuditExporterImpl.a(l2, l3), AuditExporterImpl.a(this.q, AuditExporterImpl.b(l2, l3)), digestZipOutputStream, l4, exportedInfo);
    }

    @Override
    public DigestZipOutputStream newAuditExportOutputStream(OutputStream outputStream) throws IOException {
        try {
            try {
                if (a.isLoggable(Level.FINE)) {
                    a.fine(A[87]);
                }
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                throw AuditExporterImpl.a(noSuchAlgorithmException);
            }
            DigestZipOutputStream digestZipOutputStream = new DigestZipOutputStream(outputStream, k);
            String[] stringArray = A;
            String string = BuildInfo.getBuildString() + stringArray[58] + ISO8601Date.format((java.util.Date)new Date(System.currentTimeMillis()));
            digestZipOutputStream.setComment(string);
            digestZipOutputStream.putNextEntry(new ZipEntry(stringArray[79]));
            digestZipOutputStream.resetDigests(k);
            return digestZipOutputStream;
        }
        catch (NoSuchAlgorithmException noSuchAlgorithmException) {
            throw new RuntimeException(noSuchAlgorithmException);
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[88];
                var3_1 = 0;
                var2_2 = "]Ojq[)s^\u0005c\u0016_\"\r\u0005hnG9\u0004\u0007\u001bqNQg\r>\u0005mGjaP*hnIC\u0015\u001e_ioGVy\rM\u001bjO_ph9\\TiaE\u0017}THeuA\u0017sZ^YxP&9\u0012ZSr|P&jREg`\\'po_vq)xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYhqNRvaAhmOTcuXf\u0004gz\"%#hcR4f\rMhoIZ\u0015/lTSvKV'pXGrKX)fdJcz\u0015u>\u001bWGrqF<_NBo`g-}TTbPT<{vOjx\\;mnHgvY->OI&sP<>XStfP&j\u001bPgx@->]It4\u0012/lTSvKV'pXGrKX)fdJcz\u0012hiRRn4D={I_<4f\u0000Ql\u0006PUg\u0001_yjCG\u0015\u0004Wpc&3R:qNVYwZ&}ZRYyT0AWCh3\rKTib\\,{Iya{\\,\t^Hr}A1ARB\u001fhcJQv\u001c>xiSZa`4\u0012\u0006@Fz\u0005>ZSb}A\u0017sZOh\u0015WGrqF<_NBo`g-}TTbPT<{\u045chcJQv\u001c>ZSb}A\u0017sZOh:R'w_\n&u@,wOyku\\&0UIbq\\,2\u001bGsp\\<AVGoz\u001b<wVC*4T=zRRYyT!p\u0015Gsp\\<AWCpqYd>ZSb}A\u0017sZOh:[)s^\n&u@,wOyku\\&0VCugT/{\u0017\u0006gaQ!jdKg}[fwKygpQ:{HU*4T=zRRYyT!p\u0015SuqG\u0017pZKc8\u0015)k_OrKX)wU\bsgP:ARB*4T=zRRYyT!p\u0015Vt{C!z^TYsZ!z\u0017\u0006gaQ!jdKg}[fmRAhuA=l^\n&u@,wOygpX!p\u0015Ai}Qd>ZSb}A\u0017\u007f_Koz\u001b-pOOrmj+rZUu8\u0015)k_OrKT,sRH(q[<wO_Y}Qd>ZSb}A\u0017\u007f_Koz\u001b)}OOiz\u0019h\u007fNBo`j%{HUgsPfyTOb8\u0015)k_OrKX-mHGaq\u001b;jZRsg\u0019h\u007fNBo`j%{HUgsPfl^WsqF<ARB*4T=zRRYyP;mZAc:F-lMOeqj/qRB*4T=zRRYyP;mZAc:Z8{IGr}Z&AUGkq\u0019h\u007fNBo`j%{HUgsPf\u007fNRnq[<wXGrqQd>ZSb}A\u0017s^UuuR-0ZSr|P&jREg`\\'po_vq\u0019h\u007fNBo`j%{HUgsPfl^WsqF<AWChsA 2\u001bGsp\\<AVCugT/{\u0015TcgE'pHCYxP&yON*4T=zRRYyP;mZAc:G-oNCu`j2wK^kx\u0019h\u007fNBo`j%{HUgsPfl^Uv{[;{d\\odM%r\u0017\u0006gaQ!jdKcgF)y^\btqF8qUUcKF<\u007fOSu8\u0015)k_OrKX-mHGaq\u001b:qNRozR\u0017rZRczV12\u001bGsp\\<AH_u`P%0\\Iop\u0019h\u007fNBo`j;gHRcy\u001b+qVVizP&jdOb8\u0015)k_OrKF1mOCk:T+jRIh8\u0015/{Ogsp\\<Z^Rg}Y;6ZSb}A\u0017sZOh:R'w_\u000f&Ufh\u007fNBo`j)mHIe}T<{_yj{R;>}tIY\u0015)k_OrKX)wU\u0006JQs\u001c>tsRQghTtoH4T=zRRYuQ%wU\u0006IZ\u0015)k_OrKX)wU\ba{\\,>\u0006\u0006gaQ!jdGby\\&0\\Iop\u0015\u0004[}r&[`\u001c[i\u0006L[|\u0006>ZSb}A\u0017s^UuuR->th&u@,wOyku\\&0\\Iop\u0015u>ZSb}A\u0017s^UuuR-0\\Iop\u0015\u0004[}r&[`\u001c[i\u0006L[|\u0006>ZSb}A\u0017mBUrqXhQu\u0006gaQ!jdKg}[fyTOb4\bh\u007fNBo`j;gHRcy\u001b/qRB&Xp\u000eJ\u001biS@p\u001a>qiOZ\u0015)k_OrKQ-jZOj4z\u0006>ZSb}A\u0017sZOh:R'w_\u0006;4T=zRRYpP<\u007fRJ(u@,wOya{\\,>@\u0016{\u0007\u0014\u000b)K\u001ae1\u001d^Gtx\\-mOgsp\\<L^EifQ\f\u007fOCK}Y$wH\u0002g\u001c\u0006HWj4\bh\u0002\u0017\u0006!ZSb}Af{CVifAfyIIsdj+qUEg`j%\u007fCyjq[\u000f\u0017\u0006gaQ!jdKcgF)y^\u00051\u0006&4\u0015\u0011~^v{G<{_gsp\\<ZZRg$nHgvY->OI&{W<\u007fRH&u@,wOU&c\\<v\u001bWsqG1$\u001b\u010bHCjqV<>ZSb}A\u0017z^Rg}Yfs^UuuR-ARB*4T=zRRYpP<\u007fRJYdT:\u007fVU(bT$k^\u0006`fZ%>ZSb}A\u0017z^Rg}Yhr^@r4Z=j^T&~Z!p\u001bGsp\\<A_Cru\\$AKGtuX;>TH&u@,wOybqA)wW\ba{\\,>\u0006\u0006gaQ!jdBc`T!rdVgfT%m\u0015Gsp\\<A_Cru\\$A\\Iop\u0015?v^Tc4T=zRRYpP<\u007fRJ(u@,wOya{\\,>\u0006\u000694\u0015'l_Ct4W1>ZSb}A\u0017z^Rg}YfqIBozT$2\u001bGsp\\<A_Cru\\$AKGtuX;0KIu}A!qU\u0013ZSb}A\u0017sZOh:A!s^\u00068)\u0015\b\u001b\u0006&4\u0015h>\u001b#hcR4f\rMhoIZ\u0015/lTSvKV'pXGrKX)fdJcz\u0015u>\u001c^^v{G<NIIeqF;XRHog]!p\\koxY!m\u0002c\u0001\u0017QBdw\u000f,{]GsxAr}THhqV<wTH\u0005\u001bgHP\u00158zSb}Ah{CVifA-l\u001bUsdE'lO\u0006`a[+jRIh<Fa>]IszQh6UIr4V:{ZRozRa0\u0017^Gtx\\-mOgsp\\<L^EifQ\f\u007fOC\u0005hnG9\u0004\u0016^^v{G<NIIeqF;XRHog]!p\\\nHNg%q!y^Ur\u0013ZSb}A\u0017sZOh:A!s^\u0006:)\u0015'xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYh{CVifAhzZRg:\u0006zbK]qr\u0015ZSb}A\u0017\u007fHUiw\\)j^BYxZ/m\tVB3P\\/{HRL\u0007Gsp\\<$zSb}A\u0005{OGbuA)>CKjzFr\u007fNBo`\bjvORv.\u001agr\fRcw]f}TK)zFg,\u000b\u00162;z+j\u0014\u0016>;T=zRR$4\u001av\u001fhcJQv\u001c>xiSZa`4\u0012\u0006@Fz\u0005>ZSb}A\u0017sZOh\u001b^^v{G<NIIeqF;MOGt`\\&yvOjx\\;)\u001bgHP\u0015)k_OrKX)wU\ba{\\,>\u0006\u0006gaQ!jdKcgF)y^\ba{\\,\u0007HOa:M%r\u0015ZSb}A\u0017\u007fHUiw\\)j^BYxZ/m\u0011\u0015Ac`t=zRRBqA)wWU!\u0006zbK]qr\u0013ZSb}A\u0017sZOh:A!s^\u0006:)\u0015\u0005\u001bgHP\u0015!ZSb}Af{CVifAfyIIsdj+qUEg`j%\u007fCyjq[\b\u001b\u0006&4\u0015h>\u001b'xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYhmRAh}[/>PC\u007f:$\u001b\u000b&QM8qIRcp\u0015\tk_Or4g-}TTbg\u0015e>xTcuA-z\u001b\u02f0ZSb}A\u0017sZOh:R'w_\n&u@,wOyku\\&0UIbq\\,2\u001bGsp\\<AVGoz\u001b<wVC*4T=zRRYyT!p\u0015Gsp\\<AWCpqYd>ZSb}A\u0017sZOh:[)s^\n&u@,wOyku\\&0VCugT/{\u0017\u0006gaQ!jdKg}[fwKygpQ:{HU*4T=zRRYyT!p\u0015SuqG\u0017pZKc8\u0015)k_OrKX)wU\bsgP:ARB*4T=zRRYyT!p\u0015Vt{C!z^TYsZ!z\u0017\u0006gaQ!jdKg}[fmRAhuA=l^\n&u@,wOygpX!p\u0015Ai}Qd>ZSb}A\u0017\u007f_Koz\u001b-pOOrmj+rZUu8\u0015)k_OrKT,sRH(q[<wO_Y}Qd>ZSb}A\u0017\u007f_Koz\u001b)}OOiz\u0019h\u007fNBo`j%{HUgsPfyTOb8\u0015)k_OrKX-mHGaq\u001b;jZRsg\u0019h\u007fNBo`j%{HUgsPfl^WsqF<ARB*4T=zRRYyP;mZAc:F-lMOeqj/qRB*4T=zRRYyP;mZAc:Z8{IGr}Z&AUGkq\u0019h\u007fNBo`j%{HUgsPf\u007fNRnq[<wXGrqQd>ZSb}A\u0017s^UuuR-0ZSr|P&jREg`\\'po_vq\u0019h\u007fNBo`j%{HUgsPfl^WsqF<AWChsA 2\u001bGsp\\<AVCugT/{\u0015TcgE'pHCYxP&yON*4T=zRRYyP;mZAc:G-oNCu`j2wK^kx\u0019h\u007fNBo`j%{HUgsPfl^Uv{[;{d\\odM%r\u0017\u0006gaQ!jdKcgF)y^\btqF8qUUcKF<\u007fOSu8\u0015)k_OrKX-mHGaq\u001b:qNRozR\u0017rZRczV12\u001bGsp\\<AH_u`P%0\\Iop\u0019h\u007fNBo`j;gHRcy\u001b+qVVizP&jdOb8\u0015)k_OrKF1mOCk:T+jRIh\u00baxtCUa\r>}sHWa\u0001Qu\u0006AQa\tK\u007foRPp\u001c_rjU4\u001d\tK\u007foRPp\u001c_rjOP\u0015\u000bVzt&<\u0004~7\u001b`IF\u0015\nWo\u0006BUa\t7\u001btC@`\u001aPh\u0006PUg\u000bVzt.%\u0003{&\u000f\u000f&Xt\u0006YngAQ\u0015\u0002_mg&Dt\u001a_vcRQghMo\u007fJQ\u0015\u0002_mg&Fp\tZh\u0006UEyhZzrG4g\rJntHG\u0015\u0006Kwj&[{hPnjJ4|\u0006Nnr&Qm\u001c[ihGX\u0015\u0006_vc&3\u0007\u0014\u000b)K\u001ae1\fHCtb\\+{dAi}Q\u0003vb3\u0015\u0013}XH\u0005|.\u0016z6%\u0002~CGzZhir7\tZSb}AfzZR\u0003vb3\u000bXIszA\u001boW\u0006;4\u001a\u001bqNQg\r>ZSb}A\u0017sZOh:A!s^\u00068)\u0015\u0005nr@9\r\u0004OOkq(xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYhmRAh}[/>XCt`\u001b\u0004\u001b\u0006&4)nHgvY->OI&{W<\u007fRH&u@,wO\u0006e{@&j\u001bQo`]hoNCtm\u000fh\u0012ZSr|P&jREg`\\'po_vq\u0004\\Iop\u0004\u001b\u0006&4*hnIC\u0015\u001e_ioGVy\rM\u001bjO_ph9\\TiaE\u0017}THeuA\u0017sZ^YxP&9/rHo`\\)rR\\cp\u0015)k_Or4P0nTTrqGhmNVv{G<>]ShwA!qU\u000eu=\u001b\tZSb}AfzZR\u0007HOa:M%r\u0015^^v{G<NIIeqF;MOGt`\\&yL\u0007Gsp\\<$zSb}A\u0005{OGbuA)>CKjzFr\u007fNBo`\bjvORv.\u001agr\fRcw]f}TK)zFg,\u000b\u00162;z+j\u0014\u0016>;T=zRR$4\u001av\u0002g\u001c\u056ehcJQv\u001c>ZSb}A\u0017sZOh:R'w_\n&u@,wOyku\\&0UIbq\\,2\u001bGsp\\<AVGoz\u001b<wVC*4T=zRRYyT!p\u0015Gsp\\<AWCpqYd>ZSb}A\u0017sZOh:[)s^\n&u@,wOyku\\&0VCugT/{\u0017\u0006gaQ!jdKg}[fwKygpQ:{HU*4T=zRRYyT!p\u0015SuqG\u0017pZKc8\u0015)k_OrKX)wU\bsgP:ARB*4T=zRRYyT!p\u0015Vt{C!z^TYsZ!z\u0017\u0006gaQ!jdKg}[fmRAhuA=l^\n&u@,wOygpX!p\u0015Ai}Qd>ZSb}A\u0017\u007f_Koz\u001b-pOOrmj+rZUu8\u0015)k_OrKT,sRH(q[<wO_Y}Qd>ZSb}A\u0017\u007f_Koz\u001b)}OOiz\u0019h\u007fNBo`j%{HUgsPfyTOb8\u0015)k_OrKX-mHGaq\u001b;jZRsg\u0019h\u007fNBo`j%{HUgsPfl^WsqF<ARB*4T=zRRYyP;mZAc:F-lMOeqj/qRB*4T=zRRYyP;mZAc:Z8{IGr}Z&AUGkq\u0019h\u007fNBo`j%{HUgsPf\u007fNRnq[<wXGrqQd>ZSb}A\u0017s^UuuR-0ZSr|P&jREg`\\'po_vq\u0019h\u007fNBo`j%{HUgsPfl^WsqF<AWChsA 2\u001bGsp\\<AVCugT/{\u0015TcgE'pHCYxP&yON*4T=zRRYyP;mZAc:G-oNCu`j2wK^kx\u0019h\u007fNBo`j%{HUgsPfl^Uv{[;{d\\odM%r\u0017\u0006gaQ!jdKcgF)y^\btqF8qUUcKF<\u007fOSu8\u0015)k_OrKX-mHGaq\u001b:qNRozR\u0017rZRczV12\u001bGsp\\<AH_u`P%0\\Iop\u0019h\u007fNBo`j;gHRcy\u001b+qVVizP&jdOb8\u0015)k_OrKF1mOCk:T+jRIh8\u0015\u000fLtsVKv\u0007PxgR<\u0012o_\u007fkOP\u000fo9\u0017\u0006gaQ!jdBc`T!r\u0015KcgF)y^yop\u0019h9\u001c\t+;jg3\u0014\u0001!8\u0015`M~jCWah]tgJQf\u000b[\u0013aT[`\u0018AxiHWt\u001c6MGjaPhQibCF\u0015\nG\u001bVig\\<wTH&Uf\u000b>hcVUg\tJtt&3\u0012g3\u0014y)9\u001ao9\u0012\n&3\u0012o9\u0012\u0006@Fz\u0005>ZSb}A\u0017z^Rg}Y\u0017nZTgyFhIscTQ\u0015)k_OrKQ-jZOjKE)lZKu:T=zRRYpP<\u007fRJYsZ!z\u001b\u001b&u@,wOybqA)wW\ba{\\,7\u001biTPp\u001a>y\u007f&{G,wUGj4f\rNztG@z\u001a>\u001c\u0001)9\u001a\u00171\u0016\t!3\u001ch_h\u0006gaQ!jdGugZ+wZRcpj$q\\U&Rg\u0007S\u001bGsp\\<AVGoz\u0015\u0004[}r&[`\u001c[i\u0006L[|\u0006>ZSb}A\u0017\u007f_Koz\u0015\u0007P\u001bGsp\\<AVGoz\u001b/qRB&)\u0015)k_OrKT,sRH(sZ!z\u001bjCRahQnrCF\u0015\u0002Qrh&u@,wOykqF;\u007f\\C&[{h\u007fNBo`j%\u007fRH(sZ!z\u001b\u001b&u@,wOykqF;\u007f\\C(sZ!z\u001bjCRahQnrCF\u0015\u0002Qrh&u@,wOyumF<{V\u0006IZ\u0015)k_OrKX)wU\ba{\\,>\u0006\u0006gaQ!jdU\u007fgA-s\u0015Ai}QhR~`R4z\u001dJ~t&^z\u0001P\u001bGsp\\<A_Cru\\$>th&u@,wOyku\\&0\\Iop\u0015u>ZSb}A\u0017z^Rg}Yf\u007fNBo`j/qRB&o\u00055>\u001baT[`\u0018>y\u007f&u@,wOyku\\&0\\Iop\u0004d\\od";
                var4_3 = "]Ojq[)s^\u0005c\u0016_\"\r\u0005hnG9\u0004\u0007\u001bqNQg\r>\u0005mGjaP*hnIC\u0015\u001e_ioGVy\rM\u001bjO_ph9\\TiaE\u0017}THeuA\u0017sZ^YxP&9\u0012ZSr|P&jREg`\\'po_vq)xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYhqNRvaAhmOTcuXf\u0004gz\"%#hcR4f\rMhoIZ\u0015/lTSvKV'pXGrKX)fdJcz\u0015u>\u001bWGrqF<_NBo`g-}TTbPT<{vOjx\\;mnHgvY->OI&sP<>XStfP&j\u001bPgx@->]It4\u0012/lTSvKV'pXGrKX)fdJcz\u0012hiRRn4D={I_<4f\u0000Ql\u0006PUg\u0001_yjCG\u0015\u0004Wpc&3R:qNVYwZ&}ZRYyT0AWCh3\rKTib\\,{Iya{\\,\t^Hr}A1ARB\u001fhcJQv\u001c>xiSZa`4\u0012\u0006@Fz\u0005>ZSb}A\u0017sZOh\u0015WGrqF<_NBo`g-}TTbPT<{\u045chcJQv\u001c>ZSb}A\u0017sZOh:R'w_\n&u@,wOyku\\&0UIbq\\,2\u001bGsp\\<AVGoz\u001b<wVC*4T=zRRYyT!p\u0015Gsp\\<AWCpqYd>ZSb}A\u0017sZOh:[)s^\n&u@,wOyku\\&0VCugT/{\u0017\u0006gaQ!jdKg}[fwKygpQ:{HU*4T=zRRYyT!p\u0015SuqG\u0017pZKc8\u0015)k_OrKX)wU\bsgP:ARB*4T=zRRYyT!p\u0015Vt{C!z^TYsZ!z\u0017\u0006gaQ!jdKg}[fmRAhuA=l^\n&u@,wOygpX!p\u0015Ai}Qd>ZSb}A\u0017\u007f_Koz\u001b-pOOrmj+rZUu8\u0015)k_OrKT,sRH(q[<wO_Y}Qd>ZSb}A\u0017\u007f_Koz\u001b)}OOiz\u0019h\u007fNBo`j%{HUgsPfyTOb8\u0015)k_OrKX-mHGaq\u001b;jZRsg\u0019h\u007fNBo`j%{HUgsPfl^WsqF<ARB*4T=zRRYyP;mZAc:F-lMOeqj/qRB*4T=zRRYyP;mZAc:Z8{IGr}Z&AUGkq\u0019h\u007fNBo`j%{HUgsPf\u007fNRnq[<wXGrqQd>ZSb}A\u0017s^UuuR-0ZSr|P&jREg`\\'po_vq\u0019h\u007fNBo`j%{HUgsPfl^WsqF<AWChsA 2\u001bGsp\\<AVCugT/{\u0015TcgE'pHCYxP&yON*4T=zRRYyP;mZAc:G-oNCu`j2wK^kx\u0019h\u007fNBo`j%{HUgsPfl^Uv{[;{d\\odM%r\u0017\u0006gaQ!jdKcgF)y^\btqF8qUUcKF<\u007fOSu8\u0015)k_OrKX-mHGaq\u001b:qNRozR\u0017rZRczV12\u001bGsp\\<AH_u`P%0\\Iop\u0019h\u007fNBo`j;gHRcy\u001b+qVVizP&jdOb8\u0015)k_OrKF1mOCk:T+jRIh8\u0015/{Ogsp\\<Z^Rg}Y;6ZSb}A\u0017sZOh:R'w_\u000f&Ufh\u007fNBo`j)mHIe}T<{_yj{R;>}tIY\u0015)k_OrKX)wU\u0006JQs\u001c>tsRQghTtoH4T=zRRYuQ%wU\u0006IZ\u0015)k_OrKX)wU\ba{\\,>\u0006\u0006gaQ!jdGby\\&0\\Iop\u0015\u0004[}r&[`\u001c[i\u0006L[|\u0006>ZSb}A\u0017s^UuuR->th&u@,wOyku\\&0\\Iop\u0015u>ZSb}A\u0017s^UuuR-0\\Iop\u0015\u0004[}r&[`\u001c[i\u0006L[|\u0006>ZSb}A\u0017mBUrqXhQu\u0006gaQ!jdKg}[fyTOb4\bh\u007fNBo`j;gHRcy\u001b/qRB&Xp\u000eJ\u001biS@p\u001a>qiOZ\u0015)k_OrKQ-jZOj4z\u0006>ZSb}A\u0017sZOh:R'w_\u0006;4T=zRRYpP<\u007fRJ(u@,wOya{\\,>@\u0016{\u0007\u0014\u000b)K\u001ae1\u001d^Gtx\\-mOgsp\\<L^EifQ\f\u007fOCK}Y$wH\u0002g\u001c\u0006HWj4\bh\u0002\u0017\u0006!ZSb}Af{CVifAfyIIsdj+qUEg`j%\u007fCyjq[\u000f\u0017\u0006gaQ!jdKcgF)y^\u00051\u0006&4\u0015\u0011~^v{G<{_gsp\\<ZZRg$nHgvY->OI&{W<\u007fRH&u@,wOU&c\\<v\u001bWsqG1$\u001b\u010bHCjqV<>ZSb}A\u0017z^Rg}Yfs^UuuR-ARB*4T=zRRYpP<\u007fRJYdT:\u007fVU(bT$k^\u0006`fZ%>ZSb}A\u0017z^Rg}Yhr^@r4Z=j^T&~Z!p\u001bGsp\\<A_Cru\\$AKGtuX;>TH&u@,wOybqA)wW\ba{\\,>\u0006\u0006gaQ!jdBc`T!rdVgfT%m\u0015Gsp\\<A_Cru\\$A\\Iop\u0015?v^Tc4T=zRRYpP<\u007fRJ(u@,wOya{\\,>\u0006\u000694\u0015'l_Ct4W1>ZSb}A\u0017z^Rg}YfqIBozT$2\u001bGsp\\<A_Cru\\$AKGtuX;0KIu}A!qU\u0013ZSb}A\u0017sZOh:A!s^\u00068)\u0015\b\u001b\u0006&4\u0015h>\u001b#hcR4f\rMhoIZ\u0015/lTSvKV'pXGrKX)fdJcz\u0015u>\u001c^^v{G<NIIeqF;XRHog]!p\\koxY!m\u0002c\u0001\u0017QBdw\u000f,{]GsxAr}THhqV<wTH\u0005\u001bgHP\u00158zSb}Ah{CVifA-l\u001bUsdE'lO\u0006`a[+jRIh<Fa>]IszQh6UIr4V:{ZRozRa0\u0017^Gtx\\-mOgsp\\<L^EifQ\f\u007fOC\u0005hnG9\u0004\u0016^^v{G<NIIeqF;XRHog]!p\\\nHNg%q!y^Ur\u0013ZSb}A\u0017sZOh:A!s^\u0006:)\u0015'xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYh{CVifAhzZRg:\u0006zbK]qr\u0015ZSb}A\u0017\u007fHUiw\\)j^BYxZ/m\tVB3P\\/{HRL\u0007Gsp\\<$zSb}A\u0005{OGbuA)>CKjzFr\u007fNBo`\bjvORv.\u001agr\fRcw]f}TK)zFg,\u000b\u00162;z+j\u0014\u0016>;T=zRR$4\u001av\u001fhcJQv\u001c>xiSZa`4\u0012\u0006@Fz\u0005>ZSb}A\u0017sZOh\u001b^^v{G<NIIeqF;MOGt`\\&yvOjx\\;)\u001bgHP\u0015)k_OrKX)wU\ba{\\,>\u0006\u0006gaQ!jdKcgF)y^\ba{\\,\u0007HOa:M%r\u0015ZSb}A\u0017\u007fHUiw\\)j^BYxZ/m\u0011\u0015Ac`t=zRRBqA)wWU!\u0006zbK]qr\u0013ZSb}A\u0017sZOh:A!s^\u0006:)\u0015\u0005\u001bgHP\u0015!ZSb}Af{CVifAfyIIsdj+qUEg`j%\u007fCyjq[\b\u001b\u0006&4\u0015h>\u001b'xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYhmRAh}[/>PC\u007f:$\u001b\u000b&QM8qIRcp\u0015\tk_Or4g-}TTbg\u0015e>xTcuA-z\u001b\u02f0ZSb}A\u0017sZOh:R'w_\n&u@,wOyku\\&0UIbq\\,2\u001bGsp\\<AVGoz\u001b<wVC*4T=zRRYyT!p\u0015Gsp\\<AWCpqYd>ZSb}A\u0017sZOh:[)s^\n&u@,wOyku\\&0VCugT/{\u0017\u0006gaQ!jdKg}[fwKygpQ:{HU*4T=zRRYyT!p\u0015SuqG\u0017pZKc8\u0015)k_OrKX)wU\bsgP:ARB*4T=zRRYyT!p\u0015Vt{C!z^TYsZ!z\u0017\u0006gaQ!jdKg}[fmRAhuA=l^\n&u@,wOygpX!p\u0015Ai}Qd>ZSb}A\u0017\u007f_Koz\u001b-pOOrmj+rZUu8\u0015)k_OrKT,sRH(q[<wO_Y}Qd>ZSb}A\u0017\u007f_Koz\u001b)}OOiz\u0019h\u007fNBo`j%{HUgsPfyTOb8\u0015)k_OrKX-mHGaq\u001b;jZRsg\u0019h\u007fNBo`j%{HUgsPfl^WsqF<ARB*4T=zRRYyP;mZAc:F-lMOeqj/qRB*4T=zRRYyP;mZAc:Z8{IGr}Z&AUGkq\u0019h\u007fNBo`j%{HUgsPf\u007fNRnq[<wXGrqQd>ZSb}A\u0017s^UuuR-0ZSr|P&jREg`\\'po_vq\u0019h\u007fNBo`j%{HUgsPfl^WsqF<AWChsA 2\u001bGsp\\<AVCugT/{\u0015TcgE'pHCYxP&yON*4T=zRRYyP;mZAc:G-oNCu`j2wK^kx\u0019h\u007fNBo`j%{HUgsPfl^Uv{[;{d\\odM%r\u0017\u0006gaQ!jdKcgF)y^\btqF8qUUcKF<\u007fOSu8\u0015)k_OrKX-mHGaq\u001b:qNRozR\u0017rZRczV12\u001bGsp\\<AH_u`P%0\\Iop\u0019h\u007fNBo`j;gHRcy\u001b+qVVizP&jdOb8\u0015)k_OrKF1mOCk:T+jRIh\u00baxtCUa\r>}sHWa\u0001Qu\u0006AQa\tK\u007foRPp\u001c_rjU4\u001d\tK\u007foRPp\u001c_rjOP\u0015\u000bVzt&<\u0004~7\u001b`IF\u0015\nWo\u0006BUa\t7\u001btC@`\u001aPh\u0006PUg\u000bVzt.%\u0003{&\u000f\u000f&Xt\u0006YngAQ\u0015\u0002_mg&Dt\u001a_vcRQghMo\u007fJQ\u0015\u0002_mg&Fp\tZh\u0006UEyhZzrG4g\rJntHG\u0015\u0006Kwj&[{hPnjJ4|\u0006Nnr&Qm\u001c[ihGX\u0015\u0006_vc&3\u0007\u0014\u000b)K\u001ae1\fHCtb\\+{dAi}Q\u0003vb3\u0015\u0013}XH\u0005|.\u0016z6%\u0002~CGzZhir7\tZSb}AfzZR\u0003vb3\u000bXIszA\u001boW\u0006;4\u001a\u001bqNQg\r>ZSb}A\u0017sZOh:A!s^\u00068)\u0015\u0005nr@9\r\u0004OOkq(xGhzZ<>ZBb4F!yUGraG-%\u001bHsxYhmRAh}[/>XCt`\u001b\u0004\u001b\u0006&4)nHgvY->OI&{W<\u007fRH&u@,wO\u0006e{@&j\u001bQo`]hoNCtm\u000fh\u0012ZSr|P&jREg`\\'po_vq\u0004\\Iop\u0004\u001b\u0006&4*hnIC\u0015\u001e_ioGVy\rM\u001bjO_ph9\\TiaE\u0017}THeuA\u0017sZ^YxP&9/rHo`\\)rR\\cp\u0015)k_Or4P0nTTrqGhmNVv{G<>]ShwA!qU\u000eu=\u001b\tZSb}AfzZR\u0007HOa:M%r\u0015^^v{G<NIIeqF;MOGt`\\&yL\u0007Gsp\\<$zSb}A\u0005{OGbuA)>CKjzFr\u007fNBo`\bjvORv.\u001agr\fRcw]f}TK)zFg,\u000b\u00162;z+j\u0014\u0016>;T=zRR$4\u001av\u0002g\u001c\u056ehcJQv\u001c>ZSb}A\u0017sZOh:R'w_\n&u@,wOyku\\&0UIbq\\,2\u001bGsp\\<AVGoz\u001b<wVC*4T=zRRYyT!p\u0015Gsp\\<AWCpqYd>ZSb}A\u0017sZOh:[)s^\n&u@,wOyku\\&0VCugT/{\u0017\u0006gaQ!jdKg}[fwKygpQ:{HU*4T=zRRYyT!p\u0015SuqG\u0017pZKc8\u0015)k_OrKX)wU\bsgP:ARB*4T=zRRYyT!p\u0015Vt{C!z^TYsZ!z\u0017\u0006gaQ!jdKg}[fmRAhuA=l^\n&u@,wOygpX!p\u0015Ai}Qd>ZSb}A\u0017\u007f_Koz\u001b-pOOrmj+rZUu8\u0015)k_OrKT,sRH(q[<wO_Y}Qd>ZSb}A\u0017\u007f_Koz\u001b)}OOiz\u0019h\u007fNBo`j%{HUgsPfyTOb8\u0015)k_OrKX-mHGaq\u001b;jZRsg\u0019h\u007fNBo`j%{HUgsPfl^WsqF<ARB*4T=zRRYyP;mZAc:F-lMOeqj/qRB*4T=zRRYyP;mZAc:Z8{IGr}Z&AUGkq\u0019h\u007fNBo`j%{HUgsPf\u007fNRnq[<wXGrqQd>ZSb}A\u0017s^UuuR-0ZSr|P&jREg`\\'po_vq\u0019h\u007fNBo`j%{HUgsPfl^WsqF<AWChsA 2\u001bGsp\\<AVCugT/{\u0015TcgE'pHCYxP&yON*4T=zRRYyP;mZAc:G-oNCu`j2wK^kx\u0019h\u007fNBo`j%{HUgsPfl^Uv{[;{d\\odM%r\u0017\u0006gaQ!jdKcgF)y^\btqF8qUUcKF<\u007fOSu8\u0015)k_OrKX-mHGaq\u001b:qNRozR\u0017rZRczV12\u001bGsp\\<AH_u`P%0\\Iop\u0019h\u007fNBo`j;gHRcy\u001b+qVVizP&jdOb8\u0015)k_OrKF1mOCk:T+jRIh8\u0015\u000fLtsVKv\u0007PxgR<\u0012o_\u007fkOP\u000fo9\u0017\u0006gaQ!jdBc`T!r\u0015KcgF)y^yop\u0019h9\u001c\t+;jg3\u0014\u0001!8\u0015`M~jCWah]tgJQf\u000b[\u0013aT[`\u0018AxiHWt\u001c6MGjaPhQibCF\u0015\nG\u001bVig\\<wTH&Uf\u000b>hcVUg\tJtt&3\u0012g3\u0014y)9\u001ao9\u0012\n&3\u0012o9\u0012\u0006@Fz\u0005>ZSb}A\u0017z^Rg}Y\u0017nZTgyFhIscTQ\u0015)k_OrKQ-jZOjKE)lZKu:T=zRRYpP<\u007fRJYsZ!z\u001b\u001b&u@,wOybqA)wW\ba{\\,7\u001biTPp\u001a>y\u007f&{G,wUGj4f\rNztG@z\u001a>\u001c\u0001)9\u001a\u00171\u0016\t!3\u001ch_h\u0006gaQ!jdGugZ+wZRcpj$q\\U&Rg\u0007S\u001bGsp\\<AVGoz\u0015\u0004[}r&[`\u001c[i\u0006L[|\u0006>ZSb}A\u0017\u007f_Koz\u0015\u0007P\u001bGsp\\<AVGoz\u001b/qRB&)\u0015)k_OrKT,sRH(sZ!z\u001bjCRahQnrCF\u0015\u0002Qrh&u@,wOykqF;\u007f\\C&[{h\u007fNBo`j%\u007fRH(sZ!z\u001b\u001b&u@,wOykqF;\u007f\\C(sZ!z\u001bjCRahQnrCF\u0015\u0002Qrh&u@,wOyumF<{V\u0006IZ\u0015)k_OrKX)wU\ba{\\,>\u0006\u0006gaQ!jdU\u007fgA-s\u0015Ai}QhR~`R4z\u001dJ~t&^z\u0001P\u001bGsp\\<A_Cru\\$>th&u@,wOyku\\&0\\Iop\u0015u>ZSb}A\u0017z^Rg}Yf\u007fNBo`j/qRB&o\u00055>\u001baT[`\u0018>y\u007f&u@,wOyku\\&0\\Iop\u0004d\\od".length();
                var1_4 = 8;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 90;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = AuditExporterImpl.a(v0, AuditExporterImpl.c(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "leTKw!EhcCCd\u001b\u0006~uBTj\u001dMRw_Kg^aC0\u0018.NbUCw\u0017Fj0^Gt^IxtYV#\u001bP}\u007fBVf\f\bwy@\u0002l\u000b\\}eD\u0002p\nZhq]\f";
                    var4_3 = "leTKw!EhcCCd\u001b\u0006~uBTj\u001dMRw_Kg^aC0\u0018.NbUCw\u0017Fj0^Gt^IxtYV#\u001bP}\u007fBVf\f\bwy@\u0002l\u000b\\}eD\u0002p\nZhq]\f".length();
                    var1_4 = 31;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 108;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = AuditExporterImpl.a(v0, AuditExporterImpl.c(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        AuditExporterImpl.A = var5;
        AuditExporterImpl.e = AuditExporterImpl.A[61];
        AuditExporterImpl.z = AuditExporterImpl.A[5];
        AuditExporterImpl.v = AuditExporterImpl.A[59];
        AuditExporterImpl.b = AuditExporterImpl.A[6];
        AuditExporterImpl.i = AuditExporterImpl.A[63];
        AuditExporterImpl.m = AuditExporterImpl.A[80];
        AuditExporterImpl.l = AuditExporterImpl.A[79];
        AuditExporterImpl.n = AuditExporterImpl.A[82];
        AuditExporterImpl.y = AuditExporterImpl.A[9];
        AuditExporterImpl.d = AuditExporterImpl.A[52];
        AuditExporterImpl.j = AuditExporterImpl.A[37];
        AuditExporterImpl.c = AuditExporterImpl.A[43];
        AuditExporterImpl.a = Logger.getLogger(AuditExporterImpl.class.getName());
        AuditExporterImpl.k = new ArrayList<String>();
        var0_6 = AuditExporterImpl.A;
        AuditExporterImpl.k.add(var0_6[63]);
        AuditExporterImpl.k.add(var0_6[37]);
        AuditExporterImpl.o = Pattern.compile(var0_6[64]);
        AuditExporterImpl.p = new AtomicBoolean(false);
        AuditExporterImpl.x = new String[][]{{var0_6[84]}, {var0_6[16]}};
    }

    private static Exception a(Exception exception) {
        return exception;
    }

    private static char[] c(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x44);
        }
        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 -> 97;
                    case 1 -> 124;
                    case 2 -> 92;
                    case 3 -> 78;
                    case 4 -> 111;
                    case 5 -> 18;
                    default -> 68;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    public static final class Dialect
    extends Enum<Dialect> {
        public static final /* enum */ Dialect MYSQL;
        public static final /* enum */ Dialect DERBY;
        private static final /* synthetic */ Dialect[] $VALUES;

        public static Dialect[] values() {
            return (Dialect[])$VALUES.clone();
        }

        public static Dialect valueOf(String string) {
            return Enum.valueOf(Dialect.class, string);
        }

        private static /* synthetic */ Dialect[] $values() {
            return new Dialect[]{MYSQL, DERBY};
        }

        /*
         * Enabled aggressive block sorting
         */
        static {
            String[] stringArray = new String[2];
            int n2 = 0;
            String string = "b?3@3\u0005k#2S&";
            int n3 = "b?3@3\u0005k#2S&".length();
            int n4 = 5;
            int n5 = -1;
            while (true) {
                int n6 = ++n5;
                stringArray[n2++] = Dialect.a(76, Dialect.a(string.substring(n6, n6 + n4)));
                if ((n5 += n4) >= n3) {
                    MYSQL = new Dialect();
                    DERBY = new Dialect();
                    $VALUES = Dialect.$values();
                    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] ^ 0x73);
            }
            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 -> 106;
                        case 1 -> 54;
                        case 2 -> 45;
                        case 3 -> 78;
                        case 4 -> 38;
                        case 5 -> 114;
                        default -> 115;
                    })));
                    ++n3;
                    n4 = n4;
                } while (n4 > n3);
            }
            return new String(cArray2).intern();
        }
    }
}

