/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.http.GenericHttpClient
 *  com.l7tech.common.http.GenericHttpClientFactory
 *  com.l7tech.common.http.GenericHttpException
 *  com.l7tech.common.http.GenericHttpHeader
 *  com.l7tech.common.http.GenericHttpRequest
 *  com.l7tech.common.http.GenericHttpRequestParams
 *  com.l7tech.common.http.GenericHttpRequestParams$HttpVersion
 *  com.l7tech.common.http.GenericHttpResponse
 *  com.l7tech.common.http.GenericHttpState
 *  com.l7tech.common.http.HttpConstants
 *  com.l7tech.common.http.HttpHeader
 *  com.l7tech.common.http.HttpHeaderUtil
 *  com.l7tech.common.http.HttpHeaders
 *  com.l7tech.common.http.HttpMethod
 *  com.l7tech.common.http.HttpProxyConfig
 *  com.l7tech.common.http.NtlmAuthentication
 *  com.l7tech.common.http.prov.apache.components.AbortedSocketException
 *  com.l7tech.common.http.prov.apache.components.HttpComponentsClient
 *  com.l7tech.common.io.SSLSocketFactoryWrapper
 *  com.l7tech.common.io.SingleCertX509KeyManager
 *  com.l7tech.common.io.SslSocketUtil
 *  com.l7tech.common.io.UncheckedIOException
 *  com.l7tech.common.io.failover.AbstractFailoverStrategy
 *  com.l7tech.common.io.failover.FailoverStrategy
 *  com.l7tech.common.io.failover.FailoverStrategyFactory
 *  com.l7tech.common.io.failover.StickyFailoverStrategy
 *  com.l7tech.common.mime.ContentTypeHeader
 *  com.l7tech.common.password.Sha512Crypt
 *  com.l7tech.gateway.common.audit.AssertionMessages
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.Messages
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.kerberos.KerberosClient
 *  com.l7tech.kerberos.KerberosException
 *  com.l7tech.kerberos.KerberosServiceTicket
 *  com.l7tech.message.HasHeaders
 *  com.l7tech.message.Header
 *  com.l7tech.message.HttpRequestKnob
 *  com.l7tech.message.Message
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.policy.assertion.Assertion
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.policy.assertion.HttpPassthroughRuleSet
 *  com.l7tech.policy.assertion.HttpRoutingAssertion
 *  com.l7tech.policy.assertion.PolicyAssertionException
 *  com.l7tech.policy.assertion.RoutingAssertionWithSamlSV
 *  com.l7tech.policy.assertion.RoutingStatus
 *  com.l7tech.policy.variable.NoSuchVariableException
 *  com.l7tech.policy.variable.Syntax
 *  com.l7tech.security.cert.TrustedCert
 *  com.l7tech.security.cert.TrustedCertManager
 *  com.l7tech.security.xml.SignerInfo
 *  com.l7tech.util.BuildInfo
 *  com.l7tech.util.Config
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.HexUtils
 *  com.l7tech.util.Pair
 *  com.l7tech.util.SyspropUtil
 *  jakarta.inject.Inject
 *  jakarta.inject.Named
 *  javax.wsdl.WSDLException
 *  org.apache.commons.lang3.StringUtils
 *  org.apache.hc.client5.http.ConnectTimeoutException
 *  org.jaaslounge.decoding.kerberos.KerberosEncData
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.context.ApplicationContext
 */
package com.l7tech.server.policy.assertion;

import com.l7tech.common.http.GenericHttpClient;
import com.l7tech.common.http.GenericHttpClientFactory;
import com.l7tech.common.http.GenericHttpException;
import com.l7tech.common.http.GenericHttpHeader;
import com.l7tech.common.http.GenericHttpRequest;
import com.l7tech.common.http.GenericHttpRequestParams;
import com.l7tech.common.http.GenericHttpResponse;
import com.l7tech.common.http.GenericHttpState;
import com.l7tech.common.http.HttpConstants;
import com.l7tech.common.http.HttpHeader;
import com.l7tech.common.http.HttpHeaderUtil;
import com.l7tech.common.http.HttpHeaders;
import com.l7tech.common.http.HttpMethod;
import com.l7tech.common.http.HttpProxyConfig;
import com.l7tech.common.http.NtlmAuthentication;
import com.l7tech.common.http.prov.apache.components.AbortedSocketException;
import com.l7tech.common.http.prov.apache.components.HttpComponentsClient;
import com.l7tech.common.io.SSLSocketFactoryWrapper;
import com.l7tech.common.io.SingleCertX509KeyManager;
import com.l7tech.common.io.SslSocketUtil;
import com.l7tech.common.io.UncheckedIOException;
import com.l7tech.common.io.failover.AbstractFailoverStrategy;
import com.l7tech.common.io.failover.FailoverStrategy;
import com.l7tech.common.io.failover.FailoverStrategyFactory;
import com.l7tech.common.io.failover.StickyFailoverStrategy;
import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.common.password.Sha512Crypt;
import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.Messages;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.kerberos.KerberosClient;
import com.l7tech.kerberos.KerberosException;
import com.l7tech.kerberos.KerberosServiceTicket;
import com.l7tech.message.HasHeaders;
import com.l7tech.message.Header;
import com.l7tech.message.HttpRequestKnob;
import com.l7tech.message.Message;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.HttpPassthroughRuleSet;
import com.l7tech.policy.assertion.HttpRoutingAssertion;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.RoutingAssertionWithSamlSV;
import com.l7tech.policy.assertion.RoutingStatus;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.security.cert.TrustedCert;
import com.l7tech.security.cert.TrustedCertManager;
import com.l7tech.security.xml.SignerInfo;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.DefaultStashManagerFactory;
import com.l7tech.server.StashManagerFactory;
import com.l7tech.server.TelemetryMediatorFactory;
import com.l7tech.server.http.HttpStatePoolManager;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractServerAssertion;
import com.l7tech.server.policy.assertion.AbstractServerHttpRoutingAssertion;
import com.l7tech.server.policy.assertion.AssertionStatusException;
import com.l7tech.server.policy.assertion.RoutingResultListener;
import com.l7tech.server.policy.assertion.ServerMessageBufferingAssertion;
import com.l7tech.server.policy.assertion.t;
import com.l7tech.server.policy.assertion.w;
import com.l7tech.server.policy.assertion.y;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.policy.variable.ServerVariables;
import com.l7tech.server.security.kerberos.KerberosRoutingClient;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import com.l7tech.server.transport.http.DefaultHttpCiphers;
import com.l7tech.server.transport.http.HttpConnectionManagerListener;
import com.l7tech.server.transport.http.SslClientTrustManager;
import com.l7tech.server.util.ApplicationEventProxy;
import com.l7tech.server.util.IdentityBindingHttpClientFactory;
import com.l7tech.util.BuildInfo;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.Pair;
import com.l7tech.util.SyspropUtil;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.net.ConnectException;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.UnrecoverableKeyException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.logging.Level;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.zip.GZIPInputStream;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.wsdl.WSDLException;
import org.apache.commons.lang3.StringUtils;
import org.apache.hc.client5.http.ConnectTimeoutException;
import org.jaaslounge.decoding.kerberos.KerberosEncData;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.ApplicationContext;
import org.xml.sax.SAXException;

public final class ServerHttpRoutingAssertion
extends AbstractServerHttpRoutingAssertion<HttpRoutingAssertion> {
    public static final String PROP_ENABLE_STATE_POOL;
    public static final boolean ENABLE_STATE_POOL;
    public static final String SSL_DYNAMIC_INFO_CACHE_IDLE_TIMEOUT_PROPERTY;
    public static final long SSL_DYNAMIC_INFO_CACHE_IDLE_TIMEOUT_DEFAULT = 600000L;
    public static final String PROP_REFRESH_ROUTE_INFO_ON_KEY_CHANGES;
    public static final boolean REFRESH_ROUTE_INFO_ON_KEY_CHANGES;
    private static final int f = 1;
    private static final String g;
    private static final int h;
    private static final String i;
    private static final String j;
    private static final String k;
    private static final Goid l;
    private static final String m;
    public static final int HOST_NOT_FOUND = -1;
    public static final int BAD_URL = -2;
    public static final int CONNECTION_TIMEOUT = -3;
    public static final int READ_TIMEOUT = -4;
    public static final int UNDEFINED = -5;
    public static final int MAX_DURATION_EXCEEDED = -6;
    public static final String USER_AGENT;
    public static final String HOST;
    private static final boolean n;
    private static final Pattern o;
    private final Config p;
    private final StashManagerFactory q;
    private final HostnameVerifier r;
    private final FailoverStrategy<String> s;
    private final String[] t;
    private final int u;
    private final boolean v;
    private final boolean w;
    private final URL x;
    private final boolean y;
    private final String z;
    private final HttpStatePoolManager A;
    private final SslClientTrustManager B;
    private final SsgKeyStoreManager C;
    private final DefaultKey D;
    private final TrustedCertManager E;
    private final y F;
    private final boolean G;
    private final String H;
    private w I;
    @Inject
    @Named(value="telemetryMediatorFactory")
    TelemetryMediatorFactory telemetryMediatorFactory;
    private final Queue<Object> J;
    public static final String PRODUCT;
    public static final String DEFAULT_USER_AGENT;
    private static final String[] N;

    /*
     * Unable to fully structure code
     */
    public ServerHttpRoutingAssertion(HttpRoutingAssertion var1_1, ApplicationContext var2_2) throws PolicyAssertionException {
        block93: {
            block75: {
                block74: {
                    block73: {
                        block68: {
                            block72: {
                                block71: {
                                    block70: {
                                        block69: {
                                            block89: {
                                                block67: {
                                                    block66: {
                                                        block87: {
                                                            block86: {
                                                                block85: {
                                                                    block84: {
                                                                        block83: {
                                                                            block82: {
                                                                                block65: {
                                                                                    block78: {
                                                                                        block64: {
                                                                                            block80: {
                                                                                                block61: {
                                                                                                    block63: {
                                                                                                        block62: {
                                                                                                            block60: {
                                                                                                                block59: {
                                                                                                                    block58: {
                                                                                                                        super(var1_1, var2_2);
                                                                                                                        this.H = UUID.randomUUID().toString();
                                                                                                                        this.J = new ConcurrentLinkedQueue<Object>();
                                                                                                                        if (var1_1.getNtlmHost() != null) ** GOTO lbl7
                                                                                                                        if (!var1_1.isKrbDelegatedAuthentication()) break block58;
lbl7:
                                                                                                                        // 2 sources

                                                                                                                        try {
                                                                                                                            block76: {
                                                                                                                                if (var1_1.getProxyHost() == null) break block58;
                                                                                                                                break block76;
                                                                                                                                catch (MalformedURLException v0) {
                                                                                                                                    throw ServerHttpRoutingAssertion.a(v0);
                                                                                                                                }
                                                                                                                            }
                                                                                                                            throw new PolicyAssertionException((Assertion)var1_1, ServerHttpRoutingAssertion.N[72]);
                                                                                                                        }
                                                                                                                        catch (MalformedURLException v1) {
                                                                                                                            throw ServerHttpRoutingAssertion.a(v1);
                                                                                                                        }
                                                                                                                    }
                                                                                                                    this.p = (Config)var2_2.getBean(ServerHttpRoutingAssertion.N[10], Config.class);
                                                                                                                    this.B = (SslClientTrustManager)var2_2.getBean(ServerHttpRoutingAssertion.N[104], SslClientTrustManager.class);
                                                                                                                    this.C = (SsgKeyStoreManager)var2_2.getBean(ServerHttpRoutingAssertion.N[50], SsgKeyStoreManager.class);
                                                                                                                    this.D = (DefaultKey)var2_2.getBean(ServerHttpRoutingAssertion.N[75], DefaultKey.class);
                                                                                                                    this.E = (TrustedCertManager)var2_2.getBean(ServerHttpRoutingAssertion.N[49], TrustedCertManager.class);
                                                                                                                    if (var1_1.getCustomURLs() == null) break block59;
                                                                                                                    try {
                                                                                                                        block77: {
                                                                                                                            if (var1_1.getCustomURLs().length <= 0) break block59;
                                                                                                                            break block77;
                                                                                                                            catch (MalformedURLException v2) {
                                                                                                                                throw ServerHttpRoutingAssertion.a(v2);
                                                                                                                            }
                                                                                                                        }
                                                                                                                        v3 = true;
                                                                                                                        break block60;
                                                                                                                    }
                                                                                                                    catch (MalformedURLException v4) {
                                                                                                                        throw ServerHttpRoutingAssertion.a(v4);
                                                                                                                    }
                                                                                                                }
                                                                                                                v3 = this.y = false;
                                                                                                            }
                                                                                                            if (this.y) break block78;
                                                                                                            var3_3 = var1_1.getProtectedServiceUrl();
                                                                                                            if (var3_3 == null) break block61;
                                                                                                            try {
                                                                                                                block79: {
                                                                                                                    v5 = this;
                                                                                                                    if (var3_3.indexOf(ServerHttpRoutingAssertion.N[71]) <= -1) break block62;
                                                                                                                    break block79;
                                                                                                                    catch (MalformedURLException v6) {
                                                                                                                        throw ServerHttpRoutingAssertion.a(v6);
                                                                                                                    }
                                                                                                                }
                                                                                                                v7 = true;
                                                                                                                break block63;
                                                                                                            }
                                                                                                            catch (MalformedURLException v8) {
                                                                                                                throw ServerHttpRoutingAssertion.a(v8);
                                                                                                            }
                                                                                                        }
                                                                                                        v7 = false;
                                                                                                    }
                                                                                                    v5.v = v7;
                                                                                                    break block80;
                                                                                                }
                                                                                                var8_4 = ServerHttpRoutingAssertion.N;
                                                                                                this.logger.info(var8_4[90]);
                                                                                                this.v = false;
                                                                                            }
                                                                                            if (this.v) ** GOTO lbl69
                                                                                            try {
                                                                                                block81: {
                                                                                                    if (var1_1.getProtectedServiceUrl() != null) break block64;
                                                                                                    break block81;
                                                                                                    catch (MalformedURLException v9) {
                                                                                                        throw ServerHttpRoutingAssertion.a(v9);
                                                                                                    }
                                                                                                }
                                                                                                this.x = null;
                                                                                                break block65;
                                                                                            }
                                                                                            catch (MalformedURLException v10) {
                                                                                                throw ServerHttpRoutingAssertion.a(v10);
                                                                                            }
                                                                                        }
                                                                                        var4_5 = null;
                                                                                        try {
                                                                                            var4_5 = new URL(var1_1.getProtectedServiceUrl());
                                                                                        }
                                                                                        catch (MalformedURLException var5_7) {
                                                                                            var8_4 = ServerHttpRoutingAssertion.N;
                                                                                            this.logger.log(Level.WARNING, var8_4[107] + var5_7.getMessage(), ExceptionUtils.getDebugException((Throwable)var5_7));
                                                                                        }
                                                                                        this.x = var4_5;
                                                                                        break block65;
                                                                                    }
                                                                                    this.v = false;
                                                                                    this.x = null;
                                                                                }
                                                                                v11 = this;
                                                                                if (null == var1_1.getLogin()) ** GOTO lbl96
                                                                                if (Syntax.isAnyVariableReferenced((String)var1_1.getLogin())) ** GOTO lbl132
                                                                                break block82;
                                                                                catch (MalformedURLException v12) {
                                                                                    throw ServerHttpRoutingAssertion.a(v12);
                                                                                }
                                                                            }
                                                                            if (null == var1_1.getPassword()) ** GOTO lbl108
                                                                            break block83;
                                                                            catch (MalformedURLException v13) {
                                                                                throw ServerHttpRoutingAssertion.a(v13);
                                                                            }
                                                                        }
                                                                        if (Syntax.isAnyVariableReferenced((String)var1_1.getPassword())) ** GOTO lbl132
                                                                        break block84;
                                                                        catch (MalformedURLException v14) {
                                                                            throw ServerHttpRoutingAssertion.a(v14);
                                                                        }
                                                                    }
                                                                    if (null == var1_1.getRealm()) ** GOTO lbl120
                                                                    break block85;
                                                                    catch (MalformedURLException v15) {
                                                                        throw ServerHttpRoutingAssertion.a(v15);
                                                                    }
                                                                }
                                                                if (Syntax.isAnyVariableReferenced((String)var1_1.getRealm())) ** GOTO lbl132
                                                                break block86;
                                                                catch (MalformedURLException v16) {
                                                                    throw ServerHttpRoutingAssertion.a(v16);
                                                                }
                                                            }
                                                            if (null == var1_1.getNtlmHost()) break block66;
                                                            break block87;
                                                            catch (MalformedURLException v17) {
                                                                throw ServerHttpRoutingAssertion.a(v17);
                                                            }
                                                        }
                                                        try {
                                                            block88: {
                                                                if (!Syntax.isAnyVariableReferenced((String)var1_1.getNtlmHost())) break block66;
                                                                break block88;
                                                                catch (MalformedURLException v18) {
                                                                    throw ServerHttpRoutingAssertion.a(v18);
                                                                }
                                                            }
                                                            v19 = true;
                                                            break block67;
                                                        }
                                                        catch (MalformedURLException v20) {
                                                            throw ServerHttpRoutingAssertion.a(v20);
                                                        }
                                                    }
                                                    v19 = false;
                                                }
                                                v11.w = v19;
                                                this.r = (HostnameVerifier)this.applicationContext.getBean(ServerHttpRoutingAssertion.N[69], HostnameVerifier.class);
                                                this.F = com.l7tech.server.policy.assertion.y.getInstance(this.p, (ApplicationEventProxy)this.applicationContext.getBean(ServerHttpRoutingAssertion.N[94], ApplicationEventProxy.class));
                                                if (var1_1.isUsesDynamicPrivateKey()) ** GOTO lbl150
                                                if (var1_1.getDynamicCertificateVariable() == null) break block68;
                                                break block89;
                                                catch (MalformedURLException v21) {
                                                    throw ServerHttpRoutingAssertion.a(v21);
                                                }
                                            }
                                            try {
                                                block90: {
                                                    this.G = false;
                                                    v22 = this.logger;
                                                    v23 = Level.FINE;
                                                    v24 = ServerHttpRoutingAssertion.N[32];
                                                    v25 = new String[2];
                                                    v26 = v25;
                                                    v27 = v25;
                                                    v28 = 0;
                                                    if (!var1_1.isUsesDynamicPrivateKey()) break block69;
                                                    break block90;
                                                    catch (MalformedURLException v29) {
                                                        throw ServerHttpRoutingAssertion.a(v29);
                                                    }
                                                }
                                                v30 = ServerHttpRoutingAssertion.N[7];
                                                break block70;
                                            }
                                            catch (MalformedURLException v31) {
                                                throw ServerHttpRoutingAssertion.a(v31);
                                            }
                                        }
                                        var8_4 = ServerHttpRoutingAssertion.N;
                                        v30 = var8_4[48];
                                    }
                                    try {
                                        v26[v28] = v30;
                                        v32 = v27;
                                        v33 = v27;
                                        v34 = 1;
                                        if (var1_1.getDynamicCertificateVariable() == null) break block71;
                                        v35 = ServerHttpRoutingAssertion.N[53];
                                        break block72;
                                    }
                                    catch (MalformedURLException v36) {
                                        throw ServerHttpRoutingAssertion.a(v36);
                                    }
                                }
                                var8_4 = ServerHttpRoutingAssertion.N;
                                v35 = var8_4[59];
                            }
                            v32[v34] = v35;
                            v22.log(v23, v24, v33);
                            break block74;
                        }
                        this.G = true;
                        var3_3 = this.a(var1_1);
                        if (!ServerHttpRoutingAssertion.REFRESH_ROUTE_INFO_ON_KEY_CHANGES) break block73;
                        try {
                            block91: {
                                if (var3_3.c == null) break block73;
                                break block91;
                                catch (MalformedURLException v37) {
                                    throw ServerHttpRoutingAssertion.a(v37);
                                }
                            }
                            this.F.getCache().put((Object)this.H, var3_3);
                            break block74;
                        }
                        catch (MalformedURLException v38) {
                            throw ServerHttpRoutingAssertion.a(v38);
                        }
                    }
                    this.I = var3_3;
                }
                try {
                    var8_4 = ServerHttpRoutingAssertion.N;
                    var3_3 = (StashManagerFactory)this.applicationContext.getBean(var8_4[44], StashManagerFactory.class);
                }
                catch (Exception var4_6) {
                    var8_4 = ServerHttpRoutingAssertion.N;
                    this.logger.log(Level.WARNING, var8_4[54], var4_6);
                    var3_3 = DefaultStashManagerFactory.getInstance();
                }
                this.q = var3_3;
                var4_5 = var1_1.getCustomIpAddresses();
                if (var4_5 == null) break block75;
                try {
                    block92: {
                        if (var4_5.length <= 0) break block75;
                        break block92;
                        catch (MalformedURLException v39) {
                            throw ServerHttpRoutingAssertion.a(v39);
                        }
                    }
                    if (!this.areValidUrlHostnames((String[])var4_5)) break block75;
                }
                catch (MalformedURLException v40) {
                    throw ServerHttpRoutingAssertion.a(v40);
                }
                var5_8 = var1_1.getFailoverStrategyName();
                try {
                    var6_10 = FailoverStrategyFactory.createFailoverStrategy((String)var5_8, (Object[])var4_5);
                }
                catch (IllegalArgumentException var7_12) {
                    this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_BAD_STRATEGY_NAME, new String[]{var5_8}, var7_12);
                    var6_10 = new StickyFailoverStrategy(var4_5);
                }
                this.s = AbstractFailoverStrategy.makeSynchronized((FailoverStrategy)var6_10);
                this.u = var4_5.length;
                break block93;
            }
            if (this.y) {
                var5_9 = var1_1.getFailoverStrategyName();
                try {
                    var6_11 = FailoverStrategyFactory.createFailoverStrategy((String)var5_9, (Object[])var1_1.getCustomURLs());
                }
                catch (IllegalArgumentException var7_13) {
                    this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_BAD_STRATEGY_NAME, new String[]{var5_9}, var7_13);
                    var6_11 = new StickyFailoverStrategy((Object[])var1_1.getCustomURLs());
                }
                this.s = AbstractFailoverStrategy.makeSynchronized((FailoverStrategy)var6_11);
                this.u = var1_1.getCustomURLs().length;
            } else {
                this.s = null;
                this.u = 1;
            }
        }
        this.t = var1_1.getVariablesUsed();
        this.z = Sha512Crypt.generateSalt((SecureRandom)new SecureRandom(), (int)0);
        this.A = (HttpStatePoolManager)this.applicationContext.getBean(ServerHttpRoutingAssertion.N[85], HttpStatePoolManager.class);
    }

    private GenericHttpClientFactory a() {
        GenericHttpClientFactory genericHttpClientFactory;
        try {
            genericHttpClientFactory = this.b();
        }
        catch (Exception exception) {
            this.logAndAudit((AuditDetailMessage)Messages.EXCEPTION_WARNING_WITH_MORE_INFO, new String[]{N[60]}, exception);
            genericHttpClientFactory = new IdentityBindingHttpClientFactory();
        }
        return genericHttpClientFactory;
    }

    private SignerInfo a(HttpRoutingAssertion httpRoutingAssertion, String string) throws IOException, UnrecoverableKeyException, FindException, KeyStoreException {
        String string2;
        Goid goid;
        try {
            if (httpRoutingAssertion.isUsesNoKey()) {
                return null;
            }
        }
        catch (IOException iOException) {
            throw ServerHttpRoutingAssertion.a(iOException);
        }
        try {
            if (httpRoutingAssertion.isUsesDefaultKeyStore()) {
                return this.D.getLatestClientSslInfo();
            }
        }
        catch (IOException iOException) {
            throw ServerHttpRoutingAssertion.a(iOException);
        }
        if (httpRoutingAssertion.isUsesDynamicPrivateKey()) {
            String[] stringArray = N;
            this.logger.log(Level.INFO, stringArray[98], string);
            int n2 = string.indexOf(58);
            if (n2 != -1) {
                goid = Goid.parseGoid((String)string.substring(0, n2));
                string2 = string.substring(n2 + 1);
            } else {
                goid = l;
                string2 = string;
            }
        } else {
            goid = httpRoutingAssertion.getNonDefaultKeystoreId();
            string2 = httpRoutingAssertion.getKeyAlias();
        }
        try {
            if (string2 == null) {
                throw new IllegalStateException(N[66]);
            }
        }
        catch (IOException iOException) {
            throw ServerHttpRoutingAssertion.a(iOException);
        }
        SsgKeyEntry ssgKeyEntry = this.C.lookupKeyByKeyAlias(string2, goid);
        return new SignerInfo(ssgKeyEntry.getPrivateKey(), ssgKeyEntry.getCertificateChain());
    }

    private SSLContext a(HttpRoutingAssertion httpRoutingAssertion, SignerInfo signerInfo, Map<Goid, TrustedCert> map) throws NoSuchAlgorithmException, KeyManagementException, UnrecoverableKeyException {
        KeyManager[] keyManagerArray;
        SSLContext sSLContext;
        X509TrustManager x509TrustManager;
        SSLContext sSLContext2;
        block7: {
            block6: {
                SingleCertX509KeyManager singleCertX509KeyManager;
                String[] stringArray = N;
                sSLContext2 = SSLContext.getInstance(stringArray[40]);
                try {
                    SingleCertX509KeyManager singleCertX509KeyManager2 = singleCertX509KeyManager = signerInfo != null ? new SingleCertX509KeyManager(signerInfo.getCertificateChain(), signerInfo.getPrivate()) : null;
                }
                catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                    throw ServerHttpRoutingAssertion.a(noSuchAlgorithmException);
                }
                if (map != null) {
                    this.logger.log(Level.INFO, N[24], map.values().stream().map(TrustedCert::getName).collect(Collectors.toList()));
                    x509TrustManager = this.B.createTrustManagerWithCustomTrustedCerts(map.keySet());
                } else {
                    x509TrustManager = httpRoutingAssertion.getTlsTrustedCertGoids() != null ? this.B.createTrustManagerWithCustomTrustedCerts(new HashSet<Goid>(List.of(httpRoutingAssertion.getTlsTrustedCertGoids()))) : this.B;
                }
                try {
                    sSLContext = sSLContext2;
                    if (singleCertX509KeyManager == null) break block6;
                    KeyManager[] keyManagerArray2 = new KeyManager[1];
                    keyManagerArray = keyManagerArray2;
                    keyManagerArray2[0] = singleCertX509KeyManager;
                    break block7;
                }
                catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                    throw ServerHttpRoutingAssertion.a(noSuchAlgorithmException);
                }
            }
            keyManagerArray = null;
        }
        sSLContext.init(keyManagerArray, new TrustManager[]{x509TrustManager}, null);
        int n2 = ConfigFactory.getIntProperty((String)HttpRoutingAssertion.PROP_SSL_SESSION_TIMEOUT, (int)600);
        sSLContext2.getClientSessionContext().setSessionTimeout(n2);
        int n3 = ConfigFactory.getIntProperty((String)HttpRoutingAssertion.PROP_SSL_SESSION_CACHE_SIZE, (int)10000);
        sSLContext2.getClientSessionContext().setSessionCacheSize(n3);
        return sSLContext2;
    }

    /*
     * Unable to fully structure code
     */
    private Map<Goid, TrustedCert> a(String var1_1) {
        var2_2 = new LinkedHashMap<Goid, TrustedCert>();
        var3_3 = ServerHttpRoutingAssertion.o.split(var1_1.trim());
        var11_4 = ServerHttpRoutingAssertion.N;
        this.logger.log(Level.FINE, var11_4[37], var1_1);
        for (String var7_8 : var3_3) {
            try {
                block8: {
                    var8_9 = this.E.findByName(var7_8);
                    if (var8_9 == null) ** GOTO lbl15
                    try {
                        block9: {
                            if (!var8_9.isEmpty()) break block8;
                            break block9;
                            catch (FindException v0) {
                                throw ServerHttpRoutingAssertion.a((Exception)v0);
                            }
                        }
                        this.logger.log(Level.WARNING, ServerHttpRoutingAssertion.N[0], var7_8);
                        continue;
                    }
                    catch (FindException v1) {
                        throw ServerHttpRoutingAssertion.a((Exception)v1);
                    }
                }
                for (TrustedCert var10_12 : var8_9) {
                    var2_2.put(var10_12.getGoid(), var10_12);
                }
            }
            catch (FindException var8_10) {
                this.logger.log(Level.WARNING, ServerHttpRoutingAssertion.N[87], var7_8);
            }
        }
        return var2_2;
    }

    private SSLSocketFactory a(SSLContext sSLContext) {
        SSLSocketFactory sSLSocketFactory = sSLContext.getSocketFactory();
        String[] stringArray = SslSocketUtil.filterSelectedTLSVersion((String)((HttpRoutingAssertion)this.assertion).getTlsVersion(), (Set)SslSocketUtil.DEFAULT_SUPPORTED_TLS_VERSIONS);
        if (stringArray.length == 0) {
            stringArray = SslSocketUtil.DEFAULT_SUPPORTED_TLS_VERSIONS_ARRAY;
        }
        String[] stringArray2 = this.b(((HttpRoutingAssertion)this.assertion).getTlsCipherSuites());
        return SSLSocketFactoryWrapper.wrapAndSetTlsVersionAndCipherSuites((SSLSocketFactory)sSLSocketFactory, (String[])stringArray, (String[])stringArray2);
    }

    private w a(HttpRoutingAssertion httpRoutingAssertion, String string, Map<Goid, TrustedCert> map) {
        try {
            boolean bl2;
            SignerInfo signerInfo = this.a(httpRoutingAssertion, string);
            SSLContext sSLContext = this.a(httpRoutingAssertion, signerInfo, map);
            try {
                bl2 = this.d() == GenericHttpRequestParams.HttpVersion.HTTP_VERSION_1_0;
            }
            catch (Exception exception) {
                throw ServerHttpRoutingAssertion.a(exception);
            }
            boolean bl3 = bl2;
            return com.l7tech.server.policy.assertion.w.a().a(signerInfo).a(sSLContext).a(this.a(sSLContext)).a(bl3).a(this.a()).a();
        }
        catch (Exception exception) {
            throw new RouteInfoException(N[14] + exception.getMessage(), exception);
        }
    }

    private w b(HttpRoutingAssertion httpRoutingAssertion, String string, Map<Goid, TrustedCert> map) {
        try {
            return this.a(httpRoutingAssertion, string, map);
        }
        catch (RuntimeException runtimeException) {
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_SSL_INIT_FAILED, null, ExceptionUtils.getDebugException((Throwable)runtimeException));
            this.logAndAudit((AuditDetailMessage)Messages.EXCEPTION_WARNING_WITH_MORE_INFO, new String[]{N[91] + ExceptionUtils.getMessage((Throwable)runtimeException)}, (Throwable)null);
            return com.l7tech.server.policy.assertion.w.a().a(this.a()).a();
        }
    }

    private w a(HttpRoutingAssertion httpRoutingAssertion) {
        return this.b(httpRoutingAssertion, null, null);
    }

    private w a(Map<String, ?> map) {
        String string2;
        String string4;
        block10: {
            block9: {
                try {
                    if (this.G) {
                        return (w)this.F.getCache().get((Object)this.H, string -> this.a((HttpRoutingAssertion)this.assertion));
                    }
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
                try {
                    try {
                        if (!((HttpRoutingAssertion)this.assertion).isUsesDynamicPrivateKey() || ((HttpRoutingAssertion)this.assertion).getDynamicPrivateKeyVariable() == null) break block9;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                    }
                    string4 = ExpandVariables.process(((HttpRoutingAssertion)this.assertion).getDynamicPrivateKeyVariable(), map, this.getAudit());
                    break block10;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
            }
            string4 = null;
        }
        String string5 = string4;
        try {
            string2 = ((HttpRoutingAssertion)this.assertion).getDynamicCertificateVariable() != null ? ExpandVariables.process(((HttpRoutingAssertion)this.assertion).getDynamicCertificateVariable(), map, this.getAudit()) : null;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        String string6 = string2;
        String string7 = this.H + string5 + string6;
        return (w)this.F.getCache().get((Object)string7, string3 -> {
            Map<Goid, TrustedCert> map;
            String string4;
            HttpRoutingAssertion httpRoutingAssertion;
            ServerHttpRoutingAssertion serverHttpRoutingAssertion;
            try {
                serverHttpRoutingAssertion = this;
                httpRoutingAssertion = (HttpRoutingAssertion)this.assertion;
                string4 = string5;
                map = string6 != null ? this.a(string6) : null;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
            return serverHttpRoutingAssertion.b(httpRoutingAssertion, string4, map);
        });
    }

    private String[] b(String string) {
        if (string == null) {
            string = DefaultHttpCiphers.getDefaultEnabledOutboundCipherSuites();
        }
        String[] stringArray = o.split(string.trim() + "," + SslSocketUtil.TLS_EMPTY_RENEGOTIATION_INFO_SCSV);
        return stringArray;
    }

    private GenericHttpClientFactory b() {
        boolean bl2;
        block6: {
            block7: {
                boolean bl3;
                String string = ((HttpRoutingAssertion)this.assertion).getProxyHost();
                try {
                    bl3 = this.d() == GenericHttpRequestParams.HttpVersion.HTTP_VERSION_1_0;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
                bl2 = bl3;
                try {
                    try {
                        if (string != null) break block6;
                        if (!bl2) break block7;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                    }
                    return (GenericHttpClientFactory)this.applicationContext.getBean(N[38], GenericHttpClientFactory.class);
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
            }
            String[] stringArray = N;
            return (GenericHttpClientFactory)this.applicationContext.getBean(stringArray[5], GenericHttpClientFactory.class);
        }
        HttpConnectionManagerListener httpConnectionManagerListener = (HttpConnectionManagerListener)this.applicationContext.getBean(N[76], HttpConnectionManagerListener.class);
        return new t(this, bl2, httpConnectionManagerListener);
    }

    void a(GenericHttpClientFactory genericHttpClientFactory) {
        block5: {
            w w2;
            block4: {
                w2 = (w)this.F.getCache().getIfPresent((Object)this.H);
                try {
                    if (this.I == null) break block4;
                    this.I = com.l7tech.server.policy.assertion.w.a().a(this.I.getSignerInfo()).a(this.I.getSslContext()).a(this.I.getSslSocketFactory()).a(genericHttpClientFactory).a();
                    break block5;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
            }
            if (w2 != null) {
                w2 = com.l7tech.server.policy.assertion.w.a().a(w2.getSignerInfo()).a(w2.getSslContext()).a(w2.getSslSocketFactory()).a(genericHttpClientFactory).a();
                this.F.getCache().put((Object)this.H, (Object)w2);
            } else {
                this.I = com.l7tech.server.policy.assertion.w.a().a(genericHttpClientFactory).a();
            }
        }
    }

    /*
     * Loose catch block
     */
    @Override
    public AssertionStatus checkRequest(PolicyEnforcementContext policyEnforcementContext) throws IOException, PolicyAssertionException {
        Message message = this.b(policyEnforcementContext);
        Map<String, Object> map = policyEnforcementContext.getVariableMap(this.t, this.getAudit());
        URL uRL = null;
        try {
            Object object;
            boolean bl2;
            w w2;
            try {
                policyEnforcementContext.routingStarted();
                policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_REASON_CODE, -5);
                w2 = this.I != null ? this.I : this.a(map);
            }
            catch (WSDLException wSDLException) {
                throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
            }
            w w3 = w2;
            try {
                bl2 = this.d() == GenericHttpRequestParams.HttpVersion.HTTP_VERSION_1_0;
            }
            catch (WSDLException wSDLException) {
                throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
            }
            boolean bl3 = bl2;
            try {
                if (w3.isUseHttp10() != bl3) {
                    this.a(w3, bl3);
                }
            }
            catch (WSDLException wSDLException) {
                throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
            }
            if (!this.y) {
                object = policyEnforcementContext.getService();
                try {
                    uRL = this.a((PublishedService)object, map);
                }
                catch (WSDLException wSDLException) {
                    this.logAndAudit((AuditDetailMessage)AssertionMessages.EXCEPTION_SEVERE, null, wSDLException);
                    AssertionStatus assertionStatus = AssertionStatus.FAILED;
                    policyEnforcementContext.routingFinished();
                    return assertionStatus;
                }
                catch (MalformedURLException malformedURLException) {
                    this.a(policyEnforcementContext, malformedURLException);
                    String[] stringArray = new String[1];
                    String[] stringArray2 = N;
                    stringArray[0] = stringArray2[83] + ExceptionUtils.getMessage((Throwable)malformedURLException);
                    this.logAndAudit((AuditDetailMessage)AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO, stringArray, ExceptionUtils.getDebugException((Throwable)malformedURLException));
                    AssertionStatus assertionStatus = AssertionStatus.FAILED;
                    policyEnforcementContext.routingFinished();
                    return assertionStatus;
                }
                this.firePreRouting(policyEnforcementContext, message, uRL);
                if (this.s == null) {
                    AssertionStatus assertionStatus = this.a(policyEnforcementContext, message, uRL, w3);
                    return assertionStatus;
                }
            }
            object = null;
            ArrayList<String> arrayList = new ArrayList<String>();
            for (int i2 = 0; i2 < this.u; ++i2) {
                String string;
                String string2 = (String)this.s.selectService();
                try {
                    if (string2 == null) {
                        break;
                    }
                }
                catch (WSDLException wSDLException) {
                    throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
                }
                try {
                    if (object != null) {
                        this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_FAILOVER_FROM_TO, new String[]{object, string2});
                    }
                }
                catch (WSDLException wSDLException) {
                    throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
                }
                try {
                    string = string2.indexOf(N[71]) > -1 ? ExpandVariables.process(string2, map, this.getAudit()) : string2;
                }
                catch (WSDLException wSDLException) {
                    throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
                }
                String string3 = string;
                URL uRL2 = this.y ? new URL(string3) : new URL(uRL.getProtocol(), string3, uRL.getPort(), uRL.getFile());
                AssertionStatus assertionStatus = this.a(policyEnforcementContext, message, uRL2, w3);
                if (assertionStatus == AssertionStatus.NONE) {
                    this.s.reportSuccess((Object)string2);
                    policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlBlacklist(), arrayList.toArray(new String[arrayList.size()]));
                    AssertionStatus assertionStatus2 = assertionStatus;
                    return assertionStatus2;
                }
                object = string2;
                arrayList.add(string3);
                this.s.reportFailure((Object)string2);
            }
            policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlBlacklist(), arrayList.toArray(new String[arrayList.size()]));
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_TOO_MANY_ATTEMPTS);
            AssertionStatus assertionStatus = AssertionStatus.FAILED;
            return assertionStatus;
            {
                catch (FindException findException) {
                    throw new PolicyAssertionException(this.assertion, (Throwable)findException);
                }
                catch (Throwable throwable) {
                    throw throwable;
                }
            }
        }
        finally {
            policyEnforcementContext.routingFinished();
        }
    }

    private synchronized void a(w w2, boolean bl2) {
        try {
            if (w2.isUseHttp10() != bl2) {
                w2.d = this.a();
                w2.e = bl2;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
    }

    private String a(PolicyEnforcementContext policyEnforcementContext, String string) {
        String string2;
        AbstractServerAssertion.VariableExpander variableExpander = this.getVariableExpander(policyEnforcementContext);
        try {
            string2 = Syntax.isAnyVariableReferenced((String)string) ? variableExpander.expandVariables(string) : string;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        return string2;
    }

    private int b(PolicyEnforcementContext policyEnforcementContext, String string) throws NumberFormatException {
        try {
            return Integer.parseInt(this.a(policyEnforcementContext, string));
        }
        catch (NumberFormatException numberFormatException) {
            this.logAndAudit((AuditDetailMessage)AssertionMessages.SET_VARIABLE_UNABLE_TO_PARSE_INTEGER, new String[]{((HttpRoutingAssertion)this.assertion).getProxyPort()}, numberFormatException);
            throw numberFormatException;
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Could not resolve type clashes
     * Loose catch block
     */
    private AssertionStatus a(PolicyEnforcementContext policyEnforcementContext, Message message, URL uRL, w w2) throws PolicyAssertionException, FindException {
        policyEnforcementContext.setRoutingStatus(RoutingStatus.ATTEMPTED);
        policyEnforcementContext.setRoutedServiceUrl(uRL);
        this.c(policyEnforcementContext);
        Throwable throwable = null;
        try {
            boolean bl2;
            Object object;
            Map<String, Object> map;
            GenericHttpRequestParams genericHttpRequestParams;
            block79: {
                block78: {
                    block75: {
                        String string;
                        String string2;
                        String[] stringArray;
                        block77: {
                            block76: {
                                block84: {
                                    KerberosEncData kerberosEncData;
                                    block73: {
                                        block74: {
                                            HttpRequestKnob httpRequestKnob;
                                            block72: {
                                                block69: {
                                                    String string3;
                                                    String string4;
                                                    block70: {
                                                        String string5;
                                                        String string6;
                                                        block71: {
                                                            block81: {
                                                                String string7;
                                                                block68: {
                                                                    block67: {
                                                                        block66: {
                                                                            genericHttpRequestParams = new GenericHttpRequestParams(uRL);
                                                                            genericHttpRequestParams.setSslSocketFactory(w2.getSslSocketFactory());
                                                                            genericHttpRequestParams.setSslContext(w2.getSslContext());
                                                                            String[] stringArray2 = SslSocketUtil.filterSelectedTLSVersion((String)((HttpRoutingAssertion)this.assertion).getTlsVersion(), (Set)SslSocketUtil.DEFAULT_SUPPORTED_TLS_VERSIONS);
                                                                            if (stringArray2.length == 0) {
                                                                                stringArray2 = SslSocketUtil.DEFAULT_SUPPORTED_TLS_VERSIONS_ARRAY;
                                                                            }
                                                                            genericHttpRequestParams.setSupportedProtocols(stringArray2);
                                                                            String[] stringArray3 = this.b(((HttpRoutingAssertion)this.assertion).getTlsCipherSuites());
                                                                            try {
                                                                                genericHttpRequestParams.setSupportedCiphers(stringArray3);
                                                                                genericHttpRequestParams.setHostnameVerifier(this.r);
                                                                                if (((HttpRoutingAssertion)this.assertion).getMaxRetries() < 0) break block66;
                                                                                genericHttpRequestParams.setMaxRetries(((HttpRoutingAssertion)this.assertion).getMaxRetries());
                                                                                break block67;
                                                                            }
                                                                            catch (MalformedURLException malformedURLException) {
                                                                                throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                            }
                                                                        }
                                                                        genericHttpRequestParams.setMaxRetries(h);
                                                                    }
                                                                    genericHttpRequestParams.setForceIncludeRequestBody(((HttpRoutingAssertion)this.assertion).isForceIncludeRequestBody());
                                                                    this.handleProcessedSecurityHeader(message);
                                                                    string7 = ((HttpRoutingAssertion)this.assertion).getUserAgent();
                                                                    try {
                                                                        if (string7 != null && string7.length() != 0) break block68;
                                                                    }
                                                                    catch (MalformedURLException malformedURLException) {
                                                                        throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                    }
                                                                    string7 = DEFAULT_USER_AGENT;
                                                                }
                                                                genericHttpRequestParams.addExtraHeader((HttpHeader)new GenericHttpHeader(USER_AGENT, string7));
                                                                StringBuilder stringBuilder = new StringBuilder(uRL.getHost());
                                                                int n2 = uRL.getPort();
                                                                try {
                                                                    if (n2 != -1) {
                                                                        stringBuilder.append(":");
                                                                        stringBuilder.append(n2);
                                                                    }
                                                                }
                                                                catch (MalformedURLException malformedURLException) {
                                                                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                }
                                                                httpRequestKnob = (HttpRequestKnob)policyEnforcementContext.getRequest().getKnob(HttpRequestKnob.class);
                                                                try {
                                                                    if (((HttpRoutingAssertion)this.assertion).isTaiCredentialChaining()) {
                                                                        this.doTaiCredentialChaining(policyEnforcementContext.getDefaultAuthenticationContext(), genericHttpRequestParams, uRL);
                                                                    }
                                                                }
                                                                catch (MalformedURLException malformedURLException) {
                                                                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                }
                                                                string4 = ((HttpRoutingAssertion)this.assertion).getLogin();
                                                                string3 = ((HttpRoutingAssertion)this.assertion).getPassword();
                                                                string6 = ((HttpRoutingAssertion)this.assertion).getRealm();
                                                                string5 = ((HttpRoutingAssertion)this.assertion).getNtlmHost();
                                                                map = policyEnforcementContext.getVariableMap(this.t, this.getAudit());
                                                                if (string4 == null) break block69;
                                                                if (string4.length() <= 0) break block69;
                                                                break block81;
                                                                catch (MalformedURLException malformedURLException) {
                                                                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                }
                                                            }
                                                            try {
                                                                block82: {
                                                                    if (string3 == null) break block69;
                                                                    break block82;
                                                                    catch (MalformedURLException malformedURLException) {
                                                                        throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                    }
                                                                }
                                                                if (string3.length() <= 0) break block69;
                                                            }
                                                            catch (MalformedURLException malformedURLException) {
                                                                throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                            }
                                                            string4 = ExpandVariables.process(string4, map, this.getAudit());
                                                            string3 = ExpandVariables.process(string3, map, this.getAudit());
                                                            if (string6 != null) {
                                                                string6 = ExpandVariables.process(string6, map, this.getAudit());
                                                            }
                                                            if (string5 != null) {
                                                                string5 = ExpandVariables.process(string5, map, this.getAudit());
                                                            }
                                                            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_LOGIN_INFO, string4);
                                                            if (string6 == null) break block70;
                                                            try {
                                                                block83: {
                                                                    if (string6.length() <= 0) break block70;
                                                                    break block83;
                                                                    catch (MalformedURLException malformedURLException) {
                                                                        throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                                    }
                                                                }
                                                                if (string5 != null) break block71;
                                                            }
                                                            catch (MalformedURLException malformedURLException) {
                                                                throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                            }
                                                            stringArray = N;
                                                            string5 = ConfigFactory.getProperty((String)stringArray[52], null);
                                                        }
                                                        genericHttpRequestParams.setNtlmAuthentication(new NtlmAuthentication(string4, string3.toCharArray(), string6, string5));
                                                        break block69;
                                                    }
                                                    genericHttpRequestParams.setPreemptiveAuthentication(true);
                                                    genericHttpRequestParams.setPasswordAuthentication(new PasswordAuthentication(string4, string3.toCharArray()));
                                                    stringArray = N;
                                                    genericHttpRequestParams.setEnableAutoChallenge(this.p.getBooleanProperty(stringArray[1], false));
                                                }
                                                try {
                                                    if (!((HttpRoutingAssertion)this.assertion).isAttachSamlSenderVouches()) break block72;
                                                    this.doAttachSamlSenderVouches((RoutingAssertionWithSamlSV)this.assertion, message, policyEnforcementContext.getDefaultAuthenticationContext().getLastCredentials(), w2.getSignerInfo());
                                                    break block73;
                                                }
                                                catch (MalformedURLException malformedURLException) {
                                                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                                                }
                                            }
                                            try {
                                                if (!((HttpRoutingAssertion)this.assertion).isPassthroughHttpAuthentication() || httpRequestKnob == null) break block73;
                                            }
                                            catch (MalformedURLException malformedURLException) {
                                                throw ServerHttpRoutingAssertion.a(malformedURLException);
                                            }
                                            kerberosEncData = httpRequestKnob.getHeaderValues(HttpConstants.HEADER_AUTHORIZATION);
                                            boolean bl3 = false;
                                            if (((HttpRoutingAssertion)this.assertion).getRequestHeaderRules().isForwardAll()) {
                                                bl3 = true;
                                            } else {
                                                for (KerberosEncData kerberosEncData2 : kerberosEncData) {
                                                    bl3 = true;
                                                    genericHttpRequestParams.addExtraHeader((HttpHeader)new GenericHttpHeader(HttpConstants.HEADER_AUTHORIZATION, (String)kerberosEncData2));
                                                }
                                            }
                                            try {
                                                if (!bl3) break block74;
                                                this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_PASSTHROUGH_REQUEST);
                                                break block73;
                                            }
                                            catch (MalformedURLException malformedURLException) {
                                                throw ServerHttpRoutingAssertion.a(malformedURLException);
                                            }
                                        }
                                        this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_PASSTHROUGH_REQUEST_NC);
                                    }
                                    kerberosEncData = null;
                                    if (((HttpRoutingAssertion)this.assertion).isKrbDelegatedAuthentication()) {
                                        KerberosServiceTicket kerberosServiceTicket = this.getDelegatedKerberosTicket(policyEnforcementContext, uRL.getHost());
                                        kerberosEncData = kerberosServiceTicket.getEncData();
                                        this.a(kerberosServiceTicket, genericHttpRequestParams);
                                    } else if (((HttpRoutingAssertion)this.assertion).isKrbUseGatewayKeytab()) {
                                        KerberosRoutingClient kerberosRoutingClient = new KerberosRoutingClient();
                                        object = KerberosClient.getKerberosAcceptPrincipal((String)uRL.getProtocol(), (String)uRL.getHost(), (boolean)true);
                                        String string8 = KerberosClient.getServicePrincipalName((String)uRL.getProtocol(), (String)uRL.getHost());
                                        KerberosServiceTicket kerberosServiceTicket = kerberosRoutingClient.getKerberosServiceTicket(string8, (String)object, true);
                                        kerberosEncData = kerberosServiceTicket.getEncData();
                                        this.a(kerberosServiceTicket, genericHttpRequestParams);
                                    } else if (((HttpRoutingAssertion)this.assertion).getKrbConfiguredAccount() != null) {
                                        String string9;
                                        KerberosRoutingClient kerberosRoutingClient = new KerberosRoutingClient();
                                        object = ExpandVariables.process(((HttpRoutingAssertion)this.assertion).getKrbConfiguredAccount(), map, this.getAudit());
                                        String string10 = ((HttpRoutingAssertion)this.assertion).getKrbConfiguredPassword();
                                        try {
                                            string9 = string10 == null ? null : ExpandVariables.process(string10, map, this.getAudit());
                                        }
                                        catch (MalformedURLException malformedURLException) {
                                            throw ServerHttpRoutingAssertion.a(malformedURLException);
                                        }
                                        string10 = string9;
                                        KerberosServiceTicket kerberosServiceTicket = kerberosRoutingClient.getKerberosServiceTicket(uRL, (String)object, string10);
                                        kerberosEncData = kerberosServiceTicket.getEncData();
                                        this.a(kerberosServiceTicket, genericHttpRequestParams);
                                    }
                                    try {
                                        if (kerberosEncData != null) {
                                            policyEnforcementContext.setVariable(HttpRoutingAssertion.KERBEROS_DATA, kerberosEncData);
                                        }
                                    }
                                    catch (MalformedURLException malformedURLException) {
                                        throw ServerHttpRoutingAssertion.a(malformedURLException);
                                    }
                                    string2 = ((HttpRoutingAssertion)this.assertion).getAuthOauthTokenVar();
                                    if (string2 == null) break block75;
                                    if (string2.trim().length() <= 0) break block75;
                                    break block84;
                                    catch (MalformedURLException malformedURLException) {
                                        throw ServerHttpRoutingAssertion.a(malformedURLException);
                                    }
                                }
                                try {
                                    block85: {
                                        if (!N[103].equals(((HttpRoutingAssertion)this.assertion).getAuthOauthVersion())) break block76;
                                        break block85;
                                        catch (MalformedURLException malformedURLException) {
                                            throw ServerHttpRoutingAssertion.a(malformedURLException);
                                        }
                                    }
                                    string = N[67];
                                    break block77;
                                }
                                catch (MalformedURLException malformedURLException) {
                                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                                }
                            }
                            stringArray = N;
                            string = stringArray[101];
                        }
                        object = string;
                        stringArray = N;
                        String string11 = ExpandVariables.process((String)object + stringArray[33] + string2 + "}", map, this.getAudit());
                        genericHttpRequestParams.addExtraHeader((HttpHeader)new GenericHttpHeader(stringArray[36], string11));
                    }
                    if (this.d() != GenericHttpRequestParams.HttpVersion.HTTP_VERSION_1_0) break block78;
                    try {
                        block86: {
                            if (!((HttpRoutingAssertion)this.assertion).isOmitHostHeader()) break block78;
                            break block86;
                            catch (MalformedURLException malformedURLException) {
                                throw ServerHttpRoutingAssertion.a(malformedURLException);
                            }
                        }
                        bl2 = true;
                        break block79;
                    }
                    catch (MalformedURLException malformedURLException) {
                        throw ServerHttpRoutingAssertion.a(malformedURLException);
                    }
                }
                bl2 = false;
            }
            genericHttpRequestParams.setOmitHostHeader(bl2);
            object = this.a(policyEnforcementContext, message, genericHttpRequestParams, uRL, true, map, w2);
            return object;
        }
        catch (MalformedURLException malformedURLException) {
            throwable = malformedURLException;
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_GENERIC_PROBLEM, uRL.toString(), ExceptionUtils.getMessage((Throwable)throwable));
            String[] stringArray = N;
            this.logger.log(Level.FINEST, stringArray[100] + throwable.getMessage(), throwable);
        }
        catch (IOException iOException) {
            throwable = iOException;
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_GENERIC_PROBLEM, uRL.toString(), ExceptionUtils.getMessage((Throwable)throwable));
            String[] stringArray = N;
            this.logger.log(Level.FINEST, stringArray[62] + throwable.getMessage(), throwable);
        }
        catch (SAXException sAXException) {
            throwable = sAXException;
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_GENERIC_PROBLEM, uRL.toString(), ExceptionUtils.getMessage((Throwable)throwable));
            String[] stringArray = N;
            this.logger.log(Level.FINEST, stringArray[62] + throwable.getMessage(), throwable);
        }
        catch (GeneralSecurityException generalSecurityException) {
            throwable = generalSecurityException;
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_GENERIC_PROBLEM, uRL.toString(), ExceptionUtils.getMessage((Throwable)throwable));
            String[] stringArray = N;
            this.logger.log(Level.FINEST, stringArray[62] + throwable.getMessage(), throwable);
        }
        catch (KerberosException kerberosException) {
            throwable = kerberosException;
            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_USING_KERBEROS_ERROR, ExceptionUtils.getMessage((Throwable)throwable));
            this.logger.log(Level.FINEST, N[62] + throwable.getMessage(), throwable);
        }
        finally {
            if (policyEnforcementContext.getRoutingStatus() != RoutingStatus.ROUTED) {
                RoutingResultListener routingResultListener = policyEnforcementContext.getRoutingResultListener();
                routingResultListener.failed(uRL, throwable, policyEnforcementContext);
            }
        }
        return AssertionStatus.FAILED;
    }

    private Pair<HttpMethod, String> a(PolicyEnforcementContext policyEnforcementContext, Map<String, ?> map, GenericHttpRequestParams genericHttpRequestParams) {
        HttpMethod httpMethod = ((HttpRoutingAssertion)this.assertion).getHttpMethod();
        if (httpMethod != null) {
            String string;
            block13: {
                string = ((HttpRoutingAssertion)this.assertion).getHttpMethodAsString();
                if (string != null) {
                    string = ExpandVariables.process(string, map, this.getAudit());
                    HttpMethod httpMethod2 = HttpMethod.valueOfHttpMethod((String)string);
                    try {
                        if (httpMethod2 == null || HttpMethod.OTHER.equals((Object)httpMethod2)) break block13;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                    }
                    httpMethod = httpMethod2;
                    string = null;
                }
            }
            return new Pair((Object)httpMethod, (Object)string);
        }
        try {
            if (((HttpRoutingAssertion)this.assertion).getRequestMsgSrc() != null) {
                this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_DEFAULT_METHOD_VAR);
                return new Pair((Object)HttpMethod.POST, null);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        try {
            if (!policyEnforcementContext.getRequest().isHttpRequest()) {
                this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_DEFAULT_METHOD_NON_HTTP);
                return new Pair((Object)HttpMethod.POST, null);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        HttpRequestKnob httpRequestKnob = policyEnforcementContext.getRequest().getHttpRequestKnob();
        HttpMethod httpMethod3 = httpRequestKnob.getMethod();
        try {
            if (httpMethod3 == null) {
                this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_UNEXPECTED_METHOD, N[43]);
                return new Pair((Object)HttpMethod.POST, null);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        return new Pair((Object)httpMethod3, (Object)httpRequestKnob.getMethodAsString());
    }

    /*
     * Exception decompiling
     */
    private AssertionStatus a(PolicyEnforcementContext var1_1, Message var2_2, GenericHttpRequestParams var3_3, URL var4_4, boolean var5_5, Map<String, ?> var6_6, w var7_7) throws PolicyAssertionException, FindException {
        /*
         * 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: Started 4 blocks at once
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.getStartingBlocks(Op04StructuredStatement.java:412)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:487)
         *     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");
    }

    /*
     * Loose catch block
     */
    Pair<Object, HttpStatePoolManager.HttpStateCacheKey> a(PolicyEnforcementContext policyEnforcementContext, GenericHttpRequestParams genericHttpRequestParams, URL uRL) {
        boolean bl2;
        HttpStatePoolManager.HttpStateCacheKey httpStateCacheKey;
        Object object;
        block11: {
            object = null;
            httpStateCacheKey = null;
            bl2 = policyEnforcementContext.getRequest().isHttpRequest();
            try {
                if (!((HttpRoutingAssertion)this.assertion).isPassthroughHttpAuthentication() || !bl2) break block11;
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                throw ServerHttpRoutingAssertion.a(noSuchAlgorithmException);
            }
            object = policyEnforcementContext.getRequest().getHttpRequestKnob().getConnectionIdentifier();
        }
        for (HttpHeader httpHeader : genericHttpRequestParams.getExtraHeaders()) {
            block12: {
                try {
                    if (!HttpConstants.HEADER_AUTHORIZATION.equalsIgnoreCase(httpHeader.getName())) continue;
                    if (!bl2) break block12;
                }
                catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                    throw ServerHttpRoutingAssertion.a(noSuchAlgorithmException);
                }
                object = policyEnforcementContext.getRequest().getHttpRequestKnob().getConnectionIdentifier();
            }
            if (httpHeader.getFullValue() == null) break;
            try {
                block13: {
                    if (httpHeader.getFullValue().startsWith(HttpComponentsClient.NTLM_SCHEME)) break;
                    break block13;
                    catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                        throw ServerHttpRoutingAssertion.a(noSuchAlgorithmException);
                    }
                }
                if (httpHeader.getFullValue().startsWith(HttpComponentsClient.NEGOTIATE_SCHEME)) break;
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                throw ServerHttpRoutingAssertion.a(noSuchAlgorithmException);
            }
            try {
                httpStateCacheKey = this.c() ? this.a(uRL, "".getBytes(StandardCharsets.UTF_8)) : this.a(uRL, httpHeader.getFullValue().getBytes(StandardCharsets.UTF_8));
                object = httpStateCacheKey;
            }
            catch (NoSuchAlgorithmException noSuchAlgorithmException) {
                this.logger.log(Level.WARNING, ExceptionUtils.getDebugException((Throwable)noSuchAlgorithmException), () -> N[22]);
            }
            break;
        }
        return new Pair(object, httpStateCacheKey);
    }

    private boolean c() {
        try {
            if (((HttpRoutingAssertion)this.assertion).getOmitAuthHeaderConnectReuseSystemDefault() == null) {
                return false;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        try {
            if (((HttpRoutingAssertion)this.assertion).getOmitAuthHeaderConnectReuseSystemDefault().booleanValue()) {
                return this.p.getBooleanProperty(N[18], false);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
        }
        return ((HttpRoutingAssertion)this.assertion).getOmitAuthHeaderConnectReuse();
    }

    @NotNull
    HttpStatePoolManager.HttpStateCacheKey a(URL uRL, byte[] byArray) throws NoSuchAlgorithmException {
        String string;
        String[] stringArray;
        String string2;
        int n2 = uRL.getPort();
        if (n2 <= 0) {
            n2 = uRL.getDefaultPort();
        }
        if (!this.c(string2 = this.p.getProperty((stringArray = N)[16], stringArray[30]))) {
            this.logger.log(Level.WARNING, () -> {
                String[] stringArray = N;
                return stringArray[21] + string2 + stringArray[28];
            });
            string = stringArray[23];
        } else {
            string = string2;
        }
        this.logger.log(Level.FINE, () -> {
            String[] stringArray = N;
            return stringArray[102] + string + stringArray[15];
        });
        MessageDigest messageDigest = MessageDigest.getInstance(string);
        messageDigest.update(this.z.getBytes(StandardCharsets.UTF_8));
        byte[] byArray2 = messageDigest.digest(byArray);
        return new HttpStatePoolManager.HttpStateCacheKey(n2, uRL.getHost(), byArray2);
    }

    private boolean c(@NotNull String string) {
        boolean bl2;
        block11: {
            block10: {
                try {
                    if (string == null) {
                        ServerHttpRoutingAssertion.b(0);
                    }
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
                try {
                    block9: {
                        try {
                            try {
                                if (string.equals(N[89]) || string.equals(N[23])) break block9;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                            }
                            if (!string.equals(N[25])) break block10;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                        }
                    }
                    bl2 = true;
                    break block11;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    private GenericHttpRequest a(PolicyEnforcementContext policyEnforcementContext, GenericHttpRequestParams genericHttpRequestParams, GenericHttpClient genericHttpClient, HttpMethod httpMethod, HttpStatePoolManager.HttpStateCacheKey httpStateCacheKey) throws GenericHttpException {
        Object object;
        block11: {
            Object object2;
            block12: {
                block9: {
                    block13: {
                        block10: {
                            try {
                                if (!ENABLE_STATE_POOL) break block9;
                                if (httpStateCacheKey == null) break block10;
                            }
                            catch (GenericHttpException genericHttpException) {
                                throw ServerHttpRoutingAssertion.a((Exception)((Object)genericHttpException));
                            }
                            object = this.A.getFromStateCache(httpStateCacheKey);
                            break block13;
                        }
                        object = this.J.poll();
                    }
                    try {
                        if (object != null) {
                            genericHttpRequestParams.setState(new GenericHttpState(object));
                        }
                    }
                    catch (GenericHttpException genericHttpException) {
                        throw ServerHttpRoutingAssertion.a((Exception)((Object)genericHttpException));
                    }
                }
                object = genericHttpClient.createRequest(httpMethod, genericHttpRequestParams);
                try {
                    if (!ENABLE_STATE_POOL || genericHttpRequestParams.getState() == null) break block11;
                }
                catch (GenericHttpException genericHttpException) {
                    throw ServerHttpRoutingAssertion.a((Exception)((Object)genericHttpException));
                }
                object2 = genericHttpRequestParams.getState().getStateObject();
                try {
                    if (httpStateCacheKey == null) break block12;
                    policyEnforcementContext.runOnClose(() -> this.A.putToStateCacheIfAbsent(httpStateCacheKey, object2));
                    break block11;
                }
                catch (GenericHttpException genericHttpException) {
                    throw ServerHttpRoutingAssertion.a((Exception)((Object)genericHttpException));
                }
            }
            policyEnforcementContext.runOnClose(() -> this.J.offer(object2));
        }
        return object;
    }

    private HttpProxyConfig a(PolicyEnforcementContext policyEnforcementContext) throws FindException {
        String string = this.a(policyEnforcementContext, ((HttpRoutingAssertion)this.assertion).getProxyHost());
        try {
            if (StringUtils.isBlank((CharSequence)string)) {
                return null;
            }
        }
        catch (FindException findException) {
            throw ServerHttpRoutingAssertion.a((Exception)((Object)findException));
        }
        int n2 = this.b(policyEnforcementContext, ((HttpRoutingAssertion)this.assertion).getProxyPort());
        String string2 = this.a(policyEnforcementContext, ((HttpRoutingAssertion)this.assertion).getProxyUsername());
        String string3 = ServerVariables.expandPasswordOnlyVariable(this.getAudit(), ((HttpRoutingAssertion)this.assertion).getProxyPassword());
        return new HttpProxyConfig(string, n2, string2, string3);
    }

    private void a(Message message, GenericHttpRequestParams genericHttpRequestParams) {
        Collection collection = message.getHeadersKnob().getHeaders(HttpConstants.HEADER_CONTENT_TYPE, N[2]);
        if (collection != null) {
            for (Header header : collection) {
                try {
                    if (header.isPassThrough()) continue;
                    genericHttpRequestParams.addExtraHeader((HttpHeader)new GenericHttpHeader(HttpConstants.HEADER_CONTENT_TYPE, (String)header.getValue()));
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
            }
        }
    }

    private GenericHttpRequestParams.HttpVersion d() {
        block4: {
            try {
                try {
                    if (((HttpRoutingAssertion)this.assertion).getHttpVersion() != null || !N[17].equals(ConfigFactory.getProperty((String)N[74]))) break block4;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
                return GenericHttpRequestParams.HttpVersion.HTTP_VERSION_1_0;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
        }
        return ((HttpRoutingAssertion)this.assertion).getHttpVersion();
    }

    private static Long a(Message message) {
        String[] stringArray;
        block15: {
            HasHeaders hasHeaders = (HasHeaders)message.getKnob(HttpRequestKnob.class);
            if (hasHeaders == null) {
                hasHeaders = (HasHeaders)message.getKnob(HasHeaders.class);
            }
            try {
                if (hasHeaders == null) {
                    return null;
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
            stringArray = hasHeaders.getHeaderValues(N[3]);
            try {
                try {
                    if (stringArray != null && stringArray.length >= 1) break block15;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
                return null;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
        }
        Long l2 = null;
        for (String string : stringArray) {
            Long l3 = ServerHttpRoutingAssertion.d(string);
            try {
                if (l3 == null) {
                    return null;
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
            if (l2 == null) {
                l2 = l3;
                continue;
            }
            try {
                if (l2.longValue() == l3.longValue()) continue;
                return null;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
        }
        return l2;
    }

    private static Long d(String string) {
        try {
            Long l2;
            try {
                l2 = string == null ? null : Long.valueOf(Long.parseLong(string));
            }
            catch (NumberFormatException numberFormatException) {
                throw ServerHttpRoutingAssertion.a(numberFormatException);
            }
            return l2;
        }
        catch (NumberFormatException numberFormatException) {
            return null;
        }
    }

    private void a(PolicyEnforcementContext policyEnforcementContext, Exception exception) {
        block15: {
            block18: {
                Throwable throwable;
                block17: {
                    block16: {
                        block14: {
                            throwable = exception.getCause();
                            if (throwable == null) {
                                throwable = exception;
                            }
                            try {
                                try {
                                    if (!(throwable instanceof UnknownHostException) && !(throwable instanceof ConnectException)) break block14;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                                }
                                policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_REASON_CODE, -1);
                                break block15;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                            }
                        }
                        try {
                            if (!(throwable instanceof ConnectTimeoutException)) break block16;
                            policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_REASON_CODE, -3);
                            break block15;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                        }
                    }
                    try {
                        if (!(throwable instanceof SocketTimeoutException)) break block17;
                        policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_REASON_CODE, -4);
                        break block15;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                    }
                }
                try {
                    if (!(throwable instanceof MalformedURLException)) break block18;
                    policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_REASON_CODE, -2);
                    break block15;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw ServerHttpRoutingAssertion.a(illegalArgumentException);
                }
            }
            try {
                if (ExceptionUtils.causedBy((Throwable)exception, AbortedSocketException.class)) {
                    policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_REASON_CODE, -6);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServerHttpRoutingAssertion.a(illegalArgumentException);
            }
        }
    }

    private Message b(PolicyEnforcementContext policyEnforcementContext) {
        try {
            if (((HttpRoutingAssertion)this.assertion).getRequestMsgSrc() == null) {
                return policyEnforcementContext.getRequest();
            }
        }
        catch (NoSuchVariableException noSuchVariableException) {
            throw ServerHttpRoutingAssertion.a((Exception)((Object)noSuchVariableException));
        }
        String string = ((HttpRoutingAssertion)this.assertion).getRequestMsgSrc();
        try {
            Object object = policyEnforcementContext.getVariable(string);
            if (!(object instanceof Message)) {
                String string2 = String.valueOf(object.getClass());
                String string3 = String.valueOf(Message.class);
                String string4 = string;
                String[] stringArray = N;
                throw new AssertionStatusException(AssertionStatus.SERVER_ERROR, stringArray[45] + string4 + stringArray[105] + string3 + stringArray[19] + string2 + stringArray[46]);
            }
            return (Message)object;
        }
        catch (NoSuchVariableException noSuchVariableException) {
            String[] stringArray = N;
            throw new AssertionStatusException(AssertionStatus.SERVER_ERROR, stringArray[47] + string + stringArray[88]);
        }
    }

    /*
     * Loose catch block
     */
    private AssertionStatus a(PolicyEnforcementContext policyEnforcementContext, GenericHttpResponse genericHttpResponse, Message message, long l2) {
        AssertionStatus assertionStatus;
        block57: {
            assertionStatus = AssertionStatus.NONE;
            try {
                boolean bl2;
                boolean bl3;
                Object object;
                Object object2;
                block59: {
                    block58: {
                        block56: {
                            ContentTypeHeader contentTypeHeader;
                            InputStream inputStream;
                            block55: {
                                block54: {
                                    boolean bl4;
                                    int n2;
                                    block52: {
                                        block53: {
                                            block51: {
                                                block49: {
                                                    block50: {
                                                        block66: {
                                                            block65: {
                                                                block64: {
                                                                    block63: {
                                                                        ContentTypeHeader contentTypeHeader2;
                                                                        String[] stringArray;
                                                                        block47: {
                                                                            block48: {
                                                                                block61: {
                                                                                    block60: {
                                                                                        n2 = genericHttpResponse.getStatus();
                                                                                        inputStream = genericHttpResponse.getInputStream();
                                                                                        String string = genericHttpResponse.getHeaders().getOnlyOneValue(HttpConstants.HEADER_CONTENT_ENCODING);
                                                                                        if (string == null) break block47;
                                                                                        if (!string.contains(N[84])) break block47;
                                                                                        break block60;
                                                                                        catch (EOFException eOFException) {
                                                                                            throw ServerHttpRoutingAssertion.a(eOFException);
                                                                                        }
                                                                                    }
                                                                                    if (inputStream == null) break block47;
                                                                                    break block61;
                                                                                    catch (EOFException eOFException) {
                                                                                        throw ServerHttpRoutingAssertion.a(eOFException);
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    block62: {
                                                                                        if (genericHttpResponse.getContentLength() == null) break block48;
                                                                                        break block62;
                                                                                        catch (EOFException eOFException) {
                                                                                            throw ServerHttpRoutingAssertion.a(eOFException);
                                                                                        }
                                                                                    }
                                                                                    if (genericHttpResponse.getContentLength() <= 0L) break block47;
                                                                                }
                                                                                catch (EOFException eOFException) {
                                                                                    throw ServerHttpRoutingAssertion.a(eOFException);
                                                                                }
                                                                            }
                                                                            stringArray = N;
                                                                            this.logger.fine(stringArray[13]);
                                                                            inputStream = new GZIPInputStream(inputStream);
                                                                        }
                                                                        stringArray = N;
                                                                        String string = HttpHeaderUtil.searchHeaderValue((HttpHeaders)genericHttpResponse.getHeaders(), (String)HttpConstants.HEADER_CONTENT_TYPE, (String)ConfigFactory.getProperty((String)stringArray[65]));
                                                                        try {
                                                                            contentTypeHeader2 = string != null ? ContentTypeHeader.create((String)string, (String)ConfigFactory.getProperty((String)stringArray[92])) : null;
                                                                        }
                                                                        catch (EOFException eOFException) {
                                                                            throw ServerHttpRoutingAssertion.a(eOFException);
                                                                        }
                                                                        contentTypeHeader = contentTypeHeader2;
                                                                        bl4 = false;
                                                                        if (!((HttpRoutingAssertion)this.assertion).isPassThroughSoapFaults()) break block49;
                                                                        if (n2 != 500) break block49;
                                                                        break block63;
                                                                        catch (EOFException eOFException) {
                                                                            throw ServerHttpRoutingAssertion.a(eOFException);
                                                                        }
                                                                    }
                                                                    if (policyEnforcementContext.getService() == null) break block49;
                                                                    break block64;
                                                                    catch (EOFException eOFException) {
                                                                        throw ServerHttpRoutingAssertion.a(eOFException);
                                                                    }
                                                                }
                                                                if (!policyEnforcementContext.getService().isSoap()) break block49;
                                                                break block65;
                                                                catch (EOFException eOFException) {
                                                                    throw ServerHttpRoutingAssertion.a(eOFException);
                                                                }
                                                            }
                                                            if (contentTypeHeader == null) break block49;
                                                            break block66;
                                                            catch (EOFException eOFException) {
                                                                throw ServerHttpRoutingAssertion.a(eOFException);
                                                            }
                                                        }
                                                        try {
                                                            block67: {
                                                                if (contentTypeHeader.isXml()) break block50;
                                                                break block67;
                                                                catch (EOFException eOFException) {
                                                                    throw ServerHttpRoutingAssertion.a(eOFException);
                                                                }
                                                            }
                                                            if (!contentTypeHeader.isMultipart()) break block49;
                                                        }
                                                        catch (EOFException eOFException) {
                                                            throw ServerHttpRoutingAssertion.a(eOFException);
                                                        }
                                                    }
                                                    bl4 = true;
                                                }
                                                try {
                                                    if (n2 != 200 || contentTypeHeader != null) break block51;
                                                }
                                                catch (EOFException eOFException) {
                                                    throw ServerHttpRoutingAssertion.a(eOFException);
                                                }
                                                contentTypeHeader = this.b(false);
                                            }
                                            if (!((HttpRoutingAssertion)this.assertion).isPassthroughHttpAuthentication()) break block52;
                                            try {
                                                block68: {
                                                    if (n2 != 401) break block52;
                                                    break block68;
                                                    catch (EOFException eOFException) {
                                                        throw ServerHttpRoutingAssertion.a(eOFException);
                                                    }
                                                }
                                                if (contentTypeHeader != null) break block53;
                                            }
                                            catch (EOFException eOFException) {
                                                throw ServerHttpRoutingAssertion.a(eOFException);
                                            }
                                            contentTypeHeader = this.b(true);
                                        }
                                        message.initialize(this.q.createStashManager(), contentTypeHeader, inputStream, l2);
                                        assertionStatus = AssertionStatus.AUTH_REQUIRED;
                                        break block56;
                                    }
                                    if (n2 < 400) break block54;
                                    try {
                                        block69: {
                                            if (!((HttpRoutingAssertion)this.assertion).isFailOnErrorStatus()) break block54;
                                            break block69;
                                            catch (EOFException eOFException) {
                                                throw ServerHttpRoutingAssertion.a(eOFException);
                                            }
                                        }
                                        if (bl4) break block54;
                                    }
                                    catch (EOFException eOFException) {
                                        throw ServerHttpRoutingAssertion.a(eOFException);
                                    }
                                    this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_RESPONSE_BADSTATUS, Integer.toString(n2));
                                    assertionStatus = AssertionStatus.FALSIFIED;
                                    break block56;
                                }
                                if (contentTypeHeader == null) {
                                    contentTypeHeader = this.b(false);
                                }
                                if (contentTypeHeader == null) {
                                    contentTypeHeader = ContentTypeHeader.NONE;
                                }
                                try {
                                    if (inputStream != null) break block55;
                                    message.initialize(contentTypeHeader, new byte[0]);
                                    break block56;
                                }
                                catch (EOFException eOFException) {
                                    throw ServerHttpRoutingAssertion.a(eOFException);
                                }
                            }
                            object2 = this.q.createStashManager();
                            message.initialize(object2, contentTypeHeader, inputStream, l2);
                        }
                        if (!((HttpRoutingAssertion)this.assertion).isMaxDurationEnabled()) break block57;
                        try {
                            block70: {
                                if (((HttpRoutingAssertion)this.assertion).getResponseMsgDest() != null) break block58;
                                break block70;
                                catch (EOFException eOFException) {
                                    throw ServerHttpRoutingAssertion.a(eOFException);
                                }
                            }
                            object = N[93];
                            break block59;
                        }
                        catch (EOFException eOFException) {
                            throw ServerHttpRoutingAssertion.a(eOFException);
                        }
                    }
                    object = N[71] + ((HttpRoutingAssertion)this.assertion).getResponseMsgDest() + "}";
                }
                object2 = object;
                try {
                    bl3 = ((HttpRoutingAssertion)this.assertion).isBufferDisabled();
                    bl2 = !((HttpRoutingAssertion)this.assertion).isBufferDisabled();
                }
                catch (EOFException eOFException) {
                    throw ServerHttpRoutingAssertion.a(eOFException);
                }
                ServerMessageBufferingAssertion.configureMessageBuffering(bl3, bl2, policyEnforcementContext.getResponse(), (String)object2, this.getAudit());
            }
            catch (EOFException eOFException) {
                this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_BAD_GZIP_STREAM);
                assertionStatus = AssertionStatus.FALSIFIED;
            }
            catch (Exception exception) {
                if (ExceptionUtils.causedBy((Throwable)exception, AbortedSocketException.class)) {
                    String[] stringArray = new String[]{((AbortedSocketException)ExceptionUtils.getCauseIfCausedBy((Throwable)exception, AbortedSocketException.class)).getMessage()};
                    this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_MAX_DURATION_EXCEEDED, stringArray, ExceptionUtils.getDebugException((Throwable)exception));
                    this.a(policyEnforcementContext, exception);
                } else {
                    this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_ERROR_READING_RESPONSE, null, ExceptionUtils.getDebugException((Throwable)exception));
                }
                assertionStatus = AssertionStatus.FALSIFIED;
            }
        }
        return assertionStatus;
    }

    private ContentTypeHeader b(boolean bl2) {
        Object object;
        try {
            object = bl2 ? ContentTypeHeader.OCTET_STREAM_DEFAULT : null;
        }
        catch (UncheckedIOException uncheckedIOException) {
            throw ServerHttpRoutingAssertion.a((Exception)((Object)uncheckedIOException));
        }
        ContentTypeHeader contentTypeHeader = object;
        String[] stringArray = N;
        String string = this.p.getProperty(stringArray[35]);
        if (string != null) {
            try {
                contentTypeHeader = ContentTypeHeader.create((String)string);
                this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_RESPONSE_DEFCONTENTTYPE);
            }
            catch (UncheckedIOException uncheckedIOException) {
                stringArray = N;
                this.logger.log(Level.WARNING, stringArray[4] + ExceptionUtils.getMessage((Throwable)uncheckedIOException) + stringArray[63], ExceptionUtils.getDebugException((Throwable)uncheckedIOException));
            }
        }
        return contentTypeHeader;
    }

    private URL a(PublishedService publishedService, Map<String, ?> map) throws WSDLException, MalformedURLException {
        URL uRL;
        block6: {
            String string;
            block8: {
                block9: {
                    block10: {
                        block7: {
                            uRL = this.x;
                            try {
                                if (uRL != null) break block6;
                                if (!this.v) break block7;
                            }
                            catch (WSDLException wSDLException) {
                                throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
                            }
                            string = ExpandVariables.process(((HttpRoutingAssertion)this.assertion).getProtectedServiceUrl(), map, this.getAudit());
                            break block10;
                        }
                        string = ((HttpRoutingAssertion)this.assertion).getProtectedServiceUrl();
                    }
                    try {
                        try {
                            if (string != null) break block8;
                            this.logAndAudit((AuditDetailMessage)AssertionMessages.HTTPROUTE_BAD_ORIGINAL_URL);
                            if (publishedService != null) break block9;
                        }
                        catch (WSDLException wSDLException) {
                            throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
                        }
                        throw new MalformedURLException(N[95]);
                    }
                    catch (WSDLException wSDLException) {
                        throw ServerHttpRoutingAssertion.a((Exception)((Object)wSDLException));
                    }
                }
                uRL = publishedService.serviceUrl();
                break block6;
            }
            uRL = new URL(string);
        }
        return uRL;
    }

    private void a(KerberosServiceTicket kerberosServiceTicket, GenericHttpRequestParams genericHttpRequestParams) throws KerberosException {
        try {
            if (kerberosServiceTicket == null) {
                throw new KerberosException(N[55]);
            }
        }
        catch (KerberosException kerberosException) {
            throw ServerHttpRoutingAssertion.a((Exception)((Object)kerberosException));
        }
        try {
            if (genericHttpRequestParams == null) {
                throw new KerberosException(N[82]);
            }
        }
        catch (KerberosException kerberosException) {
            throw ServerHttpRoutingAssertion.a((Exception)((Object)kerberosException));
        }
        String[] stringArray = N;
        genericHttpRequestParams.addExtraHeader((HttpHeader)new GenericHttpHeader(HttpConstants.HEADER_AUTHORIZATION, stringArray[51] + HexUtils.encodeBase64((byte[])kerberosServiceTicket.getGSSAPReqTicket().getSPNEGO(), (boolean)true)));
        this.logger.log(Level.FINE, stringArray[70], new String[]{kerberosServiceTicket.getServicePrincipalName(), kerberosServiceTicket.getClientPrincipalName()});
    }

    private void c(PolicyEnforcementContext policyEnforcementContext) {
        String string;
        String string2;
        PolicyEnforcementContext policyEnforcementContext2;
        URL uRL = policyEnforcementContext.getRoutedServiceUrl();
        try {
            if (uRL == null) {
                return;
            }
        }
        catch (MalformedURLException malformedURLException) {
            throw ServerHttpRoutingAssertion.a(malformedURLException);
        }
        try {
            uRL = new URL(uRL.toString());
        }
        catch (MalformedURLException malformedURLException) {
            this.logger.log(Level.WARNING, N[41], new String[]{uRL.toString()});
            return;
        }
        try {
            policyEnforcementContext.setVariable(HttpRoutingAssertion.VAR_HTTP_ROUTING_URL, uRL.toString());
            policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlHost(), uRL.getHost());
            policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlProtocol(), uRL.getProtocol());
            policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlPort(), this.a(uRL));
            policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlFile(), uRL.getFile());
            policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlPath(), uRL.getPath());
            policyEnforcementContext2 = policyEnforcementContext;
            string2 = HttpRoutingAssertion.getVarHttpRoutingUrlQuery();
            string = uRL.getQuery() == null ? null : "?" + uRL.getQuery();
        }
        catch (MalformedURLException malformedURLException) {
            throw ServerHttpRoutingAssertion.a(malformedURLException);
        }
        policyEnforcementContext2.setVariable(string2, string);
        policyEnforcementContext.setVariable(HttpRoutingAssertion.getVarHttpRoutingUrlFragment(), uRL.getRef());
    }

    private Integer a(URL uRL) {
        int n2;
        block16: {
            String string;
            block17: {
                try {
                    if (uRL == null) {
                        return null;
                    }
                }
                catch (MalformedURLException malformedURLException) {
                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                }
                try {
                    uRL = new URL(uRL.toString());
                }
                catch (MalformedURLException malformedURLException) {
                    String[] stringArray = N;
                    this.logger.log(Level.WARNING, stringArray[9], new String[]{uRL.toString()});
                    return null;
                }
                string = uRL.getProtocol();
                n2 = uRL.getPort();
                try {
                    if (n2 != -1) break block16;
                    if (!N[68].equalsIgnoreCase(string)) break block17;
                }
                catch (MalformedURLException malformedURLException) {
                    throw ServerHttpRoutingAssertion.a(malformedURLException);
                }
                n2 = 80;
                break block16;
            }
            String[] stringArray = N;
            if (stringArray[39].equalsIgnoreCase(string)) {
                n2 = 443;
            } else {
                stringArray = N;
                if (stringArray[8].equalsIgnoreCase(string)) {
                    n2 = 21;
                } else {
                    stringArray = N;
                    if (stringArray[77].equalsIgnoreCase(string)) {
                        n2 = 25;
                    } else {
                        stringArray = N;
                        if (stringArray[86].equalsIgnoreCase(string)) {
                            n2 = 110;
                        } else if (N[78].equalsIgnoreCase(string)) {
                            n2 = 143;
                        }
                    }
                }
            }
        }
        return n2;
    }

    private static /* synthetic */ String lambda$reallyTryUrl$2(Exception exception) {
        return N[62] + exception.getMessage();
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[109];
                var3_1 = 0;
                var2_2 = "\u0007\u001f\f\tn8W \u0016E\tj>Fi\u0016C\u001fe.\u0003>\u0019X\u0002+>K,PB\u000bf/\u001e2@Q\u0015 \u001fi\u0004j(O,1Y\u001ed\tK(\u001c@\u000fe-F\u000b\u0001$x:+\u0002F(\u0014I\u0018\u000e\n\u001fB\u001en$Wd<I\u0004l>K'\f\u0002^\u0005yjS;\u001fO\u000fx9J'\u0017\f\u000en,B<\u001cXJh%M=\u0015B\u001e+>Z9\u0015\fM\u001d!\u0004X\u001aY%V=\u0019B\rC>W93@\u0003n$W\u000f\u0011O\u001ed8Z{>\b\u0002K\u001ff/M=PJ\u0005yjc\u0007\u001fX$~&Oi\u0000M\u0018j'F=\u0015^J,oPnPC\f+oPgU_Jf?P=PB\u0005\u007fjA,PB\u001fg&\u00030\u0015_\u0003/\u0004\\\u0019\u001c\"`Jh+M'\u001fXJi/\u00039\u0011^\u0019n.\u0019i\u000b\u001c\u0017\f:\u0015^\u001cn8`&\u001eJ\u0003l\b!\u0011_\u0002J&D&N*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edP=\u0011X\u000f[%L%^I\u0004j(O,)-\u0015X\u000fh>F-PO\u0005f:Q,\u0003_\u0003d$\u0003&\u001e\f\u0003e)L$\u0019B\r+8F:\u0000C\u0004x/2\u000f\u0011E\u0006n.\u0003=\u001f\f\ty/B=\u0015\f\u0018d?W,PE\u0004m%\u0003/\u001f^J\u007f\"Fi8x>[jQ&\u0005X\u0003e-\riHi\u0004CJc+P!PM\u001f\u007f\"L;\u0019V\u000b\u007f#L'PD\u000fj.F;PM\u0004ojV;\u001c\f\u000bxj@(\u0013D\u000f+!F0PJ\u0005yj@&\u001eB\u000fh>J&\u001e\f\u0019\u007f+W,^\u0019 \u001fd\u001e\u007f:q,\u0001Y\u000fx>b<\u0004D\u0010C+P!1@\r\u0003x^\u001c* \u001fd\u001e\u007f:q,\u0001Y\u000fx>l$\u0019X+~>K\u0001\u0015M\u000en8q,\u0005_\u000fH%M'\u0015O\u001eb%M\tePM\t\u007f?B%M\u001b\u0005\u0011U\u000fy}\u000e\u001a\u0015O\u001fy/p9\u0011BGL+W,\u0007M\u0013$<\n\b\u001cK\u0005y#W!\u001d\f9\f\u0002^\u0005yjK(\u0003D\u0003e-\u0003\b\u0005X\u0002d8J3\u0011X\u0003d$\u0003/\u001f^Jh%M'\u0015O\u001eb%Mi\u0019H\u000fe>J/\u0019O\u000b\u007f#L'\u0007\u001a8mG9\u007f\u0015:\u0019\u0002I\u001aj8J'\u0017\f\u0018d?W,PE\u0004m%\u0003>\u0019X\u0002+.Z'\u0011A\u0003hjW;\u0005_\u001en.\u0003*\u0015^\u001eb,J*\u0011X\u000fxwXy\r\u0007\u001a8mG>{\u0011\u000e \u0003z\u000bg#G\u0001\u0011_\u0002J&D*!\u0004X\u001aY%V=\u0019B\r%.Z'\u0011A\u0003h\u0019P%9B\fd\tB*\u0018I#o&F\u001d\u0019A\u000fd?Wfi\u001eC\u001e+8F*\u001fK\u0004b0F-^\f?x#M.P\u007f\"Jg\u0011|F\f\u001edjK(\u0003DJj?W!\u001f^\u0003q+W \u001fBJc/B-\u0015^Jj$Gi\u0005^\u0006++Pi\u0013M\tc/\u0003\"\u0015UJm%Qi\u0013C\u0004e/@=\u0019C\u0004+9W(\u0004ID\u0007\u001a8mG>{\u0011\u0007\u001a8mG9\u007f\u0015Q*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edQ,\u0016^\u000fx\"l';I\u0013H\"B'\u0017I\u0019L\b\u0003_\u000fy>J&\u001e\f\u001fx/Pi\u0014U\u0004j'J*P^\u0005~>Fi\u0019B\fdf\u00039\u0002E\u001cj>Fi\u001bI\u001361\u00134\\\f\u001ey?P=\u0015HJh/Q=\u0019J\u0003h+W,\u0003\u0011\u0011:7\u0002m\u000b%\u0001$x:+8F8\u0005I\u0019\u007fjK,\u0011H\u000fyjB-\u0014I\u000e+\u0011Xy\rqWP1\u00124-\u0018 \u001fd\u001e\u007f:g,\u0016M\u001fg>`&\u001eX\u000fe>w0\u0000I\r\b\u0005X\u0002d8J3\u0011X\u0003d$ \u001b\u0015_\u0005g<J'\u0017\f\u001ec/\u0003*\u0015^\u001eb,J*\u0011X\u000f#9\nt\u000b\u001c\u0017\u001d!\u0004X\u001aY%V=\u0019B\rC>W93@\u0003n$W\u000f\u0011O\u001ed8Zx\u0005!\u0004X\u001ax\u0003\u001d<\u007f\u0019\u001c\"`Jh+M'\u001fXJi/\u00039\u0011^\u0019n.\u0019i\u000b\u001c\u0017Q*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edQ,\u0016^\u000fx\"l';I\u0013H\"B'\u0017I\u0019\u0004'\u0005@\u0006\u0013:\u0004M\u0019c\u0007B'\u0011K\u000fy\fB*\u0004C\u0018r\u0019\u001b\u0015]\u001fn9Wi\u001dI\u0019x+D,P_\u0005~8@,P\u0004H\u0002`^<\u001b\u0015]\u001fn9Wi\u001dI\u0019x+D,P_\u0005~8@,PE\u0019++\u0003'\u001fBGn2J:\u0004I\u0004\u007fj@&\u001eX\u000fs>\u0003?\u0011^\u0003j(O,P\u0004H\u0002'\u001f\u0012=\u0002Y\u0019\u007f/G\n\u0015^\u001eF+M(\u0017I\u0018\u0012:\u0003K!n3p=\u001f^\u000fF+M(\u0017I\u0018\n\u0007\u0015K\u0005\u007f#B=\u0015\f\u000b*\u001cY\u0019\u007f/Q\u0001\u001f_\u001e\u00030\u0015_'\n\u001fY\u0006ojM&\u0004\f\ty/B=\u0015\f\u0019\u007f+P!PA\u000be+D,\u0002\f\fj)W&\u0002UDL\u0002\u0015^\bn8L:#I\u0018}#@,$E\t`/Wi\u0019_Je?O%PM\u0004oj@(\u001eB\u0005\u007fjA,PM\u000eo/Gi\u0004CJ\u007f\"Fi\u0002I\u001b~/P=PJ\u0005yjQ&\u0005X\u0003e-G\u000b\u001fH\u0013+)L'\u0004I\u0004\u007fjJ:PX\u0005djO&\u001eKJ\u007f%\u0003+\u0015\f\u001ay%@,\u0003_\u000foj\u000edPA\u000bs#N<\u001d\f\u0003xj\u0011xD\u001b^3y\u0015}G\f\br>F:\u0002d\u0012\u001d\u0000\u001eZ\u000bg#Gi\u0002I\u0019{%M:\u0015\f\u0019b0Fi\u001cE\u0007b>\u0019i\u0002'\u001f%\n\u001fY\u0006ojM&\u0004\f\ty/B=\u0015\f\"_\u001esi\u0013@\u0003n$Wi\u0016M\t\u007f%Q0^ \u0001$x:+8F:\u0000C\u0004x/\u0003!\u0015M\u000en8\u0003\u0012\u000b\u001c\u0017Vwx2AQ7\u0011\u0019\u0002C\bg/Ni\u0002C\u001f\u007f#M.J\f\u0002n^\u0017 \u001fd\u001e\u007f:v:\u0015i\u0012{/@=3C\u0004\u007f#M<\u0015\u0016 \u001fd\u001e\u007f:k,\u0011H\u000fy\u0019F(\u0002O\u0002Y?O,\u001a\u0002\u0015UJJ&J(\u0003\f\tj$M&\u0004\f\bnjm\u001c<`K*\u0006\u00061Y\u001ecj\u0004!\u0004X\u001a\u0010!\u001f_\u001ee+N,&I\u0018b,J,\u0002:\u0002\u0015^\bn8L:PX\u0003h!F=PM\u000eo/Gi\u0004CJC>W9P^\u000fz?F:\u0004\f\u001aj8B$\u0015X\u000fy9\u0003a\u000b\u001c\u0017w1\u00124Y\u0002m\u000b]\u0007$`'++M-Pg\u000fy(F;\u001f_Jo/O,\u0017M\u001en.\u0003(\u0005X\u0002n$W \u0013M\u001eb%Mi\u0011^\u000f+$L=P_\u001f{:L;\u0004I\u000e+=K,\u001e\f\u000bejk\u001d$|J{8L1\t\f\u0003xj@&\u001eJ\u0003l?Q,\u0014\u0005\u001a8mG:\r \u001fd\u001e\u007f:u,\u0002_\u0003d$\n-\u0015J\u000b~&W\u0002\u0015U !\u0004X\u001aH%M'\u0015O\u001eb%M\u0000\u0014@\u000f_#N,\u001fY\u001eF+M(\u0017I\u0018\u0004:\u001dX\u001a\u0004 \u001dM\u001a\u0018(\u0000\\\u0006b)B=\u0019C\u0004$%@=\u0015XGx>Q,\u0011AO*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edG,\u0016M\u001fg>n(\b~\u000f\u007f8J,\u0003N*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edP=\u0011X\u000f[%L%^I\u0004j(O,\u001f\u0004\u0019_\u0019b$Di8X\u001e{jQ&\u0005X\u0003e-\u00039\u0011^\u000bf/W,\u0002_\u0015\u0000\u001eZ\u000bg#Gi\u0002C\u001f\u007f#M.Py8Gf\u0003\u0004.\nE\u001a\u0014!\u0004X\u001aX>B=\u0015|\u0005d&n(\u001eM\rn8\u00049\u001f\\Y&\u0007\u001f\f\tn8W \u0016E\tj>Fi\u0016C\u001fe.\u0003>\u0019X\u0002+>K,PB\u000bf/\u001e2@Q\u0003kY\u0002\u0005\u001a8mG:(=\u0018E\u0019+\"W=\u0000\f\u0018d?W \u001eKJj9P,\u0002X\u0003d$\u0003!\u0011_Je?O%PY\u0018g\"\u000f\u0011E\u0006n.\u0003=\u001f\f\u0003e#W \u0011@\u0003q/\u0003\u001a#`Jh%M=\u0015T\u001e1j\u001f \u001fd\u001e\u007f:g,\u0016M\u001fg>`&\u001eX\u000fe>w0\u0000I)c+Q:\u0015X\b\u001b\u0015_\u001ad$P,\u0015(\u0000\\\u0006b)B=\u0019C\u0004N<F'\u0004|\u0018d2ZW\u001b\u001fY\u001eb$Di\u0011_\u0019n8W \u001fBJx:F*\u0019J\u0003n.\u0003'\u001f\f?Y\u0006\u000fi\u0011B\u000e+$Li\u0002I\u0019d&U,\u0014\f\u0019n8U \u0013IJb9\u0003(\u0006M\u0003g+A%\u0015\f\u001edjS;\u001fZ\u0003o/\u0003&\u001eI\u0019\u0005\u0011U\u000fy}\u000e\u001a\u0015O\u001fy/p9\u0011BGL+W,\u0007M\u0013=*\u001fAEg}W,\u0013DEx/Q?\u0015^E{%O \u0013UEj9P,\u0002X\u0003d$\f\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005e1\u0019\u0002I\u001aj8J'\u0017\f\u0018d?W,PE\u0004m%\u0003>\u0019X\u0002+.Z'\u0011A\u0003hjS;\u0019Z\u000b\u007f/\u0003\"\u0015UWpz^\u0007\u0015\u0003\u0006FW9\t\u0011\u0019\u0002C\bg/Ni\u0002C\u001f\u007f#M.J\f\u0007\u000b\u0015M\u0018n8\u0003\u0006\u001c\u0003E\u0004lj\u0003x^\u001c\u0013;\u001fY\u001eb$D\u001d\u0002Y\u0019\u007f\u0007B'\u0011K\u000fy5kY\f\u0003xjBi\u0013C\u0004\u007f/[=PZ\u000by#B+\u001cIJd,\u0003=\u0018IJ|8L'\u0017\f\u001er:FiXI\u0012{/@=\u0015HWO*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edG,\u0016M\u001fg>n(\b~\u000f\u007f8J,\u0003";
                var4_3 = "\u0007\u001f\f\tn8W \u0016E\tj>Fi\u0016C\u001fe.\u0003>\u0019X\u0002+>K,PB\u000bf/\u001e2@Q\u0015 \u001fi\u0004j(O,1Y\u001ed\tK(\u001c@\u000fe-F\u000b\u0001$x:+\u0002F(\u0014I\u0018\u000e\n\u001fB\u001en$Wd<I\u0004l>K'\f\u0002^\u0005yjS;\u001fO\u000fx9J'\u0017\f\u000en,B<\u001cXJh%M=\u0015B\u001e+>Z9\u0015\fM\u001d!\u0004X\u001aY%V=\u0019B\rC>W93@\u0003n$W\u000f\u0011O\u001ed8Z{>\b\u0002K\u001ff/M=PJ\u0005yjc\u0007\u001fX$~&Oi\u0000M\u0018j'F=\u0015^J,oPnPC\f+oPgU_Jf?P=PB\u0005\u007fjA,PB\u001fg&\u00030\u0015_\u0003/\u0004\\\u0019\u001c\"`Jh+M'\u001fXJi/\u00039\u0011^\u0019n.\u0019i\u000b\u001c\u0017\f:\u0015^\u001cn8`&\u001eJ\u0003l\b!\u0011_\u0002J&D&N*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edP=\u0011X\u000f[%L%^I\u0004j(O,)-\u0015X\u000fh>F-PO\u0005f:Q,\u0003_\u0003d$\u0003&\u001e\f\u0003e)L$\u0019B\r+8F:\u0000C\u0004x/2\u000f\u0011E\u0006n.\u0003=\u001f\f\ty/B=\u0015\f\u0018d?W,PE\u0004m%\u0003/\u001f^J\u007f\"Fi8x>[jQ&\u0005X\u0003e-\riHi\u0004CJc+P!PM\u001f\u007f\"L;\u0019V\u000b\u007f#L'PD\u000fj.F;PM\u0004ojV;\u001c\f\u000bxj@(\u0013D\u000f+!F0PJ\u0005yj@&\u001eB\u000fh>J&\u001e\f\u0019\u007f+W,^\u0019 \u001fd\u001e\u007f:q,\u0001Y\u000fx>b<\u0004D\u0010C+P!1@\r\u0003x^\u001c* \u001fd\u001e\u007f:q,\u0001Y\u000fx>l$\u0019X+~>K\u0001\u0015M\u000en8q,\u0005_\u000fH%M'\u0015O\u001eb%M\tePM\t\u007f?B%M\u001b\u0005\u0011U\u000fy}\u000e\u001a\u0015O\u001fy/p9\u0011BGL+W,\u0007M\u0013$<\n\b\u001cK\u0005y#W!\u001d\f9\f\u0002^\u0005yjK(\u0003D\u0003e-\u0003\b\u0005X\u0002d8J3\u0011X\u0003d$\u0003/\u001f^Jh%M'\u0015O\u001eb%Mi\u0019H\u000fe>J/\u0019O\u000b\u007f#L'\u0007\u001a8mG9\u007f\u0015:\u0019\u0002I\u001aj8J'\u0017\f\u0018d?W,PE\u0004m%\u0003>\u0019X\u0002+.Z'\u0011A\u0003hjW;\u0005_\u001en.\u0003*\u0015^\u001eb,J*\u0011X\u000fxwXy\r\u0007\u001a8mG>{\u0011\u000e \u0003z\u000bg#G\u0001\u0011_\u0002J&D*!\u0004X\u001aY%V=\u0019B\r%.Z'\u0011A\u0003h\u0019P%9B\fd\tB*\u0018I#o&F\u001d\u0019A\u000fd?Wfi\u001eC\u001e+8F*\u001fK\u0004b0F-^\f?x#M.P\u007f\"Jg\u0011|F\f\u001edjK(\u0003DJj?W!\u001f^\u0003q+W \u001fBJc/B-\u0015^Jj$Gi\u0005^\u0006++Pi\u0013M\tc/\u0003\"\u0015UJm%Qi\u0013C\u0004e/@=\u0019C\u0004+9W(\u0004ID\u0007\u001a8mG>{\u0011\u0007\u001a8mG9\u007f\u0015Q*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edQ,\u0016^\u000fx\"l';I\u0013H\"B'\u0017I\u0019L\b\u0003_\u000fy>J&\u001e\f\u001fx/Pi\u0014U\u0004j'J*P^\u0005~>Fi\u0019B\fdf\u00039\u0002E\u001cj>Fi\u001bI\u001361\u00134\\\f\u001ey?P=\u0015HJh/Q=\u0019J\u0003h+W,\u0003\u0011\u0011:7\u0002m\u000b%\u0001$x:+8F8\u0005I\u0019\u007fjK,\u0011H\u000fyjB-\u0014I\u000e+\u0011Xy\rqWP1\u00124-\u0018 \u001fd\u001e\u007f:g,\u0016M\u001fg>`&\u001eX\u000fe>w0\u0000I\r\b\u0005X\u0002d8J3\u0011X\u0003d$ \u001b\u0015_\u0005g<J'\u0017\f\u001ec/\u0003*\u0015^\u001eb,J*\u0011X\u000f#9\nt\u000b\u001c\u0017\u001d!\u0004X\u001aY%V=\u0019B\rC>W93@\u0003n$W\u000f\u0011O\u001ed8Zx\u0005!\u0004X\u001ax\u0003\u001d<\u007f\u0019\u001c\"`Jh+M'\u001fXJi/\u00039\u0011^\u0019n.\u0019i\u000b\u001c\u0017Q*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edQ,\u0016^\u000fx\"l';I\u0013H\"B'\u0017I\u0019\u0004'\u0005@\u0006\u0013:\u0004M\u0019c\u0007B'\u0011K\u000fy\fB*\u0004C\u0018r\u0019\u001b\u0015]\u001fn9Wi\u001dI\u0019x+D,P_\u0005~8@,P\u0004H\u0002`^<\u001b\u0015]\u001fn9Wi\u001dI\u0019x+D,P_\u0005~8@,PE\u0019++\u0003'\u001fBGn2J:\u0004I\u0004\u007fj@&\u001eX\u000fs>\u0003?\u0011^\u0003j(O,P\u0004H\u0002'\u001f\u0012=\u0002Y\u0019\u007f/G\n\u0015^\u001eF+M(\u0017I\u0018\u0012:\u0003K!n3p=\u001f^\u000fF+M(\u0017I\u0018\n\u0007\u0015K\u0005\u007f#B=\u0015\f\u000b*\u001cY\u0019\u007f/Q\u0001\u001f_\u001e\u00030\u0015_'\n\u001fY\u0006ojM&\u0004\f\ty/B=\u0015\f\u0019\u007f+P!PA\u000be+D,\u0002\f\fj)W&\u0002UDL\u0002\u0015^\bn8L:#I\u0018}#@,$E\t`/Wi\u0019_Je?O%PM\u0004oj@(\u001eB\u0005\u007fjA,PM\u000eo/Gi\u0004CJ\u007f\"Fi\u0002I\u001b~/P=PJ\u0005yjQ&\u0005X\u0003e-G\u000b\u001fH\u0013+)L'\u0004I\u0004\u007fjJ:PX\u0005djO&\u001eKJ\u007f%\u0003+\u0015\f\u001ay%@,\u0003_\u000foj\u000edPA\u000bs#N<\u001d\f\u0003xj\u0011xD\u001b^3y\u0015}G\f\br>F:\u0002d\u0012\u001d\u0000\u001eZ\u000bg#Gi\u0002I\u0019{%M:\u0015\f\u0019b0Fi\u001cE\u0007b>\u0019i\u0002'\u001f%\n\u001fY\u0006ojM&\u0004\f\ty/B=\u0015\f\"_\u001esi\u0013@\u0003n$Wi\u0016M\t\u007f%Q0^ \u0001$x:+8F:\u0000C\u0004x/\u0003!\u0015M\u000en8\u0003\u0012\u000b\u001c\u0017Vwx2AQ7\u0011\u0019\u0002C\bg/Ni\u0002C\u001f\u007f#M.J\f\u0002n^\u0017 \u001fd\u001e\u007f:v:\u0015i\u0012{/@=3C\u0004\u007f#M<\u0015\u0016 \u001fd\u001e\u007f:k,\u0011H\u000fy\u0019F(\u0002O\u0002Y?O,\u001a\u0002\u0015UJJ&J(\u0003\f\tj$M&\u0004\f\bnjm\u001c<`K*\u0006\u00061Y\u001ecj\u0004!\u0004X\u001a\u0010!\u001f_\u001ee+N,&I\u0018b,J,\u0002:\u0002\u0015^\bn8L:PX\u0003h!F=PM\u000eo/Gi\u0004CJC>W9P^\u000fz?F:\u0004\f\u001aj8B$\u0015X\u000fy9\u0003a\u000b\u001c\u0017w1\u00124Y\u0002m\u000b]\u0007$`'++M-Pg\u000fy(F;\u001f_Jo/O,\u0017M\u001en.\u0003(\u0005X\u0002n$W \u0013M\u001eb%Mi\u0011^\u000f+$L=P_\u001f{:L;\u0004I\u000e+=K,\u001e\f\u000bejk\u001d$|J{8L1\t\f\u0003xj@&\u001eJ\u0003l?Q,\u0014\u0005\u001a8mG:\r \u001fd\u001e\u007f:u,\u0002_\u0003d$\n-\u0015J\u000b~&W\u0002\u0015U !\u0004X\u001aH%M'\u0015O\u001eb%M\u0000\u0014@\u000f_#N,\u001fY\u001eF+M(\u0017I\u0018\u0004:\u001dX\u001a\u0004 \u001dM\u001a\u0018(\u0000\\\u0006b)B=\u0019C\u0004$%@=\u0015XGx>Q,\u0011AO*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edG,\u0016M\u001fg>n(\b~\u000f\u007f8J,\u0003N*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edP=\u0011X\u000f[%L%^I\u0004j(O,\u001f\u0004\u0019_\u0019b$Di8X\u001e{jQ&\u0005X\u0003e-\u00039\u0011^\u000bf/W,\u0002_\u0015\u0000\u001eZ\u000bg#Gi\u0002C\u001f\u007f#M.Py8Gf\u0003\u0004.\nE\u001a\u0014!\u0004X\u001aX>B=\u0015|\u0005d&n(\u001eM\rn8\u00049\u001f\\Y&\u0007\u001f\f\tn8W \u0016E\tj>Fi\u0016C\u001fe.\u0003>\u0019X\u0002+>K,PB\u000bf/\u001e2@Q\u0003kY\u0002\u0005\u001a8mG:(=\u0018E\u0019+\"W=\u0000\f\u0018d?W \u001eKJj9P,\u0002X\u0003d$\u0003!\u0011_Je?O%PY\u0018g\"\u000f\u0011E\u0006n.\u0003=\u001f\f\u0003e#W \u0011@\u0003q/\u0003\u001a#`Jh%M=\u0015T\u001e1j\u001f \u001fd\u001e\u007f:g,\u0016M\u001fg>`&\u001eX\u000fe>w0\u0000I)c+Q:\u0015X\b\u001b\u0015_\u001ad$P,\u0015(\u0000\\\u0006b)B=\u0019C\u0004N<F'\u0004|\u0018d2ZW\u001b\u001fY\u001eb$Di\u0011_\u0019n8W \u001fBJx:F*\u0019J\u0003n.\u0003'\u001f\f?Y\u0006\u000fi\u0011B\u000e+$Li\u0002I\u0019d&U,\u0014\f\u0019n8U \u0013IJb9\u0003(\u0006M\u0003g+A%\u0015\f\u001edjS;\u001fZ\u0003o/\u0003&\u001eI\u0019\u0005\u0011U\u000fy}\u000e\u001a\u0015O\u001fy/p9\u0011BGL+W,\u0007M\u0013=*\u001fAEg}W,\u0013DEx/Q?\u0015^E{%O \u0013UEj9P,\u0002X\u0003d$\f\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005e1\u0019\u0002I\u001aj8J'\u0017\f\u0018d?W,PE\u0004m%\u0003>\u0019X\u0002+.Z'\u0011A\u0003hjS;\u0019Z\u000b\u007f/\u0003\"\u0015UWpz^\u0007\u0015\u0003\u0006FW9\t\u0011\u0019\u0002C\bg/Ni\u0002C\u001f\u007f#M.J\f\u0007\u000b\u0015M\u0018n8\u0003\u0006\u001c\u0003E\u0004lj\u0003x^\u001c\u0013;\u001fY\u001eb$D\u001d\u0002Y\u0019\u007f\u0007B'\u0011K\u000fy5kY\f\u0003xjBi\u0013C\u0004\u007f/[=PZ\u000by#B+\u001cIJd,\u0003=\u0018IJ|8L'\u0017\f\u001er:FiXI\u0012{/@=\u0015HWO*\u001fADg}W,\u0013DDx/Q?\u0015^D{%O \u0013UDj9P,\u0002X\u0003d$\r\u001a\u0015^\u001cn8k=\u0004\\8d?W \u001eK+x9F;\u0004E\u0005edG,\u0016M\u001fg>n(\b~\u000f\u007f8J,\u0003".length();
                var1_4 = 38;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = ServerHttpRoutingAssertion.d(v0, ServerHttpRoutingAssertion.h(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "jt0a\rI-\u0003j4o\u0015E*W\u007f\" \u0012E;Us%eAu\u001bo f \u0013*v0Q\u0010y\u0013*v0Q\u0010y\u0013*v0Q\u0010y\u0013*v0Q\u0010y\u0013*v2";
                    var4_3 = "jt0a\rI-\u0003j4o\u0015E*W\u007f\" \u0012E;Us%eAu\u001bo f \u0013*v0Q\u0010y\u0013*v0Q\u0010y\u0013*v0Q\u0010y\u0013*v0Q\u0010y\u0013*v2".length();
                    var1_4 = 31;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 87;
                        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++] = ServerHttpRoutingAssertion.d(v0, ServerHttpRoutingAssertion.h(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;
            }
        }
        ServerHttpRoutingAssertion.N = var5;
        ServerHttpRoutingAssertion.PROP_ENABLE_STATE_POOL = ServerHttpRoutingAssertion.N[12];
        ServerHttpRoutingAssertion.g = ServerHttpRoutingAssertion.N[80];
        ServerHttpRoutingAssertion.j = ServerHttpRoutingAssertion.N[23];
        ServerHttpRoutingAssertion.SSL_DYNAMIC_INFO_CACHE_IDLE_TIMEOUT_PROPERTY = ServerHttpRoutingAssertion.N[27];
        ServerHttpRoutingAssertion.PROP_REFRESH_ROUTE_INFO_ON_KEY_CHANGES = ServerHttpRoutingAssertion.N[42];
        ServerHttpRoutingAssertion.i = ServerHttpRoutingAssertion.N[29];
        ServerHttpRoutingAssertion.k = ServerHttpRoutingAssertion.N[73];
        ServerHttpRoutingAssertion.PRODUCT = ServerHttpRoutingAssertion.N[96];
        ServerHttpRoutingAssertion.m = ServerHttpRoutingAssertion.N[23];
        var0_6 = ServerHttpRoutingAssertion.N;
        ServerHttpRoutingAssertion.ENABLE_STATE_POOL = SyspropUtil.getBoolean((String)var0_6[81], (boolean)true);
        ServerHttpRoutingAssertion.REFRESH_ROUTE_INFO_ON_KEY_CHANGES = SyspropUtil.getBoolean((String)var0_6[31], (boolean)false);
        ServerHttpRoutingAssertion.h = SyspropUtil.getInteger((String)var0_6[106], (int)1);
        ServerHttpRoutingAssertion.l = Goid.parseGoid((String)var0_6[108]);
        ServerHttpRoutingAssertion.USER_AGENT = HttpConstants.HEADER_USER_AGENT;
        ServerHttpRoutingAssertion.HOST = HttpConstants.HEADER_HOST;
        ServerHttpRoutingAssertion.n = HttpPassthroughRuleSet.HEADERS_NOT_TO_IMPLICITLY_FORWARD.contains(HttpConstants.HEADER_CONTENT_TYPE.toLowerCase());
        ServerHttpRoutingAssertion.o = Pattern.compile(var0_6[99]);
        ServerHttpRoutingAssertion.DEFAULT_USER_AGENT = var0_6[20] + BuildInfo.getProductVersion() + var0_6[57] + BuildInfo.getBuildNumber();
    }

    private static /* synthetic */ void b(int n2) {
        String[] stringArray = N;
        throw new IllegalArgumentException(String.format(stringArray[6], stringArray[11], stringArray[97], stringArray[26]));
    }

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

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

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String d(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 -> 116;
                    case 1 -> 77;
                    case 2 -> 17;
                    case 3 -> 87;
                    case 4 -> 54;
                    case 5 -> 119;
                    default -> 30;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    public static class RouteInfoException
    extends RuntimeException {
        static final long serialVersionUID = 7919999330638519489L;

        public RouteInfoException(String string) {
            super(string);
        }

        public RouteInfoException(String string, Throwable throwable) {
            super(string, throwable);
        }
    }
}

