package com.l7tech.server.policy.custom;

import com.l7tech.gateway.common.custom.CustomAssertionDescriptor;
import com.l7tech.policy.assertion.CustomAssertionHolder;
import com.l7tech.policy.assertion.ext.Category;
import com.l7tech.policy.assertion.ext.CustomAssertionUI;
import com.l7tech.policy.assertion.ext.action.CustomTaskActionUI;
import com.l7tech.policy.assertion.ext.entity.CustomEntitySerializer;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

class a {
   static Logger a;
   private static Map<String, CustomAssertionDescriptor> b;
   private static final String[] c;

   private a() {
   }

   static void a(CustomAssertionDescriptor var0) {
      try {
         a.fine(c[2] + var0);
         if (b.put(var0.getName(), var0) != null) {
            a.log(Level.WARNING, c[1] + var0.getName() + c[3]);
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }
   }

   static CustomAssertionDescriptor b(CustomAssertionDescriptor var0) {
      a.fine(c[0] + var0);
      return b.remove(var0.getName());
   }

   static CustomAssertionDescriptor a(Class var0) {
      for (CustomAssertionDescriptor var2 : b.values()) {
         try {
            if (var0.equals(var2.getAssertion())) {
               return var2;
            }
         } catch (RuntimeException var3) {
            throw a(var3);
         }
      }

      return null;
   }

   static CustomAssertionUI a(String var0) {
      for (CustomAssertionDescriptor var2 : b.values()) {
         if (var0.equals(var2.getAssertion().getName())) {
            try {
               Class var3 = var2.getUiClass();
               if (var3 == null) {
                  return null;
               }

               return (CustomAssertionUI)var3.newInstance();
            } catch (Exception var4) {
               throw new RuntimeException(var4);
            }
         }
      }

      return null;
   }

   static CustomTaskActionUI b(String var0) {
      for (CustomAssertionDescriptor var2 : b.values()) {
         if (var0.equals(var2.getAssertion().getName())) {
            try {
               Class var3 = var2.getTakActionUiClass();
               if (var3 == null) {
                  return null;
               }

               return (CustomTaskActionUI)var3.newInstance();
            } catch (Exception var4) {
               throw new RuntimeException(var4);
            }
         }
      }

      return null;
   }

   static Set<CustomAssertionDescriptor> a() {
      HashSet var0 = new HashSet();

      for (CustomAssertionDescriptor var2 : b.values()) {
         var0.add(var2);
      }

      return var0;
   }

   static Set<CustomAssertionDescriptor> b() {
      HashSet var0 = new HashSet();
      var0.addAll(b.values());
      return var0;
   }

   static Set<CustomAssertionDescriptor> a(Category var0) {
      HashSet var1 = new HashSet();

      for (CustomAssertionDescriptor var3 : b.values()) {
         try {
            if (var3.hasCategory(var0)) {
               var1.add(var3);
            }
         } catch (RuntimeException var4) {
            throw a(var4);
         }
      }

      return var1;
   }

   static CustomAssertionDescriptor c(String var0) {
      for (CustomAssertionDescriptor var2 : b.values()) {
         try {
            if (var2.getAssertion().getName().equals(var0)) {
               return var2;
            }
         } catch (RuntimeException var3) {
            throw a(var3);
         }
      }

      return null;
   }

   static CustomAssertionDescriptor d(String var0) {
      return b.get(CustomAssertionHolder.getLocalExternalName(var0));
   }

   static Class b(Class var0) {
      for (CustomAssertionDescriptor var2 : b.values()) {
         try {
            if (var0.equals(var2.getAssertion())) {
               return var2.getServerAssertion();
            }
         } catch (RuntimeException var3) {
            throw a(var3);
         }
      }

      return null;
   }

   static Set<Class> c() {
      HashSet var0 = new HashSet();

      for (CustomAssertionDescriptor var2 : b.values()) {
         var0.add(var2.getAssertion());
      }

      return var0;
   }

   static Set<Class> b(Category var0) {
      HashSet var1 = new HashSet();

      for (CustomAssertionDescriptor var3 : b.values()) {
         try {
            if (var3.hasCategory(var0)) {
               var1.add(var3.getAssertion());
            }
         } catch (RuntimeException var4) {
            throw a(var4);
         }
      }

      return var1;
   }

   static CustomEntitySerializer e(String var0) {
      try {
         for (CustomAssertionDescriptor var2 : b.values()) {
            for (Class var4 : var2.getExternalEntitySerializers()) {
               if (var4.getName().equals(var0)) {
                  return (CustomEntitySerializer)var4.newInstance();
               }
            }
         }
      } catch (InstantiationException | IllegalAccessException var5) {
         a.log(Level.WARNING, c[4] + var0 + "\"");
      }

      return null;
   }

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = "\r \u001fHQ?\f\f+\u001fDX1_\u001c;;\u001eYY;_9=\u001eHD\"\u0016\u0017 MZ_\"\u0017X \f@Sv]\f\n+\nDE\"\u001a\n'\u0003J\u0016";
      int var4 = "\r \u001fHQ?\f\f+\u001fDX1_\u001c;;\u001eYY;_9=\u001eHD\"\u0016\u0017 MZ_\"\u0017X \f@Sv]\f\n+\nDE\"\u001a\n'\u0003J\u0016".length();
      char var1 = 14;
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, f(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     a = Logger.getLogger(a.class.getName());
                     b = new ConcurrentHashMap<>();
                     return;
                  }

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

                  var2 = "]i\u000bFC4\u0019\u001b0JOI8\u000b\u000b:K\ne9\u001d_&\u0006N\u0011\u0012\r\f=\u0005G\u0011\u0010\u000b\f,\u0018^X>\u0016_-\u000fYR#\u0011\u000f=\u0005X\u0011&\u0011\u0013%JHTq\n\u001a9\u0006KR4\u001c_+\u0013\nE9\u001d_'\u000f]\u0011>\u0016\u001agJ~Y8\u000b_>\u0003F]q\u0015\u0010:\u001e\n]8\u0013\u001a%\u0013\nR0\r\f,JZ^=\u0011\u001c,\u0019\u0006\u0011$\u000b\u0016'\r\nE9\u001d_&\u0006N\u0011\u0012\r\f=\u0005G\u0011\u0010\u000b\f,\u0018^X>\u0016Si\u001eE\u0011\"\f\u00109J]^#\u0013\u0016'\r\u0004>9(\u0003FT5X\u000b&JC_\"\f\u001e'\u001eCP%\u001d_,\u0012^T#\u0016\u001e%JO_%\u0011\u000b0JYT#\u0011\u001e%\u0003PT#X\b \u001eB\u00112\u0014\u001e:\u0019\u0010\u0011s";
                  var4 = "]i\u000bFC4\u0019\u001b0JOI8\u000b\u000b:K\ne9\u001d_&\u0006N\u0011\u0012\r\f=\u0005G\u0011\u0010\u000b\f,\u0018^X>\u0016_-\u000fYR#\u0011\u000f=\u0005X\u0011&\u0011\u0013%JHTq\n\u001a9\u0006KR4\u001c_+\u0013\nE9\u001d_'\u000f]\u0011>\u0016\u001agJ~Y8\u000b_>\u0003F]q\u0015\u0010:\u001e\n]8\u0013\u001a%\u0013\nR0\r\f,JZ^=\u0011\u001c,\u0019\u0006\u0011$\u000b\u0016'\r\nE9\u001d_&\u0006N\u0011\u0012\r\f=\u0005G\u0011\u0010\u000b\f,\u0018^X>\u0016Si\u001eE\u0011\"\f\u00109J]^#\u0013\u0016'\r\u0004>9(\u0003FT5X\u000b&JC_\"\f\u001e'\u001eCP%\u001d_,\u0012^T#\u0016\u001e%JO_%\u0011\u000b0JYT#\u0011\u001e%\u0003PT#X\b \u001eB\u00112\u0014\u001e:\u0019\u0010\u0011s"
                     .length();
                  var1 = 172;
                  var7 = -1;
            }

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

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

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

      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 -> 72;
            case 1 -> 126;
            case 2 -> 93;
            case 3 -> 29;
            case 4 -> 6;
            case 5 -> 102;
            default -> 79;
         });
      }

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