package com.l7tech.server.identity;

import com.l7tech.common.password.PasswordHasher;
import com.l7tech.gateway.common.admin.IdentityAdmin;
import com.l7tech.gateway.common.admin.IdentityAdmin.AccountMinimums;
import com.l7tech.gateway.common.audit.LoggingAudit;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.identity.AuthenticationException;
import com.l7tech.identity.Group;
import com.l7tech.identity.GroupManager;
import com.l7tech.identity.IdentityProvider;
import com.l7tech.identity.IdentityProviderConfig;
import com.l7tech.identity.IdentityProviderConfigManager;
import com.l7tech.identity.IdentityProviderPasswordPolicy;
import com.l7tech.identity.IdentityProviderPasswordPolicyManager;
import com.l7tech.identity.IdentityProviderType;
import com.l7tech.identity.InvalidIdProviderCfgException;
import com.l7tech.identity.LogonInfo;
import com.l7tech.identity.User;
import com.l7tech.identity.UserBean;
import com.l7tech.identity.UserManager;
import com.l7tech.identity.LogonInfo.State;
import com.l7tech.identity.cert.ClientCertManager;
import com.l7tech.identity.cert.ClientCertManager.CertInfo;
import com.l7tech.identity.internal.InternalUser;
import com.l7tech.identity.ldap.LdapIdentityProviderConfig;
import com.l7tech.ntlm.adapter.NetlogonAdapter;
import com.l7tech.ntlm.protocol.AuthenticationManagerException;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.objectmodel.InvalidPasswordException;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.objectmodel.ObjectNotFoundException;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.event.admin.AdminEvent;
import com.l7tech.server.event.admin.AdministrativePasswordsResetEvent;
import com.l7tech.server.event.admin.AuditRevokeAllUserCertificates;
import com.l7tech.server.identity.internal.InternalIdentityProvider;
import com.l7tech.server.identity.internal.InternalUserManager;
import com.l7tech.server.identity.ldap.LdapConfigTemplateManager;
import com.l7tech.server.logon.LogonInfoManager;
import com.l7tech.server.policy.variable.ServerVariables;
import com.l7tech.server.security.PasswordEnforcerManager;
import com.l7tech.server.security.rbac.RoleManager;
import com.l7tech.server.util.JaasUtils;
import com.l7tech.util.Config;
import com.l7tech.util.Functions;
import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.HexUtils;
import com.l7tech.util.Pair;
import jakarta.inject.Inject;
import java.security.SecureRandom;
import java.security.cert.Certificate;
import java.security.cert.CertificateEncodingException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.security.auth.x500.X500Principal;
import org.apache.commons.collections.CollectionUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;

public class IdentityAdminImpl implements ApplicationEventPublisherAware, IdentityAdmin {
   private ClientCertManager a;
   private final RoleManager b;
   private final DefaultKey c;
   private ApplicationEventPublisher d;
   private final PasswordEnforcerManager e;
   private final IdentityProviderPasswordPolicyManager f;
   private LogonInfoManager g;
   private final PasswordHasher h;
   private final Collection<Pair<AccountMinimums, IdentityProviderPasswordPolicy>> i;
   @Inject
   private Config config;
   private static final String j;
   private static final SecureRandom k;
   private IdentityProviderConfigManager l;
   private IdentityProviderFactory m;
   private LdapConfigTemplateManager n;
   private final Logger o = Logger.getLogger(this.getClass().getName());
   private static final String[] q;

   public IdentityAdminImpl(
      RoleManager var1,
      IdentityProviderPasswordPolicyManager var2,
      PasswordEnforcerManager var3,
      DefaultKey var4,
      PasswordHasher var5,
      Collection<Pair<AccountMinimums, IdentityProviderPasswordPolicy>> var6,
      LdapConfigTemplateManager var7
   ) {
      if (var1 == null) {
         throw new IllegalArgumentException(q[35]);
      }

      this.b = var1;
      this.c = var4;
      this.f = var2;
      this.e = var3;
      this.h = var5;
      this.i = var6;
      this.n = var7;
   }

   public void setApplicationEventPublisher(ApplicationEventPublisher var1) {
      try {
         if (this.d != null) {
            throw new IllegalStateException(q[70]);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.d = var1;
   }

   public EntityHeader[] findAllIdentityProviderConfig() throws FindException {
      Collection var1 = this.e().findAllHeaders();
      return var1.toArray(new EntityHeader[var1.size()]);
   }

   public IdentityProviderConfig findIdentityProviderConfigByID(Goid var1) throws FindException {
      return (IdentityProviderConfig)this.e().findByPrimaryKey(var1);
   }

   public Goid saveIdentityProviderConfig(IdentityProviderConfig var1) throws SaveException, UpdateException {
      try {
         Goid var2;
         if (!Goid.isDefault(var1.getGoid())) {
            IdentityProviderConfigManager var3 = this.e();
            IdentityProviderConfig var4 = (IdentityProviderConfig)var3.findByPrimaryKey(var1.getGoid());

            try {
               if (var4 == null) {
                  throw new SaveException(q[48] + var1.getGoid() + q[13]);
               }
            } catch (FindException var6) {
               throw a(var6);
            }

            var4.copyFrom(var1);
            var3.update(var4);
            Logger var9 = this.o;
            String var10 = String.valueOf(var1.getGoid());
            String[] var8 = q;
            var9.info(var8[55] + var10);
            var2 = var1.getGoid();
         } else {
            Logger var10000 = this.o;
            String var10001 = String.valueOf(var1.getGoid());
            String[] var5 = q;
            var10000.info(var5[60] + var10001);
            var2 = this.e().save(var1);
            this.e().createRoles(var1);
         }

         return var2;
      } catch (FindException var7) {
         this.o.log(Level.SEVERE, null, var7);
         throw new UpdateException(q[68], var7);
      }
   }

   private void a(Goid var1) throws DeleteException {
      try {
         UserManager var2 = this.d(var1);

         try {
            if (var2 == null) {
               throw new DeleteException(q[59]);
            }
         } catch (FindException var3) {
            throw a(var3);
         }

         var2.deleteAll(var1);
      } catch (FindException var4) {
         throw new DeleteException(q[30], var4);
      }
   }

   private void b(Goid var1) throws DeleteException {
      try {
         GroupManager var2 = this.e(var1);

         try {
            if (var2 == null) {
               throw new DeleteException(q[2]);
            }
         } catch (ObjectNotFoundException var3) {
            throw a(var3);
         }

         var2.deleteAll(var1);
      } catch (ObjectNotFoundException var4) {
         throw new DeleteException(q[68], var4);
      } catch (FindException var5) {
         throw new DeleteException(var5.getMessage(), var5);
      }
   }

   private void c(Goid var1) throws DeleteException {
      try {
         GroupManager var2 = this.e(var1);

         try {
            if (var2 == null) {
               throw new DeleteException(q[12]);
            }
         } catch (ObjectNotFoundException var3) {
            throw a(var3);
         }

         var2.deleteAllVirtual(var1);
      } catch (ObjectNotFoundException var4) {
         throw new DeleteException(q[68], var4);
      } catch (FindException var5) {
         throw new DeleteException(var5.getMessage(), var5);
      }
   }

   public void deleteIdentityProviderConfig(Goid var1) throws DeleteException {
      try {
         IdentityProviderConfigManager var2 = this.e();
         IdentityProviderConfig var3 = (IdentityProviderConfig)var2.findByPrimaryKey(var1);

         try {
            if (var3 == null) {
               throw new DeleteException(q[76] + var1 + q[56]);
            }
         } catch (FindException var5) {
            throw a(var5);
         }

         try {
            if (var3.type() == IdentityProviderType.FEDERATED) {
               this.a(var1);
               this.b(var1);
               this.c(var1);
            }
         } catch (FindException var6) {
            throw a(var6);
         }

         var2.delete(var3);
         Logger var10000 = this.o;
         String var10001 = String.valueOf(var3);
         String[] var4 = q;
         var10000.info(var4[23] + var10001);
      } catch (FindException var7) {
         this.o.log(Level.SEVERE, null, var7);
         throw new DeleteException(q[1], var7);
      }
   }

   public EntityHeaderSet<IdentityHeader> findAllUsers(Goid var1) throws FindException {
      UserManager var2 = this.d(var1);
      return var2.findAllHeaders();
   }

   public EntityHeaderSet<IdentityHeader> searchIdentities(Goid var1, EntityType[] var2, String var3) throws FindException {
      IdentityProvider var4 = this.m.getProvider(var1);

      try {
         if (var4 == null) {
            throw new FindException(q[22]);
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      return var4.search(var2, var3);
   }

   public User findUserByID(Goid var1, String var2) throws FindException {
      IdentityProvider var3 = this.m.getProvider(var1);

      try {
         if (var3 == null) {
            this.o.warning(q[5] + var1 + q[32]);
            return null;
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      UserManager var4 = var3.getUserManager();
      Object var5 = var4.findByPrimaryKey(var2);
      if (var5 instanceof InternalUser) {
         var5 = this.a((InternalUser)var5);
      }

      return (User)var5;
   }

   public User findUserByLogin(Goid var1, String var2) throws FindException {
      IdentityProvider var3 = this.m.getProvider(var1);

      try {
         if (var3 == null) {
            this.o.warning(q[5] + var1 + q[32]);
            return null;
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      UserManager var4 = var3.getUserManager();
      Object var5 = var4.findByLogin(var2);
      if (var5 instanceof InternalUser) {
         var5 = this.a((InternalUser)var5);
      }

      return (User)var5;
   }

   public void deleteUser(Goid var1, String var2) throws DeleteException, ObjectNotFoundException {
      try {
         UserManager var3 = this.d(var1);

         try {
            if (var3 == null) {
               throw new DeleteException(q[38]);
            }
         } catch (FindException var8) {
            throw a(var8);
         }

         User var4 = var3.findByPrimaryKey(var2);

         try {
            if (var4 == null) {
               throw new ObjectNotFoundException(q[78] + var2);
            }
         } catch (FindException var6) {
            throw a(var6);
         }

         try {
            if (var4.equals(JaasUtils.getCurrentUser())) {
               throw new DeleteException(q[39]);
            }
         } catch (FindException var7) {
            throw a(var7);
         }

         var3.delete(var4);
         Logger var10000 = this.o;
         String var10001 = var4.getLogin();
         String[] var5 = q;
         var10000.info(var5[8] + var10001);
      } catch (FindException var9) {
         this.o.log(Level.SEVERE, null, var9);
         throw new DeleteException(q[68], var9);
      }
   }

   public String saveUser(Goid var1, User var2, Set<IdentityHeader> var3) throws SaveException, UpdateException, ObjectNotFoundException {
      try {
         return this.saveUser(var1, var2, var3, null);
      } catch (InvalidPasswordException var5) {
         throw new IllegalStateException(q[63]);
      }
   }

   public String saveUser(Goid param1, User param2, Set param3, @Nullable String param4) throws SaveException, UpdateException, ObjectNotFoundException, InvalidPasswordException {
      // $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: bipush 1
      // 001: istore 5
      // 003: aload 2
      // 004: invokeinterface com/l7tech/identity/User.getId ()Ljava/lang/String; 1
      // 009: astore 6
      // 00b: aload 6
      // 00d: ifnull 022
      // 010: getstatic com/l7tech/server/identity/IdentityAdminImpl.j Ljava/lang/String;
      // 013: aload 6
      // 015: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 018: ifeq 02a
      // 01b: goto 022
      // 01e: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 021: athrow
      // 022: bipush 1
      // 023: goto 02b
      // 026: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 029: athrow
      // 02a: bipush 0
      // 02b: istore 5
      // 02d: aload 0
      // 02e: getfield com/l7tech/server/identity/IdentityAdminImpl.m Lcom/l7tech/server/identity/IdentityProviderFactory;
      // 031: aload 1
      // 032: invokevirtual com/l7tech/server/identity/IdentityProviderFactory.getProvider (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/identity/IdentityProvider;
      // 035: astore 7
      // 037: aload 7
      // 039: ifnonnull 04e
      // 03c: new com/l7tech/objectmodel/FindException
      // 03f: dup
      // 040: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 043: bipush 27
      // 045: aaload
      // 046: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 049: athrow
      // 04a: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04d: athrow
      // 04e: aload 7
      // 050: invokeinterface com/l7tech/identity/IdentityProvider.getUserManager ()Lcom/l7tech/identity/UserManager; 1
      // 055: astore 8
      // 057: aload 2
      // 058: instanceof com/l7tech/identity/UserBean
      // 05b: ifeq 06a
      // 05e: aload 8
      // 060: aload 2
      // 061: checkcast com/l7tech/identity/UserBean
      // 064: invokeinterface com/l7tech/identity/UserManager.reify (Lcom/l7tech/identity/UserBean;)Lcom/l7tech/identity/User; 2
      // 069: astore 2
      // 06a: aload 2
      // 06b: instanceof com/l7tech/identity/internal/InternalUser
      // 06e: ifeq 0ec
      // 071: aload 2
      // 072: checkcast com/l7tech/identity/internal/InternalUser
      // 075: astore 9
      // 077: iload 5
      // 079: ifne 09e
      // 07c: aload 0
      // 07d: aload 9
      // 07f: invokevirtual com/l7tech/server/identity/IdentityAdminImpl.b (Lcom/l7tech/identity/internal/InternalUser;)V
      // 082: aload 0
      // 083: aload 9
      // 085: aload 8
      // 087: aload 9
      // 089: invokevirtual com/l7tech/identity/internal/InternalUser.getId ()Ljava/lang/String;
      // 08c: invokeinterface com/l7tech/identity/UserManager.findByPrimaryKey (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 091: checkcast com/l7tech/identity/internal/InternalUser
      // 094: invokevirtual com/l7tech/server/identity/IdentityAdminImpl.a (Lcom/l7tech/identity/internal/InternalUser;Lcom/l7tech/identity/internal/InternalUser;)V
      // 097: goto 0ec
      // 09a: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09d: athrow
      // 09e: aload 0
      // 09f: getfield com/l7tech/server/identity/IdentityAdminImpl.e Lcom/l7tech/server/security/PasswordEnforcerManager;
      // 0a2: aload 4
      // 0a4: invokevirtual com/l7tech/server/security/PasswordEnforcerManager.isPasswordPolicyCompliant (Ljava/lang/String;)V
      // 0a7: aload 0
      // 0a8: getfield com/l7tech/server/identity/IdentityAdminImpl.e Lcom/l7tech/server/security/PasswordEnforcerManager;
      // 0ab: aload 9
      // 0ad: bipush 1
      // 0ae: invokevirtual com/l7tech/server/security/PasswordEnforcerManager.setUserPasswordPolicyAttributes (Lcom/l7tech/identity/internal/InternalUser;Z)V
      // 0b1: aload 8
      // 0b3: checkcast com/l7tech/server/identity/internal/InternalUserManager
      // 0b6: astore 10
      // 0b8: aload 10
      // 0ba: invokeinterface com/l7tech/server/identity/internal/InternalUserManager.getUserPasswordManager ()Lcom/l7tech/server/identity/internal/InternalUserPasswordManager; 1
      // 0bf: astore 11
      // 0c1: aload 11
      // 0c3: aload 9
      // 0c5: aload 4
      // 0c7: invokeinterface com/l7tech/server/identity/internal/InternalUserPasswordManager.configureUserPasswordHashes (Lcom/l7tech/identity/internal/InternalUser;Ljava/lang/String;)Z 3
      // 0cc: istore 12
      // 0ce: getstatic com/l7tech/server/identity/IdentityAdminImpl.p Z
      // 0d1: ifne 0ec
      // 0d4: iload 12
      // 0d6: ifne 0ec
      // 0d9: goto 0e0
      // 0dc: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0df: athrow
      // 0e0: new java/lang/AssertionError
      // 0e3: dup
      // 0e4: invokespecial java/lang/AssertionError.<init> ()V
      // 0e7: athrow
      // 0e8: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0eb: athrow
      // 0ec: aload 2
      // 0ed: instanceof com/l7tech/identity/fed/FederatedUser
      // 0f0: ifeq 106
      // 0f3: aload 2
      // 0f4: checkcast com/l7tech/identity/fed/FederatedUser
      // 0f7: astore 9
      // 0f9: aload 9
      // 0fb: aload 9
      // 0fd: invokevirtual com/l7tech/identity/fed/FederatedUser.getSubjectDn ()Ljava/lang/String;
      // 100: invokestatic com/l7tech/common/io/CertUtils.formatDN (Ljava/lang/String;)Ljava/lang/String;
      // 103: invokevirtual com/l7tech/identity/fed/FederatedUser.setSubjectDn (Ljava/lang/String;)V
      // 106: iload 5
      // 108: ifeq 141
      // 10b: aload 8
      // 10d: aload 2
      // 10e: aload 3
      // 10f: invokeinterface com/l7tech/identity/UserManager.save (Lcom/l7tech/identity/User;Ljava/util/Set;)Ljava/lang/String; 3
      // 114: astore 6
      // 116: aload 0
      // 117: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 11a: aload 2
      // 11b: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 120: aload 6
      // 122: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 125: astore 13
      // 127: aload 13
      // 129: bipush 62
      // 12b: aaload
      // 12c: dup_x2
      // 12d: pop
      // 12e: aload 13
      // 130: bipush 72
      // 132: aaload
      // 133: swap
      // 134: ldc "]"
      // 136: 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" ]
      // 13b: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 13e: goto 172
      // 141: aload 8
      // 143: aload 2
      // 144: aload 3
      // 145: invokeinterface com/l7tech/identity/UserManager.update (Lcom/l7tech/identity/User;Ljava/util/Set;)V 3
      // 14a: aload 0
      // 14b: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 14e: aload 2
      // 14f: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 154: aload 6
      // 156: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 159: astore 13
      // 15b: aload 13
      // 15d: bipush 51
      // 15f: aaload
      // 160: dup_x2
      // 161: pop
      // 162: aload 13
      // 164: bipush 72
      // 166: aaload
      // 167: swap
      // 168: ldc "]"
      // 16a: 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" ]
      // 16f: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 172: aload 6
      // 174: areturn
      // 175: astore 6
      // 177: aload 0
      // 178: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 17b: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 17e: aconst_null
      // 17f: aload 6
      // 181: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 184: iload 5
      // 186: ifeq 19d
      // 189: new com/l7tech/objectmodel/SaveException
      // 18c: dup
      // 18d: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 190: bipush 82
      // 192: aaload
      // 193: aload 6
      // 195: invokespecial com/l7tech/objectmodel/SaveException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 198: athrow
      // 199: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19c: athrow
      // 19d: new com/l7tech/objectmodel/UpdateException
      // 1a0: dup
      // 1a1: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 1a4: bipush 58
      // 1a6: aaload
      // 1a7: aload 6
      // 1a9: invokespecial com/l7tech/objectmodel/UpdateException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1ac: athrow
      // try (91 -> 100): 100 com/l7tech/objectmodel/FindException
      // try (89 -> 93): 94 com/l7tech/objectmodel/FindException
      // try (53 -> 67): 67 com/l7tech/objectmodel/FindException
      // try (25 -> 34): 34 com/l7tech/objectmodel/FindException
      // try (7 -> 16): 16 com/l7tech/objectmodel/FindException
      // try (5 -> 11): 12 com/l7tech/objectmodel/FindException
      // try (2 -> 164): 165 com/l7tech/objectmodel/FindException
      // try (166 -> 182): 182 com/l7tech/objectmodel/FindException
   }

   public void changeUsersPassword(User param1, String param2) throws FindException, UpdateException, InvalidPasswordException {
      // $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 0
      // 001: getfield com/l7tech/server/identity/IdentityAdminImpl.m Lcom/l7tech/server/identity/IdentityProviderFactory;
      // 004: aload 1
      // 005: invokeinterface com/l7tech/identity/User.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 00a: invokevirtual com/l7tech/server/identity/IdentityProviderFactory.getProvider (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/identity/IdentityProvider;
      // 00d: astore 3
      // 00e: aload 3
      // 00f: ifnonnull 024
      // 012: new com/l7tech/objectmodel/FindException
      // 015: dup
      // 016: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 019: bipush 27
      // 01b: aaload
      // 01c: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 01f: athrow
      // 020: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 023: athrow
      // 024: aload 3
      // 025: instanceof com/l7tech/server/identity/internal/InternalIdentityProvider
      // 028: ifne 03d
      // 02b: new com/l7tech/objectmodel/UpdateException
      // 02e: dup
      // 02f: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 032: bipush 45
      // 034: aaload
      // 035: invokespecial com/l7tech/objectmodel/UpdateException.<init> (Ljava/lang/String;)V
      // 038: athrow
      // 039: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03c: athrow
      // 03d: aload 2
      // 03e: ifnull 052
      // 041: aload 2
      // 042: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 045: invokevirtual java/lang/String.isEmpty ()Z
      // 048: ifeq 064
      // 04b: goto 052
      // 04e: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 051: athrow
      // 052: new com/l7tech/objectmodel/InvalidPasswordException
      // 055: dup
      // 056: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 059: bipush 16
      // 05b: aaload
      // 05c: invokespecial com/l7tech/objectmodel/InvalidPasswordException.<init> (Ljava/lang/String;)V
      // 05f: athrow
      // 060: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 063: athrow
      // 064: aload 3
      // 065: invokeinterface com/l7tech/identity/IdentityProvider.getUserManager ()Lcom/l7tech/identity/UserManager; 1
      // 06a: checkcast com/l7tech/server/identity/internal/InternalUserManager
      // 06d: astore 4
      // 06f: new com/l7tech/identity/internal/InternalUser
      // 072: dup
      // 073: invokespecial com/l7tech/identity/internal/InternalUser.<init> ()V
      // 076: astore 5
      // 078: aload 4
      // 07a: aload 1
      // 07b: invokeinterface com/l7tech/identity/User.getId ()Ljava/lang/String; 1
      // 080: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 083: invokeinterface com/l7tech/server/identity/internal/InternalUserManager.findByPrimaryKey (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 088: checkcast com/l7tech/identity/internal/InternalUser
      // 08b: astore 6
      // 08d: aload 5
      // 08f: aload 6
      // 091: invokevirtual com/l7tech/identity/internal/InternalUser.copyFrom (Lcom/l7tech/identity/User;)V
      // 094: aload 5
      // 096: aload 6
      // 098: invokevirtual com/l7tech/identity/internal/InternalUser.getVersion ()I
      // 09b: invokevirtual com/l7tech/identity/internal/InternalUser.setVersion (I)V
      // 09e: aload 5
      // 0a0: invokevirtual com/l7tech/identity/internal/InternalUser.getHashedPassword ()Ljava/lang/String;
      // 0a3: astore 6
      // 0a5: aload 0
      // 0a6: getfield com/l7tech/server/identity/IdentityAdminImpl.h Lcom/l7tech/common/password/PasswordHasher;
      // 0a9: aload 6
      // 0ab: invokeinterface com/l7tech/common/password/PasswordHasher.isVerifierRecognized (Ljava/lang/String;)Z 2
      // 0b0: ifeq 0d9
      // 0b3: aload 0
      // 0b4: getfield com/l7tech/server/identity/IdentityAdminImpl.h Lcom/l7tech/common/password/PasswordHasher;
      // 0b7: aload 2
      // 0b8: getstatic com/l7tech/util/Charsets.UTF8 Ljava/nio/charset/Charset;
      // 0bb: invokevirtual java/lang/String.getBytes (Ljava/nio/charset/Charset;)[B
      // 0be: aload 6
      // 0c0: invokeinterface com/l7tech/common/password/PasswordHasher.verifyPassword ([BLjava/lang/String;)V 3
      // 0c5: new com/l7tech/objectmodel/InvalidPasswordException
      // 0c8: dup
      // 0c9: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 0cc: astore 9
      // 0ce: aload 9
      // 0d0: bipush 44
      // 0d2: aaload
      // 0d3: invokespecial com/l7tech/objectmodel/InvalidPasswordException.<init> (Ljava/lang/String;)V
      // 0d6: athrow
      // 0d7: astore 7
      // 0d9: aload 0
      // 0da: getfield com/l7tech/server/identity/IdentityAdminImpl.e Lcom/l7tech/server/security/PasswordEnforcerManager;
      // 0dd: aload 2
      // 0de: invokevirtual com/l7tech/server/security/PasswordEnforcerManager.isPasswordPolicyCompliant (Ljava/lang/String;)V
      // 0e1: aload 4
      // 0e3: invokeinterface com/l7tech/server/identity/internal/InternalUserManager.getUserPasswordManager ()Lcom/l7tech/server/identity/internal/InternalUserPasswordManager; 1
      // 0e8: astore 7
      // 0ea: aload 7
      // 0ec: aload 5
      // 0ee: aload 2
      // 0ef: invokeinterface com/l7tech/server/identity/internal/InternalUserPasswordManager.configureUserPasswordHashes (Lcom/l7tech/identity/internal/InternalUser;Ljava/lang/String;)Z 3
      // 0f4: istore 8
      // 0f6: iload 8
      // 0f8: ifne 10d
      // 0fb: new java/lang/IllegalStateException
      // 0fe: dup
      // 0ff: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 102: bipush 31
      // 104: aaload
      // 105: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 108: athrow
      // 109: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10c: athrow
      // 10d: aload 0
      // 10e: getfield com/l7tech/server/identity/IdentityAdminImpl.e Lcom/l7tech/server/security/PasswordEnforcerManager;
      // 111: aload 5
      // 113: bipush 1
      // 114: invokevirtual com/l7tech/server/security/PasswordEnforcerManager.setUserPasswordPolicyAttributes (Lcom/l7tech/identity/internal/InternalUser;Z)V
      // 117: aload 0
      // 118: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 11b: aload 5
      // 11d: invokevirtual com/l7tech/identity/internal/InternalUser.getLogin ()Ljava/lang/String;
      // 120: aload 5
      // 122: invokevirtual com/l7tech/identity/internal/InternalUser.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 125: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 128: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 12b: astore 9
      // 12d: aload 9
      // 12f: bipush 17
      // 131: aaload
      // 132: dup_x2
      // 133: pop
      // 134: aload 9
      // 136: bipush 19
      // 138: aaload
      // 139: swap
      // 13a: ldc "]"
      // 13c: 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" ]
      // 141: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 144: aload 0
      // 145: aload 5
      // 147: invokevirtual com/l7tech/server/identity/IdentityAdminImpl.activateUser (Lcom/l7tech/identity/User;)V
      // 14a: aload 4
      // 14c: aload 5
      // 14e: invokeinterface com/l7tech/server/identity/internal/InternalUserManager.update (Lcom/l7tech/identity/User;)V 2
      // 153: return
      // try (31 -> 45): 45 com/l7tech/common/password/IncorrectPasswordException
      // try (29 -> 35): 36 com/l7tech/common/password/IncorrectPasswordException
      // try (17 -> 27): 27 com/l7tech/common/password/IncorrectPasswordException
      // try (6 -> 15): 15 com/l7tech/common/password/IncorrectPasswordException
      // try (77 -> 93): 93 com/l7tech/common/password/IncorrectPasswordException
      // try (106 -> 115): 115 com/l7tech/common/password/IncorrectPasswordException
   }

   public EntityHeaderSet<IdentityHeader> findAllGroups(Goid var1) throws FindException {
      return this.e(var1).findAllHeaders();
   }

   public Group findGroupByID(Goid var1, String var2) throws FindException {
      IdentityProvider var3 = this.m.getProvider(var1);

      try {
         if (var3 == null) {
            this.o.warning(q[50] + var1 + q[42]);
            return null;
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      GroupManager var4 = var3.getGroupManager();
      return var4.findByPrimaryKey(var2);
   }

   public Group findGroupByName(Goid var1, String var2) throws FindException {
      IdentityProvider var3 = this.m.getProvider(var1);

      try {
         if (var3 == null) {
            this.o.warning(q[5] + var1 + q[32]);
            return null;
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      GroupManager var4 = var3.getGroupManager();
      return var4.findByName(var2);
   }

   public void deleteGroup(Goid var1, String var2) throws DeleteException, ObjectNotFoundException {
      try {
         GroupManager var3 = this.e(var1);
         Group var4 = var3.findByPrimaryKey(var2);

         try {
            if (var4 == null) {
               throw new ObjectNotFoundException(q[71]);
            }
         } catch (FindException var6) {
            throw a(var6);
         }

         var3.delete(var4);
         Logger var10000 = this.o;
         String var10001 = var4.getName();
         String[] var5 = q;
         var10000.info(var5[3] + var10001);
      } catch (FindException var7) {
         throw new DeleteException(q[68], var7);
      }
   }

   public String saveGroup(Goid param1, Group param2, Set<IdentityHeader> param3) throws SaveException, UpdateException, ObjectNotFoundException {
      // $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: bipush 1
      // 001: istore 4
      // 003: aload 2
      // 004: invokeinterface com/l7tech/identity/Group.getId ()Ljava/lang/String; 1
      // 009: astore 5
      // 00b: aload 5
      // 00d: ifnull 022
      // 010: aload 5
      // 012: getstatic com/l7tech/server/identity/IdentityAdminImpl.j Ljava/lang/String;
      // 015: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 018: ifeq 02a
      // 01b: goto 022
      // 01e: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 021: athrow
      // 022: bipush 1
      // 023: goto 02b
      // 026: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 029: athrow
      // 02a: bipush 0
      // 02b: istore 4
      // 02d: aload 0
      // 02e: getfield com/l7tech/server/identity/IdentityAdminImpl.m Lcom/l7tech/server/identity/IdentityProviderFactory;
      // 031: aload 1
      // 032: invokevirtual com/l7tech/server/identity/IdentityProviderFactory.getProvider (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/identity/IdentityProvider;
      // 035: astore 6
      // 037: aload 6
      // 039: ifnonnull 04e
      // 03c: new com/l7tech/objectmodel/FindException
      // 03f: dup
      // 040: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 043: bipush 27
      // 045: aaload
      // 046: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 049: athrow
      // 04a: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04d: athrow
      // 04e: aload 6
      // 050: invokeinterface com/l7tech/identity/IdentityProvider.getGroupManager ()Lcom/l7tech/identity/GroupManager; 1
      // 055: astore 7
      // 057: aload 2
      // 058: instanceof com/l7tech/identity/GroupBean
      // 05b: ifeq 06a
      // 05e: aload 7
      // 060: aload 2
      // 061: checkcast com/l7tech/identity/GroupBean
      // 064: invokeinterface com/l7tech/identity/GroupManager.reify (Lcom/l7tech/identity/GroupBean;)Lcom/l7tech/identity/Group; 2
      // 069: astore 2
      // 06a: iload 4
      // 06c: ifeq 0a5
      // 06f: aload 7
      // 071: aload 2
      // 072: aload 3
      // 073: invokeinterface com/l7tech/identity/GroupManager.save (Lcom/l7tech/identity/Group;Ljava/util/Set;)Ljava/lang/String; 3
      // 078: astore 5
      // 07a: aload 0
      // 07b: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 07e: aload 2
      // 07f: invokeinterface com/l7tech/identity/Group.getName ()Ljava/lang/String; 1
      // 084: aload 5
      // 086: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 089: astore 8
      // 08b: aload 8
      // 08d: bipush 28
      // 08f: aaload
      // 090: dup_x2
      // 091: pop
      // 092: aload 8
      // 094: bipush 72
      // 096: aaload
      // 097: swap
      // 098: ldc "]"
      // 09a: 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" ]
      // 09f: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 0a2: goto 0d6
      // 0a5: aload 7
      // 0a7: aload 2
      // 0a8: aload 3
      // 0a9: invokeinterface com/l7tech/identity/GroupManager.update (Lcom/l7tech/identity/Group;Ljava/util/Set;)V 3
      // 0ae: aload 0
      // 0af: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 0b2: aload 2
      // 0b3: invokeinterface com/l7tech/identity/Group.getName ()Ljava/lang/String; 1
      // 0b8: aload 5
      // 0ba: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 0bd: astore 8
      // 0bf: aload 8
      // 0c1: bipush 64
      // 0c3: aaload
      // 0c4: dup_x2
      // 0c5: pop
      // 0c6: aload 8
      // 0c8: bipush 72
      // 0ca: aaload
      // 0cb: swap
      // 0cc: ldc "]"
      // 0ce: 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" ]
      // 0d3: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 0d6: aload 5
      // 0d8: areturn
      // 0d9: astore 5
      // 0db: aload 0
      // 0dc: getfield com/l7tech/server/identity/IdentityAdminImpl.o Ljava/util/logging/Logger;
      // 0df: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 0e2: aconst_null
      // 0e3: aload 5
      // 0e5: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0e8: iload 4
      // 0ea: ifeq 101
      // 0ed: new com/l7tech/objectmodel/SaveException
      // 0f0: dup
      // 0f1: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 0f4: bipush 54
      // 0f6: aaload
      // 0f7: aload 5
      // 0f9: invokespecial com/l7tech/objectmodel/SaveException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0fc: athrow
      // 0fd: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 100: athrow
      // 101: new com/l7tech/objectmodel/UpdateException
      // 104: dup
      // 105: getstatic com/l7tech/server/identity/IdentityAdminImpl.q [Ljava/lang/String;
      // 108: bipush 57
      // 10a: aaload
      // 10b: aload 5
      // 10d: invokespecial com/l7tech/objectmodel/UpdateException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 110: athrow
      // try (25 -> 34): 34 com/l7tech/objectmodel/FindException
      // try (7 -> 16): 16 com/l7tech/objectmodel/FindException
      // try (5 -> 11): 12 com/l7tech/objectmodel/FindException
      // try (2 -> 98): 99 com/l7tech/objectmodel/FindException
      // try (100 -> 116): 116 com/l7tech/objectmodel/FindException
   }

   public String getUserCert(User var1) throws FindException, CertificateEncodingException {
      Certificate var2 = this.a.getUserCert(var1);

      try {
         if (var2 == null) {
            return null;
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return HexUtils.encodeBase64(var2.getEncoded());
   }

   public boolean doesCurrentUserHaveCert() throws FindException, AuthenticationException {
      User var1 = JaasUtils.getCurrentUser();

      try {
         if (var1 == null) {
            throw new AuthenticationException(q[11]);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      IdentityProvider var2 = this.m.getProvider(var1.getProviderId());
      return var2.hasClientCert(var1.getLogin());
   }

   public boolean currentUsersPasswordCanBeChanged() throws AuthenticationException, FindException {
      User var1 = JaasUtils.getCurrentUser();

      try {
         if (var1 == null) {
            throw new AuthenticationException(q[9]);
         }
      } catch (AuthenticationException var3) {
         throw a(var3);
      }

      IdentityProvider var2 = this.m.getProvider(var1.getProviderId());
      return var2.getConfig().isWritable();
   }

   public void revokeCert(User var1) throws UpdateException, ObjectNotFoundException {
      try {
         this.a.revokeUserCert(var1);
         IdentityProvider var2 = this.m.getProvider(var1.getProviderId());

         try {
            if (var2 == null) {
               throw new FindException(q[27]);
            }
         } catch (FindException var9) {
            throw a(var9);
         }

         if (IdentityProviderType.INTERNAL.equals(var2.getConfig().type())) {
            String[] var8 = q;
            this.o.finest(var8[24]);
            InternalUser var3 = (InternalUser)var1;
            UserManager var4 = var2.getUserManager();
            InternalUser var5 = (InternalUser)var4.findByLogin(var3.getLogin());
            String var6 = var3.getHashedPassword();

            label32: {
               try {
                  if (var6 != null && !var5.getHashedPassword().equals(var6)) {
                     break label32;
                  }
               } catch (FindException var10) {
                  throw a(var10);
               }

               byte[] var7 = new byte[32];
               this.a().nextBytes(var7);
               var6 = this.h.hashPassword(var7);
            }

            var5.setHashedPassword(var6);
            var4.update(var5);
         }
      } catch (FindException var11) {
         throw new UpdateException(q[73], var11);
      }
   }

   public int revokeCertificates() throws UpdateException {
      String[] var8 = q;
      this.o.info(var8[34]);
      int var1 = 0;

      try {
         SsgKeyEntry var2 = this.c.getCaInfo();

         try {
            if (var2 == null) {
               throw new UpdateException(var8[81]);
            }
         } catch (FindException var10) {
            throw a(var10);
         }

         X500Principal var3 = var2.getCertificate().getSubjectX500Principal();

         for (CertInfo var6 : this.a.findAll()) {
            var8 = q;
            this.o.log(Level.FINE, var8[80], new String[]{var6.getLogin(), Goid.toString(var6.getProviderId()), var6.getUserId()});
            UserBean var7 = new UserBean();

            try {
               var7.setProviderId(var6.getProviderId());
               var7.setUniqueIdentifier(var6.getUserId());
               var7.setLogin(var6.getLogin());
               if (this.a.revokeUserCertIfIssuerMatches(var7, var3)) {
                  var1++;
                  this.o.log(Level.INFO, var8[52], new String[]{var6.getLogin(), Goid.toString(var6.getProviderId()), var6.getUserId()});
                  continue;
               }
            } catch (FindException var9) {
               throw a(var9);
            }

            var8 = q;
            this.o.log(Level.INFO, var8[37], new String[]{var6.getLogin(), Goid.toString(var6.getProviderId()), var6.getUserId()});
         }

         this.d.publishEvent(new AuditRevokeAllUserCertificates(this, var1));
         return var1;
      } catch (FindException var11) {
         throw new UpdateException(q[7], var11);
      }
   }

   public void recordNewUserCert(User var1, Certificate var2) throws UpdateException {
      this.a.recordNewUserCert(var1, var2, false);
   }

   public IdentityProviderPasswordPolicy getPasswordPolicyForIdentityProvider(Goid var1) throws FindException {
      return this.f.findByInternalIdentityProviderOid(var1);
   }

   public AccountMinimums getAccountMinimums() {
      String var10000;
      label30: {
         try {
            if (this.config.getBooleanProperty(q[33], false)) {
               var10000 = q[20];
               break label30;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         var10000 = q[46];
      }

      String var1 = var10000;
      Pair var2 = (Pair)Functions.grepFirst(this.i, new h(this, var1));

      try {
         if (var2 == null) {
            return null;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return (AccountMinimums)var2.left;
   }

   public Map<String, AccountMinimums> getAccountMinimumsMap() {
      return (Map<String, AccountMinimums>)Functions.reduce(this.i, new HashMap(), new i(this));
   }

   public Map<String, IdentityProviderPasswordPolicy> getPasswordPolicyMinimums() {
      return (Map<String, IdentityProviderPasswordPolicy>)Functions.reduce(this.i, new HashMap(), new j(this));
   }

   public String getPasswordPolicyDescriptionForIdentityProvider() throws FindException {
      User var1 = JaasUtils.getCurrentUser();

      try {
         if (var1 == null) {
            return null;
         }
      } catch (FindException var4) {
         throw a(var4);
      }

      IdentityProviderPasswordPolicy var2 = this.f.findByInternalIdentityProviderOid(var1.getProviderId());

      try {
         if (var2 == null) {
            return null;
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return var2.getDescription();
   }

   public String updatePasswordPolicy(Goid var1, IdentityProviderPasswordPolicy var2) throws SaveException, UpdateException, ObjectNotFoundException {
      try {
         if (!var1.equals(IdentityProviderConfigManager.INTERNALPROVIDER_SPECIAL_GOID)) {
            throw new SaveException(q[21] + var1 + q[67]);
         }
      } catch (SaveException var3) {
         throw a(var3);
      }

      var2.setInternalIdentityProviderGoid(var1);
      this.f.update(var2);
      return var2.getId();
   }

   public void forceAdminUsersResetPassword(Goid var1) throws ObjectModelException {
      if (this.m.getProvider(var1) instanceof InternalIdentityProvider var3) {
         InternalUserManager var4 = (InternalUserManager)var3.getUserManager();

         for (IdentityHeader var7 : var4.findAllHeaders()) {
            InternalUser var8 = (InternalUser)var4.findByPrimaryKey(var7.getStrId());

            try {
               if (this.a(var8)) {
                  var8.setChangePassword(true);
                  var4.update(var8, null);
               }
            } catch (ObjectModelException var9) {
               throw a(var9);
            }
         }

         this.d.publishEvent(new AdministrativePasswordsResetEvent(this, var3.getConfig().getName()));
      }
   }

   public void activateUser(User var1) throws FindException, UpdateException {
      try {
         LogonInfo var2 = this.g.findByCompositeKey(var1.getProviderId(), var1.getLogin(), false);

         try {
            if (var2 == null || var2.getLastAttempted() <= 0L) {
               return;
            }
         } catch (FindException var6) {
            throw a(var6);
         }

         String var3 = null;
         var2.setLastActivity(System.currentTimeMillis());
         var2.resetFailCount(System.currentTimeMillis());
         if (var2.getState().equals(State.INACTIVE)) {
            String[] var9 = q;
            var3 = var9[47];
         } else if (var2.getState().equals(State.EXCEED_ATTEMPT)) {
            String[] var10 = q;
            var3 = var10[65];
         }

         var2.setState(State.ACTIVE);
         this.g.update(var2);
         if (var3 != null) {
            String var10000 = var1.getLogin();
            String[] var11 = q;
            String var4 = var11[53] + var10000 + var11[41] + var3;
            this.d.publishEvent(new AdminEvent(this, var4, Level.WARNING) {
               static final long serialVersionUID = 4533959245112424696L;
            });
         }
      } catch (FindException var7) {
         String var10002 = var1.getLogin();
         String[] var5 = q;
         throw new FindException(var5[61] + var10002 + "'", var7);
      } catch (UpdateException var8) {
         throw new UpdateException(q[61] + var1.getLogin() + "'", var8);
      }
   }

   public State getLogonState(User var1) throws FindException {
      try {
         LogonInfo var2 = this.g.findByCompositeKey(var1.getProviderId(), var1.getLogin(), false);
         return var2 != null ? var2.getState() : null;
      } catch (FindException var3) {
         throw new FindException(q[4] + var1.getLogin() + "'", var3);
      }
   }

   private boolean a(User param1) throws FindException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/server/identity/IdentityAdminImpl.b Lcom/l7tech/server/security/rbac/RoleManager;
      // 04: aload 1
      // 05: bipush 1
      // 06: bipush 0
      // 07: invokeinterface com/l7tech/server/security/rbac/RoleManager.getAssignedRoles (Lcom/l7tech/identity/User;ZZ)Ljava/util/Collection; 4
      // 0c: astore 2
      // 0d: aload 2
      // 0e: ifnull 29
      // 11: aload 2
      // 12: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 17: ifne 29
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: bipush 1
      // 22: goto 2a
      // 25: invokestatic com/l7tech/server/identity/IdentityAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 28: athrow
      // 29: bipush 0
      // 2a: ireturn
      // try (7 -> 12): 13 com/l7tech/objectmodel/FindException
      // try (9 -> 17): 17 com/l7tech/objectmodel/FindException
   }

   private SecureRandom a() {
      return k;
   }

   public void testNtlmConfig(Map<String, String> var1) throws InvalidIdProviderCfgException {
      HashMap var2 = new HashMap(var1);
      String[] var5 = q;
      if (var2.containsKey(var5[36])) {
         try {
            Goid var3 = GoidUpgradeMapper.mapId(EntityType.SECURE_PASSWORD, (String)var2.get(var5[77]));
            String var4 = ServerVariables.getSecurePasswordByGoid(new LoggingAudit(this.o), var3);
            var2.put(var5[29], var4);
         } catch (FindException var7) {
            var5 = q;
            throw new InvalidIdProviderCfgException(var5[74], var7);
         } catch (IllegalArgumentException var8) {
            var5 = q;
            throw new InvalidIdProviderCfgException(var5[75], var8);
         }
      }

      try {
         NetlogonAdapter var9 = new NetlogonAdapter(var2);
         var9.testConnect();
      } catch (AuthenticationManagerException var6) {
         Logger var10000 = this.o;
         Level var10001 = Level.FINE;
         String var10002 = var6.getMessage();
         var5 = q;
         var10000.log(var10001, var5[49] + var10002);
         throw new InvalidIdProviderCfgException(var5[66], var6);
      }
   }

   public void testIdProviderConfig(IdentityProviderConfig var1, String var2, char[] var3) throws InvalidIdProviderCfgException {
      try {
         if (var1 == null) {
            throw new NullPointerException(q[43]);
         }
      } catch (InvalidIdProviderCfgException var7) {
         throw a(var7);
      }

      try {
         this.m.test(var1, var2, var3);
      } catch (InvalidIdProviderCfgException var5) {
         throw var5;
      } catch (Exception var6) {
         this.o.log(Level.INFO, q[6], var6);
         throw new InvalidIdProviderCfgException(var6);
      }
   }

   public Set<IdentityHeader> getGroupHeaders(Goid var1, String var2) throws FindException {
      return this.e(var1).getGroupHeaders(var2);
   }

   public Set<IdentityHeader> getGroupHeadersForGroup(Goid var1, @NotNull String var2) throws FindException {
      try {
         if (var2 == null) {
            a(0);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return this.e(var1).getGroupHeadersForNestedGroup(var2);
   }

   public void setGroupHeaders(Goid var1, String var2, Set<IdentityHeader> var3) throws FindException, UpdateException {
      this.e(var1).setGroupHeaders(var2, var3);
   }

   public Set<IdentityHeader> getUserHeaders(Goid var1, String var2) throws FindException {
      return this.e(var1).getUserHeaders(var2);
   }

   public void setUserHeaders(Goid var1, String var2, Set<IdentityHeader> var3) throws FindException, UpdateException {
      this.e(var1).setUserHeaders(var2, var3);
   }

   public LdapIdentityProviderConfig[] getLdapTemplates() throws FindException {
      return this.n.getTemplates();
   }

   public void setIdentityProviderConfigManager(IdentityProviderConfigManager var1) {
      this.l = var1;
   }

   public void setClientCertManager(ClientCertManager var1) {
      this.a = var1;
   }

   public void setIdentityProviderFactory(IdentityProviderFactory var1) {
      this.m = var1;
   }

   public void setLogonInfoManager(LogonInfoManager var1) {
      this.g = var1;
   }

   public void initDao() {
      this.b();
      this.c();
      this.d();
   }

   private void b() {
      try {
         if (this.m == null) {
            throw new IllegalArgumentException(q[18]);
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   private void c() {
      try {
         if (this.l == null) {
            throw new IllegalArgumentException(q[0]);
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   private void d() {
      try {
         if (this.a == null) {
            throw new IllegalArgumentException(q[10]);
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   private IdentityProviderConfigManager e() {
      return this.l;
   }

   private UserManager d(Goid var1) throws FindException {
      IdentityProvider var2 = this.m.getProvider(var1);

      try {
         if (var2 == null) {
            throw new FindException(q[27]);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return var2.getUserManager();
   }

   private GroupManager<?, ?> e(Goid var1) throws FindException {
      IdentityProvider var2 = this.m.getProvider(var1);

      try {
         if (var2 == null) {
            throw new FindException(q[27]);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return var2.getGroupManager();
   }

   private InternalUser a(InternalUser var1) {
      InternalUser var2 = new InternalUser();
      var2.copyFrom(var1);
      var2.setHashedPassword(null);
      var2.changePasswordChangesHistory(null);
      var2.setHttpDigest(null);
      var2.setVersion(var1.getVersion());
      return var2;
   }

   private void b(InternalUser var1) throws UpdateException {
      try {
         if (var1.getHashedPassword() != null) {
            throw new UpdateException(q[14]);
         }
      } catch (UpdateException var3) {
         throw a(var3);
      }

      try {
         if (CollectionUtils.isNotEmpty(var1.getPasswordChangesHistory())) {
            throw new UpdateException(q[25]);
         }
      } catch (UpdateException var4) {
         throw a(var4);
      }

      try {
         if (var1.getHttpDigest() != null) {
            throw new UpdateException(q[15]);
         }
      } catch (UpdateException var2) {
         throw a(var2);
      }
   }

   private void a(InternalUser var1, InternalUser var2) {
      var1.setHashedPassword(var2.getHashedPassword());
      var1.setPasswordChangesHistory(var2.getPasswordChangesHistory());
      var1.setHttpDigest(var2.getHttpDigest());
   }

   static {
      String[] var5 = new String[83];
      int var3 = 0;
      String var2 = "\u0017:\u0019 L.S\u0007~\f<W1N\u001a;\u000en[(I\u00187\u001bnQ4\u0007\f;\r;Q5B\u001a-;,\u000e!JgA\u00170\u0018'V \u0007\u0017:\u0019 L.S\u0007~\f<W1N\u001a;\u000en^(U^:\u0019\"]3N\u00110R =?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]g`\f1\t>u&I\u001f9\u0019<\u000f:;\u0010+L\"C^\u0019\u000e!M7\u001d^\u001301\\\"W H\u0010~\u0015 ^(\u0007\u00181\u000en\u001f\u00137:\u0019 L.S\u0007~,<W1N\u001a;\u000en\u001b=7:\u0019 L.S\u0007~,<W1N\u001a;\u000enL\"T\n~\u001a/Q+B\u001a~\u001e+[&R\r;\\/VgB\u0006=\u0019>L.H\u0010~\u000b/KgS\u0016,\u00139V\u001b;,\u000e!JgU\u001b(\u0013%Q)@^=\u0019<L.A\u0017=\u001d:]4\u000e:;\u0010+L\"C^\u000b\u000f+J}\u0007\u0019=+\u000e<])S^+\u000f+JgF\r~\u0012!LgA\u0011+\u0012*#\u001d2\u0015+V3\u0007\u001d;\u000e:Q!N\u001d?\b+\u0018*F\u0010?\u001b+JgU\u001b/\t'J\"C\u0019=+\u000e<])S^+\u000f+JgF\r~\u0012!LgA\u0011+\u0012* =?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]g`\f1\t>u&I\u001f9\u0019<\u0002Yp5=?\u0012 W3\u0007\u00131\u0018'^>\u0007\u001b&\u0015=L.I\u0019~\t=]5T^.\u001d=K0H\f:\\;K.I\u0019~\b&Q4\u0007\u001f.\u0015`8=?\u0012 W3\u0007\u00131\u0018'^>\u0007\u001b&\u0015=L.I\u0019~\t=]5T^6\b:HgC\u00179\u0019=LgR\r7\u0012)\u00183O\u0017-\\/H.\t&\u0010;\u000b\rT\"F\f\n\u00196L\u0017F\r-\u000b!J#\u0007\u0013+\u000f:\u0018%B^-\t>H+N\u001b:R#+.\u0018/L\"C^.\u001d=K0H\f:\\(W5\u000770\b+J)F\u0012~)=]5\u0007%\u0017:\u0019 L.S\u0007~\f<W1N\u001a;\u000en^&D\n1\u000e7\u0018.T^,\u0019?M.U\u001b:\u0002^\u0005\u0007.\u001d5c|\u0014t5=?\u0012 W3\u0007\u000b.\u0018/L\"\u0007\u000e?\u000f=O(U\u001a~\f!T.D\u0007~\u001a!JgN\u001a;\u0012:Q3^^.\u000e!N.C\u001b,\\\u0015#7:\u0019 L.S\u0007\u000e\u000e!N.C\u001b,\\-W2K\u001a~\u0012!LgE\u001b~\u001a!M)C\u001a:;\u0010+L\"C^\u00178\u001eJ(Q\u0017:\u0019<{(I\u00187\u001bt\u0018,=;\u000e:\u00185B\b1\u0017+\\g\n^7\u00128Y+N\u001a?\b'V \u0007\u000b-\u0019<\u001f4\u0007\u000e?\u000f=O(U\u001ap==?\u0012 W3\u0007\u00131\u0018'^>\u0007\u001b&\u0015=L.I\u0019~\t=]5T^.\u001d=K0H\f:\\&Q4S\u0011,\u0005nM4N\u00109\\:P.T^?\f'\u0016>?,\u001b;U\"I\n~\u001a!Jgg01\b\u0000M+K^.\u001d<Y*B\n;\u000en\u001fbTY~\u0013(\u0018bTP{\u000fnU2T\n~\u0012!LgE\u001b~\u0012;T+#7:\u0019 L.S\u0007\u000e\u000e!N.C\u001b,\\-W2K\u001a~\u0012!LgE\u001b~\u001a!M)C\r-?\n+\\g`\f1\t>\u0002g\u0010\r;\u000e8Q$BP.\u001d=K0H\f:2*6\u0015=\u0018(E\u0014;\u001f:\u0018$F\u00100\u0013:\u0018%B^8\u0013;V#\u0007V7\bnV(\u0007\u00121\u0012)]5\u0007\u001b&\u0015=Lx\u000eP\u001c+-\u0019<KgT\u00161\t\"\\gU\u001b/\t'J\"\u0007\u000b.\u0018/L\"\t\u000f^:\u0013+KgI\u0011*\\+@.T\n\u0017\r;\u001f;J.S\u0007p\f-Q#T\rp\u0019 Y%K\u001b:\u001f,;\n!S.I\u0019~\u001d\"TgR\r;\u000en[\"U\n7\u001a'[&S\u001b-R\u0017\f1\u0010+u&I\u001f9\u0019<\u0018.T^,\u0019?M.U\u001b:\u0013\r;\u000e8Q$BP.\u001d=K0H\f:3'\\3=;\u000e:Q!N\u001d?\b+\u0018)H\n~\u000e+N(L\u001b:\\(W5\u0007\u000b-\u0019<\u0018`\u0000\u0005n\u0001i\u001fg|\u0005o\u0001aCuZ#p\u001f=?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]gr\r;\u000e\u0003Y)F\u0019;\u000e.*6\u0019n[2U\f;\u0012:T>\u0007\u00121\u001b)]#\n\u00170\\;K\"U^=\u001d V(S^<\u0019n\\\"K\u001b*\u0019*\u0007\u0019,\u0013;H\u000eC\u0005Y~\u0015=\u0018\u000f^:\u0013+KgI\u0011*\\+@.T\n4\u00101\u0012cV2K\u0012~\u0015*])S\u0017*\u0005\u001eJ(Q\u0017:\u0019<{(I\u00187\u001bnQ4\u0007\f;\r;Q5B\u001a~\u001a!JgS\u001b-\bO*6\u0019nV\"P^.\u001d=K0H\f:\\'KgS\u0016;\\=Y*B^?\u000fnL/B^1\u0010*\u0018(I\u001bpv\u001eT\"F\r;\\+V3B\f~\u001dn\\.A\u0018;\u000e+V3\u0007\u000e?\u000f=O(U\u001ap*=?\u0012 W3\u0007\u001d6\u001d _\"\u0007\u00101\u0012nQ)S\u001b,\u0012/TgR\r;\u000e=\u00187F\r-\u000b!J#\t\u0004-\n5\t\t\u001f=\b'N&S\u001b:$7:\u0019 L.S\u0007~\f<W1N\u001a;\u000enV(S^8\u0013;V#\u0007\u00181\u000enQ#\u0007Y%8?\u0015\"]#\u0007\n1\\-W)I\u001b=\bnL(\u00070;\b\"W H\u0010~\u000f+J1N\u001d;\u00137:\u0019 L.S\u0007~,<W1N\u001a;\u000en\u001b\u000e+.\u0018/L\"C^\u000b\u000f+J}\u0007/,;\n!S\"C^=\u0019<L.A\u0017=\u001d:]gA\u0011,\\;K\"U^y[5\b:\u0000Y~'5\t:\b\u0005l\u0001\u0013\u0016\u0006+-\u0019<\u0018`\u001a87\u0012*}?D\u001b.\b'W)\u0007\u00170\\=Y1B9,\u0013;H\u001a+.\u0018/L\"C^\u00178\u001eJ(Q\u0017:\u0019<{(I\u00187\u001bt\u0018\u0002Yp\u001a87\u0012*}?D\u001b.\b'W)\u0007\u00170\\=Y1B9,\u0013;H\u0015;&\u001f+H3N\u00110\\'VgT\u001f(\u0019\u001bK\"U\u001f=?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]gr\r;\u000e\u0003Y)F\u0019;\u000e\u0019-?\n'V \u00077\u001a,<W1N\u001a;\u000e\rW)A\u00179Fn\u001301\\\"W H\u0010~\u0015 ^(\u0007\u00181\u000en\u001f\f-?\n+\\gr\r;\u000et\u0018?70\n/T.C.?\u000f=O(U\u001a\u001b\u0004-]7S\u00171\u0012n[&R\u00196\bnO/B\u0010~\t>\\&S\u00170\u001bnY)\u0007\u001b&\u0015=L.I\u0019~\t=]5\t\u000f+.\u0018/L\"C^\u0019\u000e!M7\u001d^\b\u000b0\u0010![,B\u001a\u001a70\n/T.C^\u0010(\u0002ugD\u00110\u001a'_2U\u001f*\u0015!V\u0002#p2*6\u0015=\u0018(E\u0014;\u001f:\u0018$F\u00100\u0013:\u0018%B^8\u0013;V#\u0007V7\bnV(\u0007\u00121\u0012)]5\u0007\u001b&\u0015=Lx\u000eP,\u001d1\u0011aTpS\u001b=\u0014aK\"U\b;\u000eaQ#B\u0010*\u0015:Ahn\u001a;\u0012:Q3^?:\u0011'V\u000eJ\u000e2(\u001f.\f\"Q$F\n7\u0013 }1B\u0010*,;Z+N\r6\u0019<\u0018.T^?\u0010<]&C\u0007~\u000f+L\u00149,\u0013;HgC\u0011;\u000fnV(S^;\u0004'K3\u0002^\u0005\u001f\u001b,\u000e!JgU\u001b-\u0019:L.I\u0019~\t=]5\u0000\r~\f/K4P\u0011,\u0018\u0013.?\u000f=O(U\u001a~\u0015=\u0018.I\b?\u0010'\\\u0013.?\u000f=O(U\u001a~\u0015=\u0018.I\b?\u0010'\\$7:\u0019 L.S\u0007~\f<W1N\u001a;\u000enV(S^8\u0013;V#\u0007\u00181\u000enQ#\u0007Y\u0013\r;\u000e8Q$BP.\u001d=K0H\f:3'\\\u0006^\u000b\u000f+Jg\u0017\u0019;\b\tJ(R\u000e\u0016\u0019/\\\"U\r\u0018\u0013<\u007f5H\u000b.0,;\n!S.I\u0019~\u001f+J3N\u00187\u001f/L\"\u0007\u00181\u000enM4B\f~[iCwZYy\\\u0015CvZQ%N3ei";
      int var4 = "\u0017:\u0019 L.S\u0007~\f<W1N\u001a;\u000en[(I\u00187\u001bnQ4\u0007\f;\r;Q5B\u001a-;,\u000e!JgA\u00170\u0018'V \u0007\u0017:\u0019 L.S\u0007~\f<W1N\u001a;\u000en^(U^:\u0019\"]3N\u00110R =?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]g`\f1\t>u&I\u001f9\u0019<\u000f:;\u0010+L\"C^\u0019\u000e!M7\u001d^\u001301\\\"W H\u0010~\u0015 ^(\u0007\u00181\u000en\u001f\u00137:\u0019 L.S\u0007~,<W1N\u001a;\u000en\u001b=7:\u0019 L.S\u0007~,<W1N\u001a;\u000enL\"T\n~\u001a/Q+B\u001a~\u001e+[&R\r;\\/VgB\u0006=\u0019>L.H\u0010~\u000b/KgS\u0016,\u00139V\u001b;,\u000e!JgU\u001b(\u0013%Q)@^=\u0019<L.A\u0017=\u001d:]4\u000e:;\u0010+L\"C^\u000b\u000f+J}\u0007\u0019=+\u000e<])S^+\u000f+JgF\r~\u0012!LgA\u0011+\u0012*#\u001d2\u0015+V3\u0007\u001d;\u000e:Q!N\u001d?\b+\u0018*F\u0010?\u001b+JgU\u001b/\t'J\"C\u0019=+\u000e<])S^+\u000f+JgF\r~\u0012!LgA\u0011+\u0012* =?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]g`\f1\t>u&I\u001f9\u0019<\u0002Yp5=?\u0012 W3\u0007\u00131\u0018'^>\u0007\u001b&\u0015=L.I\u0019~\t=]5T^.\u001d=K0H\f:\\;K.I\u0019~\b&Q4\u0007\u001f.\u0015`8=?\u0012 W3\u0007\u00131\u0018'^>\u0007\u001b&\u0015=L.I\u0019~\t=]5T^6\b:HgC\u00179\u0019=LgR\r7\u0012)\u00183O\u0017-\\/H.\t&\u0010;\u000b\rT\"F\f\n\u00196L\u0017F\r-\u000b!J#\u0007\u0013+\u000f:\u0018%B^-\t>H+N\u001b:R#+.\u0018/L\"C^.\u001d=K0H\f:\\(W5\u000770\b+J)F\u0012~)=]5\u0007%\u0017:\u0019 L.S\u0007~\f<W1N\u001a;\u000en^&D\n1\u000e7\u0018.T^,\u0019?M.U\u001b:\u0002^\u0005\u0007.\u001d5c|\u0014t5=?\u0012 W3\u0007\u000b.\u0018/L\"\u0007\u000e?\u000f=O(U\u001a~\f!T.D\u0007~\u001a!JgN\u001a;\u0012:Q3^^.\u000e!N.C\u001b,\\\u0015#7:\u0019 L.S\u0007\u000e\u000e!N.C\u001b,\\-W2K\u001a~\u0012!LgE\u001b~\u001a!M)C\u001a:;\u0010+L\"C^\u00178\u001eJ(Q\u0017:\u0019<{(I\u00187\u001bt\u0018,=;\u000e:\u00185B\b1\u0017+\\g\n^7\u00128Y+N\u001a?\b'V \u0007\u000b-\u0019<\u001f4\u0007\u000e?\u000f=O(U\u001ap==?\u0012 W3\u0007\u00131\u0018'^>\u0007\u001b&\u0015=L.I\u0019~\t=]5T^.\u001d=K0H\f:\\&Q4S\u0011,\u0005nM4N\u00109\\:P.T^?\f'\u0016>?,\u001b;U\"I\n~\u001a!Jgg01\b\u0000M+K^.\u001d<Y*B\n;\u000en\u001fbTY~\u0013(\u0018bTP{\u000fnU2T\n~\u0012!LgE\u001b~\u0012;T+#7:\u0019 L.S\u0007\u000e\u000e!N.C\u001b,\\-W2K\u001a~\u0012!LgE\u001b~\u001a!M)C\r-?\n+\\g`\f1\t>\u0002g\u0010\r;\u000e8Q$BP.\u001d=K0H\f:2*6\u0015=\u0018(E\u0014;\u001f:\u0018$F\u00100\u0013:\u0018%B^8\u0013;V#\u0007V7\bnV(\u0007\u00121\u0012)]5\u0007\u001b&\u0015=Lx\u000eP\u001c+-\u0019<KgT\u00161\t\"\\gU\u001b/\t'J\"\u0007\u000b.\u0018/L\"\t\u000f^:\u0013+KgI\u0011*\\+@.T\n\u0017\r;\u001f;J.S\u0007p\f-Q#T\rp\u0019 Y%K\u001b:\u001f,;\n!S.I\u0019~\u001d\"TgR\r;\u000en[\"U\n7\u001a'[&S\u001b-R\u0017\f1\u0010+u&I\u001f9\u0019<\u0018.T^,\u0019?M.U\u001b:\u0013\r;\u000e8Q$BP.\u001d=K0H\f:3'\\3=;\u000e:Q!N\u001d?\b+\u0018)H\n~\u000e+N(L\u001b:\\(W5\u0007\u000b-\u0019<\u0018`\u0000\u0005n\u0001i\u001fg|\u0005o\u0001aCuZ#p\u001f=?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]gr\r;\u000e\u0003Y)F\u0019;\u000e.*6\u0019n[2U\f;\u0012:T>\u0007\u00121\u001b)]#\n\u00170\\;K\"U^=\u001d V(S^<\u0019n\\\"K\u001b*\u0019*\u0007\u0019,\u0013;H\u000eC\u0005Y~\u0015=\u0018\u000f^:\u0013+KgI\u0011*\\+@.T\n4\u00101\u0012cV2K\u0012~\u0015*])S\u0017*\u0005\u001eJ(Q\u0017:\u0019<{(I\u00187\u001bnQ4\u0007\f;\r;Q5B\u001a~\u001a!JgS\u001b-\bO*6\u0019nV\"P^.\u001d=K0H\f:\\'KgS\u0016;\\=Y*B^?\u000fnL/B^1\u0010*\u0018(I\u001bpv\u001eT\"F\r;\\+V3B\f~\u001dn\\.A\u0018;\u000e+V3\u0007\u000e?\u000f=O(U\u001ap*=?\u0012 W3\u0007\u001d6\u001d _\"\u0007\u00101\u0012nQ)S\u001b,\u0012/TgR\r;\u000e=\u00187F\r-\u000b!J#\t\u0004-\n5\t\t\u001f=\b'N&S\u001b:$7:\u0019 L.S\u0007~\f<W1N\u001a;\u000enV(S^8\u0013;V#\u0007\u00181\u000enQ#\u0007Y%8?\u0015\"]#\u0007\n1\\-W)I\u001b=\bnL(\u00070;\b\"W H\u0010~\u000f+J1N\u001d;\u00137:\u0019 L.S\u0007~,<W1N\u001a;\u000en\u001b\u000e+.\u0018/L\"C^\u000b\u000f+J}\u0007/,;\n!S\"C^=\u0019<L.A\u0017=\u001d:]gA\u0011,\\;K\"U^y[5\b:\u0000Y~'5\t:\b\u0005l\u0001\u0013\u0016\u0006+-\u0019<\u0018`\u001a87\u0012*}?D\u001b.\b'W)\u0007\u00170\\=Y1B9,\u0013;H\u001a+.\u0018/L\"C^\u00178\u001eJ(Q\u0017:\u0019<{(I\u00187\u001bt\u0018\u0002Yp\u001a87\u0012*}?D\u001b.\b'W)\u0007\u00170\\=Y1B9,\u0013;H\u0015;&\u001f+H3N\u00110\\'VgT\u001f(\u0019\u001bK\"U\u001f=?\u0012 W3\u0007\f;\b<Q\"Q\u001b~\b&]gr\r;\u000e\u0003Y)F\u0019;\u000e\u0019-?\n'V \u00077\u001a,<W1N\u001a;\u000e\rW)A\u00179Fn\u001301\\\"W H\u0010~\u0015 ^(\u0007\u00181\u000en\u001f\f-?\n+\\gr\r;\u000et\u0018?70\n/T.C.?\u000f=O(U\u001a\u001b\u0004-]7S\u00171\u0012n[&R\u00196\bnO/B\u0010~\t>\\&S\u00170\u001bnY)\u0007\u001b&\u0015=L.I\u0019~\t=]5\t\u000f+.\u0018/L\"C^\u0019\u000e!M7\u001d^\b\u000b0\u0010![,B\u001a\u001a70\n/T.C^\u0010(\u0002ugD\u00110\u001a'_2U\u001f*\u0015!V\u0002#p2*6\u0015=\u0018(E\u0014;\u001f:\u0018$F\u00100\u0013:\u0018%B^8\u0013;V#\u0007V7\bnV(\u0007\u00121\u0012)]5\u0007\u001b&\u0015=Lx\u000eP,\u001d1\u0011aTpS\u001b=\u0014aK\"U\b;\u000eaQ#B\u0010*\u0015:Ahn\u001a;\u0012:Q3^?:\u0011'V\u000eJ\u000e2(\u001f.\f\"Q$F\n7\u0013 }1B\u0010*,;Z+N\r6\u0019<\u0018.T^?\u0010<]&C\u0007~\u000f+L\u00149,\u0013;HgC\u0011;\u000fnV(S^;\u0004'K3\u0002^\u0005\u001f\u001b,\u000e!JgU\u001b-\u0019:L.I\u0019~\t=]5\u0000\r~\f/K4P\u0011,\u0018\u0013.?\u000f=O(U\u001a~\u0015=\u0018.I\b?\u0010'\\\u0013.?\u000f=O(U\u001a~\u0015=\u0018.I\b?\u0010'\\$7:\u0019 L.S\u0007~\f<W1N\u001a;\u000enV(S^8\u0013;V#\u0007\u00181\u000enQ#\u0007Y\u0013\r;\u000e8Q$BP.\u001d=K0H\f:3'\\\u0006^\u000b\u000f+Jg\u0017\u0019;\b\tJ(R\u000e\u0016\u0019/\\\"U\r\u0018\u0013<\u007f5H\u000b.0,;\n!S.I\u0019~\u001f+J3N\u00187\u001f/L\"\u0007\u00181\u000enM4B\f~[iCwZYy\\\u0015CvZQ%N3ei"
         .length();
      char var1 = '$';
      int var8 = -1;

      label39:
      while (true) {
         byte var10000 = 43;
         String var10001 = var2.substring(++var8, var8 + var1);
         byte var10002 = -1;

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var8 += var1) >= var4) {
                     q = var5;

                     label26: {
                        try {
                           if (!IdentityAdminImpl.class.desiredAssertionStatus()) {
                              var10 = true;
                              break label26;
                           }
                        } catch (IllegalArgumentException var6) {
                           throw a(var6);
                        }

                        var10 = false;
                     }

                     p = var10;
                     j = Goid.toString(PersistentEntity.DEFAULT_GOID);
                     k = new SecureRandom();
                     return;
                  }

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

                  var2 = "MK~J!Q>mOx[hV\"zFcL!C..G\u007f\u001e&X#.McP.^0{\\iZf\u0015KVo[8C>a@,W&\u0017$oXik;R%";
                  var4 = "MK~J!Q>mOx[hV\"zFcL!C..G\u007f\u001e&X#.McP.^0{\\iZf\u0015KVo[8C>a@,W&\u0017$oXik;R%".length();
                  var1 = '(';
                  var8 = -1;
            }

            var10000 = 91;
            var10001 = var2.substring(++var8, var8 + var1);
            var10002 = 0;
         }
      }
   }

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

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

      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 -> 85;
            case 1 -> 117;
            case 2 -> 87;
            case 3 -> 101;
            case 4 -> 19;
            case 5 -> 108;
            default -> 12;
         });
      }

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