package com.l7tech.server.message;

import com.l7tech.common.log.HybridDiagnosticContext;
import com.l7tech.gateway.common.RequestId;
import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.mapping.MessageContextMapping;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.message.Message;
import com.l7tech.message.ProcessingContext;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.MessageTargetable;
import com.l7tech.policy.assertion.RoutingStatus;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.policy.variable.VariableNotSettableException;
import com.l7tech.server.RequestIdGenerator;
import com.l7tech.server.audit.AuditContext;
import com.l7tech.server.message.metrics.GatewayMetricsPublisher;
import com.l7tech.server.message.metrics.GatewayMetricsSupport;
import com.l7tech.server.message.metrics.LatencyMetrics;
import com.l7tech.server.otel.OtelContext;
import com.l7tech.server.otel.OtelContextNoop;
import com.l7tech.server.policy.PolicyMetadata;
import com.l7tech.server.policy.assertion.CompositeRoutingResultListener;
import com.l7tech.server.policy.assertion.RoutingResultListener;
import com.l7tech.server.policy.assertion.ServerAssertion;
import com.l7tech.server.policy.variable.ServerVariables;
import com.l7tech.server.stepdebug.DebugContext;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.Pair;
import com.l7tech.util.TimeSource;
import com.l7tech.xml.SoapFaultLevel;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Deque;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
import java.util.logging.Level;
import javax.wsdl.Binding;
import javax.wsdl.Operation;
import javax.wsdl.WSDLException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.xml.sax.SAXException;

class b extends ProcessingContext<AuthenticationContext> implements PolicyEnforcementContext, GatewayMetricsSupport {
   private final long a;
   private long b;
   private long c;
   private final RequestId d;
   private List<String> e;
   private final Map<ServerAssertion, ServerAssertion> f;
   private boolean g;
   private Level h;
   private boolean i;
   private boolean j;
   private SoapFaultLevel k;
   private boolean l;
   private boolean m;
   private PublishedService n;
   private Set<AssertionStatus> o;
   private final Map<String, Object> p;
   private PolicyContextCache q;
   private CompositeRoutingResultListener r;
   private boolean s;
   private Pair<Binding, Operation> t;
   private RoutingStatus u;
   private URL v;
   private long w;
   private long x;
   private long y;
   private AssertionStatus z;
   private Boolean A;
   private Boolean B;
   private List<MessageContextMapping> C;
   private boolean D;
   private boolean E;
   private boolean F;
   private boolean G;
   private boolean H;
   private boolean I;
   private String J;
   private Deque<Integer> K;
   private AssertionTraceListener L;
   private DebugContext M;
   private PolicyMetadata N;
   private PolicyMetadata O;
   private OtelContext P;
   @Nullable
   private AuditContext Q;
   @Nullable
   private GatewayMetricsPublisher R;
   private final Map<ServerAssertion, AssertionStatus> S;
   private LinkedList<PolicyEnforcementContext.AssertionResult> T;
   private ServerAssertion U;
   private static final String[] V;

   protected b(@Nullable Message var1, @Nullable Message var2, @NotNull TimeSource var3) {
      if (var3 == null) {
         a(0);
      }

      this(var1, var2, var3, RequestIdGenerator.next());
   }

   protected b(@Nullable Message var1, @Nullable Message var2, @NotNull TimeSource var3, @NotNull RequestId var4) {
      if (var3 == null) {
         a(1);
      }

      if (var4 == null) {
         a(2);
      }

      super(var1, var2);
      this.b = 0L;
      this.e = new ArrayList<>();
      this.f = new LinkedHashMap<>();
      this.k = null;
      this.l = false;
      this.m = false;
      this.o = new HashSet<>();
      this.p = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
      this.r = new CompositeRoutingResultListener();
      this.s = false;
      this.t = null;
      this.u = RoutingStatus.NONE;
      this.A = null;
      this.B = null;
      this.C = new ArrayList<>(5);
      this.H = true;
      this.I = true;
      this.K = null;
      this.L = null;
      this.M = null;
      this.N = null;
      this.O = null;
      this.P = new OtelContextNoop();
      this.S = new LinkedHashMap<>();
      this.d = var4;
      HybridDiagnosticContext.put(V[4], this.d.toString());
      this.a = var3.currentTimeMillis();
   }

   protected AuthenticationContext buildContext() {
      return new AuthenticationContext();
   }

   @Override
   public RoutingStatus getRoutingStatus() {
      return this.u;
   }

   @Override
   public void setRoutingStatus(RoutingStatus var1) {
      this.u = var1;
   }

   @Override
   public boolean isPostRouting() {
      // $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: getstatic com/l7tech/policy/assertion/RoutingStatus.ROUTED Lcom/l7tech/policy/assertion/RoutingStatus;
      // 03: aload 0
      // 04: invokevirtual com/l7tech/server/message/b.getRoutingStatus ()Lcom/l7tech/policy/assertion/RoutingStatus;
      // 07: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 0a: ifne 21
      // 0d: getstatic com/l7tech/policy/assertion/RoutingStatus.ATTEMPTED Lcom/l7tech/policy/assertion/RoutingStatus;
      // 10: aload 0
      // 11: invokevirtual com/l7tech/server/message/b.getRoutingStatus ()Lcom/l7tech/policy/assertion/RoutingStatus;
      // 14: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 17: ifeq 29
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: bipush 1
      // 22: goto 2a
      // 25: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 28: athrow
      // 29: bipush 0
      // 2a: ireturn
      // try (0 -> 10): 11 java/lang/NullPointerException
      // try (5 -> 15): 15 java/lang/NullPointerException
   }

   @Override
   public boolean isReplyExpected() {
      return this.g;
   }

   public void setReplyExpected(boolean var1) {
      this.g = var1;
   }

   @Override
   public Level getAuditLevel() {
      return this.h;
   }

   @Override
   public void setAuditLevel(Level var1) {
      this.h = var1;
   }

   @Override
   public RequestId getRequestId() {
      return this.d;
   }

   @Override
   public void addSeenAssertionStatus(AssertionStatus var1) {
      try {
         if (var1 == null) {
            throw new NullPointerException(V[21]);
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }

      this.o.add(var1);
   }

   @Override
   public Set<AssertionStatus> getSeenAssertionStatus() {
      return Collections.unmodifiableSet(this.o);
   }

   @Override
   public boolean isAuditSaveRequest() {
      return this.i;
   }

   @Override
   public void setAuditSaveRequest(boolean var1) {
      this.i = var1;
   }

   @Override
   public boolean isAuditSaveResponse() {
      return this.j;
   }

   @Override
   public void setAuditSaveResponse(boolean var1) {
      this.j = var1;
   }

   @Override
   public Collection<ServerAssertion> getDeferredAssertions() {
      return this.f.values();
   }

   @Override
   public void addDeferredAssertion(ServerAssertion var1, ServerAssertion var2) {
      this.f.put(var1, var2);
   }

   @Override
   public void removeDeferredAssertion(ServerAssertion var1) {
      this.f.remove(var1);
   }

   @Override
   public RoutingResultListener getRoutingResultListener() {
      return this.r;
   }

   @Override
   public void addRoutingResultListener(RoutingResultListener var1) {
      this.r.addListener(var1);
   }

   @Override
   public void removeRoutingResultListener(RoutingResultListener var1) {
      this.r.removeListener(var1);
   }

   @Override
   public void setAuthenticationMissing() {
      ((AuthenticationContext)super.getDefaultAuthenticationContext()).setAuthenticationMissing();
      this.setRequestPolicyViolated();
   }

   @Override
   public boolean isRequestPolicyViolated() {
      return this.l;
   }

   @Override
   public void setRequestPolicyViolated() {
      this.l = true;
   }

   @Override
   public void setRequestClaimingWrongPolicyVersion() {
      this.m = true;
   }

   @Override
   public boolean isRequestClaimingWrongPolicyVersion() {
      return this.m;
   }

   @Override
   public PublishedService getService() {
      return this.n;
   }

   @Override
   public void setService(PublishedService var1) {
      this.n = var1;
   }

   @Override
   public PolicyMetadata getServicePolicyMetadata() {
      return this.O;
   }

   @Override
   public void setServicePolicyMetadata(PolicyMetadata var1) {
      this.O = var1;
   }

   @Override
   public PolicyMetadata getCurrentPolicyMetadata() {
      return this.N;
   }

   @Override
   public void setCurrentPolicyMetadata(PolicyMetadata var1) {
      this.N = var1;
   }

   @Override
   public void setCache(PolicyContextCache var1) {
      this.q = var1;
   }

   @Override
   public PolicyContextCache getCache() {
      return this.q;
   }

   @Override
   public List<String> getIncrementedCounters() {
      return this.e;
   }

   @Override
   public void setVariable(String var1, Object var2) throws VariableNotSettableException {
      try {
         if (var1 == null) {
            return;
         }
      } catch (NoSuchVariableException var5) {
         throw a(var5);
      }

      NoSuchVariableException var3;
      label50: {
         try {
            if (this.isBuiltinVariable(var1)) {
               try {
                  this.setBuiltinVariable(var1, var2);
                  return;
               } catch (NoSuchVariableException var7) {
                  var3 = var7;
                  break label50;
               }
            }
         } catch (VariableNotSettableException var8) {
            throw a(var8);
         }

         try {
            if (this.p.containsKey(var1)) {
               this.p.remove(var1);
            }
         } catch (NoSuchVariableException var6) {
            throw a(var6);
         }

         this.p.put(var1, var2);
         return;
      }

      String[] var4 = V;
      throw new RuntimeException(var4[8] + var1 + var4[9], var3);
   }

   protected boolean isBuiltinVariable(String param1) {
      // $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 1
      // 01: invokestatic com/l7tech/policy/variable/BuiltinVariables.isSupported (Ljava/lang/String;)Z
      // 04: ifeq 1e
      // 07: aload 1
      // 08: aload 0
      // 09: invokestatic com/l7tech/server/policy/variable/ServerVariables.isValidForContext (Ljava/lang/String;Lcom/l7tech/server/message/PolicyEnforcementContext;)Z
      // 0c: ifeq 1e
      // 0f: goto 16
      // 12: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15: athrow
      // 16: bipush 1
      // 17: goto 1f
      // 1a: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d: athrow
      // 1e: bipush 0
      // 1f: ireturn
      // try (0 -> 7): 8 java/lang/NullPointerException
      // try (3 -> 12): 12 java/lang/NullPointerException
   }

   protected void setBuiltinVariable(String var1, Object var2) throws NoSuchVariableException {
      ServerVariables.set(var1, var2, this);
   }

   protected Object getBuiltinVariable(String var1) throws NoSuchVariableException {
      return ServerVariables.get(var1, this);
   }

   @Override
   public Object getVariable(String var1) throws NoSuchVariableException {
      Object var2 = this.a(var1);

      try {
         if (var2 == null) {
            throw new NoSuchVariableException(var1, V[12] + var1 + V[19]);
         } else {
            return var2;
         }
      } catch (NoSuchVariableException var3) {
         throw a(var3);
      }
   }

   private Object a(String var1) throws NoSuchVariableException {
      Object var2;
      if (this.isBuiltinVariable(var1)) {
         var2 = this.getBuiltinVariable(var1);
      } else {
         var2 = this.p.get(var1);
      }

      return var2;
   }

   @Override
   public Map<String, Object> getAllVariables() {
      return Collections.unmodifiableMap(this.p);
   }

   private Pair<String, Object> b(String var1) throws NoSuchVariableException {
      String var2 = var1;
      Object var3;
      if (this.isBuiltinVariable(var1)) {
         var3 = this.getBuiltinVariable(var1);
      } else {
         String var4 = Syntax.getMatchingName(var1, this.p.keySet());
         if (var4 == null) {
            String[] var5 = V;
            throw new NoSuchVariableException(var1, var5[15] + var1 + var5[0]);
         }

         var2 = var4;
         var3 = this.p.get(var4);
      }

      return new Pair(var2, var3);
   }

   @Override
   public Map<String, Object> getVariableMap(String[] var1, Audit var2) {
      TreeMap var3 = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);

      for (String var7 : var1) {
         try {
            Pair var8 = this.b(var7);

            try {
               var3.put((String)var8.left, var8.right);
               if (var8.right == null) {
                  var2.logAndAudit(AssertionMessages.VARIABLE_IS_NULL, new String[]{var7});
               }
            } catch (NoSuchVariableException var9) {
               throw a(var9);
            }
         } catch (NoSuchVariableException var10) {
            var2.logAndAudit(AssertionMessages.NO_SUCH_VARIABLE, new String[]{var7});
         }
      }

      return var3;
   }

   @Override
   public void routingStarted() {
      this.w = System.currentTimeMillis();
   }

   @Override
   public void routingFinished() {
      this.x = System.currentTimeMillis();
      this.y = this.y + (this.x - this.w);
   }

   @Override
   public long getRoutingStartTime() {
      return this.w;
   }

   @Override
   public long getRoutingEndTime() {
      return this.x;
   }

   @Override
   public long getRoutingTotalTime() {
      return this.y;
   }

   @Override
   public Pair<Binding, Operation> getBindingAndOperation() throws IOException, SAXException, WSDLException, InvalidDocumentFormatException {
      // $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/message/b.s Z
      // 04: ifeq 10
      // 07: aload 0
      // 08: getfield com/l7tech/server/message/b.t Lcom/l7tech/util/Pair;
      // 0b: areturn
      // 0c: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aload 0
      // 11: bipush 1
      // 12: putfield com/l7tech/server/message/b.s Z
      // 15: aload 0
      // 16: getfield com/l7tech/server/message/b.n Lcom/l7tech/gateway/common/service/PublishedService;
      // 19: ifnull 41
      // 1c: aload 0
      // 1d: getfield com/l7tech/server/message/b.n Lcom/l7tech/gateway/common/service/PublishedService;
      // 20: invokevirtual com/l7tech/gateway/common/service/PublishedService.getWsdlXml ()Ljava/lang/String;
      // 23: ifnull 41
      // 26: goto 2d
      // 29: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2c: athrow
      // 2d: aload 0
      // 2e: getfield com/l7tech/server/message/b.n Lcom/l7tech/gateway/common/service/PublishedService;
      // 31: invokevirtual com/l7tech/gateway/common/service/PublishedService.getWsdlXml ()Ljava/lang/String;
      // 34: invokevirtual java/lang/String.length ()I
      // 37: ifgt 47
      // 3a: goto 41
      // 3d: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 40: athrow
      // 41: aconst_null
      // 42: areturn
      // 43: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 46: athrow
      // 47: aload 0
      // 48: getfield com/l7tech/server/message/b.n Lcom/l7tech/gateway/common/service/PublishedService;
      // 4b: invokevirtual com/l7tech/gateway/common/service/PublishedService.parsedWsdl ()Lcom/l7tech/wsdl/Wsdl;
      // 4e: astore 1
      // 4f: aload 0
      // 50: getfield com/l7tech/server/message/b.n Lcom/l7tech/gateway/common/service/PublishedService;
      // 53: invokevirtual com/l7tech/gateway/common/service/PublishedService.getSoapVersion ()Lcom/l7tech/xml/soap/SoapVersion;
      // 56: astore 2
      // 57: aload 1
      // 58: aload 0
      // 59: invokevirtual com/l7tech/server/message/b.getRequest ()Lcom/l7tech/message/Message;
      // 5c: aload 2
      // 5d: invokestatic com/l7tech/xml/soap/SoapUtil.getBindingAndOperation (Lcom/l7tech/wsdl/Wsdl;Lcom/l7tech/message/Message;Lcom/l7tech/xml/soap/SoapVersion;)Lcom/l7tech/util/Pair;
      // 60: astore 3
      // 61: aload 3
      // 62: ifnull 71
      // 65: aload 0
      // 66: aload 3
      // 67: putfield com/l7tech/server/message/b.t Lcom/l7tech/util/Pair;
      // 6a: goto 71
      // 6d: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 70: athrow
      // 71: aload 0
      // 72: getfield com/l7tech/server/message/b.t Lcom/l7tech/util/Pair;
      // 75: areturn
      // try (0 -> 6): 6 java/io/IOException
      // try (8 -> 18): 19 java/io/IOException
      // try (14 -> 26): 27 java/io/IOException
      // try (21 -> 31): 31 java/io/IOException
      // try (47 -> 52): 53 java/io/IOException
   }

   @Override
   public boolean isStealthResponseMode() {
      // $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/message/b.k Lcom/l7tech/xml/SoapFaultLevel;
      // 04: ifnull 20
      // 07: aload 0
      // 08: getfield com/l7tech/server/message/b.k Lcom/l7tech/xml/SoapFaultLevel;
      // 0b: invokevirtual com/l7tech/xml/SoapFaultLevel.getLevel ()I
      // 0e: ifne 20
      // 11: goto 18
      // 14: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: bipush 1
      // 19: goto 21
      // 1c: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: bipush 0
      // 21: ireturn
      // try (0 -> 7): 8 java/lang/NullPointerException
      // try (3 -> 12): 12 java/lang/NullPointerException
   }

   @Override
   public long getStartTime() {
      return this.a;
   }

   @Override
   public long getAssertionLatencyNanos() {
      return this.b;
   }

   @Override
   public void setAssertionLatencyNanos(long var1) {
      this.b = var1;
   }

   @Override
   public URL getRoutedServiceUrl() {
      return this.v;
   }

   @Override
   public void setRoutedServiceUrl(URL var1) {
      this.v = var1;
   }

   @Override
   public long getEndTime() {
      return this.c;
   }

   @Override
   public void setEndTime() {
      try {
         if (this.c != 0L) {
            throw new IllegalStateException(V[5]);
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      this.c = System.currentTimeMillis();
   }

   @Override
   public SoapFaultLevel getFaultlevel() {
      return this.k;
   }

   @Override
   public void setFaultlevel(SoapFaultLevel var1) {
      this.k = var1;
   }

   @Override
   public void assertionStarting(ServerAssertion var1) {
      try {
         this.U = var1;
         if (this.M != null) {
            this.M.onStartAssertion(this, this.U);
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }
   }

   @Override
   public void assertionFinished(ServerAssertion param1, AssertionStatus param2, @Nullable LatencyMetrics param3) {
      // $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 1
      // 01: ifnull 0f
      // 04: aload 2
      // 05: ifnonnull 1b
      // 08: goto 0f
      // 0b: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e: athrow
      // 0f: new java/lang/NullPointerException
      // 12: dup
      // 13: invokespecial java/lang/NullPointerException.<init> ()V
      // 16: athrow
      // 17: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 0
      // 1c: getfield com/l7tech/server/message/b.S Ljava/util/Map;
      // 1f: aload 1
      // 20: aload 2
      // 21: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 26: pop
      // 27: aload 0
      // 28: getfield com/l7tech/server/message/b.L Lcom/l7tech/server/message/AssertionTraceListener;
      // 2b: ifnull 41
      // 2e: aload 0
      // 2f: getfield com/l7tech/server/message/b.L Lcom/l7tech/server/message/AssertionTraceListener;
      // 32: aload 1
      // 33: aload 2
      // 34: aload 3
      // 35: invokeinterface com/l7tech/server/message/AssertionTraceListener.assertionFinished (Lcom/l7tech/server/policy/assertion/ServerAssertion;Lcom/l7tech/policy/assertion/AssertionStatus;Lcom/l7tech/server/message/metrics/LatencyMetrics;)V 4
      // 3a: goto 41
      // 3d: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 40: athrow
      // 41: aload 0
      // 42: getfield com/l7tech/server/message/b.M Lcom/l7tech/server/stepdebug/DebugContext;
      // 45: ifnull 57
      // 48: aload 0
      // 49: getfield com/l7tech/server/message/b.M Lcom/l7tech/server/stepdebug/DebugContext;
      // 4c: aload 0
      // 4d: invokevirtual com/l7tech/server/stepdebug/DebugContext.onFinishAssertion (Lcom/l7tech/server/message/PolicyEnforcementContext;)V
      // 50: goto 57
      // 53: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 56: athrow
      // 57: aload 0
      // 58: aconst_null
      // 59: putfield com/l7tech/server/message/b.U Lcom/l7tech/server/policy/assertion/ServerAssertion;
      // 5c: aload 3
      // 5d: ifnull 6d
      // 60: aload 0
      // 61: aload 1
      // 62: aload 3
      // 63: invokestatic com/l7tech/server/message/metrics/GatewayMetricsUtils.publishAssertionFinish (Lcom/l7tech/server/message/PolicyEnforcementContext;Lcom/l7tech/server/policy/assertion/ServerAssertion;Lcom/l7tech/server/message/metrics/LatencyMetrics;)V
      // 66: goto 6d
      // 69: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6c: athrow
      // 6d: return
      // try (0 -> 4): 5 java/lang/NullPointerException
      // try (2 -> 11): 11 java/lang/NullPointerException
      // try (13 -> 28): 29 java/lang/NullPointerException
      // try (31 -> 38): 39 java/lang/NullPointerException
      // try (41 -> 50): 51 java/lang/NullPointerException
   }

   @Override
   public List<PolicyEnforcementContext.AssertionResult> getAssertionResults() {
      if (this.T == null) {
         this.T = new LinkedList<>();

         for (Entry var2 : this.S.entrySet()) {
            ServerAssertion var3 = (ServerAssertion)var2.getKey();
            AssertionStatus var4 = (AssertionStatus)var2.getValue();
            PolicyEnforcementContext.AssertionResult var5 = new PolicyEnforcementContext.AssertionResult(var3.getAssertion(), var4, var3);
            this.T.add(var5);
         }
      }

      return this.T;
   }

   @Override
   public Collection<Integer> getAssertionNumber() {
      ArrayList var1;
      if (this.K != null) {
         var1 = new ArrayList(this.K.size() + 1);

         for (Integer var3 : this.K) {
            var1.add(var3);
         }
      } else {
         var1 = new ArrayList();
      }

      ServerAssertion var6 = this.U;

      Assertion var10000;
      label33: {
         try {
            if (var6 == null) {
               var10000 = null;
               break label33;
            }
         } catch (NullPointerException var5) {
            throw a(var5);
         }

         var10000 = var6.getAssertion();
      }

      Assertion var7 = var10000;

      try {
         if (var7 != null) {
            var1.add(var7.getOrdinal());
         }

         return var1;
      } catch (NullPointerException var4) {
         throw a(var4);
      }
   }

   @Override
   public Message getTargetMessage(MessageTargetable var1) throws NoSuchVariableException {
      return this.getTargetMessage(var1, false);
   }

   @Override
   public Message getOrCreateTargetMessage(MessageTargetable param1, boolean param2) throws NoSuchVariableException, VariableNotSettableException {
      // $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: aconst_null
      // 01: astore 3
      // 02: aconst_null
      // 03: astore 4
      // 05: getstatic com/l7tech/server/message/g.a [I
      // 08: aload 1
      // 09: invokeinterface com/l7tech/policy/assertion/MessageTargetable.getTarget ()Lcom/l7tech/policy/assertion/TargetMessageType; 1
      // 0e: invokevirtual com/l7tech/policy/assertion/TargetMessageType.ordinal ()I
      // 11: iaload
      // 12: tableswitch 50 1 3 26 34 42
      // 2c: aload 0
      // 2d: invokevirtual com/l7tech/server/message/b.getRequest ()Lcom/l7tech/message/Message;
      // 30: astore 3
      // 31: goto 44
      // 34: aload 0
      // 35: invokevirtual com/l7tech/server/message/b.getResponse ()Lcom/l7tech/message/Message;
      // 38: astore 3
      // 39: goto 44
      // 3c: aload 1
      // 3d: invokeinterface com/l7tech/policy/assertion/MessageTargetable.getOtherTargetMessageVariable ()Ljava/lang/String; 1
      // 42: astore 4
      // 44: aload 3
      // 45: ifnonnull c4
      // 48: aload 4
      // 4a: ifnonnull 6b
      // 4d: goto 54
      // 50: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 53: athrow
      // 54: new com/l7tech/policy/variable/NoSuchVariableException
      // 57: dup
      // 58: getstatic com/l7tech/server/message/b.V [Ljava/lang/String;
      // 5b: bipush 2
      // 5c: aaload
      // 5d: getstatic com/l7tech/server/message/b.V [Ljava/lang/String;
      // 60: bipush 6
      // 62: aaload
      // 63: invokespecial com/l7tech/policy/variable/NoSuchVariableException.<init> (Ljava/lang/String;Ljava/lang/String;)V
      // 66: athrow
      // 67: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a: athrow
      // 6b: aconst_null
      // 6c: astore 5
      // 6e: aload 0
      // 6f: aload 4
      // 71: invokevirtual com/l7tech/server/message/b.a (Ljava/lang/String;)Ljava/lang/Object;
      // 74: astore 5
      // 76: goto 7b
      // 79: astore 6
      // 7b: aload 5
      // 7d: ifnull a4
      // 80: aload 5
      // 82: instanceof com/l7tech/message/Message
      // 85: ifne 9a
      // 88: goto 8f
      // 8b: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8e: athrow
      // 8f: iload 2
      // 90: ifeq a4
      // 93: goto 9a
      // 96: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 99: athrow
      // 9a: aload 0
      // 9b: aload 1
      // 9c: iload 2
      // 9d: invokevirtual com/l7tech/server/message/b.getTargetMessage (Lcom/l7tech/policy/assertion/MessageTargetable;Z)Lcom/l7tech/message/Message;
      // a0: astore 3
      // a1: goto c4
      // a4: new com/l7tech/message/Message
      // a7: dup
      // a8: invokespecial com/l7tech/message/Message.<init> ()V
      // ab: astore 3
      // ac: aload 0
      // ad: aload 4
      // af: aload 3
      // b0: invokevirtual com/l7tech/server/message/b.setVariable (Ljava/lang/String;Ljava/lang/Object;)V
      // b3: aload 3
      // b4: astore 6
      // b6: aload 0
      // b7: new com/l7tech/server/message/f
      // ba: dup
      // bb: aload 0
      // bc: aload 6
      // be: invokespecial com/l7tech/server/message/f.<init> (Lcom/l7tech/server/message/b;Lcom/l7tech/message/Message;)V
      // c1: invokevirtual com/l7tech/server/message/b.runOnClose (Ljava/lang/Runnable;)V
      // c4: aload 3
      // c5: areturn
      // try (23 -> 38): 38 com/l7tech/policy/variable/NoSuchVariableException
      // try (21 -> 25): 26 com/l7tech/policy/variable/NoSuchVariableException
      // try (42 -> 46): 47 com/l7tech/policy/variable/NoSuchVariableException
      // try (48 -> 53): 54 com/l7tech/policy/variable/NoSuchVariableException
      // try (50 -> 58): 59 com/l7tech/policy/variable/NoSuchVariableException
   }

   @Override
   public Message getTargetMessage(MessageTargetable var1, boolean var2) throws NoSuchVariableException {
      try {
         switch (com.l7tech.server.message.g.a[var1.getTarget().ordinal()]) {
            case 1:
               return this.getRequest();
            case 2:
               return this.getResponse();
            case 3:
               break;
            default:
               throw new IllegalArgumentException(V[16] + var1.getTarget());
         }
      } catch (NoSuchVariableException var5) {
         throw a(var5);
      }

      String var3 = var1.getOtherTargetMessageVariable();

      try {
         if (var3 == null) {
            throw new IllegalArgumentException(V[14]);
         }
      } catch (NoSuchVariableException var4) {
         throw a(var4);
      }

      return ContextVariableBackedMessageUtils.getTargetMessage(this, var3, var2);
   }

   @Override
   public boolean isResponseWss11() {
      // $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/message/b.E Z
      // 04: ifeq 0d
      // 07: bipush 1
      // 08: ireturn
      // 09: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c: athrow
      // 0d: aload 0
      // 0e: invokevirtual com/l7tech/server/message/b.getRequest ()Lcom/l7tech/message/Message;
      // 11: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 14: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 19: astore 1
      // 1a: aload 1
      // 1b: ifnull 36
      // 1e: aload 1
      // 1f: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.isWsse11Seen ()Z 1
      // 24: ifeq 36
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: bipush 1
      // 2f: goto 37
      // 32: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 35: athrow
      // 36: bipush 0
      // 37: ireturn
      // try (0 -> 5): 5 java/lang/NullPointerException
      // try (12 -> 17): 18 java/lang/NullPointerException
      // try (14 -> 22): 22 java/lang/NullPointerException
   }

   @Override
   public void setResponseWss11(boolean var1) {
      this.E = var1;
   }

   @Override
   public void setMalformedRequest() {
      this.F = true;
   }

   @Override
   public boolean isMalformedRequest() {
      return this.F;
   }

   @Override
   public void setSavedRequestL7aMessageId(String var1) {
      this.J = var1;
   }

   @Override
   public String getSavedRequestL7aMessageId() {
      return this.J;
   }

   @Override
   public void setPolicyExecutionAttempted(boolean var1) {
      this.G = var1;
   }

   @Override
   public DebugContext getDebugContext() {
      return this.M;
   }

   @Override
   public void setDebugContext(DebugContext var1) {
      this.M = var1;
   }

   @Override
   public OtelContext getOtelContext() {
      return this.P;
   }

   @Nullable
   @Override
   public void setOtelContext(OtelContext var1) {
      this.P = var1;
   }

   @Override
   public void setAuditContext(@Nullable AuditContext var1) {
      this.Q = var1;
   }

   @Nullable
   @Override
   public AuditContext getAuditContext() {
      return this.Q;
   }

   @Override
   public boolean isOverwriteResponseCookiePath() {
      return this.H;
   }

   @Override
   public void setOverwriteResponseCookiePath(boolean var1) {
      this.H = var1;
   }

   @Override
   public boolean isOverwriteResponseCookieDomain() {
      return this.I;
   }

   @Override
   public void setOverwriteResponseCookieDomain(boolean var1) {
      this.I = var1;
   }

   @Override
   public boolean isPolicyExecutionAttempted() {
      return this.G;
   }

   @Override
   public AssertionStatus getPolicyResult() {
      return this.z;
   }

   @Override
   public void setPolicyResult(AssertionStatus var1) {
      this.z = var1;
      this.A = null;
      this.B = null;
   }

   void a() {
      // $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: bipush 0
      // 01: istore 1
      // 02: bipush 0
      // 03: istore 2
      // 04: aload 0
      // 05: invokevirtual com/l7tech/server/message/b.getRoutingStatus ()Lcom/l7tech/policy/assertion/RoutingStatus;
      // 08: astore 3
      // 09: aload 0
      // 0a: invokevirtual com/l7tech/server/message/b.getPolicyResult ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0d: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 10: if_acmpne 57
      // 13: bipush 1
      // 14: istore 1
      // 15: aload 3
      // 16: getstatic com/l7tech/policy/assertion/RoutingStatus.NONE Lcom/l7tech/policy/assertion/RoutingStatus;
      // 19: if_acmpne 21
      // 1c: bipush 1
      // 1d: istore 2
      // 1e: goto 98
      // 21: aload 3
      // 22: getstatic com/l7tech/policy/assertion/RoutingStatus.ROUTED Lcom/l7tech/policy/assertion/RoutingStatus;
      // 25: if_acmpne 98
      // 28: aload 0
      // 29: invokevirtual com/l7tech/server/message/b.getRequest ()Lcom/l7tech/message/Message;
      // 2c: invokevirtual com/l7tech/message/Message.isHttpRequest ()Z
      // 2f: ifeq 52
      // 32: goto 39
      // 35: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 38: athrow
      // 39: aload 0
      // 3a: invokevirtual com/l7tech/server/message/b.getResponse ()Lcom/l7tech/message/Message;
      // 3d: invokevirtual com/l7tech/message/Message.getHttpResponseKnob ()Lcom/l7tech/message/HttpResponseKnob;
      // 40: invokeinterface com/l7tech/message/HttpResponseKnob.getStatus ()I 1
      // 45: sipush 400
      // 48: if_icmpge 98
      // 4b: goto 52
      // 4e: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 51: athrow
      // 52: bipush 1
      // 53: istore 2
      // 54: goto 98
      // 57: aload 3
      // 58: getstatic com/l7tech/policy/assertion/RoutingStatus.ATTEMPTED Lcom/l7tech/policy/assertion/RoutingStatus;
      // 5b: if_acmpeq 96
      // 5e: aload 3
      // 5f: getstatic com/l7tech/policy/assertion/RoutingStatus.ROUTED Lcom/l7tech/policy/assertion/RoutingStatus;
      // 62: if_acmpne 98
      // 65: goto 6c
      // 68: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6b: athrow
      // 6c: aload 0
      // 6d: invokevirtual com/l7tech/server/message/b.getRequest ()Lcom/l7tech/message/Message;
      // 70: invokevirtual com/l7tech/message/Message.isHttpRequest ()Z
      // 73: ifeq 98
      // 76: goto 7d
      // 79: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7c: athrow
      // 7d: aload 0
      // 7e: invokevirtual com/l7tech/server/message/b.getResponse ()Lcom/l7tech/message/Message;
      // 81: invokevirtual com/l7tech/message/Message.getHttpResponseKnob ()Lcom/l7tech/message/HttpResponseKnob;
      // 84: invokeinterface com/l7tech/message/HttpResponseKnob.getStatus ()I 1
      // 89: sipush 400
      // 8c: if_icmplt 98
      // 8f: goto 96
      // 92: invokestatic com/l7tech/server/message/b.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 95: athrow
      // 96: bipush 1
      // 97: istore 1
      // 98: aload 0
      // 99: iload 1
      // 9a: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 9d: putfield com/l7tech/server/message/b.A Ljava/lang/Boolean;
      // a0: aload 0
      // a1: iload 2
      // a2: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // a5: putfield com/l7tech/server/message/b.B Ljava/lang/Boolean;
      // a8: return
      // try (19 -> 26): 27 java/lang/NullPointerException
      // try (22 -> 35): 36 java/lang/NullPointerException
      // try (41 -> 47): 48 java/lang/NullPointerException
      // try (44 -> 54): 55 java/lang/NullPointerException
      // try (50 -> 63): 64 java/lang/NullPointerException
   }

   @Override
   public boolean isAuthorizedRequest() {
      try {
         if (this.A == null) {
            this.a();
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return this.A;
   }

   @Override
   public boolean isCompletedRequest() {
      try {
         if (this.B == null) {
            this.a();
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return this.B;
   }

   @NotNull
   @Override
   public List<MessageContextMapping> getMappings() {
      try {
         if (this.C == null) {
            a(3);
         }

         return this.C;
      } catch (NullPointerException var1) {
         throw a(var1);
      }
   }

   @Override
   public void setMappings(List<MessageContextMapping> var1) {
      this.C = var1;
   }

   @Override
   public Collection<Integer> getAssertionOrdinalPath() {
      try {
         if (this.K == null) {
            return Collections.emptyList();
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return new ArrayList<>(this.K);
   }

   @Override
   public void pushAssertionOrdinal(int var1) {
      try {
         if (this.K == null) {
            this.K = new LinkedList<>();
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }

      this.K.addLast(var1);
      this.U = null;
   }

   @Override
   public int popAssertionOrdinal() {
      try {
         if (this.K == null) {
            throw new NoSuchElementException(V[10]);
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return this.K.removeLast();
   }

   @Override
   public void passDownAssertionOrdinal(@NotNull PolicyEnforcementContext var1) {
      try {
         if (var1 == null) {
            a(4);
         }
      } catch (NullPointerException var4) {
         throw a(var4);
      }

      if (this.K != null) {
         for (Integer var3 : this.K) {
            var1.pushAssertionOrdinal(var3);
         }
      }
   }

   @Override
   public void setTraceListener(AssertionTraceListener var1) {
      this.L = var1;
   }

   @Override
   public boolean hasTraceListener() {
      try {
         if (this.L != null) {
            return true;
         }
      } catch (NullPointerException var1) {
         throw a(var1);
      }

      return false;
   }

   @Override
   public AssertionTraceListener getTraceListener() {
      return this.L;
   }

   @Override
   public boolean isRequestWasCompressed() {
      return this.D;
   }

   @Override
   public void setRequestWasCompressed(boolean var1) {
      this.D = var1;
   }

   @Override
   public void setGatewayMetricsEventsPublisher(@Nullable GatewayMetricsPublisher var1) {
      this.R = var1;
   }

   @Nullable
   @Override
   public GatewayMetricsPublisher getGatewayMetricsEventsPublisher() {
      return this.R;
   }

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

   static {
      String[] var5 = new String[24];
      int var3 = 0;
      String var2 = "Pz\u001a<\u0000=%R4\u0016'U3$R<\u0016&\u001b5o\t\u0000?\b&\u0010\"5;>\u0006N\u0014,\u001f9o\n\u00063\u00146&>4\u00009\u001c\n\u0000?\b&\u0010\"5_3\u001d\u001d1;\u0017t\u0001q\"\u00136\u0015s\u00064574\u001d\u0007\u001c<$ZsY'\u00028\"\u0017\u001d&;\u000b4\u0010%a\u0004;\u000b:\u00143-\u0017z\u00172\u00184a\u001b)Y=\u0000=-\\>3(\u001e&\u00184/\u0006z\u001f<\u0007q\u0001<5\r\u001d\u0000=-R*\u0018!\u0014<$\u0006?\u000bsRt2Uz\u00165Ut2\\\u007f\ns\u0018$2\u0006z\u0017<\u0001q#\u0017z\u0017&\u0019=\n$;\u000b:\u00143-\u0017z^,Uz\u0010 U\"4\u0002*\u0016 \u00105-\u000bz\n&\u0005!.\u0000.\u001c7Yq#\u0007.Y7\u001a42\u001c}\rs\u0010)(\u0001.\u0019\u001c5Y2\u0006\"$\u0000.\u0010<\u001bq.\u0000>\u0010=\u0014=a\u0002;\r;\u0006N3\u0017:\u0001o\u000e&2\u001cs\u000303\u001b;\u001b?\u0010qc\u000b\u0015?\r\u001e\u0014!1\u001b4\u001e ,&;\u000b4\u0010%a\u001b)Y\u001c!\u0019\u0004 z\u001b&\u0001q/\u001dz\u000f2\u00078 \u00106\u001cs\u001b0,\u0017z\u000e2\u0006q2\u0017.\u000e&2\u001cs\u000303\u001b;\u001b?\u0010qc\u001c'4\n&\u0005!.\u0000.\u001c7U<$\u0001)\u00184\u0010q5\u0013(\u001e6\u0001ka\u0018\u0002;\n 1>6\u001c\u001b\n \u0010#5\u001b5\u0017\u001c\u00075(\u001c;\u0015*2\u0014\u0016';$-\u001ez\u00146\u00019.\u0016z\\ [t2R7\f \u0001q/\u001d.Y!\u0010%4\u00004Y=\u0000=-\u0015Pz\u001a<\u0000=%R4\u0016'U3$R<\u0016&\u001b5o\u0005\u00112\u0010?\u0011 \u0013)\n6\u0007%(\u001d4*'\u0014%4\u0001z\u0014&\u0006%a\u001c5\rs\u00174a\u001c/\u0015?";
      int var4 = "Pz\u001a<\u0000=%R4\u0016'U3$R<\u0016&\u001b5o\t\u0000?\b&\u0010\"5;>\u0006N\u0014,\u001f9o\n\u00063\u00146&>4\u00009\u001c\n\u0000?\b&\u0010\"5_3\u001d\u001d1;\u0017t\u0001q\"\u00136\u0015s\u00064574\u001d\u0007\u001c<$ZsY'\u00028\"\u0017\u001d&;\u000b4\u0010%a\u0004;\u000b:\u00143-\u0017z\u00172\u00184a\u001b)Y=\u0000=-\\>3(\u001e&\u00184/\u0006z\u001f<\u0007q\u0001<5\r\u001d\u0000=-R*\u0018!\u0014<$\u0006?\u000bsRt2Uz\u00165Ut2\\\u007f\ns\u0018$2\u0006z\u0017<\u0001q#\u0017z\u0017&\u0019=\n$;\u000b:\u00143-\u0017z^,Uz\u0010 U\"4\u0002*\u0016 \u00105-\u000bz\n&\u0005!.\u0000.\u001c7Yq#\u0007.Y7\u001a42\u001c}\rs\u0010)(\u0001.\u0019\u001c5Y2\u0006\"$\u0000.\u0010<\u001bq.\u0000>\u0010=\u0014=a\u0002;\r;\u0006N3\u0017:\u0001o\u000e&2\u001cs\u000303\u001b;\u001b?\u0010qc\u000b\u0015?\r\u001e\u0014!1\u001b4\u001e ,&;\u000b4\u0010%a\u001b)Y\u001c!\u0019\u0004 z\u001b&\u0001q/\u001dz\u000f2\u00078 \u00106\u001cs\u001b0,\u0017z\u000e2\u0006q2\u0017.\u000e&2\u001cs\u000303\u001b;\u001b?\u0010qc\u001c'4\n&\u0005!.\u0000.\u001c7U<$\u0001)\u00184\u0010q5\u0013(\u001e6\u0001ka\u0018\u0002;\n 1>6\u001c\u001b\n \u0010#5\u001b5\u0017\u001c\u00075(\u001c;\u0015*2\u0014\u0016';$-\u001ez\u00146\u00019.\u0016z\\ [t2R7\f \u0001q/\u001d.Y!\u0010%4\u00004Y=\u0000=-\u0015Pz\u001a<\u0000=%R4\u0016'U3$R<\u0016&\u001b5o\u0005\u00112\u0010?\u0011 \u0013)\n6\u0007%(\u001d4*'\u0014%4\u0001z\u0014&\u0006%a\u001c5\rs\u00174a\u001c/\u0015?"
         .length();
      char var1 = 21;
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     V = var5;
                     return;
                  }

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

                  var2 = "5\u00110X=B\u00113\u001d5X\"\u0010\u0017 \u001b/X<\u0010\u0016%\u001f:\u0012~\u0017\u001b5\u00110X=B\u00113\u001d5X\"\u0010\u0017 \u001b/X<\u0010\u0016%\u001f:\u0012~\u0017";
                  var4 = "5\u00110X=B\u00113\u001d5X\"\u0010\u0017 \u001b/X<\u0010\u0016%\u001f:\u0012~\u0017\u001b5\u00110X=B\u00113\u001d5X\"\u0010\u0017 \u001b/X<\u0010\u0016%\u001f:\u0012~\u0017"
                     .length();
                  var1 = 27;
                  var7 = -1;
            }

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

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

      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 -> 56;
            case 1 -> 16;
            case 2 -> 51;
            case 3 -> 25;
            case 4 -> 63;
            case 5 -> 27;
            default -> 11;
         });
      }

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