package com.l7tech.policy.assertion;

import com.l7tech.objectmodel.ExternalEntityHeader;
import com.l7tech.objectmodel.migration.Migration;
import com.l7tech.objectmodel.migration.MigrationMappingSelection;
import com.l7tech.objectmodel.migration.PropertyResolver;
import org.jetbrains.annotations.Nullable;

public class ExportVariablesAssertion extends Assertion implements UsesVariables {
   private String[] exportedVars = new String[0];
   static final long serialVersionUID = -4648680189756614476L;
   private static final String[] b;

   public ExportVariablesAssertion clone() {
      ExportVariablesAssertion var1 = (ExportVariablesAssertion)super.clone();
      var1.exportedVars = (String[])this.exportedVars.clone();
      return var1;
   }

   public String[] getExportedVars() {
      return this.exportedVars;
   }

   public void setExportedVars(@Nullable String[] var1) {
      if (var1 == null) {
         var1 = new String[0];
      }

      this.exportedVars = var1;
   }

   @Migration(
      mapName = MigrationMappingSelection.NONE,
      mapValue = MigrationMappingSelection.REQUIRED,
      export = false,
      valueType = ExternalEntityHeader.ValueType.TEXT_ARRAY,
      resolver = PropertyResolver.Type.SERVER_VARIABLE
   )
   @Override
   public String[] getVariablesUsed() {
      return this.exportedVars;
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = b;
      var1.put(var2[7], var2[2]);
      var1.put(var2[3], var2[1]);
      var1.put(var2[8], new String[]{var2[0]});
      var1.put(var2[5], var2[9]);
      var1.put(var2[4], var2[6]);
      return var1;
   }

   static {
      String[] var5 = new String[10];
      int var3 = 0;
      String var2 = "N\u0019D_74XQ\u0011AU\u0098z\u0013[_3#uJ\u0013\b@5?}_\u0014DS'm`V\u0017\\\u0016#$xRVJSt8g[\u0012\bT-m{J\u001eMDt={R\u001fK_1>4J\u001eIBt$z]\u001a]R1m`V\u001f[\u0016$\"xW\u0015Q\u0018^\u0019|W\u0005\bW'>qL\u0002AY:mgV\u0019]Z0mv[V]E1)4I\u001f\\^=#4_\u0018\b_:.xK\u0012MRt={R\u001fKOxmz[\u0017Z\u0016 %q\u001e\u0013FRz\u001e{\u000eXY&94h\u0017Z_5/x[\u0005\bP&\"y\u001e0ZW3 qP\u0002\u000bZ\u0013[U&$dJ\u001fGX\u0019N\u0004GF1?`W\u0013[s0$`Q\u0004kZ5>gP\u0017ES\u0015N\u0019D_74UZ\u0000AU1\u000ex_\u0005[X5 qB]\u0019E\u00188z`[\u0015@\u00187\"zM\u0019DSz=uP\u0013DEz\blN\u0019ZB\u0002,fW\u0017JZ1>UM\u0005MD ${P&ZY$(fJ\u001fME\u0010$uR\u0019O\tM\u001eGD \u0003uS\u0013";
      int var4 = "N\u0019D_74XQ\u0011AU\u0098z\u0013[_3#uJ\u0013\b@5?}_\u0014DS'm`V\u0017\\\u0016#$xRVJSt8g[\u0012\bT-m{J\u001eMDt={R\u001fK_1>4J\u001eIBt$z]\u001a]R1m`V\u001f[\u0016$\"xW\u0015Q\u0018^\u0019|W\u0005\bW'>qL\u0002AY:mgV\u0019]Z0mv[V]E1)4I\u001f\\^=#4_\u0018\b_:.xK\u0012MRt={R\u001fKOxmz[\u0017Z\u0016 %q\u001e\u0013FRz\u001e{\u000eXY&94h\u0017Z_5/x[\u0005\bP&\"y\u001e0ZW3 qP\u0002\u000bZ\u0013[U&$dJ\u001fGX\u0019N\u0004GF1?`W\u0013[s0$`Q\u0004kZ5>gP\u0017ES\u0015N\u0019D_74UZ\u0000AU1\u000ex_\u0005[X5 qB]\u0019E\u00188z`[\u0015@\u00187\"zM\u0019DSz=uP\u0013DEz\blN\u0019ZB\u0002,fW\u0017JZ1>UM\u0005MD ${P&ZY$(fJ\u001fME\u0010$uR\u0019O\tM\u001eGD \u0003uS\u0013"
         .length();
      char var1 = 11;
      int var7 = -1;

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

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

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

                  var2 = "w.}j\u0019\u0000HA }k\b\u0006^\u0004i \u007fj";
                  var4 = "w.}j\u0019\u0000HA }k\b\u0006^\u0004i \u007fj".length();
                  var1 = 14;
                  var7 = -1;
            }

            var10000 = 93;
            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] ^ 112);
      }

      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 -> 90;
            case 1 -> 18;
            case 2 -> 76;
            case 3 -> 82;
            case 4 -> 48;
            case 5 -> 41;
            default -> 112;
         });
      }

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