package com.l7tech.server.policy.assertion;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.message.HeadersKnob;
import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AddHeaderAssertion;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.variable.ExpandVariables;
import java.io.IOException;
import java.util.Map;
import java.util.logging.Level;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import org.apache.commons.lang3.StringUtils;

public class ServerAddHeaderAssertion extends AbstractMessageTargetableServerAssertion<AddHeaderAssertion> {
   private final String[] d;
   private static final Pattern e;
   private static final String[] f;

   public ServerAddHeaderAssertion(AddHeaderAssertion var1) {
      super(var1);
      this.d = var1.getVariablesUsed();
   }

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext var1, Message var2, String var3, AuthenticationContext var4) throws IOException, PolicyAssertionException {
      AssertionStatus var5 = AssertionStatus.NONE;
      HeadersKnob var6 = var2.getHeadersKnob();

      try {
         if (this.assertion.getHeaderName() == null) {
            throw new PolicyAssertionException(this.assertion, f[3]);
         }
      } catch (IOException var11) {
         throw a(var11);
      }

      label54: {
         Map var7 = var1.getVariableMap(this.d, this.getAudit());
         String var8 = ExpandVariables.process(this.assertion.getHeaderName(), var7, this.getAudit());
         if (StringUtils.isBlank(var8)) {
            var5 = AssertionStatus.FALSIFIED;
            this.logAndAudit(AssertionMessages.EMPTY_HEADER_NAME);
         } else {
            String var10000;
            label45: {
               try {
                  if (this.assertion.getHeaderValue() == null) {
                     var10000 = null;
                     break label45;
                  }
               } catch (IOException var13) {
                  throw a(var13);
               }

               var10000 = ExpandVariables.process(this.assertion.getHeaderValue(), var7, this.getAudit());
            }

            String var9 = var10000;

            try {
               switch (h.a[this.assertion.getOperation().ordinal()]) {
                  case 1:
                     this.a(var6, var8, var9);
                     return var5;
                  case 2:
                     break;
                  default:
                     break label54;
               }
            } catch (IOException var12) {
               throw a(var12);
            }

            this.b(var6, var8, var9);
         }

         return var5;
      }

      String var10 = f[2] + this.assertion.getOperation();
      this.logger.log(Level.WARNING, var10);
      throw new PolicyAssertionException(this.assertion, var10);
   }

   private void a(HeadersKnob var1, String var2, String var3) {
      label16: {
         try {
            if (this.assertion.isRemoveExisting()) {
               var1.setHeader(var2, var3, this.assertion.getMetadataType());
               break label16;
            }
         } catch (PatternSyntaxException var4) {
            throw a(var4);
         }

         var1.addHeader(var2, var3, this.assertion.getMetadataType());
      }

      this.logAndAudit(AssertionMessages.HEADER_ADDED, var2, var3);
   }

   private void b(HeadersKnob param1, String param2, String param3) throws PolicyAssertionException {
      // $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: aconst_null
      // 001: astore 4
      // 003: aload 0
      // 004: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 007: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 00a: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateNameAsExpression ()Z
      // 00d: ifeq 016
      // 010: aload 2
      // 011: invokestatic java/util/regex/Pattern.compile (Ljava/lang/String;)Ljava/util/regex/Pattern;
      // 014: astore 4
      // 016: goto 03b
      // 019: astore 5
      // 01b: new com/l7tech/policy/assertion/PolicyAssertionException
      // 01e: dup
      // 01f: aload 0
      // 020: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 023: aload 5
      // 025: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 028: getstatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.f [Ljava/lang/String;
      // 02b: astore 20
      // 02d: aload 20
      // 02f: bipush 1
      // 030: aaload
      // 031: swap
      // 032: 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" ]
      // 037: invokespecial com/l7tech/policy/assertion/PolicyAssertionException.<init> (Lcom/l7tech/policy/assertion/Assertion;Ljava/lang/String;)V
      // 03a: athrow
      // 03b: aload 0
      // 03c: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 03f: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 042: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getHeaderValue ()Ljava/lang/String;
      // 045: invokestatic org/apache/commons/lang3/StringUtils.isBlank (Ljava/lang/CharSequence;)Z
      // 048: ifeq 104
      // 04b: aload 0
      // 04c: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 04f: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 052: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateNameAsExpression ()Z
      // 055: ifeq 0c9
      // 058: goto 05f
      // 05b: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05e: athrow
      // 05f: aload 1
      // 060: aload 0
      // 061: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 064: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 067: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 06a: bipush 1
      // 06b: bipush 1
      // 06c: invokeinterface com/l7tech/message/HeadersKnob.getHeaderNames (Ljava/lang/String;ZZ)[Ljava/lang/String; 4
      // 071: astore 5
      // 073: aload 5
      // 075: arraylength
      // 076: istore 6
      // 078: bipush 0
      // 079: istore 7
      // 07b: iload 7
      // 07d: iload 6
      // 07f: if_icmpge 0c6
      // 082: aload 5
      // 084: iload 7
      // 086: aaload
      // 087: astore 8
      // 089: aload 4
      // 08b: aload 8
      // 08d: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 090: invokevirtual java/util/regex/Matcher.matches ()Z
      // 093: ifeq 0c0
      // 096: aload 1
      // 097: aload 8
      // 099: aload 0
      // 09a: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 09d: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 0a0: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 0a3: bipush 1
      // 0a4: invokeinterface com/l7tech/message/HeadersKnob.removeHeader (Ljava/lang/String;Ljava/lang/String;Z)V 4
      // 0a9: aload 0
      // 0aa: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HEADER_REMOVED_BY_NAME Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0ad: bipush 1
      // 0ae: anewarray 251
      // 0b1: dup
      // 0b2: bipush 0
      // 0b3: aload 8
      // 0b5: aastore
      // 0b6: invokevirtual com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0b9: goto 0c0
      // 0bc: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0bf: athrow
      // 0c0: iinc 7 1
      // 0c3: goto 07b
      // 0c6: goto 24c
      // 0c9: aload 1
      // 0ca: aload 2
      // 0cb: aload 0
      // 0cc: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0cf: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 0d2: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 0d5: invokeinterface com/l7tech/message/HeadersKnob.containsHeader (Ljava/lang/String;Ljava/lang/String;)Z 3
      // 0da: ifeq 24c
      // 0dd: aload 1
      // 0de: aload 2
      // 0df: aload 0
      // 0e0: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0e3: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 0e6: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 0e9: invokeinterface com/l7tech/message/HeadersKnob.removeHeader (Ljava/lang/String;Ljava/lang/String;)V 3
      // 0ee: aload 0
      // 0ef: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HEADER_REMOVED_BY_NAME Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0f2: bipush 1
      // 0f3: anewarray 251
      // 0f6: dup
      // 0f7: bipush 0
      // 0f8: aload 2
      // 0f9: aastore
      // 0fa: invokevirtual com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0fd: goto 24c
      // 100: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 103: athrow
      // 104: aconst_null
      // 105: astore 5
      // 107: aload 0
      // 108: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 10b: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 10e: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateValueExpression ()Z
      // 111: ifeq 11a
      // 114: aload 3
      // 115: invokestatic java/util/regex/Pattern.compile (Ljava/lang/String;)Ljava/util/regex/Pattern;
      // 118: astore 5
      // 11a: goto 13b
      // 11d: astore 6
      // 11f: new com/l7tech/policy/assertion/PolicyAssertionException
      // 122: dup
      // 123: aload 0
      // 124: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 127: aload 6
      // 129: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 12c: getstatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.f [Ljava/lang/String;
      // 12f: bipush 0
      // 130: aaload
      // 131: swap
      // 132: 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" ]
      // 137: invokespecial com/l7tech/policy/assertion/PolicyAssertionException.<init> (Lcom/l7tech/policy/assertion/Assertion;Ljava/lang/String;)V
      // 13a: athrow
      // 13b: aload 1
      // 13c: aload 0
      // 13d: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 140: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 143: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 146: bipush 1
      // 147: aload 0
      // 148: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 14b: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 14e: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateNameAsExpression ()Z
      // 151: invokeinterface com/l7tech/message/HeadersKnob.getHeaderNames (Ljava/lang/String;ZZ)[Ljava/lang/String; 4
      // 156: astore 6
      // 158: aload 6
      // 15a: astore 7
      // 15c: aload 7
      // 15e: arraylength
      // 15f: istore 8
      // 161: bipush 0
      // 162: istore 9
      // 164: iload 9
      // 166: iload 8
      // 168: if_icmpge 24c
      // 16b: aload 7
      // 16d: iload 9
      // 16f: aaload
      // 170: astore 10
      // 172: aload 0
      // 173: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 176: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 179: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateNameAsExpression ()Z
      // 17c: ifne 18f
      // 17f: aload 2
      // 180: aload 10
      // 182: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 185: ifne 1b7
      // 188: goto 18f
      // 18b: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18e: athrow
      // 18f: aload 0
      // 190: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 193: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 196: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateNameAsExpression ()Z
      // 199: ifeq 246
      // 19c: goto 1a3
      // 19f: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a2: athrow
      // 1a3: aload 4
      // 1a5: aload 10
      // 1a7: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 1aa: invokevirtual java/util/regex/Matcher.matches ()Z
      // 1ad: ifeq 246
      // 1b0: goto 1b7
      // 1b3: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b6: athrow
      // 1b7: aload 1
      // 1b8: aload 10
      // 1ba: aload 0
      // 1bb: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 1be: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 1c1: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 1c4: invokeinterface com/l7tech/message/HeadersKnob.getHeaderValues (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; 3
      // 1c9: astore 11
      // 1cb: aload 11
      // 1cd: arraylength
      // 1ce: istore 12
      // 1d0: bipush 0
      // 1d1: istore 13
      // 1d3: iload 13
      // 1d5: iload 12
      // 1d7: if_icmpge 246
      // 1da: aload 11
      // 1dc: iload 13
      // 1de: aaload
      // 1df: astore 14
      // 1e1: aload 14
      // 1e3: aload 3
      // 1e4: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 1e7: ifne 234
      // 1ea: aload 14
      // 1ec: ldc ","
      // 1ee: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
      // 1f1: ifeq 234
      // 1f4: goto 1fb
      // 1f7: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1fa: athrow
      // 1fb: getstatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.e Ljava/util/regex/Pattern;
      // 1fe: aload 14
      // 200: invokevirtual java/util/regex/Pattern.split (Ljava/lang/CharSequence;)[Ljava/lang/String;
      // 203: astore 15
      // 205: aload 15
      // 207: astore 16
      // 209: aload 16
      // 20b: arraylength
      // 20c: istore 17
      // 20e: bipush 0
      // 20f: istore 18
      // 211: iload 18
      // 213: iload 17
      // 215: if_icmpge 234
      // 218: aload 16
      // 21a: iload 18
      // 21c: aaload
      // 21d: astore 19
      // 21f: aload 0
      // 220: aload 1
      // 221: aload 5
      // 223: aload 3
      // 224: aload 10
      // 226: aload 19
      // 228: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 22b: invokevirtual com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Lcom/l7tech/message/HeadersKnob;Ljava/util/regex/Pattern;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 22e: iinc 18 1
      // 231: goto 211
      // 234: aload 0
      // 235: aload 1
      // 236: aload 5
      // 238: aload 3
      // 239: aload 10
      // 23b: aload 14
      // 23d: invokevirtual com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Lcom/l7tech/message/HeadersKnob;Ljava/util/regex/Pattern;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 240: iinc 13 1
      // 243: goto 1d3
      // 246: iinc 9 1
      // 249: goto 164
      // 24c: return
      // try (2 -> 10): 11 java/util/regex/PatternSyntaxException
      // try (90 -> 115): 115 java/util/regex/PatternSyntaxException
      // try (62 -> 84): 85 java/util/regex/PatternSyntaxException
      // try (27 -> 38): 39 java/util/regex/PatternSyntaxException
      // try (119 -> 127): 128 java/util/regex/PatternSyntaxException
      // try (168 -> 177): 178 java/util/regex/PatternSyntaxException
      // try (173 -> 185): 186 java/util/regex/PatternSyntaxException
      // try (180 -> 193): 194 java/util/regex/PatternSyntaxException
      // try (216 -> 224): 225 java/util/regex/PatternSyntaxException
   }

   private void a(HeadersKnob param1, Pattern param2, String param3, String param4, String param5) {
      // $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/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 04: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 07: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateValueExpression ()Z
      // 0a: ifne 1d
      // 0d: aload 3
      // 0e: aload 5
      // 10: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 13: ifne 44
      // 16: goto 1d
      // 19: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c: athrow
      // 1d: aload 0
      // 1e: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 21: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 24: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateValueExpression ()Z
      // 27: ifeq 7e
      // 2a: goto 31
      // 2d: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 30: athrow
      // 31: aload 2
      // 32: aload 5
      // 34: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 37: invokevirtual java/util/regex/Matcher.matches ()Z
      // 3a: ifeq 7e
      // 3d: goto 44
      // 40: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 43: athrow
      // 44: aload 1
      // 45: aload 4
      // 47: aload 5
      // 49: aload 0
      // 4a: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 4d: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 50: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.getMetadataType ()Ljava/lang/String;
      // 53: aload 0
      // 54: getfield com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 57: checkcast com/l7tech/policy/assertion/AddHeaderAssertion
      // 5a: invokevirtual com/l7tech/policy/assertion/AddHeaderAssertion.isEvaluateNameAsExpression ()Z
      // 5d: invokeinterface com/l7tech/message/HeadersKnob.removeHeader (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Z)V 5
      // 62: aload 0
      // 63: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HEADER_REMOVED_BY_NAME_AND_VALUE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 66: bipush 2
      // 67: anewarray 251
      // 6a: dup
      // 6b: bipush 0
      // 6c: aload 4
      // 6e: aastore
      // 6f: dup
      // 70: bipush 1
      // 71: aload 5
      // 73: aastore
      // 74: invokevirtual com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 77: goto 7e
      // 7a: invokestatic com/l7tech/server/policy/assertion/ServerAddHeaderAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7d: athrow
      // 7e: return
      // try (0 -> 9): 10 java/util/regex/PatternSyntaxException
      // try (5 -> 17): 18 java/util/regex/PatternSyntaxException
      // try (12 -> 25): 26 java/util/regex/PatternSyntaxException
      // try (20 -> 53): 54 java/util/regex/PatternSyntaxException
   }

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = "Z)(1\f)_35;7\u0015,Zag;(\u00102^`47?\u000ez\u001b\u001cZ)(1\f)_35;7\u0015,Zag;(\u00102^`47?\u000ez\u001b\u0017F)-%\u00100Ta3;4@/Kv5?$\t/U)g";
      int var4 = "Z)(1\f)_35;7\u0015,Zag;(\u00102^`47?\u000ez\u001b\u001cZ)(1\f)_35;7\u0015,Zag;(\u00102^`47?\u000ez\u001b\u0017F)-%\u00100Ta3;4@/Kv5?$\t/U)g"
         .length();
      char var1 = 28;
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     f = var5;
                     e = Pattern.compile(f[4]);
                     return;
                  }

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

                  var2 = "B;&-\u001c+\u0002d?*,Y0Q*02%\u0015w!\"r\u001b:Sp\n5covC\u0002|(\u0003mk\"\u0007\u0000Wte`S\u0002|(\u0003mmP";
                  var4 = "B;&-\u001c+\u0002d?*,Y0Q*02%\u0015w!\"r\u001b:Sp\n5covC\u0002|(\u0003mk\"\u0007\u0000Wte`S\u0002|(\u0003mmP".length();
                  var1 = 20;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String c(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 -> 64;
            case 1 -> 20;
            case 2 -> 13;
            case 3 -> 3;
            case 4 -> 51;
            case 5 -> 19;
            default -> 104;
         });
      }

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