/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.CertUtils
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.SystemMessages
 *  com.l7tech.gateway.common.security.RevocationCheckPolicy
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.security.cert.TrustedCert
 *  com.l7tech.security.cert.TrustedCertManager
 *  com.l7tech.security.prov.JceProvider
 *  com.l7tech.security.types.CertificateValidationResult
 *  com.l7tech.security.types.CertificateValidationType
 *  com.l7tech.util.CollectionUtils
 *  com.l7tech.util.Config
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.ConfigFactory$ConfigurationListener
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Functions$Unary
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 *  org.springframework.beans.factory.InitializingBean
 *  org.springframework.context.ApplicationEvent
 */
package com.l7tech.server.security.cert;

import com.l7tech.common.io.CertUtils;
import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.gateway.common.security.RevocationCheckPolicy;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.security.cert.TrustedCert;
import com.l7tech.security.cert.TrustedCertManager;
import com.l7tech.security.prov.JceProvider;
import com.l7tech.security.types.CertificateValidationResult;
import com.l7tech.security.types.CertificateValidationType;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.event.EntityInvalidationEvent;
import com.l7tech.server.identity.cert.RevocationCheckPolicyManager;
import com.l7tech.server.security.cert.CertValidationProcessor;
import com.l7tech.server.security.cert.CrlCache;
import com.l7tech.server.security.cert.OCSPCache;
import com.l7tech.server.security.cert.RevocationCheckerFactory;
import com.l7tech.server.security.cert.RevocationCheckingPKIXCertPathChecker;
import com.l7tech.server.security.cert.ab;
import com.l7tech.server.security.cert.b;
import com.l7tech.server.security.cert.c;
import com.l7tech.server.security.cert.d;
import com.l7tech.server.security.cert.e;
import com.l7tech.server.security.cert.g;
import com.l7tech.server.security.cert.h;
import com.l7tech.server.security.cert.i;
import com.l7tech.server.security.cert.j;
import com.l7tech.server.util.PostStartupApplicationListener;
import com.l7tech.util.CollectionUtils;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.math.BigInteger;
import java.security.GeneralSecurityException;
import java.security.InvalidAlgorithmParameterException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import java.security.cert.CertPathBuilder;
import java.security.cert.CertPathBuilderException;
import java.security.cert.CertPathParameters;
import java.security.cert.CertSelector;
import java.security.cert.CertStore;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateNotYetValidException;
import java.security.cert.CollectionCertStoreParameters;
import java.security.cert.PKIXBuilderParameters;
import java.security.cert.TrustAnchor;
import java.security.cert.X509CertSelector;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationEvent;

/*
 * Exception performing whole class analysis ignored.
 */
public class CertValidationProcessorImpl
implements CertValidationProcessor,
PostStartupApplicationListener,
PropertyChangeListener,
InitializingBean {
    private static final Logger a;
    private static final boolean b;
    private static final String c;
    private static final String d;
    private final DefaultKey e;
    private final TrustedCertManager f;
    private final RevocationCheckPolicyManager g;
    private final Config h;
    private final RevocationCheckPolicy i;
    private CrlCache j;
    private OCSPCache k;
    private RevocationCheckerFactory l;
    private final g m;
    private final ReadWriteLock n;
    private final Map<String, b> o;
    private final Map<String, List<b>> p;
    private final Map<i, b> q;
    private final Map<Goid, b> r;
    private final Map<Goid, RevocationCheckPolicy> s;
    private Map<String, List<TrustAnchor>> t;
    private final Set<String> u;
    private CertStore v;
    private boolean w;
    private RevocationCheckPolicy x;
    private boolean y;
    private static final String[] z;

    /*
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    public CertValidationProcessorImpl(TrustedCertManager trustedCertManager, RevocationCheckPolicyManager revocationCheckPolicyManager, DefaultKey defaultKey, Config config) {
        block6: {
            this.n = new ReentrantReadWriteLock();
            this.u = new HashSet<String>();
            this.w = false;
            if (trustedCertManager == null) throw new NullPointerException(z[18]);
            try {
                try {
                    try {
                        if (revocationCheckPolicyManager == null || defaultKey == null) throw new NullPointerException(z[18]);
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                    if (config != null) break block6;
                    throw new NullPointerException(z[18]);
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
        }
        this.f = trustedCertManager;
        this.g = revocationCheckPolicyManager;
        this.e = defaultKey;
        this.i = new RevocationCheckPolicy();
        this.i.setDefaultSuccess(true);
        this.h = config;
        HashMap<String, List<b>> hashMap = new HashMap<String, List<b>>();
        HashMap<i, b> hashMap2 = new HashMap<i, b>();
        HashMap<Goid, b> hashMap3 = new HashMap<Goid, b>();
        HashMap<String, b> hashMap4 = new HashMap<String, b>();
        HashMap<Goid, RevocationCheckPolicy> hashMap5 = new HashMap<Goid, RevocationCheckPolicy>();
        this.a(hashMap, hashMap2, hashMap3, hashMap4, hashMap5);
        this.p = hashMap;
        this.q = hashMap2;
        this.r = hashMap3;
        this.o = hashMap4;
        this.s = hashMap5;
        this.m = CertValidationProcessorImpl.b();
        this.y = ConfigFactory.getBooleanProperty((String)z[30], (boolean)false);
        ConfigFactory.addListener((ConfigFactory.ConfigurationListener)new c(this), (String[])new String[0]);
    }

    /*
     * Loose catch block
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    @Override
    public CertificateValidationResult check(X509Certificate[] x509CertificateArray, CertificateValidationType certificateValidationType, CertificateValidationType certificateValidationType2, CertValidationProcessor.Facility facility, Audit audit) throws CertificateException {
        CertificateValidationType certificateValidationType3;
        Object object;
        Object object2;
        String[] stringArray;
        block40: {
            block39: {
                block38: {
                    if (x509CertificateArray == null) throw new NullPointerException(z[11]);
                    try {
                        if (audit != null) break block38;
                        throw new NullPointerException(z[11]);
                        catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                            throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                        }
                    }
                    catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                        throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                    }
                }
                if (certificateValidationType2 != null) break block39;
                try {
                    if (facility != null) break block39;
                    throw new NullPointerException(z[3]);
                    catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                        throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                    }
                }
                catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                    throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                }
            }
            if (x509CertificateArray.length == 0) throw new IllegalArgumentException(z[14]);
            try {
                if (x509CertificateArray[0] != null) break block40;
                throw new IllegalArgumentException(z[14]);
                catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                    throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                }
            }
            catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
            }
        }
        X509Certificate x509Certificate = x509CertificateArray[0];
        if (certificateValidationType2 == null) {
            stringArray = z;
            object2 = stringArray[32] + facility.name().toLowerCase();
            object = this.h.getProperty((String)object2);
            if (object == null) {
                a.warning((String)object2 + stringArray[55] + String.valueOf(CertificateValidationType.CERTIFICATE_ONLY));
                certificateValidationType3 = this.a(CertificateValidationType.CERTIFICATE_ONLY, certificateValidationType);
            } else {
                stringArray = z;
                if (stringArray[0].equalsIgnoreCase((String)object)) {
                    certificateValidationType3 = this.a(CertificateValidationType.CERTIFICATE_ONLY, certificateValidationType);
                } else {
                    stringArray = z;
                    if (stringArray[50].equalsIgnoreCase((String)object)) {
                        certificateValidationType3 = this.a(CertificateValidationType.PATH_VALIDATION, certificateValidationType);
                    } else {
                        stringArray = z;
                        if (stringArray[10].equalsIgnoreCase((String)object)) {
                            certificateValidationType3 = this.a(CertificateValidationType.REVOCATION, certificateValidationType);
                        } else {
                            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_INVALID_SETTING, new String[]{object2, object});
                            certificateValidationType3 = this.a(CertificateValidationType.REVOCATION, certificateValidationType);
                        }
                    }
                }
            }
        } else {
            certificateValidationType3 = this.a(certificateValidationType2, certificateValidationType);
        }
        object2 = x509Certificate.getSubjectDN().getName();
        try {
            if (certificateValidationType3 == CertificateValidationType.CERTIFICATE_ONLY) {
                return this.a(x509Certificate, (String)object2, audit);
            }
        }
        catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
            throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
        }
        try {
            boolean bl2;
            X509Certificate[] x509CertificateArray2;
            CertValidationProcessorImpl certValidationProcessorImpl;
            try {
                certValidationProcessorImpl = this;
                x509CertificateArray2 = x509CertificateArray;
                bl2 = certificateValidationType3 == CertificateValidationType.REVOCATION;
            }
            catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
            }
            object = certValidationProcessorImpl.a(x509CertificateArray2, bl2, audit);
        }
        catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CANT_BUILD_PATH, new String[]{object2, ExceptionUtils.getMessage((Throwable)invalidAlgorithmParameterException)}, invalidAlgorithmParameterException.getCause());
            return CertificateValidationResult.CANT_BUILD_PATH;
        }
        catch (NoSuchAlgorithmException noSuchAlgorithmException) {
            throw new RuntimeException(noSuchAlgorithmException);
        }
        try {
            stringArray = z;
            CertPathBuilder certPathBuilder = CertPathBuilder.getInstance(stringArray[15]);
            certPathBuilder.build((CertPathParameters)object);
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CHECKED);
            return CertificateValidationResult.OK;
        }
        catch (CertPathBuilderException certPathBuilderException) {
            block42: {
                block41: {
                    try {
                        if (!ExceptionUtils.causedBy((Throwable)certPathBuilderException, CertificateExpiredException.class)) break block41;
                        audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CERT_EXPIRED, new String[]{object2});
                        return CertificateValidationResult.CANT_BUILD_PATH;
                    }
                    catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                        throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                    }
                }
                try {
                    if (!ExceptionUtils.causedBy((Throwable)certPathBuilderException, CertificateNotYetValidException.class)) break block42;
                    audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CERT_NOT_YET_VALID, new String[]{object2});
                    return CertificateValidationResult.CANT_BUILD_PATH;
                }
                catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                    throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
                }
            }
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CANT_BUILD_PATH, new String[]{object2, this.m.describe(certPathBuilderException)}, certPathBuilderException.getCause());
            return CertificateValidationResult.CANT_BUILD_PATH;
        }
        catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
            throw new CertificateException(z[2], invalidAlgorithmParameterException);
        }
        catch (NoSuchAlgorithmException noSuchAlgorithmException) {
            throw new RuntimeException(noSuchAlgorithmException);
        }
    }

    /*
     * Loose catch block
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    @Override
    public CertificateValidationResult checkWithCcRequirements(X509Certificate[] x509CertificateArray, CertificateValidationType certificateValidationType, CertificateValidationType certificateValidationType2, CertValidationProcessor.Facility facility, Audit audit, boolean bl2) throws CertificateException {
        block25: {
            block24: {
                block23: {
                    if (x509CertificateArray == null) throw new NullPointerException(z[41]);
                    try {
                        if (audit != null) break block23;
                        throw new NullPointerException(z[41]);
                        catch (CertificateNotYetValidException certificateNotYetValidException) {
                            throw CertValidationProcessorImpl.a(certificateNotYetValidException);
                        }
                    }
                    catch (CertificateNotYetValidException certificateNotYetValidException) {
                        throw CertValidationProcessorImpl.a(certificateNotYetValidException);
                    }
                }
                if (certificateValidationType2 != null) break block24;
                try {
                    if (facility != null) break block24;
                    throw new NullPointerException(z[31]);
                    catch (CertificateNotYetValidException certificateNotYetValidException) {
                        throw CertValidationProcessorImpl.a(certificateNotYetValidException);
                    }
                }
                catch (CertificateNotYetValidException certificateNotYetValidException) {
                    throw CertValidationProcessorImpl.a(certificateNotYetValidException);
                }
            }
            if (x509CertificateArray.length == 0) throw new IllegalArgumentException(z[24]);
            try {
                if (x509CertificateArray[0] != null) break block25;
                throw new IllegalArgumentException(z[24]);
                catch (CertificateNotYetValidException certificateNotYetValidException) {
                    throw CertValidationProcessorImpl.a(certificateNotYetValidException);
                }
            }
            catch (CertificateNotYetValidException certificateNotYetValidException) {
                throw CertValidationProcessorImpl.a(certificateNotYetValidException);
            }
        }
        X509Certificate x509Certificate = x509CertificateArray[0];
        try {
            CertUtils.checkValidity((X509Certificate)x509Certificate);
        }
        catch (CertificateNotYetValidException certificateNotYetValidException) {
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CERT_NOT_YET_VALID, new String[]{x509Certificate.getSubjectDN().toString()});
            return CertificateValidationResult.NOT_VALID_YET;
        }
        catch (CertificateExpiredException certificateExpiredException) {
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CERT_EXPIRED, new String[]{x509Certificate.getSubjectDN().toString()});
            return CertificateValidationResult.EXPIRED;
        }
        CertificateValidationResult certificateValidationResult = this.a(x509Certificate, audit);
        try {
            if (certificateValidationResult != CertificateValidationResult.OK) {
                return certificateValidationResult;
            }
        }
        catch (CertificateNotYetValidException certificateNotYetValidException) {
            throw CertValidationProcessorImpl.a(certificateNotYetValidException);
        }
        certificateValidationResult = this.b(x509Certificate, audit);
        try {
            if (certificateValidationResult != CertificateValidationResult.OK) {
                return certificateValidationResult;
            }
        }
        catch (CertificateNotYetValidException certificateNotYetValidException) {
            throw CertValidationProcessorImpl.a(certificateNotYetValidException);
        }
        try {
            if (!bl2) return this.check(x509CertificateArray, certificateValidationType, certificateValidationType2, facility, audit);
            return CertificateValidationResult.OK;
        }
        catch (CertificateNotYetValidException certificateNotYetValidException) {
            throw CertValidationProcessorImpl.a(certificateNotYetValidException);
        }
    }

    private CertificateValidationResult a(@NotNull X509Certificate x509Certificate, Audit audit) {
        block10: {
            block11: {
                try {
                    if (x509Certificate == null) {
                        CertValidationProcessorImpl.a(0);
                    }
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                try {
                    try {
                        if (!CertUtils.isKeyCertSign((X509Certificate)x509Certificate)) break block10;
                        if (x509Certificate.getExtensionValue(CertUtils.X509_OID_BASIC_CONSTRAINTS) != null) break block11;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                    audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CANT_BUILD_PATH, new String[]{z[21], x509Certificate.getSubjectDN().toString()});
                    return CertificateValidationResult.CANT_BUILD_PATH;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
            }
            try {
                if (!CertUtils.isCertCaCapable((X509Certificate)x509Certificate)) {
                    audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CANT_BUILD_PATH, new String[]{z[40], x509Certificate.getSubjectDN().toString()});
                    return CertificateValidationResult.CANT_BUILD_PATH;
                }
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
        }
        return CertificateValidationResult.OK;
    }

    private CertificateValidationResult b(@NotNull X509Certificate x509Certificate, Audit audit) {
        block9: {
            try {
                if (x509Certificate == null) {
                    CertValidationProcessorImpl.a(1);
                }
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
            try {
                try {
                    try {
                        if (!CertUtils.isKeyCertSign((X509Certificate)x509Certificate) || !CertUtils.isSelfIssued((X509Certificate)x509Certificate)) break block9;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                    if (CertUtils.verifySelfSignedCertSignature((X509Certificate)x509Certificate)) break block9;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CANT_BUILD_PATH, new String[]{z[39], x509Certificate.getSubjectDN().toString()});
                return CertificateValidationResult.CANT_BUILD_PATH;
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
        }
        return CertificateValidationResult.OK;
    }

    public void afterPropertiesSet() {
        try {
            if (this.l != null) {
                throw new IllegalStateException(z[36]);
            }
        }
        catch (NullPointerException nullPointerException) {
            throw CertValidationProcessorImpl.a(nullPointerException);
        }
        this.l = new RevocationCheckerFactory(this, this.j, this.k);
    }

    public void setCrlCache(CrlCache crlCache) {
        this.j = crlCache;
    }

    public void setOcspCache(OCSPCache oCSPCache) {
        this.k = oCSPCache;
    }

    private CertificateValidationType a(CertificateValidationType certificateValidationType, CertificateValidationType certificateValidationType2) {
        CertificateValidationType certificateValidationType3;
        block2: {
            certificateValidationType3 = certificateValidationType;
            try {
                if (certificateValidationType2 == null || certificateValidationType2.compareTo((Enum)certificateValidationType) <= 0) break block2;
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
            certificateValidationType3 = certificateValidationType2;
        }
        return certificateValidationType3;
    }

    private CertificateValidationResult a(X509Certificate x509Certificate, String string, Audit audit) throws CertificateException {
        try {
            x509Certificate.checkValidity();
        }
        catch (CertificateExpiredException certificateExpiredException) {
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CERT_EXPIRED, new String[]{string});
            throw certificateExpiredException;
        }
        catch (CertificateNotYetValidException certificateNotYetValidException) {
            audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CERT_NOT_YET_VALID, new String[]{string});
            throw certificateNotYetValidException;
        }
        audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_CHECKED);
        return CertificateValidationResult.OK;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    @Override
    public TrustedCert getTrustedCertByOid(Goid goid) {
        this.n.readLock().lock();
        try {
            TrustedCert trustedCert = null;
            b b10 = this.r.get(goid);
            if (b10 != null) {
                trustedCert = b10.a;
            }
            TrustedCert trustedCert2 = trustedCert;
            return trustedCert2;
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    @Override
    public X509Certificate getCertificateBySubjectDn(String string) {
        this.n.readLock().lock();
        try {
            Object object;
            X509Certificate x509Certificate;
            block8: {
                block7: {
                    x509Certificate = null;
                    List<b> list = this.p.get(string);
                    try {
                        if (list == null || list.isEmpty()) break block7;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                    x509Certificate = list.get((int)0).b;
                    break block8;
                }
                object = this.t.get(string);
                try {
                    if (object == null || object.isEmpty()) break block8;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                x509Certificate = ((TrustAnchor)object.get(0)).getTrustedCert();
            }
            object = x509Certificate;
            return object;
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    @Override
    public X509Certificate getCertificateByIssuerDnAndSerial(String string, BigInteger bigInteger) {
        this.n.readLock().lock();
        try {
            X509Certificate x509Certificate = null;
            i i2 = new i(string, bigInteger);
            b b10 = this.q.get(i2);
            if (b10 != null) {
                x509Certificate = b10.b;
            } else {
                block3: for (List list : this.t.values()) {
                    for (TrustAnchor trustAnchor : list) {
                        X509Certificate x509Certificate2 = trustAnchor.getTrustedCert();
                        if (!i2.a(x509Certificate2)) continue;
                        x509Certificate = x509Certificate2;
                        break block3;
                    }
                }
            }
            X509Certificate x509Certificate3 = x509Certificate;
            return x509Certificate3;
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    @Override
    public X509Certificate getCertificateBySKI(String string) {
        this.n.readLock().lock();
        try {
            X509Certificate x509Certificate = null;
            b b10 = this.o.get(string);
            if (b10 != null) {
                x509Certificate = b10.b;
            } else {
                block3: for (List list : this.t.values()) {
                    for (TrustAnchor trustAnchor : list) {
                        X509Certificate x509Certificate2 = trustAnchor.getTrustedCert();
                        if (!string.equals(CertUtils.getSki((X509Certificate)x509Certificate2))) continue;
                        x509Certificate = trustAnchor.getTrustedCert();
                        break block3;
                    }
                }
            }
            X509Certificate x509Certificate3 = x509Certificate;
            return x509Certificate3;
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    @Override
    public TrustedCert getTrustedCertEntry(X509Certificate x509Certificate) {
        this.n.readLock().lock();
        try {
            List<b> list;
            String string;
            block8: {
                string = CertUtils.getSubjectDN((X509Certificate)x509Certificate);
                list = this.p.get(string);
                try {
                    if (list != null && !list.isEmpty()) break block8;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                TrustedCert trustedCert = null;
                return trustedCert;
            }
            for (b b10 : list) {
                if (!CertUtils.certsAreEqual((X509Certificate)x509Certificate, (X509Certificate)b10.b)) continue;
                TrustedCert trustedCert = b10.a;
                return trustedCert;
            }
            String[] stringArray = z;
            throw new IllegalArgumentException(stringArray[48] + string + stringArray[37]);
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    /*
     * Exception decompiling
     */
    @Override
    public RevocationCheckPolicy getRevocationCheckPolicy(TrustedCert var1_1) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 3[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    @Override
    public RevocationCheckPolicy getDefaultPolicy() {
        this.n.readLock().lock();
        try {
            RevocationCheckPolicy revocationCheckPolicy = this.x;
            return revocationCheckPolicy;
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    @Override
    public boolean isSerialNumberCheckDisabledForRevocationCheck() {
        return this.y;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private PKIXBuilderParameters a(X509Certificate[] x509CertificateArray, boolean bl2, Audit audit) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException {
        this.n.readLock().lock();
        try {
            X509CertSelector x509CertSelector = new X509CertSelector();
            x509CertSelector.setCertificate(x509CertificateArray[0]);
            HashSet<TrustAnchor> hashSet = new HashSet<TrustAnchor>();
            hashSet.addAll(CollectionUtils.join(this.t.values()));
            PKIXBuilderParameters pKIXBuilderParameters = new PKIXBuilderParameters(hashSet, (CertSelector)x509CertSelector);
            try {
                pKIXBuilderParameters.setRevocationEnabled(false);
                if (bl2) {
                    pKIXBuilderParameters.addCertPathChecker(new RevocationCheckingPKIXCertPathChecker(this.l, pKIXBuilderParameters, audit));
                }
            }
            catch (InvalidAlgorithmParameterException invalidAlgorithmParameterException) {
                throw CertValidationProcessorImpl.a(invalidAlgorithmParameterException);
            }
            pKIXBuilderParameters.addCertPathChecker(new ab(this.u));
            pKIXBuilderParameters.addCertStore(this.v);
            pKIXBuilderParameters.addCertStore(CertStore.getInstance(z[52], new CollectionCertStoreParameters(Arrays.asList(x509CertificateArray))));
            PKIXBuilderParameters pKIXBuilderParameters2 = pKIXBuilderParameters;
            return pKIXBuilderParameters2;
        }
        finally {
            this.n.readLock().unlock();
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    @Override
    public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
        String[] stringArray = z;
        if (stringArray[60].equals(propertyChangeEvent.getPropertyName())) {
            this.n.writeLock().lock();
            try {
                if (a.isLoggable(Level.FINE)) {
                    a.log(Level.FINE, stringArray[28], propertyChangeEvent.getNewValue());
                }
                this.a(this.f.findAll(), Boolean.valueOf((String)propertyChangeEvent.getNewValue()));
            }
            catch (FindException findException) {
                stringArray = z;
                a.log(Level.WARNING, stringArray[19], findException);
            }
            finally {
                this.n.writeLock().unlock();
            }
        } else {
            stringArray = z;
            if (stringArray[26].equals(propertyChangeEvent.getPropertyName())) {
                this.n.writeLock().lock();
                try {
                    if (a.isLoggable(Level.FINE)) {
                        a.log(Level.FINE, stringArray[45], propertyChangeEvent.getNewValue());
                    }
                    this.a();
                }
                finally {
                    this.n.writeLock().unlock();
                }
            }
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public void onApplicationEvent(ApplicationEvent applicationEvent) {
        block11: {
            if (applicationEvent instanceof EntityInvalidationEvent) {
                block10: {
                    boolean bl2 = false;
                    this.n.readLock().lock();
                    try {
                        bl2 = this.w;
                    }
                    finally {
                        this.n.readLock().unlock();
                    }
                    try {
                        if (bl2) break block10;
                        this.a((EntityInvalidationEvent)applicationEvent);
                        break block11;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                }
                this.n.writeLock().lock();
                try {
                    this.a(this.p, this.q, this.r, this.o, this.s);
                }
                finally {
                    this.n.writeLock().unlock();
                }
            }
        }
    }

    /*
     * Loose catch block
     */
    private void a(Map<String, List<b>> map, Map<i, b> map2, Map<Goid, b> map3, Map<String, b> map4, Map<Goid, RevocationCheckPolicy> map5) {
        Collection collection;
        Object object2222;
        Collection collection2;
        String[] stringArray = z;
        a.info(stringArray[34]);
        map.clear();
        map2.clear();
        map3.clear();
        map4.clear();
        map5.clear();
        try {
            collection2 = this.g.findAll();
        }
        catch (FindException findException) {
            stringArray = z;
            throw new RuntimeException(stringArray[23], findException);
        }
        RevocationCheckPolicy revocationCheckPolicy = null;
        for (Object object2222 : collection2) {
            block14: {
                block13: {
                    if (!object2222.isDefaultPolicy()) break block14;
                    try {
                        block15: {
                            if (revocationCheckPolicy == null) break block13;
                            break block15;
                            catch (FindException findException) {
                                throw CertValidationProcessorImpl.a(findException);
                            }
                        }
                        throw new IllegalStateException(z[43]);
                    }
                    catch (FindException findException) {
                        throw CertValidationProcessorImpl.a(findException);
                    }
                }
                revocationCheckPolicy = object2222;
            }
            map5.put(object2222.getGoid(), (RevocationCheckPolicy)object2222);
        }
        if (revocationCheckPolicy == null) {
            revocationCheckPolicy = new RevocationCheckPolicy();
        }
        this.x = revocationCheckPolicy;
        try {
            collection = this.f.findAll();
        }
        catch (FindException findException) {
            stringArray = z;
            throw new RuntimeException(stringArray[12], findException);
        }
        object2222 = collection.iterator();
        while (object2222.hasNext()) {
            TrustedCert trustedCert = (TrustedCert)object2222.next();
            try {
                b b10 = new b(trustedCert);
                this.a(map, trustedCert.getSubjectDn(), b10);
                map3.put(trustedCert.getGoid(), b10);
                map4.put(trustedCert.getSki(), b10);
                map2.put(new i(b10.e, b10.f), b10);
            }
            catch (IllegalArgumentException illegalArgumentException) {
                stringArray = z;
                a.log(Level.WARNING, stringArray[35] + ExceptionUtils.getMessage((Throwable)illegalArgumentException), new Object[]{trustedCert.getGoid(), trustedCert.getSubjectDn()});
            }
        }
        this.a(collection, this.h.getBooleanProperty(z[25], false));
        this.a();
        this.w = false;
    }

    /*
     * Exception decompiling
     */
    private void a(EntityInvalidationEvent var1_1) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [12[CASE]], but top level block is 2[TRYBLOCK]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    /*
     * Could not resolve type clashes
     * Loose catch block
     */
    private void a(Collection<TrustedCert> collection, boolean bl2) {
        HashSet<X509Certificate> hashSet;
        HashMap hashMap;
        block23: {
            TrustManagerFactory trustManagerFactory;
            Object object;
            TrustManager[] trustManagerArray;
            hashMap = new HashMap();
            hashSet = new HashSet<X509Certificate>();
            SsgKeyEntry ssgKeyEntry = this.e.getCaInfo();
            try {
                if (ssgKeyEntry != null) {
                    this.a(hashMap, CertUtils.getSubjectDN((X509Certificate)ssgKeyEntry.getCertificate()), new TrustAnchor(ssgKeyEntry.getCertificate(), null));
                }
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                throw CertValidationProcessorImpl.a(noSuchAlgorithmException);
            }
            if (!bl2) break block23;
            try {
                TrustManagerFactory trustManagerFactory2;
                trustManagerArray = TrustManagerFactory.getDefaultAlgorithm();
                String[] stringArray = z;
                object = JceProvider.getInstance().getProviderFor(stringArray[51] + (String)trustManagerArray);
                try {
                    trustManagerFactory2 = object == null ? TrustManagerFactory.getInstance((String)trustManagerArray) : TrustManagerFactory.getInstance((String)trustManagerArray, (Provider)object);
                }
                catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                    throw CertValidationProcessorImpl.a(noSuchAlgorithmException);
                }
                trustManagerFactory = trustManagerFactory2;
                trustManagerFactory.init((KeyStore)null);
            }
            catch (KeyStoreException | NoSuchAlgorithmException generalSecurityException) {
                a.log(Level.SEVERE, generalSecurityException.toString(), generalSecurityException);
                throw new RuntimeException(generalSecurityException);
            }
            trustManagerArray = trustManagerFactory.getTrustManagers();
            object = null;
            Object[] objectArray = trustManagerArray;
            int n2 = objectArray.length;
            for (int i2 = 0; i2 < n2; ++i2) {
                TrustManager trustManager;
                block22: {
                    trustManager = objectArray[i2];
                    if (!(trustManager instanceof X509TrustManager)) continue;
                    try {
                        block24: {
                            if (object == null) break block22;
                            break block24;
                            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                                throw CertValidationProcessorImpl.a(noSuchAlgorithmException);
                            }
                        }
                        throw new IllegalStateException(z[33]);
                    }
                    catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                        throw CertValidationProcessorImpl.a(noSuchAlgorithmException);
                    }
                }
                object = (X509TrustManager)trustManager;
            }
            try {
                if (object == null) {
                    throw new IllegalStateException(z[46]);
                }
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                throw CertValidationProcessorImpl.a(noSuchAlgorithmException);
            }
            for (Object object2 : objectArray = object.getAcceptedIssuers()) {
                this.a(hashMap, CertUtils.getSubjectDN((X509Certificate)object2), new TrustAnchor((X509Certificate)object2, null));
            }
        }
        for (TrustManager[] trustManagerArray : collection) {
            try {
                if (trustManagerArray.isTrustAnchor()) {
                    this.a(hashMap, trustManagerArray.getSubjectDn(), new TrustAnchor(trustManagerArray.getCertificate(), null));
                    continue;
                }
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                throw CertValidationProcessorImpl.a(noSuchAlgorithmException);
            }
            hashSet.add(trustManagerArray.getCertificate());
        }
        this.t = Collections.unmodifiableMap(hashMap);
        try {
            this.v = CertStore.getInstance(z[52], new CollectionCertStoreParameters(Collections.unmodifiableSet(hashSet)));
        }
        catch (GeneralSecurityException generalSecurityException) {
            throw new RuntimeException(generalSecurityException);
        }
    }

    private void a() {
        this.u.clear();
        String[] stringArray = z;
        this.u.addAll(Arrays.asList(this.h.getProperty(stringArray[57], "").split(stringArray[17])));
    }

    private void a(Goid goid) {
        block4: {
            try {
                try {
                    this.l.invalidateRevocationCheckPolicy(goid);
                    this.s.remove(goid);
                    if (this.x == null || !this.x.getGoid().equals((Object)goid)) break block4;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                this.x = null;
                a.fine(z[29]);
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
        }
    }

    private void a(RevocationCheckPolicy revocationCheckPolicy) {
        block9: {
            block8: {
                try {
                    if (!revocationCheckPolicy.isDefaultPolicy()) break block8;
                    this.x = revocationCheckPolicy;
                    break block9;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
            }
            try {
                try {
                    try {
                        if (this.x == null || this.x.getGoid() == null) break block9;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                    if (!this.x.getGoid().equals((Object)revocationCheckPolicy.getGoid())) break block9;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                this.x = null;
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
        }
        this.s.put(revocationCheckPolicy.getGoid(), revocationCheckPolicy);
        this.l.invalidateRevocationCheckPolicy(revocationCheckPolicy.getGoid());
    }

    private void b(Goid goid) {
        this.l.invalidateTrustedCert(goid);
        b b10 = this.r.remove(goid);
        try {
            if (b10 == null) {
                return;
            }
        }
        catch (NullPointerException nullPointerException) {
            throw CertValidationProcessorImpl.a(nullPointerException);
        }
        this.a((Map)this.p, (Object)b10.c, (Functions.Unary)this.b(b10.b));
        this.o.remove(b10.d);
        this.q.remove(new i(b10.e, b10.f));
        if (this.t.containsKey(b10.c)) {
            HashMap<String, List<TrustAnchor>> hashMap = new HashMap<String, List<TrustAnchor>>(this.t);
            this.a((Map)hashMap, (Object)b10.c, (Functions.Unary)this.a(b10.b));
            this.t = Collections.unmodifiableMap(hashMap);
        }
    }

    /*
     * Unable to fully structure code
     */
    private void a(TrustedCert var1_1) throws CertificateException {
        block21: {
            block24: {
                block23: {
                    block22: {
                        var2_2 = new b(var1_1);
                        try {
                            this.a(this.p, var1_1.getSubjectDn(), var2_2, this.b(var2_2.b));
                            this.o.put(var2_2.d, var2_2);
                            this.r.put(var1_1.getGoid(), var2_2);
                            this.q.put(new i(var2_2.e, var2_2.f), var2_2);
                            if (CertValidationProcessorImpl.a.isLoggable(Level.FINE)) {
                                CertValidationProcessorImpl.a.log(Level.FINE, CertValidationProcessorImpl.z[53], var2_2.c);
                            }
                        }
                        catch (GeneralSecurityException v0) {
                            throw CertValidationProcessorImpl.a(v0);
                        }
                        var3_3 = new HashMap<String, List<TrustAnchor>>(this.t);
                        if (!var1_1.isTrustAnchor()) break block24;
                        var4_4 = this.a(var3_3, var1_1.getSubjectDn(), new TrustAnchor(var2_2.b, null), this.a(var2_2.b));
                        if (!CertValidationProcessorImpl.a.isLoggable(Level.FINE)) break block21;
                        try {
                            block25: {
                                v1 = CertValidationProcessorImpl.a;
                                v2 = Level.FINE;
                                v3 = CertValidationProcessorImpl.z[20];
                                v4 = new Object[2];
                                v4[0] = var2_2.c;
                                v5 = v4;
                                v6 = v4;
                                v7 = 1;
                                if (var4_4 != null) break block22;
                                break block25;
                                catch (GeneralSecurityException v8) {
                                    throw CertValidationProcessorImpl.a(v8);
                                }
                            }
                            v9 = CertValidationProcessorImpl.z[27];
                            break block23;
                        }
                        catch (GeneralSecurityException v10) {
                            throw CertValidationProcessorImpl.a(v10);
                        }
                    }
                    v9 = var4_4.getTrustedCert().getSubjectDN();
                }
                v5[v7] = v9;
                v1.log(v2, v3, v6);
                break block21;
            }
            try {
                v11 = this.a((Map<K, List<V>>)var3_3, (K)var1_1.getSubjectDn(), (Functions.Unary<Boolean, V>)this.a(var2_2.b)) != null;
            }
            catch (GeneralSecurityException v12) {
                throw CertValidationProcessorImpl.a(v12);
            }
            var4_5 = v11;
            try {
                if (CertValidationProcessorImpl.a.isLoggable(Level.FINE)) {
                    CertValidationProcessorImpl.a.log(Level.FINE, CertValidationProcessorImpl.z[16], new Object[]{var2_2.c, var4_5});
                }
            }
            catch (GeneralSecurityException v13) {
                throw CertValidationProcessorImpl.a(v13);
            }
        }
        this.t = Collections.unmodifiableMap(var3_3);
        try {
            var4_4 = new HashSet<Certificate>(this.v.getCertificates(null));
            if (var1_1.isTrustAnchor()) {
                var5_7 = var4_4.remove(var2_2.b);
                try {
                    if (!CertValidationProcessorImpl.a.isLoggable(Level.FINE)) ** GOTO lbl76
                    CertValidationProcessorImpl.a.log(Level.FINE, CertValidationProcessorImpl.z[47], new Object[]{var2_2.c, var5_7});
                }
                catch (GeneralSecurityException v14) {
                    throw CertValidationProcessorImpl.a(v14);
                }
            } else {
                var5_8 = var4_4.add(var2_2.b);
                try {
                    if (CertValidationProcessorImpl.a.isLoggable(Level.FINE)) {
                        CertValidationProcessorImpl.a.log(Level.FINE, CertValidationProcessorImpl.z[44], new Object[]{var2_2.c, var5_8});
                    }
                }
                catch (GeneralSecurityException v15) {
                    throw CertValidationProcessorImpl.a(v15);
                }
            }
lbl76:
            // 3 sources

            this.v = CertStore.getInstance(CertValidationProcessorImpl.z[49], new CollectionCertStoreParameters(Collections.unmodifiableSet(var4_4)));
        }
        catch (GeneralSecurityException var4_6) {
            throw new RuntimeException(var4_6);
        }
        this.l.invalidateTrustedCert(var1_1.getGoid());
    }

    private <K, V> void a(Map<K, List<V>> map, K k2, V v2) {
        this.a(map, k2, v2, null);
    }

    private <K, V> V a(Map<K, List<V>> map, K k2, V v2, @Nullable Functions.Unary<Boolean, V> unary) {
        List<V> list;
        V v3 = null;
        List<V> list2 = map.get(k2);
        if (list2 == null) {
            list = Collections.singletonList(v2);
        } else if (unary == null) {
            ArrayList<V> arrayList = new ArrayList<V>(list2);
            arrayList.add(v2);
            list = Collections.unmodifiableList(arrayList);
        } else {
            ArrayList<V> arrayList = new ArrayList<V>(list2);
            int n2 = -1;
            int n3 = 0;
            while (true) {
                block9: {
                    try {
                        if (n3 >= arrayList.size()) break;
                        if (!((Boolean)unary.call(arrayList.get(n3))).booleanValue()) break block9;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw CertValidationProcessorImpl.a(nullPointerException);
                    }
                    n2 = n3;
                    break;
                }
                ++n3;
            }
            if (n2 >= 0) {
                v3 = (V)arrayList.remove(n2);
                arrayList.add(n2, v2);
            } else {
                arrayList.add(v2);
            }
            list = Collections.unmodifiableList(arrayList);
        }
        map.put(k2, list);
        return v3;
    }

    private <K, V> V a(Map<K, List<V>> map, K k2, Functions.Unary<Boolean, V> unary) {
        V v2;
        block11: {
            block10: {
                v2 = null;
                List<V> list = map.get(k2);
                List<V> list2 = null;
                if (list != null) {
                    ArrayList<V> arrayList = new ArrayList<V>(list);
                    int n2 = -1;
                    int n3 = 0;
                    while (true) {
                        block9: {
                            try {
                                if (n3 >= arrayList.size()) break;
                                if (!((Boolean)unary.call(arrayList.get(n3))).booleanValue()) break block9;
                            }
                            catch (NullPointerException nullPointerException) {
                                throw CertValidationProcessorImpl.a(nullPointerException);
                            }
                            n2 = n3;
                            break;
                        }
                        ++n3;
                    }
                    if (n2 >= 0) {
                        v2 = (V)arrayList.get(n2);
                        if (arrayList.size() > 1) {
                            arrayList.remove(n2);
                            list2 = Collections.unmodifiableList(arrayList);
                        }
                    } else {
                        list2 = list;
                    }
                }
                try {
                    if (list2 == null) break block10;
                    map.put(k2, list2);
                    break block11;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
            }
            map.remove(k2);
        }
        return v2;
    }

    private Functions.Unary<Boolean, TrustAnchor> a(X509Certificate x509Certificate) {
        return new d(this, x509Certificate);
    }

    private Functions.Unary<Boolean, b> b(X509Certificate x509Certificate) {
        return new e(this, x509Certificate);
    }

    private void a(String string) {
        block4: {
            try {
                try {
                    if (this.h == null || !z[8].equals(string)) break block4;
                }
                catch (NullPointerException nullPointerException) {
                    throw CertValidationProcessorImpl.a(nullPointerException);
                }
                this.y = this.h.getBooleanProperty(z[30], false);
            }
            catch (NullPointerException nullPointerException) {
                throw CertValidationProcessorImpl.a(nullPointerException);
            }
        }
    }

    private static g b() {
        try {
            g g2;
            try {
                g2 = b ? new j() : new h();
            }
            catch (NoClassDefFoundError noClassDefFoundError) {
                throw CertValidationProcessorImpl.a(noClassDefFoundError);
            }
            return g2;
        }
        catch (NoClassDefFoundError noClassDefFoundError) {
            return new h();
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[62];
                var3_1 = 0;
                var2_2 = "7Fj\tk[$$\u000f9\u00126YL_\"5N`\tl[$$\u0019\u0014Ig\u0002c_p5H&\u0002zS<%\u0007E\u0005}Np\u0011Fr\b4\u0004Nr\bjHp3Bw\u0015jI$$CP\u0001cn)1B&\u000f}\u001a6 Do\ffN)aJs\u0013{\u001a2$\u0007v\u0012`L9%Bb7\u0002Hs\fkTw5\u0007j\u000fn^p3Be\u0005aN<8\u0007e\u0012j[$$C&\u000f}\u001a%1Cg\u0014j^p\u0015Us\u0013{_4\u0002Bt\u0014/\u0019?\u0014Wb\u0001{S>&\u0007e\u0001lR5aCs\u0005/N?aSt\u0015|N5%\u0007e\u0005}N9'Ne\u0001{_p%Bj\u0005{S?/\u000b&/F~p(T&\u001b?G~\u0014\"FE\u0005}N\u00115St\tmO$$dn\u0005lQA\u0002Hs\fkTw5\u0007j\u000fn^p3Be\u0005aN<8\u0007e\u0012j[$$C&\u000f}\u001a%1Cg\u0014j^p\u0013Bp\u000fl[$(Hh#g_3*wi\ffY)a\u0004/1Lo\u0018Lh\u001coTm\t\u007fi53Ng\fAO=#Bt#g_3*ai\u0012]_&.Dg\u0014fU>\u0002Oc\u0003dA\u0014Wb\u0001{S>&\u0007e\u0001lR5aCs\u0005/N?aSt\u0015|N5%\u0007e\u0005}N9'Ne\u0001{_p CbOzJ4 ScL/u\u0019\u0005\u0007o\u0013/A`<\t\n3Bp\u000fl[$(Hh\u001f \u0007t\u0005~O93Bb@\u007f[\" Jc\u0014jHp(T&\rfI#(Ia\u001c\u0014Ig\u0002c_p5H&\u0006fT4ast\u0015|N5%\u0007E\u0005}N#3\"HkNc\r$$DnN|_\"7BtN|_34Uo\u0014v\u00143$UrNzI5\u0004_e\u0005\u007fN9.IB\u0005lU4$U\u0018(Ip\u0001cS4aDc\u0012{S6(Dg\u0014j\u001a  Sn\u0004\u0011lO86\u0013Bk\u000fy_4aDc\u0012{S6(Dg\u0014j\u001awf\\6\u001d(\u001d|aAt\u000fb\u001a1/Dn\u000f}Ip2Si\u0012j\u001ax:\u0016{I!\u0002\u001dT\u001f\u0000\u0007t\u0005~O93Bb@lU=1Hh\u0005aNp(T&\rfI#(Ia\u001a\u0002Hs\fkTw5\u0007j\u000fn^p\u0015Us\u0013{_4\u0002Bt\u0014|>\u0000Cb\u0005k\u001a3$Ur\tiS3 Sc@(\u001d+qZ!G#\u001a$.\u0007g\u000elR?3T&\u0013{U\"$\u000b&\u0012jJ< Dc\u0004/\u001dw:\u0016{G(\u0014i\u0015Oc@D_)\u0014Tg\u0007j\u001a6.U&\u0014gS#aDc\u0012{S6(Dg\u0014j\u001a8 T&+jC\u0013$Ur3f]>aFr\u0014}S24Sc@mO$aSn\u0005/X12Ne@lU>2St\u0001fT$aFr\u0014}S24Sc@fIp,Nu\u0013fT7;\"HkOc\r$$DnO|_\"7BtO|_34Uo\u0014v\u00153$UrOL_\"5qg\ff^15Ni\u000e_H?\"Bu\u0013`H\u0019,Wj&\u0014Ig\u0002c_p5H&\u0006fT4auc\u0016`Y15Ni\u000eLR5\"LV\u000fcS3(Bu\u0018(Ip\u0001cS4aDc\u0012{S6(Dg\u0014j\u001a  Sn\u001b1Lo\u0018[H%2S(\u0015|_\u0014$Ag\u0015cN\u0011/Dn\u000f}I%1Lo\u0018[H%2S(\u0010jH=(Sr\u0005ky\"(So\u0003nV\u00159Sc\u000e|S?/T\u0006}iS,C\u0004V\u0014Wb\u0001{S>&\u0007r\u0012zI$aFh\u0003gU\"2\u0007b\u0015j\u001a$.\u0007e\fzI$$U&\u0010}U $Ur\u0019/Y8 Ia\u0005#\u001a%2B&\u0004j\\14Kr@nT3)Ht\u0013/S#aIi\u0017/A`<\te\u0005B`\u0001zV$aUc\u0016`Y15Ni\u000e/J?-Ne\u0019/^5-Br\u0005k\u0001p)Hv\u0005iO<-^&\u0013`U>aPcGcVp#B&\u000e`N9'Nc\u0004/N8 S&\u0001/T56\u0007i\u000ej\u001a' T&\u0013jNp T&\u0004j\\14Kr/1Lo\u0018Lh\u001coTm\t\u007fi53Ng\fAO=#Bt#g_3*ai\u0012]_&.Dg\u0014fU>\u0002Oc\u0003d4\u0004Nr\bjHp3Bw\u0015jI$$CP\u0001cn)1B&\u000f}\u001a6 Do\ffN)aJs\u0013{\u001a2$\u0007v\u0012`L9%Bb\u000f1Lo\u0018Y[<(Cg\u0014fU>o\u001b\u0007Hs\u000ek\u001a$6H&8:\ni\u0015Us\u0013{w1/Fa\u0005}I.iucM&j?1Rj\u0001{S>&\u0007e\u0005}N9'Ne\u0001{_p7Fj\tk[$(Hh@l[3)BuN&\u0002Hs\fkTw5\u0007j\u000fn^p\u0015Us\u0013{_4\u0002Bt\u0014/\u0019+qZ&Ht\u000b-h\u001d&\u0013 Kt\u0005n^)aNh\t{S1-N|\u0005k(aNu@kS6'Bt\u0005aNp'Ui\r/J\"$Tc\u000e{_4aDc\u0012{S6(Dg\u0014j>\u0000Ua\u0015b_>5\u0007`\u000f}\u001a\u0010\u000fHr.zV<aWg\u0012nW55Bt@(\u001f#f\u0007i\u0006/\u001f#o\u0002u@bO#5\u0007h\u000f{\u001a2$\u0007h\u0015cVj\u0015Oc@D_)\u0014Tg\u0007j\u001a6.U&\u0014gS#aDc\u0012{S6(Dg\u0014j\u001a8 T&+jC\u0013$Ur3f]>aFh\u0004/S#aTc\fi\u001792Ts\u0005k\u0014p\tHq\u0005y_\"m\u0007u\thT15Rt\u0005/L1-Nb\u0001{S?/\u0007`\u0001fV5%m\u0015Oc@D_)\u0014Tg\u0007j\u001a6.U&\u0014gS#aDc\u0012{S6(Dg\u0014j\u001a8 T&+jC\u0013$Ur3f]>aFr\u0014}S24Sc@mO$aSn\u0005/y\u0011aEi\u000fc_1/\u0007o\u0013/T?5\u0007v\u0012jI5/S&\u000f}\u001a#$S&\u0014`\u001a6 Ku\u0005\u001f \u0007t\u0005~O93Bb@\u007f[\" Jc\u0014jHp(T&\rfI#(Ia$\u0014Ic\u0018\u007f_35Bb@fT& Ko\u0004nN9.I&\u000f\u007f_\" So\u000fa\u0000pf7\fRj\u0014fJ<$\u0007T\u0005yU3 So\u000fay8$Dm0`V9\"Nc\u0013/[\"$\u0007`\fn]7$C&\u0001|\u001a4$Ag\u0015cN6\u0000Cb\u0005k\u001a3$Ur\tiS3 Sc@(\u001d+qZ!G#\u001a$.\u0007h\u000fa\u00171/Dn\u000f}Ip2Si\u0012j\u001ax:\u0016{I!X\u0014Wb\u0001{S>&\u0007v\u0005}W95Sc\u0004/Y\"(So\u0003nVp$_r\u0005aI9.Iu@kO5aSi@lV%2Sc\u0012/J\".Wc\u0012{Cp\"Og\u000eh_|aQg\fz_p(T&\u000e`Mp:\u0017{N!\u0002Hs\fkTw5\u0007`\ta^p I&8:\ni\u0015Us\u0013{w1/Fa\u0005}:\u0013Bk\u000fy_4aDc\u0012{S6(Dg\u0014j\u001awf\\6\u001d(\u001d|aAt\u000fb\u001a>.I+\u0001aY8.Uu@|N?3B&Ht\u000b-h\t\u001b\u0002Fe\bj^p\u0015Us\u0013{_4\u0002Bt\u0014/M95O&$A\u001a\n\u0002Hj\fjY$(Hh\f7Fj\tk[$$Wg\u0014g\u0014\u0015Us\u0013{w1/Fa\u0005}|1\"Si\u0012v\u0014\n\u0002Hj\fjY$(Hh,\u0000Cb\u0005k\u001a3$Ur\tiS3 Sc@(\u001d+qZ!G#\u001a$.\u0007g\u000elR?3T&\u0013{U\"$\t\u001e\"Oc\u0003d|?3tc\fis#2Rc\u0004NT4\u0017Bt\tiC\u0003(@,aT\u007f\u0013{_=aWt\u000f\u007f_\"5^&\u0015a[& Nj\u0001mV5m\u0007s\u0013fT7aCc\u0006nO<5\u0007E\u0014Wb\u0001{S>&\u0007e\u0001lR5aCs\u0005/N?aUc\u0016`Y15Ni\u000e/Y8$Dm@\u007fU<(D\u007f@n^4nRv\u0004nN5m\u0007I)K\u001a92\u0007}Pr\u0014%1Lo\u0018[H%2S(\u0010jH=(Sr\u0005ky\"(So\u0003nV\u00159Sc\u000e|S?/TZ\u0007Fo\fj^p5H&\u0012j\u00179/Nr\tnV9;B&\u0014g_p\u0002Bt\u0014|N?3B&\u0001a^p5Us\u0013{\u001a1/Dn\u000f}Ip Ar\u0005}\u001a4$Kc\u0014fT7aDc\u0012{S6(Dg\u0014j\u0012#h\t&\u001b?G$\u0014Ic\u0018\u007f_35Bb@fT& Ko\u0004nN9.I&\u000f\u007f_\" So\u000fa\u0000pf";
                var4_3 = "7Fj\tk[$$\u000f9\u00126YL_\"5N`\tl[$$\u0019\u0014Ig\u0002c_p5H&\u0002zS<%\u0007E\u0005}Np\u0011Fr\b4\u0004Nr\bjHp3Bw\u0015jI$$CP\u0001cn)1B&\u000f}\u001a6 Do\ffN)aJs\u0013{\u001a2$\u0007v\u0012`L9%Bb7\u0002Hs\fkTw5\u0007j\u000fn^p3Be\u0005aN<8\u0007e\u0012j[$$C&\u000f}\u001a%1Cg\u0014j^p\u0015Us\u0013{_4\u0002Bt\u0014/\u0019?\u0014Wb\u0001{S>&\u0007e\u0001lR5aCs\u0005/N?aSt\u0015|N5%\u0007e\u0005}N9'Ne\u0001{_p%Bj\u0005{S?/\u000b&/F~p(T&\u001b?G~\u0014\"FE\u0005}N\u00115St\tmO$$dn\u0005lQA\u0002Hs\fkTw5\u0007j\u000fn^p3Be\u0005aN<8\u0007e\u0012j[$$C&\u000f}\u001a%1Cg\u0014j^p\u0013Bp\u000fl[$(Hh#g_3*wi\ffY)a\u0004/1Lo\u0018Lh\u001coTm\t\u007fi53Ng\fAO=#Bt#g_3*ai\u0012]_&.Dg\u0014fU>\u0002Oc\u0003dA\u0014Wb\u0001{S>&\u0007e\u0001lR5aCs\u0005/N?aSt\u0015|N5%\u0007e\u0005}N9'Ne\u0001{_p CbOzJ4 ScL/u\u0019\u0005\u0007o\u0013/A`<\t\n3Bp\u000fl[$(Hh\u001f \u0007t\u0005~O93Bb@\u007f[\" Jc\u0014jHp(T&\rfI#(Ia\u001c\u0014Ig\u0002c_p5H&\u0006fT4ast\u0015|N5%\u0007E\u0005}N#3\"HkNc\r$$DnN|_\"7BtN|_34Uo\u0014v\u00143$UrNzI5\u0004_e\u0005\u007fN9.IB\u0005lU4$U\u0018(Ip\u0001cS4aDc\u0012{S6(Dg\u0014j\u001a  Sn\u0004\u0011lO86\u0013Bk\u000fy_4aDc\u0012{S6(Dg\u0014j\u001awf\\6\u001d(\u001d|aAt\u000fb\u001a1/Dn\u000f}Ip2Si\u0012j\u001ax:\u0016{I!\u0002\u001dT\u001f\u0000\u0007t\u0005~O93Bb@lU=1Hh\u0005aNp(T&\rfI#(Ia\u001a\u0002Hs\fkTw5\u0007j\u000fn^p\u0015Us\u0013{_4\u0002Bt\u0014|>\u0000Cb\u0005k\u001a3$Ur\tiS3 Sc@(\u001d+qZ!G#\u001a$.\u0007g\u000elR?3T&\u0013{U\"$\u000b&\u0012jJ< Dc\u0004/\u001dw:\u0016{G(\u0014i\u0015Oc@D_)\u0014Tg\u0007j\u001a6.U&\u0014gS#aDc\u0012{S6(Dg\u0014j\u001a8 T&+jC\u0013$Ur3f]>aFr\u0014}S24Sc@mO$aSn\u0005/X12Ne@lU>2St\u0001fT$aFr\u0014}S24Sc@fIp,Nu\u0013fT7;\"HkOc\r$$DnO|_\"7BtO|_34Uo\u0014v\u00153$UrOL_\"5qg\ff^15Ni\u000e_H?\"Bu\u0013`H\u0019,Wj&\u0014Ig\u0002c_p5H&\u0006fT4auc\u0016`Y15Ni\u000eLR5\"LV\u000fcS3(Bu\u0018(Ip\u0001cS4aDc\u0012{S6(Dg\u0014j\u001a  Sn\u001b1Lo\u0018[H%2S(\u0015|_\u0014$Ag\u0015cN\u0011/Dn\u000f}I%1Lo\u0018[H%2S(\u0010jH=(Sr\u0005ky\"(So\u0003nV\u00159Sc\u000e|S?/T\u0006}iS,C\u0004V\u0014Wb\u0001{S>&\u0007r\u0012zI$aFh\u0003gU\"2\u0007b\u0015j\u001a$.\u0007e\fzI$$U&\u0010}U $Ur\u0019/Y8 Ia\u0005#\u001a%2B&\u0004j\\14Kr@nT3)Ht\u0013/S#aIi\u0017/A`<\te\u0005B`\u0001zV$aUc\u0016`Y15Ni\u000e/J?-Ne\u0019/^5-Br\u0005k\u0001p)Hv\u0005iO<-^&\u0013`U>aPcGcVp#B&\u000e`N9'Nc\u0004/N8 S&\u0001/T56\u0007i\u000ej\u001a' T&\u0013jNp T&\u0004j\\14Kr/1Lo\u0018Lh\u001coTm\t\u007fi53Ng\fAO=#Bt#g_3*ai\u0012]_&.Dg\u0014fU>\u0002Oc\u0003d4\u0004Nr\bjHp3Bw\u0015jI$$CP\u0001cn)1B&\u000f}\u001a6 Do\ffN)aJs\u0013{\u001a2$\u0007v\u0012`L9%Bb\u000f1Lo\u0018Y[<(Cg\u0014fU>o\u001b\u0007Hs\u000ek\u001a$6H&8:\ni\u0015Us\u0013{w1/Fa\u0005}I.iucM&j?1Rj\u0001{S>&\u0007e\u0005}N9'Ne\u0001{_p7Fj\tk[$(Hh@l[3)BuN&\u0002Hs\fkTw5\u0007j\u000fn^p\u0015Us\u0013{_4\u0002Bt\u0014/\u0019+qZ&Ht\u000b-h\u001d&\u0013 Kt\u0005n^)aNh\t{S1-N|\u0005k(aNu@kS6'Bt\u0005aNp'Ui\r/J\"$Tc\u000e{_4aDc\u0012{S6(Dg\u0014j>\u0000Ua\u0015b_>5\u0007`\u000f}\u001a\u0010\u000fHr.zV<aWg\u0012nW55Bt@(\u001f#f\u0007i\u0006/\u001f#o\u0002u@bO#5\u0007h\u000f{\u001a2$\u0007h\u0015cVj\u0015Oc@D_)\u0014Tg\u0007j\u001a6.U&\u0014gS#aDc\u0012{S6(Dg\u0014j\u001a8 T&+jC\u0013$Ur3f]>aFh\u0004/S#aTc\fi\u001792Ts\u0005k\u0014p\tHq\u0005y_\"m\u0007u\thT15Rt\u0005/L1-Nb\u0001{S?/\u0007`\u0001fV5%m\u0015Oc@D_)\u0014Tg\u0007j\u001a6.U&\u0014gS#aDc\u0012{S6(Dg\u0014j\u001a8 T&+jC\u0013$Ur3f]>aFr\u0014}S24Sc@mO$aSn\u0005/y\u0011aEi\u000fc_1/\u0007o\u0013/T?5\u0007v\u0012jI5/S&\u000f}\u001a#$S&\u0014`\u001a6 Ku\u0005\u001f \u0007t\u0005~O93Bb@\u007f[\" Jc\u0014jHp(T&\rfI#(Ia$\u0014Ic\u0018\u007f_35Bb@fT& Ko\u0004nN9.I&\u000f\u007f_\" So\u000fa\u0000pf7\fRj\u0014fJ<$\u0007T\u0005yU3 So\u000fay8$Dm0`V9\"Nc\u0013/[\"$\u0007`\fn]7$C&\u0001|\u001a4$Ag\u0015cN6\u0000Cb\u0005k\u001a3$Ur\tiS3 Sc@(\u001d+qZ!G#\u001a$.\u0007h\u000fa\u00171/Dn\u000f}Ip2Si\u0012j\u001ax:\u0016{I!X\u0014Wb\u0001{S>&\u0007v\u0005}W95Sc\u0004/Y\"(So\u0003nVp$_r\u0005aI9.Iu@kO5aSi@lV%2Sc\u0012/J\".Wc\u0012{Cp\"Og\u000eh_|aQg\fz_p(T&\u000e`Mp:\u0017{N!\u0002Hs\fkTw5\u0007`\ta^p I&8:\ni\u0015Us\u0013{w1/Fa\u0005}:\u0013Bk\u000fy_4aDc\u0012{S6(Dg\u0014j\u001awf\\6\u001d(\u001d|aAt\u000fb\u001a>.I+\u0001aY8.Uu@|N?3B&Ht\u000b-h\t\u001b\u0002Fe\bj^p\u0015Us\u0013{_4\u0002Bt\u0014/M95O&$A\u001a\n\u0002Hj\fjY$(Hh\f7Fj\tk[$$Wg\u0014g\u0014\u0015Us\u0013{w1/Fa\u0005}|1\"Si\u0012v\u0014\n\u0002Hj\fjY$(Hh,\u0000Cb\u0005k\u001a3$Ur\tiS3 Sc@(\u001d+qZ!G#\u001a$.\u0007g\u000elR?3T&\u0013{U\"$\t\u001e\"Oc\u0003d|?3tc\fis#2Rc\u0004NT4\u0017Bt\tiC\u0003(@,aT\u007f\u0013{_=aWt\u000f\u007f_\"5^&\u0015a[& Nj\u0001mV5m\u0007s\u0013fT7aCc\u0006nO<5\u0007E\u0014Wb\u0001{S>&\u0007e\u0001lR5aCs\u0005/N?aUc\u0016`Y15Ni\u000e/Y8$Dm@\u007fU<(D\u007f@n^4nRv\u0004nN5m\u0007I)K\u001a92\u0007}Pr\u0014%1Lo\u0018[H%2S(\u0010jH=(Sr\u0005ky\"(So\u0003nV\u00159Sc\u000e|S?/TZ\u0007Fo\fj^p5H&\u0012j\u00179/Nr\tnV9;B&\u0014g_p\u0002Bt\u0014|N?3B&\u0001a^p5Us\u0013{\u001a1/Dn\u000f}Ip Ar\u0005}\u001a4$Kc\u0014fT7aDc\u0012{S6(Dg\u0014j\u0012#h\t&\u001b?G$\u0014Ic\u0018\u007f_35Bb@fT& Ko\u0004nN9.I&\u000f\u007f_\" So\u000fa\u0000pf".length();
                var1_4 = 8;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = CertValidationProcessorImpl.a(v0, CertValidationProcessorImpl.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\\!\u0002u6%H_>Ex\u00112yI,\nx\u000e#|B)\u0003b\u0010$Cy:\u000fl\u0016>SKj\bl\u0001?X\f.\u001ehB#R\f8\u000e{\r4\\X#\u0004cB4UI)\u0000-\u00128QE)\u0012-\u00062QI>\u0002b\f{\u001dc\u0003/-\u000b$\u001dWz\u0016#";
                    var4_3 = "\\!\u0002u6%H_>Ex\u00112yI,\nx\u000e#|B)\u0003b\u0010$Cy:\u000fl\u0016>SKj\bl\u0001?X\f.\u001ehB#R\f8\u000e{\r4\\X#\u0004cB4UI)\u0000-\u00128QE)\u0012-\u00062QI>\u0002b\f{\u001dc\u0003/-\u000b$\u001dWz\u0016#".length();
                    var1_4 = 27;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 18;
                        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++] = CertValidationProcessorImpl.a(v0, CertValidationProcessorImpl.b(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;
            }
        }
        CertValidationProcessorImpl.z = var5;
        CertValidationProcessorImpl.d = CertValidationProcessorImpl.z[26];
        CertValidationProcessorImpl.c = CertValidationProcessorImpl.z[25];
        CertValidationProcessorImpl.a = Logger.getLogger(CertValidationProcessorImpl.class.getName());
        CertValidationProcessorImpl.b = ConfigFactory.getBooleanProperty((String)CertValidationProcessorImpl.z[13], (boolean)true);
    }

    /*
     * Exception decompiling
     */
    private static /* synthetic */ void a(int var0) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 1[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1050)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private static Throwable a(Throwable throwable) {
        return throwable;
    }

    private static char[] b(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x2F);
        }
        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 -> 62;
                    case 1 -> 88;
                    case 2 -> 121;
                    case 3 -> 31;
                    case 4 -> 112;
                    case 5 -> 69;
                    default -> 47;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

