package com.l7tech.server.policy;

import com.l7tech.common.http.HttpHeader;
import com.l7tech.common.io.XmlUtil;
import com.l7tech.common.mime.ByteArrayStashManager;
import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.common.protocol.SecureSpanConstants.HttpHeaders;
import com.l7tech.gateway.common.Component;
import com.l7tech.gateway.common.audit.SystemAuditRecord;
import com.l7tech.gateway.common.transport.SsgConnector.Endpoint;
import com.l7tech.identity.User;
import com.l7tech.identity.UserBean;
import com.l7tech.message.HttpServletRequestKnob;
import com.l7tech.message.HttpServletResponseKnob;
import com.l7tech.message.Message;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.PolicyPathBuilder;
import com.l7tech.policy.PolicyPathBuilderFactory;
import com.l7tech.server.AuthenticatableHttpServlet;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.audit.AuditContextFactory;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.message.PolicyEnforcementContextFactory;
import com.l7tech.server.util.SoapFaultManager;
import com.l7tech.util.InetAddressUtil;
import com.l7tech.util.ResourceUtils;
import com.l7tech.xml.SoapFaultLevel;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.util.Collection;
import java.util.StringTokenizer;
import java.util.logging.Level;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.w3c.dom.Document;

public class PolicyServlet extends AuthenticatableHttpServlet {
   private static final String DUMMY_ID_PROVIDER_OID;
   private AuditContextFactory auditContextFactory;
   private SoapFaultManager soapFaultManager;
   private byte[] serverCertificate;
   private PolicyPathBuilder policyPathBuilder;
   private PolicyCache policyCache;
   private SecureRandom secureRandom;
   private String nodeId;
   static final long serialVersionUID = 8804225192424689127L;
   private static final String[] b;

   @Override
   public void init(ServletConfig var1) throws ServletException {
      super.init(var1);

      try {
         ApplicationContext var2 = this.getApplicationContext();
         String[] var5 = b;
         this.auditContextFactory = (AuditContextFactory)var2.getBean(var5[31], AuditContextFactory.class);
         this.soapFaultManager = (SoapFaultManager)var2.getBean(var5[15], SoapFaultManager.class);
         DefaultKey var3 = (DefaultKey)var2.getBean(var5[44], DefaultKey.class);
         this.nodeId = (String)var2.getBean(var5[48], String.class);
         this.serverCertificate = var3.getServerSslInfo().getCertificate().getEncoded();
         PolicyPathBuilderFactory var4 = (PolicyPathBuilderFactory)var2.getBean(var5[17], PolicyPathBuilderFactory.class);
         this.policyPathBuilder = var4.makePathBuilder();
         this.policyCache = (PolicyCache)var2.getBean(var5[50], PolicyCache.class);
         this.secureRandom = this.getBean(var5[14], SecureRandom.class);
      } catch (BeansException var6) {
         throw new ServletException(var6);
      } catch (IOException var7) {
         throw new ServletException(var7);
      } catch (CertificateException var8) {
         throw new ServletException(var8);
      }
   }

   @Override
   protected String getFeature() {
      return b[0];
   }

   @Override
   protected Endpoint getRequiredEndpoint() {
      return Endpoint.POLICYDISCO;
   }

   protected void doPost(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
      PolicyEnforcementContext var3 = null;

      try {
         String var10000 = var1.getContentType();
         String[] var10 = b;
         if (var10000.startsWith(var10[39])) {
            Message var4 = new Message();
            var4.initialize(new ByteArrayStashManager(), ContentTypeHeader.parseValue(var1.getContentType()), var1.getInputStream(), Message.getMaxBytes());
            var4.attachHttpRequestKnob(new HttpServletRequestKnob(var1));
            Message var5 = new Message();
            var5.attachHttpResponseKnob(new HttpServletResponseKnob(var2));
            var3 = PolicyEnforcementContextFactory.createPolicyEnforcementContext(var4, var5, true);
            boolean[] var6 = new boolean[]{false};
            PolicyEnforcementContext var7 = var3;
            var10 = b;
            SystemAuditRecord var8 = new SystemAuditRecord(
               Level.INFO, this.nodeId, Component.GW_POLICY_SERVICE, var10[23], false, null, null, null, var10[5], var1.getRemoteAddr()
            );
            this.auditContextFactory.doWithNewAuditContext(var8, new ab(this, var1, var7, var2, var5, var6));
            return;
         }

         this.logger.warning(var10[9] + var1.getContentType());
      } catch (Exception var13) {
         this.logger.log(Level.SEVERE, b[11], var13);
         this.sendExceptionFault(var3, var13, var2);
         return;
      } finally {
         ResourceUtils.closeQuietly(var3);
      }
   }

   protected PolicyService getPolicyService() {
      return (PolicyService)this.getApplicationContext().getBean(b[35]);
   }

   protected PolicyService.PolicyGetter normalPolicyGetter(boolean var1, boolean var2, boolean var3) {
      return new ac(this, var2, var1, var3);
   }

   protected void doGet(HttpServletRequest param1, HttpServletResponse param2) throws ServletException, IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_SERVICEOID Ljava/lang/String;
      // 004: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 009: astore 3
      // 00a: aload 1
      // 00b: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_GETCERT Ljava/lang/String;
      // 00e: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 013: astore 4
      // 015: aload 1
      // 016: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_USERNAME Ljava/lang/String;
      // 019: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 01e: astore 5
      // 020: aload 1
      // 021: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_NONCE Ljava/lang/String;
      // 024: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 029: astore 6
      // 02b: aload 1
      // 02c: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_FULLDOC Ljava/lang/String;
      // 02f: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 034: astore 7
      // 036: aload 1
      // 037: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_INLINE Ljava/lang/String;
      // 03a: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 03f: astore 8
      // 041: aload 1
      // 042: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_INCLUDE_COMMENTS Ljava/lang/String;
      // 045: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 04a: astore 9
      // 04c: aload 4
      // 04e: ifnull 085
      // 051: aload 0
      // 052: aload 2
      // 053: aload 5
      // 055: aload 6
      // 057: invokevirtual com/l7tech/server/policy/PolicyServlet.doCertDownload (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;)V
      // 05a: goto 084
      // 05d: astore 10
      // 05f: aload 0
      // 060: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 063: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 066: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 069: astore 18
      // 06b: aload 18
      // 06d: bipush 57
      // 06f: aaload
      // 070: aload 10
      // 072: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 075: new jakarta/servlet/ServletException
      // 078: dup
      // 079: aload 18
      // 07b: bipush 22
      // 07d: aaload
      // 07e: aload 10
      // 080: invokespecial jakarta/servlet/ServletException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 083: athrow
      // 084: return
      // 085: aload 0
      // 086: aload 1
      // 087: invokevirtual com/l7tech/server/policy/PolicyServlet.authenticateRequestBasic (Ljakarta/servlet/http/HttpServletRequest;)[Lcom/l7tech/server/identity/AuthenticationResult;
      // 08a: astore 10
      // 08c: goto 0ff
      // 08f: astore 11
      // 091: aload 0
      // 092: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 095: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 098: aload 11
      // 09a: invokevirtual com/l7tech/identity/AuthenticationException.getMessage ()Ljava/lang/String;
      // 09d: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 0a0: astore 18
      // 0a2: aload 18
      // 0a4: bipush 16
      // 0a6: aaload
      // 0a7: swap
      // 0a8: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 0ad: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0b0: bipush 0
      // 0b1: anewarray 104
      // 0b4: astore 10
      // 0b6: goto 0ff
      // 0b9: astore 11
      // 0bb: aload 0
      // 0bc: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 0bf: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0c2: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 0c5: astore 18
      // 0c7: aload 18
      // 0c9: bipush 49
      // 0cb: aaload
      // 0cc: aload 11
      // 0ce: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0d1: aload 0
      // 0d2: aload 2
      // 0d3: aload 18
      // 0d5: bipush 54
      // 0d7: aaload
      // 0d8: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 0db: return
      // 0dc: astore 11
      // 0de: aload 0
      // 0df: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 0e2: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0e5: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 0e8: astore 18
      // 0ea: aload 18
      // 0ec: bipush 55
      // 0ee: aaload
      // 0ef: aload 11
      // 0f1: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0f4: aload 0
      // 0f5: aload 2
      // 0f6: aload 18
      // 0f8: bipush 10
      // 0fa: aaload
      // 0fb: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 0fe: return
      // 0ff: bipush 0
      // 100: istore 11
      // 102: aload 7
      // 104: ifnull 17e
      // 107: aload 7
      // 109: invokevirtual java/lang/String.length ()I
      // 10c: ifle 17e
      // 10f: goto 116
      // 112: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 115: athrow
      // 116: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 119: bipush 58
      // 11b: aaload
      // 11c: aload 7
      // 11e: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 121: ifne 13a
      // 124: goto 12b
      // 127: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12a: athrow
      // 12b: aload 7
      // 12d: invokestatic java/lang/Boolean.parseBoolean (Ljava/lang/String;)Z
      // 130: ifeq 142
      // 133: goto 13a
      // 136: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 139: athrow
      // 13a: bipush 1
      // 13b: goto 143
      // 13e: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 141: athrow
      // 142: bipush 0
      // 143: istore 11
      // 145: aload 0
      // 146: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 149: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_FULLDOC Ljava/lang/String;
      // 14c: aload 7
      // 14e: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 151: bipush 24
      // 153: aaload
      // 154: dup_x2
      // 155: pop
      // 156: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 159: bipush 51
      // 15b: aaload
      // 15c: swap
      // 15d: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 162: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 165: iload 11
      // 167: ifeq 17e
      // 16a: aload 0
      // 16b: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 16e: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 171: bipush 6
      // 173: aaload
      // 174: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 177: goto 17e
      // 17a: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17d: athrow
      // 17e: bipush 0
      // 17f: istore 12
      // 181: aload 9
      // 183: ifnull 1fc
      // 186: aload 9
      // 188: invokevirtual java/lang/String.length ()I
      // 18b: ifle 1fc
      // 18e: goto 195
      // 191: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 194: athrow
      // 195: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 198: bipush 1
      // 199: aaload
      // 19a: aload 9
      // 19c: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 19f: ifne 1b8
      // 1a2: goto 1a9
      // 1a5: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a8: athrow
      // 1a9: aload 7
      // 1ab: invokestatic java/lang/Boolean.parseBoolean (Ljava/lang/String;)Z
      // 1ae: ifeq 1c0
      // 1b1: goto 1b8
      // 1b4: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b7: athrow
      // 1b8: bipush 1
      // 1b9: goto 1c1
      // 1bc: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1bf: athrow
      // 1c0: bipush 0
      // 1c1: istore 12
      // 1c3: aload 0
      // 1c4: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 1c7: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_INCLUDE_COMMENTS Ljava/lang/String;
      // 1ca: aload 9
      // 1cc: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 1cf: bipush 56
      // 1d1: aaload
      // 1d2: dup_x2
      // 1d3: pop
      // 1d4: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 1d7: bipush 25
      // 1d9: aaload
      // 1da: swap
      // 1db: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 1e0: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 1e3: iload 12
      // 1e5: ifeq 1fc
      // 1e8: aload 0
      // 1e9: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 1ec: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 1ef: bipush 30
      // 1f1: aaload
      // 1f2: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 1f5: goto 1fc
      // 1f8: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1fb: athrow
      // 1fc: bipush 0
      // 1fd: istore 13
      // 1ff: aload 8
      // 201: ifnull 27a
      // 204: aload 8
      // 206: invokevirtual java/lang/String.length ()I
      // 209: ifle 27a
      // 20c: goto 213
      // 20f: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 212: athrow
      // 213: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 216: bipush 1
      // 217: aaload
      // 218: aload 8
      // 21a: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 21d: ifne 236
      // 220: goto 227
      // 223: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 226: athrow
      // 227: aload 8
      // 229: invokestatic java/lang/Boolean.parseBoolean (Ljava/lang/String;)Z
      // 22c: ifeq 23e
      // 22f: goto 236
      // 232: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 235: athrow
      // 236: bipush 1
      // 237: goto 23f
      // 23a: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23d: athrow
      // 23e: bipush 0
      // 23f: istore 13
      // 241: aload 0
      // 242: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 245: getstatic com/l7tech/common/protocol/SecureSpanConstants$HttpQueryParameters.PARAM_INLINE Ljava/lang/String;
      // 248: aload 8
      // 24a: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 24d: bipush 56
      // 24f: aaload
      // 250: dup_x2
      // 251: pop
      // 252: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 255: bipush 25
      // 257: aaload
      // 258: swap
      // 259: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 25e: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 261: iload 13
      // 263: ifeq 27a
      // 266: aload 0
      // 267: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 26a: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 26d: bipush 20
      // 26f: aaload
      // 270: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 273: goto 27a
      // 276: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 279: athrow
      // 27a: aload 0
      // 27b: aload 1
      // 27c: invokevirtual com/l7tech/server/policy/PolicyServlet.systemAllowsAnonymousDownloads (Ljakarta/servlet/http/HttpServletRequest;)Z
      // 27f: ifne 285
      // 282: bipush 0
      // 283: istore 11
      // 285: iload 11
      // 287: ifne 28d
      // 28a: bipush 1
      // 28b: istore 13
      // 28d: aload 0
      // 28e: aload 1
      // 28f: invokevirtual com/l7tech/server/policy/PolicyServlet.systemAllowsDisabledServiceDownloads (Ljakarta/servlet/http/HttpServletRequest;)Z
      // 292: istore 14
      // 294: aload 0
      // 295: invokevirtual com/l7tech/server/policy/PolicyServlet.getPolicyService ()Lcom/l7tech/server/policy/PolicyService;
      // 298: astore 15
      // 29a: aload 10
      // 29c: arraylength
      // 29d: lookupswitch 138 2 0 27 1 83
      // 2b8: aload 15
      // 2ba: aload 3
      // 2bb: aconst_null
      // 2bc: aconst_null
      // 2bd: aload 0
      // 2be: iload 13
      // 2c0: iload 14
      // 2c2: iload 12
      // 2c4: ifeq 2e2
      // 2c7: goto 2ce
      // 2ca: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2cd: athrow
      // 2ce: iload 11
      // 2d0: ifeq 2e2
      // 2d3: goto 2da
      // 2d6: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d9: athrow
      // 2da: bipush 1
      // 2db: goto 2e3
      // 2de: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2e1: athrow
      // 2e2: bipush 0
      // 2e3: invokevirtual com/l7tech/server/policy/PolicyServlet.normalPolicyGetter (ZZZ)Lcom/l7tech/server/policy/PolicyService$PolicyGetter;
      // 2e6: iload 11
      // 2e8: invokevirtual com/l7tech/server/policy/PolicyService.respondToPolicyDownloadRequest (Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/identity/User;Lcom/l7tech/server/policy/PolicyService$PolicyGetter;Z)Lorg/w3c/dom/Document;
      // 2eb: astore 16
      // 2ed: goto 339
      // 2f0: aload 15
      // 2f2: aload 3
      // 2f3: aconst_null
      // 2f4: aload 10
      // 2f6: bipush 0
      // 2f7: aaload
      // 2f8: invokevirtual com/l7tech/server/identity/AuthenticationResult.getUser ()Lcom/l7tech/identity/User;
      // 2fb: aload 0
      // 2fc: iload 13
      // 2fe: iload 14
      // 300: iload 12
      // 302: ifeq 319
      // 305: iload 11
      // 307: ifeq 319
      // 30a: goto 311
      // 30d: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 310: athrow
      // 311: bipush 1
      // 312: goto 31a
      // 315: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 318: athrow
      // 319: bipush 0
      // 31a: invokevirtual com/l7tech/server/policy/PolicyServlet.normalPolicyGetter (ZZZ)Lcom/l7tech/server/policy/PolicyService$PolicyGetter;
      // 31d: iload 11
      // 31f: invokevirtual com/l7tech/server/policy/PolicyService.respondToPolicyDownloadRequest (Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/identity/User;Lcom/l7tech/server/policy/PolicyService$PolicyGetter;Z)Lorg/w3c/dom/Document;
      // 322: astore 16
      // 324: goto 339
      // 327: new java/lang/UnsupportedOperationException
      // 32a: dup
      // 32b: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 32e: astore 18
      // 330: aload 18
      // 332: bipush 59
      // 334: aaload
      // 335: invokespecial java/lang/UnsupportedOperationException.<init> (Ljava/lang/String;)V
      // 338: athrow
      // 339: goto 3ee
      // 33c: astore 17
      // 33e: aload 0
      // 33f: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 342: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 345: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 348: astore 18
      // 34a: aload 18
      // 34c: bipush 8
      // 34e: aaload
      // 34f: aload 17
      // 351: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 354: aload 0
      // 355: aload 2
      // 356: aload 17
      // 358: invokevirtual com/l7tech/server/policy/filter/FilteringException.getMessage ()Ljava/lang/String;
      // 35b: aload 18
      // 35d: bipush 36
      // 35f: aaload
      // 360: swap
      // 361: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 366: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 369: return
      // 36a: astore 17
      // 36c: aload 0
      // 36d: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 370: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 373: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 376: astore 18
      // 378: aload 18
      // 37a: bipush 2
      // 37b: aaload
      // 37c: aload 17
      // 37e: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 381: aload 0
      // 382: aload 2
      // 383: aload 17
      // 385: invokevirtual org/xml/sax/SAXException.getMessage ()Ljava/lang/String;
      // 388: aload 18
      // 38a: bipush 28
      // 38c: aaload
      // 38d: swap
      // 38e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 393: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 396: return
      // 397: astore 17
      // 399: aload 0
      // 39a: aload 2
      // 39b: aload 17
      // 39d: invokevirtual java/lang/IllegalStateException.getMessage ()Ljava/lang/String;
      // 3a0: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 3a3: astore 18
      // 3a5: aload 18
      // 3a7: bipush 29
      // 3a9: aaload
      // 3aa: swap
      // 3ab: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 3b0: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 3b3: return
      // 3b4: astore 17
      // 3b6: aload 0
      // 3b7: aload 2
      // 3b8: aload 17
      // 3ba: invokevirtual java/lang/UnsupportedOperationException.getMessage ()Ljava/lang/String;
      // 3bd: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 3c0: astore 18
      // 3c2: aload 18
      // 3c4: bipush 28
      // 3c6: aaload
      // 3c7: swap
      // 3c8: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 3cd: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 3d0: return
      // 3d1: astore 17
      // 3d3: aload 0
      // 3d4: aload 2
      // 3d5: aload 17
      // 3d7: invokevirtual com/l7tech/policy/assertion/PolicyAssertionException.getMessage ()Ljava/lang/String;
      // 3da: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 3dd: astore 18
      // 3df: aload 18
      // 3e1: bipush 28
      // 3e3: aaload
      // 3e4: swap
      // 3e5: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 3ea: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 3ed: return
      // 3ee: aload 16
      // 3f0: ifnonnull 427
      // 3f3: aload 10
      // 3f5: ifnull 40d
      // 3f8: goto 3ff
      // 3fb: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3fe: athrow
      // 3ff: aload 10
      // 401: arraylength
      // 402: bipush 1
      // 403: if_icmpge 427
      // 406: goto 40d
      // 409: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 40c: athrow
      // 40d: aload 0
      // 40e: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 411: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 414: bipush 52
      // 416: aaload
      // 417: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 41a: aload 0
      // 41b: aload 1
      // 41c: aload 2
      // 41d: invokevirtual com/l7tech/server/policy/PolicyServlet.sendAuthChallenge (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
      // 420: goto 45f
      // 423: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 426: athrow
      // 427: aload 16
      // 429: ifnonnull 44b
      // 42c: aload 0
      // 42d: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 430: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 433: bipush 47
      // 435: aaload
      // 436: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 439: aload 0
      // 43a: aload 2
      // 43b: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 43e: bipush 53
      // 440: aaload
      // 441: invokevirtual com/l7tech/server/policy/PolicyServlet.returnError (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;)V
      // 444: goto 45f
      // 447: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 44a: athrow
      // 44b: aload 0
      // 44c: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 44f: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 452: bipush 37
      // 454: aaload
      // 455: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 458: aload 0
      // 459: aload 2
      // 45a: aload 16
      // 45c: invokevirtual com/l7tech/server/policy/PolicyServlet.outputPolicyDoc (Ljakarta/servlet/http/HttpServletResponse;Lorg/w3c/dom/Document;)V
      // 45f: return
      // try (30 -> 35): 36 java/lang/Exception
      // try (56 -> 60): 61 com/l7tech/identity/AuthenticationException
      // try (56 -> 60): 79 com/l7tech/gateway/common/LicenseException
      // try (56 -> 60): 97 com/l7tech/server/transport/ListenerException
      // try (345 -> 352): 352 java/lang/Exception
      // try (333 -> 347): 348 java/lang/Exception
      // try (318 -> 325): 325 java/lang/Exception
      // try (306 -> 320): 321 java/lang/Exception
      // try (303 -> 315): 316 java/lang/Exception
      // try (260 -> 283): 284 java/lang/Exception
      // try (248 -> 256): 256 java/lang/Exception
      // try (239 -> 251): 252 java/lang/Exception
      // try (233 -> 245): 246 java/lang/Exception
      // try (231 -> 236): 237 java/lang/Exception
      // try (203 -> 226): 227 java/lang/Exception
      // try (191 -> 199): 199 java/lang/Exception
      // try (182 -> 194): 195 java/lang/Exception
      // try (176 -> 188): 189 java/lang/Exception
      // try (174 -> 179): 180 java/lang/Exception
      // try (146 -> 169): 170 java/lang/Exception
      // try (134 -> 142): 142 java/lang/Exception
      // try (125 -> 137): 138 java/lang/Exception
      // try (119 -> 131): 132 java/lang/Exception
      // try (117 -> 122): 123 java/lang/Exception
      // try (303 -> 369): 370 com/l7tech/server/policy/filter/FilteringException
      // try (303 -> 369): 392 org/xml/sax/SAXException
      // try (303 -> 369): 414 java/lang/IllegalStateException
      // try (303 -> 369): 428 java/lang/UnsupportedOperationException
      // try (303 -> 369): 442 com/l7tech/policy/assertion/PolicyAssertionException
      // try (456 -> 460): 461 java/lang/Exception
      // try (458 -> 467): 468 java/lang/Exception
      // try (463 -> 481): 481 java/lang/Exception
      // try (483 -> 498): 498 java/lang/Exception
   }

   private boolean systemAllowsAnonymousDownloads(HttpServletRequest var1) {
      String[] var6 = b;
      String var2 = this.config.getProperty(var6[32]);
      StringTokenizer var3 = new StringTokenizer(var2);
      String var4 = var1.getRemoteAddr();

      while (var3.hasMoreTokens()) {
         String var5 = var3.nextToken();

         try {
            if (InetAddressUtil.patternMatchesAddress(var5, InetAddressUtil.getAddress(var4))) {
               this.logger.fine(b[21] + var4 + b[61] + var5);
               return true;
            }
         } catch (BeansException var7) {
            throw a(var7);
         }
      }

      var6 = b;
      this.logger.finest(var6[13] + var4 + var6[33] + var2);
      return false;
   }

   private boolean systemAllowsDisabledServiceDownloads(HttpServletRequest var1) {
      boolean var2 = false;
      String[] var4 = b;
      String var3 = this.config.getProperty(var4[3]);
      if (var4[60].equalsIgnoreCase(var3)) {
         var2 = true;
      } else if (b[7].equalsIgnoreCase(var3)) {
         var2 = this.systemAllowsAnonymousDownloads(var1);
      }

      return var2;
   }

   private void doCertDownload(HttpServletResponse param1, String param2, String param3) throws FindException, IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 04: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 07: astore 10
      // 09: aload 10
      // 0b: bipush 46
      // 0d: aaload
      // 0e: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 11: aload 0
      // 12: getfield com/l7tech/server/policy/PolicyServlet.serverCertificate [B
      // 15: invokestatic com/l7tech/common/io/CertUtils.encodeAsPEM ([B)Ljava/lang/String;
      // 18: astore 4
      // 1a: aload 4
      // 1c: getstatic com/l7tech/util/Charsets.UTF8 Ljava/nio/charset/Charset;
      // 1f: invokevirtual java/lang/String.getBytes (Ljava/nio/charset/Charset;)[B
      // 22: astore 5
      // 24: aload 10
      // 26: bipush 41
      // 28: aaload
      // 29: bipush 0
      // 2a: invokestatic com/l7tech/util/ConfigFactory.getBooleanProperty (Ljava/lang/String;Z)Z
      // 2d: istore 6
      // 2f: iload 6
      // 31: ifeq 8a
      // 34: aload 2
      // 35: ifnull 8a
      // 38: goto 3f
      // 3b: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3e: athrow
      // 3f: aload 3
      // 40: ifnull 8a
      // 43: goto 4a
      // 46: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 49: athrow
      // 4a: aload 0
      // 4b: aload 2
      // 4c: aload 5
      // 4e: aload 3
      // 4f: invokevirtual com/l7tech/server/policy/PolicyServlet.findCheckInfoHeaders (Ljava/lang/String;[BLjava/lang/String;)Ljava/util/Collection;
      // 52: astore 7
      // 54: aload 7
      // 56: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 5b: astore 8
      // 5d: aload 8
      // 5f: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 64: ifeq 8a
      // 67: aload 8
      // 69: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 6e: checkcast com/l7tech/common/http/HttpHeader
      // 71: astore 9
      // 73: aload 1
      // 74: aload 9
      // 76: invokeinterface com/l7tech/common/http/HttpHeader.getName ()Ljava/lang/String; 1
      // 7b: aload 9
      // 7d: invokeinterface com/l7tech/common/http/HttpHeader.getFullValue ()Ljava/lang/String; 1
      // 82: invokeinterface jakarta/servlet/http/HttpServletResponse.addHeader (Ljava/lang/String;Ljava/lang/String;)V 3
      // 87: goto 5d
      // 8a: aload 1
      // 8b: sipush 200
      // 8e: invokeinterface jakarta/servlet/http/HttpServletResponse.setStatus (I)V 2
      // 93: aload 1
      // 94: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 97: bipush 26
      // 99: aaload
      // 9a: invokeinterface jakarta/servlet/http/HttpServletResponse.setContentType (Ljava/lang/String;)V 2
      // 9f: aload 1
      // a0: aload 5
      // a2: arraylength
      // a3: invokeinterface jakarta/servlet/http/HttpServletResponse.setContentLength (I)V 2
      // a8: aload 1
      // a9: invokeinterface jakarta/servlet/http/HttpServletResponse.getOutputStream ()Ljakarta/servlet/ServletOutputStream; 1
      // ae: aload 5
      // b0: invokevirtual jakarta/servlet/ServletOutputStream.write ([B)V
      // b3: aload 1
      // b4: invokeinterface jakarta/servlet/http/HttpServletResponse.flushBuffer ()V 1
      // b9: return
      // try (22 -> 26): 27 com/l7tech/objectmodel/FindException
      // try (24 -> 31): 32 com/l7tech/objectmodel/FindException
   }

   private void outputPolicyDoc(HttpServletResponse var1, Document var2) throws IOException {
      var1.setContentType(XmlUtil.TEXT_XML);
      var1.setStatus(200);
      ServletOutputStream var3 = var1.getOutputStream();
      XmlUtil.nodeToOutputStream(var2, var3);
      var3.close();
   }

   private Collection<HttpHeader> findCheckInfoHeaders(String param1, byte[] param2, String param3) throws FindException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: new java/util/ArrayList
      // 003: dup
      // 004: invokespecial java/util/ArrayList.<init> ()V
      // 007: astore 4
      // 009: aload 1
      // 00a: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 00d: astore 5
      // 00f: aload 3
      // 010: getstatic com/l7tech/util/Charsets.UTF8 Ljava/nio/charset/Charset;
      // 013: invokevirtual java/lang/String.getBytes (Ljava/nio/charset/Charset;)[B
      // 016: astore 6
      // 018: bipush 0
      // 019: istore 7
      // 01b: aload 0
      // 01c: getfield com/l7tech/server/policy/PolicyServlet.identityProviderFactory Lcom/l7tech/server/identity/IdentityProviderFactory;
      // 01f: invokevirtual com/l7tech/server/identity/IdentityProviderFactory.findAllIdentityProviders ()Ljava/util/Collection;
      // 022: astore 8
      // 024: aload 8
      // 026: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 02b: astore 9
      // 02d: aload 9
      // 02f: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 034: ifeq 160
      // 037: aload 9
      // 039: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 03e: checkcast com/l7tech/identity/IdentityProvider
      // 041: astore 10
      // 043: aload 10
      // 045: invokeinterface com/l7tech/identity/IdentityProvider.getUserManager ()Lcom/l7tech/identity/UserManager; 1
      // 04a: aload 5
      // 04c: invokeinterface com/l7tech/identity/UserManager.findByLogin (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 051: astore 11
      // 053: aload 11
      // 055: ifnull 10b
      // 058: bipush 0
      // 059: istore 12
      // 05b: aload 11
      // 05d: instanceof com/l7tech/identity/internal/InternalUser
      // 060: ifeq 072
      // 063: aload 11
      // 065: checkcast com/l7tech/identity/internal/InternalUser
      // 068: invokevirtual com/l7tech/identity/internal/InternalUser.getHashedPassword ()Ljava/lang/String;
      // 06b: goto 073
      // 06e: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 071: athrow
      // 072: aconst_null
      // 073: astore 13
      // 075: aload 13
      // 077: ifnull 103
      // 07a: aload 0
      // 07b: getfield com/l7tech/server/policy/PolicyServlet.passwordHasher Lcom/l7tech/common/password/PasswordHasher;
      // 07e: aload 13
      // 080: invokeinterface com/l7tech/common/password/PasswordHasher.isVerifierRecognized (Ljava/lang/String;)Z 2
      // 085: ifeq 103
      // 088: goto 08f
      // 08b: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08e: athrow
      // 08f: aload 0
      // 090: getfield com/l7tech/server/policy/PolicyServlet.passwordHasher Lcom/l7tech/common/password/PasswordHasher;
      // 093: aload 13
      // 095: invokeinterface com/l7tech/common/password/PasswordHasher.extractSaltFromVerifier (Ljava/lang/String;)[B 2
      // 09a: astore 14
      // 09c: aload 14
      // 09e: ifnull 103
      // 0a1: aload 14
      // 0a3: invokestatic com/l7tech/util/HexUtils.hexDump ([B)Ljava/lang/String;
      // 0a6: astore 15
      // 0a8: aload 10
      // 0aa: invokeinterface com/l7tech/identity/IdentityProvider.getConfig ()Lcom/l7tech/identity/IdentityProviderConfig; 1
      // 0af: invokevirtual com/l7tech/identity/IdentityProviderConfig.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 0b2: invokestatic com/l7tech/objectmodel/Goid.toString (Lcom/l7tech/objectmodel/Goid;)Ljava/lang/String;
      // 0b5: astore 16
      // 0b7: bipush 16
      // 0b9: newarray 8
      // 0bb: astore 17
      // 0bd: aload 0
      // 0be: getfield com/l7tech/server/policy/PolicyServlet.secureRandom Ljava/security/SecureRandom;
      // 0c1: aload 17
      // 0c3: invokevirtual java/security/SecureRandom.nextBytes ([B)V
      // 0c6: aload 17
      // 0c8: invokestatic com/l7tech/util/HexUtils.hexDump ([B)Ljava/lang/String;
      // 0cb: astore 18
      // 0cd: aload 13
      // 0cf: getstatic com/l7tech/util/Charsets.UTF8 Ljava/nio/charset/Charset;
      // 0d2: invokevirtual java/lang/String.getBytes (Ljava/nio/charset/Charset;)[B
      // 0d5: aload 6
      // 0d7: aload 17
      // 0d9: aload 2
      // 0da: invokestatic com/l7tech/common/io/CertUtils.getVerifierBytes ([B[B[B[B)[B
      // 0dd: astore 19
      // 0df: aload 19
      // 0e1: invokestatic com/l7tech/util/HexUtils.hexDump ([B)Ljava/lang/String;
      // 0e4: astore 20
      // 0e6: aload 4
      // 0e8: new com/l7tech/common/http/CertificateCheck2Info
      // 0eb: dup
      // 0ec: aload 16
      // 0ee: aload 18
      // 0f0: aload 20
      // 0f2: aload 15
      // 0f4: invokespecial com/l7tech/common/http/CertificateCheck2Info.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 0f7: invokevirtual com/l7tech/common/http/CertificateCheck2Info.asHttpHeader ()Lcom/l7tech/common/http/HttpHeader;
      // 0fa: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0ff: pop
      // 100: bipush 1
      // 101: istore 12
      // 103: iload 12
      // 105: ifne 10b
      // 108: bipush 1
      // 109: istore 7
      // 10b: goto 15d
      // 10e: astore 11
      // 110: aload 0
      // 111: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 114: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 117: aload 11
      // 119: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 11c: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 11f: astore 21
      // 121: aload 21
      // 123: bipush 40
      // 125: aaload
      // 126: swap
      // 127: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 12c: aload 11
      // 12e: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 131: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 134: goto 15d
      // 137: astore 11
      // 139: aload 0
      // 13a: getfield com/l7tech/server/policy/PolicyServlet.logger Ljava/util/logging/Logger;
      // 13d: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 140: aload 11
      // 142: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 145: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 148: astore 21
      // 14a: aload 21
      // 14c: bipush 19
      // 14e: aaload
      // 14f: swap
      // 150: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 155: aload 11
      // 157: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 15a: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 15d: goto 02d
      // 160: aload 0
      // 161: invokevirtual com/l7tech/server/policy/PolicyServlet.getApplicationContext ()Lorg/springframework/context/ApplicationContext;
      // 164: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 167: astore 21
      // 169: aload 21
      // 16b: bipush 45
      // 16d: aaload
      // 16e: invokeinterface org/springframework/context/ApplicationContext.getBean (Ljava/lang/String;)Ljava/lang/Object; 2
      // 173: checkcast com/l7tech/gateway/common/custom/CustomAssertionsRegistrar
      // 176: astore 9
      // 178: iload 7
      // 17a: ifne 19a
      // 17d: aload 9
      // 17f: ifnull 1bd
      // 182: goto 189
      // 185: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 188: athrow
      // 189: aload 9
      // 18b: invokeinterface com/l7tech/gateway/common/custom/CustomAssertionsRegistrar.hasCustomCredentialSource ()Z 1
      // 190: ifeq 1bd
      // 193: goto 19a
      // 196: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 199: athrow
      // 19a: aload 4
      // 19c: new com/l7tech/common/http/CertificateCheck2Info
      // 19f: dup
      // 1a0: getstatic com/l7tech/server/policy/PolicyServlet.DUMMY_ID_PROVIDER_OID Ljava/lang/String;
      // 1a3: ldc ""
      // 1a5: getstatic com/l7tech/common/protocol/SecureSpanConstants.NOPASS Ljava/lang/String;
      // 1a8: ldc ""
      // 1aa: invokespecial com/l7tech/common/http/CertificateCheck2Info.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 1ad: invokevirtual com/l7tech/common/http/CertificateCheck2Info.asHttpHeader ()Lcom/l7tech/common/http/HttpHeader;
      // 1b0: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 1b5: pop
      // 1b6: goto 1bd
      // 1b9: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1bc: athrow
      // 1bd: aload 4
      // 1bf: invokeinterface java/util/List.isEmpty ()Z 1
      // 1c4: ifne 1ec
      // 1c7: aload 4
      // 1c9: new com/l7tech/common/http/Pre60CertificateCheckInfo
      // 1cc: dup
      // 1cd: getstatic com/l7tech/server/policy/PolicyServlet.DUMMY_ID_PROVIDER_OID Ljava/lang/String;
      // 1d0: getstatic com/l7tech/common/protocol/SecureSpanConstants.NOPASS Ljava/lang/String;
      // 1d3: getstatic com/l7tech/server/policy/PolicyServlet.b [Ljava/lang/String;
      // 1d6: bipush 38
      // 1d8: aaload
      // 1d9: invokespecial com/l7tech/common/http/Pre60CertificateCheckInfo.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 1dc: invokevirtual com/l7tech/common/http/Pre60CertificateCheckInfo.asHttpHeader ()Lcom/l7tech/common/http/HttpHeader;
      // 1df: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 1e4: pop
      // 1e5: goto 1ec
      // 1e8: invokestatic com/l7tech/server/policy/PolicyServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1eb: athrow
      // 1ec: aload 4
      // 1ee: areturn
      // try (47 -> 54): 55 com/l7tech/objectmodel/FindException
      // try (36 -> 43): 43 com/l7tech/objectmodel/FindException
      // try (27 -> 110): 111 com/l7tech/objectmodel/FindException
      // try (27 -> 110): 128 java/security/NoSuchAlgorithmException
      // try (155 -> 159): 160 com/l7tech/objectmodel/FindException
      // try (157 -> 165): 166 com/l7tech/objectmodel/FindException
      // try (162 -> 179): 180 com/l7tech/objectmodel/FindException
      // try (182 -> 197): 198 com/l7tech/objectmodel/FindException
   }

   private void sendAuthChallenge(HttpServletRequest var1, HttpServletResponse var2) throws IOException {
      String var10000 = InetAddressUtil.getHostForUrl(var1.getServerName());
      String[] var6 = b;
      String var3 = var6[12] + var10000;
      int var4 = this.config.getIntProperty(var6[4], 8080);
      int var5 = this.config.getIntProperty(var6[43], 8443);

      label19: {
         try {
            if (var1.getServerPort() != var4 && var1.getServerPort() != var5) {
               break label19;
            }
         } catch (IOException var7) {
            throw a(var7);
         }

         var3 = var3 + ":" + var5;
      }

      var3 = var3 + var1.getRequestURI() + "?" + var1.getQueryString();
      var2.setHeader(HttpHeaders.POLICYURL_HEADER, var3);
      var2.setStatus(401);
      var6 = b;
      this.logger.fine(var6[27]);
      var2.setHeader(var6[18], var6[42]);
      var2.getOutputStream().close();
   }

   private User getUser(PolicyEnforcementContext var1) {
      Object var2 = null;
      if (var1.getDefaultAuthenticationContext().isAuthenticated()) {
         var2 = var1.getDefaultAuthenticationContext().getLastAuthenticatedUser();
      }

      if (var2 == null) {
         var2 = new UserBean();
      }

      return (User)var2;
   }

   private String getName(User var1) {
      try {
         if (var1.getName() != null) {
            return var1.getName();
         }
      } catch (BeansException var2) {
         throw a(var2);
      }

      return var1.getLogin();
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
   private void returnFault(PolicyEnforcementContext var1, HttpServletResponse var2) throws IOException {
      ServletOutputStream var3 = null;
      boolean var9 = false /* VF: Semaphore variable */;

      try {
         var9 = true;
         var3 = var2.getOutputStream();
         var2.setStatus(500);
         SoapFaultLevel var4 = var1.getFaultlevel();
         SoapFaultManager.FaultResponse var5 = this.soapFaultManager.constructReturningFault(var4, var1);
         this.soapFaultManager.sendExtraHeaders(var5, var2);
         var2.setContentType(var5.getContentType().getFullValue());
         var3.write(var5.getContentBytes());
         var9 = false;
      } finally {
         if (var9) {
            try {
               if (var3 != null) {
                  var3.close();
               }
            } catch (IOException var10) {
               throw a(var10);
            }
         }
      }

      if (var3 != null) {
         var3.close();
      }
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
   private void returnError(HttpServletResponse var1, String var2) throws IOException {
      ServletOutputStream var3 = null;
      boolean var7 = false /* VF: Semaphore variable */;

      try {
         var7 = true;
         var3 = var1.getOutputStream();
         var1.setContentType(b[34]);
         var1.setStatus(500);
         var3.write(var2.getBytes());
         var7 = false;
      } finally {
         if (var7) {
            try {
               if (var3 != null) {
                  var3.close();
               }
            } catch (IOException var8) {
               throw a(var8);
            }
         }
      }

      if (var3 != null) {
         var3.close();
      }
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
   private void sendExceptionFault(PolicyEnforcementContext var1, Throwable var2, HttpServletResponse var3) throws IOException {
      ServletOutputStream var4 = null;
      boolean var9 = false /* VF: Semaphore variable */;

      try {
         var9 = true;
         SoapFaultManager.FaultResponse var5 = this.soapFaultManager.constructExceptionFault(var2, null, var1);
         this.soapFaultManager.sendExtraHeaders(var5, var3);
         var4 = var3.getOutputStream();
         var3.setContentType(var5.getContentType().getFullValue());
         var3.setStatus(500);
         var4.write(var5.getContentBytes());
         var9 = false;
      } finally {
         if (var9) {
            try {
               if (var4 != null) {
                  var4.close();
               }
            } catch (IOException var10) {
               throw a(var10);
            }
         }
      }

      if (var4 != null) {
         var4.close();
      }
   }

   static {
      String[] var5 = new String[62];
      int var3 = 0;
      String var2 = "|^G!\u0007Ov5kZ;\u0007Oj\u0003v^F\u0016JIG8\u001c\fza\u001be8\u0002EpvhP%\u0018Epj |^G!\u0007Ov!_\\$\u000fN\u007fj_f2\u001cZzl^q8\u0019B\u007f`ZQ$\bgOA'>Ca{\u0003H~a0XRY;N\\r|HA?\u001cCfhS\u00156\u0000H3}^A\"\u001cB3iNY;N\\|cRV.NH|lNX2\u0000X\u000b\u007fZF$\u001aDa`NR?\u0016JIG8\u001c\fza\u001be8\u0002EpvhP%\u0018Epj\u0011MZQw\rC}{^[#NXj\u007f^\u00159HZA2\u0019Mj/KZ;\u0007Oj/_\\$\rCejILw\u001dIayRV2NB|{\u001bP9\u000fN\u007fj_\u00158\u0000\fggRFw\u001eCa{\u0015ZUP/\u001eIp{^Qw\u000bTpjKA>\u0001B)\bgOA'\u001d\u0016< \n}^X8\u001aI3fK\u0015\f|^V\"\u001cIAnUQ8\u0003\u0010|TT'(MfcOx6\u0000MtjI\u001aNNA?\u000bBgfXT#\u0007C}/^M4\u000b\\gfT[mN\u0018\u007fTY>\rUCnO]\u0015\u001bE\u007fk^G\u0011\u000fOg`IL\u0010Xlbz/Ygg^[#\u0007Or{^$ZUT5\u0002I3{T\u0015#\u0001\fp`VE\"\u001aI3l^G#NZv}RS>\u000b^)/3XRY;N\\r|HA?\u001cCfhS\u00156\u0000H3}^A\"\u001cB3fUY>\u0000Iw/KZ;\u0007Oj/_Z4\u001bAvaO\n}^X8\u001aI3fK\u0015\u001dZUT5\u0002I3{T\u00151\u001b@ufW\u00154\u000b^g/IP&\u001bI`{\u000e_TY>\rU3}^D\"\u000b_g\u0011_ZF$\u000bH3yZY\"\u000b\fu`I\u0015\u0005/LT$N\u001enKE;\u0007Or{RZ9AT>w\u000e\u0005nC_v}MP%COv}O%|^[3\u0007Bt/YT4\u0005\frzO]2\u0000XzlZA>\u0001B3lST;\u0002I}h^\u000efUA2\u001cBrc\u001bP%\u001cCa\u0007JIG8\u001c\u00163/XRY;NE}lW@3\u000b\fp`VX2\u0000X`/L\\#\u0006\fuzWYw\u001eC\u007ffXLw\nCpzVP9\u001a\u0013nNQ>\u001ao|aOP/\u001ajrlOZ%\u0017\u0014\u007fZF$\u001aDa`NR?*CdaWZ6\n_*/LT$NB|{\u001bT\"\u001aD|}RO2\n\fqv\u001bT9\u0017\fcnHF#\u0006^|z\\]w\u0007B3\n{^M#A\\\u007fnR[\r\u007fTY>\rU@jIC>\rI\u000efUA2\u001cBrc\u001bP%\u001cCa\u0010}^A\"\u001cBza\\\u0015'\u0001@zlB\u0005kNX:\u0017\b{^M#AT~c(ZUT5\u0002I3{T\u0015#\u0001\fajOG>\u000bZv/NF2\u001c\fza]Z%\u0003MgfT[mN$|^G!\u0007Ov|\u0015V2\u001cXziRV6\u001aIWfHV8\u0018Iav~[6\f@vk\u001dMZF>\r\fajZY:S\u000e_8hf\u0010,M`fXg2\u000f@~-\tgOA'\u001d||}O\nk^S6\u001b@gD^L\u0018lNF#\u0001AR|HP%\u001aE|aiP0\u0007_g}ZG\u0015]^D\"\u000b_g/]Z%N^|`O\u00154\u000b^g {S\\$N\\|cRV.NH|xUY8\u000fH3fH\u0015%\u000bJf|^Qy\rlW@$\u001aIaATQ2'H$\\^G!\u0007Ov/RFw\u001bB\u007ffXP9\u001dIw#\u001bG2\u001aYaaR[0N\u0019#?\u000b\u007fTY>\rUPnX]2\u0005/LT$N\u0011|^[3\u0007Bt/X]6\u0002@va\\P)_TY>\rU3aTAw\bCfa_\u00158\u001c\fw`L[;\u0001Mw/N[6\u001bX{`I\\-\u000bH7HZA2\u0019Mj/KZ;\u0007Oj/_\\$\rCejILw\u001dIayRV2NB|{\u001bP9\u000fN\u007fj_\u00155\u0017\f\u007ffXP9\u001dI4\\^G!\u0007Ov/RFw\u0000Cg/KP%\u0003Eg{^Qw\u0001B3{S\\$N\\|}O\u0019w\u001cIgzI[>\u0000K3:\u000b\u0005\u0011_ZF$\u000bH3yZY\"\u000b\fu`I\u0015.ZUT5\u0002I3{T\u00151\u001b@ufW\u00154\u000b^gf]\\4\u000fXv/_\\$\rCejILw\u001cIbz^F#\u0003v^F\u000faTAw\u0007Acc^X2\u0000Xvk";
      int var4 = "|^G!\u0007Ov5kZ;\u0007Oj\u0003v^F\u0016JIG8\u001c\fza\u001be8\u0002EpvhP%\u0018Epj |^G!\u0007Ov!_\\$\u000fN\u007fj_f2\u001cZzl^q8\u0019B\u007f`ZQ$\bgOA'>Ca{\u0003H~a0XRY;N\\r|HA?\u001cCfhS\u00156\u0000H3}^A\"\u001cB3iNY;N\\|cRV.NH|lNX2\u0000X\u000b\u007fZF$\u001aDa`NR?\u0016JIG8\u001c\fza\u001be8\u0002EpvhP%\u0018Epj\u0011MZQw\rC}{^[#NXj\u007f^\u00159HZA2\u0019Mj/KZ;\u0007Oj/_\\$\rCejILw\u001dIayRV2NB|{\u001bP9\u000fN\u007fj_\u00158\u0000\fggRFw\u001eCa{\u0015ZUP/\u001eIp{^Qw\u000bTpjKA>\u0001B)\bgOA'\u001d\u0016< \n}^X8\u001aI3fK\u0015\f|^V\"\u001cIAnUQ8\u0003\u0010|TT'(MfcOx6\u0000MtjI\u001aNNA?\u000bBgfXT#\u0007C}/^M4\u000b\\gfT[mN\u0018\u007fTY>\rUCnO]\u0015\u001bE\u007fk^G\u0011\u000fOg`IL\u0010Xlbz/Ygg^[#\u0007Or{^$ZUT5\u0002I3{T\u0015#\u0001\fp`VE\"\u001aI3l^G#NZv}RS>\u000b^)/3XRY;N\\r|HA?\u001cCfhS\u00156\u0000H3}^A\"\u001cB3fUY>\u0000Iw/KZ;\u0007Oj/_Z4\u001bAvaO\n}^X8\u001aI3fK\u0015\u001dZUT5\u0002I3{T\u00151\u001b@ufW\u00154\u000b^g/IP&\u001bI`{\u000e_TY>\rU3}^D\"\u000b_g\u0011_ZF$\u000bH3yZY\"\u000b\fu`I\u0015\u0005/LT$N\u001enKE;\u0007Or{RZ9AT>w\u000e\u0005nC_v}MP%COv}O%|^[3\u0007Bt/YT4\u0005\frzO]2\u0000XzlZA>\u0001B3lST;\u0002I}h^\u000efUA2\u001cBrc\u001bP%\u001cCa\u0007JIG8\u001c\u00163/XRY;NE}lW@3\u000b\fp`VX2\u0000X`/L\\#\u0006\fuzWYw\u001eC\u007ffXLw\nCpzVP9\u001a\u0013nNQ>\u001ao|aOP/\u001ajrlOZ%\u0017\u0014\u007fZF$\u001aDa`NR?*CdaWZ6\n_*/LT$NB|{\u001bT\"\u001aD|}RO2\n\fqv\u001bT9\u0017\fcnHF#\u0006^|z\\]w\u0007B3\n{^M#A\\\u007fnR[\r\u007fTY>\rU@jIC>\rI\u000efUA2\u001cBrc\u001bP%\u001cCa\u0010}^A\"\u001cBza\\\u0015'\u0001@zlB\u0005kNX:\u0017\b{^M#AT~c(ZUT5\u0002I3{T\u0015#\u0001\fajOG>\u000bZv/NF2\u001c\fza]Z%\u0003MgfT[mN$|^G!\u0007Ov|\u0015V2\u001cXziRV6\u001aIWfHV8\u0018Iav~[6\f@vk\u001dMZF>\r\fajZY:S\u000e_8hf\u0010,M`fXg2\u000f@~-\tgOA'\u001d||}O\nk^S6\u001b@gD^L\u0018lNF#\u0001AR|HP%\u001aE|aiP0\u0007_g}ZG\u0015]^D\"\u000b_g/]Z%N^|`O\u00154\u000b^g {S\\$N\\|cRV.NH|xUY8\u000fH3fH\u0015%\u000bJf|^Qy\rlW@$\u001aIaATQ2'H$\\^G!\u0007Ov/RFw\u001bB\u007ffXP9\u001dIw#\u001bG2\u001aYaaR[0N\u0019#?\u000b\u007fTY>\rUPnX]2\u0005/LT$N\u0011|^[3\u0007Bt/X]6\u0002@va\\P)_TY>\rU3aTAw\bCfa_\u00158\u001c\fw`L[;\u0001Mw/N[6\u001bX{`I\\-\u000bH7HZA2\u0019Mj/KZ;\u0007Oj/_\\$\rCejILw\u001dIayRV2NB|{\u001bP9\u000fN\u007fj_\u00155\u0017\f\u007ffXP9\u001dI4\\^G!\u0007Ov/RFw\u0000Cg/KP%\u0003Eg{^Qw\u0001B3{S\\$N\\|}O\u0019w\u001cIgzI[>\u0000K3:\u000b\u0005\u0011_ZF$\u000bH3yZY\"\u000b\fu`I\u0015.ZUT5\u0002I3{T\u00151\u001b@ufW\u00154\u000b^gf]\\4\u000fXv/_\\$\rCejILw\u001cIbz^F#\u0003v^F\u000faTAw\u0007Acc^X2\u0000Xvk"
         .length();
      char var1 = 14;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 50;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     DUMMY_ID_PROVIDER_OID = Goid.toString(new Goid(0L, Long.MAX_VALUE));
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = ")\u0010\u001e%h\u000b\u0013c\t\n!<\u0014\u001db@\u00111,\\\u0010i\t\u001b5;\u000f\u0006x[\u0004!/\u0014RfH\u0007!-\\";
                  var4 = ")\u0010\u001e%h\u000b\u0013c\t\n!<\u0014\u001db@\u00111,\\\u0010i\t\u001b5;\u000f\u0006x[\u0004!/\u0014RfH\u0007!-\\".length();
                  var1 = 3;
                  var7 = -1;
            }

            var10000 = 117;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

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

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 33);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 61;
            case 1 -> 9;
            case 2 -> 7;
            case 3 -> 101;
            case 4 -> 92;
            case 5 -> 30;
            default -> 33;
         });
      }

      return new String(var10001).intern();
   }
}
