/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.SchemaUtil
 *  com.l7tech.gateway.common.cassandra.CassandraConnection
 *  com.l7tech.gateway.common.custom.CustomAssertionsRegistrar
 *  com.l7tech.gateway.common.jdbc.JdbcConnection
 *  com.l7tech.gateway.common.resources.ResourceEntryHeader
 *  com.l7tech.gateway.common.resources.ResourceType
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.identity.IdentityProvider
 *  com.l7tech.identity.IdentityProviderType
 *  com.l7tech.identity.InvalidIdProviderCfgException
 *  com.l7tech.identity.User
 *  com.l7tech.identity.cert.ClientCertManager
 *  com.l7tech.identity.fed.FederatedIdentityProviderConfig
 *  com.l7tech.identity.fed.VirtualGroup
 *  com.l7tech.objectmodel.Entity
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.GuidBasedEntityManager
 *  com.l7tech.objectmodel.ObjectModelException
 *  com.l7tech.policy.AssertionLicense
 *  com.l7tech.policy.AssertionPath
 *  com.l7tech.policy.Policy
 *  com.l7tech.policy.PolicyPathBuilderFactory
 *  com.l7tech.policy.PolicyType
 *  com.l7tech.policy.PolicyValidatorResult
 *  com.l7tech.policy.PolicyValidatorResult$Error
 *  com.l7tech.policy.PolicyValidatorResult$Warning
 *  com.l7tech.policy.StaticResourceInfo
 *  com.l7tech.policy.assertion.Assertion
 *  com.l7tech.policy.assertion.CassandraConnectionable
 *  com.l7tech.policy.assertion.Connectionable
 *  com.l7tech.policy.assertion.GlobalResourceInfo
 *  com.l7tech.policy.assertion.JdbcConnectionable
 *  com.l7tech.policy.assertion.PolicyAssertionException
 *  com.l7tech.policy.assertion.PrivateKeyable
 *  com.l7tech.policy.assertion.UsesEntitiesAtDesignTime
 *  com.l7tech.policy.assertion.credential.http.HttpDigest
 *  com.l7tech.policy.assertion.ext.store.KeyValueStore
 *  com.l7tech.policy.assertion.identity.AuthenticationAssertion
 *  com.l7tech.policy.assertion.identity.IdentityAssertion
 *  com.l7tech.policy.assertion.identity.MemberOfGroup
 *  com.l7tech.policy.assertion.identity.SpecificUser
 *  com.l7tech.policy.validator.AbstractPolicyValidator
 *  com.l7tech.policy.validator.PolicyValidationContext
 *  com.l7tech.policy.variable.Syntax
 *  com.l7tech.util.Config
 *  com.l7tech.util.ExceptionUtils
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.beans.factory.InitializingBean
 */
package com.l7tech.server.policy.validator;

import com.l7tech.common.io.SchemaUtil;
import com.l7tech.gateway.common.cassandra.CassandraConnection;
import com.l7tech.gateway.common.custom.CustomAssertionsRegistrar;
import com.l7tech.gateway.common.jdbc.JdbcConnection;
import com.l7tech.gateway.common.resources.ResourceEntryHeader;
import com.l7tech.gateway.common.resources.ResourceType;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.identity.IdentityProvider;
import com.l7tech.identity.IdentityProviderType;
import com.l7tech.identity.InvalidIdProviderCfgException;
import com.l7tech.identity.User;
import com.l7tech.identity.cert.ClientCertManager;
import com.l7tech.identity.fed.FederatedIdentityProviderConfig;
import com.l7tech.identity.fed.VirtualGroup;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.GuidBasedEntityManager;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.policy.AssertionLicense;
import com.l7tech.policy.AssertionPath;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyPathBuilderFactory;
import com.l7tech.policy.PolicyType;
import com.l7tech.policy.PolicyValidatorResult;
import com.l7tech.policy.StaticResourceInfo;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.CassandraConnectionable;
import com.l7tech.policy.assertion.Connectionable;
import com.l7tech.policy.assertion.GlobalResourceInfo;
import com.l7tech.policy.assertion.JdbcConnectionable;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.PrivateKeyable;
import com.l7tech.policy.assertion.UsesEntitiesAtDesignTime;
import com.l7tech.policy.assertion.credential.http.HttpDigest;
import com.l7tech.policy.assertion.ext.store.KeyValueStore;
import com.l7tech.policy.assertion.identity.AuthenticationAssertion;
import com.l7tech.policy.assertion.identity.IdentityAssertion;
import com.l7tech.policy.assertion.identity.MemberOfGroup;
import com.l7tech.policy.assertion.identity.SpecificUser;
import com.l7tech.policy.validator.AbstractPolicyValidator;
import com.l7tech.policy.validator.PolicyValidationContext;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.server.EntityFinder;
import com.l7tech.server.cassandra.CassandraConnectionEntityManager;
import com.l7tech.server.globalresources.ResourceEntryManager;
import com.l7tech.server.globalresources.ResourceEntrySchemaSourceResolver;
import com.l7tech.server.identity.IdentityProviderFactory;
import com.l7tech.server.jdbc.JdbcConnectionManager;
import com.l7tech.server.policy.CustomKeyValueStoreManager;
import com.l7tech.server.policy.validator.c;
import com.l7tech.server.security.keystore.SsgKeyFinder;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import com.l7tech.server.store.CustomKeyValueStoreImpl;
import com.l7tech.server.transport.jms.JmsEndpointManager;
import com.l7tech.util.Config;
import com.l7tech.util.ExceptionUtils;
import java.io.IOException;
import java.io.StringReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.KeyStoreException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
import java.util.WeakHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.InitializingBean;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/*
 * Exception performing whole class analysis ignored.
 */
public class ServerPolicyValidator
extends AbstractPolicyValidator
implements InitializingBean {
    private static final String a;
    private static final int b = 0;
    private static final int c = 1;
    private static final int d = 2;
    private static final int e = 3;
    private static final int f = 4;
    private static final int g = 5;
    private static final int h = 6;
    private static final int i = 7;
    private static final int j = 8;
    private static final int k = 9;
    private static final int l = 10;
    private static final Logger m;
    private final Map<IdentityAssertion, Integer> n = new WeakHashMap<IdentityAssertion, Integer>();
    private final Map<EntityHeader, Entity> o = new WeakHashMap<EntityHeader, Entity>();
    private JmsEndpointManager p;
    private IdentityProviderFactory q;
    private ResourceEntryManager r;
    private ClientCertManager s;
    private EntityFinder t;
    private SsgKeyStoreManager u;
    private JdbcConnectionManager v;
    private Config w;
    private KeyValueStore x;
    private CustomAssertionsRegistrar y;
    private CassandraConnectionEntityManager z;
    private static final String[] A;

    public ServerPolicyValidator(GuidBasedEntityManager<Policy> guidBasedEntityManager, PolicyPathBuilderFactory policyPathBuilderFactory) {
        super(guidBasedEntityManager, policyPathBuilderFactory);
    }

    /*
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    protected void doValidation(Assertion assertion, PolicyValidationContext policyValidationContext, AssertionLicense assertionLicense, PolicyValidatorResult policyValidatorResult) throws InterruptedException {
        block7: {
            try {
                this.a(assertion, policyValidatorResult);
                if (!policyValidationContext.getPolicyType().isServicePolicy()) break block7;
                super.doValidation(assertion, policyValidationContext, assertionLicense, policyValidatorResult);
                return;
            }
            catch (PolicyAssertionException policyAssertionException) {
                throw ServerPolicyValidator.b((Exception)((Object)policyAssertionException));
            }
        }
        try {
            Iterator iterator = assertion.preorderIterator(this.getAssertionTranslator());
            while (iterator.hasNext()) {
                Assertion assertion2 = (Assertion)iterator.next();
                try {
                    if (!assertion2.isEnabled()) continue;
                    this.a(assertion2, null, policyValidationContext, policyValidatorResult, null);
                }
                catch (PolicyAssertionException policyAssertionException) {
                    throw ServerPolicyValidator.b((Exception)((Object)policyAssertionException));
                    return;
                }
            }
        }
        catch (PolicyAssertionException policyAssertionException) {
            policyValidatorResult.addError(new PolicyValidatorResult.Error(policyAssertionException.getAssertion(), policyAssertionException.getMessage(), (Throwable)policyAssertionException));
        }
    }

    private void a(Assertion assertion, PolicyValidatorResult policyValidatorResult) {
        UsesEntitiesAtDesignTime usesEntitiesAtDesignTime;
        EntityHeader[] entityHeaderArray;
        if (assertion instanceof UsesEntitiesAtDesignTime && (entityHeaderArray = (usesEntitiesAtDesignTime = (UsesEntitiesAtDesignTime)assertion).getEntitiesUsedAtDesignTime()) != null) {
            for (EntityHeader entityHeader : entityHeaderArray) {
                if (!usesEntitiesAtDesignTime.needsProvideEntity(entityHeader)) continue;
                try {
                    Entity entity = this.t.find(entityHeader);
                    try {
                        if (entity == null) {
                            policyValidatorResult.addError(new PolicyValidatorResult.Error(assertion, A[15] + String.valueOf(entityHeader.getType()) + A[51] + entityHeader.getStrId(), null));
                            continue;
                        }
                    }
                    catch (FindException findException) {
                        throw ServerPolicyValidator.b((Exception)((Object)findException));
                    }
                    usesEntitiesAtDesignTime.provideEntity(entityHeader, entity);
                }
                catch (FindException findException) {
                    String[] stringArray = A;
                    policyValidatorResult.addError(new PolicyValidatorResult.Error(assertion, stringArray[23] + String.valueOf(entityHeader.getType()) + stringArray[79] + entityHeader.getStrId(), (Throwable)findException));
                }
            }
        }
    }

    public void validatePath(AssertionPath assertionPath, PolicyValidationContext policyValidationContext, AssertionLicense assertionLicense, PolicyValidatorResult policyValidatorResult) {
        Assertion[] assertionArray = assertionPath.getPath();
        c c10 = new c();
        for (Assertion assertion : assertionArray) {
            try {
                if (!assertion.isEnabled()) continue;
                this.a(assertion, c10, policyValidationContext, policyValidatorResult, assertionPath);
            }
            catch (IllegalStateException illegalStateException) {
                throw ServerPolicyValidator.b(illegalStateException);
            }
        }
    }

    /*
     * Exception decompiling
     */
    private void a(Assertion var1_1, c var2_2, PolicyValidationContext var3_3, PolicyValidatorResult var4_4, AssertionPath var5_5) {
        /*
         * 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 38[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");
    }

    private boolean a(GlobalResourceInfo globalResourceInfo) {
        boolean bl2;
        String string = globalResourceInfo.getId();
        ResourceEntryHeader resourceEntryHeader = null;
        try {
            resourceEntryHeader = this.r.findHeaderByUriAndType(string, ResourceType.XML_SCHEMA);
        }
        catch (FindException findException) {
            m.log(Level.INFO, A[74] + ExceptionUtils.getMessage((Throwable)findException), ExceptionUtils.getDebugException((Throwable)findException));
        }
        try {
            bl2 = resourceEntryHeader != null;
        }
        catch (FindException findException) {
            throw ServerPolicyValidator.b((Exception)((Object)findException));
        }
        return bl2;
    }

    /*
     * Loose catch block
     */
    private void a(Assertion assertion, AssertionPath assertionPath, StaticResourceInfo staticResourceInfo, PolicyValidatorResult policyValidatorResult) {
        block38: {
            try {
                Object object3222;
                String[] stringArray;
                Object object2;
                InputSource inputSource;
                InputSource inputSource2;
                block37: {
                    block36: {
                        inputSource2 = new InputSource();
                        try {
                            inputSource = inputSource2;
                            if (staticResourceInfo.getOriginalUrl() == null) break block36;
                            object2 = staticResourceInfo.getOriginalUrl();
                            break block37;
                        }
                        catch (URISyntaxException uRISyntaxException) {
                            throw ServerPolicyValidator.b(uRISyntaxException);
                        }
                    }
                    stringArray = A;
                    object2 = stringArray[19] + UUID.randomUUID().toString();
                }
                inputSource.setSystemId((String)object2);
                inputSource2.setCharacterStream(new StringReader(staticResourceInfo.getDocument()));
                Collection collection = SchemaUtil.getDependencies((InputSource)inputSource2, (EntityResolver)new ResourceEntrySchemaSourceResolver(this.r));
                if (collection.isEmpty()) break block38;
                ArrayList<String> arrayList = new ArrayList<String>();
                for (Object object3222 : collection) {
                    try {
                        String string;
                        ArrayList<String> arrayList2;
                        block45: {
                            block44: {
                                block43: {
                                    boolean bl2;
                                    block42: {
                                        block41: {
                                            block40: {
                                                block39: {
                                                    bl2 = false;
                                                    try {
                                                        if (object3222.getUri() == null || this.r.findHeaderByUriAndType(object3222.getUri(), null) == null) break block39;
                                                    }
                                                    catch (URISyntaxException uRISyntaxException) {
                                                        throw ServerPolicyValidator.b(uRISyntaxException);
                                                    }
                                                    bl2 = true;
                                                }
                                                if (bl2) break block40;
                                                try {
                                                    block47: {
                                                        if (object3222.getBaseUri() == null) break block40;
                                                        break block47;
                                                        catch (URISyntaxException uRISyntaxException) {
                                                            throw ServerPolicyValidator.b(uRISyntaxException);
                                                        }
                                                    }
                                                    if (object3222.getUri() == null) break block40;
                                                }
                                                catch (URISyntaxException uRISyntaxException) {
                                                    throw ServerPolicyValidator.b(uRISyntaxException);
                                                }
                                                try {
                                                    String string2 = new URI(object3222.getBaseUri()).resolve(object3222.getUri()).toString();
                                                    if (this.r.findHeaderByUriAndType(string2, null) != null) {
                                                        bl2 = true;
                                                    }
                                                }
                                                catch (URISyntaxException uRISyntaxException) {
                                                    String string3 = ExceptionUtils.getMessage((Throwable)uRISyntaxException);
                                                    String string4 = object3222.getBaseUri();
                                                    String string5 = object3222.getUri();
                                                    stringArray = A;
                                                    m.info(stringArray[43] + string5 + stringArray[26] + string4 + stringArray[39] + string3);
                                                }
                                                catch (IllegalArgumentException illegalArgumentException) {
                                                    String string6 = ExceptionUtils.getMessage((Throwable)illegalArgumentException);
                                                    String string7 = object3222.getBaseUri();
                                                    String string8 = object3222.getUri();
                                                    stringArray = A;
                                                    m.info(stringArray[24] + string8 + stringArray[29] + string7 + stringArray[9] + string6);
                                                }
                                            }
                                            if (bl2) break block41;
                                            try {
                                                block48: {
                                                    if (!object3222.hasTargetNamespace()) break block41;
                                                    break block48;
                                                    catch (URISyntaxException uRISyntaxException) {
                                                        throw ServerPolicyValidator.b(uRISyntaxException);
                                                    }
                                                }
                                                if (this.r.findHeadersByTNS(object3222.getTargetNamespace()).isEmpty()) break block41;
                                            }
                                            catch (URISyntaxException uRISyntaxException) {
                                                throw ServerPolicyValidator.b(uRISyntaxException);
                                            }
                                            bl2 = true;
                                        }
                                        if (bl2) break block42;
                                        try {
                                            block49: {
                                                if (object3222.getPublicIdentifier() == null) break block42;
                                                break block49;
                                                catch (URISyntaxException uRISyntaxException) {
                                                    throw ServerPolicyValidator.b(uRISyntaxException);
                                                }
                                            }
                                            if (this.r.findHeadersByPublicIdentifier(object3222.getPublicIdentifier()).isEmpty()) break block42;
                                        }
                                        catch (URISyntaxException uRISyntaxException) {
                                            throw ServerPolicyValidator.b(uRISyntaxException);
                                        }
                                        bl2 = true;
                                    }
                                    if (bl2) continue;
                                    try {
                                        block50: {
                                            if (object3222.getUri() == null) break block43;
                                            break block50;
                                            catch (URISyntaxException uRISyntaxException) {
                                                throw ServerPolicyValidator.b(uRISyntaxException);
                                            }
                                        }
                                        arrayList.add(object3222.getUri());
                                        continue;
                                    }
                                    catch (URISyntaxException uRISyntaxException) {
                                        throw ServerPolicyValidator.b(uRISyntaxException);
                                    }
                                }
                                try {
                                    arrayList2 = arrayList;
                                    if (object3222.getTargetNamespace() == null) break block44;
                                    string = object3222.getTargetNamespace();
                                    break block45;
                                }
                                catch (URISyntaxException uRISyntaxException) {
                                    throw ServerPolicyValidator.b(uRISyntaxException);
                                }
                            }
                            stringArray = A;
                            string = stringArray[32];
                        }
                        arrayList2.add(string);
                    }
                    catch (ObjectModelException objectModelException) {
                        stringArray = A;
                        m.log(Level.SEVERE, stringArray[52] + ExceptionUtils.getMessage((Throwable)objectModelException), ExceptionUtils.getDebugException((Throwable)objectModelException));
                    }
                }
                if (arrayList.isEmpty()) break block38;
                stringArray = A;
                StringBuffer stringBuffer = new StringBuffer(stringArray[30]);
                object3222 = arrayList.iterator();
                while (true) {
                    block46: {
                        try {
                            while (object3222.hasNext()) {
                                stringBuffer.append(object3222.next());
                                if (!object3222.hasNext()) continue;
                                break block46;
                            }
                            break;
                        }
                        catch (URISyntaxException uRISyntaxException) {
                            throw ServerPolicyValidator.b(uRISyntaxException);
                        }
                    }
                    stringArray = A;
                    stringBuffer.append(stringArray[12]);
                }
                stringBuffer.append(".");
                policyValidatorResult.addError(new PolicyValidatorResult.Error(assertion, stringBuffer.toString(), null));
            }
            catch (SAXException sAXException) {
                String[] stringArray = A;
                m.log(Level.INFO, stringArray[59] + ExceptionUtils.getMessage((Throwable)sAXException), ExceptionUtils.getDebugException((Throwable)sAXException));
                policyValidatorResult.addError(new PolicyValidatorResult.Error(assertion, stringArray[71], null));
            }
            catch (IOException iOException) {
                String[] stringArray = A;
                m.log(Level.INFO, stringArray[0] + ExceptionUtils.getMessage((Throwable)iOException), ExceptionUtils.getDebugException((Throwable)iOException));
                policyValidatorResult.addError(new PolicyValidatorResult.Error(assertion, stringArray[73], null));
            }
        }
    }

    /*
     * Loose catch block
     */
    protected void checkPrivateKey(PrivateKeyable privateKeyable, AssertionPath assertionPath, PolicyValidationContext policyValidationContext, PolicyValidatorResult policyValidatorResult) {
        block20: {
            boolean bl2;
            block21: {
                if (privateKeyable.isUsesDefaultKeyStore()) break block20;
                try {
                    block24: {
                        if (privateKeyable.isUsesDynamicPrivateKey()) break block20;
                        break block24;
                        catch (ObjectModelException objectModelException) {
                            throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
                        }
                    }
                    if (privateKeyable.getKeyAlias() == null) break block20;
                }
                catch (ObjectModelException objectModelException) {
                    throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
                }
                bl2 = false;
                try {
                    boolean bl3;
                    block25: {
                        Goid goid = privateKeyable.getNonDefaultKeystoreId();
                        String string = privateKeyable.getKeyAlias();
                        SsgKeyEntry ssgKeyEntry = this.u.lookupKeyByKeyAlias(string, goid);
                        if (ssgKeyEntry == null) break block21;
                        bl2 = true;
                        Goid goid2 = ssgKeyEntry.getKeystoreId();
                        if (!Goid.equals((Goid)ssgKeyEntry.getKeystoreId(), (Goid)goid)) {
                            String string2;
                            String[] stringArray;
                            Object object;
                            block23: {
                                block22: {
                                    SsgKeyFinder ssgKeyFinder = this.u.findByPrimaryKey(goid2);
                                    try {
                                        if (ssgKeyFinder == null) break block22;
                                        object = ssgKeyFinder.getName();
                                        break block23;
                                    }
                                    catch (ObjectModelException objectModelException) {
                                        throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
                                    }
                                }
                                stringArray = A;
                                object = stringArray[22] + String.valueOf(goid2);
                            }
                            String string3 = string2 = object;
                            String string4 = String.valueOf(goid);
                            String string5 = string;
                            stringArray = A;
                            policyValidatorResult.addWarning(new PolicyValidatorResult.Warning((Assertion)privateKeyable, stringArray[25] + string5 + stringArray[11] + string4 + stringArray[56] + string3 + stringArray[57], null));
                        }
                        boolean bl4 = ServerPolicyValidator.a(policyValidationContext);
                        bl3 = ServerPolicyValidator.b(policyValidationContext);
                        if (bl4) break block21;
                        if (!ssgKeyEntry.isRestrictedAccess()) break block21;
                        break block25;
                        catch (ObjectModelException objectModelException) {
                            throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
                        }
                    }
                    try {
                        block26: {
                            if (bl3) break block21;
                            break block26;
                            catch (ObjectModelException objectModelException) {
                                throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
                            }
                        }
                        policyValidatorResult.addError(new PolicyValidatorResult.Error((Assertion)privateKeyable, A[55], null));
                    }
                    catch (ObjectModelException objectModelException) {
                        throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
                    }
                }
                catch (ObjectModelException objectModelException) {
                    String[] stringArray = A;
                    m.log(Level.WARNING, stringArray[38] + ExceptionUtils.getMessage((Throwable)objectModelException), ExceptionUtils.getDebugException((Throwable)objectModelException));
                }
                catch (KeyStoreException keyStoreException) {
                    String[] stringArray = A;
                    m.log(Level.WARNING, stringArray[80] + ExceptionUtils.getMessage((Throwable)keyStoreException), ExceptionUtils.getDebugException((Throwable)keyStoreException));
                }
                catch (Exception exception) {
                    String[] stringArray = A;
                    m.log(Level.WARNING, stringArray[80] + ExceptionUtils.getMessage((Throwable)exception), exception);
                }
            }
            try {
                if (!bl2) {
                    policyValidatorResult.addError(new PolicyValidatorResult.Error((Assertion)privateKeyable, A[1], null));
                }
            }
            catch (ObjectModelException objectModelException) {
                throw ServerPolicyValidator.b((Exception)((Object)objectModelException));
            }
        }
    }

    private static boolean a(PolicyValidationContext policyValidationContext) {
        boolean bl2;
        block5: {
            block4: {
                PolicyType policyType = policyValidationContext.getPolicyType();
                try {
                    try {
                        if (policyType == null || !policyType.isPolicyFragment()) break block4;
                    }
                    catch (IllegalStateException illegalStateException) {
                        throw ServerPolicyValidator.b(illegalStateException);
                    }
                    bl2 = true;
                    break block5;
                }
                catch (IllegalStateException illegalStateException) {
                    throw ServerPolicyValidator.b(illegalStateException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    private static boolean b(PolicyValidationContext policyValidationContext) {
        return PolicyType.TAG_AUDIT_VIEWER.equals(policyValidationContext.getPolicyInternalTag());
    }

    protected void checkConnection(Connectionable connectionable, AssertionPath assertionPath, PolicyValidatorResult policyValidatorResult) {
        block9: {
            block10: {
                String string = connectionable.getConnectionName();
                try {
                    try {
                        try {
                            if (string == null || Syntax.getReferencedNames((String)string).length != 0) break block9;
                        }
                        catch (IllegalStateException illegalStateException) {
                            throw ServerPolicyValidator.b(illegalStateException);
                        }
                        if (!(connectionable instanceof JdbcConnectionable)) break block10;
                    }
                    catch (IllegalStateException illegalStateException) {
                        throw ServerPolicyValidator.b(illegalStateException);
                    }
                    this.a((JdbcConnectionable)connectionable, assertionPath, policyValidatorResult);
                    break block9;
                }
                catch (IllegalStateException illegalStateException) {
                    throw ServerPolicyValidator.b(illegalStateException);
                }
            }
            try {
                if (connectionable instanceof CassandraConnection) {
                    this.a((CassandraConnectionable)connectionable, assertionPath, policyValidatorResult);
                }
            }
            catch (IllegalStateException illegalStateException) {
                throw ServerPolicyValidator.b(illegalStateException);
            }
        }
    }

    private void a(JdbcConnectionable jdbcConnectionable, AssertionPath assertionPath, PolicyValidatorResult policyValidatorResult) {
        String string = jdbcConnectionable.getConnectionName();
        try {
            JdbcConnection jdbcConnection = this.v.getJdbcConnection(string);
            try {
                if (jdbcConnection == null) {
                    policyValidatorResult.addError(new PolicyValidatorResult.Error((Assertion)jdbcConnectionable, A[33] + EntityType.JDBC_CONNECTION.getName() + A[70] + string + A[58], null));
                }
            }
            catch (FindException findException) {
                throw ServerPolicyValidator.b((Exception)((Object)findException));
            }
        }
        catch (FindException findException) {
            m.log(Level.WARNING, A[60] + ExceptionUtils.getMessage((Throwable)findException), findException);
        }
    }

    private void a(HttpDigest httpDigest, AssertionPath assertionPath, PolicyValidatorResult policyValidatorResult) {
        String[] stringArray = A;
        boolean bl2 = this.w.getBooleanProperty(stringArray[75], false);
        try {
            if (!bl2) {
                policyValidatorResult.addWarning(new PolicyValidatorResult.Warning((Assertion)httpDigest, stringArray[16], null));
            }
        }
        catch (IllegalStateException illegalStateException) {
            throw ServerPolicyValidator.b(illegalStateException);
        }
    }

    private void a(CassandraConnectionable cassandraConnectionable, AssertionPath assertionPath, PolicyValidatorResult policyValidatorResult) {
        String string = cassandraConnectionable.getConnectionName();
        try {
            CassandraConnection cassandraConnection = this.z.getCassandraConnectionEntity(string);
            try {
                if (cassandraConnection == null) {
                    policyValidatorResult.addError(new PolicyValidatorResult.Error((Assertion)cassandraConnectionable, A[66] + EntityType.CASSANDRA_CONFIGURATION.getName() + A[65] + string + A[20], null));
                }
            }
            catch (FindException findException) {
                throw ServerPolicyValidator.b((Exception)((Object)findException));
            }
        }
        catch (FindException findException) {
            m.log(Level.WARNING, A[28] + ExceptionUtils.getMessage((Throwable)findException), findException);
        }
    }

    /*
     * Loose catch block
     */
    private synchronized int a(IdentityAssertion identityAssertion) {
        Integer n2;
        block39: {
            n2 = this.n.get(identityAssertion);
            if (n2 != null) break block39;
            try {
                block41: {
                    int n3;
                    block45: {
                        IdentityProvider identityProvider;
                        block42: {
                            boolean bl2;
                            block36: {
                                int n4;
                                block38: {
                                    block37: {
                                        block46: {
                                            String string;
                                            block33: {
                                                int n5;
                                                block35: {
                                                    block34: {
                                                        block43: {
                                                            block32: {
                                                                boolean bl3;
                                                                block40: {
                                                                    identityProvider = this.q.getProvider(identityAssertion.getIdentityProviderOid());
                                                                    if (identityProvider == null) {
                                                                        this.n.put(identityAssertion, 6);
                                                                        return 6;
                                                                    }
                                                                    boolean bl4 = false;
                                                                    bl3 = false;
                                                                    if (identityAssertion instanceof SpecificUser) {
                                                                        var6_7 = (SpecificUser)identityAssertion;
                                                                        string = var6_7.getUserUid();
                                                                        var8_11 = string == null ? identityProvider.getUserManager().findByLogin(var6_7.getUserLogin()) : identityProvider.getUserManager().findByPrimaryKey(string);
                                                                        if (var8_11 != null) {
                                                                            boolean bl5;
                                                                            bl4 = true;
                                                                            try {
                                                                                bl5 = this.s.getUserCert((User)var8_11) != null;
                                                                            }
                                                                            catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                                                throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                                                            }
                                                                            bl3 = bl5;
                                                                        }
                                                                    } else if (identityAssertion instanceof MemberOfGroup) {
                                                                        var6_7 = (MemberOfGroup)identityAssertion;
                                                                        var8_11 = var6_7.getGroupId();
                                                                        string = var8_11 == null ? identityProvider.getGroupManager().findByName(var6_7.getGroupName()) : identityProvider.getGroupManager().findByPrimaryKey(var8_11);
                                                                        if (string != null) {
                                                                            bl4 = true;
                                                                            if (!(string instanceof VirtualGroup)) {
                                                                                bl3 = true;
                                                                            }
                                                                        }
                                                                    } else if (identityAssertion instanceof AuthenticationAssertion) {
                                                                        bl4 = true;
                                                                        try {
                                                                            identityProvider.test(true, null, null);
                                                                        }
                                                                        catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                                            String[] stringArray = A;
                                                                            throw new FindException(stringArray[63], (Throwable)invalidIdProviderCfgException);
                                                                        }
                                                                    } else {
                                                                        String[] stringArray = A;
                                                                        throw new RuntimeException(stringArray[8] + identityAssertion.getClass().getName());
                                                                    }
                                                                    if (bl4) break block40;
                                                                    n2 = 0;
                                                                    break block41;
                                                                }
                                                                n3 = 1;
                                                                if (!IdentityProviderType.is((IdentityProvider)identityProvider, (IdentityProviderType)IdentityProviderType.FEDERATED)) break block42;
                                                                n3 = 2;
                                                                string = (FederatedIdentityProviderConfig)identityProvider.getConfig();
                                                                bl2 = false;
                                                                try {
                                                                    if (string.getTrustedCertGoids().length != 0 || bl3) break block32;
                                                                }
                                                                catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                                    throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                                                }
                                                                bl2 = true;
                                                            }
                                                            if (!string.isSamlSupported()) break block33;
                                                            if (string.isX509Supported()) break block33;
                                                            break block43;
                                                            catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                                throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                                            }
                                                        }
                                                        try {
                                                            block44: {
                                                                if (!bl2) break block34;
                                                                break block44;
                                                                catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                                    throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                                                }
                                                            }
                                                            n5 = 8;
                                                            break block35;
                                                        }
                                                        catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                            throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                                        }
                                                    }
                                                    n5 = 3;
                                                }
                                                n3 = n5;
                                                break block45;
                                            }
                                            if (string.isSamlSupported()) break block36;
                                            if (!string.isX509Supported()) break block36;
                                            break block46;
                                            catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                            }
                                        }
                                        try {
                                            block47: {
                                                if (!bl2) break block37;
                                                break block47;
                                                catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                                    throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                                }
                                            }
                                            n4 = 9;
                                            break block38;
                                        }
                                        catch (InvalidIdProviderCfgException invalidIdProviderCfgException) {
                                            throw ServerPolicyValidator.b((Exception)((Object)invalidIdProviderCfgException));
                                        }
                                    }
                                    n4 = 4;
                                }
                                n3 = n4;
                                break block45;
                            }
                            if (bl2) {
                                n3 = 7;
                            }
                            break block45;
                        }
                        if (IdentityProviderType.is((IdentityProvider)identityProvider, (IdentityProviderType)IdentityProviderType.LDAP)) {
                            n3 = 5;
                        }
                    }
                    n2 = n3;
                }
                this.n.put(identityAssertion, n2);
            }
            catch (FindException findException) {
                m.log(Level.WARNING, A[41] + ExceptionUtils.getMessage((Throwable)findException), ExceptionUtils.getDebugException((Throwable)findException));
                n2 = 10;
                this.n.put(identityAssertion, n2);
            }
        }
        return n2;
    }

    public void setJmsEndpointManager(JmsEndpointManager jmsEndpointManager) {
        this.p = jmsEndpointManager;
    }

    public void setIdentityProviderFactory(IdentityProviderFactory identityProviderFactory) {
        this.q = identityProviderFactory;
    }

    public void setSsgKeyStoreManager(SsgKeyStoreManager ssgKeyStoreManager) {
        this.u = ssgKeyStoreManager;
    }

    public void setResourceEntryManager(ResourceEntryManager resourceEntryManager) {
        this.r = resourceEntryManager;
    }

    public void setClientCertManager(ClientCertManager clientCertManager) {
        this.s = clientCertManager;
    }

    public void setEntityFinder(EntityFinder entityFinder) {
        this.t = entityFinder;
    }

    public void setJdbcConnectionManager(JdbcConnectionManager jdbcConnectionManager) {
        this.v = jdbcConnectionManager;
    }

    public void setCassandraEntityManager(CassandraConnectionEntityManager cassandraConnectionEntityManager) {
        this.z = cassandraConnectionEntityManager;
    }

    public void setConfig(Config config) {
        this.w = config;
    }

    public void setKeyValueStoreManager(@NotNull CustomKeyValueStoreManager customKeyValueStoreManager) {
        try {
            if (customKeyValueStoreManager == null) {
                ServerPolicyValidator.a(0);
            }
        }
        catch (IllegalStateException illegalStateException) {
            throw ServerPolicyValidator.b(illegalStateException);
        }
        this.x = new CustomKeyValueStoreImpl(customKeyValueStoreManager);
    }

    public void setCustomAssertionsRegistrar(@NotNull CustomAssertionsRegistrar customAssertionsRegistrar) {
        try {
            if (customAssertionsRegistrar == null) {
                ServerPolicyValidator.a(1);
            }
        }
        catch (IllegalStateException illegalStateException) {
            throw ServerPolicyValidator.b(illegalStateException);
        }
        this.y = customAssertionsRegistrar;
    }

    public void afterPropertiesSet() throws Exception {
        try {
            if (this.p == null) {
                throw new IllegalArgumentException(A[35]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.q == null) {
                throw new IllegalArgumentException(A[67]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.u == null) {
                throw new IllegalArgumentException(A[45]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.r == null) {
                throw new IllegalArgumentException(A[21]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.s == null) {
                throw new IllegalArgumentException(A[4]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.t == null) {
                throw new IllegalArgumentException(A[61]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.v == null) {
                throw new IllegalArgumentException(A[76]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.x == null) {
                throw new IllegalArgumentException(A[44]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
        try {
            if (this.y == null) {
                throw new IllegalArgumentException(A[5]);
            }
        }
        catch (Exception exception) {
            throw ServerPolicyValidator.b(exception);
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[81];
                var3_1 = 0;
                var2_2 = "ogY=r\u001a\u0006|gE xN^aj\u00175o\u0001K,uT;x\u0003G,pV?t\nGxoX==\u000fU\u007fcE't\u0001H6&LXn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXs|Nv~oA2i\u000b\u0006GcNsj\u0006Oon\u00170|\u0000Hcr\u00171xN@csY7=\u0001H,r_:nNamrR$|\u0017?Xn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXs|NA`iU2qNUonR>|NRdgCss\u0001\u0006`iY4x\u001c\u0006i~^ i\u001d\b\u0014gcN\u0005|\u0002SiUC<o\u000bkmhV4x\u001c\u001eOj^6s\u001a\u0006OcE'=#GbaR!=\u0007U,tR\"h\u0007Tib'OsD'r\u0003\u0006muD6o\u001aOchDso\u000bAeuC!|\u001c\u0006eu\u0017!x\u001fSetR7TXn^ =\u001cIyr^=zNG\u007fuR!i\u0007Ib&E6{\u000bT\u007f&C<=\u000f\u0006FKdsx\u0000B|i^=iNRdgCs~\u000fHbiCs\u007f\u000b\u0006jiB=yNIb&C;t\u001d\u0006\u007f\u007fD'x\u0003\b\u0007onV!n\u000bR\u0013X\u007fG6=\u0000Ix&D&m\u001eI~rR7=\u0003+<\u0017*KgC6j\u000f_,MR!\u007f\u000bTcu\u00170r\u0000@eaB!|\u001aOch\u0017:nNObpV?t\n\b\u0019+&^==\u000f\u0006gcN i\u0001Ti&@:i\u0006\u0006EB\u0017t\u0002 &\u0083Xn^ =\u0007BihC:i\u0017\u0006ogYsr\u0000Ju&V&i\u0006Cbr^0|\u001aC,q^'uNG,Uv\u001eQNRcmR==\u0001T,Ud\u001f=-JecY'=-C~r^5t\rGxc\u00171h\u001a\u0006mhX'u\u000bT,rN#xNIj&T!x\nCbr^2qNUcsE0xNO\u007f&D#x\rOjoR73OXn^ =\u0007BihC:i\u0017\u0006ogY=r\u001a\u0006msC;x\u0000ReeV'xNQer_si\u0006C,rN#xNIj&T!x\nCbr^2qNUcsE0xNU|cT:{\u0007Ch(\u0003Bi\u0017\u00aaOtR7x\u0000Reg[ =\tGxnR!x\n\u0006n\u007f\u0017'u\u0007U,gD x\u001cReiYs|\u001cC,sY?t\u0005C`\u007f\u0017'rNDi&V&i\u0006Cbr^0|\u001aCh&U*=\u000fHu&^7x\u0000RerNsm\u001cIzoS6oNDieV&n\u000b\u0006bi\u0017#o\u0001PebR!=\u0007U,eB!o\u000bHxjNs~\u0001HjoP&o\u000bB,rXsn\u001aI~c\u0017\u001eY[\u0006|gD j\u0001Th&_2n\u0006C\u007f(&,r_2iNEmhY<iNDi&[<~\u000fRib\u0017<sNRdoDsn\u0017UxcZ\u0002,]\tytYih\u001bOh<)+&@;t\rN,eV=s\u0001R,dRsq\u0001EmrR7=\u0001H,r_:nNUuuC6p@\"^cD<h\u001cEi&r=i\u001c_,KV=|\tC~&^ =\u001cC}s^!x\n\u0003eb\r\u000fYhV1q\u000b\u0006xi\u00175t\u0000B,)YhV1q\u000b\u0006xi\u0017!x\u001dI`pRsn\rNikVsy\u000bVihS6s\r_,Se\u001a=I3Xn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXs|Nv~oA2i\u000b\u0006GcNsj\u0007Rd&V?t\u000fU,!\u000b+&V4|\u0007H\u007fr\u0017t\u001c\u007fcC\u0010h\u001dRckv n\u000bTxoX=n<CkoD'o\u000fT3ItE<oNJci\\:s\t\u0006jiEs^\u000fU\u007fgY7o\u000f\u0006OiY=x\rReiYs~\u0001HbcT't\u0001H6&\u000b+&V4|\u0007H\u007fr\u0017tIXnRsn\rNikVsk\u000fJebV't\u0001H,gD x\u001cReiYs~\u0001Hxg^=nNSbtR r\u0002Pib\u0017 ~\u0006Cag\u00177x\u001eCbbR=~\u0007C\u007f<\u0017*GcE1x\u001cI\u007f&^ =\u0000Ix&T<s\bOksE6yNIb&C;xNamrR$|\u0017\b\u000e0hXss\u000fKiuG2~\u000b\u0018\u0018MuD6o\u001aOch\u0017!x\bC~u\u0017'rNRdc\u0017\u0016MuD6o\u001aOch\u0017!x\bC~u\u0017'rNG, FKdsX\u0000B|i^=iNKmhV4x\u001c\u0006eu\u0017!x\u001fSetR7XXnRs~\u0001T~cD#r\u0000BehPst\nCbr^'dNEmhY<iNDi&Q<h\u0000B\"&g?x\u000fUi&E6p\u0001Pi&C;xNG\u007fuR!i\u0007Ib&Q!r\u0003\u0006xnRsm\u0001JeeN}\u001eEhA2q\u0007B,K~\u001eXNechC6s\u001a\u000bX\u007fG65\u001d\u000f6&\u001fitE<oNJci\\:s\t\u0006jiEsm\u001cOzgC6=\u0005Cu<\u0017\u0003+<\u0017\u0002 &\u001d|tX1q\u000bK,tR'o\u0007CzoY4=\u0007BihC:i\u0017\u001c,\u0081Xn^ =\u0007BihC:i\u0017\u0006ogYsr\u0000Ju&V&i\u0006Cbr^0|\u001aC,sD:s\t\u0006erDs~\u0002OihCs~\u000bTx(\u0017\u0007u\u000b\u0006\u007fvR0t\bOib\u0017'd\u001eC,iQs~\u001cChcY't\u000fJ,uX&o\rC,oDss\u0001R,uB#m\u0001TxcSs\u007f\u0017\u0006xnV'=\u001bUit\u0019)YhV1q\u000b\u0006xi\u0017!x\u001dI`pRsn\rNikVsy\u000bVihS6s\r_,Se\u001a=I\"OsD'r\u0003\u0006gcNsk\u000fJyc\u0017 i\u0001Ti&^ =\u001cC}s^!x\n\u001cGcN\u0000i\u0001Ti&z2s\u000fAit\u0017:nNTiwB:o\u000bB>Yh\\=r\u0019H,gD x\u001cReiYsf^[7&V?qNTiwB6n\u001aU,rXsi\u0006O\u007f&D6o\u0018Ooc\u0017$t\u0002J,`V:q@>MtP&p\u000bHx&Q<oNfBiC\u001dh\u0002J,vV!|\u0003CxcEs:KU+&X5=KU\"#Dsp\u001bUx&Y<iNDi&Y&q\u0002\u0018ItE<oN@irT;t\u0000A,cY7m\u0001Obr\u0017\u0017\u007fcC\u0018x\u0017pmjB6N\u001aI~cz2s\u000fAit*GcE1x\u001cI\u007f&^ =\u0000Ix&T<s\bOksE6yNIb&C;xNamrR$|\u0017\b\u000f,`X&s\n\u0006{oC;='b,\u0013ogY=r\u001a\u0006kcCsn\rNikVi=iXnRs~\u0001T~cD#r\u0000BehPst\nCbr^'dNV~iA:y\u000bT,bX6nNHcr\u00176e\u0007Ux&V=dNKctR}=>JigD6=\u001cCaiA6=\u001aNi&V n\u000bTxoX==\bTck\u0017'u\u000b\u0006|i[:~\u0017\b\u0019osD'r\u0003g\u007fuR!i\u0007Ibue6z\u0007UxtV!{Xn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXsi\u0006C,gB7t\u001a\u0006zoR$x\u001c\u0006|t^%|\u001aC,mR*1NQdoT;=\rGb&X=q\u0017\u0006nc\u0017&n\u000bB,`E<pNQer_:sNRdc\u00172h\nOx&A:x\u0019C~&^=i\u000bTbg[sm\u0001JeeN}\u0087+(\u0017sS\u0001\u0006gcN i\u0001Ti&@:i\u0006\u0006xnV'='b,oDsm\u001cC\u007fcY'=\u0001H,r_:nNamrR$|\u0017\n,dB'=\u001aNi&D*n\u001aCa&_2nN@csY7=\u000f\u0006\\t^%|\u001aC,MR*=\u0019Oxn\u00172=\u0003Gxe_:s\t\u0006mj^2nNOb&C;xNMi\u007fD'r\u001cC,!\u0014+&V=yNQej[sh\u001dC,r_2i@)+&@;t\rN,eV=s\u0001R,dRsq\u0001EmrR7=\u0001H,r_:nNUuuC6p@3ogY=r\u001a\u0006|gE xN^aj\u00175o\u0001K,uT;x\u0003G,pV?t\nGxoX==\u000fU\u007fcE't\u0001H6&#ItE<oNJci\\:s\t\u0006jiEsW*dO&T<s\u0000Cor^<sT\u0006\u0018IhC:i\u0017`ehS6oNO\u007f&E6l\u001bO~cS*KgC6j\u000f_,MR!\u007f\u000bTcu\u00170r\u0000@eaB!|\u001aOch\u0017:nNObpV?t\n\b\u0017ItE<oNRiuC:s\t\u0006|tX%t\nC~([Xn^ =\u0007BihC:i\u0017\u0006agNss\u0001R,dRs|\fJi&C<=\u000fSxnR=i\u0007EmrRsj\u0007Rd&C;xNRuvRsr\b\u0006otR7x\u0000Reg[sn\u0001S~eRsn\u001eCooQ:x\n\b\u0002,!\u0018MuD6o\u001aOch\u0017!x\bC~u\u0017'rNRdc\u0017%EbR=i\u0007Ru&g!r\u0018OhcEs[\u000fExiE*=\u0007U,tR\"h\u0007TibZXn^ =\u0007BihC:i\u0017\u0006~cF&t\u001cC\u007f&Vs~\u000bTxoQ:~\u000fRi&Q<oNGyr_6s\u001aOogC:r\u0000\u0006$gB'u\u000bHxoT2i\u0007Ib&@:q\u0002\u0006mj@2d\u001d\u0006jg^?4@8oiZ|qYRie_|n\u000bTzcE|m\u0001JeeN|k\u000fJebV'r\u001c\t_cE%x\u001cvcj^0d8G`oS2i\u0001T\u0002,!UXn^ =\u001dEdcZ2=\u0018G`oS2i\u0007Ib&V n\u000bTxoX==\nIiu\u0017=r\u001a\u0006mvG6|\u001c\u0006xi\u00170r\u0000RmoYs|NQij[~{\u0001TacSse\u0003J,uT;x\u0003G\"HXn^ =\u0007BihC:i\u0017\u0006ogY=r\u001a\u0006nc\u0017%|\u0002OhgC6yNGx&C;t\u001d\u0006xoZ6=FOhcY't\u001a_,vE<k\u0007Bit\u00176o\u001cI~/UXn^ =\u001dEdcZ2=\u0018G`oS2i\u0007Ib&V n\u000bTxoX==\nIiu\u0017=r\u001a\u0006mvG6|\u001c\u0006xi\u00170r\u0000RmoYs|NQij[~{\u0001TacSse\u0003J,uT;x\u0003G\"\u001aitE<oNJci\\:s\t\u0006jiEsn\rNikVi=\u0011drC#Y\u0007AiuC}x\u0000GnjR#FBu\u0010=-IbhR0i\u0007Ib&z2s\u000fAit\u0017:nNTiwB:o\u000bBZXn^ =\u0007BihC:i\u0017\u0006~cF&t\u001cC\u007f&Vs~\u000bTxoQ:~\u000fRi&Q<oNGyr_6s\u001aOogC:r\u0000\u0006$gB'u\u000bHxoT2i\u0007Ib&@:q\u0002\u0006mj@2d\u001d\u0006jg^?4@\u00026&";
                var4_3 = "ogY=r\u001a\u0006|gE xN^aj\u00175o\u0001K,uT;x\u0003G,pV?t\nGxoX==\u000fU\u007fcE't\u0001H6&LXn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXs|Nv~oA2i\u000b\u0006GcNsj\u0006Oon\u00170|\u0000Hcr\u00171xN@csY7=\u0001H,r_:nNamrR$|\u0017?Xn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXs|NA`iU2qNUonR>|NRdgCss\u0001\u0006`iY4x\u001c\u0006i~^ i\u001d\b\u0014gcN\u0005|\u0002SiUC<o\u000bkmhV4x\u001c\u001eOj^6s\u001a\u0006OcE'=#GbaR!=\u0007U,tR\"h\u0007Tib'OsD'r\u0003\u0006muD6o\u001aOchDso\u000bAeuC!|\u001c\u0006eu\u0017!x\u001fSetR7TXn^ =\u001cIyr^=zNG\u007fuR!i\u0007Ib&E6{\u000bT\u007f&C<=\u000f\u0006FKdsx\u0000B|i^=iNRdgCs~\u000fHbiCs\u007f\u000b\u0006jiB=yNIb&C;t\u001d\u0006\u007f\u007fD'x\u0003\b\u0007onV!n\u000bR\u0013X\u007fG6=\u0000Ix&D&m\u001eI~rR7=\u0003+<\u0017*KgC6j\u000f_,MR!\u007f\u000bTcu\u00170r\u0000@eaB!|\u001aOch\u0017:nNObpV?t\n\b\u0019+&^==\u000f\u0006gcN i\u0001Ti&@:i\u0006\u0006EB\u0017t\u0002 &\u0083Xn^ =\u0007BihC:i\u0017\u0006ogYsr\u0000Ju&V&i\u0006Cbr^0|\u001aC,q^'uNG,Uv\u001eQNRcmR==\u0001T,Ud\u001f=-JecY'=-C~r^5t\rGxc\u00171h\u001a\u0006mhX'u\u000bT,rN#xNIj&T!x\nCbr^2qNUcsE0xNO\u007f&D#x\rOjoR73OXn^ =\u0007BihC:i\u0017\u0006ogY=r\u001a\u0006msC;x\u0000ReeV'xNQer_si\u0006C,rN#xNIj&T!x\nCbr^2qNUcsE0xNU|cT:{\u0007Ch(\u0003Bi\u0017\u00aaOtR7x\u0000Reg[ =\tGxnR!x\n\u0006n\u007f\u0017'u\u0007U,gD x\u001cReiYs|\u001cC,sY?t\u0005C`\u007f\u0017'rNDi&V&i\u0006Cbr^0|\u001aCh&U*=\u000fHu&^7x\u0000RerNsm\u001cIzoS6oNDieV&n\u000b\u0006bi\u0017#o\u0001PebR!=\u0007U,eB!o\u000bHxjNs~\u0001HjoP&o\u000bB,rXsn\u001aI~c\u0017\u001eY[\u0006|gD j\u0001Th&_2n\u0006C\u007f(&,r_2iNEmhY<iNDi&[<~\u000fRib\u0017<sNRdoDsn\u0017UxcZ\u0002,]\tytYih\u001bOh<)+&@;t\rN,eV=s\u0001R,dRsq\u0001EmrR7=\u0001H,r_:nNUuuC6p@\"^cD<h\u001cEi&r=i\u001c_,KV=|\tC~&^ =\u001cC}s^!x\n\u0003eb\r\u000fYhV1q\u000b\u0006xi\u00175t\u0000B,)YhV1q\u000b\u0006xi\u0017!x\u001dI`pRsn\rNikVsy\u000bVihS6s\r_,Se\u001a=I3Xn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXs|Nv~oA2i\u000b\u0006GcNsj\u0007Rd&V?t\u000fU,!\u000b+&V4|\u0007H\u007fr\u0017t\u001c\u007fcC\u0010h\u001dRckv n\u000bTxoX=n<CkoD'o\u000fT3ItE<oNJci\\:s\t\u0006jiEs^\u000fU\u007fgY7o\u000f\u0006OiY=x\rReiYs~\u0001HbcT't\u0001H6&\u000b+&V4|\u0007H\u007fr\u0017tIXnRsn\rNikVsk\u000fJebV't\u0001H,gD x\u001cReiYs~\u0001Hxg^=nNSbtR r\u0002Pib\u0017 ~\u0006Cag\u00177x\u001eCbbR=~\u0007C\u007f<\u0017*GcE1x\u001cI\u007f&^ =\u0000Ix&T<s\bOksE6yNIb&C;xNamrR$|\u0017\b\u000e0hXss\u000fKiuG2~\u000b\u0018\u0018MuD6o\u001aOch\u0017!x\bC~u\u0017'rNRdc\u0017\u0016MuD6o\u001aOch\u0017!x\bC~u\u0017'rNG, FKdsX\u0000B|i^=iNKmhV4x\u001c\u0006eu\u0017!x\u001fSetR7XXnRs~\u0001T~cD#r\u0000BehPst\nCbr^'dNEmhY<iNDi&Q<h\u0000B\"&g?x\u000fUi&E6p\u0001Pi&C;xNG\u007fuR!i\u0007Ib&Q!r\u0003\u0006xnRsm\u0001JeeN}\u001eEhA2q\u0007B,K~\u001eXNechC6s\u001a\u000bX\u007fG65\u001d\u000f6&\u001fitE<oNJci\\:s\t\u0006jiEsm\u001cOzgC6=\u0005Cu<\u0017\u0003+<\u0017\u0002 &\u001d|tX1q\u000bK,tR'o\u0007CzoY4=\u0007BihC:i\u0017\u001c,\u0081Xn^ =\u0007BihC:i\u0017\u0006ogYsr\u0000Ju&V&i\u0006Cbr^0|\u001aC,sD:s\t\u0006erDs~\u0002OihCs~\u000bTx(\u0017\u0007u\u000b\u0006\u007fvR0t\bOib\u0017'd\u001eC,iQs~\u001cChcY't\u000fJ,uX&o\rC,oDss\u0001R,uB#m\u0001TxcSs\u007f\u0017\u0006xnV'=\u001bUit\u0019)YhV1q\u000b\u0006xi\u0017!x\u001dI`pRsn\rNikVsy\u000bVihS6s\r_,Se\u001a=I\"OsD'r\u0003\u0006gcNsk\u000fJyc\u0017 i\u0001Ti&^ =\u001cC}s^!x\n\u001cGcN\u0000i\u0001Ti&z2s\u000fAit\u0017:nNTiwB:o\u000bB>Yh\\=r\u0019H,gD x\u001cReiYsf^[7&V?qNTiwB6n\u001aU,rXsi\u0006O\u007f&D6o\u0018Ooc\u0017$t\u0002J,`V:q@>MtP&p\u000bHx&Q<oNfBiC\u001dh\u0002J,vV!|\u0003CxcEs:KU+&X5=KU\"#Dsp\u001bUx&Y<iNDi&Y&q\u0002\u0018ItE<oN@irT;t\u0000A,cY7m\u0001Obr\u0017\u0017\u007fcC\u0018x\u0017pmjB6N\u001aI~cz2s\u000fAit*GcE1x\u001cI\u007f&^ =\u0000Ix&T<s\bOksE6yNIb&C;xNamrR$|\u0017\b\u000f,`X&s\n\u0006{oC;='b,\u0013ogY=r\u001a\u0006kcCsn\rNikVi=iXnRs~\u0001T~cD#r\u0000BehPst\nCbr^'dNV~iA:y\u000bT,bX6nNHcr\u00176e\u0007Ux&V=dNKctR}=>JigD6=\u001cCaiA6=\u001aNi&V n\u000bTxoX==\bTck\u0017'u\u000b\u0006|i[:~\u0017\b\u0019osD'r\u0003g\u007fuR!i\u0007Ibue6z\u0007UxtV!{Xn^ =\u000fU\u007fcE't\u0001H,tR5x\u001cU,rXsi\u0006C,gB7t\u001a\u0006zoR$x\u001c\u0006|t^%|\u001aC,mR*1NQdoT;=\rGb&X=q\u0017\u0006nc\u0017&n\u000bB,`E<pNQer_:sNRdc\u00172h\nOx&A:x\u0019C~&^=i\u000bTbg[sm\u0001JeeN}\u0087+(\u0017sS\u0001\u0006gcN i\u0001Ti&@:i\u0006\u0006xnV'='b,oDsm\u001cC\u007fcY'=\u0001H,r_:nNamrR$|\u0017\n,dB'=\u001aNi&D*n\u001aCa&_2nN@csY7=\u000f\u0006\\t^%|\u001aC,MR*=\u0019Oxn\u00172=\u0003Gxe_:s\t\u0006mj^2nNOb&C;xNMi\u007fD'r\u001cC,!\u0014+&V=yNQej[sh\u001dC,r_2i@)+&@;t\rN,eV=s\u0001R,dRsq\u0001EmrR7=\u0001H,r_:nNUuuC6p@3ogY=r\u001a\u0006|gE xN^aj\u00175o\u0001K,uT;x\u0003G,pV?t\nGxoX==\u000fU\u007fcE't\u0001H6&#ItE<oNJci\\:s\t\u0006jiEsW*dO&T<s\u0000Cor^<sT\u0006\u0018IhC:i\u0017`ehS6oNO\u007f&E6l\u001bO~cS*KgC6j\u000f_,MR!\u007f\u000bTcu\u00170r\u0000@eaB!|\u001aOch\u0017:nNObpV?t\n\b\u0017ItE<oNRiuC:s\t\u0006|tX%t\nC~([Xn^ =\u0007BihC:i\u0017\u0006agNss\u0001R,dRs|\fJi&C<=\u000fSxnR=i\u0007EmrRsj\u0007Rd&C;xNRuvRsr\b\u0006otR7x\u0000Reg[sn\u0001S~eRsn\u001eCooQ:x\n\b\u0002,!\u0018MuD6o\u001aOch\u0017!x\bC~u\u0017'rNRdc\u0017%EbR=i\u0007Ru&g!r\u0018OhcEs[\u000fExiE*=\u0007U,tR\"h\u0007TibZXn^ =\u0007BihC:i\u0017\u0006~cF&t\u001cC\u007f&Vs~\u000bTxoQ:~\u000fRi&Q<oNGyr_6s\u001aOogC:r\u0000\u0006$gB'u\u000bHxoT2i\u0007Ib&@:q\u0002\u0006mj@2d\u001d\u0006jg^?4@8oiZ|qYRie_|n\u000bTzcE|m\u0001JeeN|k\u000fJebV'r\u001c\t_cE%x\u001cvcj^0d8G`oS2i\u0001T\u0002,!UXn^ =\u001dEdcZ2=\u0018G`oS2i\u0007Ib&V n\u000bTxoX==\nIiu\u0017=r\u001a\u0006mvG6|\u001c\u0006xi\u00170r\u0000RmoYs|NQij[~{\u0001TacSse\u0003J,uT;x\u0003G\"HXn^ =\u0007BihC:i\u0017\u0006ogY=r\u001a\u0006nc\u0017%|\u0002OhgC6yNGx&C;t\u001d\u0006xoZ6=FOhcY't\u001a_,vE<k\u0007Bit\u00176o\u001cI~/UXn^ =\u001dEdcZ2=\u0018G`oS2i\u0007Ib&V n\u000bTxoX==\nIiu\u0017=r\u001a\u0006mvG6|\u001c\u0006xi\u00170r\u0000RmoYs|NQij[~{\u0001TacSse\u0003J,uT;x\u0003G\"\u001aitE<oNJci\\:s\t\u0006jiEsn\rNikVi=\u0011drC#Y\u0007AiuC}x\u0000GnjR#FBu\u0010=-IbhR0i\u0007Ib&z2s\u000fAit\u0017:nNTiwB:o\u000bBZXn^ =\u0007BihC:i\u0017\u0006~cF&t\u001cC\u007f&Vs~\u000bTxoQ:~\u000fRi&Q<oNGyr_6s\u001aOogC:r\u0000\u0006$gB'u\u000bHxoT2i\u0007Ib&@:q\u0002\u0006mj@2d\u001d\u0006jg^?4@\u00026&".length();
                var1_4 = 51;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = ServerPolicyValidator.b(v0, ServerPolicyValidator.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "C\u000f7I\u001cei\u0014\u0000,TRH\rC\u001f\u0006\u001b*S\u0000!%\f\u00063U\u001cfi\u0005\u0006*\u001c\u0002s \u0015\b,YRj,\u001aSx";
                    var4_3 = "C\u000f7I\u001cei\u0014\u0000,TRH\rC\u001f\u0006\u001b*S\u0000!%\f\u00063U\u001cfi\u0005\u0006*\u001c\u0002s \u0015\b,YRj,\u001aSx".length();
                    var1_4 = 15;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 70;
                        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++] = ServerPolicyValidator.b(v0, ServerPolicyValidator.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;
            }
        }
        ServerPolicyValidator.A = var5;
        ServerPolicyValidator.a = ServerPolicyValidator.A[77];
        ServerPolicyValidator.m = Logger.getLogger(ServerPolicyValidator.class.getName());
    }

    /*
     * 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 2[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 Exception b(Exception exception) {
        return exception;
    }

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

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String b(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 -> 37;
                    case 1 -> 47;
                    case 2 -> 30;
                    case 3 -> 122;
                    case 4 -> 52;
                    case 5 -> 71;
                    default -> 15;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

