package com.l7tech.server.polback;

import com.l7tech.gateway.common.audit.LoggingAudit;
import com.l7tech.message.Message;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ObjectNotFoundException;
import com.l7tech.objectmodel.encass.EncapsulatedAssertionArgumentDescriptor;
import com.l7tech.objectmodel.encass.EncapsulatedAssertionConfig;
import com.l7tech.objectmodel.encass.EncapsulatedAssertionResultDescriptor;
import com.l7tech.objectmodel.polback.BackgroundTask;
import com.l7tech.objectmodel.polback.PolicyBackedInterfaceIntrospector;
import com.l7tech.objectmodel.polback.PolicyBackedService;
import com.l7tech.objectmodel.polback.PolicyBackedServiceOperation;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.message.PolicyEnforcementContextFactory;
import com.l7tech.server.otel.OtelContextFactory;
import com.l7tech.server.policy.PolicyCache;
import com.l7tech.server.policy.ServerPolicyHandle;
import com.l7tech.server.policy.assertion.AssertionStatusException;
import com.l7tech.server.util.PostStartupApplicationListener;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.ResourceUtils;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationEvent;

public class PolicyBackedServiceRegistry implements PostStartupApplicationListener, InitializingBean {
   private static final Logger a;
   @Inject
   @Named("policyCache")
   PolicyCache policyCache;
   @Inject
   @Named("otelContextFactory")
   OtelContextFactory otelContextFactory;
   @Inject
   @Named("policyBackedServiceManager")
   PolicyBackedServiceManager policyBackedServiceManager;
   private final ReadWriteLock b = new ReentrantReadWriteLock();
   private final Map<String, d> c = new HashMap<>();
   private final Map<String, Set<PolicyBackedService>> d = new HashMap<>();
   private static final String[] e;

   public boolean registerPolicyBackedServiceTemplate(@NotNull Class<?> var1) {
      try {
         if (var1 == null) {
            a(0);
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

      this.b.writeLock().lock();

      try {
         String var2 = var1.getName();
         if (this.c.keySet().contains(var2)) {
            return false;
         }

         EncapsulatedAssertionConfig[] var3 = new PolicyBackedInterfaceIntrospector().getInterfaceDescription(var1);
         this.c.put(var2, new d(var1, var3));
         return true;
      } finally {
         this.b.writeLock().unlock();
      }
   }

   public boolean unregisterPolicyBackedServiceTemplate(@NotNull Class<?> var1) {
      try {
         if (var1 == null) {
            a(1);
         }
      } catch (IllegalArgumentException var8) {
         throw a(var8);
      }

      this.b.writeLock().lock();

      try {
         String var2 = var1.getName();
         if (!this.c.keySet().contains(var2)) {
            return false;
         }

         this.c.remove(var2);
         return true;
      } finally {
         this.b.writeLock().unlock();
      }
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // 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!)
   @NotNull
   public Set<String> getPolicyBackedServiceTemplates() {
      this.b.readLock().lock();
      boolean var5 = false /* VF: Semaphore variable */;

      HashSet var1;
      try {
         var5 = true;
         var1 = new HashSet<>(this.c.keySet());
         var5 = false;
      } finally {
         if (var5) {
            this.b.readLock().unlock();
         }
      }

      try {
         this.b.readLock().unlock();
         if (var1 == null) {
            a(2);
         }

         return var1;
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // 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!)
   @NotNull
   public List<EncapsulatedAssertionConfig> getTemplateOperations(@NotNull String var1) throws ObjectNotFoundException {
      try {
         if (var1 == null) {
            a(3);
         }
      } catch (ObjectNotFoundException var13) {
         throw a(var13);
      }

      this.b.readLock().lock();
      boolean var9 = false /* VF: Semaphore variable */;

      List var3;
      try {
         var9 = true;
         d var2 = this.c.get(var1);

         try {
            if (null == var2) {
               throw new ObjectNotFoundException(e[44] + var1);
            }
         } catch (ObjectNotFoundException var11) {
            throw a(var11);
         }

         var3 = Arrays.asList(var2.b);
         var9 = false;
      } finally {
         if (var9) {
            this.b.readLock().unlock();
         }
      }

      try {
         this.b.readLock().unlock();
         if (var3 == null) {
            a(4);
         }

         return var3;
      } catch (ObjectNotFoundException var10) {
         throw a(var10);
      }
   }

   void a(@NotNull String var1, @NotNull PolicyBackedService var2) {
      try {
         if (var1 == null) {
            a(5);
         }
      } catch (IllegalArgumentException var17) {
         throw a(var17);
      }

      try {
         if (var2 == null) {
            a(6);
         }
      } catch (IllegalArgumentException var20) {
         throw a(var20);
      }

      this.b.writeLock().lock();

      try {
         d var3 = this.c.get(var1);

         try {
            if (null == var3) {
               throw new IllegalArgumentException(e[44] + var1);
            }
         } catch (IllegalArgumentException var18) {
            throw a(var18);
         }

         for (PolicyBackedServiceOperation var6 : var2.getOperations()) {
            Goid var7 = var6.getPolicyGoid();

            try {
               if (var7 == null) {
                  throw new IllegalArgumentException(e[13] + var6.getName() + e[47]);
               }
            } catch (IllegalArgumentException var16) {
               throw a(var16);
            }
         }

         Set var21 = this.d.get(var1);
         if (var21 == null) {
            var21 = new HashSet();
            this.d.put(var1, var21);
         }

         for (PolicyBackedService var23 : var21) {
            try {
               if (Goid.equals(var23.getGoid(), var2.getGoid())) {
                  throw new IllegalArgumentException(e[20] + var1 + e[67] + var2.getGoid() + e[0]);
               }
            } catch (IllegalArgumentException var15) {
               throw a(var15);
            }
         }

         var21.add(var2);
      } finally {
         this.b.writeLock().unlock();
      }
   }

   @NotNull
   public <T> T getImplementationProxyForSingleMethod(@NotNull Method var1, @NotNull Goid var2, @Nullable PolicyEnforcementContext var3) {
      try {
         if (var1 == null) {
            a(7);
         }
      } catch (IllegalArgumentException var15) {
         throw a(var15);
      }

      try {
         if (var2 == null) {
            a(8);
         }
      } catch (IllegalArgumentException var18) {
         throw a(var18);
      }

      this.b.readLock().lock();

      d var4;
      try {
         String var5 = var1.getDeclaringClass().getName();
         var4 = this.c.get(var5);

         try {
            if (null == var4) {
               throw new IllegalArgumentException(e[48] + var5);
            }
         } catch (IllegalArgumentException var14) {
            throw a(var14);
         }

         try {
            if (var4.a != var1.getDeclaringClass()) {
               throw new IllegalArgumentException(e[43] + var5 + e[35]);
            }
         } catch (IllegalArgumentException var16) {
            throw a(var16);
         }
      } finally {
         this.b.readLock().unlock();
      }

      EncapsulatedAssertionConfig var19 = new PolicyBackedInterfaceIntrospector().getMethodDescription(var1);

      try {
         Object var10000 = Proxy.newProxyInstance(var4.a.getClassLoader(), new Class[]{var4.a}, new b(this, var1, var2, var19, var3));
         if (var10000 == null) {
            a(9);
         }

         return (T)var10000;
      } catch (IllegalArgumentException var13) {
         throw a(var13);
      }
   }

   @NotNull
   public <T> T getImplementationProxy(@NotNull Class<T> param1, @Nullable Goid param2) {
      // $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: aload 1
      // 001: ifnonnull 010
      // 004: bipush 10
      // 006: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (I)V
      // 009: goto 010
      // 00c: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 00f: athrow
      // 010: aload 0
      // 011: getfield com/l7tech/server/polback/PolicyBackedServiceRegistry.b Ljava/util/concurrent/locks/ReadWriteLock;
      // 014: invokeinterface java/util/concurrent/locks/ReadWriteLock.readLock ()Ljava/util/concurrent/locks/Lock; 1
      // 019: invokeinterface java/util/concurrent/locks/Lock.lock ()V 1
      // 01e: aconst_null
      // 01f: astore 4
      // 021: aload 1
      // 022: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 025: astore 5
      // 027: aload 0
      // 028: getfield com/l7tech/server/polback/PolicyBackedServiceRegistry.c Ljava/util/Map;
      // 02b: aload 5
      // 02d: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 032: checkcast com/l7tech/server/polback/d
      // 035: astore 3
      // 036: aconst_null
      // 037: aload 3
      // 038: if_acmpne 055
      // 03b: new java/lang/IllegalArgumentException
      // 03e: dup
      // 03f: aload 5
      // 041: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 044: bipush 44
      // 046: aaload
      // 047: swap
      // 048: 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" ]
      // 04d: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 050: athrow
      // 051: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 054: athrow
      // 055: aload 3
      // 056: getfield com/l7tech/server/polback/d.a Ljava/lang/Class;
      // 059: aload 1
      // 05a: if_acmpeq 07d
      // 05d: new java/lang/IllegalArgumentException
      // 060: dup
      // 061: aload 5
      // 063: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 066: bipush 27
      // 068: aaload
      // 069: swap
      // 06a: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 06d: bipush 37
      // 06f: aaload
      // 070: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 075: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 078: athrow
      // 079: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 07c: athrow
      // 07d: aload 0
      // 07e: getfield com/l7tech/server/polback/PolicyBackedServiceRegistry.d Ljava/util/Map;
      // 081: aload 5
      // 083: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 088: checkcast java/util/Set
      // 08b: astore 6
      // 08d: aload 6
      // 08f: ifnull 111
      // 092: aload 6
      // 094: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 099: astore 7
      // 09b: aload 7
      // 09d: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 0a2: ifeq 111
      // 0a5: aload 7
      // 0a7: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0ac: checkcast com/l7tech/objectmodel/polback/PolicyBackedService
      // 0af: astore 8
      // 0b1: aload 2
      // 0b2: ifnonnull 0fb
      // 0b5: aload 8
      // 0b7: invokevirtual com/l7tech/objectmodel/polback/PolicyBackedService.getServiceInterfaceName ()Ljava/lang/String;
      // 0ba: aload 5
      // 0bc: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0bf: ifeq 0fb
      // 0c2: goto 0c9
      // 0c5: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0c8: athrow
      // 0c9: aload 4
      // 0cb: ifnull 0f4
      // 0ce: goto 0d5
      // 0d1: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0d4: athrow
      // 0d5: new java/lang/IllegalStateException
      // 0d8: dup
      // 0d9: aload 5
      // 0db: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 0de: bipush 5
      // 0df: aaload
      // 0e0: swap
      // 0e1: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 0e4: bipush 29
      // 0e6: aaload
      // 0e7: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 0ec: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 0ef: athrow
      // 0f0: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f3: athrow
      // 0f4: aload 8
      // 0f6: astore 4
      // 0f8: goto 09b
      // 0fb: aload 8
      // 0fd: invokevirtual com/l7tech/objectmodel/polback/PolicyBackedService.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 100: aload 2
      // 101: invokestatic com/l7tech/objectmodel/Goid.equals (Lcom/l7tech/objectmodel/Goid;Lcom/l7tech/objectmodel/Goid;)Z
      // 104: ifeq 10e
      // 107: aload 8
      // 109: astore 4
      // 10b: goto 111
      // 10e: goto 09b
      // 111: aconst_null
      // 112: aload 4
      // 114: if_acmpne 16c
      // 117: aload 2
      // 118: ifnonnull 142
      // 11b: goto 122
      // 11e: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 121: athrow
      // 122: new java/lang/IllegalArgumentException
      // 125: dup
      // 126: aload 5
      // 128: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 12b: bipush 68
      // 12d: aaload
      // 12e: swap
      // 12f: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 132: bipush 23
      // 134: aaload
      // 135: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 13a: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 13d: athrow
      // 13e: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 141: athrow
      // 142: new java/lang/IllegalArgumentException
      // 145: dup
      // 146: aload 5
      // 148: aload 2
      // 149: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 14c: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 14f: astore 10
      // 151: aload 10
      // 153: bipush 31
      // 155: aaload
      // 156: dup_x2
      // 157: pop
      // 158: aload 10
      // 15a: bipush 32
      // 15c: aaload
      // 15d: swap
      // 15e: aload 10
      // 160: bipush 49
      // 162: aaload
      // 163: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001" ]
      // 168: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 16b: athrow
      // 16c: aload 0
      // 16d: getfield com/l7tech/server/polback/PolicyBackedServiceRegistry.b Ljava/util/concurrent/locks/ReadWriteLock;
      // 170: invokeinterface java/util/concurrent/locks/ReadWriteLock.readLock ()Ljava/util/concurrent/locks/Lock; 1
      // 175: invokeinterface java/util/concurrent/locks/Lock.unlock ()V 1
      // 17a: goto 190
      // 17d: astore 9
      // 17f: aload 0
      // 180: getfield com/l7tech/server/polback/PolicyBackedServiceRegistry.b Ljava/util/concurrent/locks/ReadWriteLock;
      // 183: invokeinterface java/util/concurrent/locks/ReadWriteLock.readLock ()Ljava/util/concurrent/locks/Lock; 1
      // 188: invokeinterface java/util/concurrent/locks/Lock.unlock ()V 1
      // 18d: aload 9
      // 18f: athrow
      // 190: aload 4
      // 192: astore 5
      // 194: aload 1
      // 195: invokevirtual java/lang/Class.getClassLoader ()Ljava/lang/ClassLoader;
      // 198: bipush 1
      // 199: anewarray 471
      // 19c: dup
      // 19d: bipush 0
      // 19e: aload 1
      // 19f: aastore
      // 1a0: new com/l7tech/server/polback/c
      // 1a3: dup
      // 1a4: aload 0
      // 1a5: aload 5
      // 1a7: aload 3
      // 1a8: invokespecial com/l7tech/server/polback/c.<init> (Lcom/l7tech/server/polback/PolicyBackedServiceRegistry;Lcom/l7tech/objectmodel/polback/PolicyBackedService;Lcom/l7tech/server/polback/d;)V
      // 1ab: invokestatic java/lang/reflect/Proxy.newProxyInstance (Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
      // 1ae: dup
      // 1af: ifnonnull 1be
      // 1b2: bipush 11
      // 1b4: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (I)V
      // 1b7: goto 1be
      // 1ba: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1bd: athrow
      // 1be: areturn
      // try (119 -> 137): 137 java/lang/IllegalArgumentException
      // try (116 -> 121): 122 java/lang/IllegalArgumentException
      // try (84 -> 102): 102 java/lang/IllegalArgumentException
      // try (76 -> 86): 87 java/lang/IllegalArgumentException
      // try (74 -> 81): 82 java/lang/IllegalArgumentException
      // try (37 -> 54): 54 java/lang/IllegalArgumentException
      // try (22 -> 35): 35 java/lang/IllegalArgumentException
      // try (0 -> 4): 5 java/lang/IllegalArgumentException
      // try (13 -> 161): 166 null
      // try (166 -> 167): 166 null
      // try (175 -> 194): 195 java/lang/IllegalArgumentException
   }

   private Object a(
      @NotNull Method var1,
      @Nullable Object[] var2,
      @NotNull Goid var3,
      @NotNull String var4,
      @NotNull Set<EncapsulatedAssertionArgumentDescriptor> var5,
      @NotNull Set<EncapsulatedAssertionResultDescriptor> var6,
      @Nullable PolicyEnforcementContext var7
   ) {
      try {
         if (var1 == null) {
            a(12);
         }
      } catch (IllegalArgumentException var28) {
         throw a(var28);
      }

      try {
         if (var3 == null) {
            a(13);
         }
      } catch (IllegalArgumentException var24) {
         throw a(var24);
      }

      try {
         if (var4 == null) {
            a(14);
         }
      } catch (IllegalArgumentException var27) {
         throw a(var27);
      }

      try {
         if (var5 == null) {
            a(15);
         }
      } catch (IllegalArgumentException var23) {
         throw a(var23);
      }

      try {
         if (var6 == null) {
            a(16);
         }
      } catch (IllegalArgumentException var26) {
         throw a(var26);
      }

      TreeMap var8 = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);

      for (EncapsulatedAssertionArgumentDescriptor var10 : var5) {
         String var11 = var10.getArgumentName();
         int var12 = var10.getOrdinal() - 1;
         Object var13 = var2[var12];
         Class var14 = var1.getParameterTypes()[var12];
         Object var15 = this.a(var14, var13, var10.getArgumentType());
         var8.put(var11, var15);
      }

      PolicyEnforcementContext var29 = null;

      try {
         if (var7 != null) {
            var29 = PolicyEnforcementContextFactory.createPolicyEnforcementContext(var7);
         } else {
            var29 = PolicyEnforcementContextFactory.createPolicyEnforcementContext(new Message(), new Message());
            var29.setOtelContext(this.otelContextFactory.create());
         }

         this.a(var29, var3, var4, var8);
         ArrayList var30 = new ArrayList();

         for (EncapsulatedAssertionResultDescriptor var33 : var6) {
            String var35 = var33.getResultName();
            var30.add(var35);
         }

         Map var32 = var29.getVariableMap(var30.toArray(new String[var30.size()]), new LoggingAudit(a));
         if (var6.size() == 0) {
            return null;
         } else if (var6.size() == 1) {
            EncapsulatedAssertionResultDescriptor var34 = (EncapsulatedAssertionResultDescriptor)var6.iterator().next();
            return this.a(var32.get(var34.getResultName()), var34.getResultType(), var1.getReturnType());
         } else {
            return var32;
         }
      } finally {
         ResourceUtils.closeQuietly(var29);
      }
   }

   @Nullable
   private Object a(@Nullable Object var1, @NotNull String var2, @NotNull Class<?> var3) {
      try {
         if (var2 == null) {
            a(17);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      try {
         if (var3 == null) {
            a(18);
         }

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

   @Nullable
   private Object a(@NotNull Class<?> param1, @Nullable Object param2, @NotNull String 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:
      // 000: aload 1
      // 001: ifnonnull 010
      // 004: bipush 19
      // 006: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (I)V
      // 009: goto 010
      // 00c: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 00f: athrow
      // 010: aload 3
      // 011: ifnonnull 020
      // 014: bipush 20
      // 016: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (I)V
      // 019: goto 020
      // 01c: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 01f: athrow
      // 020: aload 3
      // 021: invokestatic com/l7tech/policy/variable/DataType.forName (Ljava/lang/String;)Lcom/l7tech/policy/variable/DataType;
      // 024: astore 4
      // 026: aconst_null
      // 027: aload 4
      // 029: if_acmpeq 03e
      // 02c: getstatic com/l7tech/policy/variable/DataType.UNKNOWN Lcom/l7tech/policy/variable/DataType;
      // 02f: aload 4
      // 031: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 034: ifeq 057
      // 037: goto 03e
      // 03a: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 03d: athrow
      // 03e: new java/lang/IllegalArgumentException
      // 041: dup
      // 042: aload 3
      // 043: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 046: bipush 62
      // 048: aaload
      // 049: swap
      // 04a: 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" ]
      // 04f: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 052: athrow
      // 053: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 056: athrow
      // 057: aload 2
      // 058: ifnull 098
      // 05b: aload 1
      // 05c: aload 2
      // 05d: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 060: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 063: ifne 098
      // 066: goto 06d
      // 069: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 06c: athrow
      // 06d: new java/lang/IllegalArgumentException
      // 070: dup
      // 071: aload 2
      // 072: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 075: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 078: aload 1
      // 079: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 07c: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 07f: bipush 60
      // 081: aaload
      // 082: dup_x2
      // 083: pop
      // 084: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 087: bipush 70
      // 089: aaload
      // 08a: swap
      // 08b: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;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\u0001\u0001" ]
      // 090: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 093: athrow
      // 094: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 097: athrow
      // 098: aload 4
      // 09a: invokevirtual com/l7tech/policy/variable/DataType.getValueClasses ()[Ljava/lang/Class;
      // 09d: astore 5
      // 09f: aload 5
      // 0a1: astore 6
      // 0a3: aload 6
      // 0a5: arraylength
      // 0a6: istore 7
      // 0a8: bipush 0
      // 0a9: istore 8
      // 0ab: iload 8
      // 0ad: iload 7
      // 0af: if_icmpge 0ce
      // 0b2: aload 6
      // 0b4: iload 8
      // 0b6: aaload
      // 0b7: astore 9
      // 0b9: aload 9
      // 0bb: aload 1
      // 0bc: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 0bf: ifeq 0c8
      // 0c2: aload 2
      // 0c3: areturn
      // 0c4: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0c7: athrow
      // 0c8: iinc 8 1
      // 0cb: goto 0ab
      // 0ce: aload 2
      // 0cf: ifnonnull 0f7
      // 0d2: new java/lang/IllegalArgumentException
      // 0d5: dup
      // 0d6: aload 1
      // 0d7: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0da: aload 3
      // 0db: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 0de: bipush 46
      // 0e0: aaload
      // 0e1: dup_x2
      // 0e2: pop
      // 0e3: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 0e6: bipush 63
      // 0e8: aaload
      // 0e9: swap
      // 0ea: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;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\u0001\u0001" ]
      // 0ef: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 0f2: athrow
      // 0f3: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f6: athrow
      // 0f7: new java/lang/IllegalArgumentException
      // 0fa: dup
      // 0fb: aload 2
      // 0fc: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 0ff: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 102: aload 3
      // 103: getstatic com/l7tech/server/polback/PolicyBackedServiceRegistry.e [Ljava/lang/String;
      // 106: astore 10
      // 108: aload 10
      // 10a: bipush 69
      // 10c: aaload
      // 10d: dup_x2
      // 10e: pop
      // 10f: aload 10
      // 111: bipush 21
      // 113: aaload
      // 114: swap
      // 115: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;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\u0001\u0001" ]
      // 11a: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 11d: athrow
      // try (0 -> 4): 5 java/lang/IllegalArgumentException
      // try (7 -> 11): 12 java/lang/IllegalArgumentException
      // try (17 -> 24): 25 java/lang/IllegalArgumentException
      // try (20 -> 37): 37 java/lang/IllegalArgumentException
      // try (39 -> 46): 47 java/lang/IllegalArgumentException
      // try (41 -> 68): 68 java/lang/IllegalArgumentException
      // try (87 -> 93): 93 java/lang/IllegalArgumentException
      // try (97 -> 116): 116 java/lang/IllegalArgumentException
   }

   private void a(@NotNull PolicyEnforcementContext var1, @NotNull Goid var2, @NotNull String var3, @NotNull Map<String, Object> var4) {
      try {
         if (var1 == null) {
            a(21);
         }
      } catch (Throwable var12) {
         throw a(var12);
      }

      try {
         if (var2 == null) {
            a(22);
         }
      } catch (Throwable var19) {
         throw a(var19);
      }

      try {
         if (var3 == null) {
            a(23);
         }
      } catch (Throwable var11) {
         throw a(var11);
      }

      try {
         if (var4 == null) {
            a(24);
         }
      } catch (Throwable var18) {
         throw a(var18);
      }

      try {
         ServerPolicyHandle var5 = this.policyCache.getServerPolicy(var2);

         try {
            try {
               if (var5 == null) {
                  throw new UnsupportedOperationException(MessageFormat.format(e[66], var3, var2));
               }
            } catch (Throwable var13) {
               throw a(var13);
            }

            for (Entry var7 : var4.entrySet()) {
               var1.setVariable((String)var7.getKey(), var7.getValue());
            }

            AssertionStatus var20 = var5.checkRequest(var1);

            try {
               if (!AssertionStatus.NONE.equals(var20)) {
                  throw new AssertionStatusException(var20, e[14] + var3 + e[28] + var20);
               }
            } catch (Throwable var14) {
               throw a(var14);
            }
         } catch (Throwable var15) {
            if (var5 != null) {
               try {
                  var5.close();
               } catch (Throwable var9) {
                  var15.addSuppressed(var9);
               }
            }

            throw var15;
         }

         try {
            if (var5 != null) {
               var5.close();
            }
         } catch (Throwable var10) {
            throw a(var10);
         }
      } catch (RuntimeException var16) {
         throw var16;
      } catch (Exception var17) {
         String var10003 = ExceptionUtils.getMessage(var17);
         String[] var8 = e;
         throw new RuntimeException(var8[34] + var3 + var8[45] + var10003, var17);
      }
   }

   @Override
   public void onApplicationEvent(ApplicationEvent 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: instanceof com/l7tech/server/event/EntityInvalidationEvent
      // 04: ifeq 23
      // 07: aload 1
      // 08: checkcast com/l7tech/server/event/EntityInvalidationEvent
      // 0b: astore 2
      // 0c: ldc com/l7tech/objectmodel/polback/PolicyBackedService
      // 0e: aload 2
      // 0f: invokevirtual com/l7tech/server/event/EntityInvalidationEvent.getEntityClass ()Ljava/lang/Class;
      // 12: if_acmpne 20
      // 15: aload 0
      // 16: invokevirtual com/l7tech/server/polback/PolicyBackedServiceRegistry.a ()V
      // 19: goto 20
      // 1c: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1f: athrow
      // 20: goto 51
      // 23: aload 1
      // 24: instanceof com/l7tech/server/event/system/Started
      // 27: ifne 46
      // 2a: aload 1
      // 2b: instanceof com/l7tech/server/policy/module/AssertionModuleRegistrationEvent
      // 2e: ifne 46
      // 31: goto 38
      // 34: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 37: athrow
      // 38: aload 1
      // 39: instanceof com/l7tech/server/policy/module/AssertionModuleUnregistrationEvent
      // 3c: ifeq 51
      // 3f: goto 46
      // 42: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 45: athrow
      // 46: aload 0
      // 47: invokevirtual com/l7tech/server/polback/PolicyBackedServiceRegistry.a ()V
      // 4a: goto 51
      // 4d: invokestatic com/l7tech/server/polback/PolicyBackedServiceRegistry.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 50: athrow
      // 51: return
      // try (6 -> 12): 13 java/lang/IllegalArgumentException
      // try (16 -> 22): 23 java/lang/IllegalArgumentException
      // try (19 -> 28): 29 java/lang/IllegalArgumentException
      // try (25 -> 33): 34 java/lang/IllegalArgumentException
   }

   private void a() {
      Collection var1;
      try {
         var1 = this.policyBackedServiceManager.findAll();
      } catch (FindException var20) {
         Logger var10000 = a;
         Level var10001 = Level.SEVERE;
         String var10002 = ExceptionUtils.getMessage(var20);
         String[] var15 = e;
         var10000.log(var10001, var15[3] + var10002, var20);
         return;
      }

      this.b.writeLock().lock();

      try {
         this.d.clear();

         for (PolicyBackedService var3 : var1) {
            String var4 = var3.getServiceInterfaceName();
            d var5 = this.c.get(var4);
            if (var5 == null) {
               Logger var24 = a;
               Level var26 = Level.INFO;
               String var28 = var3.getName();
               String var10003 = String.valueOf(var3.getGoid());
               String var8 = var4;
               String var9 = var10003;
               String var10 = var28;
               String[] var22 = e;
               var24.log(var26, var22[64] + var10 + var22[19] + var9 + var22[65] + var8);
            } else {
               try {
                  this.a(var4, var3);
               } catch (Exception var19) {
                  Logger var25 = a;
                  Level var27 = Level.WARNING;
                  String var29 = var3.getName();
                  String var30 = String.valueOf(var3.getGoid());
                  String var11 = ExceptionUtils.getMessage(var19);
                  String var12 = var4;
                  String var13 = var30;
                  String var14 = var29;
                  String[] var23 = e;
                  var25.log(var27, var23[1] + var14 + var23[53] + var13 + var23[17] + var12 + var23[25] + var11, ExceptionUtils.getDebugException(var19));
               }
            }
         }
      } finally {
         this.b.writeLock().unlock();
      }
   }

   public void afterPropertiesSet() throws Exception {
      this.b();
   }

   private void b() {
      this.registerPolicyBackedServiceTemplate(BackgroundTask.class);
   }

   static {
      String[] var5 = new String[71];
      int var3 = 0;
      String var2 = "\u0000\u007f\f\u0003\u000bVLEw\u001bZJH[G\u007f\fW\u000fH[D(ed\rL\u0018\u001aLEq\u0016P\u001e_LIx\u0018\u0003\u001aURIu\u0006\u000e\b[]Ks\u001b\u0003\u0019_LV\u007f\u001cFJ\u0015Gs\u000bw\u000fWNLw\u000bF%J[Rw\u000bJ\u0005TM'ux\u001eA\u0006_\u001eTy_O\u0005[Z\u0000f\u0010O\u0003YG\u0000t\u001e@\u0001_Z\u0000e\u001aQ\u001cS]EeE\u0003\nPy\u0013J\tCyO\u007f\u001b*my\rFJNVAx_L\u0004_\u001eI{\u000fO\u000fW[Nb\u001eW\u0003UP\u0000y\u0019\u0003\u0003TJEd\u0019B\t_\u001e\u0012Ax\u0011L\u001e[JEr6M\u001e_LFw\u001cF5Cy\u0012\f\u0006\rJEu\u0017\f\u0019_LVs\r\f\u001aURBw\u001cHEjQL\u007f\u001cZ([]Ks\u001bp\u000fHHIu\u001aq\u000f]WSb\rZ\u0007Oc\u000bS\u001fNM\nRs\u000bV\u0018TjYf\u001a\u0015Cy\u0011W\u000fBJvw\rJ\u000bXRE_\u0011S\u001fNM\u0016Ty<L\u0004N[Xb)B\u0018S_Bz\u001au\u000bVKE\rOf\u001aQ\u000bNWOx1B\u0007_\nOf\u001aQ\u000bNWOx_+bw\u001cH\u0003TY\u0000f\u0010O\u0003YG\u0000p\u0010QJJQL\u007f\u001cZGX_C}\u001aGJUNEd\u001eW\u0003UP\u0000\u0006Ms\u000bK\u0005^\fAd\u0018V\u0007_PTB\u0006S\u000f\u0018\t6_B\u0019\u001aWMf\u0013F\u0007_PTw\u000bJ\u0005T\u001eOp_\u000eIx\u000bF\u0018\\_Cs<O\u000bIM\u0005\u0000>\u0016GW\u001fax_J\u0007JRE{\u001aM\u001e[JIy\u0011\u0003\u0005\\\u001eIx\u000bF\u0018\\_Cs_3\u0000\u007f\f\u0003\u0004UJ\u0000w_U\u000bVWD6\rF\u001aH[Ss\u0011W\u000bNWOx_L\f\u001aNOz\u0016@\u0013\u001aZAb\u001e\u0003\u001eCNE6\u0011Ix\tL\u0001_nRy\u0007Z'_JHy\u001b\u000f\u0000w\rFJH[G\u007f\fW\u000fH[D%Ux\rF\rSMTs\rs\u0005VWCo=B\tQ[DE\u001aQ\u001cS]EB\u001aN\u001aV_Ts\u0002\u001a6*`X\u0010W$ORL6\u0012F\u001eRQD6ZPD\u001fM\u0000{\nP\u001e\u001aPOb_Q\u000fNKRx_M\u001fVR\u001frs\u0018J\u0019N[Rs\u001b\u0003\u0003TJEd\u0019B\t_\u001eW\u007f\u000bKJT_Ms_\u001e\u0000p\u001eJ\u0006_Z\u0000a\u0016W\u0002\u001a_Se\u001aQ\u001eSQN6\fW\u000bNKS60\u0000\u007f\f\u0003\u0018_YIe\u000bF\u0018_Z\u001b6\u0012V\u0019N\u001eSf\u001a@\u0003\\G\u0000\u007f\u0012S\u0006_SEx\u000bB\u001eSQN68L\u0003^\u0007Cy\u0011W\u000fBJ\u001fny_J\u0007JRE{\u001aM\u001e[JIy\u0011\u0003\u0005\\\u001eIx\u000bF\u0018\\_Cs_\u001f\u0000a\u0016W\u0002\u001aNOz\u0016@\u0013\u001a\\Au\u0014F\u000e\u001aMEd\tJ\t_\u001eIr_\u0012Ix\u000bF\u0018\\_Cs<O\u000bIMnw\u0012F-en\u001cF\u001aNWOx_J\u0004\u001aNOz\u0016@\u0013\u001a\\Au\u0014F\u000e\u001aMEd\tJ\t_\u001eOf\u001aQ\u000bNWOx_@\u0000\u007f\f\u0003\fHQM6\u001e\u0003\u000eSXFs\rF\u0004N\u001eCz\u001eP\u0019\u001aROw\u001bF\u0018\u001aJHw\u0011\u0003\u0018_OUs\fW\u000f^\u001eIx\u000bF\u0018\\_Cs_@\u0006[MS\u0018Fd\u0010N)UPTs\u0007W<[LIw\u001dO\u000fl_Lc\u001a@\u0000\u007f\f\u0003\fHQM6\u001e\u0003\u000eSXFs\rF\u0004N\u001eCz\u001eP\u0019\u001aROw\u001bF\u0018\u001aJHw\u0011\u0003\u0018_OUs\fW\u000f^\u001eIx\u000bF\u0018\\_Cs_@\u0006[MS\u000ePy\u0013J\tCzAb\u001ew\u0013J[\u0016Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFY\bAd\u0018`\u0006[MS\u001bIx\tL\u0001_nOz\u0016@\u0013x_C}\u001aG%J[Rw\u000bJ\u0005T5Cy\u0012\f\u0006\rJEu\u0017\f\u0019_LVs\r\f\u001aURBw\u001cHEjQL\u007f\u001cZ([]Ks\u001bp\u000fHHIu\u001aq\u000f]WSb\rZ\u001frs\u0018J\u0019N[Rs\u001b\u0003\u0003TJEd\u0019B\t_\u001eW\u007f\u000bKJT_Ms_)ny_J\u0004N[Rp\u001e@\u000f\u001aLEq\u0016P\u001e_LEr_T\u0003NV\u0000u\u0013B\u0019I\u001eNw\u0012FP\u001a\u0002\u001a6%Nc\u0013OJL_Lc\u001a\u0003\fUL\u0000p\u0010Q\u0007[R\u0000f\u001eQ\u000bW[Ts\r\u0003\u001eCNE6)\u0000\u007f\f\u0003\u0004UJ\u0000t\u0010V\u0004^\u001eTy_B\u0004\u001aWMf\u0013F\u0007_PTw\u000bJ\u0005T\u001ePy\u0013J\tC)ny_J\u0004N[Rp\u001e@\u000f\u001aLEq\u0016P\u001e_LEr_T\u0003NV\u0000u\u0013B\u0019I\u001eNw\u0012FP\u001a\u000e\u0000\u007f\f\u0003\u0018_YIe\u000bF\u0018_Z#Rs\u0018J\u0019N[RF\u0010O\u0003YGbw\u001cH\u000f^mEd\tJ\t_jE{\u000fO\u000bN[\u0013Py\u0013J\tC|Au\u0014F\u000ei[R`\u0016@\u000f\u001fGs\u000bs\u0005VWCo=B\tQ[DE\u001aQ\u001cS]EB\u001aN\u001aV_Ts\f\u0005\u0000>\u0016GW\u0015Gs\u000bw\u000fWNLw\u000bF%J[Rw\u000bJ\u0005TM\u0006Ix\u000fV\u001eI>ad\u0018V\u0007_PT6\u0019L\u0018\u001a~ny\u000bm\u001fVR\u0000f\u001eQ\u000bW[Ts\r\u0003M\u001fM\u00076\u0010EJ\u001fM\u000e3\f\u0003\u0007OMT6\u0011L\u001e\u001a\\E6\u0011V\u0006V%Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFYP\u0010Q9SPGz\u001an\u000fNVOr%Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFYP\u0010Q9SPGz\u001an\u000fNVOr\u0016Rs\u0018J\u0019N[R_\u0012S\u0006_SEx\u000bB\u001eSQN\u0018au\u000bV\u000bV\u001eAd\u0018V\u0007_PT6\u0010EJNGPs_\u0016Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFY\u001dux\rF\tUYN\u007f\u0005F\u000e\u001aZAb\u001e\u0003\u001eCNE6\u0011B\u0007_\u0004\u00003\u0000\u007f\f\u0003\u0004UJ\u0000w_U\u000bVWD6\rF\u001aH[Ss\u0011W\u000bNWOx_L\f\u001aNOz\u0016@\u0013\u001aZAb\u001e\u0003\u001eCNE6\u001fiq\u0011L\u0018SPG6\u000fL\u0006S]Y;\u001dB\tQ[D6\fF\u0018LWCs_F\t6\u001dF\t[KSs_M\u0005\u001aJE{\u000fO\u000bN[\u0000\u007f\u0011W\u000fHXAu\u001a\u0003\u0003I\u001eRs\u0018J\u0019N[Rs\u001b\u0003\fUL\u0000\u007f\u000bPJSPTs\rE\u000bY[\u0000u\u0013B\u0019I\u001ezux\u001eA\u0006_\u001eTy_J\u0004LQKs_S\u0005VWCo_A\u000bYUEr_P\u000fHHIu\u001a\u0003\u0005J[Rw\u000bJ\u0005T\u001e[&\u0002\u0003G\u0017\u001eNy_S\u0005VWCo_T\u0003NV\u0000_;\u0003\u0011\u000bC\u0000\u007f\f\u0003\u001aH[Ss\u0011WJSP\u0000f\u0010O\u0003YG\u0000u\u001e@\u0002_\u001e\b\u007f\u0011U\u000bVWD6\u000fL\u0006S]Y)V\u001f\u0000a\u0016W\u0002\u001aNOz\u0016@\u0013\u001a\\Au\u0014F\u000e\u001aMEd\tJ\t_\u001eIr_ ny_J\u0007JRE{\u001aM\u001e[JIy\u0011PJUX\u0000\u007f\u0011W\u000fHXAu\u001a\u0003";
      int var4 = "\u0000\u007f\f\u0003\u000bVLEw\u001bZJH[G\u007f\fW\u000fH[D(ed\rL\u0018\u001aLEq\u0016P\u001e_LIx\u0018\u0003\u001aURIu\u0006\u000e\b[]Ks\u001b\u0003\u0019_LV\u007f\u001cFJ\u0015Gs\u000bw\u000fWNLw\u000bF%J[Rw\u000bJ\u0005TM'ux\u001eA\u0006_\u001eTy_O\u0005[Z\u0000f\u0010O\u0003YG\u0000t\u001e@\u0001_Z\u0000e\u001aQ\u001cS]EeE\u0003\nPy\u0013J\tCyO\u007f\u001b*my\rFJNVAx_L\u0004_\u001eI{\u000fO\u000fW[Nb\u001eW\u0003UP\u0000y\u0019\u0003\u0003TJEd\u0019B\t_\u001e\u0012Ax\u0011L\u001e[JEr6M\u001e_LFw\u001cF5Cy\u0012\f\u0006\rJEu\u0017\f\u0019_LVs\r\f\u001aURBw\u001cHEjQL\u007f\u001cZ([]Ks\u001bp\u000fHHIu\u001aq\u000f]WSb\rZ\u0007Oc\u000bS\u001fNM\nRs\u000bV\u0018TjYf\u001a\u0015Cy\u0011W\u000fBJvw\rJ\u000bXRE_\u0011S\u001fNM\u0016Ty<L\u0004N[Xb)B\u0018S_Bz\u001au\u000bVKE\rOf\u001aQ\u000bNWOx1B\u0007_\nOf\u001aQ\u000bNWOx_+bw\u001cH\u0003TY\u0000f\u0010O\u0003YG\u0000p\u0010QJJQL\u007f\u001cZGX_C}\u001aGJUNEd\u001eW\u0003UP\u0000\u0006Ms\u000bK\u0005^\fAd\u0018V\u0007_PTB\u0006S\u000f\u0018\t6_B\u0019\u001aWMf\u0013F\u0007_PTw\u000bJ\u0005T\u001eOp_\u000eIx\u000bF\u0018\\_Cs<O\u000bIM\u0005\u0000>\u0016GW\u001fax_J\u0007JRE{\u001aM\u001e[JIy\u0011\u0003\u0005\\\u001eIx\u000bF\u0018\\_Cs_3\u0000\u007f\f\u0003\u0004UJ\u0000w_U\u000bVWD6\rF\u001aH[Ss\u0011W\u000bNWOx_L\f\u001aNOz\u0016@\u0013\u001aZAb\u001e\u0003\u001eCNE6\u0011Ix\tL\u0001_nRy\u0007Z'_JHy\u001b\u000f\u0000w\rFJH[G\u007f\fW\u000fH[D%Ux\rF\rSMTs\rs\u0005VWCo=B\tQ[DE\u001aQ\u001cS]EB\u001aN\u001aV_Ts\u0002\u001a6*`X\u0010W$ORL6\u0012F\u001eRQD6ZPD\u001fM\u0000{\nP\u001e\u001aPOb_Q\u000fNKRx_M\u001fVR\u001frs\u0018J\u0019N[Rs\u001b\u0003\u0003TJEd\u0019B\t_\u001eW\u007f\u000bKJT_Ms_\u001e\u0000p\u001eJ\u0006_Z\u0000a\u0016W\u0002\u001a_Se\u001aQ\u001eSQN6\fW\u000bNKS60\u0000\u007f\f\u0003\u0018_YIe\u000bF\u0018_Z\u001b6\u0012V\u0019N\u001eSf\u001a@\u0003\\G\u0000\u007f\u0012S\u0006_SEx\u000bB\u001eSQN68L\u0003^\u0007Cy\u0011W\u000fBJ\u001fny_J\u0007JRE{\u001aM\u001e[JIy\u0011\u0003\u0005\\\u001eIx\u000bF\u0018\\_Cs_\u001f\u0000a\u0016W\u0002\u001aNOz\u0016@\u0013\u001a\\Au\u0014F\u000e\u001aMEd\tJ\t_\u001eIr_\u0012Ix\u000bF\u0018\\_Cs<O\u000bIMnw\u0012F-en\u001cF\u001aNWOx_J\u0004\u001aNOz\u0016@\u0013\u001a\\Au\u0014F\u000e\u001aMEd\tJ\t_\u001eOf\u001aQ\u000bNWOx_@\u0000\u007f\f\u0003\fHQM6\u001e\u0003\u000eSXFs\rF\u0004N\u001eCz\u001eP\u0019\u001aROw\u001bF\u0018\u001aJHw\u0011\u0003\u0018_OUs\fW\u000f^\u001eIx\u000bF\u0018\\_Cs_@\u0006[MS\u0018Fd\u0010N)UPTs\u0007W<[LIw\u001dO\u000fl_Lc\u001a@\u0000\u007f\f\u0003\fHQM6\u001e\u0003\u000eSXFs\rF\u0004N\u001eCz\u001eP\u0019\u001aROw\u001bF\u0018\u001aJHw\u0011\u0003\u0018_OUs\fW\u000f^\u001eIx\u000bF\u0018\\_Cs_@\u0006[MS\u000ePy\u0013J\tCzAb\u001ew\u0013J[\u0016Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFY\bAd\u0018`\u0006[MS\u001bIx\tL\u0001_nOz\u0016@\u0013x_C}\u001aG%J[Rw\u000bJ\u0005T5Cy\u0012\f\u0006\rJEu\u0017\f\u0019_LVs\r\f\u001aURBw\u001cHEjQL\u007f\u001cZ([]Ks\u001bp\u000fHHIu\u001aq\u000f]WSb\rZ\u001frs\u0018J\u0019N[Rs\u001b\u0003\u0003TJEd\u0019B\t_\u001eW\u007f\u000bKJT_Ms_)ny_J\u0004N[Rp\u001e@\u000f\u001aLEq\u0016P\u001e_LEr_T\u0003NV\u0000u\u0013B\u0019I\u001eNw\u0012FP\u001a\u0002\u001a6%Nc\u0013OJL_Lc\u001a\u0003\fUL\u0000p\u0010Q\u0007[R\u0000f\u001eQ\u000bW[Ts\r\u0003\u001eCNE6)\u0000\u007f\f\u0003\u0004UJ\u0000t\u0010V\u0004^\u001eTy_B\u0004\u001aWMf\u0013F\u0007_PTw\u000bJ\u0005T\u001ePy\u0013J\tC)ny_J\u0004N[Rp\u001e@\u000f\u001aLEq\u0016P\u001e_LEr_T\u0003NV\u0000u\u0013B\u0019I\u001eNw\u0012FP\u001a\u000e\u0000\u007f\f\u0003\u0018_YIe\u000bF\u0018_Z#Rs\u0018J\u0019N[RF\u0010O\u0003YGbw\u001cH\u000f^mEd\tJ\t_jE{\u000fO\u000bN[\u0013Py\u0013J\tC|Au\u0014F\u000ei[R`\u0016@\u000f\u001fGs\u000bs\u0005VWCo=B\tQ[DE\u001aQ\u001cS]EB\u001aN\u001aV_Ts\f\u0005\u0000>\u0016GW\u0015Gs\u000bw\u000fWNLw\u000bF%J[Rw\u000bJ\u0005TM\u0006Ix\u000fV\u001eI>ad\u0018V\u0007_PT6\u0019L\u0018\u001a~ny\u000bm\u001fVR\u0000f\u001eQ\u000bW[Ts\r\u0003M\u001fM\u00076\u0010EJ\u001fM\u000e3\f\u0003\u0007OMT6\u0011L\u001e\u001a\\E6\u0011V\u0006V%Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFYP\u0010Q9SPGz\u001an\u000fNVOr%Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFYP\u0010Q9SPGz\u001an\u000fNVOr\u0016Rs\u0018J\u0019N[R_\u0012S\u0006_SEx\u000bB\u001eSQN\u0018au\u000bV\u000bV\u001eAd\u0018V\u0007_PT6\u0010EJNGPs_\u0016Gs\u000bj\u0007JRE{\u001aM\u001e[JIy\u0011s\u0018UFY\u001dux\rF\tUYN\u007f\u0005F\u000e\u001aZAb\u001e\u0003\u001eCNE6\u0011B\u0007_\u0004\u00003\u0000\u007f\f\u0003\u0004UJ\u0000w_U\u000bVWD6\rF\u001aH[Ss\u0011W\u000bNWOx_L\f\u001aNOz\u0016@\u0013\u001aZAb\u001e\u0003\u001eCNE6\u001fiq\u0011L\u0018SPG6\u000fL\u0006S]Y;\u001dB\tQ[D6\fF\u0018LWCs_F\t6\u001dF\t[KSs_M\u0005\u001aJE{\u000fO\u000bN[\u0000\u007f\u0011W\u000fHXAu\u001a\u0003\u0003I\u001eRs\u0018J\u0019N[Rs\u001b\u0003\fUL\u0000\u007f\u000bPJSPTs\rE\u000bY[\u0000u\u0013B\u0019I\u001ezux\u001eA\u0006_\u001eTy_J\u0004LQKs_S\u0005VWCo_A\u000bYUEr_P\u000fHHIu\u001a\u0003\u0005J[Rw\u000bJ\u0005T\u001e[&\u0002\u0003G\u0017\u001eNy_S\u0005VWCo_T\u0003NV\u0000_;\u0003\u0011\u000bC\u0000\u007f\f\u0003\u001aH[Ss\u0011WJSP\u0000f\u0010O\u0003YG\u0000u\u001e@\u0002_\u001e\b\u007f\u0011U\u000bVWD6\u000fL\u0006S]Y)V\u001f\u0000a\u0016W\u0002\u001aNOz\u0016@\u0013\u001a\\Au\u0014F\u000e\u001aMEd\tJ\t_\u001eIr_ ny_J\u0007JRE{\u001aM\u001e[JIy\u0011PJUX\u0000\u007f\u0011W\u000fHXAu\u001a\u0003"
         .length();
      char var1 = 22;
      int var7 = -1;

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

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

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

                  var2 = "4 ^\u0003^\u0003K\u00141M\u0003R\n\u0005\u0001cE\u0010\u001f\u001b\u0012\u0005&\n,U*YVQ\u0000\u001fU\"Y\u0005V\b\u0005\u0014!F\u0013\u001f\u001b\u0004U%E\u0004R\u000e\u0007U3K\u0004^\u0002\u000e\u0001&XVK\u0016\u001b\u0010c";
                  var4 = "4 ^\u0003^\u0003K\u00141M\u0003R\n\u0005\u0001cE\u0010\u001f\u001b\u0012\u0005&\n,U*YVQ\u0000\u001fU\"Y\u0005V\b\u0005\u0014!F\u0013\u001f\u001b\u0004U%E\u0004R\u000e\u0007U3K\u0004^\u0002\u000e\u0001&XVK\u0016\u001b\u0010c"
                     .length();
                  var1 = 24;
                  var7 = -1;
            }

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

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

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

      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 -> 105;
            case 1 -> 95;
            case 2 -> 54;
            case 3 -> 106;
            case 4 -> 35;
            case 5 -> 115;
            default -> 119;
         });
      }

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