/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.http.GenericHttpClientFactory
 *  com.l7tech.common.io.CertUtils
 *  com.l7tech.common.io.WhirlycacheFactory
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.SystemMessages
 *  com.l7tech.util.CausedIOException
 *  com.l7tech.util.Config
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.Pair
 *  com.l7tech.util.TimeUnit
 *  com.whirlycott.cache.Cache
 *  org.springframework.beans.factory.DisposableBean
 */
package com.l7tech.server.security.cert;

import com.l7tech.common.http.GenericHttpClientFactory;
import com.l7tech.common.io.CertUtils;
import com.l7tech.common.io.WhirlycacheFactory;
import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.server.security.cert.CrlCache;
import com.l7tech.server.security.cert.ac;
import com.l7tech.server.security.cert.k;
import com.l7tech.server.security.cert.l;
import com.l7tech.server.url.AbstractUrlObjectCache;
import com.l7tech.server.url.HttpObjectCache;
import com.l7tech.server.url.LdapUrlObjectCache;
import com.l7tech.util.CausedIOException;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.Pair;
import com.l7tech.util.TimeUnit;
import com.whirlycott.cache.Cache;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.cert.CRLException;
import java.security.cert.X509CRL;
import java.security.cert.X509Certificate;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.locks.Lock;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.beans.factory.DisposableBean;

public class CrlCacheImpl
implements CrlCache,
DisposableBean {
    private static final Logger a;
    private static final int b;
    private static final int c;
    private static final String d;
    private static final String e;
    private static final String f;
    private final Cache g;
    private final Cache h;
    private final LdapUrlObjectCache<X509CRL> i;
    private final HttpObjectCache<X509CRL> j;
    private final ExecutorService k;
    private final Config l;
    private static final String m;
    private static final long n = 300000L;
    private static final String o;
    private static final long p = 60000L;
    private static final String q;
    private static final String r;
    private static final int s = 3;
    private static final int t = 1000;
    private static final String u;
    protected static final String PROP_MAX_CRL_SIZE;
    protected static final int DEFAULT_MAX_CRL_SIZE = 0x100000;
    private static final String[] v;

    public CrlCacheImpl(GenericHttpClientFactory genericHttpClientFactory, Config config, Timer timer) throws Exception {
        int n2;
        int n3;
        long l2;
        long l3;
        String[] stringArray;
        block8: {
            block7: {
                stringArray = v;
                this.g = WhirlycacheFactory.createCache((String)(CrlCache.class.getSimpleName() + stringArray[17]), (int)100, (int)1800, (String)WhirlycacheFactory.POLICY_LRU);
                this.h = WhirlycacheFactory.createCache((String)(CrlCache.class.getSimpleName() + stringArray[12]), (int)1000, (int)1800, (String)WhirlycacheFactory.POLICY_LRU);
                this.l = config;
                l3 = config.getTimeUnitProperty(stringArray[11], 300000L);
                l2 = config.getTimeUnitProperty(stringArray[39], 60000L);
                n3 = config.getIntProperty(stringArray[5], 3);
                try {
                    if (n3 >= 0 && n3 <= 100) break block7;
                }
                catch (Exception exception) {
                    throw CrlCacheImpl.a(exception);
                }
                n3 = 3;
                stringArray = v;
                a.warning(stringArray[3] + n3 + stringArray[27]);
            }
            stringArray = v;
            long l4 = config.getTimeUnitProperty(stringArray[22], 5000L);
            long l5 = config.getTimeUnitProperty(stringArray[26], 30000L);
            this.i = new LdapUrlObjectCache(stringArray[9], l3, AbstractUrlObjectCache.WAIT_LATEST, null, null, l4, l5, true);
            n2 = ConfigFactory.getIntProperty((String)stringArray[13], (int)1000);
            try {
                if (n2 > 0 && n2 >= 1000) break block8;
            }
            catch (Exception exception) {
                throw CrlCacheImpl.a(exception);
            }
            n2 = 1000;
        }
        try {
            if (ConfigFactory.getProperty((String)v[37], null) != null) {
                a.config(v[4] + n2);
            }
        }
        catch (Exception exception) {
            throw CrlCacheImpl.a(exception);
        }
        stringArray = v;
        this.j = new HttpObjectCache<X509CRL>(stringArray[9], n2, l3, -1L, genericHttpClientFactory, new l(), AbstractUrlObjectCache.WAIT_INITIAL, stringArray[6], 0x100000);
        this.k = this.a(n3);
        this.a(timer, l2);
    }

    public void destroy() throws Exception {
        try {
            if (this.k != null) {
                this.k.shutdown();
            }
        }
        catch (Exception exception) {
            throw CrlCacheImpl.a(exception);
        }
    }

    @Override
    public String[] getCrlUrlsFromCertificate(X509Certificate x509Certificate, Audit audit) throws IOException {
        String[] stringArray = this.a(x509Certificate);
        try {
            if (stringArray == null) {
                throw new IllegalStateException();
            }
        }
        catch (IOException iOException) {
            throw CrlCacheImpl.a(iOException);
        }
        return stringArray;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Loose catch block
     */
    @Override
    public X509CRL getCrl(String string, X509Certificate x509Certificate, Audit audit) throws CRLException, IOException {
        X509CRL x509CRL;
        X509CRL x509CRL2 = null;
        Lock lock = null;
        Lock lock2 = null;
        k k2 = (k)this.g.retrieve((Object)string);
        try {
            X509CRL x509CRL3;
            block44: {
                String[] stringArray;
                if (k2 == null) {
                    String[] stringArray2 = new String[2];
                    stringArray = v;
                    stringArray2[0] = stringArray[33];
                    stringArray2[1] = string;
                    audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_REV_CACHE_MISS, stringArray2);
                    k2 = new k(this);
                    this.g.store((Object)string, (Object)k2);
                    x509CRL3 = null;
                    lock = k2.d.readLock();
                    lock.lock();
                } else {
                    lock = k2.d.readLock();
                    lock.lock();
                    x509CRL2 = k2.getCrl();
                    if (k2.c < System.currentTimeMillis()) {
                        String[] stringArray3 = new String[3];
                        stringArray = v;
                        stringArray3[0] = stringArray[9];
                        stringArray3[1] = string;
                        stringArray3[2] = new Date(k2.c).toString();
                        audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_REV_CACHE_STALE, stringArray3);
                        x509CRL3 = null;
                    } else {
                        String[] stringArray4 = new String[3];
                        stringArray = v;
                        stringArray4[0] = stringArray[9];
                        stringArray4[1] = string;
                        stringArray4[2] = new Date(k2.c).toString();
                        audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_REV_CACHE_FRESH, stringArray4);
                        x509CRL3 = k2.getCrl();
                    }
                }
                if (x509CRL3 != null) break block44;
                try {
                    block40: {
                        block45: {
                            block39: {
                                block38: {
                                    try {
                                        if (!string.startsWith(v[1]) && !string.startsWith(v[2])) break block38;
                                    }
                                    catch (IOException iOException) {
                                        throw CrlCacheImpl.a(iOException);
                                    }
                                    x509CRL3 = this.b(string);
                                    break block45;
                                }
                                try {
                                    if (!string.startsWith(v[23]) && !string.startsWith(v[32])) break block39;
                                }
                                catch (IOException iOException) {
                                    throw CrlCacheImpl.a(iOException);
                                }
                                x509CRL3 = this.a(string);
                                break block45;
                            }
                            stringArray = v;
                            throw new CRLException(stringArray[34] + string);
                        }
                        if (!this.l.getBooleanProperty(v[8], false)) break block40;
                        try {
                            block46: {
                                if (x509Certificate == null) break block40;
                                break block46;
                                catch (IOException iOException) {
                                    throw CrlCacheImpl.a(iOException);
                                }
                            }
                            x509CRL3.verify(x509Certificate.getPublicKey());
                        }
                        catch (IOException iOException) {
                            throw CrlCacheImpl.a(iOException);
                        }
                    }
                    String[] stringArray5 = new String[2];
                    stringArray = v;
                    stringArray5[0] = stringArray[9];
                    stringArray5[1] = string;
                    audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_REV_CACHE_UPDATE, stringArray5);
                }
                catch (IOException iOException) {
                    block47: {
                        block41: {
                            block48: {
                                if (x509CRL2 == null) break block47;
                                stringArray = v;
                                boolean bl2 = this.l.getBooleanProperty(stringArray[31], false);
                                if (!bl2) break block41;
                                if (x509CRL2.getNextUpdate() == null) break block41;
                                break block48;
                                catch (IOException iOException2) {
                                    throw CrlCacheImpl.a(iOException2);
                                }
                            }
                            try {
                                block49: {
                                    if (x509CRL2.getNextUpdate().getTime() > System.currentTimeMillis()) break block41;
                                    break block49;
                                    catch (IOException iOException3) {
                                        throw CrlCacheImpl.a(iOException3);
                                    }
                                }
                                a.severe(v[19] + string + v[10]);
                                throw iOException;
                            }
                            catch (IOException iOException4) {
                                throw CrlCacheImpl.a(iOException4);
                            }
                        }
                        String[] stringArray6 = new String[3];
                        stringArray = v;
                        stringArray6[0] = stringArray[9];
                        stringArray6[1] = string;
                        stringArray6[2] = new Date(k2.c).toString();
                        audit.logAndAudit((AuditDetailMessage)SystemMessages.CERTVAL_REV_USE_CACHE, stringArray6);
                        x509CRL3 = x509CRL2;
                    }
                    throw iOException;
                }
                catch (Exception exception) {
                    Object object;
                    Object[] objectArray;
                    String string2;
                    Level level;
                    Logger logger;
                    block43: {
                        block42: {
                            try {
                                logger = a;
                                level = Level.WARNING;
                                string2 = v[38];
                                Object[] objectArray2 = new Object[2];
                                Object[] objectArray3 = objectArray2;
                                objectArray = objectArray2;
                                int n2 = 0;
                                if (x509Certificate == null) break block42;
                                object = x509Certificate.getSubjectDN();
                                break block43;
                            }
                            catch (IOException iOException) {
                                throw CrlCacheImpl.a(iOException);
                            }
                        }
                        stringArray = v;
                        object = stringArray[35];
                    }
                    objectArray3[n2] = object;
                    objectArray[1] = exception.getMessage();
                    logger.log(level, string2, objectArray);
                    if (x509CRL2 != null) {
                        stringArray = v;
                        a.log(Level.FINE, stringArray[25] + string);
                        x509CRL3 = x509CRL2;
                    }
                    throw new CRLException(v[21] + string);
                }
                lock.unlock();
                lock = null;
                lock2 = k2.d.writeLock();
                lock2.lock();
                k2.setCrl(x509CRL3);
                lock2.unlock();
                lock2 = null;
                this.g.store((Object)string, (Object)k2);
            }
            x509CRL = x509CRL3;
        }
        catch (Throwable throwable) {
            try {
                if (lock2 != null) {
                    lock2.unlock();
                }
            }
            catch (IOException iOException) {
                throw CrlCacheImpl.a(iOException);
            }
            try {
                if (lock != null) {
                    lock.unlock();
                }
            }
            catch (IOException iOException) {
                throw CrlCacheImpl.a(iOException);
            }
            throw throwable;
        }
        try {
            if (lock2 != null) {
                lock2.unlock();
            }
        }
        catch (IOException iOException) {
            throw CrlCacheImpl.a(iOException);
        }
        try {
            if (lock != null) {
                lock.unlock();
            }
        }
        catch (IOException iOException) {
            throw CrlCacheImpl.a(iOException);
        }
        return x509CRL;
    }

    private X509CRL a(String string) throws IOException {
        AbstractUrlObjectCache.FetchResult fetchResult;
        block9: {
            fetchResult = this.j.fetchCached(string, AbstractUrlObjectCache.WAIT_INITIAL);
            try {
                if (fetchResult.getResult() != 2 && fetchResult.getResult() != 3) break block9;
            }
            catch (IOException iOException) {
                throw CrlCacheImpl.a(iOException);
            }
            X509CRL x509CRL = (X509CRL)fetchResult.getUserObject();
            if (x509CRL == null) {
                IOException iOException = fetchResult.getException();
                try {
                    if (iOException != null) {
                        throw iOException;
                    }
                }
                catch (IOException iOException2) {
                    throw CrlCacheImpl.a(iOException2);
                }
                String[] stringArray = v;
                throw new CausedIOException(stringArray[30] + fetchResult.getResult());
            }
            return x509CRL;
        }
        IOException iOException = fetchResult.getException();
        try {
            if (iOException == null) {
                throw new CausedIOException(v[36] + fetchResult.getResult());
            }
        }
        catch (IOException iOException3) {
            throw CrlCacheImpl.a(iOException3);
        }
        throw iOException;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Loose catch block
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    private X509CRL b(String string) throws IOException, CRLException {
        LdapUrlObjectCache.LdapCacheEntry ldapCacheEntry;
        AbstractUrlObjectCache.FetchResult fetchResult = this.i.fetchCached(string, AbstractUrlObjectCache.WAIT_INITIAL);
        if (fetchResult.getResult() == 0) throw fetchResult.getException();
        LdapUrlObjectCache.LdapCacheEntry ldapCacheEntry2 = ldapCacheEntry = (LdapUrlObjectCache.LdapCacheEntry)fetchResult.getUserObject();
        synchronized (ldapCacheEntry2) {
            List<Object> list;
            X509CRL x509CRL;
            block13: {
                x509CRL = (X509CRL)ldapCacheEntry.getPayload();
                if (x509CRL != null) return x509CRL;
                String string2 = ldapCacheEntry.getInterestingAttributeName();
                list = ldapCacheEntry.getInterestingAttributeValues();
                try {
                    if (string2 == null) {
                        throw new IOException(v[14] + string);
                    }
                }
                catch (IOException iOException) {
                    throw CrlCacheImpl.a(iOException);
                }
                if (list == null) throw new IOException(v[40]);
                try {
                    if (!list.isEmpty()) break block13;
                    throw new IOException(v[40]);
                    catch (IOException iOException) {
                        throw CrlCacheImpl.a(iOException);
                    }
                }
                catch (IOException iOException) {
                    throw CrlCacheImpl.a(iOException);
                }
            }
            try {
                if (list.size() > 1) {
                    throw new IllegalStateException(v[18]);
                }
            }
            catch (IOException iOException) {
                throw CrlCacheImpl.a(iOException);
            }
            byte[] byArray = (byte[])list.get(0);
            x509CRL = (X509CRL)CertUtils.getFactory().generateCRL(new ByteArrayInputStream(byArray));
            ldapCacheEntry.setPayload(x509CRL);
            return x509CRL;
        }
    }

    private void a(Timer timer, long l2) {
        block4: {
            try {
                try {
                    if (this.k == null || timer == null) break block4;
                }
                catch (IllegalStateException illegalStateException) {
                    throw CrlCacheImpl.a(illegalStateException);
                }
                timer.schedule((TimerTask)new ac(this, l2), 74033L, 27157L);
            }
            catch (IllegalStateException illegalStateException) {
                throw CrlCacheImpl.a(illegalStateException);
            }
        }
    }

    private ExecutorService a(int n2) {
        ExecutorService executorService = null;
        if (n2 > 0) {
            executorService = Executors.newFixedThreadPool(n2);
        }
        return executorService;
    }

    private String[] a(X509Certificate x509Certificate) throws IOException {
        CrlUrlCacheKey crlUrlCacheKey = new CrlUrlCacheKey(x509Certificate);
        String[] stringArray = (String[])this.h.retrieve((Object)crlUrlCacheKey);
        if (stringArray == null) {
            stringArray = CertUtils.getCrlUrls((X509Certificate)x509Certificate);
            this.h.store((Object)crlUrlCacheKey, (Object)stringArray);
        }
        return stringArray;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[41];
                var3_1 = 0;
                var2_2 = "%)T)\n$K{4\\= \u0012f!'~#%4b3-O4\n\u0017d='h!-\u0017s0\u00059&\\!s\u00069&\\!:L7\u001c%S>;\u001fi2b^>'\u0010n27O4-Vq4.H4i\u0010h'b^0*\u001ebu1X#?\u001fd<,Zq=\u001eu0#Y\"iQC\u00001T?.Vt,1I4$Vw'-M4;\u0002~u!R<g\u001a0!'^9g\u0005b'4X#g\u0005b67O8=\u000f)6'O%g\u0015u9\u0001\\2!\u0013T<8Xl\u0015%)T)\n$K{!\\2!\u0013)!*O4(\u0012t\u000f%)T)\n$K{/\\)\u001a\u001f}0\u0014%)T)\n$K{/T?\f\u000ew<0D\u0010.\u0013$%)T)\n$K{4\\= \u0012f!'~#%4b3-O4\n\u0017d='h!-\u0017s0\u0003\u0016\u0010q@\bbT\"i\u0014b,-S5i\u0000f9+Y8=\u000f'%'O8&\u0012+u*X?*\u0013';-\u001d=&\u0018`00\u001d$:\u0013cu$R#i\u0004b#-^0=\u001fh;\u0014%)T)\n$K{!\\2!\u0013)0:M8;\u000f\n{!X#=5f6*X,6-P\u007f%As0!U\u007f:\u0013u#'O\u007f:\u0013d 0T%0Xd00I\u007f*\u0004k\u0016#^9,%n/'\u001d\u001b-\u001d <\u0013u,bN%;\u001fi2bT?i:C\u0014\u0012\u001d\u0004\u001b:=u\u000e%)T)\n$K{'E! \u0004~&%)T)\n$K{+S'(\u001an1#I4\n\u0004k\u0016#^9,9i\u001b'E%\u001c\u0006c46X\t{!O=\n\u0017d='\"\u0019\u0006|\u0001i\u0017s!0T3<\u0002bu*\\\"i\u001br96T!%\u0013'##Q$,\u0005\u0005\u0016\u0010qq\u0012\u0017%)T)\n$K{!\\2!\u0013)%0X41\u0006n';\u0017\u0016\u0010qq \u0005';-Iq(\u0003s=-O83\u0013cob\u00159&\\!\n\u0019i;'^% \u0019i\u0001+P4&\u0003s\u0005=6I!s\u0014%)T)\n$K{/\\)\f\u000ew<0D\u0010.\u0013\u0016\u00001T?.Vs='\u001d2(\u0015o0&\u001d\u0012\u001b:=u\u000f9&\\!\u001b\u0013f1\u0016T<,\u0019r!\u0015rn\u001d$:\u001fi2bY4/\u0017r96\u001dvzQ)\u0014%)T)\n$K{!\\2!\u0013)0:M8;\u000f\u000f%)T)\n$K{/\\)\u001a\u001f}01\u0000,\\3%\u0013'!-\u001d0*\u0015b&1\u001d\u0012\u001b:'30R<i>S\u0001\u0012\u001d2(\u0015o0n\u001d\"=\u0017s 1\u001d8:L'&%)T)\n$K{+S'(\u001an1#I4\n\u0004k\u0016#^9,9i\u001b'E%\u001c\u0006c46X\u0006=6I!:L\u0003\u0016\u0010q\u001c\u0000,N$9\u0006h'6X5i5U\u0019bh\u0003\u0005Vt6*X<,L'\u0004\u001b-S41\u0000,\\3%\u0013'!-\u001d0*\u0015b&1\u001d\u0012\u001b:'30R<i>S\u0001\u0012\u001d2(\u0015o0n\u001d\"=\u0017s 1\u001d8:L',6-P\u007f%As0!U\u007f:\u0013u#'O\u007f:\u0013d 0T%0Xd00I\u007f*\u0004k\u0016#^9,%n/'>\u0003'O8/\u001fd46T>'Vh3b~\u0003\u0005Vt<%S0=\u0003u0b[0 \u001ab1b\\6(\u001fi&6\u001d8:\u0005r00\u001dv2Fzrx\u001d*x\u000b";
                var4_3 = "%)T)\n$K{4\\= \u0012f!'~#%4b3-O4\n\u0017d='h!-\u0017s0\u00059&\\!s\u00069&\\!:L7\u001c%S>;\u001fi2b^>'\u0010n27O4-Vq4.H4i\u0010h'b^0*\u001ebu1X#?\u001fd<,Zq=\u001eu0#Y\"iQC\u00001T?.Vt,1I4$Vw'-M4;\u0002~u!R<g\u001a0!'^9g\u0005b'4X#g\u0005b67O8=\u000f)6'O%g\u0015u9\u0001\\2!\u0013T<8Xl\u0015%)T)\n$K{!\\2!\u0013)!*O4(\u0012t\u000f%)T)\n$K{/\\)\u001a\u001f}0\u0014%)T)\n$K{/T?\f\u000ew<0D\u0010.\u0013$%)T)\n$K{4\\= \u0012f!'~#%4b3-O4\n\u0017d='h!-\u0017s0\u0003\u0016\u0010q@\bbT\"i\u0014b,-S5i\u0000f9+Y8=\u000f'%'O8&\u0012+u*X?*\u0013';-\u001d=&\u0018`00\u001d$:\u0013cu$R#i\u0004b#-^0=\u001fh;\u0014%)T)\n$K{!\\2!\u0013)0:M8;\u000f\n{!X#=5f6*X,6-P\u007f%As0!U\u007f:\u0013u#'O\u007f:\u0013d 0T%0Xd00I\u007f*\u0004k\u0016#^9,%n/'\u001d\u001b-\u001d <\u0013u,bN%;\u001fi2bT?i:C\u0014\u0012\u001d\u0004\u001b:=u\u000e%)T)\n$K{'E! \u0004~&%)T)\n$K{+S'(\u001an1#I4\n\u0004k\u0016#^9,9i\u001b'E%\u001c\u0006c46X\t{!O=\n\u0017d='\"\u0019\u0006|\u0001i\u0017s!0T3<\u0002bu*\\\"i\u001br96T!%\u0013'##Q$,\u0005\u0005\u0016\u0010qq\u0012\u0017%)T)\n$K{!\\2!\u0013)%0X41\u0006n';\u0017\u0016\u0010qq \u0005';-Iq(\u0003s=-O83\u0013cob\u00159&\\!\n\u0019i;'^% \u0019i\u0001+P4&\u0003s\u0005=6I!s\u0014%)T)\n$K{/\\)\f\u000ew<0D\u0010.\u0013\u0016\u00001T?.Vs='\u001d2(\u0015o0&\u001d\u0012\u001b:=u\u000f9&\\!\u001b\u0013f1\u0016T<,\u0019r!\u0015rn\u001d$:\u001fi2bY4/\u0017r96\u001dvzQ)\u0014%)T)\n$K{!\\2!\u0013)0:M8;\u000f\u000f%)T)\n$K{/\\)\u001a\u001f}01\u0000,\\3%\u0013'!-\u001d0*\u0015b&1\u001d\u0012\u001b:'30R<i>S\u0001\u0012\u001d2(\u0015o0n\u001d\"=\u0017s 1\u001d8:L'&%)T)\n$K{+S'(\u001an1#I4\n\u0004k\u0016#^9,9i\u001b'E%\u001c\u0006c46X\u0006=6I!:L\u0003\u0016\u0010q\u001c\u0000,N$9\u0006h'6X5i5U\u0019bh\u0003\u0005Vt6*X<,L'\u0004\u001b-S41\u0000,\\3%\u0013'!-\u001d0*\u0015b&1\u001d\u0012\u001b:'30R<i>S\u0001\u0012\u001d2(\u0015o0n\u001d\"=\u0017s 1\u001d8:L',6-P\u007f%As0!U\u007f:\u0013u#'O\u007f:\u0013d 0T%0Xd00I\u007f*\u0004k\u0016#^9,%n/'>\u0003'O8/\u001fd46T>'Vh3b~\u0003\u0005Vt<%S0=\u0003u0b[0 \u001ab1b\\6(\u001fi&6\u001d8:\u0005r00\u001dv2Fzrx\u001d*x\u000b".length();
                var1_4 = 36;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = CrlCacheImpl.a(v0, CrlCacheImpl.c(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "S_\"_|R=\rW*DWe_SF.BGp\u0018QM op\nw\u001fa\u0005WF\"EJt\u0014\u0003B*KJeQM[?\u0007Or\u0014PQ%S";
                    var4_3 = "S_\"_|R=\rW*DWe_SF.BGp\u0018QM op\nw\u001fa\u0005WF\"EJt\u0014\u0003B*KJeQM[?\u0007Or\u0014PQ%S".length();
                    var1_4 = 23;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 89;
                        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++] = CrlCacheImpl.a(v0, CrlCacheImpl.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;
            }
        }
        CrlCacheImpl.v = var5;
        CrlCacheImpl.f = CrlCacheImpl.v[24];
        CrlCacheImpl.e = CrlCacheImpl.v[7];
        CrlCacheImpl.d = CrlCacheImpl.v[15];
        CrlCacheImpl.q = CrlCacheImpl.v[16];
        CrlCacheImpl.u = CrlCacheImpl.v[37];
        CrlCacheImpl.m = CrlCacheImpl.v[28];
        CrlCacheImpl.o = CrlCacheImpl.v[20];
        CrlCacheImpl.r = CrlCacheImpl.v[0];
        CrlCacheImpl.PROP_MAX_CRL_SIZE = CrlCacheImpl.v[29];
        CrlCacheImpl.a = Logger.getLogger(CrlCacheImpl.class.getName());
        CrlCacheImpl.b = TimeUnit.HOURS.getMultiplier();
        CrlCacheImpl.c = TimeUnit.MINUTES.getMultiplier();
    }

    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] ^ 0x28);
        }
        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 -> 122;
                    case 1 -> 109;
                    case 2 -> 18;
                    case 3 -> 126;
                    case 4 -> 102;
                    case 5 -> 89;
                    default -> 40;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    private static final class CrlUrlCacheKey
    extends Pair<String, BigInteger> {
        static final long serialVersionUID = 7032589617551642924L;

        private CrlUrlCacheKey(X509Certificate x509Certificate) {
            super((Object)CertUtils.getIssuerDN((X509Certificate)x509Certificate), (Object)x509Certificate.getSerialNumber());
        }
    }
}

