package com.l7tech.policy.builder;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.policy.assertion.AddHeaderAssertion;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.CommentAssertion;
import com.l7tech.policy.assertion.HttpPassthroughRule;
import com.l7tech.policy.assertion.HttpRoutingAssertion;
import com.l7tech.policy.assertion.MessageTargetableAssertion;
import com.l7tech.policy.assertion.Regex;
import com.l7tech.policy.assertion.SetVariableAssertion;
import com.l7tech.policy.assertion.TargetMessageType;
import com.l7tech.policy.assertion.TrueAssertion;
import com.l7tech.policy.assertion.composite.AllAssertion;
import com.l7tech.policy.assertion.composite.ForEachLoopAssertion;
import com.l7tech.policy.assertion.composite.OneOrMoreAssertion;
import com.l7tech.policy.variable.DataType;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.policy.wsp.WspWriter;
import com.l7tech.util.Pair;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

public class PolicyBuilder {
   private static final String a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final String e;
   private static final String f;
   private static final String g;
   private static final String h;
   private static final String i;
   private static final String j;
   private static final String k;
   private static final String l;
   private static final String m;
   private static final String n;
   private static final String o;
   private static final String p;
   private static final String q;
   private static final String r;
   private static final String s;
   private static final String t;
   private static final String u;
   private static final String v;
   private static final String w;
   private static final String x;
   private static final String y;
   private static final String z;
   private static final String A;
   private static final String B;
   private static final String C;
   private static final String D;
   private static final String E;
   private static final String F;
   private static final String G;
   private static final String H;
   private static final String I;
   private static final String J;
   private static final String K;
   private static final String L;
   private static final String M;
   private static final String N;
   private static final String O;
   private static final String P;
   private static final String Q;
   private static final String R;
   private static final String S;
   private static final String T;
   private Document U = null;
   private static final String[] V;

   public PolicyBuilder() {
      this.U = WspWriter.getPolicyDocument(new AllAssertion());
   }

   public Document getPolicy() {
      return this.U;
   }

   public PolicyBuilder appendAssertion(@NotNull Assertion var1) {
      try {
         if (var1 == null) {
            a(0);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return this.appendAssertion(var1, null);
   }

   public PolicyBuilder appendAssertion(@NotNull Assertion var1, @Nullable String var2) {
      try {
         if (var1 == null) {
            a(1);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      this.a(var2, var1);
      Document var3 = WspWriter.getPolicyDocument(var1);
      this.a(var3.getDocumentElement().getFirstChild());
      return this;
   }

   public PolicyBuilder comment(@NotNull String var1, boolean var2) {
      try {
         if (var1 == null) {
            a(2);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      CommentAssertion var3 = new CommentAssertion(var1);
      var3.setEnabled(var2);
      this.appendAssertion(var3);
      return this;
   }

   public PolicyBuilder setContextVariable(@NotNull String var1, @NotNull String var2) throws IOException {
      try {
         if (var1 == null) {
            a(3);
         }
      } catch (IOException var3) {
         throw a(var3);
      }

      try {
         if (var2 == null) {
            a(4);
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      return this.setContextVariable(var1, var2, DataType.STRING, null);
   }

   public PolicyBuilder setContextVariable(@NotNull String param1, @NotNull String param2, @NotNull DataType param3, @Nullable String param4) throws 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 1
      // 01: ifnonnull 0f
      // 04: bipush 5
      // 05: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (I)V
      // 08: goto 0f
      // 0b: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e: athrow
      // 0f: aload 2
      // 10: ifnonnull 1f
      // 13: bipush 6
      // 15: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (I)V
      // 18: goto 1f
      // 1b: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e: athrow
      // 1f: aload 3
      // 20: ifnonnull 2f
      // 23: bipush 7
      // 25: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (I)V
      // 28: goto 2f
      // 2b: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2e: athrow
      // 2f: aload 3
      // 30: getstatic com/l7tech/policy/variable/DataType.MESSAGE Lcom/l7tech/policy/variable/DataType;
      // 33: if_acmpne 60
      // 36: aload 4
      // 38: ifnonnull 60
      // 3b: goto 42
      // 3e: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 41: athrow
      // 42: new java/lang/IllegalArgumentException
      // 45: dup
      // 46: getstatic com/l7tech/policy/variable/DataType.MESSAGE Lcom/l7tech/policy/variable/DataType;
      // 49: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 4c: getstatic com/l7tech/policy/builder/PolicyBuilder.V [Ljava/lang/String;
      // 4f: bipush 70
      // 51: aaload
      // 52: swap
      // 53: 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" ]
      // 58: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 5b: athrow
      // 5c: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5f: athrow
      // 60: new com/l7tech/policy/assertion/SetVariableAssertion
      // 63: dup
      // 64: invokespecial com/l7tech/policy/assertion/SetVariableAssertion.<init> ()V
      // 67: astore 5
      // 69: aload 5
      // 6b: aload 1
      // 6c: invokevirtual com/l7tech/policy/assertion/SetVariableAssertion.setVariableToSet (Ljava/lang/String;)V
      // 6f: aload 5
      // 71: aload 2
      // 72: invokevirtual com/l7tech/policy/assertion/SetVariableAssertion.setExpression (Ljava/lang/String;)V
      // 75: aload 5
      // 77: aload 3
      // 78: invokevirtual com/l7tech/policy/assertion/SetVariableAssertion.setDataType (Lcom/l7tech/policy/variable/DataType;)V
      // 7b: aload 3
      // 7c: getstatic com/l7tech/policy/variable/DataType.MESSAGE Lcom/l7tech/policy/variable/DataType;
      // 7f: if_acmpne 90
      // 82: aload 5
      // 84: aload 4
      // 86: invokevirtual com/l7tech/policy/assertion/SetVariableAssertion.setContentType (Ljava/lang/String;)V
      // 89: goto 90
      // 8c: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8f: athrow
      // 90: aload 0
      // 91: aload 5
      // 93: invokevirtual com/l7tech/policy/builder/PolicyBuilder.appendAssertion (Lcom/l7tech/policy/assertion/Assertion;)Lcom/l7tech/policy/builder/PolicyBuilder;
      // 96: pop
      // 97: aload 0
      // 98: areturn
      // try (0 -> 4): 5 java/io/IOException
      // try (7 -> 11): 12 java/io/IOException
      // try (14 -> 18): 19 java/io/IOException
      // try (21 -> 26): 27 java/io/IOException
      // try (24 -> 40): 40 java/io/IOException
      // try (46 -> 61): 62 java/io/IOException
   }

   public PolicyBuilder setContextVariables(@NotNull Map<String, String> var1, @Nullable String var2) throws IOException {
      try {
         if (var1 == null) {
            a(8);
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      AllAssertion var3 = new AllAssertion();
      this.a(var2, var3);

      for (Entry var5 : var1.entrySet()) {
         var3.addChild(new SetVariableAssertion((String)var5.getKey(), (String)var5.getValue()));
      }

      this.appendAssertion(var3);
      return this;
   }

   public PolicyBuilder regex(
      @NotNull TargetMessageType var1, @Nullable String var2, @NotNull String var3, @Nullable String var4, boolean var5, boolean var6, @Nullable String var7
   ) {
      try {
         if (var1 == null) {
            a(9);
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

      try {
         if (var3 == null) {
            a(10);
         }
      } catch (IllegalArgumentException var10) {
         throw a(var10);
      }

      Regex var8 = createRegexAssertion(var1, var2, var3, var4, var5, var6);
      this.a(var7, var8);
      this.appendAssertion(var8);
      return this;
   }

   public PolicyBuilder multipleRegex(@NotNull Collection<Regex> var1, boolean var2, @Nullable String var3) {
      try {
         if (var1 == null) {
            a(11);
         }
      } catch (IllegalArgumentException var7) {
         throw a(var7);
      }

      AllAssertion var4 = new AllAssertion();
      var4.setEnabled(var2);
      this.a(var3, var4);

      for (Regex var6 : var1) {
         var4.addChild(var6);
      }

      this.appendAssertion(var4);
      return this;
   }

   public PolicyBuilder urlEncode(@NotNull String var1, @NotNull String var2, @Nullable String var3) throws IOException {
      try {
         if (var1 == null) {
            a(12);
         }
      } catch (IOException var8) {
         throw a(var8);
      }

      try {
         if (var2 == null) {
            a(13);
         }
      } catch (IOException var9) {
         throw a(var9);
      }

      String[] var7 = V;
      Document var4 = this.a(var7[74]);
      Element var5 = XmlUtil.findFirstChildElementByName(var4.getDocumentElement(), var7[55], var7[124]);
      var5.setAttribute(var7[51], var1);
      Element var6 = XmlUtil.findFirstChildElementByName(var4.getDocumentElement(), var7[55], var7[144]);
      var6.setAttribute(var7[51], var2);
      this.a(var4, var3);
      this.a(var4.getDocumentElement());
      return this;
   }

   public PolicyBuilder replaceHttpCookieDomains(
      @NotNull TargetMessageType var1, @Nullable String var2, @NotNull String var3, @NotNull String var4, boolean var5, @Nullable String var6
   ) throws IOException {
      try {
         if (var1 == null) {
            a(14);
         }
      } catch (IOException var14) {
         throw a(var14);
      }

      try {
         if (var3 == null) {
            a(15);
         }
      } catch (IOException var11) {
         throw a(var11);
      }

      try {
         if (var4 == null) {
            a(16);
         }
      } catch (IOException var13) {
         throw a(var13);
      }

      a(var1, var2);
      String[] var9 = V;
      Document var7 = this.a(var9[96]);
      this.a(var7, var6);
      this.a(var9[127], var4, var7);
      this.b(var9[10], var3, var7);
      Element var8 = XmlUtil.findFirstChildElementByName(var7.getDocumentElement(), var9[55], var9[75]);

      try {
         var8.setAttribute(var9[75].toLowerCase(), var1.name());
         if (var2 != null) {
            this.a(var2, var7);
         }
      } catch (IOException var10) {
         throw a(var10);
      }

      try {
         if (!var5) {
            this.a(var7);
         }
      } catch (IOException var12) {
         throw a(var12);
      }

      this.a(var7.getDocumentElement());
      return this;
   }

   public PolicyBuilder replaceHttpCookieNames(
      @NotNull TargetMessageType var1, @Nullable String var2, @NotNull String var3, @NotNull String var4, boolean var5, @Nullable String var6
   ) throws IOException {
      try {
         if (var1 == null) {
            a(17);
         }
      } catch (IOException var25) {
         throw a(var25);
      }

      try {
         if (var3 == null) {
            a(18);
         }
      } catch (IOException var21) {
         throw a(var21);
      }

      try {
         if (var4 == null) {
            a(19);
         }
      } catch (IOException var24) {
         throw a(var24);
      }

      a(var1, var2);
      OneOrMoreAssertion var7 = new OneOrMoreAssertion();

      String var10000;
      label46: {
         try {
            var7.addChild(new AllAssertion());
            var7.addChild(new TrueAssertion());
            if (var1 == TargetMessageType.OTHER) {
               var10000 = var2;
               break label46;
            }
         } catch (IOException var23) {
            throw a(var23);
         }

         var10000 = var1.name().toLowerCase();
      }

      String var8 = var10000;
      String[] var20 = V;
      var8 = var8 + var20[142];
      ForEachLoopAssertion var9 = new ForEachLoopAssertion();
      var9.setLoopVariableName(var8);
      var9.setVariablePrefix(var20[47]);
      var9.addChild(var7);
      var9.setEnabled(var5);
      this.a(var6, var9);
      Document var10 = WspWriter.getPolicyDocument(var9);
      Element var11 = XmlUtil.findFirstDescendantElement(var10.getDocumentElement(), var20[125], var20[131]);
      SetVariableAssertion var12 = new SetVariableAssertion();
      var12.setVariableToSet(var20[79]);
      var12.setExpression(var20[137]);
      Document var13 = WspWriter.getPolicyDocument(var12);
      var11.appendChild(var10.importNode(var13.getDocumentElement().getFirstChild(), true));
      HashMap var14 = new HashMap();
      var14.put(var20[100], new Pair(var20[100].toLowerCase(), var20[6]));
      var14.put(var20[88], new Pair(var20[51], var3));
      Document var15 = this.a(var20[28], var14);
      var11.appendChild(var10.importNode(var15.getDocumentElement(), true));
      Regex var16 = new Regex();
      var16.setRegex(var3);
      var16.setPatternContainsVariables(Syntax.isAnyVariableReferenced(var3));
      var16.setReplace(true);
      var16.setReplacement(var4);
      var16.setAutoTarget(false);
      a(TargetMessageType.OTHER, var20[52], var16);
      Document var17 = WspWriter.getPolicyDocument(var16);
      var11.appendChild(var10.importNode(var17.getDocumentElement().getFirstChild(), true));
      Document var18 = this.a(var20[106]);
      this.a(var20[27], var20[119], var18);
      this.b(var20[102], var20[145], var18);
      Element var19 = XmlUtil.findFirstChildElementByName(var18.getDocumentElement(), var20[55], var20[75]);

      try {
         var19.setAttribute(var20[75].toLowerCase(), var1.name());
         if (var2 != null) {
            this.a(var2, var18);
         }
      } catch (IOException var22) {
         throw a(var22);
      }

      var11.appendChild(var10.importNode(var18.getDocumentElement(), true));
      this.a(var10.getDocumentElement().getFirstChild());
      return this;
   }

   public PolicyBuilder routeForwardAll(@NotNull String var1, boolean var2) throws IOException {
      try {
         if (var1 == null) {
            a(20);
         }
      } catch (IOException var5) {
         throw a(var5);
      }

      HttpPassthroughRule[] var3 = new HttpPassthroughRule[0];
      HttpRoutingAssertion var4 = new HttpRoutingAssertion();
      var4.setFailOnErrorStatus(var2);
      var4.setProtectedServiceUrl(var1);
      var4.getRequestHeaderRules().setForwardAll(true);
      var4.getRequestHeaderRules().setRules(var3);
      var4.getRequestParamRules().setForwardAll(true);
      var4.getRequestParamRules().setRules(var3);
      var4.getResponseHeaderRules().setForwardAll(true);
      var4.getResponseHeaderRules().setRules(var3);
      this.appendAssertion(var4);
      return this;
   }

   public PolicyBuilder rewriteHeader(
      @NotNull TargetMessageType var1,
      @Nullable String var2,
      @NotNull String var3,
      @NotNull String var4,
      @NotNull String var5,
      boolean var6,
      @Nullable String var7
   ) throws IOException {
      try {
         if (var1 == null) {
            a(21);
         }
      } catch (IOException var24) {
         throw a(var24);
      }

      try {
         if (var3 == null) {
            a(22);
         }
      } catch (IOException var21) {
         throw a(var21);
      }

      try {
         if (var4 == null) {
            a(23);
         }
      } catch (IOException var23) {
         throw a(var23);
      }

      try {
         if (var5 == null) {
            a(24);
         }
      } catch (IOException var20) {
         throw a(var20);
      }

      String var10000;
      label40: {
         try {
            a(var1, var2);
            if (var1 == TargetMessageType.OTHER) {
               var10000 = var2;
               break label40;
            }
         } catch (IOException var22) {
            throw a(var22);
         }

         var10000 = var1.name().toLowerCase();
      }

      String var8 = var10000;
      String[] var19 = V;
      String var9 = var19[81] + var8 + var19[138] + var3 + "}";
      SetVariableAssertion var10 = new SetVariableAssertion();
      var10.setVariableToSet(var19[114]);
      var10.setExpression(var9);
      Regex var11 = new Regex();
      var11.setPatternContainsVariables(true);
      var11.setRegex(var4);
      var11.setReplace(true);
      var11.setReplacement(var5);
      a(TargetMessageType.OTHER, var19[12], var11);
      var11.setAutoTarget(false);
      AddHeaderAssertion var12 = new AddHeaderAssertion();
      var12.setHeaderName(var3);
      var12.setRemoveExisting(true);
      var12.setHeaderValue(var19[50]);
      a(var1, var2, var12);
      AllAssertion var13 = new AllAssertion();
      var13.addChild(var10);
      var13.addChild(var11);
      var13.addChild(var12);
      OneOrMoreAssertion var14 = new OneOrMoreAssertion();
      var14.addChild(var13);
      var14.addChild(new TrueAssertion());
      var14.setEnabled(var6);
      this.a(var7, var14);
      HashMap var15 = new HashMap();
      var15.put(var19[113], new Pair(var19[17], var19[146]));
      var15.put(var19[100], new Pair(var19[100].toLowerCase(), var19[32]));
      Document var16 = this.a(var9, var15);
      Document var17 = WspWriter.getPolicyDocument(var14);
      Element var18 = XmlUtil.findFirstChildElementByName(var17.getDocumentElement().getFirstChild(), var19[125], var19[131]);
      var18.insertBefore(var17.importNode(var16.getDocumentElement(), true), var18.getFirstChild());
      this.a(var17.getDocumentElement().getFirstChild());
      return this;
   }

   public PolicyBuilder addOrReplaceHeader(
      @NotNull TargetMessageType var1, @Nullable String var2, @NotNull String var3, @NotNull String var4, boolean var5, boolean var6, @Nullable String var7
   ) {
      try {
         if (var1 == null) {
            a(25);
         }
      } catch (IllegalArgumentException var11) {
         throw a(var11);
      }

      try {
         if (var3 == null) {
            a(26);
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

      try {
         if (var4 == null) {
            a(27);
         }
      } catch (IllegalArgumentException var10) {
         throw a(var10);
      }

      a(var1, var2);
      AddHeaderAssertion var8 = new AddHeaderAssertion();
      var8.setHeaderName(var3);
      var8.setHeaderValue(var4);
      a(var1, var2, var8);
      var8.setRemoveExisting(var5);
      var8.setEnabled(var6);
      this.a(var7, var8);
      this.appendAssertion(var8);
      return this;
   }

   public PolicyBuilder rewriteHtml(
      @NotNull TargetMessageType var1, @Nullable String var2, @NotNull Set<String> var3, @NotNull String var4, @NotNull String var5, @Nullable String var6
   ) throws IOException {
      try {
         if (var1 == null) {
            a(28);
         }
      } catch (IOException var22) {
         throw a(var22);
      }

      try {
         if (var3 == null) {
            a(29);
         }
      } catch (IOException var26) {
         throw a(var26);
      }

      try {
         if (var4 == null) {
            a(30);
         }
      } catch (IOException var21) {
         throw a(var21);
      }

      try {
         if (var5 == null) {
            a(31);
         }
      } catch (IOException var25) {
         throw a(var25);
      }

      a(var1, var2);
      HashMap var7 = new HashMap();

      String var10000;
      label62: {
         try {
            var7.put(V[69], new Pair(V[71], V[118]));
            var7.put(V[1], new Pair(V[100].toLowerCase(), V[135]));
            var7.put(V[83], new Pair(V[51], V[60]));
            if (var1 == TargetMessageType.OTHER) {
               var10000 = var2;
               break label62;
            }
         } catch (IOException var24) {
            throw a(var24);
         }

         var10000 = var1.name().toLowerCase();
      }

      String var8 = var10000;
      String[] var20 = V;
      Document var9 = this.a(var20[24] + var8 + var20[2], var7);
      OneOrMoreAssertion var10 = new OneOrMoreAssertion();
      var10.addChild(new AllAssertion());
      var10.addChild(new TrueAssertion());
      this.a(var6, var10);
      Document var11 = WspWriter.getPolicyDocument(var10);
      Element var12 = XmlUtil.findFirstChildElementByName(var11.getDocumentElement().getFirstChild(), var20[125], var20[131]);
      var12.appendChild(var11.importNode(var9.getDocumentElement(), true));

      for (String var14 : var3) {
         var20 = V;
         Document var15 = this.a(var20[15]);
         Element var16 = XmlUtil.findFirstChildElementByName(var15.getDocumentElement(), var20[55], var20[48]);
         var16.setAttribute(var20[51], var14);
         Element var17 = XmlUtil.findFirstChildElementByName(var15.getDocumentElement(), var20[55], var20[37]);
         var17.setAttribute(var20[51], var4);
         Element var18 = XmlUtil.findFirstChildElementByName(var15.getDocumentElement(), var20[55], var20[18]);
         var18.setAttribute(var20[51], var5);
         Element var19 = XmlUtil.findFirstChildElementByName(var15.getDocumentElement(), var20[55], var20[40]);

         try {
            var19.setAttribute(var20[75].toLowerCase(), var1.name());
            if (var1 == TargetMessageType.OTHER) {
               this.a(var2, var15);
            }
         } catch (IOException var23) {
            throw a(var23);
         }

         var12.appendChild(var11.importNode(var15.getDocumentElement(), true));
      }

      this.a(var11.getDocumentElement().getFirstChild());
      return this;
   }

   public static Regex createRegexAssertion(
      @NotNull TargetMessageType var0, @Nullable String var1, @NotNull String var2, @Nullable String var3, boolean var4, boolean var5
   ) {
      try {
         if (var0 == null) {
            a(32);
         }
      } catch (IllegalArgumentException var7) {
         throw a(var7);
      }

      try {
         if (var2 == null) {
            a(33);
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

      a(var0, var1);
      Regex var6 = new Regex();

      Regex var10000;
      boolean var10001;
      label29: {
         try {
            a(var0, var1, var6);
            var6.setAutoTarget(false);
            var6.setRegex(var2);
            var6.setPatternContainsVariables(Syntax.isAnyVariableReferenced(var2));
            var10000 = var6;
            if (var3 != null) {
               var10001 = true;
               break label29;
            }
         } catch (IllegalArgumentException var8) {
            throw a(var8);
         }

         var10001 = false;
      }

      var10000.setReplace(var10001);
      var6.setReplacement(var3);
      var6.setCaseInsensitive(var4);
      var6.setEnabled(var5);
      return var6;
   }

   private void a(Document var1) {
      String[] var3 = V;
      Element var2 = var1.createElementNS(var3[55], var3[34]);
      var2.setAttribute(var3[17], var3[141]);
      var1.getDocumentElement().appendChild(var2);
   }

   private void a(String var1, Document var2) {
      String[] var4 = V;
      Element var3 = var2.createElementNS(var4[61], var4[103]);
      var3.setAttribute(var4[19], var1);
      var2.getDocumentElement().appendChild(var3);
   }

   private void a(Document var1, String var2) throws IOException {
      if (var2 != null) {
         String[] var7 = V;
         Document var3 = this.a(var7[22]);
         Element var4 = XmlUtil.findFirstChildElementByName(var3.getDocumentElement(), var7[55], var7[130]);
         Element var5 = XmlUtil.findFirstChildElementByName(var4, var7[55], var7[147]);
         Element var6 = XmlUtil.findFirstChildElementByName(var5, var7[55], var7[29].toLowerCase());
         var6.setAttribute(var7[51], var2);
         var1.getDocumentElement().appendChild(var1.importNode(var3.getDocumentElement(), true));
      }
   }

   private static void a(TargetMessageType param0, 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 0
      // 01: getstatic com/l7tech/policy/assertion/TargetMessageType.OTHER Lcom/l7tech/policy/assertion/TargetMessageType;
      // 04: if_acmpne 30
      // 07: aload 1
      // 08: ifnonnull 30
      // 0b: goto 12
      // 0e: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11: athrow
      // 12: new java/lang/IllegalArgumentException
      // 15: dup
      // 16: getstatic com/l7tech/policy/assertion/TargetMessageType.OTHER Lcom/l7tech/policy/assertion/TargetMessageType;
      // 19: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 1c: getstatic com/l7tech/policy/builder/PolicyBuilder.V [Ljava/lang/String;
      // 1f: bipush 121
      // 21: aaload
      // 22: swap
      // 23: 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" ]
      // 28: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 2b: athrow
      // 2c: invokestatic com/l7tech/policy/builder/PolicyBuilder.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: return
      // try (0 -> 5): 6 java/lang/IllegalArgumentException
      // try (3 -> 19): 19 java/lang/IllegalArgumentException
   }

   private Document a(String var1, Map<String, Pair<String, String>> var2) throws IOException {
      String[] var7 = V;
      Document var3 = this.a(var7[84]);
      Element var4 = XmlUtil.findFirstChildElementByName(var3.getDocumentElement(), var7[55], var7[20]);
      var4.setAttribute(var7[51], var1);
      Element var5 = this.a(var3, var2);
      Element var6 = XmlUtil.findFirstChildElementByName(var3.getDocumentElement(), var7[55], var7[58]);
      var6.appendChild(var5);
      return var3;
   }

   private Element a(Document var1, Map<String, Pair<String, String>> var2) {
      String[] var7 = V;
      Element var3 = var1.createElementNS(var7[55], var7[129]);
      var3.setAttribute(var7[115], var7[72]);

      for (Entry var5 : var2.entrySet()) {
         var7 = V;
         Element var6 = var1.createElementNS(var7[55], var7[65] + (String)var5.getKey());
         var6.setAttribute((String)((Pair)var5.getValue()).getKey(), (String)((Pair)var5.getValue()).getValue());
         var3.appendChild(var6);
      }

      return var3;
   }

   private void a(Node var1) {
      Element var10000 = this.U.getDocumentElement();
      String[] var3 = V;
      Element var2 = XmlUtil.findFirstChildElementByName(var10000, var3[64], var3[101]);
      var2.appendChild(this.U.importNode(var1, true));
   }

   private Document a(String var1) throws IOException {
      InputStream var2 = PolicyBuilder.class.getClassLoader().getResourceAsStream(var1);

      try {
         if (var2 == null) {
            throw new IOException(V[30] + var1);
         }
      } catch (SAXException var5) {
         throw a(var5);
      }

      try {
         return XmlUtil.parse(var2);
      } catch (SAXException var4) {
         throw new IOException(var4);
      }
   }

   private void a(String var1, String var2, Document var3) {
      Element var10000 = var3.getDocumentElement();
      String[] var5 = V;
      Element var4 = XmlUtil.findFirstChildElementByName(var10000, var5[55], var5[134]);
      this.a(var1, var5[92], var2, var3, var4);
   }

   private void b(String var1, String var2, Document var3) {
      Element var10000 = var3.getDocumentElement();
      String[] var5 = V;
      Element var4 = XmlUtil.findFirstChildElementByName(var10000, var5[55], var5[128]);
      this.a(var1, var5[46], var2, var3, var4);
   }

   private void a(String var1, String var2, String var3, Document var4, Element var5) {
      String[] var11 = V;
      Element var6 = var4.createElementNS(var11[55], var11[53]);
      Element var7 = var4.createElementNS(var11[55], var11[26] + var11[33].toLowerCase());
      var7.setAttribute(var11[51], var1);
      Element var8 = var4.createElementNS(var11[55], var11[26] + var11[139].toLowerCase());
      var8.setAttribute(var2, var11[111]);
      Element var9 = var4.createElementNS(var11[55], var11[42]);
      var9.setAttribute(var11[51], var1);
      Element var10 = var4.createElementNS(var11[55], var11[38]);
      var10.setAttribute(var11[51], var3);
      var8.appendChild(var9);
      var8.appendChild(var10);
      var6.appendChild(var7);
      var6.appendChild(var8);
      var5.appendChild(var6);
   }

   private void a(@Nullable String var1, @NotNull Assertion var2) {
      try {
         if (var2 == null) {
            a(34);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      if (var1 != null) {
         Assertion.Comment var3 = new Assertion.Comment();
         var3.setComment(var1, V[77]);
         var2.setAssertionComment(var3);
      }
   }

   private static void a(@NotNull TargetMessageType var0, @Nullable String var1, @NotNull MessageTargetableAssertion var2) {
      try {
         if (var0 == null) {
            a(35);
         }
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }

      try {
         if (var2 == null) {
            a(36);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      try {
         if (var0 != TargetMessageType.REQUEST) {
            var2.setTarget(var0);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      try {
         if (var0 == TargetMessageType.OTHER) {
            var2.setOtherTargetMessageVariable(var1);
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }
   }

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

   static {
      String[] var5 = new String[149];
      int var3 = 0;
      String var2 = "\t0/\u000fms5\u001c#\u0013\teb\b2!8\u001ais\f\u000f\u001aS9)\u001cx)\u000b\u001809\rz)\u0000\u0012?)\rfsN\t(-\ru\n\u000e#>>iu-\u001c<8\u0004\u0015%0\u0004\t.4<\u001ako%\u0012#\b>\u001e\u0013<IN-.,\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'b\r\u001e>9\r\\b\u000e\r=<\u001cm)\u001b\u0010=\u000e>>2\u0003ab \u000f8)\rzn\u0002\u0010(\"8'zn\u0004\u0014?<\u0004^f\u000f\b4\u0006\u0019>0\tai\t\t>\u000f\rxk\u0002\u001e4\r\u0011f\u0002\u001cew<\u00154<\fmu\u0007\u001e>0\u0005mi\u0017\u0004\u000b0/\u001b7\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'u\u0006\r=<\u000bmS\u0002\u001a\u00122\u0006|b\r\t\u00058\u0005xk\u0002\t4s\u0010ek\r\u000f4*\u001aas\u000654<\fmu\f\u001f>2\u0004mf\r+01\u001dm\f)0:\u001b\\h0\u00180/\u000b`\u000b\u000e%/\u0001f`5\u001c=(\r\u000b8)-\u001amt\u0010\u0014>3Y\t\u000e4<\u001ako%\u0012#6\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'f\u0010\u000e4/\u001cah\r>>0\u0005mi\u0017)40\u0018df\u0017\u0018\u007f%\u0005d\n\u001e>2\u0003ab\r\u001c<8\u0002Y*\u0005\u0018?)\u001aq\u00041f-R\u0004\u001300\r\u000fY*1_Ws\u000e\r\u000e>\u0006ij\u0006\u0000\u0005+01\u001dm\u001e/4.\u0007}u\u0000\u0018q;\u0001dbC\u0019>8\u001b(i\f\tq8\u0010at\u0017Gq\u0014\u001e#8\t|b1\u001868\u0010It\u0010\u0018#)\u0001gi\u00058\u001c\r<Q\u000364$\u000b1f-RMi\u0002\u001f=8\f\u000b\u000f4-\u0004id\u0006*8)\u0000-\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'd\f\u0010!<\u001amS\u0006\u0010!1\t|bM\u0005<1\u000b/4-\u0004id\u0006*8)\u0000\t1f-R^f\u000f\b4\u0013\u000e4)+gi\u0017\u0018))>iu\n\u001c31\r{\u0006)0/\u000fms\u000b\u000f4-\u0004id\u0006\u001043\u001c\u00071f-RCb\u001a\u0006\u001f83\tz~7\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'u\u0006\r=<\u000bmS\u0002\u001a\u00122\u0006|b\r\t\u00058\u0005xk\u0002\t4s\u0010ek\n\u00154<\fmu-\u001c<8\u000e\u001e>2\u0003ab \u000f8)\rzn\u0002\n\u001e>2\u0003ab\r\u001c<8\t.4<\u001ako%\u0012#\t\u000e4)<iu\u0004\u0018%\u0010Y*1_Ws\u000e\r\u000e5\ric\u0006\u000f,\u000b\u000e%/\u0001f`5\u001c=(\r\f\u0011f\u0002\u001cew<\u001e?<\u0005m\t1f-Rmi\u0017\u000f(\t\u001c\".\rzs\n\u0012?#\u0015%)\u00182(L\n&*Fdf\u001a\u0018#j\u001cmd\u000bS22\u0005'p\u0010R!2\u0004ad\u001a\u0012.>(\u001akb5\u001c#4\tjk\u0006300\r\n-#2\u0018mu\u0017\u00144.\n-#8\fad\u0002\t4.\u000364$\u0004\u0015%0\u0004#\u0015%)\u00182(L\n&*Fdf\u001a\u0018#j\u001cmd\u000bS22\u0005'p\u0010R!2\u0004ad\u001a\r\u0019>0\tai7\u0012\u001c<\u001cko\u00078?<\ndb\u0007,\u0015%)\u00182(L\u000e25\ref\u0010S)0\u0004{h\u0002\r\u007f2\u001ao(\u0014\u000e~oX85LLcr\u0018gk\n\u001e(\u00041f-R\u0005\u000b01\u001dm\u0016\u000f4-\u0004id\u00065%)\u0018Kh\f\u001688&ij\u0006\u000e\u0004\t#(\r\r>0.\r[b\r\u000e8)\u0001~b+>>3\u001cmi\u0017)(-\r(j\u0016\u000e%}\nm'\u0010\r4>\u0001nn\u0006\u0019q;\u0007z'\u0007\u001c%<<qw\u0006@\f\u001f>2\u0004mf\r+01\u001dm\b\u0014?>\u0004}c\u0006\u0019\u000f\u001c59:a`\u000b\t\u00122\u0005eb\r\t,\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'b\r\u001e>9\r\\b\u000e\r=<\u001cm)\u001b\u0010=\u0006)0/\u000fms\u000b\u00154<\fmu5\u001c=(\r\r/\u0018\u001a \\) 2\u001c\u0010-FS\u0012\u001c59'zU\u0006\r=<\u000bmO\u0006\u001c58\u001a\f\u0011f\u0002\u001cew<\u001e?<\u0005m\b\u00190)\t\\~\u0013\u0018\u0002Y*\u000b8)-\u001amt\u0010\u0014>3Y\n/8:\u0000|Q\u0002\u0011$8-\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'd\f\u0010!<\u001amS\u0006\u0010!1\t|bM\u0005<1\u000f\u000f4:\rpF\u0010\u000e4/\u001cah\r\u000e\u0010>>2\u0003ab\"\t%/\u0001jr\u0017\u0018\"\r\u0010$1\u001caw\u000f\u0018\u00038\u000fm\u007f\n/8:\u0000|Q\u0002\u0011$8\n-#8\fad\u0002\t4.\u000b\u000f4*\u001aas\u00065%0\u0004\u000b/4-\u0004id\u0006*8)\u0000\r\u001300\r^f\u000f\b4\r\tau\u0003\b#1\b\t>\u000e\riu\u0000\u0015\u0005\u000f4:\rp2\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'r\u0013\u00190)\rKh\f\u001688<mj\u0013\u00110)\r&\u007f\u000e\u0011\u0018\u000f4-\u0004id\u00065%)\u0018Kh\f\u001688,gj\u0002\u0014?.\u001a2%5\rzS\u0002\u000f68\u001cEb\u0010\u000e0:\r^f\u0011\u00140?\u0004m\u0012)0/\u000fms5\u001c#4\tjk\u0006300\r\b2!8\u001ais\f\u000f\u0003<=1\u0004\u001300\r\u001e1f-RGs\u000b\u0018#\t\tz`\u0006\t\u001c8\u001b{f\u0004\u0018\u0007<\u001aaf\u0001\u00114\f)0:\u001b\\h0\u00180/\u000b`\f\t0:\u001b\\h0\u00180/\u000b`2\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'r\u0013\u00190)\rKh\f\u001688<mj\u0013\u00110)\r&\u007f\u000e\u0011\r>0.\r[b\r\u000e8)\u0001~b\u0004\u0014%8\u0005'\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'W\f\u00118>\u0011Jr\n\u001158\u001a\u000e\r0)\u001cmu\r)>\u0010\t|d\u000b\b\u0014?>\u0004}c\u0006\u0019\u000b\u0019>0\tai7\u0012\u00028\u001c\u000734:\t|b\u0007\r\u0011f\u0002\u001cew<\u00154<\fmu\u0006\u001f83\tz~\u00058\u001c\r<Q\f\u000f4:\rpW\u0002\t%8\u001af\u0005\u001b01\u001bm\u000fY*1_Ws\u000e\r\u000e>\u0006ij\u0006\u0000\r\t0/\u000fms.\u0018\".\tob;2%5\rzS\u0002\u000f68\u001cEb\u0010\u000e0:\rFf\u000e\u0018q0\u001d{sC\u001f4}\u001bxb\u0000\u001474\rl'\u0005\u0012#}\u001ciu\u0004\u0018%\u0010\r{t\u0002\u001a4`6\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'f\u0010\u000e4/\u001cah\r>>0\u0005mi\u0017)40\u0018df\u0017\u0018\u007f%\u0005d\u000f\u000f>(\u001cmA\f\u000f&<\u001alF\u000f\u0011\u0012.>(\u001akb5\u001c#4\tjk\u0006300\r,\u0015%)\u00182(L\u000e25\ref\u0010S)0\u0004{h\u0002\r\u007f2\u001ao(\u0014\u000e~oX85LLcr\u0018gk\n\u001e(\u000f\u001c!-\rfc\"\u000e\"8\u001a|n\f\u0013\u0006\u0019>0\tai\u000e>>2\u0003ab \u000f8)\rzn\u0002\b1f-Ras\u0006\u0010\n-#2\u0018mu\u0017\u00144.\u0003<=1\u0012\u000e4)+gi\u0017\u0018))>iu\n\u001c31\r\u000734:\t|b\u0007\u0010>>2\u0003ab\"\t%/\u0001jr\u0017\u0018\"\b>\u001e\u0013<IN-.\u001a\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'\u0015Y*>\u0007gl\n\u0018?<\u0005m)\u0000\b#/\rfs\u001e\rS9)\u001cx)\u000b\u001809\rz)\u0005+01\u001dm\u0007\u001e>0\u0005mi\u0017\u0005\u001b01\u001bm\u0011S9)\u001cx)\u0000\u0012>6\u0001mi\u0002\u00104.><#:\u001deb\r\tq;\u0007z'#3>)&}k\u000f]!<\u001aij\u0006\t4/H/\"\u0010Zq2\u000e(\"\u0010St.Her\u0010\tq3\u0007|'\u0001\u0018q3\u001ddk\u0012)0/\u000fms5\u001c#4\tjk\u0006300\r\u0015Y*>\u0007gl\n\u0018?<\u0005m)\u0000\b#/\rfs\u001e\u0004\t#(\r";
      int var4 = "\t0/\u000fms5\u001c#\u0013\teb\b2!8\u001ais\f\u000f\u001aS9)\u001cx)\u000b\u001809\rz)\u0000\u0012?)\rfsN\t(-\ru\n\u000e#>>iu-\u001c<8\u0004\u0015%0\u0004\t.4<\u001ako%\u0012#\b>\u001e\u0013<IN-.,\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'b\r\u001e>9\r\\b\u000e\r=<\u001cm)\u001b\u0010=\u000e>>2\u0003ab \u000f8)\rzn\u0002\u0010(\"8'zn\u0004\u0014?<\u0004^f\u000f\b4\u0006\u0019>0\tai\t\t>\u000f\rxk\u0002\u001e4\r\u0011f\u0002\u001cew<\u00154<\fmu\u0007\u001e>0\u0005mi\u0017\u0004\u000b0/\u001b7\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'u\u0006\r=<\u000bmS\u0002\u001a\u00122\u0006|b\r\t\u00058\u0005xk\u0002\t4s\u0010ek\r\u000f4*\u001aas\u000654<\fmu\f\u001f>2\u0004mf\r+01\u001dm\f)0:\u001b\\h0\u00180/\u000b`\u000b\u000e%/\u0001f`5\u001c=(\r\u000b8)-\u001amt\u0010\u0014>3Y\t\u000e4<\u001ako%\u0012#6\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'f\u0010\u000e4/\u001cah\r>>0\u0005mi\u0017)40\u0018df\u0017\u0018\u007f%\u0005d\n\u001e>2\u0003ab\r\u001c<8\u0002Y*\u0005\u0018?)\u001aq\u00041f-R\u0004\u001300\r\u000fY*1_Ws\u000e\r\u000e>\u0006ij\u0006\u0000\u0005+01\u001dm\u001e/4.\u0007}u\u0000\u0018q;\u0001dbC\u0019>8\u001b(i\f\tq8\u0010at\u0017Gq\u0014\u001e#8\t|b1\u001868\u0010It\u0010\u0018#)\u0001gi\u00058\u001c\r<Q\u000364$\u000b1f-RMi\u0002\u001f=8\f\u000b\u000f4-\u0004id\u0006*8)\u0000-\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'd\f\u0010!<\u001amS\u0006\u0010!1\t|bM\u0005<1\u000b/4-\u0004id\u0006*8)\u0000\t1f-R^f\u000f\b4\u0013\u000e4)+gi\u0017\u0018))>iu\n\u001c31\r{\u0006)0/\u000fms\u000b\u000f4-\u0004id\u0006\u001043\u001c\u00071f-RCb\u001a\u0006\u001f83\tz~7\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'u\u0006\r=<\u000bmS\u0002\u001a\u00122\u0006|b\r\t\u00058\u0005xk\u0002\t4s\u0010ek\n\u00154<\fmu-\u001c<8\u000e\u001e>2\u0003ab \u000f8)\rzn\u0002\n\u001e>2\u0003ab\r\u001c<8\t.4<\u001ako%\u0012#\t\u000e4)<iu\u0004\u0018%\u0010Y*1_Ws\u000e\r\u000e5\ric\u0006\u000f,\u000b\u000e%/\u0001f`5\u001c=(\r\f\u0011f\u0002\u001cew<\u001e?<\u0005m\t1f-Rmi\u0017\u000f(\t\u001c\".\rzs\n\u0012?#\u0015%)\u00182(L\n&*Fdf\u001a\u0018#j\u001cmd\u000bS22\u0005'p\u0010R!2\u0004ad\u001a\u0012.>(\u001akb5\u001c#4\tjk\u0006300\r\n-#2\u0018mu\u0017\u00144.\n-#8\fad\u0002\t4.\u000364$\u0004\u0015%0\u0004#\u0015%)\u00182(L\n&*Fdf\u001a\u0018#j\u001cmd\u000bS22\u0005'p\u0010R!2\u0004ad\u001a\r\u0019>0\tai7\u0012\u001c<\u001cko\u00078?<\ndb\u0007,\u0015%)\u00182(L\u000e25\ref\u0010S)0\u0004{h\u0002\r\u007f2\u001ao(\u0014\u000e~oX85LLcr\u0018gk\n\u001e(\u00041f-R\u0005\u000b01\u001dm\u0016\u000f4-\u0004id\u00065%)\u0018Kh\f\u001688&ij\u0006\u000e\u0004\t#(\r\r>0.\r[b\r\u000e8)\u0001~b+>>3\u001cmi\u0017)(-\r(j\u0016\u000e%}\nm'\u0010\r4>\u0001nn\u0006\u0019q;\u0007z'\u0007\u001c%<<qw\u0006@\f\u001f>2\u0004mf\r+01\u001dm\b\u0014?>\u0004}c\u0006\u0019\u000f\u001c59:a`\u000b\t\u00122\u0005eb\r\t,\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'b\r\u001e>9\r\\b\u000e\r=<\u001cm)\u001b\u0010=\u0006)0/\u000fms\u000b\u00154<\fmu5\u001c=(\r\r/\u0018\u001a \\) 2\u001c\u0010-FS\u0012\u001c59'zU\u0006\r=<\u000bmO\u0006\u001c58\u001a\f\u0011f\u0002\u001cew<\u001e?<\u0005m\b\u00190)\t\\~\u0013\u0018\u0002Y*\u000b8)-\u001amt\u0010\u0014>3Y\n/8:\u0000|Q\u0002\u0011$8-\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'd\f\u0010!<\u001amS\u0006\u0010!1\t|bM\u0005<1\u000f\u000f4:\rpF\u0010\u000e4/\u001cah\r\u000e\u0010>>2\u0003ab\"\t%/\u0001jr\u0017\u0018\"\r\u0010$1\u001caw\u000f\u0018\u00038\u000fm\u007f\n/8:\u0000|Q\u0002\u0011$8\n-#8\fad\u0002\t4.\u000b\u000f4*\u001aas\u00065%0\u0004\u000b/4-\u0004id\u0006*8)\u0000\r\u001300\r^f\u000f\b4\r\tau\u0003\b#1\b\t>\u000e\riu\u0000\u0015\u0005\u000f4:\rp2\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'r\u0013\u00190)\rKh\f\u001688<mj\u0013\u00110)\r&\u007f\u000e\u0011\u0018\u000f4-\u0004id\u00065%)\u0018Kh\f\u001688,gj\u0002\u0014?.\u001a2%5\rzS\u0002\u000f68\u001cEb\u0010\u000e0:\r^f\u0011\u00140?\u0004m\u0012)0/\u000fms5\u001c#4\tjk\u0006300\r\b2!8\u001ais\f\u000f\u0003<=1\u0004\u001300\r\u001e1f-RGs\u000b\u0018#\t\tz`\u0006\t\u001c8\u001b{f\u0004\u0018\u0007<\u001aaf\u0001\u00114\f)0:\u001b\\h0\u00180/\u000b`\f\t0:\u001b\\h0\u00180/\u000b`2\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'r\u0013\u00190)\rKh\f\u001688<mj\u0013\u00110)\r&\u007f\u000e\u0011\r>0.\r[b\r\u000e8)\u0001~b\u0004\u0014%8\u0005'\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'W\f\u00118>\u0011Jr\n\u001158\u001a\u000e\r0)\u001cmu\r)>\u0010\t|d\u000b\b\u0014?>\u0004}c\u0006\u0019\u000b\u0019>0\tai7\u0012\u00028\u001c\u000734:\t|b\u0007\r\u0011f\u0002\u001cew<\u00154<\fmu\u0006\u001f83\tz~\u00058\u001c\r<Q\f\u000f4:\rpW\u0002\t%8\u001af\u0005\u001b01\u001bm\u000fY*1_Ws\u000e\r\u000e>\u0006ij\u0006\u0000\r\t0/\u000fms.\u0018\".\tob;2%5\rzS\u0002\u000f68\u001cEb\u0010\u000e0:\rFf\u000e\u0018q0\u001d{sC\u001f4}\u001bxb\u0000\u001474\rl'\u0005\u0012#}\u001ciu\u0004\u0018%\u0010\r{t\u0002\u001a4`6\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'f\u0010\u000e4/\u001cah\r>>0\u0005mi\u0017)40\u0018df\u0017\u0018\u007f%\u0005d\u000f\u000f>(\u001cmA\f\u000f&<\u001alF\u000f\u0011\u0012.>(\u001akb5\u001c#4\tjk\u0006300\r,\u0015%)\u00182(L\u000e25\ref\u0010S)0\u0004{h\u0002\r\u007f2\u001ao(\u0014\u000e~oX85LLcr\u0018gk\n\u001e(\u000f\u001c!-\rfc\"\u000e\"8\u001a|n\f\u0013\u0006\u0019>0\tai\u000e>>2\u0003ab \u000f8)\rzn\u0002\b1f-Ras\u0006\u0010\n-#2\u0018mu\u0017\u00144.\u0003<=1\u0012\u000e4)+gi\u0017\u0018))>iu\n\u001c31\r\u000734:\t|b\u0007\u0010>>2\u0003ab\"\t%/\u0001jr\u0017\u0018\"\b>\u001e\u0013<IN-.\u001a\u001e>0Gd0\u0017\u001825Gxh\u000f\u00142$Gjr\n\u001158\u001a'\u0015Y*>\u0007gl\n\u0018?<\u0005m)\u0000\b#/\rfs\u001e\rS9)\u001cx)\u000b\u001809\rz)\u0005+01\u001dm\u0007\u001e>0\u0005mi\u0017\u0005\u001b01\u001bm\u0011S9)\u001cx)\u0000\u0012>6\u0001mi\u0002\u00104.><#:\u001deb\r\tq;\u0007z'#3>)&}k\u000f]!<\u001aij\u0006\t4/H/\"\u0010Zq2\u000e(\"\u0010St.Her\u0010\tq3\u0007|'\u0001\u0018q3\u001ddk\u0012)0/\u000fms5\u001c#4\tjk\u0006300\r\u0015Y*>\u0007gl\n\u0018?<\u0005m)\u0000\b#/\rfs\u001e\u0004\t#(\r"
         .length();
      char var1 = '\r';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     V = var5;
                     String[] var9 = V;
                     R = V[133];
                     S = var9[107];
                     I = var9[4];
                     q = var9[29];
                     e = var9[36];
                     w = var9[63];
                     z = var9[8];
                     C = var9[102];
                     G = var9[91];
                     g = var9[125];
                     H = var9[104];
                     K = var9[99];
                     M = var9[89];
                     B = var9[10];
                     d = var9[44];
                     t = var9[68];
                     m = var9[25];
                     k = var9[51];
                     L = var9[82];
                     s = var9[111];
                     n = var9[59];
                     N = var9[100];
                     O = var9[88];
                     Q = var9[116];
                     p = var9[98];
                     D = var9[52];
                     E = var9[23];
                     a = var9[136];
                     T = var9[12];
                     v = var9[108];
                     x = var9[57];
                     o = var9[75];
                     F = var9[5];
                     i = var9[26];
                     c = var9[96];
                     P = var9[6];
                     r = var9[43];
                     u = var9[141];
                     y = var9[86];
                     l = var9[17];
                     A = var9[9];
                     J = var9[56];
                     b = var9[7];
                     f = var9[122];
                     h = var9[55];
                     j = var9[131];
                     return;
                  }

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

                  var2 = "z]Kx\u0013\tjASO\u0004\u0006n{V";
                  var4 = "z]Kx\u0013\tjASO\u0004\u0006n{V".length();
                  var1 = 5;
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String a(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 -> 54;
            case 1 -> 26;
            case 2 -> 22;
            case 3 -> 35;
            case 4 -> 67;
            case 5 -> 76;
            default -> 40;
         });
      }

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